<?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>201225</bug_id>
          
          <creation_ts>2019-08-28 10:22:49 -0700</creation_ts>
          <short_desc>[PSON] Bump the WebPage&apos;s identifier every time we process-swap</short_desc>
          <delta_ts>2019-12-09 08:53:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201223</dependson>
    
    <dependson>201233</dependson>
    
    <dependson>205012</dependson>
          <blocked>201344</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1565774</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-28 10:22:49 -0700</bug_when>
    <thetext>Bump the WebPage&apos;s identifier every time we process-swap. This will avoid confusion with IPC messages when swapping back and forth between WebContent process. This will also allow us to keep a suspended WebPage (for PageCache) in a WebProcess that is used for a new load of the same WebPageProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565780</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-08-28 10:27:45 -0700</bug_when>
    <thetext>🥳</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565801</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-28 11:02:50 -0700</bug_when>
    <thetext>Does this mean there will no longer be two WebPages in the same process with the same identifier?
What are we going to do about things in the NetworkProcess that use a PageIdentifier (such as ResourceLoadStatistics)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566272</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 09:38:31 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Does this mean there will no longer be two WebPages in the same process with
&gt; the same identifier?

We already closed the previous page if it had the same identifier as the new page. That said, the old page could indeed still live for a while after getting closed.
Once we bump page ids, this should no longer happen, and we also would not need to close the previous page in the process if it is useful (e.g. for page cache).

&gt; What are we going to do about things in the NetworkProcess that use a
&gt; PageIdentifier (such as ResourceLoadStatistics)?

That&apos;s a good question, I need to look into those particular cases. My best is that they would need to use PageIdentifier and not WebPageProxyIdentifier since they are associated with specific WebCore loads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566284</commentid>
    <comment_count>4</comment_count>
      <attachid>377595</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 10:31:21 -0700</bug_when>
    <thetext>Created attachment 377595
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566285</commentid>
    <comment_count>5</comment_count>
      <attachid>377596</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 10:36:40 -0700</bug_when>
    <thetext>Created attachment 377596
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566319</commentid>
    <comment_count>6</comment_count>
      <attachid>377606</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 12:17:34 -0700</bug_when>
    <thetext>Created attachment 377606
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566336</commentid>
    <comment_count>7</comment_count>
      <attachid>377612</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 12:40:40 -0700</bug_when>
    <thetext>Created attachment 377612
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566362</commentid>
    <comment_count>8</comment_count>
      <attachid>377619</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 13:32:28 -0700</bug_when>
    <thetext>Created attachment 377619
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566366</commentid>
    <comment_count>9</comment_count>
      <attachid>377622</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 13:38:19 -0700</bug_when>
    <thetext>Created attachment 377622
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566395</commentid>
    <comment_count>10</comment_count>
      <attachid>377627</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 14:38:57 -0700</bug_when>
    <thetext>Created attachment 377627
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566403</commentid>
    <comment_count>11</comment_count>
      <attachid>377629</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 14:52:29 -0700</bug_when>
    <thetext>Created attachment 377629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566414</commentid>
    <comment_count>12</comment_count>
      <attachid>377633</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 15:24:47 -0700</bug_when>
    <thetext>Created attachment 377633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566440</commentid>
    <comment_count>13</comment_count>
      <attachid>377646</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 16:00:13 -0700</bug_when>
    <thetext>Created attachment 377646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566521</commentid>
    <comment_count>14</comment_count>
      <attachid>377646</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-29 19:42:06 -0700</bug_when>
    <thetext>Comment on attachment 377646
Patch

Ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566683</commentid>
    <comment_count>15</comment_count>
      <attachid>377646</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-08-30 09:26:15 -0700</bug_when>
    <thetext>Comment on attachment 377646
Patch

Looks like good progress.

As discussed, it would be good to eventually have WebPageProxy with the same lifetime as the WebPage, and have a separate (browsing context) object that stays the same over navigations. The current WebPageProxyIdentifier would then become the identifier of the latter object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566690</commentid>
    <comment_count>16</comment_count>
      <attachid>377646</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-30 09:34:46 -0700</bug_when>
    <thetext>Comment on attachment 377646
Patch

Clearing flags on attachment: 377646

Committed r249329: &lt;https://trac.webkit.org/changeset/249329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566691</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-30 09:34:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566692</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-30 09:35:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/54884961&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377595</attachid>
            <date>2019-08-29 10:31:21 -0700</date>
            <delta_ts>2019-08-29 10:36:40 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>201225_pson_webPageID_bump_wip.patch</filename>
            <type>text/plain</type>
            <size>33208</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApp
bmRleCAwYzAzNDA2OTA0MS4uYWRiMDgyYzUxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBh
Z2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBt
X3dlYlBhZ2VJRChwYWdlLndlYlBhZ2VJRCgpKQorICAgICwgbV93ZWJQYWdlSUQoc3VzcGVuZGVk
UGFnZSA/IHN1c3BlbmRlZFBhZ2UtPndlYlBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCkpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAgICAsIG1fbmF2aWdh
dGlvbklEKG5hdmlnYXRpb25JRCkKICAgICAsIG1faXNTZXJ2ZXJSZWRpcmVjdChpc1NlcnZlclJl
ZGlyZWN0KQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6Omxv
YWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhCiB7CiAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YTogcGFn
ZVByb3h5SUQgPSAlIiBQUkl1NjQgIiB3ZWJQYWdlSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5pZGVu
dGlmaWVyKCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSk7CiAKLSAgICBtX3Bh
Z2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZp
Z2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXMpKTsKKyAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVu
Y29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVj
dCogdXNlckRhdGEsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGlj
aWVzKQpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzCiAgICAgaWYg
KG5hdmlnYXRpb24uZnJvbUl0ZW0oKSAmJiBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3Qo
KSA9PSBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpCiAgICAgICAgIG5hdmlnYXRp
b24uZnJvbUl0ZW0oKS0+c2V0TGFzdFByb2Nlc3NJZGVudGlmaWVyKG1fcHJvY2Vzcy0+Y29yZVBy
b2Nlc3NJZGVudGlmaWVyKCkpOwogCi0gICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRp
b25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0
KSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwor
ICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9u
JiBuYXZpZ2F0aW9uLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBPcHRpb25hbDxXZWJz
aXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKQEAgLTI5Myw3ICsyOTMsNyBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
QXN5bmMoRnJhbWVJZGVudGlmaWVyCiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5h
dmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJ
RCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklE
LCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2Vi
UGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBX
VEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0
LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVj
dFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCkBAIC0zMDMsNyArMzAzLDcg
QEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnMKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJ
RCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVl
c3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJE
YXRhKTsKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKQEAgLTMyNCw3ICszMjQsNyBAQCB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShGcgogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRh
c2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewotICAgIG1fcGFnZS5z
dGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgV1RGTW92ZShwYXJh
bWV0ZXJzKSk7CisgICAgbV9wYWdlLnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBtX3dlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCA1
YjRjOWNmMmVkYi4uMzM4NGM4MWQ4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgflBy
b3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVy
biBtX3BhZ2U7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25z
dCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCmluZGV4IDdiOTViNmVkZThhLi4xYWMzZDg4
MTUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgK
QEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIH5TdXNwZW5kZWRQYWdlUHJveHkoKTsKIAog
ICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFn
ZUlEOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNz
LmdldCgpOyB9CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCBjMTQyMTQwODQ5YS4uNmNkODNmMGMwM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzk0LDEyICs3OTQsMTMgQEAgYm9v
bCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0
aW9uJiBuYXZpZ2F0aW9uLCBPcHQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBz
dGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdl
YkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKQordm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlBy
b2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiYmIGRyYXdpbmdBcmVhLCBS
ZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xv
c2VkKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJzd2FwVG9XZWJQcm9j
ZXNzOiIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgInN3YXBUb1dlYlBy
b2Nlc3M6IG5ld1dlYlBhZ2VJRD0lIiBQUkl1NjQsIHdlYlBhZ2VJRC50b1VJbnQ2NCgpKTsKIAog
ICAgIG1fcHJvY2VzcyA9IFdURk1vdmUocHJvY2Vzcyk7CisgICAgbV93ZWJQYWdlSUQgPSB3ZWJQ
YWdlSUQ7CiAgICAgbV93ZWJzaXRlRGF0YVN0b3JlID0gbV9wcm9jZXNzLT53ZWJzaXRlRGF0YVN0
b3JlKCk7CiAKICAgICBpZiAobV9sb2dnZXIpCkBAIC0xMTI1LDExICsxMTI2LDExIEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgU2hvCiAgICAgICAgIGxhdW5jaFByb2Nlc3MoUmVnaXN0cmFibGVEb21h
aW4geyByZXF1ZXN0LnVybCgpIH0pOwogCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0
aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QocmVx
dWVzdCksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsKLSAgICBsb2FkUmVxdWVz
dFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG5hdmlnYXRpb24uZ2V0
KCksIFdURk1vdmUocmVxdWVzdCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJE
YXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKKyAgICBsb2FkUmVxdWVzdFdp
dGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZp
Z2F0aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5LCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAgcmV0
dXJuIG5hdmlnYXRpb247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9s
aWNpZXMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsK
IApAQCAtMTE1NSw3ICsxMTU2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKIAogICAgIGFk
ZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCi0gICAgcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCBtX3dl
YlBhZ2VJRCk7CisgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVl
c3QobG9hZFBhcmFtZXRlcnMpLCB3ZWJQYWdlSUQpOwogICAgIHByb2Nlc3MtPnJlc3BvbnNpdmVu
ZXNzVGltZXIoKS5zdGFydCgpOwogfQogCkBAIC0xMjI3LDExICsxMjI4LDExIEBAIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZERhdGEoY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBkYXRhLCBjCiAgICAgICAgIGxhdW5jaFByb2Nlc3MoeyB9KTsKIAogICAgIGF1dG8g
bmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkRGF0YU5hdmlnYXRpb24o
bWFrZVVuaXF1ZTxBUEk6OlN1YnN0aXR1dGVEYXRhPihkYXRhLnZlY3RvcigpLCBNSU1FVHlwZSwg
ZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhKSk7Ci0gICAgbG9hZERhdGFXaXRoTmF2aWdhdGlv
blNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwg
ZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Ok5vLCBXVEY6Om51bGxvcHQsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIGxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdl
SUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRh
dGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIFdURjo6bnVsbG9wdCwgc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQor
dm9pZCBXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQs
IEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uIik7CiAKQEAgLTEyNTQs
NyArMTI1NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBhZGRQbGF0Zm9ybUxvYWRQ
YXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIHByb2Nlc3MtPmFzc3VtZVJlYWRBY2Nl
c3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwotICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwgbV93ZWJQYWdlSUQpOworICAgIHBy
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwg
d2ViUGFnZUlEKTsKICAgICBwcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsK
IH0KIApAQCAtMjk1OSw3ICsyOTYwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zp
c2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWcKICAgICBp
ZiAoIWRpZFN1c3BlbmRQcmV2aW91c1BhZ2UpCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6Q2xvc2UoKSwgbV93ZWJQYWdlSUQpOwogCi0gICAgc3dhcFRvV2ViUHJv
Y2VzcyhtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+dGFr
ZURyYXdpbmdBcmVhKCksIG1fcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKSk7CisgICAgc3dh
cFRvV2ViUHJvY2VzcyhtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lvbmFs
UGFnZS0+d2ViUGFnZUlEKCksIG1fcHJvdmlzaW9uYWxQYWdlLT50YWtlRHJhd2luZ0FyZWEoKSwg
bV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIGF1dG8gYWNjZXNzaWJpbGl0eVRva2VuID0gbV9wcm92aXNpb25hbFBhZ2UtPnRha2VBY2Nl
c3NpYmlsaXR5VG9rZW4oKTsKQEAgLTQ2MjUsMTEgKzQ2MjYsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwK
ICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEs
IHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIFdURk1vdmUoZnJh
bWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZp
Z2F0aW9uQWN0aW9uRGF0YSksCisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZN
b3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1v
dmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEp
LCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEs
IGxpc3RlbmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKICAgICBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0
X3QgbGlzdGVuZXJJRCkKQEAgLTQ2MzcsOCArNDYzOCw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94CiAgICAgYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBN
RVNTQUdFX0NIRUNLKHByb2Nlc3MsIGZyYW1lKTsKIAotICAgIGF1dG8gc2VuZGVyID0gUG9saWN5
RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gcHJvY2Vzcy5j
b3B5UmVmKCldIChhdXRvLi4uIGFyZ3MpIHsKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQs
IGFyZ3MuLi4pLCBtX3dlYlBhZ2VJRCk7CisgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lv
blNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZyYW1lSUQsIGxpc3RlbmVy
SUQsIHByb2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKGF1dG8uLi4gYXJncykgeworICAgICAg
ICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNp
b24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIHdlYlBhZ2VJRCk7CiAgICAgfSk7CiAK
ICAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHByb2Nlc3MuY29weVJlZigpLCAq
ZnJhbWUsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIG5hdmlnYXRpb25JRCwgV1RGTW92
ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0
aW5nUGFnZUlELApAQCAtNDkzNSwxMCArNDkzNiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93
bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0
aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmli
dXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3Qs
IGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRh
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJv
dGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwpAQCAtNDk1MSwxNCArNDk1MiwxNCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHByb2Nlc3MsIHJl
c3BvbnNlLnVybCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb24g
PSBuYXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0aW9u
SUQpIDogbnVsbHB0cjsKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQ
b2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5h
dmlnYXRpb24pLAorICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGlj
eUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2Vi
UGFnZUlELCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RG
TW92ZShuYXZpZ2F0aW9uKSwKICAgICAgICAgcHJvY2VzcyA9IHByb2Nlc3MuY29weVJlZigpXSAo
UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0
cjxTYWZlQnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcpIG11dGFibGUgewog
ICAgICAgICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyogaXMgbnVs
bHB0ciBoZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9s
aWNpZXMgZ28gYXdheS4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7CiAgICAgICAg
IEFTU0VSVF9VTlVTRUQoc2FmZUJyb3dzaW5nV2FybmluZywgIXNhZmVCcm93c2luZ1dhcm5pbmcp
OwogCi0gICAgICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShp
ZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyks
IGZyYW1lSUQsIGxpc3RlbmVySUQsIHByb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpXSAoYXV0by4u
LiBhcmdzKSB7Ci0gICAgICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpE
aWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIG1f
d2ViUGFnZUlEKTsKKyAgICAgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6
Y3JlYXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZyYW1lSUQsIGxpc3RlbmVySUQsIHByb2Nl
c3MgPSBXVEZNb3ZlKHByb2Nlc3MpXSAoYXV0by4uLiBhcmdzKSB7CisgICAgICAgICAgICBwcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJh
bWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIHdlYlBhZ2VJRCk7CiAgICAgICAgIH0pOwogICAg
ICAgICAKICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmln
YXRpb24uZ2V0KCksIFdURjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKQEAgLTg2OTcsMTUg
Kzg2OTgsMTUgQEAgV2ViVVJMU2NoZW1lSGFuZGxlciogV2ViUGFnZVByb3h5Ojp1cmxTY2hlbWVI
YW5kbGVyRm9yU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OnN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiB7Ci0gICAgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIFdU
Rk1vdmUocGFyYW1ldGVycykpOworICAgIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCit2
b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkxTY2hlbWVUYXNr
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fdXJsU2No
ZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZmluZChwYXJhbWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVy
KTsKICAgICBNRVNTQUdFX0NIRUNLKHByb2Nlc3MsIGl0ZXJhdG9yICE9IG1fdXJsU2NoZW1lSGFu
ZGxlcnNCeUlkZW50aWZpZXIuZW5kKCkpOwogCi0gICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRh
c2soKnRoaXMsIHByb2Nlc3MsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFy
YW1ldGVycy5yZXF1ZXN0KSwgbnVsbHB0cik7CisgICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRh
c2soKnRoaXMsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgcGFyYW1ldGVycy50YXNrSWRlbnRpZmllciwg
V1RGTW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBudWxscHRyKTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OnN0b3BVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50
NjRfdCB0YXNrSWRlbnRpZmllcikKQEAgLTg3MjEsNyArODcyMiw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpsb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJz
JiYgcGFyYW1lCiAgICAgYXV0byBpdGVyYXRvciA9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50
aWZpZXIuZmluZChwYXJhbWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBNRVNTQUdFX0NI
RUNLKG1fcHJvY2VzcywgaXRlcmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmll
ci5lbmQoKSk7CiAKLSAgICBpdGVyYXRvci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgbV9wcm9j
ZXNzLCBwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVz
dCksIFdURk1vdmUocmVwbHkpKTsKKyAgICBpdGVyYXRvci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhp
cywgbV9wcm9jZXNzLCBtX3dlYlBhZ2VJRCwgcGFyYW1ldGVycy50YXNrSWRlbnRpZmllciwgV1RG
TW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKICNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCBjOWY4MTFmZTViZC4uYzgyZTkyNTkzMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNTEyLDE0ICsxNTEyLDE0IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZE5h
dmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNv
bnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgVVJMJiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwKICAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVy
SUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmKTsKLSAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKLSAgICB2b2lkIGxvYWREYXRh
V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0
aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwg
Y29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVj
dCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKLSAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRp
b25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsK
KyAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7Cisg
ICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVu
Y29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2Vi
Q29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNp
ZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90
QWxsb3cpOworICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9u
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpu
dWxsb3B0KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAog
ICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksCkBAIC0xNzM2LDcgKzE3MzYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hv
cnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpv
bnRhbFdoZWVsRXZlbnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9
CiAKICAgICB2b2lkIGxhdW5jaFByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mKTsKLSAgICB2b2lkIHN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
c3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYsIFJlZlB0cjxXZWJGcmFtZVByb3h5
PiYmIG1haW5GcmFtZSk7CisgICAgdm9pZCBzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4mJiwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKTsKICAgICB2
b2lkIGRpZEZhaWxUb1N1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7CiAgICAgdm9pZCBkaWRTdXNw
ZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZUhhbmRsZXIuY3BwCmluZGV4IDVhNmNjOTVkMGY4Li45MGMwYjgwZTAwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAg
LTQ4LDkgKzQ4LDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhhbmRsZXIo
KQogICAgIEFTU0VSVChtX3Rhc2tzLmlzRW1wdHkoKSk7CiB9CiAKLXZvaWQgV2ViVVJMU2NoZW1l
SGFuZGxlcjo6c3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgdGFz
a0lkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlv
bkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGFz
a3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBh
Z2UsIHByb2Nlc3MsIHRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90YXNrcy5hZGQodGFza0lk
ZW50aWZpZXIsIFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcHJvY2Vzcywg
d2ViUGFnZUlELCB0YXNrSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpKTsKICAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwogCiAgICAg
YXV0byBwYWdlRW50cnkgPSBtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5hZGQocGFnZS5pZGVudGlm
aWVyKCksIEhhc2hTZXQ8dWludDY0X3Q+KCkpOwpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV2Vi
VVJMU2NoZW1lSGFuZGxlcjo6dGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQog
ewogICAgIGF1dG8gdGFrZW5UYXNrID0gbV90YXNrcy50YWtlKHRhc2suaWRlbnRpZmllcigpKTsK
ICAgICBBU1NFUlRfVU5VU0VEKHRha2VuVGFzaywgdGFrZW5UYXNrLT5wdHIoKSA9PSAmdGFzayk7
Ci0gICAgcmVtb3ZlVGFza0Zyb21QYWdlTWFwKHRhc2sucGFnZUlEKCksIHRhc2suaWRlbnRpZmll
cigpKTsKKyAgICByZW1vdmVUYXNrRnJvbVBhZ2VNYXAodGFzay5wYWdlUHJveHlJRCgpLCB0YXNr
LmlkZW50aWZpZXIoKSk7CiAKICAgICBwbGF0Zm9ybVRhc2tDb21wbGV0ZWQodGFzayk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKaW5kZXggZDU4
YzdlNTY3MzIuLjIzNDkwNmY0YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lSGFuZGxlci5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHVpbnQ2
NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAotICAgIHZv
aWQgc3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHRh
c2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0
aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJQcm9j
ZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVy
JiYpOwogICAgIHZvaWQgc3RvcFRhc2soV2ViUGFnZVByb3h5JiwgdWludDY0X3QgdGFza0lkZW50
aWZpZXIpOwogICAgIHZvaWQgc3RvcEFsbFRhc2tzRm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJQ
cm9jZXNzUHJveHkqKTsKICAgICB2b2lkIHRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAppbmRleCBk
NjFmMTM2MjI2NC4uMjdhM2RiNTRmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZVRhc2suY3BwCkBAIC0zNiwxNyArMzYsMTcgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxXZWJVUkxTY2hlbWVUYXNrPiBXZWJV
UkxTY2hlbWVUYXNrOjpjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFn
ZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbnQ2NF90IHJlc291cmNl
SWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9u
SGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKK1JlZjxXZWJVUkxTY2hlbWVUYXNrPiBX
ZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2Vi
UGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlVSTFNjaGVtZVRhc2soaGFuZGxl
ciwgcGFnZSwgcHJvY2VzcywgcmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKHN5bmNDb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJVUkxTY2hlbWVUYXNrKGhhbmRsZXIsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgcmVz
b3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHN5bmNDb21wbGV0aW9u
SGFuZGxlcikpKTsKIH0KIAotV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayhXZWJV
UkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25I
YW5kbGVyKQorV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayhXZWJVUkxTY2hlbWVI
YW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJv
Y2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZp
ZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXIm
JiBzeW5jQ29tcGxldGlvbkhhbmRsZXIpCiAgICAgOiBtX3VybFNjaGVtZUhhbmRsZXIoaGFuZGxl
cikKLSAgICAsIG1fcGFnZSgmcGFnZSkKICAgICAsIG1fcHJvY2VzcyhtYWtlUmVmKHByb2Nlc3Mp
KQogICAgICwgbV9pZGVudGlmaWVyKHJlc291cmNlSWRlbnRpZmllcikKLSAgICAsIG1fcGFnZUlk
ZW50aWZpZXIocGFnZS5pZGVudGlmaWVyKCkpCisgICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRl
bnRpZmllcigpKQorICAgICwgbV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwgbV9yZXF1ZXN0
KFdURk1vdmUocmVxdWVzdCkpCiAgICAgLCBtX3N5bmNDb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KHN5bmNDb21wbGV0aW9uSGFuZGxlcikpCiB7CkBAIC04Miw3ICs4Miw3IEBAIGF1dG8gV2ViVVJM
U2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiByZXNwb25zCiAgICAgICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgfQogCi0gICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVyZm9y
bVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZp
ZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVyZm9ybVJlZGly
ZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJl
c3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOwogCiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5
cGU6Ok5vbmU7CiB9CkBAIC0xMDcsNyArMTA3LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpk
aWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIC0+IEUK
ICAgICBpZiAoaXNTeW5jKCkpCiAgICAgICAgIG1fc3luY1Jlc3BvbnNlID0gcmVzcG9uc2U7CiAK
LSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRS
ZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRp
ZmllciwgcmVzcG9uc2UpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91
cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBt
X3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTEz
NCw3ICsxMzQsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVEYXRhKFJlZjxT
aGFyZWRCdWZmZXI+JiYgYnVmZmVyKSAtPiBFeGNlcHRpb25UeQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uVHlwZTo6Tm9uZTsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShtX3VybFNjaGVtZUhhbmRsZXIt
PmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCB7IGJ1ZmZlciB9KSwgbV9wYWdlLT53ZWJQYWdl
SUQoKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVU
YXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRl
bnRpZmllciwgeyBidWZmZXIgfSksIG1fd2ViUGFnZUlEKTsKICAgICByZXR1cm4gRXhjZXB0aW9u
VHlwZTo6Tm9uZTsKIH0KIApAQCAtMTY0LDcgKzE2NCw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFz
azo6ZGlkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIC0+IEV4Y2VwdGlvblR5
cGUKICAgICAgICAgbV9zeW5jRGF0YSA9IG51bGxwdHI7CiAgICAgfQogCi0gICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkQ29tcGxldGUobV91cmxT
Y2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgZXJyb3IpLCBtX3BhZ2Ut
PndlYlBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVS
TFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwg
bV9pZGVudGlmaWVyLCBlcnJvciksIG1fd2ViUGFnZUlEKTsKICAgICBtX3VybFNjaGVtZUhhbmRs
ZXItPnRhc2tDb21wbGV0ZWQoKnRoaXMpOwogCiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5v
bmU7CkBAIC0xNzMsOSArMTczLDkgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0
ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogdm9pZCBXZWJV
UkxTY2hlbWVUYXNrOjpwYWdlRGVzdHJveWVkKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwotICAgIEFTU0VSVChtX3BhZ2UpOwogCi0gICAgbV9wYWdlID0gbnVsbHB0cjsKKyAg
ICBtX3BhZ2VQcm94eUlEID0geyB9OworICAgIG1fd2ViUGFnZUlEID0geyB9OwogICAgIG1fcHJv
Y2VzcyA9IG51bGxwdHI7CiAgICAgbV9zdG9wcGVkID0gdHJ1ZTsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAppbmRleCAzOWIyZmViNDNiZi4uYmZkOTIz
MzkxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRh
c2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKQEAg
LTU0LDEzICs1NCwxMyBAQCB1c2luZyBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZQogY2xhc3MgV2ViVVJMU2No
ZW1lVGFzayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiwg
cHVibGljIEluc3RhbmNlQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV2ViVVJMU2NoZW1lVGFzayk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94
eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHN0YXRpYyBS
ZWY8V2ViVVJMU2NoZW1lVGFzaz4gY3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImLCBXZWJQYWdl
UHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0
X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxl
dGlvbkhhbmRsZXImJik7CiAKICAgICB+V2ViVVJMU2NoZW1lVGFzaygpOwogCiAgICAgdWludDY0
X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKCkgY29u
c3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsg
fQotCisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0KKyAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYlByb2Nlc3NQcm94eSogcHJv
Y2VzcygpIHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQo
KTsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC04NywxNSArODcsMTUgQEAgcHVibGljOgog
ICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwogCiBwcml2YXRlOgotICAgIFdlYlVSTFNjaGVtZVRh
c2soV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYs
IHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9h
ZENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1l
SGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIGJvb2wgaXNTeW5jKCkgY29u
c3QgeyByZXR1cm4gISFtX3N5bmNDb21wbGV0aW9uSGFuZGxlcjsgfQogCiAgICAgUmVmPFdlYlVS
TFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcjsKLSAgICBXZWJQYWdlUHJveHkqIG1f
cGFnZTsKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CiAgICAgdWludDY0
X3QgbV9pZGVudGlmaWVyOwotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlSWRlbnRp
ZmllcjsKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7CisgICAgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBtdXRhYmxlIExvY2sgbV9yZXF1ZXN0TG9jazsKICAgICBi
b29sIG1fc3RvcHBlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggNzcyNjcyYzQ5YjAuLjZkZmVmZGVmMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03NDYsNyArNzQ2LDcgQEAgdm9pZCBXZWJQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGUKICAgICB9CiAjZW5kaWYKIAotICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHdlYiBw
cm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRv
U3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCkp
OworICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyAo
ZGVzdGluYXRpb246ICVsbHUpIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJp
bmcoKS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVj
b2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBXZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJh
bWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377596</attachid>
            <date>2019-08-29 10:36:40 -0700</date>
            <delta_ts>2019-08-29 12:17:34 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>201225_pson_webPageID_bump_wip.patch</filename>
            <type>text/plain</type>
            <size>34057</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApp
bmRleCAwYzAzNDA2OTA0MS4uYWRiMDgyYzUxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBh
Z2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBw
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBt
X3dlYlBhZ2VJRChwYWdlLndlYlBhZ2VJRCgpKQorICAgICwgbV93ZWJQYWdlSUQoc3VzcGVuZGVk
UGFnZSA/IHN1c3BlbmRlZFBhZ2UtPndlYlBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCkpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAgICAsIG1fbmF2aWdh
dGlvbklEKG5hdmlnYXRpb25JRCkKICAgICAsIG1faXNTZXJ2ZXJSZWRpcmVjdChpc1NlcnZlclJl
ZGlyZWN0KQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6Omxv
YWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhCiB7CiAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YTogcGFn
ZVByb3h5SUQgPSAlIiBQUkl1NjQgIiB3ZWJQYWdlSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5pZGVu
dGlmaWVyKCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSk7CiAKLSAgICBtX3Bh
Z2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZp
Z2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXMpKTsKKyAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVu
Y29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVj
dCogdXNlckRhdGEsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGlj
aWVzKQpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzCiAgICAgaWYg
KG5hdmlnYXRpb24uZnJvbUl0ZW0oKSAmJiBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3Qo
KSA9PSBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpCiAgICAgICAgIG5hdmlnYXRp
b24uZnJvbUl0ZW0oKS0+c2V0TGFzdFByb2Nlc3NJZGVudGlmaWVyKG1fcHJvY2Vzcy0+Y29yZVBy
b2Nlc3NJZGVudGlmaWVyKCkpOwogCi0gICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRp
b25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0
KSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwor
ICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9u
JiBuYXZpZ2F0aW9uLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBPcHRpb25hbDxXZWJz
aXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKQEAgLTI5Myw3ICsyOTMsNyBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
QXN5bmMoRnJhbWVJZGVudGlmaWVyCiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5h
dmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJ
RCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklE
LCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2Vi
UGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBX
VEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0
LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVj
dFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCkBAIC0zMDMsNyArMzAzLDcg
QEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnMKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJ
RCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVl
c3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJE
YXRhKTsKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKQEAgLTMyNCw3ICszMjQsNyBAQCB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShGcgogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRh
c2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewotICAgIG1fcGFnZS5z
dGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgV1RGTW92ZShwYXJh
bWV0ZXJzKSk7CisgICAgbV9wYWdlLnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBtX3dlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCA1
YjRjOWNmMmVkYi4uMzM4NGM4MWQ4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgflBy
b3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVy
biBtX3BhZ2U7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25z
dCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCmluZGV4IDdiOTViNmVkZThhLi4xYWMzZDg4
MTUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgK
QEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIH5TdXNwZW5kZWRQYWdlUHJveHkoKTsKIAog
ICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFn
ZUlEOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNz
LmdldCgpOyB9CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCBjMTQyMTQwODQ5YS4uMjQzYWM2NTVhZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzk0LDEyICs3OTQsMTMgQEAgYm9v
bCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0
aW9uJiBuYXZpZ2F0aW9uLCBPcHQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBz
dGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdl
YkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKQordm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlBy
b2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiYmIGRyYXdpbmdBcmVhLCBS
ZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xv
c2VkKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJzd2FwVG9XZWJQcm9j
ZXNzOiIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgInN3YXBUb1dlYlBy
b2Nlc3M6IG5ld1dlYlBhZ2VJRD0lIiBQUkl1NjQsIHdlYlBhZ2VJRC50b1VJbnQ2NCgpKTsKIAog
ICAgIG1fcHJvY2VzcyA9IFdURk1vdmUocHJvY2Vzcyk7CisgICAgbV93ZWJQYWdlSUQgPSB3ZWJQ
YWdlSUQ7CiAgICAgbV93ZWJzaXRlRGF0YVN0b3JlID0gbV9wcm9jZXNzLT53ZWJzaXRlRGF0YVN0
b3JlKCk7CiAKICAgICBpZiAobV9sb2dnZXIpCkBAIC0xMTI1LDExICsxMTI2LDExIEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgU2hvCiAgICAgICAgIGxhdW5jaFByb2Nlc3MoUmVnaXN0cmFibGVEb21h
aW4geyByZXF1ZXN0LnVybCgpIH0pOwogCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0
aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QocmVx
dWVzdCksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsKLSAgICBsb2FkUmVxdWVz
dFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG5hdmlnYXRpb24uZ2V0
KCksIFdURk1vdmUocmVxdWVzdCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJE
YXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKKyAgICBsb2FkUmVxdWVzdFdp
dGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZp
Z2F0aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5LCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAgcmV0
dXJuIG5hdmlnYXRpb247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9s
aWNpZXMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsK
IApAQCAtMTE1NSw3ICsxMTU2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKIAogICAgIGFk
ZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCi0gICAgcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCBtX3dl
YlBhZ2VJRCk7CisgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVl
c3QobG9hZFBhcmFtZXRlcnMpLCB3ZWJQYWdlSUQpOwogICAgIHByb2Nlc3MtPnJlc3BvbnNpdmVu
ZXNzVGltZXIoKS5zdGFydCgpOwogfQogCkBAIC0xMjI3LDExICsxMjI4LDExIEBAIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZERhdGEoY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBkYXRhLCBjCiAgICAgICAgIGxhdW5jaFByb2Nlc3MoeyB9KTsKIAogICAgIGF1dG8g
bmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkRGF0YU5hdmlnYXRpb24o
bWFrZVVuaXF1ZTxBUEk6OlN1YnN0aXR1dGVEYXRhPihkYXRhLnZlY3RvcigpLCBNSU1FVHlwZSwg
ZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhKSk7Ci0gICAgbG9hZERhdGFXaXRoTmF2aWdhdGlv
blNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwg
ZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6
Ok5vLCBXVEY6Om51bGxvcHQsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIGxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdl
SUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRh
dGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIFdURjo6bnVsbG9wdCwgc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQor
dm9pZCBXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQs
IEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uIik7CiAKQEAgLTEyNTQs
NyArMTI1NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBhZGRQbGF0Zm9ybUxvYWRQ
YXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIHByb2Nlc3MtPmFzc3VtZVJlYWRBY2Nl
c3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwotICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwgbV93ZWJQYWdlSUQpOworICAgIHBy
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwg
d2ViUGFnZUlEKTsKICAgICBwcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsK
IH0KIApAQCAtMjk1OSw3ICsyOTYwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zp
c2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWcKICAgICBp
ZiAoIWRpZFN1c3BlbmRQcmV2aW91c1BhZ2UpCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6Q2xvc2UoKSwgbV93ZWJQYWdlSUQpOwogCi0gICAgc3dhcFRvV2ViUHJv
Y2VzcyhtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+dGFr
ZURyYXdpbmdBcmVhKCksIG1fcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKSk7CisgICAgc3dh
cFRvV2ViUHJvY2VzcyhtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lvbmFs
UGFnZS0+d2ViUGFnZUlEKCksIG1fcHJvdmlzaW9uYWxQYWdlLT50YWtlRHJhd2luZ0FyZWEoKSwg
bV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIGF1dG8gYWNjZXNzaWJpbGl0eVRva2VuID0gbV9wcm92aXNpb25hbFBhZ2UtPnRha2VBY2Nl
c3NpYmlsaXR5VG9rZW4oKTsKQEAgLTI5OTksNyArMzAwMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0
aW9uLCBzCiAgICAgaWYgKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpICYmIChuYXZp
Z2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMg
fHwgbmF2aWdhdGlvbi5sb2NrSGlzdG9yeSgpID09IExvY2tIaXN0b3J5OjpZZXMpKSB7CiAgICAg
ICAgIC8vIElmIFdlYkNvcmUgaXMgc3VwcG9zZWQgdG8gbG9jayB0aGUgaGlzdG9yeSBmb3IgdGhp
cyBsb2FkLCB0aGVuIHRoZSBuZXcgcHJvY2VzcyBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBjdXJy
ZW50IGhpc3RvcnkgaXRlbSBzbyBpdCBjYW4gdXBkYXRlCiAgICAgICAgIC8vIGl0IGluc3RlYWQg
b2YgY3JlYXRpbmcgYSBuZXcgb25lLgotICAgICAgICBuZXdQcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpTZXRDdXJyZW50SGlzdG9yeUl0ZW1Gb3JSZWF0dGFjaChtX2JhY2tGb3J3YXJk
TGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbVN0YXRlKCkpLCBtX3dlYlBhZ2VJRCk7CisgICAgICAg
IG5ld1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEN1cnJlbnRIaXN0b3J5SXRl
bUZvclJlYXR0YWNoKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtU3RhdGUo
KSksIG1fcHJvdmlzaW9uYWxQYWdlLT53ZWJQYWdlSUQoKSk7CiAgICAgfQogCiAgICAgLy8gRklY
TUU6IFdvcmsgb3V0IHRpbWluZyBvZiByZXNwb25kaW5nIHdpdGggdGhlIGxhc3QgcG9saWN5IGRl
bGVnYXRlLCBldGMKQEAgLTQ2MjUsMTEgKzQ2MjYsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFt
ZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2
NF90IGxpc3RlbmVySUQpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1
cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9u
QWN0aW9uRGF0YSksCisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZy
YW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2
aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmln
aW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3Rl
bmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKICAgICBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYg
ZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0
aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxS
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRp
cmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlz
dGVuZXJJRCkKQEAgLTQ2MzcsOCArNDYzOCw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94CiAg
ICAgYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdF
X0NIRUNLKHByb2Nlc3MsIGZyYW1lKTsKIAotICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNp
b25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gcHJvY2Vzcy5jb3B5UmVm
KCldIChhdXRvLi4uIGFyZ3MpIHsKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIGFyZ3Mu
Li4pLCBtX3dlYlBhZ2VJRCk7CisgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRl
cjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZyYW1lSUQsIGxpc3RlbmVySUQsIHBy
b2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKGF1dG8uLi4gYXJncykgeworICAgICAgICBwcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJh
bWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIHdlYlBhZ2VJRCk7CiAgICAgfSk7CiAKICAgICBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHByb2Nlc3MuY29weVJlZigpLCAqZnJhbWUs
IFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZp
Z2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFn
ZUlELApAQCAtNDkzNSwxMCArNDkzNiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdAogdm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRB
dHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKLSAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQs
IHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBs
aXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNo
b3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9y
IHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwpAQCAtNDk1MSwxNCArNDk1MiwxNCBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLAogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHByb2Nlc3MsIHJlc3BvbnNl
LnVybCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb24gPSBuYXZp
Z2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpIDog
bnVsbHB0cjsKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lM
aXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1l
SUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRp
b24pLAorICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3Rl
bmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2ViUGFnZUlE
LCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShu
YXZpZ2F0aW9uKSwKICAgICAgICAgcHJvY2VzcyA9IHByb2Nlc3MuY29weVJlZigpXSAoUG9saWN5
QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxTYWZl
QnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcpIG11dGFibGUgewogICAgICAg
ICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyogaXMgbnVsbHB0ciBo
ZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMg
Z28gYXdheS4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7CiAgICAgICAgIEFTU0VS
VF9VTlVTRUQoc2FmZUJyb3dzaW5nV2FybmluZywgIXNhZmVCcm93c2luZ1dhcm5pbmcpOwogCi0g
ICAgICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlm
aWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZyYW1l
SUQsIGxpc3RlbmVySUQsIHByb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpXSAoYXV0by4uLiBhcmdz
KSB7Ci0gICAgICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNl
aXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIG1fd2ViUGFn
ZUlEKTsKKyAgICAgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRl
KGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZyYW1lSUQsIGxpc3RlbmVySUQsIHByb2Nlc3MgPSBX
VEZNb3ZlKHByb2Nlc3MpXSAoYXV0by4uLiBhcmdzKSB7CisgICAgICAgICAgICBwcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwg
bGlzdGVuZXJJRCwgYXJncy4uLiksIHdlYlBhZ2VJRCk7CiAgICAgICAgIH0pOwogICAgICAgICAK
ICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24u
Z2V0KCksIFdURjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKQEAgLTg2OTcsMTUgKzg2OTgs
MTUgQEAgV2ViVVJMU2NoZW1lSGFuZGxlciogV2ViUGFnZVByb3h5Ojp1cmxTY2hlbWVIYW5kbGVy
Rm9yU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0
VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7Ci0g
ICAgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIFdURk1vdmUo
cGFyYW1ldGVycykpOworICAgIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCit2b2lkIFdl
YlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fdXJsU2NoZW1lSGFu
ZGxlcnNCeUlkZW50aWZpZXIuZmluZChwYXJhbWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVyKTsKICAg
ICBNRVNTQUdFX0NIRUNLKHByb2Nlc3MsIGl0ZXJhdG9yICE9IG1fdXJsU2NoZW1lSGFuZGxlcnNC
eUlkZW50aWZpZXIuZW5kKCkpOwogCi0gICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRo
aXMsIHByb2Nlc3MsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVy
cy5yZXF1ZXN0KSwgbnVsbHB0cik7CisgICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRo
aXMsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgcGFyYW1ldGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92
ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBudWxscHRyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OnN0b3BVUkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0
YXNrSWRlbnRpZmllcikKQEAgLTg3MjEsNyArODcyMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFy
YW1lCiAgICAgYXV0byBpdGVyYXRvciA9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIu
ZmluZChwYXJhbWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgaXRlcmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQo
KSk7CiAKLSAgICBpdGVyYXRvci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgbV9wcm9jZXNzLCBw
YXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIFdU
Rk1vdmUocmVwbHkpKTsKKyAgICBpdGVyYXRvci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgbV9w
cm9jZXNzLCBtX3dlYlBhZ2VJRCwgcGFyYW1ldGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92ZShw
YXJhbWV0ZXJzLnJlcXVlc3QpLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBjOWY4MTFmZTViZC4uYzgyZTkyNTkzMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xNTEyLDE0ICsxNTEyLDE0IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdl
Yk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZv
aWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMJiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwKICAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwot
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
KTsKLSAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKLSAgICB2b2lkIGxvYWREYXRhV2l0aE5h
dmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93KTsKLSAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQ
STo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
LCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsKKyAgICB2
b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CisgICAgdm9p
ZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5n
LCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRh
PiYmID0gV1RGOjpudWxsb3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OworICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0
KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAg
ICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
JiYgcmVxdWVzdEJvZHksCkBAIC0xNzM2LDcgKzE3MzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJj
dWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdo
ZWVsRXZlbnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9CiAKICAg
ICB2b2lkIGxhdW5jaFByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mKTsK
LSAgICB2b2lkIHN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgc3RkOjp1
bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYsIFJlZlB0cjxXZWJGcmFtZVByb3h5PiYmIG1h
aW5GcmFtZSk7CisgICAgdm9pZCBzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQ
cm94eT4mJiwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKTsKICAgICB2b2lkIGRp
ZEZhaWxUb1N1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7CiAgICAgdm9pZCBkaWRTdXNwZW5kQWZ0
ZXJQcm9jZXNzU3dhcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNj
aGVtZUhhbmRsZXIuY3BwCmluZGV4IDVhNmNjOTVkMGY4Li45MGMwYjgwZTAwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAgLTQ4LDkg
KzQ4LDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhhbmRsZXIoKQogICAg
IEFTU0VSVChtX3Rhc2tzLmlzRW1wdHkoKSk7CiB9CiAKLXZvaWQgV2ViVVJMU2NoZW1lSGFuZGxl
cjo6c3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
LCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3lu
Y0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJVUkxT
Y2hlbWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgdGFza0lkZW50
aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRk
KHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHBy
b2Nlc3MsIHRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90YXNrcy5hZGQodGFza0lkZW50aWZp
ZXIsIFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcHJvY2Vzcywgd2ViUGFn
ZUlELCB0YXNrSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpKTsKICAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwogCiAgICAgYXV0byBw
YWdlRW50cnkgPSBtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5hZGQocGFnZS5pZGVudGlmaWVyKCks
IEhhc2hTZXQ8dWludDY0X3Q+KCkpOwpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV2ViVVJMU2No
ZW1lSGFuZGxlcjo6dGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQogewogICAg
IGF1dG8gdGFrZW5UYXNrID0gbV90YXNrcy50YWtlKHRhc2suaWRlbnRpZmllcigpKTsKICAgICBB
U1NFUlRfVU5VU0VEKHRha2VuVGFzaywgdGFrZW5UYXNrLT5wdHIoKSA9PSAmdGFzayk7Ci0gICAg
cmVtb3ZlVGFza0Zyb21QYWdlTWFwKHRhc2sucGFnZUlEKCksIHRhc2suaWRlbnRpZmllcigpKTsK
KyAgICByZW1vdmVUYXNrRnJvbVBhZ2VNYXAodGFzay5wYWdlUHJveHlJRCgpLCB0YXNrLmlkZW50
aWZpZXIoKSk7CiAKICAgICBwbGF0Zm9ybVRhc2tDb21wbGV0ZWQodGFzayk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKaW5kZXggZDU4YzdlNTY3
MzIuLjIzNDkwNmY0YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2No
ZW1lSGFuZGxlci5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHVpbnQ2NF90IGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAotICAgIHZvaWQgc3Rh
cnRUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHRhc2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmKTsKKyAgICB2b2lkIHN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJv
eHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOwog
ICAgIHZvaWQgc3RvcFRhc2soV2ViUGFnZVByb3h5JiwgdWludDY0X3QgdGFza0lkZW50aWZpZXIp
OwogICAgIHZvaWQgc3RvcEFsbFRhc2tzRm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNz
UHJveHkqKTsKICAgICB2b2lkIHRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAppbmRleCBkNjFmMTM2
MjI2NC4uMjdhM2RiNTRmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlVSTFNjaGVtZVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNj
aGVtZVRhc2suY3BwCkBAIC0zNiwxNyArMzYsMTcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxXZWJVUkxTY2hlbWVUYXNrPiBXZWJVUkxTY2hl
bWVUYXNrOjpjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVByb3h5
JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRp
ZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxl
ciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKK1JlZjxXZWJVUkxTY2hlbWVUYXNrPiBXZWJVUkxT
Y2hlbWVUYXNrOjpjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVBy
b3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlVSTFNjaGVtZVRhc2soaGFuZGxlciwgcGFn
ZSwgcHJvY2VzcywgcmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KHN5bmNDb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJV
UkxTY2hlbWVUYXNrKGhhbmRsZXIsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgcmVzb3VyY2VJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHN5bmNDb21wbGV0aW9uSGFuZGxl
cikpKTsKIH0KIAotV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayhXZWJVUkxTY2hl
bWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzcywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVy
KQorV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayhXZWJVUkxTY2hlbWVIYW5kbGVy
JiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcywg
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5j
Q29tcGxldGlvbkhhbmRsZXIpCiAgICAgOiBtX3VybFNjaGVtZUhhbmRsZXIoaGFuZGxlcikKLSAg
ICAsIG1fcGFnZSgmcGFnZSkKICAgICAsIG1fcHJvY2VzcyhtYWtlUmVmKHByb2Nlc3MpKQogICAg
ICwgbV9pZGVudGlmaWVyKHJlc291cmNlSWRlbnRpZmllcikKLSAgICAsIG1fcGFnZUlkZW50aWZp
ZXIocGFnZS5pZGVudGlmaWVyKCkpCisgICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRlbnRpZmll
cigpKQorICAgICwgbV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwgbV9yZXF1ZXN0KFdURk1v
dmUocmVxdWVzdCkpCiAgICAgLCBtX3N5bmNDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHN5bmND
b21wbGV0aW9uSGFuZGxlcikpCiB7CkBAIC04Miw3ICs4Miw3IEBAIGF1dG8gV2ViVVJMU2NoZW1l
VGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZXNwb25zCiAgICAgICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgfQogCi0gICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVyZm9ybVJlZGly
ZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJl
c3BvbnNlLCByZXF1ZXN0KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVyZm9ybVJlZGlyZWN0aW9u
KG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNl
LCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOwogCiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5v
bmU7CiB9CkBAIC0xMDcsNyArMTA3LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNl
aXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIC0+IEUKICAgICBp
ZiAoaXNTeW5jKCkpCiAgICAgICAgIG1fc3luY1Jlc3BvbnNlID0gcmVzcG9uc2U7CiAKLSAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZl
UmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwg
cmVzcG9uc2UpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hl
bWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBh
Z2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTEzNCw3ICsx
MzQsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRC
dWZmZXI+JiYgYnVmZmVyKSAtPiBFeGNlcHRpb25UeQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
VHlwZTo6Tm9uZTsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50
aWZpZXIoKSwgbV9pZGVudGlmaWVyLCB7IGJ1ZmZlciB9KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7
CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlk
UmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmll
ciwgeyBidWZmZXIgfSksIG1fd2ViUGFnZUlEKTsKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6
Tm9uZTsKIH0KIApAQCAtMTY0LDcgKzE2NCw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlk
Q29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIC0+IEV4Y2VwdGlvblR5cGUKICAg
ICAgICAgbV9zeW5jRGF0YSA9IG51bGxwdHI7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkQ29tcGxldGUobV91cmxTY2hlbWVI
YW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgZXJyb3IpLCBtX3BhZ2UtPndlYlBh
Z2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVt
ZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVu
dGlmaWVyLCBlcnJvciksIG1fd2ViUGFnZUlEKTsKICAgICBtX3VybFNjaGVtZUhhbmRsZXItPnRh
c2tDb21wbGV0ZWQoKnRoaXMpOwogCiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CkBA
IC0xNzMsOSArMTczLDkgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogdm9pZCBXZWJVUkxTY2hl
bWVUYXNrOjpwYWdlRGVzdHJveWVkKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwotICAgIEFTU0VSVChtX3BhZ2UpOwogCi0gICAgbV9wYWdlID0gbnVsbHB0cjsKKyAgICBtX3Bh
Z2VQcm94eUlEID0geyB9OworICAgIG1fd2ViUGFnZUlEID0geyB9OwogICAgIG1fcHJvY2VzcyA9
IG51bGxwdHI7CiAgICAgbV9zdG9wcGVkID0gdHJ1ZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAppbmRleCAzOWIyZmViNDNiZi4uYmZkOTIzMzkxY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKQEAgLTU0LDEz
ICs1NCwxMyBAQCB1c2luZyBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZQogY2xhc3MgV2ViVVJMU2NoZW1lVGFz
ayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiwgcHVibGlj
IEluc3RhbmNlQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV2ViVVJMU2NoZW1lVGFzayk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJVUkxT
Y2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdl
YlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHN0YXRpYyBSZWY8V2Vi
VVJMU2NoZW1lVGFzaz4gY3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImLCBXZWJQYWdlUHJveHkm
LCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgaWRl
bnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlvbkhh
bmRsZXImJik7CiAKICAgICB+V2ViVVJMU2NoZW1lVGFzaygpOwogCiAgICAgdWludDY0X3QgaWRl
bnRpZmllcigpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsgfQotCisg
ICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0KKyAgICBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYlByb2Nlc3NQcm94eSogcHJvY2Vzcygp
IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC04NywxNSArODcsMTUgQEAgcHVibGljOgogICAgIHZv
aWQgcGFnZURlc3Ryb3llZCgpOwogCiBwcml2YXRlOgotICAgIFdlYlVSTFNjaGVtZVRhc2soV2Vi
VVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2
NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBs
ZXRpb25IYW5kbGVyJiYpOworICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxl
ciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3lu
Y0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIGJvb2wgaXNTeW5jKCkgY29uc3QgeyBy
ZXR1cm4gISFtX3N5bmNDb21wbGV0aW9uSGFuZGxlcjsgfQogCiAgICAgUmVmPFdlYlVSTFNjaGVt
ZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsK
ICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CiAgICAgdWludDY0X3QgbV9p
ZGVudGlmaWVyOwotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsK
KyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7CisgICAgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IG1fcmVxdWVzdDsKICAgICBtdXRhYmxlIExvY2sgbV9yZXF1ZXN0TG9jazsKICAgICBib29sIG1f
c3RvcHBlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggNzcyNjcyYzQ5YjAuLjZkZmVmZGVmMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC03NDYsNyArNzQ2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGUKICAgICB9CiAjZW5kaWYKIAotICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNz
IG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5n
KCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCkpOworICAg
IExPR19FUlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyAoZGVzdGlu
YXRpb246ICVsbHUpIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5k
YXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpOwogfQogCiBXZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377606</attachid>
            <date>2019-08-29 12:17:34 -0700</date>
            <delta_ts>2019-08-29 12:40:40 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>201225_pson_webPageID_bump_wip.patch</filename>
            <type>text/plain</type>
            <size>49055</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggZWMzMjM5M2ZhNzYuLjVjYTk1NmViMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMzksNiArMzksNyBA
QCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBzdG9yZTsKICAgICBlbmNvZGVyLmVuY29kZUVu
dW0oZHJhd2luZ0FyZWFUeXBlKTsKICAgICBlbmNvZGVyIDw8IGRyYXdpbmdBcmVhSWRlbnRpZmll
cjsKKyAgICBlbmNvZGVyIDw8IHdlYlBhZ2VQcm94eUlkZW50aWZpZXI7CiAgICAgZW5jb2RlciA8
PCBwYWdlR3JvdXBEYXRhOwogICAgIGVuY29kZXIgPDwgaXNFZGl0YWJsZTsKICAgICBlbmNvZGVy
IDw8IHVuZGVybGF5Q29sb3I7CkBAIC0xNTcsNiArMTU4LDExIEBAIE9wdGlvbmFsPFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6
OkRlY29kCiAgICAgaWYgKCFkcmF3aW5nQXJlYUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAgICAgcGFyYW1ldGVycy5kcmF3aW5nQXJlYUlkZW50aWZpZXIgPSAqZHJh
d2luZ0FyZWFJZGVudGlmaWVyOworICAgIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IHdlYlBhZ2VQcm94eUlkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiB3ZWJQYWdlUHJveHlJZGVu
dGlmaWVyOworICAgIGlmICghd2ViUGFnZVByb3h5SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICBwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlkZW50aWZpZXIgPSBX
VEZNb3ZlKCp3ZWJQYWdlUHJveHlJZGVudGlmaWVyKTsKICAgICBPcHRpb25hbDxXZWJQYWdlR3Jv
dXBEYXRhPiBwYWdlR3JvdXBEYXRhOwogICAgIGRlY29kZXIgPj4gcGFnZUdyb3VwRGF0YTsKICAg
ICBpZiAoIXBhZ2VHcm91cERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZTE5ZDk5NmExNjMuLjEwMTI0ZDBmYjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRh
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZUdyb3VwRGF0YS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyRGF0YVR5cGVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CkBA
IC04MCw2ICs4MSw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBX
ZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlOwogICAgIERyYXdpbmdBcmVhVHlwZSBkcmF3aW5nQXJl
YVR5cGU7CiAgICAgRHJhd2luZ0FyZWFJZGVudGlmaWVyIGRyYXdpbmdBcmVhSWRlbnRpZmllcjsK
KyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlkZW50aWZpZXI7CiAgICAg
V2ViUGFnZUdyb3VwRGF0YSBwYWdlR3JvdXBEYXRhOwogCiAgICAgYm9vbCBpc0VkaXRhYmxlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBmNDA0
MmZlNzBkZi4uMzVhYzRkZjZlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC0xMzYyLDcgKzEzNjIsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmll
d0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRl
cldlYgogV2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCgpCiB7CiAgICAgaWYgKG1fcmVtb3RlT2Jq
ZWN0UmVnaXN0cnkpIHsKLSAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5y
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgICAgICBtX3BhZ2Ut
PnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5pZGVu
dGlmaWVyKCkpOwogICAgICAgICBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSBfaW52YWxpZGF0ZV07
CiAgICAgICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBuaWw7CiAgICAgfQpAQCAtMzgyMyw3
ICszODIzLDcgQEAgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKldlYlZpZXdJbXBsOjpyZW1vdGVP
YmplY3RSZWdpc3RyeSgpCiB7CiAgICAgaWYgKCFtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7CiAg
ICAgICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eTptX3BhZ2VdKTsKLSAgICAgICAg
bV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+
d2ViUGFnZUlEKCksIFttX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5
XSk7CisgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3Rl
T2JqZWN0UmVnaXN0cnldKTsKICAgICB9CiAKICAgICByZXR1cm4gbV9yZW1vdGVPYmplY3RSZWdp
c3RyeS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcAppbmRleCAwYzAzNDA2OTA0MS4uYWRiMDgyYzUxMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQ
cm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2Vzcywgc3RkOjp1bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVu
ZGVkUGFnZSwgdWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KQogICAgIDogbV9wYWdlKHBh
Z2UpCi0gICAgLCBtX3dlYlBhZ2VJRChwYWdlLndlYlBhZ2VJRCgpKQorICAgICwgbV93ZWJQYWdl
SUQoc3VzcGVuZGVkUGFnZSA/IHN1c3BlbmRlZFBhZ2UtPndlYlBhZ2VJRCgpIDogUGFnZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAg
ICAsIG1fbmF2aWdhdGlvbklEKG5hdmlnYXRpb25JRCkKICAgICAsIG1faXNTZXJ2ZXJSZWRpcmVj
dChpc1NlcnZlclJlZGlyZWN0KQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBD
OjpEYXRhCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJs
b2FkRGF0YTogcGFnZVByb3h5SUQgPSAlIiBQUkl1NjQgIiB3ZWJQYWdlSUQgPSAlIiBQUkl1NjQs
IG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSk7
CiAKLSAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVz
ZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgV1RGTW92
ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNo
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwg
TUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAK
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYg
d2Vic2l0ZVBvbGljaWVzKQpAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6
UmVzCiAgICAgaWYgKG5hdmlnYXRpb24uZnJvbUl0ZW0oKSAmJiBuYXZpZ2F0aW9uLmxvY2tCYWNr
Rm9yd2FyZExpc3QoKSA9PSBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpCiAgICAg
ICAgIG5hdmlnYXRpb24uZnJvbUl0ZW0oKS0+c2V0TGFzdFByb2Nlc3NJZGVudGlmaWVyKG1fcHJv
Y2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOwogCi0gICAgbV9wYWdlLmxvYWRSZXF1ZXN0
V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbmF2aWdhdGlvbiwgV1RG
TW92ZShyZXF1ZXN0KSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdl
YkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVl
c3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7
CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJ
OjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBP
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKQEAgLTI5Myw3
ICsyOTMsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVyCiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0
KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5k
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRpZmllciwg
bmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKKyAgICBtX3BhZ2Uu
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4p
LCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEp
LAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3Jp
Z2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RG
TW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCkBAIC0z
MDMsNyArMzAzLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnMKICAgICBpZiAoIXZhbGlkYXRl
SW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9w
YWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZy
YW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVz
cG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3Rl
bmVySUQsIHVzZXJEYXRhKTsKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNh
blNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsK
IH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKQEAgLTMyNCw3ICszMjQsNyBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZShGcgogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpzdGFy
dFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewot
ICAgIG1fcGFnZS5zdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwg
V1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgbV9wYWdlLnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7
CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29u
c3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYgaWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuaAppbmRleCA1YjRjOWNmMmVkYi4uMzM4NGM4MWQ4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJs
aWM6CiAgICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBh
Z2UoKSB7IHJldHVybiBtX3BhZ2U7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYkZyYW1lUHJveHkq
IG1haW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9CiAgICAgV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCmluZGV4IDdiOTViNmVk
ZThhLi4xYWMzZDg4MTUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIH5TdXNwZW5kZWRQYWdl
UHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZTsgfQorICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fd2ViUGFnZUlEOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1
cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5G
cmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjMTQyMTQwODQ5YS4uMTRiMzdmZDg5ZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzk0LDEyICs3
OTQsMTMgQEAgYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUo
QVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5nQXJl
YSwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKQordm9pZCBXZWJQYWdlUHJveHk6
OnN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiYmIGRy
YXdpbmdBcmVhLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpCiB7CiAgICAgQVNT
RVJUKCFtX2lzQ2xvc2VkKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJz
d2FwVG9XZWJQcm9jZXNzOiIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
InN3YXBUb1dlYlByb2Nlc3M6IG5ld1dlYlBhZ2VJRD0lIiBQUkl1NjQsIHdlYlBhZ2VJRC50b1VJ
bnQ2NCgpKTsKIAogICAgIG1fcHJvY2VzcyA9IFdURk1vdmUocHJvY2Vzcyk7CisgICAgbV93ZWJQ
YWdlSUQgPSB3ZWJQYWdlSUQ7CiAgICAgbV93ZWJzaXRlRGF0YVN0b3JlID0gbV9wcm9jZXNzLT53
ZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICBpZiAobV9sb2dnZXIpCkBAIC0xMTI1LDExICsxMTI2
LDExIEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2hvCiAgICAgICAgIGxhdW5jaFByb2Nlc3MoUmVn
aXN0cmFibGVEb21haW4geyByZXF1ZXN0LnVybCgpIH0pOwogCiAgICAgYXV0byBuYXZpZ2F0aW9u
ID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsKLSAg
ICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG5h
dmlnYXRpb24uZ2V0KCksIFdURk1vdmUocmVxdWVzdCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKKyAgICBs
b2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2Vi
UGFnZUlELCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpO
byk7CiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2Fk
UmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4m
JiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2
aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgQVNTRVJUKCFt
X2lzQ2xvc2VkKTsKIApAQCAtMTE1NSw3ICsxMTU2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omxv
YWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXMKIAogICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCi0g
ICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFt
ZXRlcnMpLCBtX3dlYlBhZ2VJRCk7CisgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCB3ZWJQYWdlSUQpOwogICAgIHByb2Nlc3Mt
PnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwogfQogCkBAIC0xMjI3LDExICsxMjI4LDEx
IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZERhdGEoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjCiAgICAgICAgIGxhdW5jaFByb2Nlc3MoeyB9KTsK
IAogICAgIGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkRGF0
YU5hdmlnYXRpb24obWFrZVVuaXF1ZTxBUEk6OlN1YnN0aXR1dGVEYXRhPihkYXRhLnZlY3Rvcigp
LCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhKSk7Ci0gICAgbG9hZERhdGFX
aXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRh
LCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vLCBXVEY6Om51bGxvcHQsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpOworICAgIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFz
ZVVSTCwgdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIFdURjo6bnVs
bG9wdCwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgcmV0dXJuIG5hdmlnYXRp
b247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0
aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQ
b2xpY2llcywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KQordm9pZCBXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQsIEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVu
Y29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uIik7
CiAKQEAgLTEyNTQsNyArMTI1NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBhZGRQ
bGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIHByb2Nlc3MtPmFz
c3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwotICAgIHByb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwgbV93ZWJQYWdl
SUQpOworICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQ
YXJhbWV0ZXJzKSwgd2ViUGFnZUlEKTsKICAgICBwcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVy
KCkuc3RhcnQoKTsKIH0KIApAQCAtMjk1OSw3ICsyOTYwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWcKICAgICBpZiAoIWRpZFN1c3BlbmRQcmV2aW91c1BhZ2UpCiAgICAgICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2UoKSwgbV93ZWJQYWdlSUQpOwogCi0gICAg
c3dhcFRvV2ViUHJvY2VzcyhtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lv
bmFsUGFnZS0+dGFrZURyYXdpbmdBcmVhKCksIG1fcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJhbWUo
KSk7CisgICAgc3dhcFRvV2ViUHJvY2VzcyhtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLCBt
X3Byb3Zpc2lvbmFsUGFnZS0+d2ViUGFnZUlEKCksIG1fcHJvdmlzaW9uYWxQYWdlLT50YWtlRHJh
d2luZ0FyZWEoKSwgbV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpKTsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIGF1dG8gYWNjZXNzaWJpbGl0eVRva2VuID0gbV9wcm92aXNpb25hbFBh
Z2UtPnRha2VBY2Nlc3NpYmlsaXR5VG9rZW4oKTsKQEAgLTI5OTksNyArMzAwMCw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0
aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgaWYgKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRl
bSgpICYmIChuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBMb2NrQmFja0Zvcndh
cmRMaXN0OjpZZXMgfHwgbmF2aWdhdGlvbi5sb2NrSGlzdG9yeSgpID09IExvY2tIaXN0b3J5OjpZ
ZXMpKSB7CiAgICAgICAgIC8vIElmIFdlYkNvcmUgaXMgc3VwcG9zZWQgdG8gbG9jayB0aGUgaGlz
dG9yeSBmb3IgdGhpcyBsb2FkLCB0aGVuIHRoZSBuZXcgcHJvY2VzcyBuZWVkcyB0byBrbm93IGFi
b3V0IHRoZSBjdXJyZW50IGhpc3RvcnkgaXRlbSBzbyBpdCBjYW4gdXBkYXRlCiAgICAgICAgIC8v
IGl0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lLgotICAgICAgICBuZXdQcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRDdXJyZW50SGlzdG9yeUl0ZW1Gb3JSZWF0dGFjaCht
X2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbVN0YXRlKCkpLCBtX3dlYlBhZ2VJ
RCk7CisgICAgICAgIG5ld1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEN1cnJl
bnRIaXN0b3J5SXRlbUZvclJlYXR0YWNoKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgp
LT5pdGVtU3RhdGUoKSksIG1fcHJvdmlzaW9uYWxQYWdlLT53ZWJQYWdlSUQoKSk7CiAgICAgfQog
CiAgICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBvZiByZXNwb25kaW5nIHdpdGggdGhlIGxh
c3QgcG9saWN5IGRlbGVnYXRlLCBldGMKQEAgLTQ2MjUsMTEgKzQ2MjYsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwKICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIFdURk1v
dmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92
ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksCisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlE
LCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQs
IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5m
b0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVl
c3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNl
ckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKICAgICBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFt
ZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwg
dWludDY0X3QgbGlzdGVuZXJJRCkKQEAgLTQ2MzcsOCArNDYzOCw4IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94CiAgICAgYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBNRVNTQUdFX0NIRUNLKHByb2Nlc3MsIGZyYW1lKTsKIAotICAgIGF1dG8gc2VuZGVyID0g
UG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gcHJv
Y2Vzcy5jb3B5UmVmKCldIChhdXRvLi4uIGFyZ3MpIHsKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3Rl
bmVySUQsIGFyZ3MuLi4pLCBtX3dlYlBhZ2VJRCk7CisgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lE
ZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZyYW1lSUQsIGxp
c3RlbmVySUQsIHByb2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKGF1dG8uLi4gYXJncykgewor
ICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIHdlYlBhZ2VJRCk7CiAgICAg
fSk7CiAKICAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHByb2Nlc3MuY29weVJl
ZigpLCAqZnJhbWUsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIG5hdmlnYXRpb25JRCwg
V1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9y
aWdpbmF0aW5nUGFnZUlELApAQCAtNDkzNSwxMCArNDkzNiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBjb25zdAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBu
YXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2Fk
QXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJl
cXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVz
ZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQ
YWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xp
ZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwpAQCAtNDk1MSwxNCArNDk1Miwx
NCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHByb2Nl
c3MsIHJlc3BvbnNlLnVybCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmln
YXRpb24gPSBuYXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZp
Z2F0aW9uSUQpIDogbnVsbHB0cjsKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+
c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZN
b3ZlKG5hdmlnYXRpb24pLAorICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRV
cFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgd2ViUGFnZUlELCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9u
ID0gV1RGTW92ZShuYXZpZ2F0aW9uKSwKICAgICAgICAgcHJvY2VzcyA9IHByb2Nlc3MuY29weVJl
ZigpXSAoUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcpIG11dGFi
bGUgewogICAgICAgICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyog
aXMgbnVsbHB0ciBoZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VX
aXRoUG9saWNpZXMgZ28gYXdheS4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQoc2FmZUJyb3dzaW5nV2FybmluZywgIXNhZmVCcm93c2luZ1dh
cm5pbmcpOwogCi0gICAgICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNy
ZWF0ZShpZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVk
VGhpcyksIGZyYW1lSUQsIGxpc3RlbmVySUQsIHByb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpXSAo
YXV0by4uLiBhcmdzKSB7Ci0gICAgICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4u
LiksIG1fd2ViUGFnZUlEKTsKKyAgICAgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNl
bmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZyYW1lSUQsIGxpc3RlbmVySUQs
IHByb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpXSAoYXV0by4uLiBhcmdzKSB7CisgICAgICAgICAg
ICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNp
b24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIHdlYlBhZ2VJRCk7CiAgICAgICAgIH0p
OwogICAgICAgICAKICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24s
IG5hdmlnYXRpb24uZ2V0KCksIFdURjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKQEAgLTcx
NzcsNiArNzE3OCw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5Ojpj
cmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVycy5h
Y3Rpdml0eVN0YXRlID0gbV9hY3Rpdml0eVN0YXRlOwogICAgIHBhcmFtZXRlcnMuZHJhd2luZ0Fy
ZWFUeXBlID0gZHJhd2luZ0FyZWEudHlwZSgpOwogICAgIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJ
ZGVudGlmaWVyID0gZHJhd2luZ0FyZWEuaWRlbnRpZmllcigpOworICAgIHBhcmFtZXRlcnMud2Vi
UGFnZVByb3h5SWRlbnRpZmllciA9IG1faWRlbnRpZmllcjsKICAgICBwYXJhbWV0ZXJzLnN0b3Jl
ID0gcHJlZmVyZW5jZXNTdG9yZSgpOwogICAgIHBhcmFtZXRlcnMucGFnZUdyb3VwRGF0YSA9IG1f
cGFnZUdyb3VwLT5kYXRhKCk7CiAgICAgcGFyYW1ldGVycy5pc0VkaXRhYmxlID0gbV9pc0VkaXRh
YmxlOwpAQCAtODY5NywxNSArODY5OSwxNSBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyKiBXZWJQYWdl
UHJveHk6OnVybFNjaGVtZUhhbmRsZXJGb3JTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0
ZXJzJiYgcGFyYW1ldGVycykKIHsKLSAgICBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9wcm9j
ZXNzLmNvcHlSZWYoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgc3RhcnRVUkxTY2hlbWVU
YXNrU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2tTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdl
SUQsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsKICAgICBhdXRvIGl0
ZXJhdG9yID0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5maW5kKHBhcmFtZXRlcnMu
aGFuZGxlcklkZW50aWZpZXIpOwogICAgIE1FU1NBR0VfQ0hFQ0socHJvY2VzcywgaXRlcmF0b3Ig
IT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CiAKLSAgICBpdGVyYXRv
ci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgcHJvY2VzcywgcGFyYW1ldGVycy50YXNrSWRlbnRp
ZmllciwgV1RGTW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBudWxscHRyKTsKKyAgICBpdGVyYXRv
ci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgcHJvY2Vzcywgd2ViUGFnZUlELCBwYXJhbWV0ZXJz
LnRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIG51bGxwdHIpOwog
fQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxl
cklkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKQpAQCAtODcyMSw3ICs4NzIzLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soVVJMU2No
ZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWUKICAgICBhdXRvIGl0ZXJhdG9yID0gbV91cmxTY2hl
bWVIYW5kbGVyc0J5SWRlbnRpZmllci5maW5kKHBhcmFtZXRlcnMuaGFuZGxlcklkZW50aWZpZXIp
OwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBpdGVyYXRvciAhPSBtX3VybFNjaGVtZUhh
bmRsZXJzQnlJZGVudGlmaWVyLmVuZCgpKTsKIAotICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRU
YXNrKCp0aGlzLCBtX3Byb2Nlc3MsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUo
cGFyYW1ldGVycy5yZXF1ZXN0KSwgV1RGTW92ZShyZXBseSkpOworICAgIGl0ZXJhdG9yLT52YWx1
ZS0+c3RhcnRUYXNrKCp0aGlzLCBtX3Byb2Nlc3MsIG1fd2ViUGFnZUlELCBwYXJhbWV0ZXJzLnRh
c2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIFdURk1vdmUocmVwbHkp
KTsKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGM5ZjgxMWZlNWJkLi5jODJlOTI1OTMzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE1MTIsMTQgKzE1MTIs
MTQgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1l
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsCiAgICAgICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwg
dWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwot
ICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBT
dHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0
LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwotICAgIHZvaWQgbG9hZFJl
cXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5h
dmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYg
PSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBVUkxTY2hlbWVUYXNr
UGFyYW1ldGVycyYmKTsKKyAgICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdh
dGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUs
IGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0
aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0
ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5
bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKQEAgLTE3MzYsNyArMTczNiw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxF
dmVudHMoYm9vbCBjYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMpIHsgbV9jYW5T
aG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMgPSBjYW5TaG9ydENpcmN1aXRIb3Jpem9u
dGFsV2hlZWxFdmVudHM7IH0KIAogICAgIHZvaWQgbGF1bmNoUHJvY2Vzcyhjb25zdCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYpOwotICAgIHZvaWQgc3dhcFRvV2ViUHJvY2VzcyhSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJiwgUmVm
UHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKTsKKyAgICB2b2lkIHN3YXBUb1dlYlByb2Nl
c3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiYmLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBt
YWluRnJhbWUpOwogICAgIHZvaWQgZGlkRmFpbFRvU3VzcGVuZEFmdGVyUHJvY2Vzc1N3YXAoKTsK
ICAgICB2b2lkIGRpZFN1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDY0YjMxZjc1OTIyLi43YjdhZTQw
YjM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC02NzAsNyArNjcwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBZGQgdW5oYW5kbGVkIG1lc3NhZ2UgbG9nZ2luZy4K
KyAgICBMT0dfRVJST1IoIlVuaGFuZGxlZCBXZWJQcm9jZXNzUHJveHkgSVBDIG1lc3NhZ2UgJXM6
OiVzIChkZXN0aW5hdGlvbjogJSIgUFJJdTY0ICIpIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkudG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygp
LmRhdGEoKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVw
bHlFbmNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2No
ZW1lSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5k
bGVyLmNwcAppbmRleCA1YTZjYzk1ZDBmOC4uOTBjMGI4MGUwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCkBAIC00OCw5ICs0OCw5IEBA
IFdlYlVSTFNjaGVtZUhhbmRsZXI6On5XZWJVUkxTY2hlbWVIYW5kbGVyKCkKICAgICBBU1NFUlQo
bV90YXNrcy5pc0VtcHR5KCkpOwogfQogCi12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0
VGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWludDY0
X3QgdGFza0lkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29t
cGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViVVJMU2NoZW1lSGFu
ZGxlcjo6c3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9j
ZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZCh0YXNrSWRl
bnRpZmllciwgV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKCp0aGlzLCBwYWdlLCBwcm9jZXNzLCB0
YXNrSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJV
UkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgdGFz
a0lkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIGF1dG8gcGFnZUVudHJ5
ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIuYWRkKHBhZ2UuaWRlbnRpZmllcigpLCBIYXNoU2V0
PHVpbnQ2NF90PigpKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFdlYlVSTFNjaGVtZUhhbmRs
ZXI6OnRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYgdGFzaykKIHsKICAgICBhdXRvIHRh
a2VuVGFzayA9IG1fdGFza3MudGFrZSh0YXNrLmlkZW50aWZpZXIoKSk7CiAgICAgQVNTRVJUX1VO
VVNFRCh0YWtlblRhc2ssIHRha2VuVGFzay0+cHRyKCkgPT0gJnRhc2spOwotICAgIHJlbW92ZVRh
c2tGcm9tUGFnZU1hcCh0YXNrLnBhZ2VJRCgpLCB0YXNrLmlkZW50aWZpZXIoKSk7CisgICAgcmVt
b3ZlVGFza0Zyb21QYWdlTWFwKHRhc2sucGFnZVByb3h5SUQoKSwgdGFzay5pZGVudGlmaWVyKCkp
OwogCiAgICAgcGxhdGZvcm1UYXNrQ29tcGxldGVkKHRhc2spOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCmluZGV4IGQ1OGM3ZTU2NzMyLi4yMzQ5
MDZmNGM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRs
ZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKLSAgICB2b2lkIHN0YXJ0VGFzayhX
ZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7
CisgICAgdm9pZCBzdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lk
IHN0b3BUYXNrKFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKTsKICAgICB2
b2lkIHN0b3BBbGxUYXNrc0ZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5Kik7
CiAgICAgdm9pZCB0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggZDYxZjEzNjIyNjQuLjI3
YTNkYjU0ZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNr
LmNwcApAQCAtMzYsMTcgKzM2LDE3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1SZWY8V2ViVVJMU2NoZW1lVGFzaz4gV2ViVVJMU2NoZW1lVGFzazo6
Y3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5j
Q29tcGxldGlvbkhhbmRsZXIpCitSZWY8V2ViVVJMU2NoZW1lVGFzaz4gV2ViVVJMU2NoZW1lVGFz
azo6Y3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIHVp
bnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3lu
Y0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJVUkxTY2hlbWVUYXNrKGhhbmRsZXIsIHBhZ2UsIHByb2Nl
c3MsIHJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShzeW5jQ29t
cGxldGlvbkhhbmRsZXIpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2NoZW1l
VGFzayhoYW5kbGVyLCBwYWdlLCBwcm9jZXNzLCB3ZWJQYWdlSUQsIHJlc291cmNlSWRlbnRpZmll
ciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShzeW5jQ29tcGxldGlvbkhhbmRsZXIpKSk7CiB9
CiAKLVdlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxl
ciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
U3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKK1dlYlVS
TFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxl
ciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVu
dGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRp
b25IYW5kbGVyKQogICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCi0gICAgLCBtX3Bh
Z2UoJnBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MobWFrZVJlZihwcm9jZXNzKSkKICAgICAsIG1faWRl
bnRpZmllcihyZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgLCBtX3BhZ2VJZGVudGlmaWVyKHBhZ2Uu
aWRlbnRpZmllcigpKQorICAgICwgbV9wYWdlUHJveHlJRChwYWdlLmlkZW50aWZpZXIoKSkKKyAg
ICAsIG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHJlcXVl
c3QpKQogICAgICwgbV9zeW5jQ29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzeW5jQ29tcGxldGlv
bkhhbmRsZXIpKQogewpAQCAtODIsNyArODIsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRp
ZFBlcmZvcm1SZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9ucwog
ICAgICAgICBtX3JlcXVlc3QgPSByZXF1ZXN0OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbiht
X3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSwg
cmVxdWVzdCksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbihtX3VybFNj
aGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSwgcmVxdWVz
dCksIG1fd2ViUGFnZUlEKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpA
QCAtMTA3LDcgKzEwNyw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSAtPiBFCiAgICAgaWYgKGlzU3lu
YygpKQogICAgICAgICBtX3N5bmNSZXNwb25zZSA9IHJlc3BvbnNlOwogCi0gICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNl
KG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNl
KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlKSwgbV93ZWJQYWdlSUQpOwog
ICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBAIC0xMzQsNyArMTM0LDcgQEAg
YXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYm
IGJ1ZmZlcikgLT4gRXhjZXB0aW9uVHkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5v
bmU7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxT
Y2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCks
IG1faWRlbnRpZmllciwgeyBidWZmZXIgfSksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVE
YXRhKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHsgYnVm
ZmVyIH0pLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9
CiAKQEAgLTE2NCw3ICsxNjQsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRl
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiAgICAgICAgIG1f
c3luY0RhdGEgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+
aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7
CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlk
Q29tcGxldGUobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwg
ZXJyb3IpLCBtX3dlYlBhZ2VJRCk7CiAgICAgbV91cmxTY2hlbWVIYW5kbGVyLT50YXNrQ29tcGxl
dGVkKCp0aGlzKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwpAQCAtMTczLDkg
KzE3Myw5IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkQ29tcGxldGUoY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpIC0+IEV4Y2VwdGlvblR5cGUKIHZvaWQgV2ViVVJMU2NoZW1lVGFzazo6
cGFnZURlc3Ryb3llZCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBB
U1NFUlQobV9wYWdlKTsKIAotICAgIG1fcGFnZSA9IG51bGxwdHI7CisgICAgbV9wYWdlUHJveHlJ
RCA9IHsgfTsKKyAgICBtX3dlYlBhZ2VJRCA9IHsgfTsKICAgICBtX3Byb2Nlc3MgPSBudWxscHRy
OwogICAgIG1fc3RvcHBlZCA9IHRydWU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVUYXNrLmgKaW5kZXggMzliMmZlYjQzYmYuLmJmZDkyMzM5MWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCkBAIC01NCwxMyArNTQsMTMg
QEAgdXNpbmcgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2UKIGNsYXNzIFdlYlVSTFNjaGVtZVRhc2sgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViVVJMU2NoZW1lVGFzaz4sIHB1YmxpYyBJbnN0YW5j
ZUNvdW50ZWQ8V2ViVVJMU2NoZW1lVGFzaz4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdl
YlVSTFNjaGVtZVRhc2spOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViVVJMU2NoZW1lVGFz
az4gY3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImLCBXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNz
UHJveHkmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
U3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYlVSTFNjaGVt
ZVRhc2s+IGNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgV2ViUHJv
Y2Vzc1Byb3h5JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYp
OwogCiAgICAgfldlYlVSTFNjaGVtZVRhc2soKTsKIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXIo
KSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcGFnZUlkZW50aWZpZXI7IH0KLQorICAgIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7IHJldHVybiBtX3BhZ2VQcm94eUlEOyB9CisgICAgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlEKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1
cm4gbV93ZWJQYWdlSUQ7IH0KICAgICBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MoKSB7IEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3Byb2Nlc3MuZ2V0KCk7IH0KIAogI2lmIFBM
QVRGT1JNKENPQ09BKQpAQCAtODcsMTUgKzg3LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhZ2VE
ZXN0cm95ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVt
ZUhhbmRsZXImLCBXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmKTsKKyAgICBXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVtZUhhbmRsZXImLCBXZWJQ
YWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWlu
dDY0X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29t
cGxldGlvbkhhbmRsZXImJik7CiAKICAgICBib29sIGlzU3luYygpIGNvbnN0IHsgcmV0dXJuICEh
bV9zeW5jQ29tcGxldGlvbkhhbmRsZXI7IH0KIAogICAgIFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVy
PiBtX3VybFNjaGVtZUhhbmRsZXI7Ci0gICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgUmVm
UHRyPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIHVpbnQ2NF90IG1faWRlbnRpZmll
cjsKLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZUlkZW50aWZpZXI7CisgICAgV2Vi
UGFnZVByb3h5SWRlbnRpZmllciBtX3BhZ2VQcm94eUlEOworICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIG1fd2ViUGFnZUlEOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVl
c3Q7CiAgICAgbXV0YWJsZSBMb2NrIG1fcmVxdWVzdExvY2s7CiAgICAgYm9vbCBtX3N0b3BwZWQg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCmluZGV4IDkwZmRm
MGU2ZTkwLi5iMTk5YTEwMzA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNw
cApAQCAtMzUsNyArMzUsNyBAQCBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6V2ViUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZQogICAgIDogUmVtb3Rl
T2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVnaXN0cnkpCiAgICAgLCBtX3BhZ2UocGFnZSkK
IHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5w
YWdlSUQoKSwgKnRoaXMpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV9wYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgKnRoaXMpOwogICAgIHBhZ2Uu
c2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkodGhpcyk7CiB9CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgV2Vi
UmVtb3RlT2JqZWN0UmVnaXN0cnk6On5XZWJSZW1vdGVPYmplY3RSZWdpc3RyeSgpCiB2b2lkIFdl
YlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSgpCiB7CiAgICAgaWYgKG1fcGFnZS5yZW1vdGVP
YmplY3RSZWdpc3RyeSgpID09IHRoaXMpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9i
amVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS53ZWJQYWdlUHJveHlJ
ZGVudGlmaWVyKCkpOwogICAgICAgICBtX3BhZ2Uuc2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkobnVs
bHB0cik7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBmYzRiYjUwMzZhYi4uZGRjYzk2MDZmODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MjksNiArNDI5LDcgQEAgV2Vi
UGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShWSUVXUE9SVF9SRVNJWklORykKICAgICAs
IG1fc2hyaW5rVG9GaXRDb250ZW50VGltZXIoKnRoaXMsICZXZWJQYWdlOjpzaHJpbmtUb0ZpdENv
bnRlbnRUaW1lckZpcmVkLCAwX3MpCiAjZW5kaWYKKyAgICAsIG1fd2ViUGFnZVByb3h5SWRlbnRp
ZmllcihwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlkZW50aWZpZXIpCiAjaWYgRU5BQkxFKFRFWFRf
QVVUT1NJWklORykKICAgICAsIG1fdGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXIoKnRoaXMs
ICZXZWJQYWdlOjp0ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lckZpcmVkKQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzgxMzcwZGE0
YTMuLjk5OWRhZDIyNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC0yOTIsNyArMjkyLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UGFnZSog
Y29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIFN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPFN0b3JhZ2VOYW1lc3BhY2VJ
ZGVudGlmaWVyVHlwZT4obV9wYWdlSUQudG9VSW50NjQoKSk7IH0KKyAgICBTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllciBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtYWtlT2JqZWN0SWRlbnRpZmllcjxTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllclR5
cGU+KG1fd2ViUGFnZVByb3h5SWRlbnRpZmllci50b1VJbnQ2NCgpKTsgfQogICAgIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+c2Vzc2lvbklEKCk7IH0K
ICAgICBib29sIHVzZXNFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLT51
c2VzRXBoZW1lcmFsU2Vzc2lvbigpOyB9CiAKQEAgLTEyMDMsNiArMTIwMyw4IEBAIHB1YmxpYzoK
ICAgICBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeSogcmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKICNl
bmRpZgogCisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV93ZWJQYWdlUHJveHlJZGVudGlmaWVyOyB9CisKICAgICB2b2lk
IHVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplSWZOZWVkZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpOwogICAgIHZvaWQgc2NoZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsKICAgICBib29s
IGlzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CkBAIC0xOTU2LDYgKzE5NTgsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9maXJzdEZsdXNoQWZ0ZXJDb21taXQgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIFdlYWtQdHI8V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk+IG1fcmVtb3RlT2Jq
ZWN0UmVnaXN0cnk7CisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlk
ZW50aWZpZXI7CiAjZW5kaWYKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNlbnRJbnRyaW5z
aWNDb250ZW50U2l6ZTsKICNpZiBFTkFCTEUoVklFV1BPUlRfUkVTSVpJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzcyNjcyYzQ5YjAuLjZkZmVmZGVmMjE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03NDYsNyArNzQ2
LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGUKICAgICB9CiAjZW5kaWYKIAotICAgIExPR19F
UlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1l
KCkudG9TdHJpbmcoKS5kYXRhKCkpOworICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHdlYiBwcm9j
ZXNzIG1lc3NhZ2UgJyVzOiVzJyAoZGVzdGluYXRpb246ICVsbHUpIiwgZGVjb2Rlci5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50
b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiBXZWJGcmFt
ZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5kZXggNWJkODAyNzI1NTkuLmRhY2QwZjdmZGQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZUltcGwuY3BwCkBAIC00MiwyOCArNDIsMzAgQEAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxTdG9yYWdlTmFtZXNwYWNlSW1w
bD4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElk
ZW50aWZpZXIgaWRlbnRpZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCitSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVz
cGFjZUltcGwoU3RvcmFnZVR5cGU6OlNlc3Npb24sIGlkZW50aWZpZXIsIG51bGxwdHIsIHF1b3Rh
SW5CeXRlcywgc2Vzc2lvbklEKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5h
bWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6OlNlc3Npb24sIGlkZW50aWZpZXIsIHBhZ2VJRCwgbnVs
bHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9uSUQpKTsKIH0KIAogUmVmPFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNl
KElkZW50aWZpZXIgaWRlbnRpZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVz
cGFjZUltcGwoU3RvcmFnZVR5cGU6OkxvY2FsLCBpZGVudGlmaWVyLCBudWxscHRyLCBxdW90YUlu
Qnl0ZXMsIHNlc3Npb25JRCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1l
c3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpMb2NhbCwgaWRlbnRpZmllciwgV1RGOjpudWxsb3B0LCBu
dWxscHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOwogfQogCiBSZWY8U3RvcmFnZU5hbWVz
cGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3Jh
Z2VOYW1lc3BhY2UoSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgdG9wTGV2ZWxPcmlnaW4sIHVpbnQ2NF90IHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsKFN0b3JhZ2VUeXBlOjpUcmFuc2llbnRMb2NhbCwgaWRlbnRpZmllciwgJnRvcExldmVsT3Jp
Z2luLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpUcmFuc2llbnRMb2NhbCwgaWRlbnRp
ZmllciwgV1RGOjpudWxsb3B0LCAmdG9wTGV2ZWxPcmlnaW4sIHF1b3RhSW5CeXRlcywgc2Vzc2lv
bklEKSk7CiB9CiAKLVN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpTdG9yYWdlTmFtZXNwYWNlSW1wbChX
ZWJDb3JlOjpTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgSWRlbnRpZmllciBzdG9yYWdlTmFtZXNw
YWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbE9yaWdpbiwgdW5zaWduZWQg
cXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitTdG9yYWdlTmFtZXNwYWNl
SW1wbDo6U3RvcmFnZU5hbWVzcGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUgc3RvcmFnZVR5
cGUsIElkZW50aWZpZXIgc3RvcmFnZU5hbWVzcGFjZUlELCBjb25zdCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4mIHBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2
ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogICAgIDogbV9zdG9yYWdlVHlwZShzdG9yYWdlVHlwZSkKICAgICAsIG1fc3RvcmFnZU5hbWVz
cGFjZUlEKHN0b3JhZ2VOYW1lc3BhY2VJRCkKKyAgICAsIG1fc2Vzc2lvblBhZ2VJRChwYWdlSWRl
bnRpZmllcikKICAgICAsIG1fdG9wTGV2ZWxPcmlnaW4odG9wTGV2ZWxPcmlnaW4pCiAgICAgLCBt
X3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQp
CiB7CisgICAgQVNTRVJUKHN0b3JhZ2VUeXBlID09IFN0b3JhZ2VUeXBlOjpTZXNzaW9uIHx8ICFt
X3Nlc3Npb25QYWdlSUQpOwogfQogCiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6flN0b3JhZ2VOYW1l
c3BhY2VJbXBsKCkKQEAgLTk4LDcgKzEwMCw3IEBAIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9y
YWdlTmFtZXNwYWNlSW1wbDo6Y29weShQYWdlKiBuZXdQYWdlKQogICAgIGlmIChhdXRvIG5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAgICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDbG9uZVNl
c3Npb25TdG9yYWdlTmFtZXNwYWNlKG5ld1BhZ2UtPnNlc3Npb25JRCgpLCBtX3N0b3JhZ2VOYW1l
c3BhY2VJRCwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZUlkZW50aWZpZXIoKSksIDApOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Rv
cmFnZU5hbWVzcGFjZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5l
d1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgbV90b3BMZXZlbE9y
aWdpbi5nZXQoKSwgbV9xdW90YUluQnl0ZXMsIG5ld1BhZ2UtPnNlc3Npb25JRCgpKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwobV9zdG9yYWdlVHlwZSwg
V2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlk
ZW50aWZpZXIoKSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5wYWdlSUQoKSwgbV90
b3BMZXZlbE9yaWdpbi5nZXQoKSwgbV9xdW90YUluQnl0ZXMsIG5ld1BhZ2UtPnNlc3Npb25JRCgp
KSk7CiB9CiAKIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNldFNlc3Npb25JREZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtMTExLDcgKzExMyw3IEBAIHZvaWQgU3Rv
cmFnZU5hbWVzcGFjZUltcGw6OnNldFNlc3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogUGFnZUlkZW50aWZpZXIgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25T
dG9yYWdlUGFnZUlEKCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9zdG9yYWdlVHlwZSA9PSBTdG9y
YWdlVHlwZTo6U2Vzc2lvbik7Ci0gICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPFBhZ2VJ
ZGVudGlmaWVyVHlwZT4obV9zdG9yYWdlTmFtZXNwYWNlSUQudG9VSW50NjQoKSk7CisgICAgcmV0
dXJuICptX3Nlc3Npb25QYWdlSUQ7CiB9CiAKIHVpbnQ2NF90IFN0b3JhZ2VOYW1lc3BhY2VJbXBs
OjpwYWdlR3JvdXBJRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAppbmRleCAzYTBhYjE5ZDRj
Mi4uNDUxNzk3NDJiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaApAQCAtNDQsNyArNDQsNyBAQCBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdlTmFtZXNw
YWNlIHsKIHB1YmxpYzoKICAgICB1c2luZyBJZGVudGlmaWVyID0gU3RvcmFnZU5hbWVzcGFjZUlk
ZW50aWZpZXI7CiAKLSAgICBzdGF0aWMgUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBjcmVhdGVT
ZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMs
IFBBTDo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBj
cmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgc3Rh
dGljIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gY3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNl
KElkZW50aWZpZXIsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOwogICAg
IHN0YXRpYyBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IGNyZWF0ZVRyYW5zaWVudExvY2FsU3Rv
cmFnZU5hbWVzcGFjZShJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxPcmlnaW4sIHVpbnQ2NF90IHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOwogCkBAIC02
Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNlc3Npb25JREZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsKFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9u
SUQpOworICAgIFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBJZGVu
dGlmaWVyLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4mIHBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVk
IHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUmVmPFdlYkNvcmU6OlN0b3Jh
Z2VBcmVhPiBzdG9yYWdlQXJlYShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBv
dmVycmlkZTsKIApAQCAtNzIsNiArNzIsNyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgV2ViQ29y
ZTo6U3RvcmFnZVR5cGUgbV9zdG9yYWdlVHlwZTsKICAgICBjb25zdCBJZGVudGlmaWVyIG1fc3Rv
cmFnZU5hbWVzcGFjZUlEOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBt
X3Nlc3Npb25QYWdlSUQ7CiAKICAgICAvLyBPbmx5IHVzZWQgZm9yIHRyYW5zaWVudCBsb2NhbCBz
dG9yYWdlIG5hbWVzcGFjZXMuCiAgICAgY29uc3QgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiBtX3RvcExldmVsT3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5j
cHAKaW5kZXggMzAwY2NmMDc4M2EuLjQ4MTgxYjQ5MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlci5jcHAKQEAgLTY2LDcgKzY2LDggQEAgV2ViU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyOjp+V2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKCkKIAogUmVmPFdlYkNvcmU6OlN0
b3JhZ2VOYW1lc3BhY2U+IFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2UoUGFnZSYgcGFnZSwgdW5zaWduZWQgcXVvdGEpCiB7Ci0gICAgcmV0
dXJuIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShX
ZWJQYWdlOjpmcm9tQ29yZVBhZ2UoJnBhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50
aWZpZXIoKSwgcXVvdGEsIHBhZ2Uuc2Vzc2lvbklEKCkpOworICAgIGF1dG8qIHdlYlBhZ2UgPSBX
ZWJQYWdlOjpmcm9tQ29yZVBhZ2UoJnBhZ2UpOworICAgIHJldHVybiBTdG9yYWdlTmFtZXNwYWNl
SW1wbDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uod2ViUGFnZS0+c2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIHdlYlBhZ2UtPnBhZ2VJRCgpLCBxdW90YSwgcGFnZS5z
ZXNzaW9uSUQoKSk7CiB9CiAKIFJlZjxXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlPiBXZWJTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25l
ZCBxdW90YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377612</attachid>
            <date>2019-08-29 12:40:40 -0700</date>
            <delta_ts>2019-08-29 13:32:28 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>201225_pson_webPageID_bump_wip.patch</filename>
            <type>text/plain</type>
            <size>54669</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDc2ZmVjYzI4MDY0
Li42YTIzYWM0OGVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0yMjIsNiArMjIyLDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJz
KHJlY2VpdmVyKToKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXInLAogICAgIF0pCiAKICAgICBmb3IgcGFyYW1ldGVy
IGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGVjMzIzOTNmYTc2Li41Y2E5
NTZlYjIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKQEAgLTM5LDYgKzM5LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgc3RvcmU7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRyYXdpbmdBcmVhVHlwZSk7CiAgICAg
ZW5jb2RlciA8PCBkcmF3aW5nQXJlYUlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB3ZWJQYWdl
UHJveHlJZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgcGFnZUdyb3VwRGF0YTsKICAgICBlbmNv
ZGVyIDw8IGlzRWRpdGFibGU7CiAgICAgZW5jb2RlciA8PCB1bmRlcmxheUNvbG9yOwpAQCAtMTU3
LDYgKzE1OCwxMSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICghZHJhd2luZ0Fy
ZWFJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHBhcmFtZXRl
cnMuZHJhd2luZ0FyZWFJZGVudGlmaWVyID0gKmRyYXdpbmdBcmVhSWRlbnRpZmllcjsKKyAgICBP
cHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiB3ZWJQYWdlUHJveHlJZGVudGlmaWVyOwor
ICAgIGRlY29kZXIgPj4gd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKKyAgICBpZiAoIXdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcGFyYW1l
dGVycy53ZWJQYWdlUHJveHlJZGVudGlmaWVyID0gV1RGTW92ZSgqd2ViUGFnZVByb3h5SWRlbnRp
Zmllcik7CiAgICAgT3B0aW9uYWw8V2ViUGFnZUdyb3VwRGF0YT4gcGFnZUdyb3VwRGF0YTsKICAg
ICBkZWNvZGVyID4+IHBhZ2VHcm91cERhdGE7CiAgICAgaWYgKCFwYWdlR3JvdXBEYXRhKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4
IGUxOWQ5OTZhMTYzLi4xMDEyNGQwZmIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cERhdGEuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5o
IgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgpAQCAtODAsNiArODEsNyBAQCBzdHJ1Y3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZTsK
ICAgICBEcmF3aW5nQXJlYVR5cGUgZHJhd2luZ0FyZWFUeXBlOwogICAgIERyYXdpbmdBcmVhSWRl
bnRpZmllciBkcmF3aW5nQXJlYUlkZW50aWZpZXI7CisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciB3ZWJQYWdlUHJveHlJZGVudGlmaWVyOwogICAgIFdlYlBhZ2VHcm91cERhdGEgcGFnZUdyb3Vw
RGF0YTsKIAogICAgIGJvb2wgaXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGNjN2Y2Yzk2MjU4Li5mNDllMDNkM2ViZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBA
IC04NzcsNyArODc3LDcgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW19jb250ZW50VmlldyBfd2Vi
Vmlld0Rlc3Ryb3llZF07CiAKICAgICBpZiAoX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAgICAg
ICBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFn
ZS0+d2ViUGFnZUlEKCkpOworICAgICAgICBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCku
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+aWRlbnRpZmllcigpKTsKICNlbmRpZgogCiAgICAg
X3BhZ2UtPmNsb3NlKCk7CkBAIC00NzI1LDcgKzQ3MjUsNyBAQCAtIChfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RSZWdpc3RyeQogI2Vsc2UKICAgICBpZiAoIV9yZW1vdGVP
YmplY3RSZWdpc3RyeSkgewogICAgICAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5T
KFtbX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eToq
X3BhZ2VdKTsKLSAgICAgICAgX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgX3BhZ2UtPndlYlBhZ2VJRCgpLCBbX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90
ZU9iamVjdFJlZ2lzdHJ5XSk7CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2wo
KS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIF9wYWdlLT5pZGVudGlmaWVyKCksIFtfcmVtb3RlT2JqZWN0UmVn
aXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsKICAgICB9CiAKICAgICByZXR1cm4gX3JlbW90
ZU9iamVjdFJlZ2lzdHJ5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQppbmRleCBmNDA0MmZlNzBkZi4uMzVhYzRkZjZlNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMzYyLDcgKzEzNjIs
NyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRl
PiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYgogV2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCgp
CiB7CiAgICAgaWYgKG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKLSAgICAgICAgbV9wYWdlLT5w
cm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJl
bW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+d2ViUGFn
ZUlEKCkpOworICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogICAgICAgICBbbV9yZW1vdGVPYmpl
Y3RSZWdpc3RyeSBfaW52YWxpZGF0ZV07CiAgICAgICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkg
PSBuaWw7CiAgICAgfQpAQCAtMzgyMyw3ICszODIzLDcgQEAgX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkgKldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3RyeSgpCiB7CiAgICAgaWYgKCFtX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5KSB7CiAgICAgICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBh
ZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQ
cm94eTptX3BhZ2VdKTsKLSAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+d2ViUGFnZUlEKCksIFttX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7CisgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdp
c3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSwgW21fcmVt
b3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCAwYzAzNDA2OTA0MS4uYWRi
MDgyYzUxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkm
IHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywgc3RkOjp1bmlxdWVfcHRyPFN1
c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWludDY0X3QgbmF2aWdhdGlvbklELCBi
b29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX3dlYlBhZ2VJRChwYWdlLndlYlBh
Z2VJRCgpKQorICAgICwgbV93ZWJQYWdlSUQoc3VzcGVuZGVkUGFnZSA/IHN1c3BlbmRlZFBhZ2Ut
PndlYlBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3Byb2Nl
c3MoV1RGTW92ZShwcm9jZXNzKSkKICAgICAsIG1fbmF2aWdhdGlvbklEKG5hdmlnYXRpb25JRCkK
ICAgICAsIG1faXNTZXJ2ZXJSZWRpcmVjdChpc1NlcnZlclJlZGlyZWN0KQpAQCAtMTQ1LDcgKzE0
NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlv
biYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YTogcGFnZVByb3h5SUQgPSAlIiBQUkl1NjQg
IiB3ZWJQYWdlSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwg
bV93ZWJQYWdlSUQudG9VSW50NjQoKSk7CiAKLSAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdh
dGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlw
ZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICBtX3BhZ2Uu
bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBh
Z2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2Vy
RGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUo
d2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIE9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMTU4LDcgKzE1OCw3
IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlv
biYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzCiAgICAgaWYgKG5hdmlnYXRpb24uZnJvbUl0ZW0o
KSAmJiBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0OjpZZXMpCiAgICAgICAgIG5hdmlnYXRpb24uZnJvbUl0ZW0oKS0+c2V0TGFz
dFByb2Nlc3NJZGVudGlmaWVyKG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOwog
Ci0gICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkUmVxdWVz
dFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBu
YXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdU
Rk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtJiBpdGVtLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdl
YnNpdGVQb2xpY2llcykKQEAgLTI5Myw3ICsyOTMsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVy
CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5
bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3Vy
aXR5T3JpZ2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25B
Y3Rpb25EYXRhKSwKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZN
b3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1v
dmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEp
LCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEs
IGxpc3RlbmVySUQpOwogfQogCkBAIC0zMDMsNyArMzAzLDcgQEAgdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnMKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50
aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwg
ZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBtX3BhZ2UuZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdl
SUQsIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25J
RCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUs
IGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKQEAgLTMyNCw3ICszMjQsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcgogCiB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQogewotICAgIG1fcGFnZS5zdGFydFVSTFNjaGVtZVRhc2tTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgbV9wYWdl
LnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJ
RCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRp
ZmllciYgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCA1YjRjOWNmMmVkYi4uMzM4NGM4MWQ4
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7
CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7IH0KKyAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJ
RDsgfQogICAgIFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFp
bkZyYW1lLmdldCgpOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4g
bV9wcm9jZXNzLmdldCgpOyB9CiAgICAgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBh
Z2VQcm94eS5oCmluZGV4IDdiOTViNmVkZThhLi4xYWMzZDg4MTUxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVi
bGljOgogICAgIH5TdXNwZW5kZWRQYWdlUHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFn
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFnZUlEOyB9CiAgICAgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJh
bWVJRDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXgg
MTA3YmIyMjcwODYuLmVhZmM0NTcyOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkuY3BwCkBAIC0zMzIsOSArMzMyLDkgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlck1lc3NhZ2VIYW5kbGVycyhBUEk6OlVzZXJDb250ZW4K
ICAgICByZW1vdmVVc2VyQ29udGVudFdvcmxkVXNlcyh3b3JsZCwgbnVtYmVyUmVtb3ZlZCk7CiB9
CiAKLXZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmRpZFBvc3RNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBG
cmFtZUluZm9EYXRhJiBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCit2b2lkIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQsIGNvbnN0IEZyYW1lSW5m
b0RhdGEmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSkKIHsKLSAgICBXZWJQYWdlUHJveHkqIHBh
Z2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkq
IHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZVByb3h5SUQpOwogICAgIGlmICgh
cGFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkuaAppbmRleCBlNjQ0NGIyZjQxOC4uNDY5ZDMwZTMxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkuaApAQCAtMTEyLDcgKzExMiw3IEBAIHByaXZhdGU6CiAgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlkUG9zdE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IEZy
YW1lSW5mb0RhdGEmLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZFBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRfdCBtZXNz
YWdlSGFuZGxlcklELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKIAogICAgIHZvaWQgYWRk
VXNlckNvbnRlbnRXb3JsZFVzZShBUEk6OlVzZXJDb250ZW50V29ybGQmKTsKICAgICB2b2lkIHJl
bW92ZVVzZXJDb250ZW50V29ybGRVc2VzKEFQSTo6VXNlckNvbnRlbnRXb3JsZCYsIHVuc2lnbmVk
IG51bWJlck9mVXNlc1RvUmVtb3ZlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjVhNGUyOTEyNzQuLjhkMjAwYTFlNmU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjQsNSArMjQsNSBAQAogICovCiAKIG1lc3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5IHsKLURpZFBvc3RNZXNzYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm9EYXRhLCB1aW50NjRf
dCBtZXNzYWdlSGFuZGxlcklELCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkgV2FudHNDb25u
ZWN0aW9uCitEaWRQb3N0TWVzc2FnZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFn
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90
IG1lc3NhZ2VIYW5kbGVySUQsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlKSBXYW50c0Nvbm5l
Y3Rpb24KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGMx
NDIxNDA4NDlhLi4xNGIzN2ZkODllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC03OTQsMTIgKzc5NCwxMyBAQCBib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVu
ZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdAog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2Vz
cyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5n
QXJlYVByb3h5PiYmIGRyYXdpbmdBcmVhLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJh
bWUpCit2b2lkIFdlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgc3RkOjp1bmlxdWVfcHRy
PERyYXdpbmdBcmVhUHJveHk+JiYgZHJhd2luZ0FyZWEsIFJlZlB0cjxXZWJGcmFtZVByb3h5PiYm
IG1haW5GcmFtZSkKIHsKICAgICBBU1NFUlQoIW1faXNDbG9zZWQpOwotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoTG9hZGluZywgInN3YXBUb1dlYlByb2Nlc3M6Iik7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChMb2FkaW5nLCAic3dhcFRvV2ViUHJvY2VzczogbmV3V2ViUGFnZUlEPSUi
IFBSSXU2NCwgd2ViUGFnZUlELnRvVUludDY0KCkpOwogCiAgICAgbV9wcm9jZXNzID0gV1RGTW92
ZShwcm9jZXNzKTsKKyAgICBtX3dlYlBhZ2VJRCA9IHdlYlBhZ2VJRDsKICAgICBtX3dlYnNpdGVE
YXRhU3RvcmUgPSBtX3Byb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKTsKIAogICAgIGlmIChtX2xv
Z2dlcikKQEAgLTExMjUsMTEgKzExMjYsMTEgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2Vi
UGFnZVByb3h5Ojpsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG8KICAg
ICAgICAgbGF1bmNoUHJvY2VzcyhSZWdpc3RyYWJsZURvbWFpbiB7IHJlcXVlc3QudXJsKCkgfSk7
CiAKICAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlTG9hZFJl
cXVlc3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgbV9iYWNrRm9yd2FyZExp
c3QtPmN1cnJlbnRJdGVtKCkpOwotICAgIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShyZXF1ZXN0KSwg
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8pOworICAgIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUo
cmVxdWVzdCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25h
bDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBBUEk6Ok5hdmln
YXRpb24mIG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xp
Y2llcykKIHsKICAgICBBU1NFUlQoIW1faXNDbG9zZWQpOwogCkBAIC0xMTU1LDcgKzExNTYsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogCiAgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVy
cyhsb2FkUGFyYW1ldGVycyk7CiAKLSAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpMb2FkUmVxdWVzdChsb2FkUGFyYW1ldGVycyksIG1fd2ViUGFnZUlEKTsKKyAgICBwcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVxdWVzdChsb2FkUGFyYW1ldGVycyksIHdl
YlBhZ2VJRCk7CiAgICAgcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiB9
CiAKQEAgLTEyMjcsMTEgKzEyMjgsMTEgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFn
ZVByb3h5Ojpsb2FkRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGMKICAgICAg
ICAgbGF1bmNoUHJvY2Vzcyh7IH0pOwogCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0
aW9uU3RhdGUtPmNyZWF0ZUxvYWREYXRhTmF2aWdhdGlvbihtYWtlVW5pcXVlPEFQSTo6U3Vic3Rp
dHV0ZURhdGE+KGRhdGEudmVjdG9yKCksIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNl
ckRhdGEpKTsKLSAgICBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNl
ckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIFdURjo6bnVsbG9wdCwgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisgICAgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNo
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwg
TUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkOjpObywgV1RGOjpudWxsb3B0LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KTsKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0
YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3Qg
U3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQ
b2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9h
ZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZp
Z2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJ
OjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNp
dGVQb2xpY2llcywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImxv
YWREYXRhV2l0aE5hdmlnYXRpb24iKTsKIApAQCAtMTI1NCw3ICsxMjU1LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLAogICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRl
cnMpOwogCiAgICAgcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhpcywgYmFz
ZVVSTCk7Ci0gICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZERhdGEobG9h
ZFBhcmFtZXRlcnMpLCBtX3dlYlBhZ2VJRCk7CisgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6TG9hZERhdGEobG9hZFBhcmFtZXRlcnMpLCB3ZWJQYWdlSUQpOwogICAgIHByb2Nl
c3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwogfQogCkBAIC0yOTU5LDcgKzI5NjAs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZwogICAgIGlmICghZGlkU3VzcGVuZFByZXZpb3Vz
UGFnZSkKICAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDbG9zZSgp
LCBtX3dlYlBhZ2VJRCk7CiAKLSAgICBzd2FwVG9XZWJQcm9jZXNzKG1fcHJvdmlzaW9uYWxQYWdl
LT5wcm9jZXNzKCksIG1fcHJvdmlzaW9uYWxQYWdlLT50YWtlRHJhd2luZ0FyZWEoKSwgbV9wcm92
aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpKTsKKyAgICBzd2FwVG9XZWJQcm9jZXNzKG1fcHJvdmlz
aW9uYWxQYWdlLT5wcm9jZXNzKCksIG1fcHJvdmlzaW9uYWxQYWdlLT53ZWJQYWdlSUQoKSwgbV9w
cm92aXNpb25hbFBhZ2UtPnRha2VEcmF3aW5nQXJlYSgpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+bWFp
bkZyYW1lKCkpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYXV0byBhY2Nlc3NpYmlsaXR5
VG9rZW4gPSBtX3Byb3Zpc2lvbmFsUGFnZS0+dGFrZUFjY2Vzc2liaWxpdHlUb2tlbigpOwpAQCAt
Mjk5OSw3ICszMDAwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbklu
TmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIHMKICAgICBpZiAobV9iYWNr
Rm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkgJiYgKG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3YXJk
TGlzdCgpID09IExvY2tCYWNrRm9yd2FyZExpc3Q6OlllcyB8fCBuYXZpZ2F0aW9uLmxvY2tIaXN0
b3J5KCkgPT0gTG9ja0hpc3Rvcnk6OlllcykpIHsKICAgICAgICAgLy8gSWYgV2ViQ29yZSBpcyBz
dXBwb3NlZCB0byBsb2NrIHRoZSBoaXN0b3J5IGZvciB0aGlzIGxvYWQsIHRoZW4gdGhlIG5ldyBw
cm9jZXNzIG5lZWRzIHRvIGtub3cgYWJvdXQgdGhlIGN1cnJlbnQgaGlzdG9yeSBpdGVtIHNvIGl0
IGNhbiB1cGRhdGUKICAgICAgICAgLy8gaXQgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBvbmUu
Ci0gICAgICAgIG5ld1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEN1cnJlbnRI
aXN0b3J5SXRlbUZvclJlYXR0YWNoKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5p
dGVtU3RhdGUoKSksIG1fd2ViUGFnZUlEKTsKKyAgICAgICAgbmV3UHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6U2V0Q3VycmVudEhpc3RvcnlJdGVtRm9yUmVhdHRhY2gobV9iYWNrRm9y
d2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1TdGF0ZSgpKSwgbV9wcm92aXNpb25hbFBhZ2Ut
PndlYlBhZ2VJRCgpKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogV29yayBvdXQgdGltaW5nIG9m
IHJlc3BvbmRpbmcgd2l0aCB0aGUgbGFzdCBwb2xpY3kgZGVsZWdhdGUsIGV0YwpAQCAtNDYyNSwx
MSArNDYyNiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELAogICAgIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKLSAg
ICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRpZmll
ciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKKyAgICBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksCiAg
ICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5h
bFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3Zl
KHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLAogICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQpAQCAtNDYzNyw4ICs0
NjM4LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3gKICAgICBhdXRvKiBmcmFtZSA9IHByb2Nl
c3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0socHJvY2VzcywgZnJhbWUp
OwogCi0gICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50
aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lSUQsIGxp
c3RlbmVySUQsIHByb2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKGF1dG8uLi4gYXJncykgewot
ICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIG1fd2ViUGFnZUlEKTsKKyAg
ICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwg
W3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IHByb2Nlc3MuY29weVJl
ZigpXSAoYXV0by4uLiBhcmdzKSB7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBhcmdz
Li4uKSwgd2ViUGFnZUlEKTsKICAgICB9KTsKIAogICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24ocHJvY2Vzcy5jb3B5UmVmKCksICpmcmFtZSwgV1RGTW92ZShmcmFtZVNlY3VyaXR5
T3JpZ2luKSwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RG
TW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsCkBAIC00OTM1LDEwICs0OTM2
LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNh
blNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsK
KyAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBt
X3dlYlBhZ2VJRCwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2
aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0
dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBk
b3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQo
KSk7CkBAIC00OTUxLDE0ICs0OTUyLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAg
TUVTU0FHRV9DSEVDS19VUkwocHJvY2VzcywgcmVzcG9uc2UudXJsKCkpOwogCiAgICAgUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2aWdhdGlv
blN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwotICAgIGF1dG8gbGlz
dGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVu
ZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAgYXV0byBsaXN0ZW5l
ciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQsIGlkZW50aWZpZXIs
IGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb24pLAogICAgICAgICBw
cm9jZXNzID0gcHJvY2Vzcy5jb3B5UmVmKCldIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBB
UEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2Fm
ZUJyb3dzaW5nV2FybmluZykgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhl
IEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lclVzZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxF
QVNFX0FTU0VSVChwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQ6Ok5vKTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChzYWZlQnJvd3NpbmdX
YXJuaW5nLCAhc2FmZUJyb3dzaW5nV2FybmluZyk7CiAKLSAgICAgICAgYXV0byBzZW5kZXIgPSBQ
b2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2Vz
cyA9IFdURk1vdmUocHJvY2VzcyldIChhdXRvLi4uIGFyZ3MpIHsKLSAgICAgICAgICAgIHByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFt
ZUlELCBsaXN0ZW5lcklELCBhcmdzLi4uKSwgbV93ZWJQYWdlSUQpOworICAgICAgICBhdXRvIHNl
bmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3dlYlBhZ2VJ
RCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJvY2VzcyldIChhdXRv
Li4uIGFyZ3MpIHsKKyAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBhcmdzLi4uKSwg
d2ViUGFnZUlEKTsKICAgICAgICAgfSk7CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGlj
eURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGOjpudWxsb3B0LCBX
VEZNb3ZlKHNlbmRlcikpOwpAQCAtNzE3Nyw2ICs3MTc4LDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkm
IHByb2MKICAgICBwYXJhbWV0ZXJzLmFjdGl2aXR5U3RhdGUgPSBtX2FjdGl2aXR5U3RhdGU7CiAg
ICAgcGFyYW1ldGVycy5kcmF3aW5nQXJlYVR5cGUgPSBkcmF3aW5nQXJlYS50eXBlKCk7CiAgICAg
cGFyYW1ldGVycy5kcmF3aW5nQXJlYUlkZW50aWZpZXIgPSBkcmF3aW5nQXJlYS5pZGVudGlmaWVy
KCk7CisgICAgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJZGVudGlmaWVyID0gbV9pZGVudGlmaWVy
OwogICAgIHBhcmFtZXRlcnMuc3RvcmUgPSBwcmVmZXJlbmNlc1N0b3JlKCk7CiAgICAgcGFyYW1l
dGVycy5wYWdlR3JvdXBEYXRhID0gbV9wYWdlR3JvdXAtPmRhdGEoKTsKICAgICBwYXJhbWV0ZXJz
LmlzRWRpdGFibGUgPSBtX2lzRWRpdGFibGU7CkBAIC04Njk3LDE1ICs4Njk5LDE1IEBAIFdlYlVS
TFNjaGVtZUhhbmRsZXIqIFdlYlBhZ2VQcm94eTo6dXJsU2NoZW1lSGFuZGxlckZvclNjaGVtZShj
b25zdCBTdHJpbmcmIHNjaGVtCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRh
c2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewotICAgIHN0YXJ0VVJM
U2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBXVEZNb3ZlKHBhcmFtZXRlcnMp
KTsKKyAgICBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93
ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycykpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
c3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQordm9pZCBXZWJQYWdlUHJveHk6
OnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVu
dGlmaWVyLmZpbmQocGFyYW1ldGVycy5oYW5kbGVySWRlbnRpZmllcik7CiAgICAgTUVTU0FHRV9D
SEVDSyhwcm9jZXNzLCBpdGVyYXRvciAhPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVy
LmVuZCgpKTsKIAotICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRUYXNrKCp0aGlzLCBwcm9jZXNz
LCBwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCks
IG51bGxwdHIpOworICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRUYXNrKCp0aGlzLCBwcm9jZXNz
LCB3ZWJQYWdlSUQsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVy
cy5yZXF1ZXN0KSwgbnVsbHB0cik7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzdG9wVVJMU2No
ZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIpCkBAIC04NzIxLDcgKzg3MjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9u
b3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogICAgIGF1
dG8gaXRlcmF0b3IgPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVyLmZpbmQocGFyYW1l
dGVycy5oYW5kbGVySWRlbnRpZmllcik7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGl0
ZXJhdG9yICE9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZW5kKCkpOwogCi0gICAg
aXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIG1fcHJvY2VzcywgcGFyYW1ldGVycy50
YXNrSWRlbnRpZmllciwgV1RGTW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBXVEZNb3ZlKHJlcGx5
KSk7CisgICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIG1fcHJvY2VzcywgbV93
ZWJQYWdlSUQsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVycy5y
ZXF1ZXN0KSwgV1RGTW92ZShyZXBseSkpOwogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYzlm
ODExZmU1YmQuLmM4MmU5MjU5MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTUxMiwxNCArMTUxMiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0
aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9u
RGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Y1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAg
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJ
bmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwKICAgICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNw
b25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRB
dHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgVVJMU2No
ZW1lVGFza1BhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5j
b2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RB
bGxvdyk7Ci0gICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCk7CisgICAgdm9pZCBzdGFydFVS
TFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOworICAgIHZvaWQgbG9hZERhdGFX
aXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwg
Y29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3Ry
aW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6
bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6
OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2b2lk
IGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6
Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
T3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCk7CiAgICAgdm9p
ZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0
IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZv
RGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LApAQCAtMTczNiw3ICsxNzM2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENhblNob3J0
Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyhib29sIGNhblNob3J0Q2lyY3VpdEhvcml6b250
YWxXaGVlbEV2ZW50cykgeyBtX2NhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyA9
IGNhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50czsgfQogCiAgICAgdm9pZCBsYXVu
Y2hQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgdm9pZCBz
d2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHN0ZDo6dW5pcXVlX3B0cjxE
cmF3aW5nQXJlYVByb3h5PiYmLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpOwor
ICAgIHZvaWQgc3dhcFRvV2ViUHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYsIFJl
ZlB0cjxXZWJGcmFtZVByb3h5PiYmIG1haW5GcmFtZSk7CiAgICAgdm9pZCBkaWRGYWlsVG9TdXNw
ZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpOwogICAgIHZvaWQgZGlkU3VzcGVuZEFmdGVyUHJvY2Vzc1N3
YXAoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggNjRiMzFmNzU5MjIuLjdiN2FlNDBiMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IEFkZCB1bmhh
bmRsZWQgbWVzc2FnZSBsb2dnaW5nLgorICAgIExPR19FUlJPUigiVW5oYW5kbGVkIFdlYlByb2Nl
c3NQcm94eSBJUEMgbWVzc2FnZSAlczo6JXMgKGRlc3RpbmF0aW9uOiAlIiBQUkl1NjQgIikiLCBk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7
CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCmluZGV4IDVhNmNjOTVkMGY4Li45MGMwYjgw
ZTAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxl
ci5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVt
ZUhhbmRsZXIoKQogICAgIEFTU0VSVChtX3Rhc2tzLmlzRW1wdHkoKSk7CiB9CiAKLXZvaWQgV2Vi
VVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdl
LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgdWlu
dDY0X3QgdGFza0lkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2Fk
Q29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHJlc3Vs
dCA9IG1fdGFza3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUo
KnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90YXNrcy5h
ZGQodGFza0lkZW50aWZpZXIsIFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwg
cHJvY2Vzcywgd2ViUGFnZUlELCB0YXNrSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkp
OwogCiAgICAgYXV0byBwYWdlRW50cnkgPSBtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5hZGQocGFn
ZS5pZGVudGlmaWVyKCksIEhhc2hTZXQ8dWludDY0X3Q+KCkpOwpAQCAtMTA0LDcgKzEwNCw3IEBA
IHZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVUYXNr
JiB0YXNrKQogewogICAgIGF1dG8gdGFrZW5UYXNrID0gbV90YXNrcy50YWtlKHRhc2suaWRlbnRp
ZmllcigpKTsKICAgICBBU1NFUlRfVU5VU0VEKHRha2VuVGFzaywgdGFrZW5UYXNrLT5wdHIoKSA9
PSAmdGFzayk7Ci0gICAgcmVtb3ZlVGFza0Zyb21QYWdlTWFwKHRhc2sucGFnZUlEKCksIHRhc2su
aWRlbnRpZmllcigpKTsKKyAgICByZW1vdmVUYXNrRnJvbVBhZ2VNYXAodGFzay5wYWdlUHJveHlJ
RCgpLCB0YXNrLmlkZW50aWZpZXIoKSk7CiAKICAgICBwbGF0Zm9ybVRhc2tDb21wbGV0ZWQodGFz
ayk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVI
YW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgK
aW5kZXggZDU4YzdlNTY3MzIuLjIzNDkwNmY0YzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0K
IAotICAgIHZvaWQgc3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVp
bnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xv
YWRDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHN0YXJ0VGFzayhXZWJQYWdlUHJveHkm
LCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgdGFz
a0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRp
b25IYW5kbGVyJiYpOwogICAgIHZvaWQgc3RvcFRhc2soV2ViUGFnZVByb3h5JiwgdWludDY0X3Qg
dGFza0lkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcEFsbFRhc2tzRm9yUGFnZShXZWJQYWdlUHJv
eHkmLCBXZWJQcm9jZXNzUHJveHkqKTsKICAgICB2b2lkIHRhc2tDb21wbGV0ZWQoV2ViVVJMU2No
ZW1lVGFzayYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2No
ZW1lVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNw
cAppbmRleCBkNjFmMTM2MjI2NC4uMjdhM2RiNTRmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCkBAIC0zNiwxNyArMzYsMTcgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxXZWJVUkxTY2hlbWVU
YXNrPiBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxl
ciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbnQ2NF90
IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRD
b21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKK1JlZjxXZWJVUkxTY2hl
bWVUYXNrPiBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFu
ZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBs
ZXRpb25IYW5kbGVyKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlVSTFNjaGVtZVRh
c2soaGFuZGxlciwgcGFnZSwgcHJvY2VzcywgcmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJl
cXVlc3QpLCBXVEZNb3ZlKHN5bmNDb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJVUkxTY2hlbWVUYXNrKGhhbmRsZXIsIHBhZ2UsIHByb2Nlc3MsIHdlYlBh
Z2VJRCwgcmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHN5bmND
b21wbGV0aW9uSGFuZGxlcikpKTsKIH0KIAotV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1l
VGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0Nv
bXBsZXRpb25IYW5kbGVyKQorV2ViVVJMU2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayhXZWJV
UkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCB1aW50NjRfdCByZXNvdXJj
ZUlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlv
bkhhbmRsZXImJiBzeW5jQ29tcGxldGlvbkhhbmRsZXIpCiAgICAgOiBtX3VybFNjaGVtZUhhbmRs
ZXIoaGFuZGxlcikKLSAgICAsIG1fcGFnZSgmcGFnZSkKICAgICAsIG1fcHJvY2VzcyhtYWtlUmVm
KHByb2Nlc3MpKQogICAgICwgbV9pZGVudGlmaWVyKHJlc291cmNlSWRlbnRpZmllcikKLSAgICAs
IG1fcGFnZUlkZW50aWZpZXIocGFnZS5pZGVudGlmaWVyKCkpCisgICAgLCBtX3BhZ2VQcm94eUlE
KHBhZ2UuaWRlbnRpZmllcigpKQorICAgICwgbV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwg
bV9yZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpCiAgICAgLCBtX3N5bmNDb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHN5bmNDb21wbGV0aW9uSGFuZGxlcikpCiB7CkBAIC04Miw3ICs4Miw3IEBAIGF1
dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZXNwb25zCiAgICAgICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAg
fQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNr
RGlkUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBt
X2lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7Cisg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVy
Zm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50
aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQYWdlSUQpOwogCiAgICAgcmV0dXJuIEV4
Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CkBAIC0xMDcsNyArMTA3LDcgQEAgYXV0byBXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpIC0+IEUKICAgICBpZiAoaXNTeW5jKCkpCiAgICAgICAgIG1fc3luY1Jlc3BvbnNlID0gcmVz
cG9uc2U7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVt
ZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCks
IG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVz
cG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVz
cG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9
CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVE
YXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKSAtPiBFeGNlcHRpb25UeQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShtX3VybFNjaGVt
ZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCB7IGJ1ZmZlciB9KSwgbV9wYWdl
LT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpV
UkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVy
KCksIG1faWRlbnRpZmllciwgeyBidWZmZXIgfSksIG1fd2ViUGFnZUlEKTsKICAgICByZXR1cm4g
RXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KIApAQCAtMTY0LDcgKzE2NCw3IEBAIGF1dG8gV2ViVVJM
U2NoZW1lVGFzazo6ZGlkQ29tcGxldGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIC0+IEV4
Y2VwdGlvblR5cGUKICAgICAgICAgbV9zeW5jRGF0YSA9IG51bGxwdHI7CiAgICAgfQogCi0gICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkQ29tcGxl
dGUobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgZXJyb3Ip
LCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50
aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvciksIG1fd2ViUGFnZUlEKTsKICAgICBtX3VybFNj
aGVtZUhhbmRsZXItPnRhc2tDb21wbGV0ZWQoKnRoaXMpOwogCiAgICAgcmV0dXJuIEV4Y2VwdGlv
blR5cGU6Ok5vbmU7CkBAIC0xNzMsOSArMTczLDkgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpk
aWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQog
dm9pZCBXZWJVUkxTY2hlbWVUYXNrOjpwYWdlRGVzdHJveWVkKCkKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChtX3BhZ2UpOwogCi0gICAgbV9wYWdlID0gbnVs
bHB0cjsKKyAgICBtX3BhZ2VQcm94eUlEID0geyB9OworICAgIG1fd2ViUGFnZUlEID0geyB9Owog
ICAgIG1fcHJvY2VzcyA9IG51bGxwdHI7CiAgICAgbV9zdG9wcGVkID0gdHJ1ZTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAppbmRleCAzOWIyZmViNDNi
Zi4uYmZkOTIzMzkxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVS
TFNjaGVtZVRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVU
YXNrLmgKQEAgLTU0LDEzICs1NCwxMyBAQCB1c2luZyBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVy
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZQogY2xhc3Mg
V2ViVVJMU2NoZW1lVGFzayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJVUkxTY2hl
bWVUYXNrPiwgcHVibGljIEluc3RhbmNlQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViVVJMU2NoZW1lVGFzayk7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdl
YlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOworICAg
IHN0YXRpYyBSZWY8V2ViVVJMU2NoZW1lVGFzaz4gY3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXIm
LCBXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgdWludDY0X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNM
b2FkQ29tcGxldGlvbkhhbmRsZXImJik7CiAKICAgICB+V2ViVVJMU2NoZW1lVGFzaygpOwogCiAg
ICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFn
ZUlEKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9wYWdlSWRl
bnRpZmllcjsgfQotCisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCgpIGNv
bnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0K
KyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYlByb2Nlc3NQ
cm94eSogcHJvY2VzcygpIHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcHJv
Y2Vzcy5nZXQoKTsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC04NywxNSArODcsMTUgQEAg
cHVibGljOgogICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwogCiBwcml2YXRlOgotICAgIFdlYlVS
TFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nl
c3NQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIFdlYlVSTFNjaGVtZVRhc2soV2Vi
VVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIGJvb2wgaXNT
eW5jKCkgY29uc3QgeyByZXR1cm4gISFtX3N5bmNDb21wbGV0aW9uSGFuZGxlcjsgfQogCiAgICAg
UmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcjsKLSAgICBXZWJQYWdl
UHJveHkqIG1fcGFnZTsKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CiAg
ICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9w
YWdlSWRlbnRpZmllcjsKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7
CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBtdXRhYmxlIExvY2sgbV9yZXF1ZXN0TG9j
azsKICAgICBib29sIG1fc3RvcHBlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXIuY3BwCmluZGV4IDJiMjg4NjRhOWFhLi5jNDRhZGIyNmEwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlci5jcHAKQEAgLTI1Miw3ICsyNTIsNyBAQCBwcml2YXRlOgogICAgICAg
ICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OkRpZFBvc3RNZXNzYWdlKHdlYlBhZ2UtPnBh
Z2VJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBtX2lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5j
ZSh2YWx1ZS0+ZGF0YSgpKSksIG1fY29udHJvbGxlci0+aWRlbnRpZmllcigpKTsKKyAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OkRpZFBvc3RNZXNzYWdlKHdl
YlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgd2ViRnJhbWUtPmluZm8oKSwgbV9pZGVu
dGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UodmFsdWUtPmRhdGEoKSkpLCBtX2NvbnRyb2xsZXIt
PmlkZW50aWZpZXIoKSk7CiAgICAgfQogCiAgICAgUmVmUHRyPFdlYlVzZXJDb250ZW50Q29udHJv
bGxlcj4gbV9jb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCmlu
ZGV4IDkwZmRmMGU2ZTkwLi5iMTk5YTEwMzA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJl
Z2lzdHJ5LmNwcApAQCAtMzUsNyArMzUsNyBAQCBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6V2Vi
UmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZQogICAg
IDogUmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVnaXN0cnkpCiAgICAgLCBtX3Bh
Z2UocGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fcGFnZS5wYWdlSUQoKSwgKnRoaXMpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFk
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgKnRoaXMpOwog
ICAgIHBhZ2Uuc2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkodGhpcyk7CiB9CiAKQEAgLTQ3LDcgKzQ3
LDcgQEAgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6On5XZWJSZW1vdGVPYmplY3RSZWdpc3RyeSgp
CiB2b2lkIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSgpCiB7CiAgICAgaWYgKG1fcGFn
ZS5yZW1vdGVPYmplY3RSZWdpc3RyeSgpID09IHRoaXMpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RS
ZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS53ZWJQ
YWdlUHJveHlJZGVudGlmaWVyKCkpOwogICAgICAgICBtX3BhZ2Uuc2V0UmVtb3RlT2JqZWN0UmVn
aXN0cnkobnVsbHB0cik7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBmYzRiYjUwMzZhYi4uZGRjYzk2MDZmODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MjksNiArNDI5
LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShWSUVXUE9SVF9SRVNJWklO
RykKICAgICAsIG1fc2hyaW5rVG9GaXRDb250ZW50VGltZXIoKnRoaXMsICZXZWJQYWdlOjpzaHJp
bmtUb0ZpdENvbnRlbnRUaW1lckZpcmVkLCAwX3MpCiAjZW5kaWYKKyAgICAsIG1fd2ViUGFnZVBy
b3h5SWRlbnRpZmllcihwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlkZW50aWZpZXIpCiAjaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKICAgICAsIG1fdGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGlt
ZXIoKnRoaXMsICZXZWJQYWdlOjp0ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lckZpcmVkKQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
NzgxMzcwZGE0YTMuLjdiNjA3ZGMzYTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0yOTIsNyArMjkyLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsg
fQotICAgIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHNlc3Npb25TdG9yYWdlTmFtZXNwYWNl
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPFN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyVHlwZT4obV9wYWdlSUQudG9VSW50NjQoKSk7IH0KKyAgICBTdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllciBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtYWtlT2JqZWN0SWRlbnRpZmllcjxTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllclR5cGU+KG1fd2ViUGFnZVByb3h5SWRlbnRpZmllci50b1VJbnQ2NCgpKTsgfQogICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+c2Vzc2lv
bklEKCk7IH0KICAgICBib29sIHVzZXNFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4g
bV9wYWdlLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpOyB9CiAKQEAgLTEyMDMsNiArMTIwMyw4IEBA
IHB1YmxpYzoKICAgICBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeSogcmVtb3RlT2JqZWN0UmVnaXN0
cnkoKTsKICNlbmRpZgogCisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQYWdlUHJveHlJZGVudGlmaWVyOyB9CisK
ICAgICB2b2lkIHVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplSWZOZWVkZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgc2NoZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsK
ICAgICBib29sIGlzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CkBAIC0xOTU3LDYgKzE5NTksNyBAQCBw
cml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdlYWtQdHI8V2ViUmVtb3RlT2JqZWN0
UmVnaXN0cnk+IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKKyAgICBXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpJbnRT
aXplIG1fbGFzdFNlbnRJbnRyaW5zaWNDb250ZW50U2l6ZTsKICNpZiBFTkFCTEUoVklFV1BPUlRf
UkVTSVpJTkcpCiAgICAgV2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lciBtX3Nocmlua1Rv
Rml0Q29udGVudFRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDc3MjY3MmM0OWIwLi42ZGZlZmRlZjIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcApAQCAtNzQ2LDcgKzc0Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
CiAgICAgfQogI2VuZGlmCiAKLSAgICBMT0dfRVJST1IoIlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBt
ZXNzYWdlICclczolcyciLCBkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygp
LmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpKTsKKyAgICBM
T0dfRVJST1IoIlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczolcycgKGRlc3RpbmF0
aW9uOiAlbGx1KSIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCkuZGF0
YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIuZGVz
dGluYXRpb25JRCgpKTsKIH0KIAogV2ViRnJhbWUqIFdlYlByb2Nlc3M6OndlYkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCmluZGV4IDVi
ZDgwMjcyNTU5Li5kYWNkMGY3ZmRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApAQCAtNDIs
MjggKzQyLDMwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCi1SZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVh
dGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVuc2lnbmVk
IHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorUmVmPFN0b3JhZ2VOYW1l
c3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UoSWRlbnRpZmllciBpZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVuc2ln
bmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpTZXNzaW9u
LCBpZGVudGlmaWVyLCBudWxscHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpTZXNz
aW9uLCBpZGVudGlmaWVyLCBwYWdlSUQsIG51bGxwdHIsIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklE
KSk7CiB9CiAKIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFjZUltcGw6
OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVuc2ln
bmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpMb2NhbCwg
aWRlbnRpZmllciwgbnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9uSUQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZTo6TG9jYWws
IGlkZW50aWZpZXIsIFdURjo6bnVsbG9wdCwgbnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9u
SUQpKTsKIH0KIAogUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1w
bDo6Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCB1aW50NjRfdCBx
dW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZTo6VHJhbnNpZW50TG9j
YWwsIGlkZW50aWZpZXIsICZ0b3BMZXZlbE9yaWdpbiwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9uSUQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdl
VHlwZTo6VHJhbnNpZW50TG9jYWwsIGlkZW50aWZpZXIsIFdURjo6bnVsbG9wdCwgJnRvcExldmVs
T3JpZ2luLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOwogfQogCi1TdG9yYWdlTmFtZXNwYWNl
SW1wbDo6U3RvcmFnZU5hbWVzcGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUgc3RvcmFnZVR5
cGUsIElkZW50aWZpZXIgc3RvcmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQorU3RvcmFnZU5hbWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFdl
YkNvcmU6OlN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBJZGVudGlmaWVyIHN0b3JhZ2VOYW1lc3Bh
Y2VJRCwgY29uc3QgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+JiBwYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExldmVsT3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0
ZXMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fc3RvcmFnZVR5cGUoc3RvcmFn
ZVR5cGUpCiAgICAgLCBtX3N0b3JhZ2VOYW1lc3BhY2VJRChzdG9yYWdlTmFtZXNwYWNlSUQpCisg
ICAgLCBtX3Nlc3Npb25QYWdlSUQocGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX3RvcExldmVsT3Jp
Z2luKHRvcExldmVsT3JpZ2luKQogICAgICwgbV9xdW90YUluQnl0ZXMocXVvdGFJbkJ5dGVzKQog
ICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogeworICAgIEFTU0VSVChzdG9yYWdlVHlwZSA9
PSBTdG9yYWdlVHlwZTo6U2Vzc2lvbiB8fCAhbV9zZXNzaW9uUGFnZUlEKTsKIH0KIAogU3RvcmFn
ZU5hbWVzcGFjZUltcGw6On5TdG9yYWdlTmFtZXNwYWNlSW1wbCgpCkBAIC05OCw3ICsxMDAsNyBA
QCBSZWY8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNvcHkoUGFnZSog
bmV3UGFnZSkKICAgICBpZiAoYXV0byBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpKQogICAg
ICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlTWFuYWdlclNldDo6Q2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShuZXdQYWdl
LT5zZXNzaW9uSUQoKSwgbV9zdG9yYWdlTmFtZXNwYWNlSUQsIFdlYlBhZ2U6OmZyb21Db3JlUGFn
ZShuZXdQYWdlKS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCkpLCAwKTsKIAot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKG1fc3RvcmFnZVR5
cGUsIFdlYlBhZ2U6OmZyb21Db3JlUGFnZShuZXdQYWdlKS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2VJZGVudGlmaWVyKCksIG1fdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIG1fcXVvdGFJbkJ5dGVzLCBu
ZXdQYWdlLT5zZXNzaW9uSUQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VO
YW1lc3BhY2VJbXBsKG1fc3RvcmFnZVR5cGUsIFdlYlBhZ2U6OmZyb21Db3JlUGFnZShuZXdQYWdl
KS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIFdlYlBhZ2U6OmZyb21Db3Jl
UGFnZShuZXdQYWdlKS0+cGFnZUlEKCksIG1fdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIG1fcXVvdGFJ
bkJ5dGVzLCBuZXdQYWdlLT5zZXNzaW9uSUQoKSkpOwogfQogCiB2b2lkIFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjpzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
QEAgLTExMSw3ICsxMTMsNyBAQCB2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXRTZXNzaW9u
SURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIFBhZ2VJZGVudGlmaWVyIFN0
b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFnZVBhZ2VJRCgpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKG1fc3RvcmFnZVR5cGUgPT0gU3RvcmFnZVR5cGU6OlNlc3Npb24pOwotICAgIHJldHVy
biBtYWtlT2JqZWN0SWRlbnRpZmllcjxQYWdlSWRlbnRpZmllclR5cGU+KG1fc3RvcmFnZU5hbWVz
cGFjZUlELnRvVUludDY0KCkpOworICAgIHJldHVybiAqbV9zZXNzaW9uUGFnZUlEOwogfQogCiB1
aW50NjRfdCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6cGFnZUdyb3VwSUQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmgKaW5kZXggM2EwYWIxOWQ0YzIuLjQ1MTc5NzQyYjYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZUltcGwgOiBw
dWJsaWMgV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgSWRl
bnRpZmllciA9IFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyOwogCi0gICAgc3RhdGljIFJlZjxT
dG9yYWdlTmFtZXNwYWNlSW1wbD4gY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRp
ZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7CisgICAgc3RhdGlj
IFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uo
SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVuc2lnbmVkIHF1b3RhSW5CeXRl
cywgUEFMOjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+
IGNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyLCB1bnNpZ25lZCBxdW90YUlu
Qnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgUmVmPFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsPiBjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCB1aW50NjRfdCBxdW90YUluQnl0
ZXMsIFBBTDo6U2Vzc2lvbklEKTsKIApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEKSBvdmVycmlkZTsKIAogcHJp
dmF0ZToKLSAgICBTdG9yYWdlTmFtZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSwgSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExldmVsT3JpZ2luLCB1bnNpZ25l
ZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICBTdG9yYWdlTmFtZXNwYWNlSW1w
bChXZWJDb3JlOjpTdG9yYWdlVHlwZSwgSWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+JiBwYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qIHRvcExldmVsT3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklE
KTsKIAogICAgIFJlZjxXZWJDb3JlOjpTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikgb3ZlcnJpZGU7CiAKQEAgLTcyLDYgKzcyLDcgQEAg
cHJpdmF0ZToKIAogICAgIGNvbnN0IFdlYkNvcmU6OlN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7
CiAgICAgY29uc3QgSWRlbnRpZmllciBtX3N0b3JhZ2VOYW1lc3BhY2VJRDsKKyAgICBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbV9zZXNzaW9uUGFnZUlEOwogCiAgICAgLy8gT25s
eSB1c2VkIGZvciB0cmFuc2llbnQgbG9jYWwgc3RvcmFnZSBuYW1lc3BhY2VzLgogICAgIGNvbnN0
IFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbE9yaWdpbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9X
ZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCmluZGV4IDMwMGNjZjA3ODNhLi40ODE4MWI0
OTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvV2Vi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCkBAIC02Niw3ICs2
Niw4IEBAIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6fldlYlN0b3JhZ2VOYW1lc3BhY2VQ
cm92aWRlcigpCiAKIFJlZjxXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlPiBXZWJTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKFBhZ2UmIHBhZ2Us
IHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJldHVybiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3Jl
YXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCZwYWdlKS0+
c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIHF1b3RhLCBwYWdlLnNlc3Npb25J
RCgpKTsKKyAgICBhdXRvKiB3ZWJQYWdlID0gV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCZwYWdlKTsK
KyAgICByZXR1cm4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlKHdlYlBhZ2UtPnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCB3ZWJQ
YWdlLT5wYWdlSUQoKSwgcXVvdGEsIHBhZ2Uuc2Vzc2lvbklEKCkpOwogfQogCiBSZWY8V2ViQ29y
ZTo6U3RvcmFnZU5hbWVzcGFjZT4gV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVM
b2NhbFN0b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQgcXVvdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377619</attachid>
            <date>2019-08-29 13:32:28 -0700</date>
            <delta_ts>2019-08-29 13:38:19 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>201225_pson_webPageID_bump_wip.patch</filename>
            <type>text/plain</type>
            <size>97762</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDc2ZmVjYzI4MDY0
Li42YTIzYWM0OGVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0yMjIsNiArMjIyLDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJz
KHJlY2VpdmVyKToKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXInLAogICAgIF0pCiAKICAgICBmb3IgcGFyYW1ldGVy
IGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
QVBJUGFnZUhhbmRsZS5jcHAKaW5kZXggZTYwNWE0NTk0NmYuLjFlMWYwNDY1MmFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwCkBAIC0zMSwxOCArMzEsMTkg
QEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxQYWdlSGFuZGxlPiBQYWdlSGFuZGxlOjpjcmVh
dGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQorUmVmPFBhZ2VIYW5kbGU+IFBhZ2VI
YW5kbGU6OmNyZWF0ZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQYWdlSGFuZGxlKHBhZ2VJRCwgZmFsc2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBQYWdlSGFuZGxlKHBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIGZhbHNlKSk7CiB9CiAKLVJl
ZjxQYWdlSGFuZGxlPiBQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCitSZWY8UGFnZUhhbmRsZT4gUGFnZUhhbmRsZTo6Y3JlYXRl
QXV0b2NvbnZlcnRpbmcoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGFnZUhhbmRsZShwYWdlSUQsIHRydWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBQYWdlSGFuZGxlKHBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHRydWUpKTsKIH0KIAotUGFn
ZUhhbmRsZTo6UGFnZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIGJvb2wg
aXNBdXRvY29udmVydGluZykKLSAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKK1BhZ2VIYW5kbGU6OlBh
Z2VIYW5kbGUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKKyAg
ICA6IG1fcGFnZVByb3h5SUQocGFnZVByb3h5SUQpCisgICAgLCBtX3dlYlBhZ2VJRCh3ZWJQYWdl
SUQpCiAgICAgLCBtX2lzQXV0b2NvbnZlcnRpbmcoaXNBdXRvY29udmVydGluZykKIHsKIH0KQEAg
LTUzLDIyICs1NCwyOCBAQCBQYWdlSGFuZGxlOjp+UGFnZUhhbmRsZSgpCiAKIHZvaWQgUGFnZUhh
bmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVy
IDw8IG1fcGFnZUlEOworICAgIGVuY29kZXIgPDwgbV9wYWdlUHJveHlJRDsKKyAgICBlbmNvZGVy
IDw8IG1fd2ViUGFnZUlEOwogICAgIGVuY29kZXIgPDwgbV9pc0F1dG9jb252ZXJ0aW5nOwogfQog
CiBib29sIFBhZ2VIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxP
YmplY3Q+JiByZXN1bHQpCiB7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRDsKLSAgICBkZWNvZGVyID4+IHBhZ2VJRDsKLSAgICBpZiAoIXBhZ2VJRCkKKyAgICBP
cHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IHBhZ2VQcm94eUlEOworICAg
IGRlY29kZXIgPj4gcGFnZVByb3h5SUQ7CisgICAgaWYgKCFwYWdlUHJveHlJRCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHdl
YlBhZ2VJRDsKKyAgICBkZWNvZGVyID4+IHdlYlBhZ2VJRDsKKyAgICBpZiAoIXdlYlBhZ2VJRCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBpc0F1dG9jb252ZXJ0aW5nOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaXNBdXRvY29udmVydGluZykpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIHJlc3VsdCA9IGlzQXV0b2NvbnZlcnRpbmcgPyBjcmVhdGVBdXRvY29udmVy
dGluZygqcGFnZUlEKSA6IGNyZWF0ZSgqcGFnZUlEKTsKKyAgICByZXN1bHQgPSBpc0F1dG9jb252
ZXJ0aW5nID8gY3JlYXRlQXV0b2NvbnZlcnRpbmcoKnBhZ2VQcm94eUlELCAqd2ViUGFnZUlEKSA6
IGNyZWF0ZSgqcGFnZVByb3h5SUQsICp3ZWJQYWdlSUQpOwogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuaAppbmRleCA2YTFjZmI2OTgy
NS4uOGNmN2RiOTk0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElQ
YWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUu
aApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElQYWdlSGFuZGxlX2gKIAogI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBA
IC0zOSwyMCArNDAsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIFBhZ2VIYW5kbGUgOiBw
dWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VIYW5kbGU+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFBhZ2VIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7
Ci0gICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGUoV2Vi
S2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Cisg
ICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0
dWFsIH5QYWdlSGFuZGxlKCk7CiAKLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQorICAgIFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0KKyAg
ICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dl
YlBhZ2VJRDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+
Jik7CiAKIHByaXZhdGU6Ci0gICAgUGFnZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Ym9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBQYWdlSGFuZGxlKFdlYktpdDo6V2ViUGFnZVBy
b3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOwogCi0gICAgY29uc3QgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgbV9wYWdlSUQ7CisgICAgY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyIG1fcGFnZVByb3h5SUQ7CisgICAgY29uc3QgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93
ZWJQYWdlSUQ7CiAgICAgY29uc3QgYm9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRIYW5kbGUubW0KaW5kZXggN2U5N2YxNzZjMDguLjk2YmQzNjE0ZGFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlLm1tCkBAIC0yNiwyMSArMjYsMzUgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
V0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1wb3J0ICJXZWJQYWdlLmgi
CisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKwogQGltcGxlbWVudGF0aW9uIFdLQnJvd3NpbmdD
b250ZXh0SGFuZGxlCiAKLS0gKGlkKV9pbml0V2l0aFBhZ2VJRDooV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIpcGFnZUlECistIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVBy
b3h5JilwYWdlCit7CisgICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uu
aWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLndlYlBhZ2VJRCgpXTsKK30KKworLSAoaWQp
X2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlJilwYWdlCit7CisgICAgcmV0dXJuIFtzZWxm
IF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpIGFuZFdl
YlBhZ2VJRDpwYWdlLnBhZ2VJRCgpXTsKK30KKworLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5SUQ6
KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRXZWJQYWdlSUQ6
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRAogewogICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3BhZ2VJRCA9IHBhZ2VJ
RDsKKyAgICBfcGFnZVByb3h5SUQgPSBwYWdlUHJveHlJRDsKKyAgICBfd2ViUGFnZUlEID0gd2Vi
UGFnZUlEOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKE5TVUludGVnZXIpaGFzaAogewot
ICAgIHJldHVybiBfcGFnZUlELnRvVUludDY0KCk7CisgICAgcmV0dXJuIF9wYWdlUHJveHlJRC50
b1VJbnQ2NCgpICsgX3dlYlBhZ2VJRC50b1VJbnQ2NCgpOwogfQogCiAtIChCT09MKWlzRXF1YWw6
KGlkKW9iamVjdApAQCAtNDgsMTIgKzYyLDEzIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0
CiAgICAgaWYgKCFbb2JqZWN0IGlzS2luZE9mQ2xhc3M6W1dLQnJvd3NpbmdDb250ZXh0SGFuZGxl
IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIHJldHVybiBfcGFnZUlEID09IHN0
YXRpY19jYXN0PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCktPl9wYWdlSUQ7Cisg
ICAgcmV0dXJuIF9wYWdlUHJveHlJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZSAqPihvYmplY3QpLT5fcGFnZVByb3h5SUQgJiYgX3dlYlBhZ2VJRCA9PSBzdGF0aWNfY2Fz
dDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqPihvYmplY3QpLT5fd2ViUGFnZUlEOwogfQogCiAt
ICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVu
Y29kZUludDY0Ol9wYWdlSUQudG9VSW50NjQoKSBmb3JLZXk6QCJwYWdlSUQiXTsKKyAgICBbY29k
ZXIgZW5jb2RlSW50NjQ6X3BhZ2VQcm94eUlELnRvVUludDY0KCkgZm9yS2V5OkAicGFnZVByb3h5
SUQiXTsKKyAgICBbY29kZXIgZW5jb2RlSW50NjQ6X3dlYlBhZ2VJRC50b1VJbnQ2NCgpIGZvcktl
eTpAIndlYlBhZ2VJRCJdOwogfQogCiAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29k
ZXIKQEAgLTYxLDcgKzc2LDggQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVy
CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAK
LSAgICBfcGFnZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXJUeXBlPihbY29kZXIgZGVjb2RlSW50NjRGb3JLZXk6QCJwYWdlSUQiXSk7CisgICAgX3BhZ2VQ
cm94eUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyVHlwZT4oW2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAicGFnZVByb3h5SUQiXSk7CisgICAg
X3dlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
VHlwZT4oW2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAid2ViUGFnZUlEIl0pOwogCiAgICAgcmV0
dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaAppbmRleCA0M2U0MWUy
NGNkMy4uOGRlZDU5ZmI1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaApAQCAt
MjQsMTIgKzI0LDIwIEBACiAgKi8KIAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRIYW5kbGUu
aCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUv
UGFnZUlkZW50aWZpZXIuaD4KIAotQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAo
KQorbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdlOworY2xhc3MgV2ViUGFnZVByb3h5
OworfQogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1fcGFnZUlEKSBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQ7CitAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250
ZXh0SGFuZGxlICgpCiAKLS0gKGlkKV9pbml0V2l0aFBhZ2VJRDooV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIpcGFnZUlEOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3Bh
Z2VQcm94eUlEKSBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQ7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1fd2ViUGFnZUlEKSBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7CiAKKy0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eToo
V2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2U7CistIChpZClfaW5pdFdpdGhQYWdlOihXZWJLaXQ6
OldlYlBhZ2UmKXBhZ2U7CistIChpZClfaW5pdFdpdGhQYWdlUHJveHlJRDooV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyKXBhZ2VQcm94eUlEIGFuZFdlYlBhZ2VJRDooV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpd2ViUGFnZUlEOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBlYzMyMzkzZmE3Ni4uNWNhOTU2
ZWIyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCkBAIC0zOSw2ICszOSw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8
IHN0b3JlOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShkcmF3aW5nQXJlYVR5cGUpOwogICAgIGVu
Y29kZXIgPDwgZHJhd2luZ0FyZWFJZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgd2ViUGFnZVBy
b3h5SWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8IHBhZ2VHcm91cERhdGE7CiAgICAgZW5jb2Rl
ciA8PCBpc0VkaXRhYmxlOwogICAgIGVuY29kZXIgPDwgdW5kZXJsYXlDb2xvcjsKQEAgLTE1Nyw2
ICsxNTgsMTEgQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICBpZiAoIWRyYXdpbmdBcmVh
SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBwYXJhbWV0ZXJz
LmRyYXdpbmdBcmVhSWRlbnRpZmllciA9ICpkcmF3aW5nQXJlYUlkZW50aWZpZXI7CisgICAgT3B0
aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKKyAg
ICBkZWNvZGVyID4+IHdlYlBhZ2VQcm94eUlkZW50aWZpZXI7CisgICAgaWYgKCF3ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHBhcmFtZXRl
cnMud2ViUGFnZVByb3h5SWRlbnRpZmllciA9IFdURk1vdmUoKndlYlBhZ2VQcm94eUlkZW50aWZp
ZXIpOwogICAgIE9wdGlvbmFsPFdlYlBhZ2VHcm91cERhdGE+IHBhZ2VHcm91cERhdGE7CiAgICAg
ZGVjb2RlciA+PiBwYWdlR3JvdXBEYXRhOwogICAgIGlmICghcGFnZUdyb3VwRGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBl
MTlkOTk2YTE2My4uMTAxMjRkMGZiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCisjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIK
ICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTgwLDYgKzgxLDcgQEAgc3RydWN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmU7CiAg
ICAgRHJhd2luZ0FyZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKICAgICBEcmF3aW5nQXJlYUlkZW50
aWZpZXIgZHJhd2luZ0FyZWFJZGVudGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIg
d2ViUGFnZVByb3h5SWRlbnRpZmllcjsKICAgICBXZWJQYWdlR3JvdXBEYXRhIHBhZ2VHcm91cERh
dGE7CiAKICAgICBib29sIGlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL09i
akNPYmplY3RHcmFwaC5tbQppbmRleCBmZTY2ZGU2NTkyYS4uMGVhZjA2ZjVjYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbQpAQCAtMTg2LDcgKzE4Niw4
IEBAIHZvaWQgT2JqQ09iamVjdEdyYXBoOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBp
ZCBvYmplY3QpCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBPYmpDVHlwZTo6V0tCcm93c2lu
Z0NvbnRleHRIYW5kbGU6Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8V0tCcm93c2lu
Z0NvbnRleHRIYW5kbGUgKj4ob2JqZWN0KS5wYWdlSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKj4ob2JqZWN0KS5wYWdlUHJveHlJRDsK
KyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAq
PihvYmplY3QpLndlYlBhZ2VJRDsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE9iakNUeXBl
OjpXS1R5cGVSZWZXcmFwcGVyOgpAQCAtMjk4LDEyICsyOTksMTYgQEAgYm9vbCBPYmpDT2JqZWN0
R3JhcGg6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxpZD4mIHJlc3Vs
dCkKICAgICB9CiAKICAgICBjYXNlIE9iakNUeXBlOjpXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZTog
ewotICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwotICAg
ICAgICBkZWNvZGVyID4+IHBhZ2VJRDsKLSAgICAgICAgaWYgKCFwYWdlSUQpCisgICAgICAgIE9w
dGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IHBhZ2VQcm94eUlEOworICAgICAgICBkZWNv
ZGVyID4+IHBhZ2VQcm94eUlEOworICAgICAgICBpZiAoIXBhZ2VQcm94eUlEKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gd2ViUGFnZUlEOworICAgICAgICBkZWNvZGVyID4+IHdlYlBhZ2VJRDsKKyAgICAgICAgaWYg
KCF3ZWJQYWdlSUQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgcmVzdWx0
ID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdl
SUQ6KnBhZ2VJRF0pOworICAgICAgICByZXN1bHQgPSBhZG9wdE5TKFtbV0tCcm93c2luZ0NvbnRl
eHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VQcm94eUlEOipwYWdlUHJveHlJRCBhbmRXZWJQ
YWdlSUQ6KndlYlBhZ2VJRF0pOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCmluZGV4IDExMDAzM2JhNmZhLi43OWVkMjVlYjc5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC03MjAsNyArNzIwLDcgQEAgLSAoTlNVSW50
ZWdlcilwYWdlQ291bnQKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKiloYW5kbGUKIHsK
LSAgICByZXR1cm4gW1tbV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBh
Z2VJRDpfcGFnZS0+d2ViUGFnZUlEKCldIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbV0tC
cm93c2luZ0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VQcm94eToqX3BhZ2VdIGF1
dG9yZWxlYXNlXTsKIH0KIAogLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilfcmVtb3RlT2Jq
ZWN0UmVnaXN0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IGNjN2Y2Yzk2MjU4Li43NDNmZjJjNmNmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04NzcsNyArODc3LDcgQEAg
LSAodm9pZClkZWFsbG9jCiAgICAgW19jb250ZW50VmlldyBfd2ViVmlld0Rlc3Ryb3llZF07CiAK
ICAgICBpZiAoX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAgICAgICBfcGFnZS0+cHJvY2Vzcygp
LnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmpl
Y3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+d2ViUGFnZUlEKCkpOwor
ICAgICAgICBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBfcGFnZS0+aWRlbnRpZmllcigpKTsKICNlbmRpZgogCiAgICAgX3BhZ2UtPmNsb3NlKCk7CkBA
IC00NzI1LDcgKzQ3MjUsNyBAQCAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVP
YmplY3RSZWdpc3RyeQogI2Vsc2UKICAgICBpZiAoIV9yZW1vdGVPYmplY3RSZWdpc3RyeSkgewog
ICAgICAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eToqX3BhZ2VdKTsKLSAgICAgICAg
X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgX3BhZ2UtPndl
YlBhZ2VJRCgpLCBbX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7
CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IF9wYWdlLT5pZGVudGlmaWVyKCksIFtfcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0
UmVnaXN0cnldKTsKICAgICB9CiAKICAgICByZXR1cm4gX3JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmdl
dCgpOwpAQCAtNDczNCw3ICs0NzM0LDcgQEAgLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilf
cmVtb3RlT2JqZWN0UmVnaXN0cnkKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKilfaGFu
ZGxlCiB7Ci0gICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5p
dFdpdGhQYWdlSUQ6X3BhZ2UtPndlYlBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJu
IFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJveHk6Kl9w
YWdlXSBhdXRvcmVsZWFzZV07CiB9CiAKIC0gKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKV9v
YnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGIxZWM4NDZiN2I0
Li4xYTgyNTNhYzA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTc2LDcgKzc2LDcgQEAgUmVmUHRyPE9iakNP
YmplY3RHcmFwaD4gV2ViUHJvY2Vzc1Byb3h5Ojp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKE9i
akNPYmplY3RHcmEKICAgICAgICAgUmV0YWluUHRyPGlkPiB0cmFuc2Zvcm1PYmplY3QoaWQgb2Jq
ZWN0KSBjb25zdCBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYXV0byogaGFu
ZGxlID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGU+KG9iamVjdCkp
IHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gbV93ZWJQcm9jZXNz
UHJveHkud2ViUGFnZShoYW5kbGUucGFnZUlEKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRv
KiB3ZWJQYWdlUHJveHkgPSBtX3dlYlByb2Nlc3NQcm94eS53ZWJQYWdlKGhhbmRsZS5wYWdlUHJv
eHlJRCkpIHsKICAgICAgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJGb3JQYWdlUmVmOnRvQVBJKHdlYlBh
Z2VQcm94eSldOwogICAgICAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggZjQwNDJmZTcwZGYuLjM1YWM0ZGY2ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTM2Miw3ICsxMzYyLDcgQEAgV2ViVmlld0lt
cGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2Vi
VmlldyAqb3V0ZXJXZWIKIFdlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwoKQogewogICAgIGlmICht
X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7Ci0gICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnByb2Nl
c3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdp
c3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICAg
ICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS0+aWRlbnRpZmllcigpKTsKICAgICAgICAgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgX2lu
dmFsaWRhdGVdOwogICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbmlsOwogICAgIH0K
QEAgLTM4MjMsNyArMzgyMyw3IEBAIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpXZWJWaWV3SW1w
bDo6cmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogewogICAgIGlmICghbV9yZW1vdGVPYmplY3RSZWdp
c3RyeSkgewogICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gYWRvcHROUyhbW19XS1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5IGFsbG9jXSBfaW5pdFdpdGhXZWJQYWdlUHJveHk6bV9wYWdlXSk7
Ci0gICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UtPndlYlBhZ2VJRCgpLCBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmpl
Y3RSZWdpc3RyeV0pOworICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFk
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCksIFttX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fcmVtb3Rl
T2JqZWN0UmVnaXN0cnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyYzBjYWQxYjg2NC4uZmIy
MzZkZWVjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vz
c2lvbklEIHNlc3NpCiAKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBudWxscHRyOwogICAgIGlm
IChwYWdlSUQgJiYgIW1fcHJvY2Vzc1Bvb2wuaXNTZXJ2aWNlV29ya2VyUGFnZUlEKHBhZ2VJRCkp
Ci0gICAgICAgIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICAg
ICAgcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIo
cGFnZUlEKTsKIAogICAgIGlmICghcGFnZSkgewogICAgICAgICBhdXRvKiBzdG9yZSA9IHdlYnNp
dGVEYXRhU3RvcmVGcm9tU2Vzc2lvbklEKHNlc3Npb25JRCk7CkBAIC0zOTMsNyArMzkzLDcgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5j
aGVyKiBsYXVuY2hlciwgSVBDOjpDb24KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNo
b3VsZFNhbXBsZSkKIHsKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6
OndlYlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBhZ2VJRCk7CiAgICAgLy8gRklYTUU6
IFdlIGRvIHRoaXMgbnVsbC1jaGVjayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBkZWNpc2lvbiB0
byBsb2cgaXMgbWFkZSwgdGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZhY3RvciB0
byBhdm9pZCB0aGlzLAogICAgIC8vIGJ1dCBmb3Igbm93IHdlIHNpbXBseSBkcm9wIHRoZSBtZXNz
YWdlIGluIHRoZSByYXJlIGNhc2UgdGhpcyBoYXBwZW5zLgogICAgIGlmICghcGFnZSkKQEAgLTQw
NCw3ICs0MDQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgU3RyaQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChQYWdlSWRlbnRpZmllciBw
YWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
dWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewot
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQp
OworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21D
b3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyBudWxs
LWNoZWNrIGJlY2F1c2UgYnkgdGhlIHRpbWUgdGhlIGRlY2lzaW9uIHRvIGxvZyBpcyBtYWRlLCB0
aGUgcGFnZSBtYXkgYmUgZ29uZS4gV2Ugc2hvdWxkIHJlZmFjdG9yIHRvIGF2b2lkIHRoaXMsCiAg
ICAgLy8gYnV0IGZvciBub3cgd2Ugc2ltcGx5IGRyb3AgdGhlIG1lc3NhZ2UgaW4gdGhlIHJhcmUg
Y2FzZSB0aGlzIGhhcHBlbnMuCiAgICAgaWYgKCFwYWdlKQpAQCAtNDE1LDcgKzQxNSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVlLCB1bnNp
Z25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1w
bGUpCiB7Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdl
KHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQ
YWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihwYWdlSUQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyB0
aGlzIG51bGwtY2hlY2sgYmVjYXVzZSBieSB0aGUgdGltZSB0aGUgZGVjaXNpb24gdG8gbG9nIGlz
IG1hZGUsIHRoZSBwYWdlIG1heSBiZSBnb25lLiBXZSBzaG91bGQgcmVmYWN0b3IgdG8gYXZvaWQg
dGhpcywKICAgICAvLyBidXQgZm9yIG5vdyB3ZSBzaW1wbHkgZHJvcCB0aGUgbWVzc2FnZSBpbiB0
aGUgcmFyZSBjYXNlIHRoaXMgaGFwcGVucy4KICAgICBpZiAoIXBhZ2UpCkBAIC03NTgsNyArNzU4
LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXMKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgV2ViUGFnZVBy
b3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFn
ZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRp
ZmllcihwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTk0MSw3ICs5NDEsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJv
bVByZXZhbGVudFJlcwogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBh
Z2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdl
RnJvbUNvcmVQYWdlSWRlbnRpZmllcihwYWdlSUQpOwogICAgIGlmICghcGFnZSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjQxLDcgKzEyNDEsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmNsZWFyVXBsb2FkQXNzZXJ0aW9uKCkKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXN0
UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5
OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBhdXRvKiBwYWdlID0gV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlKHdlYlBhZ2VJRCk7CisgICAgYXV0byogcGFnZSA9IFdlYlByb2Nlc3NQcm94
eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIod2ViUGFnZUlEKTsKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIHJldHVybiByZXBseShmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCAwYzAzNDA2OTA0MS4uYTJh
MDlkYzQ5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJveHkm
IHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywgc3RkOjp1bmlxdWVfcHRyPFN1
c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWludDY0X3QgbmF2aWdhdGlvbklELCBi
b29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX3dlYlBhZ2VJRChwYWdlLndlYlBh
Z2VJRCgpKQorICAgICwgbV93ZWJQYWdlSUQoc3VzcGVuZGVkUGFnZSA/IHN1c3BlbmRlZFBhZ2Ut
PndlYlBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3Byb2Nl
c3MoV1RGTW92ZShwcm9jZXNzKSkKICAgICAsIG1fbmF2aWdhdGlvbklEKG5hdmlnYXRpb25JRCkK
ICAgICAsIG1faXNTZXJ2ZXJSZWRpcmVjdChpc1NlcnZlclJlZGlyZWN0KQpAQCAtMTQ1LDcgKzE0
NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlv
biYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YTogcGFnZVByb3h5SUQgPSAlIiBQUkl1NjQg
IiB3ZWJQYWdlSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwg
bV93ZWJQYWdlSUQudG9VSW50NjQoKSk7CiAKLSAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdh
dGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlw
ZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICBtX3BhZ2Uu
bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBh
Z2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2Vy
RGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUo
d2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIE9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMTU4LDcgKzE1OCw3
IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlv
biYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzCiAgICAgaWYgKG5hdmlnYXRpb24uZnJvbUl0ZW0o
KSAmJiBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0OjpZZXMpCiAgICAgICAgIG5hdmlnYXRpb24uZnJvbUl0ZW0oKS0+c2V0TGFz
dFByb2Nlc3NJZGVudGlmaWVyKG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOwog
Ci0gICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkUmVxdWVz
dFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBu
YXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdU
Rk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtJiBpdGVtLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdl
YnNpdGVQb2xpY2llcykKQEAgLTI4NywxMyArMjg3LDEzIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZy
YW1lCiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJh
bWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwKKyAgICB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlv
bkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFt
ZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2UuZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IGZyYW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmln
YXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksCisgICAgbV9wYWdlLmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKICAg
ICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFs
UmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUo
cmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIApAQCAtMzAzLDcg
KzMwMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zCiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0
KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5k
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlE
LCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNl
LCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklE
LCB1c2VyRGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93
TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAK
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0
cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCkBAIC0zMjQsNyArMzI0LDcgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoRnIKIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6c3RhcnRVUkxT
Y2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsKLSAgICBt
X3BhZ2Uuc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIFdURk1v
dmUocGFyYW1ldGVycykpOworICAgIG1fcGFnZS5zdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycykpOwogfQog
CiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdl
YkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImIGlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQpAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tG
b3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlCiB9CiAKIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9u
YWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCA1YjRj
OWNmMmVkYi4uMTc1MjE1MDQ3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgflByb3Zp
c2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiBt
X3BhZ2U7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7
IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYkZyYW1lUHJveHkqIG1haW5GcmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OyB9CkBAIC05Myw3ICs5NCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAog
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCi0gICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCisgICAgICAgIE9wdGlvbmFsPFdlYlBh
Z2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWlu
dDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93
bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CkBA
IC0xMDksNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhV
UkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0o
Y29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKICAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Ym9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmLAotICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCisgICAgICAgIEZyYW1lSW5mb0Rh
dGEmJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09L
KQogICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5G
cmFtZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggN2I5NWI2ZWRlOGEuLjFhYzNkODgxNTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaApAQCAtNDcsNiAr
NDcsNyBAQCBwdWJsaWM6CiAgICAgflN1c3BlbmRlZFBhZ2VQcm94eSgpOwogCiAgICAgV2ViUGFn
ZVByb3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CisgICAgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgd2ViUGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQYWdlSUQ7IH0KICAg
ICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSB7IHJldHVybiBtX3Byb2Nlc3MuZ2V0KCk7IH0K
ICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVy
biBtX21haW5GcmFtZUlEOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
LmNwcAppbmRleCAxMDdiYjIyNzA4Ni4uZWFmYzQ1NzI5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTMzMiw5ICszMzIsOSBAQCB2b2lkIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyTWVzc2FnZUhhbmRsZXJzKEFQSTo6
VXNlckNvbnRlbgogICAgIHJlbW92ZVVzZXJDb250ZW50V29ybGRVc2VzKHdvcmxkLCBudW1iZXJS
ZW1vdmVkKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6ZGlkUG9z
dE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQYWdlSWRlbnRpZmllciBwYWdl
SUQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG1lc3NhZ2VI
YW5kbGVySUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSkKK3ZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmRpZFBvc3RNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCwgY29u
c3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJ
RCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQogewotICAgIFdlYlBh
Z2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIFdl
YlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlUHJveHlJRCk7
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eS5oCmluZGV4IGU2NDQ0YjJmNDE4Li40NjlkMzBlMzFlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oCkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCi0gICAgdm9p
ZCBkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVp
bnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCiAg
ICAgdm9pZCBhZGRVc2VyQ29udGVudFdvcmxkVXNlKEFQSTo6VXNlckNvbnRlbnRXb3JsZCYpOwog
ICAgIHZvaWQgcmVtb3ZlVXNlckNvbnRlbnRXb3JsZFVzZXMoQVBJOjpVc2VyQ29udGVudFdvcmxk
JiwgdW5zaWduZWQgbnVtYmVyT2ZVc2VzVG9SZW1vdmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyNWE0ZTI5MTI3NC4uOGQy
MDBhMWU2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50
L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yNCw1ICsyNCw1IEBACiAgKi8KIAogbWVzc2FnZXMgLT4gV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkgewotRGlkUG9zdE1lc3NhZ2UoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mb0Rh
dGEsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdl
KSBXYW50c0Nvbm5lY3Rpb24KK0RpZFBvc3RNZXNzYWdlKFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvRGF0
YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2Up
IFdhbnRzQ29ubmVjdGlvbgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VmlzaXRlZExpbmtTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlu
a1N0b3JlLmNwcAppbmRleCBkNzlkN2FkODQ2Yy4uYmI2NTA5OTAzNDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCkBAIC0xMDAsMTAgKzEwMCw5IEBA
IHZvaWQgVmlzaXRlZExpbmtTdG9yZTo6cmVtb3ZlQWxsKCkKICAgICB9CiB9CiAKLXZvaWQgVmlz
aXRlZExpbmtTdG9yZTo6YWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2UoUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTaGFyZWRTdHJpbmdIYXNoIGxpbmtIYXNoKQordm9pZCBWaXNpdGVkTGlua1N0b3Jl
OjphZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZShXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQ
cm94eUlELCBTaGFyZWRTdHJpbmdIYXNoIGxpbmtIYXNoKQogewotICAgIC8vIEZJWE1FOiBOZWVk
cyB0byBsb29rIHVwIFdlYlBhZ2VQcm94eSBmcm9tIFdlYlBhZ2VJRC4KLSAgICBpZiAoYXV0byog
d2ViUGFnZVByb3h5ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCkpIHsKKyAgICBp
ZiAoYXV0byogd2ViUGFnZVByb3h5ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VQcm94
eUlEKSkgewogICAgICAgICBpZiAoIXdlYlBhZ2VQcm94eS0+YWRkc1Zpc2l0ZWRMaW5rcygpKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rU3RvcmUuaAppbmRleCA0NDY5MzUzNDQ4MS4uYzVjMzA4MWFhZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNs
dWRlICJTaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
SWRlbnRpZmllZC5oPgpAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkSW52
YWxpZGF0ZVNoYXJlZE1lbW9yeSgpIGZpbmFsOwogICAgIHZvaWQgZGlkVXBkYXRlU2hhcmVkU3Ry
aW5nSGFzaGVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoPiYgYWRkZWRI
YXNoZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoPiYgcmVtb3ZlZEhh
c2hlcykgZmluYWw7CiAKLSAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdlKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoKTsKKyAgICB2b2lk
IGFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNv
cmU6OlNoYXJlZFN0cmluZ0hhc2gpOwogCiAgICAgdm9pZCBzZW5kU3RvcmVIYW5kbGVUb1Byb2Nl
c3MoV2ViUHJvY2Vzc1Byb3h5Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCmluZGV4IDJlNjZjNDI4MDhlLi4wNzMyMWM1
MWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9y
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0
b3JlLm1lc3NhZ2VzLmluCkBAIC0yMSw1ICsyMSw1IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3Nh
Z2VzIC0+IFZpc2l0ZWRMaW5rU3RvcmUgewotICAgIEFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgbGlua0hhc2gpCisgICAg
QWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHBhZ2VQcm94eUlELCB1aW50NjRfdCBsaW5rSGFzaCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGMxNDIxNDA4NDlhLi5iNGM4ZGEwYjRiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03OTQsMTIgKzc5NCwxMyBA
QCBib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5h
dmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiYmIGRyYXdpbmdBcmVhLCBSZWZQ
dHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpCit2b2lkIFdlYlBhZ2VQcm94eTo6c3dhcFRv
V2ViUHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVy
IHdlYlBhZ2VJRCwgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYgZHJhd2luZ0Fy
ZWEsIFJlZlB0cjxXZWJGcmFtZVByb3h5PiYmIG1haW5GcmFtZSkKIHsKICAgICBBU1NFUlQoIW1f
aXNDbG9zZWQpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgInN3YXBUb1dl
YlByb2Nlc3M6Iik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAic3dhcFRv
V2ViUHJvY2VzczogbmV3V2ViUGFnZUlEPSUiIFBSSXU2NCwgd2ViUGFnZUlELnRvVUludDY0KCkp
OwogCiAgICAgbV9wcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKTsKKyAgICBtX3dlYlBhZ2VJRCA9
IHdlYlBhZ2VJRDsKICAgICBtX3dlYnNpdGVEYXRhU3RvcmUgPSBtX3Byb2Nlc3MtPndlYnNpdGVE
YXRhU3RvcmUoKTsKIAogICAgIGlmIChtX2xvZ2dlcikKQEAgLTExMjUsMTEgKzExMjYsMTEgQEAg
UmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG8KICAgICAgICAgbGF1bmNoUHJvY2VzcyhSZWdpc3RyYWJs
ZURvbWFpbiB7IHJlcXVlc3QudXJsKCkgfSk7CiAKICAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25h
dmlnYXRpb25TdGF0ZS0+Y3JlYXRlTG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVz
dChyZXF1ZXN0KSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpOwotICAgIGxvYWRS
ZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbmF2aWdhdGlv
bi5nZXQoKSwgV1RGTW92ZShyZXF1ZXN0KSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwg
dXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOworICAgIGxvYWRSZXF1
ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQs
IG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUocmVxdWVzdCksIHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3ksIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKICAg
ICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0
V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJ
OjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNp
dGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9u
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBBU1NFUlQoIW1faXNDbG9z
ZWQpOwogCkBAIC0xMTU1LDcgKzExNTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVl
c3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogCiAg
ICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKLSAgICBwcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkUmVxdWVzdChsb2FkUGFyYW1ldGVycyks
IG1fd2ViUGFnZUlEKTsKKyAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2Fk
UmVxdWVzdChsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CiAgICAgcHJvY2Vzcy0+cmVzcG9u
c2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiB9CiAKQEAgLTEyMjcsMTEgKzEyMjgsMTEgQEAgUmVm
UHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkRGF0YShjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmIGRhdGEsIGMKICAgICAgICAgbGF1bmNoUHJvY2Vzcyh7IH0pOwogCiAgICAg
YXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWREYXRhTmF2aWdh
dGlvbihtYWtlVW5pcXVlPEFQSTo6U3Vic3RpdHV0ZURhdGE+KGRhdGEudmVjdG9yKCksIE1JTUVU
eXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEpKTsKLSAgICBsb2FkRGF0YVdpdGhOYXZp
Z2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVU
eXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZDo6Tm8sIFdURjo6bnVsbG9wdCwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7Cisg
ICAgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dl
YlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1
c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgV1RGOjpudWxsb3B0LCBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVz
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2Rpbmcs
IGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxX
ZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQogewogICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImxvYWREYXRhV2l0aE5hdmlnYXRpb24iKTsKIApAQCAt
MTI1NCw3ICsxMjU1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRp
b25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgIGFkZFBsYXRmb3Jt
TG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwogCiAgICAgcHJvY2Vzcy0+YXNzdW1lUmVh
ZEFjY2Vzc1RvQmFzZVVSTCgqdGhpcywgYmFzZVVSTCk7Ci0gICAgcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6TG9hZERhdGEobG9hZFBhcmFtZXRlcnMpLCBtX3dlYlBhZ2VJRCk7Cisg
ICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZERhdGEobG9hZFBhcmFtZXRl
cnMpLCB3ZWJQYWdlSUQpOwogICAgIHByb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFy
dCgpOwogfQogCkBAIC0yOTU5LDcgKzI5NjAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0
UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZwog
ICAgIGlmICghZGlkU3VzcGVuZFByZXZpb3VzUGFnZSkKICAgICAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpDbG9zZSgpLCBtX3dlYlBhZ2VJRCk7CiAKLSAgICBzd2FwVG9X
ZWJQcm9jZXNzKG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCksIG1fcHJvdmlzaW9uYWxQYWdl
LT50YWtlRHJhd2luZ0FyZWEoKSwgbV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpKTsKKyAg
ICBzd2FwVG9XZWJQcm9jZXNzKG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCksIG1fcHJvdmlz
aW9uYWxQYWdlLT53ZWJQYWdlSUQoKSwgbV9wcm92aXNpb25hbFBhZ2UtPnRha2VEcmF3aW5nQXJl
YSgpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+bWFpbkZyYW1lKCkpOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgYXV0byBhY2Nlc3NpYmlsaXR5VG9rZW4gPSBtX3Byb3Zpc2lvbmFsUGFnZS0+dGFr
ZUFjY2Vzc2liaWxpdHlUb2tlbigpOwpAQCAtMjk5OSw3ICszMDAwLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIHMKICAgICBpZiAobV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkgJiYg
KG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3YXJkTGlzdCgpID09IExvY2tCYWNrRm9yd2FyZExpc3Q6
OlllcyB8fCBuYXZpZ2F0aW9uLmxvY2tIaXN0b3J5KCkgPT0gTG9ja0hpc3Rvcnk6OlllcykpIHsK
ICAgICAgICAgLy8gSWYgV2ViQ29yZSBpcyBzdXBwb3NlZCB0byBsb2NrIHRoZSBoaXN0b3J5IGZv
ciB0aGlzIGxvYWQsIHRoZW4gdGhlIG5ldyBwcm9jZXNzIG5lZWRzIHRvIGtub3cgYWJvdXQgdGhl
IGN1cnJlbnQgaGlzdG9yeSBpdGVtIHNvIGl0IGNhbiB1cGRhdGUKICAgICAgICAgLy8gaXQgaW5z
dGVhZCBvZiBjcmVhdGluZyBhIG5ldyBvbmUuCi0gICAgICAgIG5ld1Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldEN1cnJlbnRIaXN0b3J5SXRlbUZvclJlYXR0YWNoKG1fYmFja0Zv
cndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtU3RhdGUoKSksIG1fd2ViUGFnZUlEKTsKKyAg
ICAgICAgbmV3UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Q3VycmVudEhpc3Rv
cnlJdGVtRm9yUmVhdHRhY2gobV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1T
dGF0ZSgpKSwgbV9wcm92aXNpb25hbFBhZ2UtPndlYlBhZ2VJRCgpKTsKICAgICB9CiAKICAgICAv
LyBGSVhNRTogV29yayBvdXQgdGltaW5nIG9mIHJlc3BvbmRpbmcgd2l0aCB0aGUgbGFzdCBwb2xp
Y3kgZGVsZWdhdGUsIGV0YwpAQCAtNDYyMiwyMyArNDYyMywyMyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6YmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGlj
eUxpc3RlbgogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0Rh
dGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCisgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlv
bmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7Ci0gICAgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZy
YW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmlnYXRp
b25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksCisgICAgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFn
ZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVyLCBu
YXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBXVEZN
b3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBX
VEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJl
c3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCi0gICAgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZy
YW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLAorICAgIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFt
ZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVy
SUQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBNRVNTQUdFX0NIRUNLKHByb2Nlc3MsIGZyYW1lKTsKIAotICAgIGF1dG8gc2VuZGVyID0gUG9s
aWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gcHJvY2Vz
cy5jb3B5UmVmKCldIChhdXRvLi4uIGFyZ3MpIHsKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVy
SUQsIGFyZ3MuLi4pLCBtX3dlYlBhZ2VJRCk7CisgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNp
c2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZyYW1lSUQsIGxpc3Rl
bmVySUQsIHByb2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKGF1dG8uLi4gYXJncykgeworICAg
ICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIHdlYlBhZ2VJRCk7CiAgICAgfSk7
CiAKICAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHByb2Nlc3MuY29weVJlZigp
LCAqZnJhbWUsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIG5hdmlnYXRpb25JRCwgV1RG
TW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdp
bmF0aW5nUGFnZUlELApAQCAtNDY0Niw3ICs0NjQ3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3gKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELAotICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsCisgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmIHNlbmRlcikKIHsKICAgICBM
T0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
biAtIE9yaWdpbmFsIFVSTCAlcywgY3VycmVudCB0YXJnZXQgVVJMICVzIiwgb3JpZ2luYWxSZXF1
ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CkBAIC00ODYwLDcgKzQ4NjEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBVUkwm
IHBhZwogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBO
YXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRh
JiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELAorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlv
bmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewpAQCAt
NDg3OCw3ICs0ODc5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELAogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBp
c01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2
aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBG
cmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELAorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFj
dGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5m
b0RhdGEsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
JiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJl
cGx5KQogewpAQCAtNDkzNSwxMCArNDkzNiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdAog
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9u
SUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRl
LCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNh
blNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVj
dG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwpAQCAtNDk1MSwxNCArNDk1MiwxNCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLAogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHByb2Nlc3MsIHJlc3Bv
bnNlLnVybCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb24gPSBu
YXZpZ2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQp
IDogbnVsbHB0cjsKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xp
Y3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZy
YW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5hdmln
YXRpb24pLAorICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxp
c3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2ViUGFn
ZUlELCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92
ZShuYXZpZ2F0aW9uKSwKICAgICAgICAgcHJvY2VzcyA9IHByb2Nlc3MuY29weVJlZigpXSAoUG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxT
YWZlQnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcpIG11dGFibGUgewogICAg
ICAgICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyogaXMgbnVsbHB0
ciBoZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNp
ZXMgZ28gYXdheS4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7CiAgICAgICAgIEFT
U0VSVF9VTlVTRUQoc2FmZUJyb3dzaW5nV2FybmluZywgIXNhZmVCcm93c2luZ1dhcm5pbmcpOwog
Ci0gICAgICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVu
dGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZy
YW1lSUQsIGxpc3RlbmVySUQsIHByb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpXSAoYXV0by4uLiBh
cmdzKSB7Ci0gICAgICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRS
ZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIG1fd2Vi
UGFnZUlEKTsKKyAgICAgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3Jl
YXRlKGlkZW50aWZpZXIsIFt3ZWJQYWdlSUQsIGZyYW1lSUQsIGxpc3RlbmVySUQsIHByb2Nlc3Mg
PSBXVEZNb3ZlKHByb2Nlc3MpXSAoYXV0by4uLiBhcmdzKSB7CisgICAgICAgICAgICBwcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJhbWVJ
RCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIHdlYlBhZ2VJRCk7CiAgICAgICAgIH0pOwogICAgICAg
ICAKICAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRp
b24uZ2V0KCksIFdURjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKQEAgLTUxMDUsNyArNTEw
Niw3IEBAIHN0YXRpYyB2b2lkIHRyeVNPQXV0aG9yaXphdGlvbihSZWY8QVBJOjpOYXZpZ2F0aW9u
QWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFdlCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZvRGF0YSYgb3JpZ2luYXRpbmdGcmFt
ZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzJiYgd2luZG93RmVhdHVyZXMs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBX
ZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZvRGF0YSYgb3JpZ2luYXRp
bmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMmJiB3
aW5kb3dGZWF0dXJlcywgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYg
cmVwbHkpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG9yaWdpbmF0aW5nRnJhbWVJ
bmZvRGF0YS5mcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNz
LT53ZWJGcmFtZSgqb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpKTsKQEAgLTcxNzcs
NiArNzE3OCw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVh
dGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVycy5hY3Rp
dml0eVN0YXRlID0gbV9hY3Rpdml0eVN0YXRlOwogICAgIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFU
eXBlID0gZHJhd2luZ0FyZWEudHlwZSgpOwogICAgIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJZGVu
dGlmaWVyID0gZHJhd2luZ0FyZWEuaWRlbnRpZmllcigpOworICAgIHBhcmFtZXRlcnMud2ViUGFn
ZVByb3h5SWRlbnRpZmllciA9IG1faWRlbnRpZmllcjsKICAgICBwYXJhbWV0ZXJzLnN0b3JlID0g
cHJlZmVyZW5jZXNTdG9yZSgpOwogICAgIHBhcmFtZXRlcnMucGFnZUdyb3VwRGF0YSA9IG1fcGFn
ZUdyb3VwLT5kYXRhKCk7CiAgICAgcGFyYW1ldGVycy5pc0VkaXRhYmxlID0gbV9pc0VkaXRhYmxl
OwpAQCAtODY5NywxNSArODY5OSwxNSBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyKiBXZWJQYWdlUHJv
eHk6OnVybFNjaGVtZUhhbmRsZXJGb3JTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKIHsKLSAgICBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgc3RhcnRVUkxTY2hlbWVUYXNr
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBXVEZNb3ZlKHBhcmFtZXRl
cnMpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQs
IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsKICAgICBhdXRvIGl0ZXJh
dG9yID0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5maW5kKHBhcmFtZXRlcnMuaGFu
ZGxlcklkZW50aWZpZXIpOwogICAgIE1FU1NBR0VfQ0hFQ0socHJvY2VzcywgaXRlcmF0b3IgIT0g
bV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CiAKLSAgICBpdGVyYXRvci0+
dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgcHJvY2VzcywgcGFyYW1ldGVycy50YXNrSWRlbnRpZmll
ciwgV1RGTW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBudWxscHRyKTsKKyAgICBpdGVyYXRvci0+
dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgcHJvY2Vzcywgd2ViUGFnZUlELCBwYXJhbWV0ZXJzLnRh
c2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIG51bGxwdHIpOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklk
ZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKQpAQCAtODcyMSw3ICs4NzIzLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soVVJMU2NoZW1l
VGFza1BhcmFtZXRlcnMmJiBwYXJhbWUKICAgICBhdXRvIGl0ZXJhdG9yID0gbV91cmxTY2hlbWVI
YW5kbGVyc0J5SWRlbnRpZmllci5maW5kKHBhcmFtZXRlcnMuaGFuZGxlcklkZW50aWZpZXIpOwog
ICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBpdGVyYXRvciAhPSBtX3VybFNjaGVtZUhhbmRs
ZXJzQnlJZGVudGlmaWVyLmVuZCgpKTsKIAotICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRUYXNr
KCp0aGlzLCBtX3Byb2Nlc3MsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFy
YW1ldGVycy5yZXF1ZXN0KSwgV1RGTW92ZShyZXBseSkpOworICAgIGl0ZXJhdG9yLT52YWx1ZS0+
c3RhcnRUYXNrKCp0aGlzLCBtX3Byb2Nlc3MsIG1fd2ViUGFnZUlELCBwYXJhbWV0ZXJzLnRhc2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIFdURk1vdmUocmVwbHkpKTsK
IH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGM5ZjgxMWZlNWJkLi45MTBlMzU1ZmRlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE1MTIsMTcgKzE1MTIsMTcg
QEAgcHVibGljOgogICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwog
ICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCi0gICAgICAgIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYm
LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
CisgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwg
RnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwK
KyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3du
bG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAg
ICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBV
UkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKLSAgICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRp
b25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEs
IFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBv
bGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KTsKLSAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsKKyAgICB2b2lkIHN0
YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CisgICAgdm9pZCBsb2Fk
RGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0g
V1RGOjpudWxsb3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2Vi
Q29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAg
IHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ks
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsKICAg
ICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKICAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAotICAgICAgICBGcmFt
ZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVx
dWVzdEJvZHksCisgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXll
ZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3
b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKQEAgLTE2NTAsMTMgKzE2NTAsMTMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCk7CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCi0g
ICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYs
IFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCi0gICAgICAgIEZyYW1l
SW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxp
c3RlbmVySUQpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCi0gICAgICAgIEZyYW1lSW5m
b0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwKKyAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVw
bHkmJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAg
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE2NzgsNyArMTY3OCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5n
JiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAK
ICAgICAvLyBVSSBjbGllbnQKLSAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZv
RGF0YSYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5l
d1BhZ2U6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJh
bWVJbmZvRGF0YSYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6V2luZG93RmVhdHVy
ZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3Jl
YXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgc2hvd1BhZ2UoKTsKICAgICB2
b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQg
cnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOwpAQCAtMTczNiw3
ICsxNzM2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENhblNob3J0Q2lyY3VpdEhvcml6b250
YWxXaGVlbEV2ZW50cyhib29sIGNhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cykg
eyBtX2NhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyA9IGNhblNob3J0Q2lyY3Vp
dEhvcml6b250YWxXaGVlbEV2ZW50czsgfQogCiAgICAgdm9pZCBsYXVuY2hQcm9jZXNzKGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgdm9pZCBzd2FwVG9XZWJQcm9jZXNz
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiYmLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpOworICAgIHZvaWQgc3dhcFRv
V2ViUHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYsIFJlZlB0cjxXZWJGcmFtZVBy
b3h5PiYmIG1haW5GcmFtZSk7CiAgICAgdm9pZCBkaWRGYWlsVG9TdXNwZW5kQWZ0ZXJQcm9jZXNz
U3dhcCgpOwogICAgIHZvaWQgZGlkU3VzcGVuZEFmdGVyUHJvY2Vzc1N3YXAoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDYx
ZGMxYmM1MDJkLi45M2QzNDE0MmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgICMgVUkgbWVzc2FnZXMKLSAgICBDcmVhdGVOZXdQYWdlKHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMg
d2luZG93RmVhdHVyZXMsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmln
YXRpb25BY3Rpb25EYXRhKSAtPiAoT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG5l
d1BhZ2VJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBuZXdQ
YWdlUGFyYW1ldGVycykgU3luY2hyb25vdXMKKyAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJL
aXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdp
bmRvd0ZlYXR1cmVzLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBuZXdQ
YWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3UGFn
ZVBhcmFtZXRlcnMpIFN5bmNocm9ub3VzCiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3NlUGFnZShi
b29sIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKQogICAgIFJ1bkphdmFTY3JpcHRBbGVydChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKCkgU3luY2hy
b25vdXMKQEAgLTEwNCw4ICsxMDQsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAg
ICAgIyBQb2xpY3kgbWVzc2FnZXMKICAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
cG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRh
IG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdp
bmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQotICAgIERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+
IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3Qg
bmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8
V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3Vz
CisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2
aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZy
YW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50
NjRfdCBsaXN0ZW5lcklEKQorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdh
dGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdG
cmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGlj
eUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpE
b3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YT4gd2Vic2l0ZVBvbGljaWVzKSBTeW5jaHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpO
YXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3ko
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDY0YjMxZjc1OTIyLi5iMDZiZWRjNWZmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNTYs
MTQgKzM1NiwxNCBAQCBXZWJQYWdlUHJveHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkKICAgICByZXR1cm4gZ2xvYmFsUGFnZU1hcCgpLmdl
dChwYWdlSUQpOwogfQogCi1XZWJQYWdlUHJveHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCisvLyBGSVhNRTogSWRlYWxseSwgd2Un
ZCBnZXQgcmlkIG9mIGFsbCB0aGUgY2FsbGVycyBhbmQgZHJvcCB0aGlzIGZ1bmN0aW9uLgorV2Vi
UGFnZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVy
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkKIHsKLSAgICAvLyBGSVhNRTogRG8g
YmV0dGVyLgogICAgIGZvciAoYXV0byYgcGFnZSA6IGdsb2JhbFBhZ2VNYXAoKS52YWx1ZXMoKSkg
ewogICAgICAgICBpZiAocGFnZS0+d2ViUGFnZUlEKCkgPT0gd2ViUGFnZUlEKQogICAgICAgICAg
ICAgcmV0dXJuIHBhZ2U7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
QEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6IEFkZCB1bmhhbmRsZWQgbWVzc2FnZSBsb2dnaW5n
LgorICAgIExPR19FUlJPUigiVW5oYW5kbGVkIFdlYlByb2Nlc3NQcm94eSBJUEMgbWVzc2FnZSAl
czo6JXMgKGRlc3RpbmF0aW9uOiAlIiBQUkl1NjQgIikiLCBkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpLnRvU3RyaW5n
KCkuZGF0YSgpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiBy
ZXBseUVuY29kZXIpCkBAIC0xMTIxLDcgKzExMjEsNyBAQCBSZWZQdHI8QVBJOjpPYmplY3Q+IFdl
YlByb2Nlc3NQcm94eTo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhBUEk6Ok9iamVjdCogb2Jq
ZQogCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpQYWdlSGFuZGxlOgogICAg
ICAgICAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxBUEk6OlBhZ2VIYW5kbGUmPihvYmplY3Qp
LmlzQXV0b2NvbnZlcnRpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1fd2ViUHJvY2Vz
c1Byb3h5LndlYlBhZ2Uoc3RhdGljX2Nhc3Q8QVBJOjpQYWdlSGFuZGxlJj4ob2JqZWN0KS5wYWdl
SUQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fd2ViUHJvY2Vzc1Byb3h5LndlYlBhZ2Uo
c3RhdGljX2Nhc3Q8QVBJOjpQYWdlSGFuZGxlJj4ob2JqZWN0KS5wYWdlUHJveHlJRCgpKTsKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6
T2JqQ09iamVjdEdyYXBoOgpAQCAtMTE2NCw3ICsxMTY0LDcgQEAgUmVmUHRyPEFQSTo6T2JqZWN0
PiBXZWJQcm9jZXNzUHJveHk6OnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMoQVBJOjpPYmplY3Qq
IG9iamUKICAgICAgICAgICAgICAgICByZXR1cm4gQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0
b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViRnJhbWVQcm94eSY+KG9iamVjdCkuZnJh
bWVJRCgpKTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6UGFnZToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGlu
ZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlUHJveHkmPihvYmplY3QpLndlYlBhZ2VJRCgpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVy
dGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlUHJveHkmPihvYmplY3QpLmlkZW50aWZpZXIo
KSwgc3RhdGljX2Nhc3Q8Y29uc3QgV2ViUGFnZVByb3h5Jj4ob2JqZWN0KS53ZWJQYWdlSUQoKSk7
CiAKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2VHcm91cDoKICAgICAg
ICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlR3JvdXBIYW5kbGU6OmNyZWF0ZShXZWJQYWdlR3Jv
dXBEYXRhKHN0YXRpY19jYXN0PGNvbnN0IFdlYlBhZ2VHcm91cCY+KG9iamVjdCkuZGF0YSgpKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDQ3YTI0M2Q5
NzBhLi44ZWRmNTMwNDBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgV2ViUHJvY2Vz
c1Byb3h5KiBwcm9jZXNzRm9ySWRlbnRpZmllcihXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7
CiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogd2ViUGFnZShXZWJQYWdlUHJveHlJZGVudGlmaWVy
KTsKLSAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiB3ZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKKyAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiB3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRp
ZmllcihXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgUmVmPFdlYlBhZ2VQcm94eT4gY3Jl
YXRlV2ViUGFnZShQYWdlQ2xpZW50JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwog
CiAgICAgZW51bSBjbGFzcyBCZWdpbnNVc2luZ0RhdGFTdG9yZSA6IGJvb2wgeyBObywgWWVzIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCmlu
ZGV4IDVhNmNjOTVkMGY4Li45MGMwYjgwZTAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgV2ViVVJMU2No
ZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhhbmRsZXIoKQogICAgIEFTU0VSVChtX3Rhc2tzLmlz
RW1wdHkoKSk7CiB9CiAKLXZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNrKFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCB0YXNrSWRl
bnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFy
dFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJ
ZGVudGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRkKHRhc2tJZGVudGlmaWVyLCBX
ZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHRhc2tJZGVudGlm
aWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAg
IGF1dG8gcmVzdWx0ID0gbV90YXNrcy5hZGQodGFza0lkZW50aWZpZXIsIFdlYlVSTFNjaGVtZVRh
c2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcHJvY2Vzcywgd2ViUGFnZUlELCB0YXNrSWRlbnRpZmll
ciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICBB
U1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwogCiAgICAgYXV0byBwYWdlRW50cnkgPSBtX3Rhc2tz
QnlQYWdlSWRlbnRpZmllci5hZGQocGFnZS5pZGVudGlmaWVyKCksIEhhc2hTZXQ8dWludDY0X3Q+
KCkpOwpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0Nv
bXBsZXRlZChXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQogewogICAgIGF1dG8gdGFrZW5UYXNrID0g
bV90YXNrcy50YWtlKHRhc2suaWRlbnRpZmllcigpKTsKICAgICBBU1NFUlRfVU5VU0VEKHRha2Vu
VGFzaywgdGFrZW5UYXNrLT5wdHIoKSA9PSAmdGFzayk7Ci0gICAgcmVtb3ZlVGFza0Zyb21QYWdl
TWFwKHRhc2sucGFnZUlEKCksIHRhc2suaWRlbnRpZmllcigpKTsKKyAgICByZW1vdmVUYXNrRnJv
bVBhZ2VNYXAodGFzay5wYWdlUHJveHlJRCgpLCB0YXNrLmlkZW50aWZpZXIoKSk7CiAKICAgICBw
bGF0Zm9ybVRhc2tDb21wbGV0ZWQodGFzayk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKaW5kZXggZDU4YzdlNTY3MzIuLjIzNDkwNmY0YzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAotICAgIHZvaWQgc3RhcnRUYXNrKFdlYlBhZ2VQcm94
eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lk
IHN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgc3RvcFRhc2so
V2ViUGFnZVByb3h5JiwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpOwogICAgIHZvaWQgc3RvcEFs
bFRhc2tzRm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkqKTsKICAgICB2b2lk
IHRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAppbmRleCBkNjFmMTM2MjI2NC4uMjdhM2RiNTRmOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwCkBAIC0z
NiwxNyArMzYsMTcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKLVJlZjxXZWJVUkxTY2hlbWVUYXNrPiBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoV2Vi
VVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9u
SGFuZGxlcikKK1JlZjxXZWJVUkxTY2hlbWVUYXNrPiBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUo
V2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgcmVz
b3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBs
ZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlVSTFNjaGVtZVRhc2soaGFuZGxlciwgcGFnZSwgcHJvY2VzcywgcmVzb3Vy
Y2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHN5bmNDb21wbGV0aW9uSGFu
ZGxlcikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJVUkxTY2hlbWVUYXNrKGhhbmRs
ZXIsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgcmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKHN5bmNDb21wbGV0aW9uSGFuZGxlcikpKTsKIH0KIAotV2ViVVJM
U2NoZW1lVGFzazo6V2ViVVJMU2NoZW1lVGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVy
LCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWludDY0X3Qg
cmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENv
bXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQorV2ViVVJMU2NoZW1lVGFz
azo6V2ViVVJMU2NoZW1lVGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdl
UHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2Vi
UGFnZUlELCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5jQ29tcGxldGlvbkhhbmRsZXIp
CiAgICAgOiBtX3VybFNjaGVtZUhhbmRsZXIoaGFuZGxlcikKLSAgICAsIG1fcGFnZSgmcGFnZSkK
ICAgICAsIG1fcHJvY2VzcyhtYWtlUmVmKHByb2Nlc3MpKQogICAgICwgbV9pZGVudGlmaWVyKHJl
c291cmNlSWRlbnRpZmllcikKLSAgICAsIG1fcGFnZUlkZW50aWZpZXIocGFnZS5pZGVudGlmaWVy
KCkpCisgICAgLCBtX3BhZ2VQcm94eUlEKHBhZ2UuaWRlbnRpZmllcigpKQorICAgICwgbV93ZWJQ
YWdlSUQod2ViUGFnZUlEKQogICAgICwgbV9yZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpCiAgICAg
LCBtX3N5bmNDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHN5bmNDb21wbGV0aW9uSGFuZGxlcikp
CiB7CkBAIC04Miw3ICs4Miw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUGVyZm9ybVJl
ZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zCiAgICAgICAgIG1f
cmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1l
SGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwg
bV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpVUkxTY2hlbWVUYXNrRGlkUGVyZm9ybVJlZGlyZWN0aW9uKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlLCByZXF1ZXN0KSwgbV93ZWJQ
YWdlSUQpOwogCiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CkBAIC0xMDcsNyAr
MTA3LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIC0+IEUKICAgICBpZiAoaXNTeW5jKCkpCiAgICAg
ICAgIG1fc3luY1Jlc3BvbnNlID0gcmVzcG9uc2U7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hl
bWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3BhZ2Ut
PndlYlBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVS
TFNjaGVtZVRhc2tEaWRSZWNlaXZlUmVzcG9uc2UobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlm
aWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UpLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJu
IEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBhdXRvIFdlYlVS
TFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKSAt
PiBFeGNlcHRpb25UeQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKICAgICB9
CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tE
aWRSZWNlaXZlRGF0YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlm
aWVyLCB7IGJ1ZmZlciB9KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxT
Y2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgeyBidWZmZXIgfSksIG1f
d2ViUGFnZUlEKTsKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KIApAQCAtMTY0
LDcgKzE2NCw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkQ29tcGxldGUoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpIC0+IEV4Y2VwdGlvblR5cGUKICAgICAgICAgbV9zeW5jRGF0YSA9
IG51bGxwdHI7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpVUkxTY2hlbWVUYXNrRGlkQ29tcGxldGUobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVy
KCksIG1faWRlbnRpZmllciwgZXJyb3IpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZSht
X3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvciksIG1f
d2ViUGFnZUlEKTsKICAgICBtX3VybFNjaGVtZUhhbmRsZXItPnRhc2tDb21wbGV0ZWQoKnRoaXMp
OwogCiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CkBAIC0xNzMsOSArMTczLDkgQEAg
YXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikgLT4gRXhjZXB0aW9uVHlwZQogdm9pZCBXZWJVUkxTY2hlbWVUYXNrOjpwYWdlRGVzdHJv
eWVkKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVChtX3Bh
Z2UpOwogCi0gICAgbV9wYWdlID0gbnVsbHB0cjsKKyAgICBtX3BhZ2VQcm94eUlEID0geyB9Owor
ICAgIG1fd2ViUGFnZUlEID0geyB9OwogICAgIG1fcHJvY2VzcyA9IG51bGxwdHI7CiAgICAgbV9z
dG9wcGVkID0gdHJ1ZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlVSTFNjaGVtZVRhc2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVt
ZVRhc2suaAppbmRleCAzOWIyZmViNDNiZi4uYmZkOTIzMzkxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKQEAgLTU0LDEzICs1NCwxMyBAQCB1c2luZyBT
eW5jTG9hZENvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZQogY2xhc3MgV2ViVVJMU2NoZW1lVGFzayA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiwgcHVibGljIEluc3RhbmNlQ291bnRlZDxX
ZWJVUkxTY2hlbWVUYXNrPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViVVJMU2NoZW1l
VGFzayk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUo
V2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVp
bnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENv
bXBsZXRpb25IYW5kbGVyJiYpOworICAgIHN0YXRpYyBSZWY8V2ViVVJMU2NoZW1lVGFzaz4gY3Jl
YXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImLCBXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkm
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7CiAKICAgICB+
V2ViVVJMU2NoZW1lVGFzaygpOwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAgIFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOyByZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsgfQotCisgICAgV2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsg
cmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3dlYlBh
Z2VJRDsgfQogICAgIFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcygpIHsgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC04NywxNSArODcsMTUgQEAgcHVibGljOgogICAgIHZvaWQgcGFnZURlc3Ryb3llZCgp
OwogCiBwcml2YXRlOgotICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYs
IFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOwor
ICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYs
IFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmKTsKIAogICAgIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gISFtX3N5bmNDb21w
bGV0aW9uSGFuZGxlcjsgfQogCiAgICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2No
ZW1lSGFuZGxlcjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBSZWZQdHI8V2ViUHJv
Y2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwotICAgIFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsKKyAgICBXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93
ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBt
dXRhYmxlIExvY2sgbV9yZXF1ZXN0TG9jazsKICAgICBib29sIG1fc3RvcHBlZCB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggNDIwMjM5NmFiYWYuLjJiNzJj
MjExNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCkBAIC00MDQsMTIgKzQw
NCwxMiBAQCAtIChXS0J1bmRsZVBhZ2VSZWYpX2J1bmRsZVBhZ2VSZWYKIAogLSAoV0tCcm93c2lu
Z0NvbnRleHRIYW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1cm4gW1tbV0tCcm93c2luZ0NvbnRl
eHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VJRDpfcGFnZS0+cGFnZUlEKCldIGF1dG9yZWxl
YXNlXTsKKyAgICByZXR1cm4gW1tbV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0
V2l0aFBhZ2U6Kl9wYWdlXSBhdXRvcmVsZWFzZV07CiB9CiAKICsgKGluc3RhbmNldHlwZSlsb29r
VXBCcm93c2luZ0NvbnRleHRGcm9tSGFuZGxlOihXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqKWhh
bmRsZQogewotICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViUGFnZShoYW5kbGUucGFnZUlEKSk7CisgICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKGhhbmRsZS53ZWJQYWdlSUQpKTsKIH0KIAog
LSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilfcmVtb3RlT2JqZWN0UmVnaXN0cnkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVu
dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKaW5kZXggMmIyODg2NGE5YWEuLmM0NGFkYjI2YTBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcApAQCAtMjUyLDcgKzI1Miw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6RGlkUG9zdE1l
c3NhZ2Uod2ViUGFnZS0+cGFnZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIG1faWRlbnRpZmllciwg
SVBDOjpEYXRhUmVmZXJlbmNlKHZhbHVlLT5kYXRhKCkpKSwgbV9jb250cm9sbGVyLT5pZGVudGlm
aWVyKCkpOworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6
RGlkUG9zdE1lc3NhZ2Uod2ViUGFnZS0+d2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCB3ZWJGcmFt
ZS0+aW5mbygpLCBtX2lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSh2YWx1ZS0+ZGF0YSgp
KSksIG1fY29udHJvbGxlci0+aWRlbnRpZmllcigpKTsKICAgICB9CiAKICAgICBSZWZQdHI8V2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyPiBtX2NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CmluZGV4IDBlNmI5NDNkMTU5Li5iODAzMzUxZDg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTI5Miw3ICsyOTIsNyBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhG
cmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogCiAgICAgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2VJRDsKICAgICBPcHRpb25hbDxXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVO
ZXdQYWdlKHdlYkZyYW1lLT5pbmZvKCksIHdlYkZyYW1lLT5wYWdlKCktPnBhZ2VJRCgpLCByZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRh
dGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdl
SUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICghd2ViUHJvY2Vzcy5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5pbmZvKCksIHdlYkZyYW1lLT5wYWdlKCktPndlYlBh
Z2VQcm94eUlkZW50aWZpZXIoKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVh
dHVyZXMsIG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3Jl
YXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgp
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIW5ld1BhZ2VJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDcwOTgwZWU1YjViLi40OGRlMzVmZDA1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05MDYsOSArOTA2LDExIEBAIHZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBOYXZpZ2F0CiAgICAgaWYgKHJlcXVlc3Rlci5mcmFtZUlEKCkgJiYgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUocmVxdWVzdGVyLmZyYW1lSUQoKSkpCiAgICAg
ICAgIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEID0gcmVxdWVzdGVyLmZyYW1lSUQo
KTsKIAotICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRDsKLSAg
ICBpZiAocmVxdWVzdGVyLnBhZ2VJRCgpICYmIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBh
Z2UocmVxdWVzdGVyLnBhZ2VJRCgpKSkKLSAgICAgICAgb3JpZ2luYXRpbmdQYWdlSUQgPSByZXF1
ZXN0ZXIucGFnZUlEKCk7CisgICAgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQ7CisgICAgaWYgKHJlcXVlc3Rlci5wYWdlSUQoKSkgeworICAgICAgICBp
ZiAoYXV0byogd2ViUGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocmVxdWVz
dGVyLnBhZ2VJRCgpKSkKKyAgICAgICAgICAgIG9yaWdpbmF0aW5nUGFnZUlEID0gd2ViUGFnZS0+
d2ViUGFnZVByb3h5SWRlbnRpZmllcigpOworICAgIH0KIAogICAgIE5hdmlnYXRpb25BY3Rpb25E
YXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm5hdmln
YXRpb25UeXBlID0gYWN0aW9uLT5uYXZpZ2F0aW9uVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuY3BwCmluZGV4IDkwZmRmMGU2ZTkwLi5iMTk5YTEwMzA4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0
UmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcApAQCAtMzUsNyArMzUsNyBAQCBXZWJSZW1vdGVP
YmplY3RSZWdpc3RyeTo6V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVn
aXN0cnkgKnJlbW90ZQogICAgIDogUmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVn
aXN0cnkpCiAgICAgLCBtX3BhZ2UocGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSwgKnRoaXMpOworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0
UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLndlYlBhZ2VQcm94eUlkZW50
aWZpZXIoKSwgKnRoaXMpOwogICAgIHBhZ2Uuc2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkodGhpcyk7
CiB9CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6On5XZWJSZW1v
dGVPYmplY3RSZWdpc3RyeSgpCiB2b2lkIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSgp
CiB7CiAgICAgaWYgKG1fcGFnZS5yZW1vdGVPYmplY3RSZWdpc3RyeSgpID09IHRoaXMpIHsKLSAg
ICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uu
cGFnZUlEKCkpOworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCkpOwogICAgICAgICBtX3BhZ2Uu
c2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkobnVsbHB0cik7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJs
ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGJiMTMwNmUyOTlmLi45ZjNjYmJlZTgzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRM
aW5rVGFibGVDb250cm9sbGVyLmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIFZpc2l0ZWRMaW5r
VGFibGVDb250cm9sbGVyOjphZGRWaXNpdGVkTGluayhQYWdlJiBwYWdlLCBTaGFyZWRTdHJpbmdI
YXNoIGxpbgogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6VmlzaXRlZExpbmtTdG9yZTo6QWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2Uod2ViUGFnZS0+
cGFnZUlEKCksIGxpbmtIYXNoKSwgbV9pZGVudGlmaWVyKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpWaXNpdGVk
TGlua1N0b3JlOjpBZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZSh3ZWJQYWdlLT53ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKCksIGxpbmtIYXNoKSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9pZCBWaXNp
dGVkTGlua1RhYmxlQ29udHJvbGxlcjo6c2V0VmlzaXRlZExpbmtUYWJsZShjb25zdCBTaGFyZWRN
ZW1vcnk6OkhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBmYzRiYjUwMzZhYi4uYTQ4ZDdmZjc4NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MjYsNiArNDI2LDcg
QEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIFVTRShXUEVfUkVOREVSRVIpCiAgICAgLCBt
X2hvc3RGaWxlRGVzY3JpcHRvcihXVEZNb3ZlKHBhcmFtZXRlcnMuaG9zdEZpbGVEZXNjcmlwdG9y
KSkKICNlbmRpZgorICAgICwgbV93ZWJQYWdlUHJveHlJZGVudGlmaWVyKHBhcmFtZXRlcnMud2Vi
UGFnZVByb3h5SWRlbnRpZmllcikKICNpZiBFTkFCTEUoVklFV1BPUlRfUkVTSVpJTkcpCiAgICAg
LCBtX3Nocmlua1RvRml0Q29udGVudFRpbWVyKCp0aGlzLCAmV2ViUGFnZTo6c2hyaW5rVG9GaXRD
b250ZW50VGltZXJGaXJlZCwgMF9zKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzgxMzcwZGE0YTMuLjdiNjA3ZGMzYTFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yOTIsNyArMjkyLDcg
QEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2UuZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBj
b25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVy
IHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1ha2VP
YmplY3RJZGVudGlmaWVyPFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyVHlwZT4obV9wYWdlSUQu
dG9VSW50NjQoKSk7IH0KKyAgICBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBzZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllclR5cGU+KG1fd2ViUGFnZVByb3h5SWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsgfQogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZS0+c2Vzc2lvbklEKCk7IH0KICAgICBib29sIHVzZXNFcGhlbWVyYWxT
ZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpOyB9
CiAKQEAgLTEyMDMsNiArMTIwMyw4IEBAIHB1YmxpYzoKICAgICBXZWJSZW1vdGVPYmplY3RSZWdp
c3RyeSogcmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKICNlbmRpZgogCisgICAgV2ViUGFnZVByb3h5
SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQ
YWdlUHJveHlJZGVudGlmaWVyOyB9CisKICAgICB2b2lkIHVwZGF0ZUludHJpbnNpY0NvbnRlbnRT
aXplSWZOZWVkZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgc2NoZWR1bGVG
dWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsKICAgICBib29sIGlzVGhyb3R0bGVhYmxlKCkgY29uc3Q7
CkBAIC0xOTU3LDYgKzE5NTksNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IFdlYWtQdHI8V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk+IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnk7
CiAjZW5kaWYKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SWRlbnRp
ZmllcjsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNlbnRJbnRyaW5zaWNDb250ZW50U2l6
ZTsKICNpZiBFTkFCTEUoVklFV1BPUlRfUkVTSVpJTkcpCiAgICAgV2ViQ29yZTo6RGVmZXJyYWJs
ZU9uZVNob3RUaW1lciBtX3Nocmlua1RvRml0Q29udGVudFRpbWVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDc3MjY3MmM0OWIwLi5lMjc5ZDQ0Zjc2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNzQ2LDcgKzc0Niw3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlCiAgICAgfQogI2VuZGlmCiAKLSAgICBMT0dfRVJST1Io
IlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczolcyciLCBkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpLnRv
U3RyaW5nKCkuZGF0YSgpKTsKKyAgICBMT0dfRVJST1IoIlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBt
ZXNzYWdlICclczolcycgKGRlc3RpbmF0aW9uOiAlbGx1KSIsIGRlY29kZXIubWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJp
bmcoKS5kYXRhKCksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogV2ViRnJhbWUqIFdl
YlByb2Nlc3M6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdApAQCAtMTcx
MSw3ICsxNzExLDcgQEAgUmVmUHRyPEFQSTo6T2JqZWN0PiBXZWJQcm9jZXNzOjp0cmFuc2Zvcm1I
YW5kbGVzVG9PYmplY3RzKEFQSTo6T2JqZWN0KiBvYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIG1fd2ViUHJvY2Vzcy53ZWJQYWdlR3JvdXAoc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpQYWdl
R3JvdXBIYW5kbGUmPihvYmplY3QpLndlYlBhZ2VHcm91cERhdGEoKSk7CiAKICAgICAgICAgICAg
IGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2VIYW5kbGU6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIG1fd2ViUHJvY2Vzcy53ZWJQYWdlKHN0YXRpY19jYXN0PGNvbnN0IEFQSTo6UGFnZUhhbmRs
ZSY+KG9iamVjdCkucGFnZUlEKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBtX3dlYlByb2Nl
c3Mud2ViUGFnZShzdGF0aWNfY2FzdDxjb25zdCBBUEk6OlBhZ2VIYW5kbGUmPihvYmplY3QpLndl
YlBhZ2VJRCgpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAgY2FzZSBBUEk6
Ok9iamVjdDo6VHlwZTo6T2JqQ09iamVjdEdyYXBoOgpAQCAtMTc1NCw3ICsxNzU0LDcgQEAgUmVm
UHRyPEFQSTo6T2JqZWN0PiBXZWJQcm9jZXNzOjp0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKEFQ
STo6T2JqZWN0KiBvYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6RnJhbWVIYW5k
bGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNvbnN0IFdlYkZyYW1lJj4ob2Jq
ZWN0KS5mcmFtZUlEKCkpOwogCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpC
dW5kbGVQYWdlOgotICAgICAgICAgICAgICAgIHJldHVybiBBUEk6OlBhZ2VIYW5kbGU6OmNyZWF0
ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNvbnN0IFdlYlBhZ2UmPihvYmplY3QpLnBhZ2VJ
RCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRv
Y29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlJj4ob2JqZWN0KS53ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKCksIHN0YXRpY19jYXN0PGNvbnN0IFdlYlBhZ2UmPihvYmplY3QpLnBhZ2VJ
RCgpKTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZUdy
b3VwOiB7CiAgICAgICAgICAgICAgICAgV2ViUGFnZUdyb3VwRGF0YSBwYWdlR3JvdXBEYXRhOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5h
bWVzcGFjZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZUltcGwuY3BwCmluZGV4IDViZDgwMjcyNTU5Li5kYWNkMGY3ZmRkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApAQCAtNDIsMjggKzQyLDMwIEBACiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8U3RvcmFnZU5hbWVzcGFjZUlt
cGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNl
SW1wbDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciBpZGVudGlmaWVy
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1l
c3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpTZXNzaW9uLCBpZGVudGlmaWVyLCBudWxscHRyLCBxdW90
YUluQnl0ZXMsIHNlc3Npb25JRCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VO
YW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpTZXNzaW9uLCBpZGVudGlmaWVyLCBwYWdlSUQsIG51
bGxwdHIsIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklEKSk7CiB9CiAKIFJlZjxTdG9yYWdlTmFtZXNw
YWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFj
ZShJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1l
c3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpMb2NhbCwgaWRlbnRpZmllciwgbnVsbHB0ciwgcXVvdGFJ
bkJ5dGVzLCBzZXNzaW9uSUQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlTmFt
ZXNwYWNlSW1wbChTdG9yYWdlVHlwZTo6TG9jYWwsIGlkZW50aWZpZXIsIFdURjo6bnVsbG9wdCwg
bnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9uSUQpKTsKIH0KIAogUmVmPFN0b3JhZ2VOYW1l
c3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9y
YWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsT3JpZ2luLCB1aW50NjRfdCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlTmFtZXNwYWNl
SW1wbChTdG9yYWdlVHlwZTo6VHJhbnNpZW50TG9jYWwsIGlkZW50aWZpZXIsICZ0b3BMZXZlbE9y
aWdpbiwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9uSUQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZTo6VHJhbnNpZW50TG9jYWwsIGlkZW50
aWZpZXIsIFdURjo6bnVsbG9wdCwgJnRvcExldmVsT3JpZ2luLCBxdW90YUluQnl0ZXMsIHNlc3Np
b25JRCkpOwogfQogCi1TdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFjZUltcGwo
V2ViQ29yZTo6U3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIElkZW50aWZpZXIgc3RvcmFnZU5hbWVz
cGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVk
IHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHN0b3JhZ2VU
eXBlLCBJZGVudGlmaWVyIHN0b3JhZ2VOYW1lc3BhY2VJRCwgY29uc3QgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+JiBwYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExl
dmVsT3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICA6IG1fc3RvcmFnZVR5cGUoc3RvcmFnZVR5cGUpCiAgICAgLCBtX3N0b3JhZ2VOYW1l
c3BhY2VJRChzdG9yYWdlTmFtZXNwYWNlSUQpCisgICAgLCBtX3Nlc3Npb25QYWdlSUQocGFnZUlk
ZW50aWZpZXIpCiAgICAgLCBtX3RvcExldmVsT3JpZ2luKHRvcExldmVsT3JpZ2luKQogICAgICwg
bV9xdW90YUluQnl0ZXMocXVvdGFJbkJ5dGVzKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQogeworICAgIEFTU0VSVChzdG9yYWdlVHlwZSA9PSBTdG9yYWdlVHlwZTo6U2Vzc2lvbiB8fCAh
bV9zZXNzaW9uUGFnZUlEKTsKIH0KIAogU3RvcmFnZU5hbWVzcGFjZUltcGw6On5TdG9yYWdlTmFt
ZXNwYWNlSW1wbCgpCkBAIC05OCw3ICsxMDAsNyBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZT4gU3Rv
cmFnZU5hbWVzcGFjZUltcGw6OmNvcHkoUGFnZSogbmV3UGFnZSkKICAgICBpZiAoYXV0byBuZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpKQogICAgICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlclNldDo6Q2xvbmVT
ZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShuZXdQYWdlLT5zZXNzaW9uSUQoKSwgbV9zdG9yYWdlTmFt
ZXNwYWNlSUQsIFdlYlBhZ2U6OmZyb21Db3JlUGFnZShuZXdQYWdlKS0+c2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyKCkpLCAwKTsKIAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0
b3JhZ2VOYW1lc3BhY2VJbXBsKG1fc3RvcmFnZVR5cGUsIFdlYlBhZ2U6OmZyb21Db3JlUGFnZShu
ZXdQYWdlKS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIG1fdG9wTGV2ZWxP
cmlnaW4uZ2V0KCksIG1fcXVvdGFJbkJ5dGVzLCBuZXdQYWdlLT5zZXNzaW9uSUQoKSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKG1fc3RvcmFnZVR5cGUs
IFdlYlBhZ2U6OmZyb21Db3JlUGFnZShuZXdQYWdlKS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJ
ZGVudGlmaWVyKCksIFdlYlBhZ2U6OmZyb21Db3JlUGFnZShuZXdQYWdlKS0+cGFnZUlEKCksIG1f
dG9wTGV2ZWxPcmlnaW4uZ2V0KCksIG1fcXVvdGFJbkJ5dGVzLCBuZXdQYWdlLT5zZXNzaW9uSUQo
KSkpOwogfQogCiB2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXRTZXNzaW9uSURGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAgLTExMSw3ICsxMTMsNyBAQCB2b2lkIFN0
b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKIFBhZ2VJZGVudGlmaWVyIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9u
U3RvcmFnZVBhZ2VJRCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fc3RvcmFnZVR5cGUgPT0gU3Rv
cmFnZVR5cGU6OlNlc3Npb24pOwotICAgIHJldHVybiBtYWtlT2JqZWN0SWRlbnRpZmllcjxQYWdl
SWRlbnRpZmllclR5cGU+KG1fc3RvcmFnZU5hbWVzcGFjZUlELnRvVUludDY0KCkpOworICAgIHJl
dHVybiAqbV9zZXNzaW9uUGFnZUlEOwogfQogCiB1aW50NjRfdCBTdG9yYWdlTmFtZXNwYWNlSW1w
bDo6cGFnZUdyb3VwSUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgKaW5kZXggM2EwYWIxOWQ0
YzIuLjQ1MTc5NzQyYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgKQEAgLTQ0LDcgKzQ0LDcgQEAg
Y2xhc3MgU3RvcmFnZU5hbWVzcGFjZUltcGwgOiBwdWJsaWMgV2ViQ29yZTo6U3RvcmFnZU5hbWVz
cGFjZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgSWRlbnRpZmllciA9IFN0b3JhZ2VOYW1lc3BhY2VJ
ZGVudGlmaWVyOwogCi0gICAgc3RhdGljIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gY3JlYXRl
U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVz
LCBQQUw6OlNlc3Npb25JRCk7CisgICAgc3RhdGljIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4g
Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOwogICAgIHN0
YXRpYyBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IGNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFj
ZShJZGVudGlmaWVyLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKICAg
ICBzdGF0aWMgUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBjcmVhdGVUcmFuc2llbnRMb2NhbFN0
b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExl
dmVsT3JpZ2luLCB1aW50NjRfdCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKIApAQCAt
NjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBTdG9yYWdlTmFtZXNwYWNl
SW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSwgSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qIHRvcExldmVsT3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lv
bklEKTsKKyAgICBTdG9yYWdlTmFtZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSwgSWRl
bnRpZmllciwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+JiBwYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExldmVsT3JpZ2luLCB1bnNpZ25l
ZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIFJlZjxXZWJDb3JlOjpTdG9y
YWdlQXJlYT4gc3RvcmFnZUFyZWEoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikg
b3ZlcnJpZGU7CiAKQEAgLTcyLDYgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IFdlYkNv
cmU6OlN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7CiAgICAgY29uc3QgSWRlbnRpZmllciBtX3N0
b3JhZ2VOYW1lc3BhY2VJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
bV9zZXNzaW9uUGFnZUlEOwogCiAgICAgLy8gT25seSB1c2VkIGZvciB0cmFuc2llbnQgbG9jYWwg
c3RvcmFnZSBuYW1lc3BhY2VzLgogICAgIGNvbnN0IFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4gbV90b3BMZXZlbE9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
Y3BwCmluZGV4IDMwMGNjZjA3ODNhLi40ODE4MWI0OTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXIuY3BwCkBAIC02Niw3ICs2Niw4IEBAIFdlYlN0b3JhZ2VOYW1lc3BhY2VQ
cm92aWRlcjo6fldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpCiAKIFJlZjxXZWJDb3JlOjpT
dG9yYWdlTmFtZXNwYWNlPiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZVNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlKFBhZ2UmIHBhZ2UsIHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJl
dHVybiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uo
V2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCZwYWdlKS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVu
dGlmaWVyKCksIHF1b3RhLCBwYWdlLnNlc3Npb25JRCgpKTsKKyAgICBhdXRvKiB3ZWJQYWdlID0g
V2ViUGFnZTo6ZnJvbUNvcmVQYWdlKCZwYWdlKTsKKyAgICByZXR1cm4gU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHdlYlBhZ2UtPnNlc3Npb25TdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCB3ZWJQYWdlLT5wYWdlSUQoKSwgcXVvdGEsIHBhZ2Uu
c2Vzc2lvbklEKCkpOwogfQogCiBSZWY8V2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZT4gV2ViU3Rv
cmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UodW5zaWdu
ZWQgcXVvdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDljNjRjYWYwNWU4Li4z
ZDgwYmUyOTk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCkBAIC02NzYsNyArNjc2LDcgQEAgUmVmUHRyPE9iakNPYmplY3RHcmFw
aD4gV2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhPYmpDT2JqZWN0R3JhcGgm
IG8KICAgICAgICAgUmV0YWluUHRyPGlkPiB0cmFuc2Zvcm1PYmplY3QoaWQgb2JqZWN0KSBjb25z
dCBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYXV0byogaGFuZGxlID0gZHlu
YW1pY19vYmpjX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGU+KG9iamVjdCkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoYXV0byogd2ViUGFnZSA9IG1fd2ViUHJvY2Vzcy53ZWJQYWdlKGhhbmRs
ZS5fcGFnZUlEKSkKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogd2ViUGFnZSA9IG1fd2ViUHJv
Y2Vzcy53ZWJQYWdlKGhhbmRsZS5fd2ViUGFnZUlEKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHdyYXBwZXIoKndlYlBhZ2UpOwogCiAgICAgICAgICAgICAgICAgcmV0dXJuIFtOU051bGwg
bnVsbF07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377622</attachid>
            <date>2019-08-29 13:38:19 -0700</date>
            <delta_ts>2019-08-29 14:38:57 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>201225_pson_webPageID_bump_wip.patch</filename>
            <type>text/plain</type>
            <size>97737</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDc2ZmVjYzI4MDY0
Li42YTIzYWM0OGVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0yMjIsNiArMjIyLDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJz
KHJlY2VpdmVyKToKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXInLAogICAgIF0pCiAKICAgICBmb3IgcGFyYW1ldGVy
IGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
QVBJUGFnZUhhbmRsZS5jcHAKaW5kZXggZTYwNWE0NTk0NmYuLjFlMWYwNDY1MmFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwCkBAIC0zMSwxOCArMzEsMTkg
QEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxQYWdlSGFuZGxlPiBQYWdlSGFuZGxlOjpjcmVh
dGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQorUmVmPFBhZ2VIYW5kbGU+IFBhZ2VI
YW5kbGU6OmNyZWF0ZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQYWdlSGFuZGxlKHBhZ2VJRCwgZmFsc2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBQYWdlSGFuZGxlKHBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIGZhbHNlKSk7CiB9CiAKLVJl
ZjxQYWdlSGFuZGxlPiBQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCitSZWY8UGFnZUhhbmRsZT4gUGFnZUhhbmRsZTo6Y3JlYXRl
QXV0b2NvbnZlcnRpbmcoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGFnZUhhbmRsZShwYWdlSUQsIHRydWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBQYWdlSGFuZGxlKHBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHRydWUpKTsKIH0KIAotUGFn
ZUhhbmRsZTo6UGFnZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIGJvb2wg
aXNBdXRvY29udmVydGluZykKLSAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKK1BhZ2VIYW5kbGU6OlBh
Z2VIYW5kbGUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKKyAg
ICA6IG1fcGFnZVByb3h5SUQocGFnZVByb3h5SUQpCisgICAgLCBtX3dlYlBhZ2VJRCh3ZWJQYWdl
SUQpCiAgICAgLCBtX2lzQXV0b2NvbnZlcnRpbmcoaXNBdXRvY29udmVydGluZykKIHsKIH0KQEAg
LTUzLDIyICs1NCwyOCBAQCBQYWdlSGFuZGxlOjp+UGFnZUhhbmRsZSgpCiAKIHZvaWQgUGFnZUhh
bmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVy
IDw8IG1fcGFnZUlEOworICAgIGVuY29kZXIgPDwgbV9wYWdlUHJveHlJRDsKKyAgICBlbmNvZGVy
IDw8IG1fd2ViUGFnZUlEOwogICAgIGVuY29kZXIgPDwgbV9pc0F1dG9jb252ZXJ0aW5nOwogfQog
CiBib29sIFBhZ2VIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxP
YmplY3Q+JiByZXN1bHQpCiB7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRDsKLSAgICBkZWNvZGVyID4+IHBhZ2VJRDsKLSAgICBpZiAoIXBhZ2VJRCkKKyAgICBP
cHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IHBhZ2VQcm94eUlEOworICAg
IGRlY29kZXIgPj4gcGFnZVByb3h5SUQ7CisgICAgaWYgKCFwYWdlUHJveHlJRCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHdl
YlBhZ2VJRDsKKyAgICBkZWNvZGVyID4+IHdlYlBhZ2VJRDsKKyAgICBpZiAoIXdlYlBhZ2VJRCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBpc0F1dG9jb252ZXJ0aW5nOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaXNBdXRvY29udmVydGluZykpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIHJlc3VsdCA9IGlzQXV0b2NvbnZlcnRpbmcgPyBjcmVhdGVBdXRvY29udmVy
dGluZygqcGFnZUlEKSA6IGNyZWF0ZSgqcGFnZUlEKTsKKyAgICByZXN1bHQgPSBpc0F1dG9jb252
ZXJ0aW5nID8gY3JlYXRlQXV0b2NvbnZlcnRpbmcoKnBhZ2VQcm94eUlELCAqd2ViUGFnZUlEKSA6
IGNyZWF0ZSgqcGFnZVByb3h5SUQsICp3ZWJQYWdlSUQpOwogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuaAppbmRleCA2YTFjZmI2OTgy
NS4uOGNmN2RiOTk0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElQ
YWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUu
aApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElQYWdlSGFuZGxlX2gKIAogI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBA
IC0zOSwyMCArNDAsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIFBhZ2VIYW5kbGUgOiBw
dWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VIYW5kbGU+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFBhZ2VIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7
Ci0gICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGUoV2Vi
S2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Cisg
ICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0
dWFsIH5QYWdlSGFuZGxlKCk7CiAKLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQorICAgIFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0KKyAg
ICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dl
YlBhZ2VJRDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+
Jik7CiAKIHByaXZhdGU6Ci0gICAgUGFnZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Ym9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBQYWdlSGFuZGxlKFdlYktpdDo6V2ViUGFnZVBy
b3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOwogCi0gICAgY29uc3QgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgbV9wYWdlSUQ7CisgICAgY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyIG1fcGFnZVByb3h5SUQ7CisgICAgY29uc3QgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93
ZWJQYWdlSUQ7CiAgICAgY29uc3QgYm9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRIYW5kbGUubW0KaW5kZXggN2U5N2YxNzZjMDguLjk2YmQzNjE0ZGFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlLm1tCkBAIC0yNiwyMSArMjYsMzUgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
V0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1wb3J0ICJXZWJQYWdlLmgi
CisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKwogQGltcGxlbWVudGF0aW9uIFdLQnJvd3NpbmdD
b250ZXh0SGFuZGxlCiAKLS0gKGlkKV9pbml0V2l0aFBhZ2VJRDooV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIpcGFnZUlECistIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVBy
b3h5JilwYWdlCit7CisgICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uu
aWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLndlYlBhZ2VJRCgpXTsKK30KKworLSAoaWQp
X2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlJilwYWdlCit7CisgICAgcmV0dXJuIFtzZWxm
IF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpIGFuZFdl
YlBhZ2VJRDpwYWdlLnBhZ2VJRCgpXTsKK30KKworLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5SUQ6
KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRXZWJQYWdlSUQ6
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRAogewogICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3BhZ2VJRCA9IHBhZ2VJ
RDsKKyAgICBfcGFnZVByb3h5SUQgPSBwYWdlUHJveHlJRDsKKyAgICBfd2ViUGFnZUlEID0gd2Vi
UGFnZUlEOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKE5TVUludGVnZXIpaGFzaAogewot
ICAgIHJldHVybiBfcGFnZUlELnRvVUludDY0KCk7CisgICAgcmV0dXJuIF9wYWdlUHJveHlJRC50
b1VJbnQ2NCgpICsgX3dlYlBhZ2VJRC50b1VJbnQ2NCgpOwogfQogCiAtIChCT09MKWlzRXF1YWw6
KGlkKW9iamVjdApAQCAtNDgsMTIgKzYyLDEzIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0
CiAgICAgaWYgKCFbb2JqZWN0IGlzS2luZE9mQ2xhc3M6W1dLQnJvd3NpbmdDb250ZXh0SGFuZGxl
IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIHJldHVybiBfcGFnZUlEID09IHN0
YXRpY19jYXN0PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCktPl9wYWdlSUQ7Cisg
ICAgcmV0dXJuIF9wYWdlUHJveHlJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZSAqPihvYmplY3QpLT5fcGFnZVByb3h5SUQgJiYgX3dlYlBhZ2VJRCA9PSBzdGF0aWNfY2Fz
dDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqPihvYmplY3QpLT5fd2ViUGFnZUlEOwogfQogCiAt
ICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVu
Y29kZUludDY0Ol9wYWdlSUQudG9VSW50NjQoKSBmb3JLZXk6QCJwYWdlSUQiXTsKKyAgICBbY29k
ZXIgZW5jb2RlSW50NjQ6X3BhZ2VQcm94eUlELnRvVUludDY0KCkgZm9yS2V5OkAicGFnZVByb3h5
SUQiXTsKKyAgICBbY29kZXIgZW5jb2RlSW50NjQ6X3dlYlBhZ2VJRC50b1VJbnQ2NCgpIGZvcktl
eTpAIndlYlBhZ2VJRCJdOwogfQogCiAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29k
ZXIKQEAgLTYxLDcgKzc2LDggQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVy
CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAK
LSAgICBfcGFnZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXJUeXBlPihbY29kZXIgZGVjb2RlSW50NjRGb3JLZXk6QCJwYWdlSUQiXSk7CisgICAgX3BhZ2VQ
cm94eUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyVHlwZT4oW2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAicGFnZVByb3h5SUQiXSk7CisgICAg
X3dlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
VHlwZT4oW2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAid2ViUGFnZUlEIl0pOwogCiAgICAgcmV0
dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaAppbmRleCA0M2U0MWUy
NGNkMy4uOGRlZDU5ZmI1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaApAQCAt
MjQsMTIgKzI0LDIwIEBACiAgKi8KIAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRIYW5kbGUu
aCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUv
UGFnZUlkZW50aWZpZXIuaD4KIAotQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAo
KQorbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdlOworY2xhc3MgV2ViUGFnZVByb3h5
OworfQogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1fcGFnZUlEKSBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQ7CitAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250
ZXh0SGFuZGxlICgpCiAKLS0gKGlkKV9pbml0V2l0aFBhZ2VJRDooV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIpcGFnZUlEOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3Bh
Z2VQcm94eUlEKSBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQ7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1fd2ViUGFnZUlEKSBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7CiAKKy0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eToo
V2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2U7CistIChpZClfaW5pdFdpdGhQYWdlOihXZWJLaXQ6
OldlYlBhZ2UmKXBhZ2U7CistIChpZClfaW5pdFdpdGhQYWdlUHJveHlJRDooV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyKXBhZ2VQcm94eUlEIGFuZFdlYlBhZ2VJRDooV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpd2ViUGFnZUlEOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBlYzMyMzkzZmE3Ni4uNWNhOTU2
ZWIyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCkBAIC0zOSw2ICszOSw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8
IHN0b3JlOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShkcmF3aW5nQXJlYVR5cGUpOwogICAgIGVu
Y29kZXIgPDwgZHJhd2luZ0FyZWFJZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgd2ViUGFnZVBy
b3h5SWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8IHBhZ2VHcm91cERhdGE7CiAgICAgZW5jb2Rl
ciA8PCBpc0VkaXRhYmxlOwogICAgIGVuY29kZXIgPDwgdW5kZXJsYXlDb2xvcjsKQEAgLTE1Nyw2
ICsxNTgsMTEgQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICBpZiAoIWRyYXdpbmdBcmVh
SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBwYXJhbWV0ZXJz
LmRyYXdpbmdBcmVhSWRlbnRpZmllciA9ICpkcmF3aW5nQXJlYUlkZW50aWZpZXI7CisgICAgT3B0
aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKKyAg
ICBkZWNvZGVyID4+IHdlYlBhZ2VQcm94eUlkZW50aWZpZXI7CisgICAgaWYgKCF3ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHBhcmFtZXRl
cnMud2ViUGFnZVByb3h5SWRlbnRpZmllciA9IFdURk1vdmUoKndlYlBhZ2VQcm94eUlkZW50aWZp
ZXIpOwogICAgIE9wdGlvbmFsPFdlYlBhZ2VHcm91cERhdGE+IHBhZ2VHcm91cERhdGE7CiAgICAg
ZGVjb2RlciA+PiBwYWdlR3JvdXBEYXRhOwogICAgIGlmICghcGFnZUdyb3VwRGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBl
MTlkOTk2YTE2My4uMTAxMjRkMGZiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCisjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIK
ICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTgwLDYgKzgxLDcgQEAgc3RydWN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmU7CiAg
ICAgRHJhd2luZ0FyZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKICAgICBEcmF3aW5nQXJlYUlkZW50
aWZpZXIgZHJhd2luZ0FyZWFJZGVudGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIg
d2ViUGFnZVByb3h5SWRlbnRpZmllcjsKICAgICBXZWJQYWdlR3JvdXBEYXRhIHBhZ2VHcm91cERh
dGE7CiAKICAgICBib29sIGlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL09i
akNPYmplY3RHcmFwaC5tbQppbmRleCBmZTY2ZGU2NTkyYS4uMGVhZjA2ZjVjYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbQpAQCAtMTg2LDcgKzE4Niw4
IEBAIHZvaWQgT2JqQ09iamVjdEdyYXBoOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBp
ZCBvYmplY3QpCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBPYmpDVHlwZTo6V0tCcm93c2lu
Z0NvbnRleHRIYW5kbGU6Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8V0tCcm93c2lu
Z0NvbnRleHRIYW5kbGUgKj4ob2JqZWN0KS5wYWdlSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGljX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKj4ob2JqZWN0KS5wYWdlUHJveHlJRDsK
KyAgICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAq
PihvYmplY3QpLndlYlBhZ2VJRDsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE9iakNUeXBl
OjpXS1R5cGVSZWZXcmFwcGVyOgpAQCAtMjk4LDEyICsyOTksMTYgQEAgYm9vbCBPYmpDT2JqZWN0
R3JhcGg6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxpZD4mIHJlc3Vs
dCkKICAgICB9CiAKICAgICBjYXNlIE9iakNUeXBlOjpXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZTog
ewotICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwotICAg
ICAgICBkZWNvZGVyID4+IHBhZ2VJRDsKLSAgICAgICAgaWYgKCFwYWdlSUQpCisgICAgICAgIE9w
dGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IHBhZ2VQcm94eUlEOworICAgICAgICBkZWNv
ZGVyID4+IHBhZ2VQcm94eUlEOworICAgICAgICBpZiAoIXBhZ2VQcm94eUlEKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gd2ViUGFnZUlEOworICAgICAgICBkZWNvZGVyID4+IHdlYlBhZ2VJRDsKKyAgICAgICAgaWYg
KCF3ZWJQYWdlSUQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgcmVzdWx0
ID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdl
SUQ6KnBhZ2VJRF0pOworICAgICAgICByZXN1bHQgPSBhZG9wdE5TKFtbV0tCcm93c2luZ0NvbnRl
eHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VQcm94eUlEOipwYWdlUHJveHlJRCBhbmRXZWJQ
YWdlSUQ6KndlYlBhZ2VJRF0pOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCmluZGV4IDExMDAzM2JhNmZhLi43OWVkMjVlYjc5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC03MjAsNyArNzIwLDcgQEAgLSAoTlNVSW50
ZWdlcilwYWdlQ291bnQKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKiloYW5kbGUKIHsK
LSAgICByZXR1cm4gW1tbV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBh
Z2VJRDpfcGFnZS0+d2ViUGFnZUlEKCldIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbV0tC
cm93c2luZ0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VQcm94eToqX3BhZ2VdIGF1
dG9yZWxlYXNlXTsKIH0KIAogLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilfcmVtb3RlT2Jq
ZWN0UmVnaXN0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IGNjN2Y2Yzk2MjU4Li43NDNmZjJjNmNmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04NzcsNyArODc3LDcgQEAg
LSAodm9pZClkZWFsbG9jCiAgICAgW19jb250ZW50VmlldyBfd2ViVmlld0Rlc3Ryb3llZF07CiAK
ICAgICBpZiAoX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAgICAgICBfcGFnZS0+cHJvY2Vzcygp
LnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmpl
Y3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+d2ViUGFnZUlEKCkpOwor
ICAgICAgICBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBfcGFnZS0+aWRlbnRpZmllcigpKTsKICNlbmRpZgogCiAgICAgX3BhZ2UtPmNsb3NlKCk7CkBA
IC00NzI1LDcgKzQ3MjUsNyBAQCAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVP
YmplY3RSZWdpc3RyeQogI2Vsc2UKICAgICBpZiAoIV9yZW1vdGVPYmplY3RSZWdpc3RyeSkgewog
ICAgICAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eToqX3BhZ2VdKTsKLSAgICAgICAg
X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgX3BhZ2UtPndl
YlBhZ2VJRCgpLCBbX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7
CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IF9wYWdlLT5pZGVudGlmaWVyKCksIFtfcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0
UmVnaXN0cnldKTsKICAgICB9CiAKICAgICByZXR1cm4gX3JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmdl
dCgpOwpAQCAtNDczNCw3ICs0NzM0LDcgQEAgLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilf
cmVtb3RlT2JqZWN0UmVnaXN0cnkKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKilfaGFu
ZGxlCiB7Ci0gICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5p
dFdpdGhQYWdlSUQ6X3BhZ2UtPndlYlBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJu
IFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJveHk6Kl9w
YWdlXSBhdXRvcmVsZWFzZV07CiB9CiAKIC0gKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKV9v
YnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGIxZWM4NDZiN2I0
Li4xYTgyNTNhYzA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTc2LDcgKzc2LDcgQEAgUmVmUHRyPE9iakNP
YmplY3RHcmFwaD4gV2ViUHJvY2Vzc1Byb3h5Ojp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKE9i
akNPYmplY3RHcmEKICAgICAgICAgUmV0YWluUHRyPGlkPiB0cmFuc2Zvcm1PYmplY3QoaWQgb2Jq
ZWN0KSBjb25zdCBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYXV0byogaGFu
ZGxlID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGU+KG9iamVjdCkp
IHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gbV93ZWJQcm9jZXNz
UHJveHkud2ViUGFnZShoYW5kbGUucGFnZUlEKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRv
KiB3ZWJQYWdlUHJveHkgPSBtX3dlYlByb2Nlc3NQcm94eS53ZWJQYWdlKGhhbmRsZS5wYWdlUHJv
eHlJRCkpIHsKICAgICAgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJGb3JQYWdlUmVmOnRvQVBJKHdlYlBh
Z2VQcm94eSldOwogICAgICAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggZjQwNDJmZTcwZGYuLjM1YWM0ZGY2ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTM2Miw3ICsxMzYyLDcgQEAgV2ViVmlld0lt
cGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2Vi
VmlldyAqb3V0ZXJXZWIKIFdlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwoKQogewogICAgIGlmICht
X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7Ci0gICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnByb2Nl
c3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdp
c3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICAg
ICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS0+aWRlbnRpZmllcigpKTsKICAgICAgICAgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgX2lu
dmFsaWRhdGVdOwogICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbmlsOwogICAgIH0K
QEAgLTM4MjMsNyArMzgyMyw3IEBAIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpXZWJWaWV3SW1w
bDo6cmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogewogICAgIGlmICghbV9yZW1vdGVPYmplY3RSZWdp
c3RyeSkgewogICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gYWRvcHROUyhbW19XS1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5IGFsbG9jXSBfaW5pdFdpdGhXZWJQYWdlUHJveHk6bV9wYWdlXSk7
Ci0gICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UtPndlYlBhZ2VJRCgpLCBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmpl
Y3RSZWdpc3RyeV0pOworICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFk
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCksIFttX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fcmVtb3Rl
T2JqZWN0UmVnaXN0cnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2OGNkYWRiNzY4OS4uNDUw
OTIyNDIxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzQzLDcgKzM0Myw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vz
c2lvbklEIHNlc3NpCiAKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBudWxscHRyOwogICAgIGlm
IChwYWdlSUQpCi0gICAgICAgIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlE
KTsKKyAgICAgICAgcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlk
ZW50aWZpZXIocGFnZUlEKTsKIAogICAgIGlmIChwYWdlKSB7CiAgICAgICAgIHBhZ2UtPmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KFdURk1vdmUoYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpKTsKQEAgLTQxMiw3ICs0MTIsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbgog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewotICAgIFdlYlBh
Z2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIFdl
YlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlk
ZW50aWZpZXIocGFnZUlEKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyBudWxsLWNoZWNrIGJl
Y2F1c2UgYnkgdGhlIHRpbWUgdGhlIGRlY2lzaW9uIHRvIGxvZyBpcyBtYWRlLCB0aGUgcGFnZSBt
YXkgYmUgZ29uZS4gV2Ugc2hvdWxkIHJlZmFjdG9yIHRvIGF2b2lkIHRoaXMsCiAgICAgLy8gYnV0
IGZvciBub3cgd2Ugc2ltcGx5IGRyb3AgdGhlIG1lc3NhZ2UgaW4gdGhlIHJhcmUgY2FzZSB0aGlz
IGhhcHBlbnMuCiAgICAgaWYgKCFwYWdlKQpAQCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBjb25zdCBTdHJpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIFdlYkNvcmU6
OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiB7Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0g
V2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdl
ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihwYWdlSUQp
OwogICAgIC8vIEZJWE1FOiBXZSBkbyB0aGlzIG51bGwtY2hlY2sgYmVjYXVzZSBieSB0aGUgdGlt
ZSB0aGUgZGVjaXNpb24gdG8gbG9nIGlzIG1hZGUsIHRoZSBwYWdlIG1heSBiZSBnb25lLiBXZSBz
aG91bGQgcmVmYWN0b3IgdG8gYXZvaWQgdGhpcywKICAgICAvLyBidXQgZm9yIG5vdyB3ZSBzaW1w
bHkgZHJvcCB0aGUgbWVzc2FnZSBpbiB0aGUgcmFyZSBjYXNlIHRoaXMgaGFwcGVucy4KICAgICBp
ZiAoIXBhZ2UpCkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojps
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoUGFnZUlkZW50aWZpZXIgcGFnZUlELAogCiB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywg
V2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBXZWJQYWdlUHJveHkq
IHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJv
eHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVy
KHBhZ2VJRCk7CiAgICAgLy8gRklYTUU6IFdlIGRvIHRoaXMgbnVsbC1jaGVjayBiZWNhdXNlIGJ5
IHRoZSB0aW1lIHRoZSBkZWNpc2lvbiB0byBsb2cgaXMgbWFkZSwgdGhlIHBhZ2UgbWF5IGJlIGdv
bmUuIFdlIHNob3VsZCByZWZhY3RvciB0byBhdm9pZCB0aGlzLAogICAgIC8vIGJ1dCBmb3Igbm93
IHdlIHNpbXBseSBkcm9wIHRoZSBtZXNzYWdlIGluIHRoZSByYXJlIGNhc2UgdGhpcyBoYXBwZW5z
LgogICAgIGlmICghcGFnZSkKQEAgLTc3Nyw3ICs3NzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZWdpcwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
ZmlybShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNz
UHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBhZ2VJRCk7CiAgICAgaWYgKCFw
YWdlKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtOTYwLDcgKzk2MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ29tbWl0
Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzCiAgICAgaWYgKCFj
YW5TZW5kTWVzc2FnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQYWdlUHJveHkqIHBh
Z2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkq
IHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBh
Z2VJRCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEyNjAsNyArMTI2
MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y2xlYXJVcGxvYWRBc3NlcnRpb24oKQog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdl
SUQsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0UHJvY2Vzc0luY29taW5nU3lu
Y01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQog
ewotICAgIGF1dG8qIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2Uod2ViUGFnZUlEKTsK
KyAgICBhdXRvKiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRl
bnRpZmllcih3ZWJQYWdlSUQpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIHJlcGx5
KGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwCmluZGV4IDBjMDM0MDY5MDQxLi5hMmEwOWRjNDkyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtNTQsNyArNTQs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUHJvdmlzaW9uYWxQYWdlUHJveHk6OlBy
b3Zpc2lvbmFsUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiBzdXNwZW5k
ZWRQYWdlLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCiAgICAgOiBtX3BhZ2UocGFn
ZSkKLSAgICAsIG1fd2ViUGFnZUlEKHBhZ2Uud2ViUGFnZUlEKCkpCisgICAgLCBtX3dlYlBhZ2VJ
RChzdXNwZW5kZWRQYWdlID8gc3VzcGVuZGVkUGFnZS0+d2ViUGFnZUlEKCkgOiBQYWdlSWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nlc3MpKQogICAg
ICwgbV9uYXZpZ2F0aW9uSUQobmF2aWdhdGlvbklEKQogICAgICwgbV9pc1NlcnZlclJlZGlyZWN0
KGlzU2VydmVyUmVkaXJlY3QpCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6bG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6
OkRhdGEKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImxv
YWREYXRhOiBwYWdlUHJveHlJRCA9ICUiIFBSSXU2NCAiIHdlYlBhZ2VJRCA9ICUiIFBSSXU2NCwg
bV9wYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpKTsK
IAotICAgIG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNl
ckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3Zl
KHdlYnNpdGVQb2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBN
SU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAog
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3JlOjpT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ks
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3
ZWJzaXRlUG9saWNpZXMpCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpS
ZXMKICAgICBpZiAobmF2aWdhdGlvbi5mcm9tSXRlbSgpICYmIG5hdmlnYXRpb24ubG9ja0JhY2tG
b3J3YXJkTGlzdCgpID09IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6OlllcykKICAgICAg
ICAgbmF2aWdhdGlvbi5mcm9tSXRlbSgpLT5zZXRMYXN0UHJvY2Vzc0lkZW50aWZpZXIobV9wcm9j
ZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAKLSAgICBtX3BhZ2UubG9hZFJlcXVlc3RX
aXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBXVEZN
b3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgV2Vi
Q29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBv
bGljaWVzKSk7CisgICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIFdURk1vdmUocmVxdWVz
dCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsK
IH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMjg3LDEz
ICsyODcsMTMgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWUKIH0KIAogdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LAorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZy
YW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwK
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQp
CiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
QXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNl
Y3VyaXR5T3JpZ2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRp
b25BY3Rpb25EYXRhKSwKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBX
VEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdU
Rk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0Rh
dGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRh
dGEsIGxpc3RlbmVySUQpOwogfQogCkBAIC0zMDMsNyArMzAzLDcgQEAgdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnMKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlw
ZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBtX3BhZ2Uu
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQ
YWdlSUQsIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRp
b25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1
dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKQEAgLTMyNCw3ICszMjQsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcgogCiB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewotICAgIG1fcGFnZS5zdGFydFVSTFNjaGVtZVRhc2tT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgbV9w
YWdlLnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBh
Z2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllciYgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zMzMsNyArMzMzLDcgQEAg
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJD
b3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGUKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDViNGM5Y2YyZWRiLi4xNzUyMTUwNDc0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC02
NSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICB+UHJvdmlzaW9uYWxQYWdlUHJveHkoKTsKIAogICAg
IFdlYlBhZ2VQcm94eSYgcGFnZSgpIHsgcmV0dXJuIG1fcGFnZTsgfQorICAgIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHdlYlBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFnZUlEOyB9CiAg
ICAgV2ViRnJhbWVQcm94eSogbWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWUu
Z2V0KCk7IH0KICAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSB7IHJldHVybiBtX3Byb2Nl
c3MuZ2V0KCk7IH0KICAgICBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQ7IH0KQEAgLTkzLDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEm
JiwKLSAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwKKyAgICAgICAgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNh
blNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTEwOSw3ICsxMTAsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYp
OwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCi0gICAgICAgIEZy
YW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0
aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBy
ZXF1ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxh
eWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFz
c3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAppbmRl
eCA3Yjk1YjZlZGU4YS4uMWFjM2Q4ODE1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+U3Vz
cGVuZGVkUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2U7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBj
b25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cygpIHsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQogICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCmluZGV4IDEwN2JiMjI3MDg2Li5l
YWZjNDU3Mjk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApA
QCAtMzMyLDkgKzMzMiw5IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJl
bW92ZUFsbFVzZXJNZXNzYWdlSGFuZGxlcnMoQVBJOjpVc2VyQ29udGVuCiAgICAgcmVtb3ZlVXNl
ckNvbnRlbnRXb3JsZFVzZXMod29ybGQsIG51bWJlclJlbW92ZWQpOwogfQogCi12b2lkIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgRnJhbWVJbmZvRGF0YSYg
ZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eTo6ZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlELCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUlu
Zm9EYXRhLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIGRhdGFSZWZlcmVuY2UpCiB7Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vz
c1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJv
Y2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VQcm94eUlEKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKaW5kZXggZTY0
NDRiMmY0MTguLjQ2OWQzMGUzMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJl
Y2VpdmVyLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZFBvc3RNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBGcmFtZUluZm9EYXRhJiwg
dWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7Cisg
ICAgdm9pZCBkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLCBjb25zdCBGcmFtZUluZm9EYXRhJiwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKICAgICB2b2lkIGFkZFVzZXJDb250ZW50V29y
bGRVc2UoQVBJOjpVc2VyQ29udGVudFdvcmxkJik7CiAgICAgdm9pZCByZW1vdmVVc2VyQ29udGVu
dFdvcmxkVXNlcyhBUEk6OlVzZXJDb250ZW50V29ybGQmLCB1bnNpZ25lZCBudW1iZXJPZlVzZXNU
b1JlbW92ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDI1YTRlMjkxMjc0Li44ZDIwMGExZTZlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDUgKzI0
LDUgQEAKICAqLwogCiBtZXNzYWdlcyAtPiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSB7
Ci1EaWRQb3N0TWVzc2FnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRs
ZXJJRCwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UpIFdhbnRzQ29ubmVjdGlvbgorRGlkUG9z
dE1lc3NhZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgc3RydWN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxl
cklELCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkgV2FudHNDb25uZWN0aW9uCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCmluZGV4IGQ3OWQ3YWQ4
NDZjLi5iYjY1MDk5MDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlz
aXRlZExpbmtTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExp
bmtTdG9yZS5jcHAKQEAgLTEwMCwxMCArMTAwLDkgQEAgdm9pZCBWaXNpdGVkTGlua1N0b3JlOjpy
ZW1vdmVBbGwoKQogICAgIH0KIH0KIAotdm9pZCBWaXNpdGVkTGlua1N0b3JlOjphZGRWaXNpdGVk
TGlua0hhc2hGcm9tUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFNoYXJlZFN0cmluZ0hhc2gg
bGlua0hhc2gpCit2b2lkIFZpc2l0ZWRMaW5rU3RvcmU6OmFkZFZpc2l0ZWRMaW5rSGFzaEZyb21Q
YWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQsIFNoYXJlZFN0cmluZ0hhc2gg
bGlua0hhc2gpCiB7Ci0gICAgLy8gRklYTUU6IE5lZWRzIHRvIGxvb2sgdXAgV2ViUGFnZVByb3h5
IGZyb20gV2ViUGFnZUlELgotICAgIGlmIChhdXRvKiB3ZWJQYWdlUHJveHkgPSBXZWJQcm9jZXNz
UHJveHk6OndlYlBhZ2UocGFnZUlEKSkgeworICAgIGlmIChhdXRvKiB3ZWJQYWdlUHJveHkgPSBX
ZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZVByb3h5SUQpKSB7CiAgICAgICAgIGlmICghd2Vi
UGFnZVByb3h5LT5hZGRzVmlzaXRlZExpbmtzKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5oCmluZGV4IDQ0Njkz
NTM0NDgxLi5jNWMzMDgxYWFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VmlzaXRlZExpbmtTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rU3RvcmUuaApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hTdG9y
ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlICJXZWJQ
YWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9JZGVudGlmaWVkLmg+CkBAIC02MSw3ICs2
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRJbnZhbGlkYXRlU2hhcmVkTWVtb3J5KCkgZmlu
YWw7CiAgICAgdm9pZCBkaWRVcGRhdGVTaGFyZWRTdHJpbmdIYXNoZXMoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlNoYXJlZFN0cmluZ0hhc2g+JiBhZGRlZEhhc2hlcywgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlNoYXJlZFN0cmluZ0hhc2g+JiByZW1vdmVkSGFzaGVzKSBmaW5hbDsKIAotICAgIHZvaWQg
YWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlNoYXJlZFN0cmluZ0hhc2gpOworICAgIHZvaWQgYWRkVmlzaXRlZExpbmtIYXNoRnJvbVBh
Z2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFzaCk7CiAK
ICAgICB2b2lkIHNlbmRTdG9yZUhhbmRsZVRvUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2Fn
ZXMuaW4KaW5kZXggMmU2NmM0MjgwOGUuLjA3MzIxYzUxZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KQEAgLTIxLDUg
KzIxLDUgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gVmlzaXRlZExpbmtTdG9yZSB7
Ci0gICAgQWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBsaW5rSGFzaCkKKyAgICBBZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFn
ZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQsIHVpbnQ2NF90IGxp
bmtIYXNoKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
MTQxNzI3NmNmYzEuLjk0NGRiOWNlYjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTc5NCwxMiArNzk0LDEzIEBAIGJvb2wgV2ViUGFnZVByb3h5OjpzdXNw
ZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9j
ZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywgc3RkOjp1bmlxdWVfcHRyPERyYXdp
bmdBcmVhUHJveHk+JiYgZHJhd2luZ0FyZWEsIFJlZlB0cjxXZWJGcmFtZVByb3h5PiYmIG1haW5G
cmFtZSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBzdGQ6OnVuaXF1ZV9w
dHI8RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1lUHJveHk+
JiYgbWFpbkZyYW1lKQogewogICAgIEFTU0VSVCghbV9pc0Nsb3NlZCk7Ci0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChMb2FkaW5nLCAic3dhcFRvV2ViUHJvY2VzczoiKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJzd2FwVG9XZWJQcm9jZXNzOiBuZXdXZWJQYWdlSUQ9
JSIgUFJJdTY0LCB3ZWJQYWdlSUQudG9VSW50NjQoKSk7CiAKICAgICBtX3Byb2Nlc3MgPSBXVEZN
b3ZlKHByb2Nlc3MpOworICAgIG1fd2ViUGFnZUlEID0gd2ViUGFnZUlEOwogICAgIG1fd2Vic2l0
ZURhdGFTdG9yZSA9IG1fcHJvY2Vzcy0+d2Vic2l0ZURhdGFTdG9yZSgpOwogCiAgICAgaWYgKG1f
bG9nZ2VyKQpAQCAtMTEyNSwxMSArMTEyNiwxMSBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBX
ZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNobwog
ICAgICAgICBsYXVuY2hQcm9jZXNzKFJlZ2lzdHJhYmxlRG9tYWluIHsgcmVxdWVzdC51cmwoKSB9
KTsKIAogICAgIGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2Fk
UmVxdWVzdE5hdmlnYXRpb24oUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBtX2JhY2tGb3J3YXJk
TGlzdC0+Y3VycmVudEl0ZW0oKSk7Ci0gICAgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkOjpObyk7CisgICAgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCht
X3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92
ZShyZXF1ZXN0KSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8pOwogICAgIHJldHVybiBuYXZpZ2F0aW9uOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwg
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBXZWJQYWdl
UHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBv
bGljaWVzKQogewogICAgIEFTU0VSVCghbV9pc0Nsb3NlZCk7CiAKQEAgLTExNTUsNyArMTE1Niw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0
ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAotICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkxvYWRSZXF1ZXN0KGxvYWRQYXJhbWV0ZXJzKSwgbV93ZWJQYWdlSUQpOworICAgIHByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRSZXF1ZXN0KGxvYWRQYXJhbWV0ZXJzKSwg
d2ViUGFnZUlEKTsKICAgICBwcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsK
IH0KIApAQCAtMTIyNywxMSArMTIyOCwxMSBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQ
YWdlUHJveHk6OmxvYWREYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgYwogICAg
ICAgICBsYXVuY2hQcm9jZXNzKHsgfSk7CiAKICAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmln
YXRpb25TdGF0ZS0+Y3JlYXRlTG9hZERhdGFOYXZpZ2F0aW9uKG1ha2VVbmlxdWU8QVBJOjpTdWJz
dGl0dXRlRGF0YT4oZGF0YS52ZWN0b3IoKSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1
c2VyRGF0YSkpOwotICAgIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1
c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgV1RGOjpudWxsb3B0LCBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKKyAgICBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9u
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRh
LCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vLCBXVEY6Om51bGxvcHQsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpOwogICAgIHJldHVybiBuYXZpZ2F0aW9uOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bG9h
ZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBB
UEk6Ok9iamVjdCogdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vi
c2l0ZVBvbGljaWVzLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
bG9hZERhdGFXaXRoTmF2aWdhdGlvbiIpOwogCkBAIC0xMjU0LDcgKzEyNTUsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsCiAgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1l
dGVycyk7CiAKICAgICBwcm9jZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKCp0aGlzLCBi
YXNlVVJMKTsKLSAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkRGF0YShs
b2FkUGFyYW1ldGVycyksIG1fd2ViUGFnZUlEKTsKKyAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpMb2FkRGF0YShsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CiAgICAgcHJv
Y2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiB9CiAKQEAgLTI5NTksNyArMjk2
MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnCiAgICAgaWYgKCFkaWRTdXNwZW5kUHJldmlv
dXNQYWdlKQogICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsb3Nl
KCksIG1fd2ViUGFnZUlEKTsKIAotICAgIHN3YXBUb1dlYlByb2Nlc3MobV9wcm92aXNpb25hbFBh
Z2UtPnByb2Nlc3MoKSwgbV9wcm92aXNpb25hbFBhZ2UtPnRha2VEcmF3aW5nQXJlYSgpLCBtX3By
b3Zpc2lvbmFsUGFnZS0+bWFpbkZyYW1lKCkpOworICAgIHN3YXBUb1dlYlByb2Nlc3MobV9wcm92
aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSwgbV9wcm92aXNpb25hbFBhZ2UtPndlYlBhZ2VJRCgpLCBt
X3Byb3Zpc2lvbmFsUGFnZS0+dGFrZURyYXdpbmdBcmVhKCksIG1fcHJvdmlzaW9uYWxQYWdlLT5t
YWluRnJhbWUoKSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBhdXRvIGFjY2Vzc2liaWxp
dHlUb2tlbiA9IG1fcHJvdmlzaW9uYWxQYWdlLT50YWtlQWNjZXNzaWJpbGl0eVRva2VuKCk7CkBA
IC0yOTk5LDcgKzMwMDAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9u
SW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgIGlmIChtX2Jh
Y2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSAmJiAobmF2aWdhdGlvbi5sb2NrQmFja0Zvcndh
cmRMaXN0KCkgPT0gTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzIHx8IG5hdmlnYXRpb24ubG9ja0hp
c3RvcnkoKSA9PSBMb2NrSGlzdG9yeTo6WWVzKSkgewogICAgICAgICAvLyBJZiBXZWJDb3JlIGlz
IHN1cHBvc2VkIHRvIGxvY2sgdGhlIGhpc3RvcnkgZm9yIHRoaXMgbG9hZCwgdGhlbiB0aGUgbmV3
IHByb2Nlc3MgbmVlZHMgdG8ga25vdyBhYm91dCB0aGUgY3VycmVudCBoaXN0b3J5IGl0ZW0gc28g
aXQgY2FuIHVwZGF0ZQogICAgICAgICAvLyBpdCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IG9u
ZS4KLSAgICAgICAgbmV3UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Q3VycmVu
dEhpc3RvcnlJdGVtRm9yUmVhdHRhY2gobV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkt
Pml0ZW1TdGF0ZSgpKSwgbV93ZWJQYWdlSUQpOworICAgICAgICBuZXdQcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZXRDdXJyZW50SGlzdG9yeUl0ZW1Gb3JSZWF0dGFjaChtX2JhY2tG
b3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbVN0YXRlKCkpLCBtX3Byb3Zpc2lvbmFsUGFn
ZS0+d2ViUGFnZUlEKCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXb3JrIG91dCB0aW1pbmcg
b2YgcmVzcG9uZGluZyB3aXRoIHRoZSBsYXN0IHBvbGljeSBkZWxlZ2F0ZSwgZXRjCkBAIC00NjIy
LDIzICs0NjIzLDIzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNr
KGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuCiAjZW5kaWYKIAogdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwKLSAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwKKyAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFt
ZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0
X3QgbGlzdGVuZXJJRCkKIHsKLSAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5
bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3Vy
aXR5T3JpZ2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25B
Y3Rpb25EYXRhKSwKKyAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJh
bWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZp
Z2F0aW9uQWN0aW9uRGF0YSksCiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdp
bmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
cmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVu
ZXJJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1
cml0eU9yaWdpbiwKLSAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRp
b25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAordm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sCisgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYlBh
Z2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKICAgICBhdXRvKiBmcmFtZSA9
IHByb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0socHJvY2Vzcywg
ZnJhbWUpOwogCi0gICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRl
KGlkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1l
SUQsIGxpc3RlbmVySUQsIHByb2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKGF1dG8uLi4gYXJn
cykgewotICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZl
UG9saWN5RGVjaXNpb24oZnJhbWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIG1fd2ViUGFnZUlE
KTsKKyAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRp
ZmllciwgW3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IHByb2Nlc3Mu
Y29weVJlZigpXSAoYXV0by4uLiBhcmdzKSB7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklE
LCBhcmdzLi4uKSwgd2ViUGFnZUlEKTsKICAgICB9KTsKIAogICAgIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24ocHJvY2Vzcy5jb3B5UmVmKCksICpmcmFtZSwgV1RGTW92ZShmcmFtZVNl
Y3VyaXR5T3JpZ2luKSwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRh
KSwgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsCkBAIC00NjQ2LDcg
KzQ2NDcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveAogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAgTmF2
aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYm
IG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKKyAgICBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYg
cmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBSZWY8UG9saWN5RGVj
aXNpb25TZW5kZXI+JiYgc2VuZGVyKQogewogICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uIC0gT3JpZ2luYWwgVVJMICVzLCBjdXJy
ZW50IHRhcmdldCBVUkwgJXMiLCBvcmlnaW5hbFJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKQEAgLTQ4NjAs
NyArNDg2MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3Qg
V2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiAjZW5kaWYKIAogdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmll
ciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCisgICAgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFt
ZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Yzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CkBAIC00ODc4LDcgKzQ4NzksNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCisgICAgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFnZVBy
b3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CkBAIC00OTM1LDEwICs0OTM2
LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNh
blNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsK
KyAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBt
X3dlYlBhZ2VJRCwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2
aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0
dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBk
b3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQo
KSk7CkBAIC00OTUxLDE0ICs0OTUyLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAg
TUVTU0FHRV9DSEVDS19VUkwocHJvY2VzcywgcmVzcG9uc2UudXJsKCkpOwogCiAgICAgUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2aWdhdGlv
blN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwotICAgIGF1dG8gbGlz
dGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVu
ZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAgYXV0byBsaXN0ZW5l
ciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQsIGlkZW50aWZpZXIs
IGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb24pLAogICAgICAgICBw
cm9jZXNzID0gcHJvY2Vzcy5jb3B5UmVmKCldIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBB
UEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2Fm
ZUJyb3dzaW5nV2FybmluZykgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhl
IEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lclVzZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxF
QVNFX0FTU0VSVChwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQ6Ok5vKTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChzYWZlQnJvd3NpbmdX
YXJuaW5nLCAhc2FmZUJyb3dzaW5nV2FybmluZyk7CiAKLSAgICAgICAgYXV0byBzZW5kZXIgPSBQ
b2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2Vz
cyA9IFdURk1vdmUocHJvY2VzcyldIChhdXRvLi4uIGFyZ3MpIHsKLSAgICAgICAgICAgIHByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFt
ZUlELCBsaXN0ZW5lcklELCBhcmdzLi4uKSwgbV93ZWJQYWdlSUQpOworICAgICAgICBhdXRvIHNl
bmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3dlYlBhZ2VJ
RCwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJvY2VzcyldIChhdXRv
Li4uIGFyZ3MpIHsKKyAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBhcmdzLi4uKSwg
d2ViUGFnZUlEKTsKICAgICAgICAgfSk7CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGlj
eURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGOjpudWxsb3B0LCBX
VEZNb3ZlKHNlbmRlcikpOwpAQCAtNTEwNSw3ICs1MTA2LDcgQEAgc3RhdGljIHZvaWQgdHJ5U09B
dXRob3JpemF0aW9uKFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlv
biwgV2UKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFnZShjb25z
dCBGcmFtZUluZm9EYXRhJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
V2luZG93RmVhdHVyZXMmJiB3aW5kb3dGZWF0dXJlcywgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFn
ZTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFn
ZShjb25zdCBGcmFtZUluZm9EYXRhJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFs
PFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcyYmIHdpbmRvd0ZlYXR1cmVzLCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBNRVNTQUdFX0NI
RUNLKG1fcHJvY2Vzcywgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpOwogICAgIE1F
U1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKCpvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEuZnJhbWVJRCkpOwpAQCAtNzE3Nyw2ICs3MTc4LDcgQEAgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNz
UHJveHkmIHByb2MKICAgICBwYXJhbWV0ZXJzLmFjdGl2aXR5U3RhdGUgPSBtX2FjdGl2aXR5U3Rh
dGU7CiAgICAgcGFyYW1ldGVycy5kcmF3aW5nQXJlYVR5cGUgPSBkcmF3aW5nQXJlYS50eXBlKCk7
CiAgICAgcGFyYW1ldGVycy5kcmF3aW5nQXJlYUlkZW50aWZpZXIgPSBkcmF3aW5nQXJlYS5pZGVu
dGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJZGVudGlmaWVyID0gbV9pZGVu
dGlmaWVyOwogICAgIHBhcmFtZXRlcnMuc3RvcmUgPSBwcmVmZXJlbmNlc1N0b3JlKCk7CiAgICAg
cGFyYW1ldGVycy5wYWdlR3JvdXBEYXRhID0gbV9wYWdlR3JvdXAtPmRhdGEoKTsKICAgICBwYXJh
bWV0ZXJzLmlzRWRpdGFibGUgPSBtX2lzRWRpdGFibGU7CkBAIC04Njk3LDE1ICs4Njk5LDE1IEBA
IFdlYlVSTFNjaGVtZUhhbmRsZXIqIFdlYlBhZ2VQcm94eTo6dXJsU2NoZW1lSGFuZGxlckZvclNj
aGVtZShjb25zdCBTdHJpbmcmIHNjaGVtCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVSTFNj
aGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewotICAgIHN0
YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpKTsKKyAgICBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycykpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQordm9pZCBXZWJQYWdl
UHJveHk6OnN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX3VybFNjaGVtZUhhbmRsZXJz
QnlJZGVudGlmaWVyLmZpbmQocGFyYW1ldGVycy5oYW5kbGVySWRlbnRpZmllcik7CiAgICAgTUVT
U0FHRV9DSEVDSyhwcm9jZXNzLCBpdGVyYXRvciAhPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVu
dGlmaWVyLmVuZCgpKTsKIAotICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRUYXNrKCp0aGlzLCBw
cm9jZXNzLCBwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVx
dWVzdCksIG51bGxwdHIpOworICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRUYXNrKCp0aGlzLCBw
cm9jZXNzLCB3ZWJQYWdlSUQsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFy
YW1ldGVycy5yZXF1ZXN0KSwgbnVsbHB0cik7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzdG9w
VVJMU2NoZW1lVGFzayh1aW50NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lk
ZW50aWZpZXIpCkBAIC04NzIxLDcgKzg3MjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5
bmNocm9ub3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQog
ICAgIGF1dG8gaXRlcmF0b3IgPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVyLmZpbmQo
cGFyYW1ldGVycy5oYW5kbGVySWRlbnRpZmllcik7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nl
c3MsIGl0ZXJhdG9yICE9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZW5kKCkpOwog
Ci0gICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIG1fcHJvY2VzcywgcGFyYW1l
dGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBXVEZNb3Zl
KHJlcGx5KSk7CisgICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIG1fcHJvY2Vz
cywgbV93ZWJQYWdlSUQsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1l
dGVycy5yZXF1ZXN0KSwgV1RGTW92ZShyZXBseSkpOwogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggMzM2NzY1MzZhM2YuLjQ1OTUwNjQ2OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMTUxMiwxNyArMTUxMiwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJp
bmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRp
ZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwKLSAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAorICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAgICAgICAgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFs
PFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsCiAgICAgICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRh
JiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNr
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYp
OwotICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25z
dCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxs
b3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwotICAgIHZvaWQgbG9h
ZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6
Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBVUkxTY2hlbWVU
YXNrUGFyYW1ldGVycyYmKTsKKyAgICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2
aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZp
Z2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRl
bVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsCi0gICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJ
bmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNL
X0xPT0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudElu
TWFpbkZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUpOwpAQCAtMTY1MCwxMyArMTY1MCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRGVz
dHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKTsKIAogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJGcmFt
ZVByb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAg
ICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVy
PiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBGcmFtZUlu
Zm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlv
bkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYpOwpAQCAtMTY3OCw3ICsxNjc4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVy
bCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAotICAgIHZv
aWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkm
Jik7CiAgICAgdm9pZCBzaG93UGFnZSgpOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFs
ZXJ0OjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25m
aXJtOjpEZWxheWVkUmVwbHkmJik7CkBAIC0xNzM2LDcgKzE3MzYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hv
cnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpv
bnRhbFdoZWVsRXZlbnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9
CiAKICAgICB2b2lkIGxhdW5jaFByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mKTsKLSAgICB2b2lkIHN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
c3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYsIFJlZlB0cjxXZWJGcmFtZVByb3h5
PiYmIG1haW5GcmFtZSk7CisgICAgdm9pZCBzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4mJiwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKTsKICAgICB2
b2lkIGRpZEZhaWxUb1N1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7CiAgICAgdm9pZCBkaWRTdXNw
ZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjFkYzFiYzUwMmQuLjkzZDM0MTQyZjg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yMiw3ICsyMiw3IEBACiAKIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBV
SSBtZXNzYWdlcwotICAgIENyZWF0ZU5ld1BhZ2Uoc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0
YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IHN0cnVjdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+IChPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbmV3UGFnZUlELCBPcHRpb25hbDxXZWJLaXQ6
OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IG5ld1BhZ2VQYXJhbWV0ZXJzKSBTeW5jaHJvbm91
cworICAgIENyZWF0ZU5ld1BhZ2Uoc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBz
dHJ1Y3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMsIHN0cnVjdCBXZWJL
aXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhKSAtPiAoT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2VJRCwgT3B0aW9uYWw8V2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBuZXdQYWdlUGFyYW1ldGVycykgU3luY2hyb25vdXMK
ICAgICBTaG93UGFnZSgpCiAgICAgQ2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGlt
ZXIpCiAgICAgUnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91cwpAQCAtMTA0LDggKzEwNCw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwogICAg
IERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBT
dHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3Ry
dWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJh
bWUsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdp
biwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0
YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmln
aW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25z
ZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6
RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0Rh
dGE+IHdlYnNpdGVQb2xpY2llcykgU3luY2hyb25vdXMKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
IHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2Us
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCisgICAgRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2Vi
S2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWlu
dDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0
aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNo
cm9ub3VzCiAgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lD
aGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5n
IGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKICAgICBVbmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
aW5kZXggNjRiMzFmNzU5MjIuLmIwNmJlZGM1ZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM1NiwxNCArMzU2LDE0IEBAIFdlYlBhZ2VQcm94
eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlE
KQogICAgIHJldHVybiBnbG9iYWxQYWdlTWFwKCkuZ2V0KHBhZ2VJRCk7CiB9CiAKLVdlYlBhZ2VQ
cm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdl
YlBhZ2VJRCkKKy8vIEZJWE1FOiBJZGVhbGx5LCB3ZSdkIGdldCByaWQgb2YgYWxsIHRoZSBjYWxs
ZXJzIGFuZCBkcm9wIHRoaXMgZnVuY3Rpb24uCitXZWJQYWdlUHJveHkqIFdlYlByb2Nlc3NQcm94
eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlEKQogewotICAgIC8vIEZJWE1FOiBEbyBiZXR0ZXIuCiAgICAgZm9yIChhdXRvJiBw
YWdlIDogZ2xvYmFsUGFnZU1hcCgpLnZhbHVlcygpKSB7CiAgICAgICAgIGlmIChwYWdlLT53ZWJQ
YWdlSUQoKSA9PSB3ZWJQYWdlSUQpCiAgICAgICAgICAgICByZXR1cm4gcGFnZTsKICAgICB9Ci0g
ICAgCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhN
RTogQWRkIHVuaGFuZGxlZCBtZXNzYWdlIGxvZ2dpbmcuCisgICAgTE9HX0VSUk9SKCJVbmhhbmRs
ZWQgV2ViUHJvY2Vzc1Byb3h5IElQQyBtZXNzYWdlICVzOjolcyAoZGVzdGluYXRpb246ICUiIFBS
SXU2NCAiKSIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgp
LCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKQEAgLTExMjEsNyAr
MTEyMSw3IEBAIFJlZlB0cjxBUEk6Ok9iamVjdD4gV2ViUHJvY2Vzc1Byb3h5Ojp0cmFuc2Zvcm1I
YW5kbGVzVG9PYmplY3RzKEFQSTo6T2JqZWN0KiBvYmplCiAKICAgICAgICAgICAgIGNhc2UgQVBJ
OjpPYmplY3Q6OlR5cGU6OlBhZ2VIYW5kbGU6CiAgICAgICAgICAgICAgICAgQVNTRVJUKHN0YXRp
Y19jYXN0PEFQSTo6UGFnZUhhbmRsZSY+KG9iamVjdCkuaXNBdXRvY29udmVydGluZygpKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbV93ZWJQcm9jZXNzUHJveHkud2ViUGFnZShzdGF0aWNfY2Fz
dDxBUEk6OlBhZ2VIYW5kbGUmPihvYmplY3QpLnBhZ2VJRCgpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbV93ZWJQcm9jZXNzUHJveHkud2ViUGFnZShzdGF0aWNfY2FzdDxBUEk6OlBhZ2VIYW5k
bGUmPihvYmplY3QpLnBhZ2VQcm94eUlEKCkpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
ICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpPYmpDT2JqZWN0R3JhcGg6CkBAIC0xMTY0
LDcgKzExNjQsNyBAQCBSZWZQdHI8QVBJOjpPYmplY3Q+IFdlYlByb2Nlc3NQcm94eTo6dHJhbnNm
b3JtT2JqZWN0c1RvSGFuZGxlcyhBUEk6Ok9iamVjdCogb2JqZQogICAgICAgICAgICAgICAgIHJl
dHVybiBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxj
b25zdCBXZWJGcmFtZVByb3h5Jj4ob2JqZWN0KS5mcmFtZUlEKCkpOwogCiAgICAgICAgICAgICBj
YXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpQYWdlOgotICAgICAgICAgICAgICAgIHJldHVybiBBUEk6
OlBhZ2VIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNvbnN0IFdlYlBh
Z2VQcm94eSY+KG9iamVjdCkud2ViUGFnZUlEKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBB
UEk6OlBhZ2VIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNvbnN0IFdl
YlBhZ2VQcm94eSY+KG9iamVjdCkuaWRlbnRpZmllcigpLCBzdGF0aWNfY2FzdDxjb25zdCBXZWJQ
YWdlUHJveHkmPihvYmplY3QpLndlYlBhZ2VJRCgpKTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6
Ok9iamVjdDo6VHlwZTo6UGFnZUdyb3VwOgogICAgICAgICAgICAgICAgIHJldHVybiBBUEk6OlBh
Z2VHcm91cEhhbmRsZTo6Y3JlYXRlKFdlYlBhZ2VHcm91cERhdGEoc3RhdGljX2Nhc3Q8Y29uc3Qg
V2ViUGFnZUdyb3VwJj4ob2JqZWN0KS5kYXRhKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDdhMjQzZDk3MGEuLjhlZGY1MzA0MGZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTMzLDcgKzEzMyw3IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3NGb3JJZGVudGlm
aWVyKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKICAgICBzdGF0aWMgV2ViUGFnZVByb3h5
KiB3ZWJQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOwotICAgIHN0YXRpYyBXZWJQYWdlUHJv
eHkqIHdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBXZWJQYWdl
UHJveHkqIHdlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKICAgICBSZWY8V2ViUGFnZVByb3h5PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmLCBS
ZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAKICAgICBlbnVtIGNsYXNzIEJlZ2luc1Vz
aW5nRGF0YVN0b3JlIDogYm9vbCB7IE5vLCBZZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggNWE2Y2M5NWQwZjguLjkwYzBiODBl
MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVy
LmNwcApAQCAtNDgsOSArNDgsOSBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyOjp+V2ViVVJMU2NoZW1l
SGFuZGxlcigpCiAgICAgQVNTRVJUKG1fdGFza3MuaXNFbXB0eSgpKTsKIH0KIAotdm9pZCBXZWJV
UkxTY2hlbWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayhXZWJQYWdlUHJveHkmIHBhZ2Us
IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCB1aW50
NjRfdCB0YXNrSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRD
b21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1dG8gcmVzdWx0
ID0gbV90YXNrcy5hZGQodGFza0lkZW50aWZpZXIsIFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgq
dGhpcywgcGFnZSwgcHJvY2VzcywgdGFza0lkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFk
ZCh0YXNrSWRlbnRpZmllciwgV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKCp0aGlzLCBwYWdlLCBw
cm9jZXNzLCB3ZWJQYWdlSUQsIHRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwogICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRyeSk7
CiAKICAgICBhdXRvIHBhZ2VFbnRyeSA9IG1fdGFza3NCeVBhZ2VJZGVudGlmaWVyLmFkZChwYWdl
LmlkZW50aWZpZXIoKSwgSGFzaFNldDx1aW50NjRfdD4oKSk7CkBAIC0xMDQsNyArMTA0LDcgQEAg
dm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjp0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2sm
IHRhc2spCiB7CiAgICAgYXV0byB0YWtlblRhc2sgPSBtX3Rhc2tzLnRha2UodGFzay5pZGVudGlm
aWVyKCkpOwogICAgIEFTU0VSVF9VTlVTRUQodGFrZW5UYXNrLCB0YWtlblRhc2stPnB0cigpID09
ICZ0YXNrKTsKLSAgICByZW1vdmVUYXNrRnJvbVBhZ2VNYXAodGFzay5wYWdlSUQoKSwgdGFzay5p
ZGVudGlmaWVyKCkpOworICAgIHJlbW92ZVRhc2tGcm9tUGFnZU1hcCh0YXNrLnBhZ2VQcm94eUlE
KCksIHRhc2suaWRlbnRpZmllcigpKTsKIAogICAgIHBsYXRmb3JtVGFza0NvbXBsZXRlZCh0YXNr
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaApp
bmRleCBkNThjN2U1NjczMi4uMjM0OTA2ZjRjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiAg
ICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQog
Ci0gICAgdm9pZCBzdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgdWlu
dDY0X3QgdGFza0lkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9h
ZENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZvaWQgc3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYs
IFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNr
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlv
bkhhbmRsZXImJik7CiAgICAgdm9pZCBzdG9wVGFzayhXZWJQYWdlUHJveHkmLCB1aW50NjRfdCB0
YXNrSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wQWxsVGFza3NGb3JQYWdlKFdlYlBhZ2VQcm94
eSYsIFdlYlByb2Nlc3NQcm94eSopOwogICAgIHZvaWQgdGFza0NvbXBsZXRlZChXZWJVUkxTY2hl
bWVUYXNrJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3Bw
CmluZGV4IGQ2MWYxMzYyMjY0Li4yN2EzZGI1NGY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAgLTM2LDE3ICszNiwxNyBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdlYlVSTFNjaGVtZVRh
c2s+IFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVy
LCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWludDY0X3Qg
cmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENv
bXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQorUmVmPFdlYlVSTFNjaGVt
ZVRhc2s+IFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5k
bGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlELCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5jQ29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2NoZW1lVGFz
ayhoYW5kbGVyLCBwYWdlLCBwcm9jZXNzLCByZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUoc3luY0NvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlVSTFNjaGVtZVRhc2soaGFuZGxlciwgcGFnZSwgcHJvY2Vzcywgd2ViUGFn
ZUlELCByZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoc3luY0Nv
bXBsZXRpb25IYW5kbGVyKSkpOwogfQogCi1XZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVU
YXNrKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5jQ29t
cGxldGlvbkhhbmRsZXIpCitXZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVUYXNrKFdlYlVS
TFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIHVpbnQ2NF90IHJlc291cmNl
SWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9u
SGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKICAgICA6IG1fdXJsU2NoZW1lSGFuZGxl
cihoYW5kbGVyKQotICAgICwgbV9wYWdlKCZwYWdlKQogICAgICwgbV9wcm9jZXNzKG1ha2VSZWYo
cHJvY2VzcykpCiAgICAgLCBtX2lkZW50aWZpZXIocmVzb3VyY2VJZGVudGlmaWVyKQotICAgICwg
bV9wYWdlSWRlbnRpZmllcihwYWdlLmlkZW50aWZpZXIoKSkKKyAgICAsIG1fcGFnZVByb3h5SUQo
cGFnZS5pZGVudGlmaWVyKCkpCisgICAgLCBtX3dlYlBhZ2VJRCh3ZWJQYWdlSUQpCiAgICAgLCBt
X3JlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSkKICAgICAsIG1fc3luY0NvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoc3luY0NvbXBsZXRpb25IYW5kbGVyKSkKIHsKQEAgLTgyLDcgKzgyLDcgQEAgYXV0
byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYmIHJlc3BvbnMKICAgICAgICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICB9
CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tE
aWRQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1f
aWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRQZXJm
b3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRp
ZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBtX3dlYlBhZ2VJRCk7CiAKICAgICByZXR1cm4gRXhj
ZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAgLTEwNyw3ICsxMDcsNyBAQCBhdXRvIFdlYlVSTFNjaGVt
ZVRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkgLT4gRQogICAgIGlmIChpc1N5bmMoKSkKICAgICAgICAgbV9zeW5jUmVzcG9uc2UgPSByZXNw
b25zZTsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1l
VGFza0RpZFJlY2VpdmVSZXNwb25zZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwg
bV9pZGVudGlmaWVyLCByZXNwb25zZSksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNw
b25zZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNw
b25zZSksIG1fd2ViUGFnZUlEKTsKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0K
IApAQCAtMTM0LDcgKzEzNCw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZURh
dGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpIC0+IEV4Y2VwdGlvblR5CiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKG1fdXJsU2NoZW1l
SGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHsgYnVmZmVyIH0pLCBtX3BhZ2Ut
PndlYlBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVS
TFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIo
KSwgbV9pZGVudGlmaWVyLCB7IGJ1ZmZlciB9KSwgbV93ZWJQYWdlSUQpOwogICAgIHJldHVybiBF
eGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBAIC0xNjQsNyArMTY0LDcgQEAgYXV0byBXZWJVUkxT
Y2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgLT4gRXhj
ZXB0aW9uVHlwZQogICAgICAgICBtX3N5bmNEYXRhID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0
ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvciks
IG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRp
ZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQpOwogICAgIG1fdXJsU2No
ZW1lSGFuZGxlci0+dGFza0NvbXBsZXRlZCgqdGhpcyk7CiAKICAgICByZXR1cm4gRXhjZXB0aW9u
VHlwZTo6Tm9uZTsKQEAgLTE3Myw5ICsxNzMsOSBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRp
ZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiB2
b2lkIFdlYlVSTFNjaGVtZVRhc2s6OnBhZ2VEZXN0cm95ZWQoKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7Ci0gICAgQVNTRVJUKG1fcGFnZSk7CiAKLSAgICBtX3BhZ2UgPSBudWxs
cHRyOworICAgIG1fcGFnZVByb3h5SUQgPSB7IH07CisgICAgbV93ZWJQYWdlSUQgPSB7IH07CiAg
ICAgbV9wcm9jZXNzID0gbnVsbHB0cjsKICAgICBtX3N0b3BwZWQgPSB0cnVlOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCmluZGV4IDM5YjJmZWI0M2Jm
Li5iZmQ5MjMzOTFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJM
U2NoZW1lVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRh
c2suaApAQCAtNTQsMTMgKzU0LDEzIEBAIHVzaW5nIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXIg
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlCiBjbGFzcyBX
ZWJVUkxTY2hlbWVUYXNrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlVSTFNjaGVt
ZVRhc2s+LCBwdWJsaWMgSW5zdGFuY2VDb3VudGVkPFdlYlVSTFNjaGVtZVRhc2s+IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXZWJVUkxTY2hlbWVUYXNrKTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdlYlVSTFNjaGVtZVRhc2s+IGNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2Vi
UGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgdWludDY0X3QgaWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAg
c3RhdGljIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYs
IFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCB1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xv
YWRDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIH5XZWJVUkxTY2hlbWVUYXNrKCk7CiAKICAg
ICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdl
SUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3BhZ2VJZGVu
dGlmaWVyOyB9Ci0KKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlEKCkgY29u
c3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9wYWdlUHJveHlJRDsgfQor
ICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fd2ViUGFnZUlEOyB9CiAgICAgV2ViUHJvY2Vzc1By
b3h5KiBwcm9jZXNzKCkgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9wcm9j
ZXNzLmdldCgpOyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTg3LDE1ICs4NywxNSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwYWdlRGVzdHJveWVkKCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViVVJM
U2NoZW1lVGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vz
c1Byb3h5JiwgdWludDY0X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgV2ViVVJMU2NoZW1lVGFzayhXZWJV
UkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOwogCiAgICAgYm9vbCBpc1N5
bmMoKSBjb25zdCB7IHJldHVybiAhIW1fc3luY0NvbXBsZXRpb25IYW5kbGVyOyB9CiAKICAgICBS
ZWY8V2ViVVJMU2NoZW1lSGFuZGxlcj4gbV91cmxTY2hlbWVIYW5kbGVyOwotICAgIFdlYlBhZ2VQ
cm94eSogbV9wYWdlOwogICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKICAg
ICB1aW50NjRfdCBtX2lkZW50aWZpZXI7Ci0gICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3Bh
Z2VJZGVudGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlUHJveHlJRDsK
KyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3dlYlBhZ2VJRDsKICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIG11dGFibGUgTG9jayBtX3JlcXVlc3RMb2Nr
OwogICAgIGJvb2wgbV9zdG9wcGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJy
b3dzZXJDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlci5tbQppbmRleCA0MjAyMzk2YWJhZi4uMmI3MmMyMTE1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIubW0KQEAgLTQwNCwxMiArNDA0LDEyIEBAIC0gKFdLQnVuZGxlUGFnZVJl
ZilfYnVuZGxlUGFnZVJlZgogCiAtIChXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqKWhhbmRsZQog
ewotICAgIHJldHVybiBbW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRo
UGFnZUlEOl9wYWdlLT5wYWdlSUQoKV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBbW1tXS0Jy
b3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZToqX3BhZ2VdIGF1dG9yZWxl
YXNlXTsKIH0KIAogKyAoaW5zdGFuY2V0eXBlKWxvb2tVcEJyb3dzaW5nQ29udGV4dEZyb21IYW5k
bGU6KFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICopaGFuZGxlCiB7Ci0gICAgcmV0dXJuIHdyYXBw
ZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKGhhbmRsZS5wYWdlSUQp
KTsKKyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YlBhZ2UoaGFuZGxlLndlYlBhZ2VJRCkpOwogfQogCiAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3Ry
eSAqKV9yZW1vdGVPYmplY3RSZWdpc3RyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNw
cAppbmRleCAyYjI4ODY0YTlhYS4uYzQ0YWRiMjZhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXIuY3BwCkBAIC0yNTIsNyArMjUyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCF3
ZWJQYWdlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5OjpEaWRQb3N0TWVzc2FnZSh3ZWJQYWdlLT5wYWdlSUQoKSwg
d2ViRnJhbWUtPmluZm8oKSwgbV9pZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UodmFsdWUt
PmRhdGEoKSkpLCBtX2NvbnRyb2xsZXItPmlkZW50aWZpZXIoKSk7CisgICAgICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpEaWRQb3N0TWVzc2FnZSh3ZWJQYWdlLT53
ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIHdlYkZyYW1lLT5pbmZvKCksIG1faWRlbnRpZmllciwg
SVBDOjpEYXRhUmVmZXJlbmNlKHZhbHVlLT5kYXRhKCkpKSwgbV9jb250cm9sbGVyLT5pZGVudGlm
aWVyKCkpOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJVc2VyQ29udGVudENvbnRyb2xsZXI+IG1f
Y29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMGU2Yjk0M2QxNTkuLmI4MDMz
NTFkODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjkyLDcgKzI5Miw3IEBAIFBhZ2Uq
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYgcmVxdWVzCiAKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gbmV3UGFn
ZUlEOwogICAgIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IHBhcmFtZXRlcnM7
Ci0gICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJhbWUtPmluZm8oKSwg
d2ViRnJhbWUtPnBhZ2UoKS0+cGFnZUlEKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdp
bmRvd0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5w
YWdlSUQoKSkpCisgICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJhbWUt
PmluZm8oKSwgd2ViRnJhbWUtPnBhZ2UoKS0+d2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCByZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRh
dGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdl
SUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGlmICghbmV3UGFnZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggNzA5ODBlZTViNWIuLjQ4ZGUzNWZkMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKQEAgLTkwNiw5ICs5MDYsMTEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAg
ICBpZiAocmVxdWVzdGVyLmZyYW1lSUQoKSAmJiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJG
cmFtZShyZXF1ZXN0ZXIuZnJhbWVJRCgpKSkKICAgICAgICAgb3JpZ2luYXRpbmdGcmFtZUluZm9E
YXRhLmZyYW1lSUQgPSByZXF1ZXN0ZXIuZnJhbWVJRCgpOwogCi0gICAgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlEOwotICAgIGlmIChyZXF1ZXN0ZXIucGFnZUlEKCkg
JiYgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShyZXF1ZXN0ZXIucGFnZUlEKCkpKQot
ICAgICAgICBvcmlnaW5hdGluZ1BhZ2VJRCA9IHJlcXVlc3Rlci5wYWdlSUQoKTsKKyAgICBPcHRp
b25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRDsKKyAgICBpZiAo
cmVxdWVzdGVyLnBhZ2VJRCgpKSB7CisgICAgICAgIGlmIChhdXRvKiB3ZWJQYWdlID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShyZXF1ZXN0ZXIucGFnZUlEKCkpKQorICAgICAgICAg
ICAgb3JpZ2luYXRpbmdQYWdlSUQgPSB3ZWJQYWdlLT53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCk7
CisgICAgfQogCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGE7
CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEubmF2aWdhdGlvblR5cGUgPSBhY3Rpb24tPm5hdmln
YXRpb25UeXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKaW5kZXggOTBm
ZGYwZTZlOTAuLmIxOTlhMTAzMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnku
Y3BwCkBAIC0zNSw3ICszNSw3IEBAIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpXZWJSZW1vdGVP
YmplY3RSZWdpc3RyeShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVtb3RlCiAgICAgOiBSZW1v
dGVPYmplY3RSZWdpc3RyeShyZW1vdGVPYmplY3RSZWdpc3RyeSkKICAgICAsIG1fcGFnZShwYWdl
KQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
LnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX3BhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCAqdGhpcyk7CiAgICAgcGFn
ZS5zZXRSZW1vdGVPYmplY3RSZWdpc3RyeSh0aGlzKTsKIH0KIApAQCAtNDcsNyArNDcsNyBAQCBX
ZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6fldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KCkKIHZvaWQg
V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6OmNsb3NlKCkKIHsKICAgICBpZiAobV9wYWdlLnJlbW90
ZU9iamVjdFJlZ2lzdHJ5KCkgPT0gdGhpcykgewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
T2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLndlYlBhZ2VQcm94
eUlkZW50aWZpZXIoKSk7CiAgICAgICAgIG1fcGFnZS5zZXRSZW1vdGVPYmplY3RSZWdpc3RyeShu
dWxscHRyKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKaW5kZXggYmIx
MzA2ZTI5OWYuLjlmM2NiYmVlODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCkBA
IC04NCw3ICs4NCw3IEBAIHZvaWQgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OmFkZFZpc2l0
ZWRMaW5rKFBhZ2UmIHBhZ2UsIFNoYXJlZFN0cmluZ0hhc2ggbGluCiAgICAgaWYgKCF3ZWJQYWdl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpWaXNpdGVkTGlua1N0b3JlOjpBZGRW
aXNpdGVkTGlua0hhc2hGcm9tUGFnZSh3ZWJQYWdlLT5wYWdlSUQoKSwgbGlua0hhc2gpLCBtX2lk
ZW50aWZpZXIpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlZpc2l0ZWRMaW5rU3RvcmU6OkFkZFZpc2l0ZWRMaW5r
SGFzaEZyb21QYWdlKHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgbGlua0hhc2gp
LCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjpz
ZXRWaXNpdGVkTGlua1RhYmxlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZjNGJi
NTAzNmFiLi5hNDhkN2ZmNzg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTQyNiw2ICs0MjYsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICAsIG1faG9zdEZpbGVEZXNjcmlwdG9yKFdURk1v
dmUocGFyYW1ldGVycy5ob3N0RmlsZURlc2NyaXB0b3IpKQogI2VuZGlmCisgICAgLCBtX3dlYlBh
Z2VQcm94eUlkZW50aWZpZXIocGFyYW1ldGVycy53ZWJQYWdlUHJveHlJZGVudGlmaWVyKQogI2lm
IEVOQUJMRShWSUVXUE9SVF9SRVNJWklORykKICAgICAsIG1fc2hyaW5rVG9GaXRDb250ZW50VGlt
ZXIoKnRoaXMsICZXZWJQYWdlOjpzaHJpbmtUb0ZpdENvbnRlbnRUaW1lckZpcmVkLCAwX3MpCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3
ODEzNzBkYTRhMy4uN2I2MDdkYzNhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTI5Miw3ICsyOTIsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3Jl
OjpQYWdlKiBjb3JlUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9
Ci0gICAgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbWFrZU9iamVjdElkZW50aWZpZXI8U3RvcmFnZU5h
bWVzcGFjZUlkZW50aWZpZXJUeXBlPihtX3BhZ2VJRC50b1VJbnQ2NCgpKTsgfQorICAgIFN0b3Jh
Z2VOYW1lc3BhY2VJZGVudGlmaWVyIHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPFN0b3JhZ2VOYW1lc3BhY2VJZGVu
dGlmaWVyVHlwZT4obV93ZWJQYWdlUHJveHlJZGVudGlmaWVyLnRvVUludDY0KCkpOyB9CiAgICAg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLT5zZXNzaW9u
SUQoKTsgfQogICAgIGJvb2wgdXNlc0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBt
X3BhZ2UtPnVzZXNFcGhlbWVyYWxTZXNzaW9uKCk7IH0KIApAQCAtMTIwMyw2ICsxMjAzLDggQEAg
cHVibGljOgogICAgIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KiByZW1vdGVPYmplY3RSZWdpc3Ry
eSgpOwogI2VuZGlmCiAKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VQcm94eUlkZW50aWZpZXI7IH0KKwog
ICAgIHZvaWQgdXBkYXRlSW50cmluc2ljQ29udGVudFNpemVJZk5lZWRlZChjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJik7CiAgICAgdm9pZCBzY2hlZHVsZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpOwog
ICAgIGJvb2wgaXNUaHJvdHRsZWFibGUoKSBjb25zdDsKQEAgLTE5NTcsNiArMTk1OSw3IEBAIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV2Vha1B0cjxXZWJSZW1vdGVPYmplY3RS
ZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeTsKICNlbmRpZgorICAgIFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJveHlJZGVudGlmaWVyOwogICAgIFdlYkNvcmU6OkludFNp
emUgbV9sYXN0U2VudEludHJpbnNpY0NvbnRlbnRTaXplOwogI2lmIEVOQUJMRShWSUVXUE9SVF9S
RVNJWklORykKICAgICBXZWJDb3JlOjpEZWZlcnJhYmxlT25lU2hvdFRpbWVyIG1fc2hyaW5rVG9G
aXRDb250ZW50VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggNzcyNjcyYzQ5YjAuLmUyNzlkNDRmNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC03NDYsNyArNzQ2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGUK
ICAgICB9CiAjZW5kaWYKIAotICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1l
c3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCku
ZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCkpOworICAgIExP
R19FUlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyAoZGVzdGluYXRp
b246ICVsbHUpIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5kYXRh
KCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5kZXN0
aW5hdGlvbklEKCkpOwogfQogCiBXZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CkBAIC0xNzExLDcgKzE3MTEsNyBAQCBSZWZQdHI8QVBJ
OjpPYmplY3Q+IFdlYlByb2Nlc3M6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMoQVBJOjpPYmpl
Y3QqIG9iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gbV93ZWJQcm9jZXNzLndlYlBhZ2VH
cm91cChzdGF0aWNfY2FzdDxjb25zdCBBUEk6OlBhZ2VHcm91cEhhbmRsZSY+KG9iamVjdCkud2Vi
UGFnZUdyb3VwRGF0YSgpKTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6
UGFnZUhhbmRsZToKLSAgICAgICAgICAgICAgICByZXR1cm4gbV93ZWJQcm9jZXNzLndlYlBhZ2Uo
c3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpQYWdlSGFuZGxlJj4ob2JqZWN0KS5wYWdlSUQoKSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1fd2ViUHJvY2Vzcy53ZWJQYWdlKHN0YXRpY19jYXN0PGNv
bnN0IEFQSTo6UGFnZUhhbmRsZSY+KG9iamVjdCkud2ViUGFnZUlEKCkpOwogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpPYmpDT2JqZWN0
R3JhcGg6CkBAIC0xNzU0LDcgKzE3NTQsNyBAQCBSZWZQdHI8QVBJOjpPYmplY3Q+IFdlYlByb2Nl
c3M6OnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMoQVBJOjpPYmplY3QqIG9iamVjdCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmco
c3RhdGljX2Nhc3Q8Y29uc3QgV2ViRnJhbWUmPihvYmplY3QpLmZyYW1lSUQoKSk7CiAKICAgICAg
ICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2U6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nh
c3Q8Y29uc3QgV2ViUGFnZSY+KG9iamVjdCkucGFnZUlEKCkpOworICAgICAgICAgICAgICAgIHJl
dHVybiBBUEk6OlBhZ2VIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNv
bnN0IFdlYlBhZ2UmPihvYmplY3QpLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgc3RhdGljX2Nh
c3Q8Y29uc3QgV2ViUGFnZSY+KG9iamVjdCkucGFnZUlEKCkpOwogCiAgICAgICAgICAgICBjYXNl
IEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVQYWdlR3JvdXA6IHsKICAgICAgICAgICAgICAgICBX
ZWJQYWdlR3JvdXBEYXRhIHBhZ2VHcm91cERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5k
ZXggNWJkODAyNzI1NTkuLmRhY2QwZjdmZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBA
IC00MiwyOCArNDIsMzAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLVJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFjZUltcGw6
OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmllciwgdW5z
aWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8U3RvcmFn
ZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVTZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZShJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
dW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6OlNl
c3Npb24sIGlkZW50aWZpZXIsIG51bGxwdHIsIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklEKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6
OlNlc3Npb24sIGlkZW50aWZpZXIsIHBhZ2VJRCwgbnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNz
aW9uSUQpKTsKIH0KIAogUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNl
SW1wbDo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmllciwg
dW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6Okxv
Y2FsLCBpZGVudGlmaWVyLCBudWxscHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpM
b2NhbCwgaWRlbnRpZmllciwgV1RGOjpudWxsb3B0LCBudWxscHRyLCBxdW90YUluQnl0ZXMsIHNl
c3Npb25JRCkpOwogfQogCiBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIHVpbnQ2
NF90IHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpUcmFuc2ll
bnRMb2NhbCwgaWRlbnRpZmllciwgJnRvcExldmVsT3JpZ2luLCBxdW90YUluQnl0ZXMsIHNlc3Np
b25JRCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0
b3JhZ2VUeXBlOjpUcmFuc2llbnRMb2NhbCwgaWRlbnRpZmllciwgV1RGOjpudWxsb3B0LCAmdG9w
TGV2ZWxPcmlnaW4sIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklEKSk7CiB9CiAKLVN0b3JhZ2VOYW1l
c3BhY2VJbXBsOjpTdG9yYWdlTmFtZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSBzdG9y
YWdlVHlwZSwgSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKiB0b3BMZXZlbE9yaWdpbiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCitTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFjZUlt
cGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIElkZW50aWZpZXIgc3RvcmFnZU5h
bWVzcGFjZUlELCBjb25zdCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4mIHBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3Rh
SW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zdG9yYWdlVHlwZShz
dG9yYWdlVHlwZSkKICAgICAsIG1fc3RvcmFnZU5hbWVzcGFjZUlEKHN0b3JhZ2VOYW1lc3BhY2VJ
RCkKKyAgICAsIG1fc2Vzc2lvblBhZ2VJRChwYWdlSWRlbnRpZmllcikKICAgICAsIG1fdG9wTGV2
ZWxPcmlnaW4odG9wTGV2ZWxPcmlnaW4pCiAgICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0
ZXMpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CisgICAgQVNTRVJUKHN0b3JhZ2VU
eXBlID09IFN0b3JhZ2VUeXBlOjpTZXNzaW9uIHx8ICFtX3Nlc3Npb25QYWdlSUQpOwogfQogCiBT
dG9yYWdlTmFtZXNwYWNlSW1wbDo6flN0b3JhZ2VOYW1lc3BhY2VJbXBsKCkKQEAgLTk4LDcgKzEw
MCw3IEBAIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29weShQ
YWdlKiBuZXdQYWdlKQogICAgIGlmIChhdXRvIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkp
CiAgICAgICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKG5l
d1BhZ2UtPnNlc3Npb25JRCgpLCBtX3N0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViUGFnZTo6ZnJvbUNv
cmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSksIDAp
OwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwobV9zdG9y
YWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZUlkZW50aWZpZXIoKSwgbV90b3BMZXZlbE9yaWdpbi5nZXQoKSwgbV9xdW90YUluQnl0
ZXMsIG5ld1BhZ2UtPnNlc3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3Rv
cmFnZU5hbWVzcGFjZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5l
d1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgV2ViUGFnZTo6ZnJv
bUNvcmVQYWdlKG5ld1BhZ2UpLT5wYWdlSUQoKSwgbV90b3BMZXZlbE9yaWdpbi5nZXQoKSwgbV9x
dW90YUluQnl0ZXMsIG5ld1BhZ2UtPnNlc3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgU3RvcmFnZU5h
bWVzcGFjZUltcGw6OnNldFNlc3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpAQCAtMTExLDcgKzExMyw3IEBAIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNldFNl
c3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogUGFnZUlkZW50aWZp
ZXIgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlUGFnZUlEKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQobV9zdG9yYWdlVHlwZSA9PSBTdG9yYWdlVHlwZTo6U2Vzc2lvbik7Ci0gICAg
cmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT4obV9zdG9yYWdl
TmFtZXNwYWNlSUQudG9VSW50NjQoKSk7CisgICAgcmV0dXJuICptX3Nlc3Npb25QYWdlSUQ7CiB9
CiAKIHVpbnQ2NF90IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpwYWdlR3JvdXBJRCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuaAppbmRleCAzYTBhYjE5ZDRjMi4uNDUxNzk3NDJiNjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5h
bWVzcGFjZUltcGwuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1w
bCA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlIHsKIHB1YmxpYzoKICAgICB1c2lu
ZyBJZGVudGlmaWVyID0gU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXI7CiAKLSAgICBzdGF0aWMg
UmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJ
ZGVudGlmaWVyLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICBz
dGF0aWMgUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZShJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdW5zaWduZWQgcXVvdGFJ
bkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIFJlZjxTdG9yYWdlTmFtZXNwYWNl
SW1wbD4gY3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIsIHVuc2lnbmVkIHF1
b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyBSZWY8U3RvcmFnZU5hbWVz
cGFjZUltcGw+IGNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIHVpbnQ2NF90IHF1b3Rh
SW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOwogCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNlc3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQpIG92ZXJyaWRlOwog
CiBwcml2YXRlOgotICAgIFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFdlYkNvcmU6OlN0b3JhZ2VUeXBl
LCBJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVu
c2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOworICAgIFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsKFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBJZGVudGlmaWVyLCBjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4mIHBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNz
aW9uSUQpOwogCiAgICAgUmVmPFdlYkNvcmU6OlN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBvdmVycmlkZTsKIApAQCAtNzIsNiArNzIs
NyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgV2ViQ29yZTo6U3RvcmFnZVR5cGUgbV9zdG9yYWdl
VHlwZTsKICAgICBjb25zdCBJZGVudGlmaWVyIG1fc3RvcmFnZU5hbWVzcGFjZUlEOworICAgIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBtX3Nlc3Npb25QYWdlSUQ7CiAKICAgICAv
LyBPbmx5IHVzZWQgZm9yIHRyYW5zaWVudCBsb2NhbCBzdG9yYWdlIG5hbWVzcGFjZXMuCiAgICAg
Y29uc3QgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsT3JpZ2luOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKaW5kZXggMzAwY2NmMDc4M2EuLjQ4
MTgxYjQ5MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKQEAgLTY2
LDcgKzY2LDggQEAgV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjp+V2ViU3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyKCkKIAogUmVmPFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IFdlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSYg
cGFnZSwgdW5zaWduZWQgcXVvdGEpCiB7Ci0gICAgcmV0dXJuIFN0b3JhZ2VOYW1lc3BhY2VJbXBs
OjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShXZWJQYWdlOjpmcm9tQ29yZVBhZ2UoJnBh
Z2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgcXVvdGEsIHBhZ2Uuc2Vz
c2lvbklEKCkpOworICAgIGF1dG8qIHdlYlBhZ2UgPSBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UoJnBh
Z2UpOworICAgIHJldHVybiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlU2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2Uod2ViUGFnZS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCks
IHdlYlBhZ2UtPnBhZ2VJRCgpLCBxdW90YSwgcGFnZS5zZXNzaW9uSUQoKSk7CiB9CiAKIFJlZjxX
ZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlPiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNy
ZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSwgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KaW5kZXggOWM2NGNhZjA1ZTguLjNkODBiZTI5OTk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTY3Niw3
ICs2NzYsNyBAQCBSZWZQdHI8T2JqQ09iamVjdEdyYXBoPiBXZWJQcm9jZXNzOjp0cmFuc2Zvcm1I
YW5kbGVzVG9PYmplY3RzKE9iakNPYmplY3RHcmFwaCYgbwogICAgICAgICBSZXRhaW5QdHI8aWQ+
IHRyYW5zZm9ybU9iamVjdChpZCBvYmplY3QpIGNvbnN0IG92ZXJyaWRlCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGlmIChhdXRvKiBoYW5kbGUgPSBkeW5hbWljX29iamNfY2FzdDxXS0Jyb3dzaW5n
Q29udGV4dEhhbmRsZT4ob2JqZWN0KSkgewotICAgICAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJQ
YWdlID0gbV93ZWJQcm9jZXNzLndlYlBhZ2UoaGFuZGxlLl9wYWdlSUQpKQorICAgICAgICAgICAg
ICAgIGlmIChhdXRvKiB3ZWJQYWdlID0gbV93ZWJQcm9jZXNzLndlYlBhZ2UoaGFuZGxlLl93ZWJQ
YWdlSUQpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcigqd2ViUGFnZSk7CiAK
ICAgICAgICAgICAgICAgICByZXR1cm4gW05TTnVsbCBudWxsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377627</attachid>
            <date>2019-08-29 14:38:57 -0700</date>
            <delta_ts>2019-08-29 14:52:27 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>201225_pson_webPageID_bump_wip.patch</filename>
            <type>text/plain</type>
            <size>103260</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDc2ZmVjYzI4MDY0
Li42YTIzYWM0OGVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0yMjIsNiArMjIyLDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJz
KHJlY2VpdmVyKToKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXInLAogICAgIF0pCiAKICAgICBmb3IgcGFyYW1ldGVy
IGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
QVBJUGFnZUhhbmRsZS5jcHAKaW5kZXggZTYwNWE0NTk0NmYuLjFlMWYwNDY1MmFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwCkBAIC0zMSwxOCArMzEsMTkg
QEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxQYWdlSGFuZGxlPiBQYWdlSGFuZGxlOjpjcmVh
dGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQorUmVmPFBhZ2VIYW5kbGU+IFBhZ2VI
YW5kbGU6OmNyZWF0ZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQYWdlSGFuZGxlKHBhZ2VJRCwgZmFsc2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBQYWdlSGFuZGxlKHBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIGZhbHNlKSk7CiB9CiAKLVJl
ZjxQYWdlSGFuZGxlPiBQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCitSZWY8UGFnZUhhbmRsZT4gUGFnZUhhbmRsZTo6Y3JlYXRl
QXV0b2NvbnZlcnRpbmcoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUGFnZUhhbmRsZShwYWdlSUQsIHRydWUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBQYWdlSGFuZGxlKHBhZ2VQcm94eUlELCB3ZWJQYWdlSUQsIHRydWUpKTsKIH0KIAotUGFn
ZUhhbmRsZTo6UGFnZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIGJvb2wg
aXNBdXRvY29udmVydGluZykKLSAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKK1BhZ2VIYW5kbGU6OlBh
Z2VIYW5kbGUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKKyAg
ICA6IG1fcGFnZVByb3h5SUQocGFnZVByb3h5SUQpCisgICAgLCBtX3dlYlBhZ2VJRCh3ZWJQYWdl
SUQpCiAgICAgLCBtX2lzQXV0b2NvbnZlcnRpbmcoaXNBdXRvY29udmVydGluZykKIHsKIH0KQEAg
LTUzLDIyICs1NCwyOCBAQCBQYWdlSGFuZGxlOjp+UGFnZUhhbmRsZSgpCiAKIHZvaWQgUGFnZUhh
bmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVy
IDw8IG1fcGFnZUlEOworICAgIGVuY29kZXIgPDwgbV9wYWdlUHJveHlJRDsKKyAgICBlbmNvZGVy
IDw8IG1fd2ViUGFnZUlEOwogICAgIGVuY29kZXIgPDwgbV9pc0F1dG9jb252ZXJ0aW5nOwogfQog
CiBib29sIFBhZ2VIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxP
YmplY3Q+JiByZXN1bHQpCiB7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRDsKLSAgICBkZWNvZGVyID4+IHBhZ2VJRDsKLSAgICBpZiAoIXBhZ2VJRCkKKyAgICBP
cHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IHBhZ2VQcm94eUlEOworICAg
IGRlY29kZXIgPj4gcGFnZVByb3h5SUQ7CisgICAgaWYgKCFwYWdlUHJveHlJRCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHdl
YlBhZ2VJRDsKKyAgICBkZWNvZGVyID4+IHdlYlBhZ2VJRDsKKyAgICBpZiAoIXdlYlBhZ2VJRCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBpc0F1dG9jb252ZXJ0aW5nOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaXNBdXRvY29udmVydGluZykpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIHJlc3VsdCA9IGlzQXV0b2NvbnZlcnRpbmcgPyBjcmVhdGVBdXRvY29udmVy
dGluZygqcGFnZUlEKSA6IGNyZWF0ZSgqcGFnZUlEKTsKKyAgICByZXN1bHQgPSBpc0F1dG9jb252
ZXJ0aW5nID8gY3JlYXRlQXV0b2NvbnZlcnRpbmcoKnBhZ2VQcm94eUlELCAqd2ViUGFnZUlEKSA6
IGNyZWF0ZSgqcGFnZVByb3h5SUQsICp3ZWJQYWdlSUQpOwogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuaAppbmRleCA2YTFjZmI2OTgy
NS4uOGNmN2RiOTk0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElQ
YWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUu
aApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElQYWdlSGFuZGxlX2gKIAogI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBA
IC0zOSwyMCArNDAsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIFBhZ2VIYW5kbGUgOiBw
dWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VIYW5kbGU+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFBhZ2VIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7
Ci0gICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGUoV2Vi
S2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Cisg
ICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJLaXQ6Oldl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2aXJ0
dWFsIH5QYWdlSGFuZGxlKCk7CiAKLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQorICAgIFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0KKyAg
ICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dl
YlBhZ2VJRDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+
Jik7CiAKIHByaXZhdGU6Ci0gICAgUGFnZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Ym9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBQYWdlSGFuZGxlKFdlYktpdDo6V2ViUGFnZVBy
b3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOwogCi0gICAgY29uc3QgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgbV9wYWdlSUQ7CisgICAgY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyIG1fcGFnZVByb3h5SUQ7CisgICAgY29uc3QgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93
ZWJQYWdlSUQ7CiAgICAgY29uc3QgYm9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRIYW5kbGUubW0KaW5kZXggN2U5N2YxNzZjMDguLmM2YjBlYmQ5ZjZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlLm1tCkBAIC0yNiwyMSArMjYsMzYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
V0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1wb3J0ICJXZWJQYWdlLmgi
CisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+
CisKIEBpbXBsZW1lbnRhdGlvbiBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZQogCi0tIChpZClfaW5p
dFdpdGhQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXBhZ2VJRAorLSAoaWQpX2luaXRX
aXRoUGFnZVByb3h5OihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZQoreworICAgIHJldHVybiBb
c2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdlLmlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6
cGFnZS53ZWJQYWdlSUQoKV07Cit9CisKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KFdlYktpdDo6V2Vi
UGFnZSYpcGFnZQoreworICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdl
LndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS5wYWdlSUQoKV07Cit9
CisKKy0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50
aWZpZXIpcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRlbnRpZmllcil3
ZWJQYWdlSUQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKIAotICAgIF9wYWdlSUQgPSBwYWdlSUQ7CisgICAgX3BhZ2VQcm94eUlEID0gcGFn
ZVByb3h5SUQ7CisgICAgX3dlYlBhZ2VJRCA9IHdlYlBhZ2VJRDsKIAogICAgIHJldHVybiBzZWxm
OwogfQogCiAtIChOU1VJbnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX3BhZ2VJRC50b1VJbnQ2
NCgpOworICAgIHJldHVybiBXVEY6OnBhaXJJbnRIYXNoKF9wYWdlUHJveHlJRC50b1VJbnQ2NCgp
LCBfd2ViUGFnZUlELnRvVUludDY0KCkpOwogfQogCiAtIChCT09MKWlzRXF1YWw6KGlkKW9iamVj
dApAQCAtNDgsMTIgKzYzLDEzIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0CiAgICAgaWYg
KCFbb2JqZWN0IGlzS2luZE9mQ2xhc3M6W1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGNsYXNzXV0p
CiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIHJldHVybiBfcGFnZUlEID09IHN0YXRpY19jYXN0
PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCktPl9wYWdlSUQ7CisgICAgcmV0dXJu
IF9wYWdlUHJveHlJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqPihv
YmplY3QpLT5fcGFnZVByb3h5SUQgJiYgX3dlYlBhZ2VJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dz
aW5nQ29udGV4dEhhbmRsZSAqPihvYmplY3QpLT5fd2ViUGFnZUlEOwogfQogCiAtICh2b2lkKWVu
Y29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVuY29kZUludDY0
Ol9wYWdlSUQudG9VSW50NjQoKSBmb3JLZXk6QCJwYWdlSUQiXTsKKyAgICBbY29kZXIgZW5jb2Rl
SW50NjQ6X3BhZ2VQcm94eUlELnRvVUludDY0KCkgZm9yS2V5OkAicGFnZVByb3h5SUQiXTsKKyAg
ICBbY29kZXIgZW5jb2RlSW50NjQ6X3dlYlBhZ2VJRC50b1VJbnQ2NCgpIGZvcktleTpAIndlYlBh
Z2VJRCJdOwogfQogCiAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKQEAgLTYx
LDcgKzc3LDggQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFn
ZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihb
Y29kZXIgZGVjb2RlSW50NjRGb3JLZXk6QCJwYWdlSUQiXSk7CisgICAgX3BhZ2VQcm94eUlEID0g
bWFrZU9iamVjdElkZW50aWZpZXI8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyVHlwZT4o
W2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAicGFnZVByb3h5SUQiXSk7CisgICAgX3dlYlBhZ2VJ
RCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyVHlwZT4oW2Nv
ZGVyIGRlY29kZUludDY0Rm9yS2V5OkAid2ViUGFnZUlEIl0pOwogCiAgICAgcmV0dXJuIHNlbGY7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaAppbmRleCA0M2U0MWUyNGNkMy4uOGRl
ZDU5ZmI1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaApAQCAtMjQsMTIgKzI0
LDIwIEBACiAgKi8KIAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaCIKKyNpbXBv
cnQgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUvUGFnZUlkZW50
aWZpZXIuaD4KIAotQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAoKQorbmFtZXNw
YWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdlOworY2xhc3MgV2ViUGFnZVByb3h5OworfQogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1fcGFnZUlEKSBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQ7CitAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxl
ICgpCiAKLS0gKGlkKV9pbml0V2l0aFBhZ2VJRDooV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpcGFn
ZUlEOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3BhZ2VQcm94eUlE
KSBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQ7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1fd2ViUGFnZUlEKSBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQ7CiAKKy0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eTooV2ViS2l0OjpX
ZWJQYWdlUHJveHkmKXBhZ2U7CistIChpZClfaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2Um
KXBhZ2U7CistIChpZClfaW5pdFdpdGhQYWdlUHJveHlJRDooV2ViS2l0OjpXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyKXBhZ2VQcm94eUlEIGFuZFdlYlBhZ2VJRDooV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpd2ViUGFnZUlEOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBlYzMyMzkzZmE3Ni4uNWNhOTU2ZWIyMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCkBAIC0zOSw2ICszOSw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHN0b3JlOwog
ICAgIGVuY29kZXIuZW5jb2RlRW51bShkcmF3aW5nQXJlYVR5cGUpOwogICAgIGVuY29kZXIgPDwg
ZHJhd2luZ0FyZWFJZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgd2ViUGFnZVByb3h5SWRlbnRp
ZmllcjsKICAgICBlbmNvZGVyIDw8IHBhZ2VHcm91cERhdGE7CiAgICAgZW5jb2RlciA8PCBpc0Vk
aXRhYmxlOwogICAgIGVuY29kZXIgPDwgdW5kZXJsYXlDb2xvcjsKQEAgLTE1Nyw2ICsxNTgsMTEg
QEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICBpZiAoIWRyYXdpbmdBcmVhSWRlbnRpZmll
cikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBwYXJhbWV0ZXJzLmRyYXdpbmdB
cmVhSWRlbnRpZmllciA9ICpkcmF3aW5nQXJlYUlkZW50aWZpZXI7CisgICAgT3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKKyAgICBkZWNvZGVy
ID4+IHdlYlBhZ2VQcm94eUlkZW50aWZpZXI7CisgICAgaWYgKCF3ZWJQYWdlUHJveHlJZGVudGlm
aWVyKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHBhcmFtZXRlcnMud2ViUGFn
ZVByb3h5SWRlbnRpZmllciA9IFdURk1vdmUoKndlYlBhZ2VQcm94eUlkZW50aWZpZXIpOwogICAg
IE9wdGlvbmFsPFdlYlBhZ2VHcm91cERhdGE+IHBhZ2VHcm91cERhdGE7CiAgICAgZGVjb2RlciA+
PiBwYWdlR3JvdXBEYXRhOwogICAgIGlmICghcGFnZUdyb3VwRGF0YSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBlMTlkOTk2YTE2
My4uMTAxMjRkMGZiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGEuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRl
ICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0FjdGl2aXR5U3RhdGUuaD4KQEAgLTgwLDYgKzgxLDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmU7CiAgICAgRHJhd2lu
Z0FyZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKICAgICBEcmF3aW5nQXJlYUlkZW50aWZpZXIgZHJh
d2luZ0FyZWFJZGVudGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVBy
b3h5SWRlbnRpZmllcjsKICAgICBXZWJQYWdlR3JvdXBEYXRhIHBhZ2VHcm91cERhdGE7CiAKICAg
ICBib29sIGlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
T2JqQ09iamVjdEdyYXBoLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL09iakNPYmplY3RH
cmFwaC5tbQppbmRleCBmZTY2ZGU2NTkyYS4uMGVhZjA2ZjVjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5tbQpAQCAtMTg2LDcgKzE4Niw4IEBAIHZvaWQg
T2JqQ09iamVjdEdyYXBoOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBpZCBvYmplY3Qp
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBPYmpDVHlwZTo6V0tCcm93c2luZ0NvbnRleHRI
YW5kbGU6Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRI
YW5kbGUgKj4ob2JqZWN0KS5wYWdlSUQ7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
V0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKj4ob2JqZWN0KS5wYWdlUHJveHlJRDsKKyAgICAgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqPihvYmplY3Qp
LndlYlBhZ2VJRDsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE9iakNUeXBlOjpXS1R5cGVS
ZWZXcmFwcGVyOgpAQCAtMjk4LDEyICsyOTksMTYgQEAgYm9vbCBPYmpDT2JqZWN0R3JhcGg6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxpZD4mIHJlc3VsdCkKICAgICB9
CiAKICAgICBjYXNlIE9iakNUeXBlOjpXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZTogewotICAgICAg
ICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwotICAgICAgICBkZWNv
ZGVyID4+IHBhZ2VJRDsKLSAgICAgICAgaWYgKCFwYWdlSUQpCisgICAgICAgIE9wdGlvbmFsPFdl
YlBhZ2VQcm94eUlkZW50aWZpZXI+IHBhZ2VQcm94eUlEOworICAgICAgICBkZWNvZGVyID4+IHBh
Z2VQcm94eUlEOworICAgICAgICBpZiAoIXBhZ2VQcm94eUlEKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gd2ViUGFn
ZUlEOworICAgICAgICBkZWNvZGVyID4+IHdlYlBhZ2VJRDsKKyAgICAgICAgaWYgKCF3ZWJQYWdl
SUQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRO
UyhbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlSUQ6KnBhZ2VJ
RF0pOworICAgICAgICByZXN1bHQgPSBhZG9wdE5TKFtbV0tCcm93c2luZ0NvbnRleHRIYW5kbGUg
YWxsb2NdIF9pbml0V2l0aFBhZ2VQcm94eUlEOipwYWdlUHJveHlJRCBhbmRXZWJQYWdlSUQ6Kndl
YlBhZ2VJRF0pOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLm1tCmluZGV4IDExMDAzM2JhNmZhLi43OWVkMjVlYjc5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCkBAIC03MjAsNyArNzIwLDcgQEAgLSAoTlNVSW50ZWdlcilwYWdl
Q291bnQKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1
cm4gW1tbV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VJRDpfcGFn
ZS0+d2ViUGFnZUlEKCldIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbV0tCcm93c2luZ0Nv
bnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VQcm94eToqX3BhZ2VdIGF1dG9yZWxlYXNl
XTsKIH0KIAogLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilfcmVtb3RlT2JqZWN0UmVnaXN0
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IGNjN2Y2Yzk2MjU4Li43NDNmZjJjNmNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04NzcsNyArODc3LDcgQEAgLSAodm9pZClk
ZWFsbG9jCiAgICAgW19jb250ZW50VmlldyBfd2ViVmlld0Rlc3Ryb3llZF07CiAKICAgICBpZiAo
X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAgICAgICBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQ
b29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3Ry
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+d2ViUGFnZUlEKCkpOworICAgICAgICBf
cGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+
aWRlbnRpZmllcigpKTsKICNlbmRpZgogCiAgICAgX3BhZ2UtPmNsb3NlKCk7CkBAIC00NzI1LDcg
KzQ3MjUsNyBAQCAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RSZWdp
c3RyeQogI2Vsc2UKICAgICBpZiAoIV9yZW1vdGVPYmplY3RSZWdpc3RyeSkgewogICAgICAgICBf
cmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkg
YWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eToqX3BhZ2VdKTsKLSAgICAgICAgX3BhZ2UtPnBy
b2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
T2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgX3BhZ2UtPndlYlBhZ2VJRCgp
LCBbX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7CisgICAgICAg
IF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIF9wYWdlLT5p
ZGVudGlmaWVyKCksIFtfcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnld
KTsKICAgICB9CiAKICAgICByZXR1cm4gX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LmdldCgpOwpAQCAt
NDczNCw3ICs0NzM0LDcgQEAgLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilfcmVtb3RlT2Jq
ZWN0UmVnaXN0cnkKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKilfaGFuZGxlCiB7Ci0g
ICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdl
SUQ6X3BhZ2UtPndlYlBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIFtbW1dLQnJv
d3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJveHk6Kl9wYWdlXSBhdXRv
cmVsZWFzZV07CiB9CiAKIC0gKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKV9vYnNlcnZlZFJl
bmRlcmluZ1Byb2dyZXNzRXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IDU0YTI0MDUy
NGI5Li40ZjFlOGJiMjg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKQEAgLTg3LDcgKzg3LDcg
QEAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogd2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZSh1
aW50NjRfdCByZXF1ZXN0SUQsIFdlYktpdFcKICAgICByZXF1ZXN0LT5wcml2LT5yZXF1ZXN0SUQg
PSByZXF1ZXN0SUQ7CiAKICAgICBBU1NFUlQocmVzb3VyY2VSZXF1ZXN0LmluaXRpYXRpbmdQYWdl
SUQoKSk7Ci0gICAgcmVxdWVzdC0+cHJpdi0+aW5pdGlhdGluZ1BhZ2UgPSBXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2UoKnJlc291cmNlUmVxdWVzdC5pbml0aWF0aW5nUGFnZUlEKCkpOworICAgIHJl
cXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJv
bUNvcmVQYWdlSWRlbnRpZmllcigqcmVzb3VyY2VSZXF1ZXN0LmluaXRpYXRpbmdQYWdlSUQoKSk7
CiAgICAgQVNTRVJUKHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlKTsKIAogICAgIHJldHVy
biByZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCBiMWVjODQ2YjdiNC4uMWE4MjUzYWMwNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNv
Y29hLm1tCkBAIC03Niw3ICs3Niw3IEBAIFJlZlB0cjxPYmpDT2JqZWN0R3JhcGg+IFdlYlByb2Nl
c3NQcm94eTo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhPYmpDT2JqZWN0R3JhCiAgICAgICAg
IFJldGFpblB0cjxpZD4gdHJhbnNmb3JtT2JqZWN0KGlkIG9iamVjdCkgY29uc3Qgb3ZlcnJpZGUK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKGF1dG8qIGhhbmRsZSA9IGR5bmFtaWNfb2JqY19j
YXN0PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlPihvYmplY3QpKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGF1dG8qIHdlYlBhZ2VQcm94eSA9IG1fd2ViUHJvY2Vzc1Byb3h5LndlYlBhZ2UoaGFuZGxl
LnBhZ2VJRCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gbV93
ZWJQcm9jZXNzUHJveHkud2ViUGFnZShoYW5kbGUucGFnZVByb3h5SUQpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIF9icm93c2luZ0Nv
bnRleHRDb250cm9sbGVyRm9yUGFnZVJlZjp0b0FQSSh3ZWJQYWdlUHJveHkpXTsKICAgICAgICAg
ICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGY0MDQyZmU3MGRmLi4z
NWFjNGRmNmU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KQEAgLTEzNjIsNyArMTM2Miw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChOU1Zp
ZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXS1dlYlZpZXcgKm91dGVyV2ViCiBXZWJW
aWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKIHsKICAgICBpZiAobV9yZW1vdGVPYmplY3RSZWdpc3Ry
eSkgewotICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgICAgIG1fcGFnZS0+cHJvY2Vzcygp
LnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmpl
Y3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSk7
CiAgICAgICAgIFttX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbnZhbGlkYXRlXTsKICAgICAgICAg
bV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG5pbDsKICAgICB9CkBAIC0zODIzLDcgKzM4MjMsNyBA
QCBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV2ViVmlld0ltcGw6OnJlbW90ZU9iamVjdFJlZ2lz
dHJ5KCkKIHsKICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKICAgICAgICAgbV9y
ZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBh
bGxvY10gX2luaXRXaXRoV2ViUGFnZVByb3h5Om1fcGFnZV0pOwotICAgICAgICBtX3BhZ2UtPnBy
b2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
T2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT53ZWJQYWdlSUQo
KSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsKKyAgICAg
ICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFn
ZS0+aWRlbnRpZmllcigpLCBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RSZWdp
c3RyeV0pOwogICAgIH0KIAogICAgIHJldHVybiBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LmdldCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKaW5kZXggNjhjZGFkYjc2ODkuLjQ1MDkyMjQyMTAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKQEAgLTM0Myw3ICszNDMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaQogCiAgICAg
V2ViUGFnZVByb3h5KiBwYWdlID0gbnVsbHB0cjsKICAgICBpZiAocGFnZUlEKQotICAgICAgICBw
YWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgICAgIHBhZ2UgPSBX
ZWJQcm9jZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBhZ2VJRCk7CiAK
ICAgICBpZiAocGFnZSkgewogICAgICAgICBwYWdlLT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eShXVEZNb3ZlKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7CkBAIC00MTIs
NyArNDEyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb24KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hv
dWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQ
cm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBX
ZWJQcm9jZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBhZ2VJRCk7CiAg
ICAgLy8gRklYTUU6IFdlIGRvIHRoaXMgbnVsbC1jaGVjayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRo
ZSBkZWNpc2lvbiB0byBsb2cgaXMgbWFkZSwgdGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3Vs
ZCByZWZhY3RvciB0byBhdm9pZCB0aGlzLAogICAgIC8vIGJ1dCBmb3Igbm93IHdlIHNpbXBseSBk
cm9wIHRoZSBtZXNzYWdlIGluIHRoZSByYXJlIGNhc2UgdGhpcyBoYXBwZW5zLgogICAgIGlmICgh
cGFnZSkKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgU3RyaQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChQYWdl
SWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxk
U2FtcGxlKQogewotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2Vi
UGFnZShwYWdlSUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6
d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKICAgICAvLyBGSVhNRTogV2Ug
ZG8gdGhpcyBudWxsLWNoZWNrIGJlY2F1c2UgYnkgdGhlIHRpbWUgdGhlIGRlY2lzaW9uIHRvIGxv
ZyBpcyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUgZ29uZS4gV2Ugc2hvdWxkIHJlZmFjdG9yIHRvIGF2
b2lkIHRoaXMsCiAgICAgLy8gYnV0IGZvciBub3cgd2Ugc2ltcGx5IGRyb3AgdGhlIG1lc3NhZ2Ug
aW4gdGhlIHJhcmUgY2FzZSB0aGlzIGhhcHBlbnMuCiAgICAgaWYgKCFwYWdlKQpAQCAtNDM0LDcg
KzQzNCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91Ymxl
IHZhbHVlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIFdlYkNvcmU6OlNob3VsZFNhbXBs
ZSBzaG91bGRTYW1wbGUpCiB7Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vz
c1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihwYWdlSUQpOwogICAgIC8vIEZJ
WE1FOiBXZSBkbyB0aGlzIG51bGwtY2hlY2sgYmVjYXVzZSBieSB0aGUgdGltZSB0aGUgZGVjaXNp
b24gdG8gbG9nIGlzIG1hZGUsIHRoZSBwYWdlIG1heSBiZSBnb25lLiBXZSBzaG91bGQgcmVmYWN0
b3IgdG8gYXZvaWQgdGhpcywKICAgICAvLyBidXQgZm9yIG5vdyB3ZSBzaW1wbHkgZHJvcCB0aGUg
bWVzc2FnZSBpbiB0aGUgcmFyZSBjYXNlIHRoaXMgaGFwcGVucy4KICAgICBpZiAoIXBhZ2UpCkBA
IC03NzcsNyArNzc3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhl
cmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXMKIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7
CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNv
cmVQYWdlSWRlbnRpZmllcihwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTk2MCw3ICs5NjAsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0
YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlcwogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5
Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihwYWdlSUQpOwogICAgIGlmICghcGFn
ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMjYwLDcgKzEyNjAsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmNsZWFyVXBsb2FkQXNzZXJ0aW9uKCkKIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5n
Rm9yU3luY1JlcGx5OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBhdXRvKiBwYWdlID0g
V2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHdlYlBhZ2VJRCk7CisgICAgYXV0byogcGFnZSA9IFdl
YlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIod2ViUGFnZUlEKTsK
ICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiByZXBseShmYWxzZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCAwYzAz
NDA2OTA0MS4uYTJhMDlkYzQ5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShX
ZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywgc3RkOjp1
bmlxdWVfcHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX3dlYlBhZ2VJ
RChwYWdlLndlYlBhZ2VJRCgpKQorICAgICwgbV93ZWJQYWdlSUQoc3VzcGVuZGVkUGFnZSA/IHN1
c3BlbmRlZFBhZ2UtPndlYlBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAg
ICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAgICAsIG1fbmF2aWdhdGlvbklEKG5h
dmlnYXRpb25JRCkKICAgICAsIG1faXNTZXJ2ZXJSZWRpcmVjdChpc1NlcnZlclJlZGlyZWN0KQpA
QCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKEFQ
STo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhCiB7CiAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YTogcGFnZVByb3h5SUQg
PSAlIiBQUkl1NjQgIiB3ZWJQYWdlSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5pZGVudGlmaWVyKCku
dG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSk7CiAKLSAgICBtX3BhZ2UubG9hZERh
dGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBk
YXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsK
KyAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBi
YXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAt
MTU4LDcgKzE1OCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQ
STo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzCiAgICAgaWYgKG5hdmlnYXRp
b24uZnJvbUl0ZW0oKSAmJiBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBXZWJD
b3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpCiAgICAgICAgIG5hdmlnYXRpb24uZnJvbUl0
ZW0oKS0+c2V0TGFzdFByb2Nlc3NJZGVudGlmaWVyKG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVu
dGlmaWVyKCkpOwogCi0gICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgIG1fcGFn
ZS5sb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1f
d2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0
aW9uLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBPcHRpb25hbDxXZWJzaXRlUG9saWNp
ZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKQEAgLTI4NywxMyArMjg3LDEzIEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lCiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlv
bklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUlu
Zm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0
aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsCiAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAgIGlmICghdmFsaWRh
dGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIGlkZW50
aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksCisgICAg
bV9wYWdlLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5
T3JpZ2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rp
b25EYXRhKSwKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdl
SUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9k
eSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0K
IApAQCAtMzAzLDcgKzMwMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zCiAgICAgaWYgKCF2
YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9u
SUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRl
LCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1
ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2Vy
RGF0YSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0
aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCkBAIC0zMjQsNyArMzI0
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnIKIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6c3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1ldGVy
cykKIHsKLSAgICBtX3BhZ2Uuc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIFdURk1vdmUocGFyYW1ldGVycykpOworICAgIG1fcGFnZS5zdGFydFVSTFNjaGVtZVRh
c2tTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1l
dGVycykpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9J
dGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImIGlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQpAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVt
SWRlCiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1l
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZv
RGF0YSwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
aAppbmRleCA1YjRjOWNmMmVkYi4uMTc1MjE1MDQ3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6
CiAgICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2Uo
KSB7IHJldHVybiBtX3BhZ2U7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdl
SUQoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYkZyYW1lUHJveHkqIG1h
aW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9CiAgICAgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgUHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OyB9CkBAIC05Myw3
ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KSBmaW5hbDsKIAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBO
YXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCi0gICAgICAgIE9wdGlvbmFs
PFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCisgICAgICAgIE9w
dGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKICAgICAgICAgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJik7CkBAIC0xMDksNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0VVJM
U2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGJhY2tGb3J3
YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAotICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCisgICAgICAg
IEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVT
RShRVUlDS19MT09LKQogICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9j
dW1lbnRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggN2I5NWI2ZWRlOGEuLjFhYzNk
ODgxNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHku
aApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgflN1c3BlbmRlZFBhZ2VQcm94eSgpOwog
CiAgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CisgICAg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQ
YWdlSUQ7IH0KICAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSB7IHJldHVybiBtX3Byb2Nl
c3MuZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBj
b25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LmNwcAppbmRleCAxMDdiYjIyNzA4Ni4uZWFmYzQ1NzI5OTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTMzMiw5ICszMzIsOSBAQCB2
b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyTWVzc2FnZUhh
bmRsZXJzKEFQSTo6VXNlckNvbnRlbgogICAgIHJlbW92ZVVzZXJDb250ZW50V29ybGRVc2VzKHdv
cmxkLCBudW1iZXJSZW1vdmVkKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQ
cm94eTo6ZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2
NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVy
ZW5jZSkKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmRpZFBvc3RNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdl
UHJveHlJRCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVz
c2FnZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQog
ewotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdl
SUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShw
YWdlUHJveHlJRCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oCmluZGV4IGU2NDQ0YjJmNDE4Li40NjlkMzBlMzFl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oCkBAIC0xMTIsNyArMTEy
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2NF90IG1lc3NhZ2VIYW5k
bGVySUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlkUG9zdE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgY29uc3QgRnJhbWVJ
bmZvRGF0YSYsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYpOwogCiAgICAgdm9pZCBhZGRVc2VyQ29udGVudFdvcmxkVXNlKEFQSTo6VXNlckNvbnRl
bnRXb3JsZCYpOwogICAgIHZvaWQgcmVtb3ZlVXNlckNvbnRlbnRXb3JsZFVzZXMoQVBJOjpVc2Vy
Q29udGVudFdvcmxkJiwgdW5zaWduZWQgbnVtYmVyT2ZVc2VzVG9SZW1vdmUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyNWE0
ZTI5MTI3NC4uOGQyMDBhMWU2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw1ICsyNCw1IEBACiAgKi8KIAogbWVzc2Fn
ZXMgLT4gV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkgewotRGlkUG9zdE1lc3NhZ2UoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRh
IGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIElQQzo6RGF0YVJlZmVy
ZW5jZSBtZXNzYWdlKSBXYW50c0Nvbm5lY3Rpb24KK0RpZFBvc3RNZXNzYWdlKFdlYktpdDo6V2Vi
UGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEg
ZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgSVBDOjpEYXRhUmVmZXJl
bmNlIG1lc3NhZ2UpIFdhbnRzQ29ubmVjdGlvbgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9WaXNpdGVkTGlua1N0b3JlLmNwcAppbmRleCBkNzlkN2FkODQ2Yy4uYmI2NTA5OTAzNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCkBAIC0xMDAs
MTAgKzEwMCw5IEBAIHZvaWQgVmlzaXRlZExpbmtTdG9yZTo6cmVtb3ZlQWxsKCkKICAgICB9CiB9
CiAKLXZvaWQgVmlzaXRlZExpbmtTdG9yZTo6YWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBTaGFyZWRTdHJpbmdIYXNoIGxpbmtIYXNoKQordm9pZCBWaXNp
dGVkTGlua1N0b3JlOjphZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZShXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHBhZ2VQcm94eUlELCBTaGFyZWRTdHJpbmdIYXNoIGxpbmtIYXNoKQogewotICAgIC8v
IEZJWE1FOiBOZWVkcyB0byBsb29rIHVwIFdlYlBhZ2VQcm94eSBmcm9tIFdlYlBhZ2VJRC4KLSAg
ICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJ
RCkpIHsKKyAgICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQ
YWdlKHBhZ2VQcm94eUlEKSkgewogICAgICAgICBpZiAoIXdlYlBhZ2VQcm94eS0+YWRkc1Zpc2l0
ZWRMaW5rcygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaAppbmRleCA0NDY5MzUzNDQ4MS4uYzVjMzA4MWFhZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLmgKQEAgLTI4LDcg
KzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvSWRlbnRpZmllZC5oPgpAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkSW52YWxpZGF0ZVNoYXJlZE1lbW9yeSgpIGZpbmFsOwogICAgIHZvaWQgZGlkVXBk
YXRlU2hhcmVkU3RyaW5nSGFzaGVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTaGFyZWRTdHJpbmdI
YXNoPiYgYWRkZWRIYXNoZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNo
PiYgcmVtb3ZlZEhhc2hlcykgZmluYWw7CiAKLSAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rSGFzaEZy
b21QYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNo
KTsKKyAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdlKFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIsIFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gpOwogCiAgICAgdm9pZCBzZW5kU3RvcmVI
YW5kbGVUb1Byb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCmluZGV4IDJlNjZjNDI4
MDhlLi4wNzMyMWM1MWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlz
aXRlZExpbmtTdG9yZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9W
aXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCkBAIC0yMSw1ICsyMSw1IEBACiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKIG1lc3NhZ2VzIC0+IFZpc2l0ZWRMaW5rU3RvcmUgewotICAgIEFkZFZpc2l0ZWRMaW5r
SGFzaEZyb21QYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgbGlu
a0hhc2gpCisgICAgQWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2UoV2ViS2l0OjpXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHBhZ2VQcm94eUlELCB1aW50NjRfdCBsaW5rSGFzaCkKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCBlNjIxYThmZDgz
ZS4uNzc2ODk0YzdhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0
b3JQcm94eS5jcHAKQEAgLTM5MCw3ICszOTAsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpj
cmVhdGVGcm9udGVuZFBhZ2UoKQogCiAgICAgdHJhY2tJbnNwZWN0b3JQYWdlKG1faW5zcGVjdG9y
UGFnZSwgbV9pbnNwZWN0ZWRQYWdlKTsKIAotICAgIG1faW5zcGVjdG9yUGFnZS0+cHJvY2Vzcygp
LmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9pbnNwZWN0ZWRQYWdlLT53ZWJQYWdlSUQoKSwgKnRoaXMpOworICAg
IG1faW5zcGVjdG9yUGFnZS0+cHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
V2ViSW5zcGVjdG9yUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pbnNwZWN0ZWRQYWdl
LT5pZGVudGlmaWVyKCksICp0aGlzKTsKICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5h
c3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKCptX2luc3BlY3RvclBhZ2UsIFdlYkluc3BlY3RvclBy
b3h5OjppbnNwZWN0b3JCYXNlVVJMKCkpOwogfQogCkBAIC00MTEsNyArNDExLDcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6b3BlbkxvY2FsSW5zcGVjdG9yRnJvbnRlbmQoYm9vbCBjYW5BdHRh
Y2gsIGJvb2wgdW5kZXJUZXMKICAgICBpZiAoIW1faW5zcGVjdG9yUGFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
SW5zcGVjdG9yVUk6OkVzdGFibGlzaENvbm5lY3Rpb24obV9pbnNwZWN0ZWRQYWdlLT53ZWJQYWdl
SUQoKSwgbV91bmRlclRlc3QsIGluc3BlY3Rpb25MZXZlbCgpKSwgbV9pbnNwZWN0b3JQYWdlLT53
ZWJQYWdlSUQoKSk7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6V2ViSW5zcGVjdG9yVUk6OkVzdGFibGlzaENvbm5lY3Rpb24obV9pbnNwZWN0ZWRQYWdlLT5p
ZGVudGlmaWVyKCksIG1fdW5kZXJUZXN0LCBpbnNwZWN0aW9uTGV2ZWwoKSksIG1faW5zcGVjdG9y
UGFnZS0+d2ViUGFnZUlEKCkpOwogCiAgICAgQVNTRVJUKCFtX2lzQWN0aXZlRnJvbnRlbmQpOwog
ICAgIG1faXNBY3RpdmVGcm9udGVuZCA9IHRydWU7CkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3coKQogICAgIHVudHJh
Y2tJbnNwZWN0b3JQYWdlKG1faW5zcGVjdG9yUGFnZSk7CiAKICAgICBtX2luc3BlY3RvclBhZ2Ut
PnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6U2V0SXNWaXNpYmxlKG1f
aXNWaXNpYmxlKSwgbV9pbnNwZWN0b3JQYWdlLT53ZWJQYWdlSUQoKSk7Ci0gICAgbV9pbnNwZWN0
b3JQYWdlLT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNw
ZWN0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2luc3BlY3RlZFBhZ2UtPndlYlBh
Z2VJRCgpKTsKKyAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1faW5zcGVjdGVkUGFnZS0+aWRlbnRpZmllcigpKTsKIAogICAgIGlmIChtX2lzQWN0aXZlRnJv
bnRlbmQpIHsKICAgICAgICAgbV9pc0FjdGl2ZUZyb250ZW5kID0gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAxNDE3Mjc2Y2ZjMS4uOTQ0ZGI5Y2Vi
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzk0LDEy
ICs3OTQsMTMgQEAgYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2li
bGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHQKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5n
QXJlYSwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKQordm9pZCBXZWJQYWdlUHJv
eHk6OnN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdl
SWRlbnRpZmllciB3ZWJQYWdlSUQsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiYm
IGRyYXdpbmdBcmVhLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpCiB7CiAgICAg
QVNTRVJUKCFtX2lzQ2xvc2VkKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcs
ICJzd2FwVG9XZWJQcm9jZXNzOiIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGlu
ZywgInN3YXBUb1dlYlByb2Nlc3M6IG5ld1dlYlBhZ2VJRD0lIiBQUkl1NjQsIHdlYlBhZ2VJRC50
b1VJbnQ2NCgpKTsKIAogICAgIG1fcHJvY2VzcyA9IFdURk1vdmUocHJvY2Vzcyk7CisgICAgbV93
ZWJQYWdlSUQgPSB3ZWJQYWdlSUQ7CiAgICAgbV93ZWJzaXRlRGF0YVN0b3JlID0gbV9wcm9jZXNz
LT53ZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICBpZiAobV9sb2dnZXIpCkBAIC0xMTI1LDExICsx
MTI2LDExIEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2hvCiAgICAgICAgIGxhdW5jaFByb2Nlc3Mo
UmVnaXN0cmFibGVEb21haW4geyByZXF1ZXN0LnVybCgpIH0pOwogCiAgICAgYXV0byBuYXZpZ2F0
aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNv
dXJjZVJlcXVlc3QocmVxdWVzdCksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsK
LSAgICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUocmVxdWVzdCksIHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3ksIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vKTsKKyAg
ICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1f
d2ViUGFnZUlELCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpObyk7CiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRo
TmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgQVNTRVJU
KCFtX2lzQ2xvc2VkKTsKIApAQCAtMTE1NSw3ICsxMTU2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXMKIAogICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOwog
Ci0gICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBh
cmFtZXRlcnMpLCBtX3dlYlBhZ2VJRCk7CisgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCB3ZWJQYWdlSUQpOwogICAgIHByb2Nl
c3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwogfQogCkBAIC0xMjI3LDExICsxMjI4
LDExIEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZERhdGEoY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjCiAgICAgICAgIGxhdW5jaFByb2Nlc3MoeyB9
KTsKIAogICAgIGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2Fk
RGF0YU5hdmlnYXRpb24obWFrZVVuaXF1ZTxBUEk6OlN1YnN0aXR1dGVEYXRhPihkYXRhLnZlY3Rv
cigpLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhKSk7Ci0gICAgbG9hZERh
dGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBk
YXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6Ok5vLCBXVEY6Om51bGxvcHQsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kpOworICAgIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywg
YmFzZVVSTCwgdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIFdURjo6
bnVsbG9wdCwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgcmV0dXJuIG5hdmln
YXRpb247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZp
Z2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJ
OjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNp
dGVQb2xpY2llcywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25T
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQsIEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwg
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
T3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMsIFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJsb2FkRGF0YVdpdGhOYXZpZ2F0aW9u
Iik7CiAKQEAgLTEyNTQsNyArMTI1NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdp
dGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIHByb2Nlc3Mt
PmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwotICAgIHByb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwgbV93ZWJQ
YWdlSUQpOworICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxv
YWRQYXJhbWV0ZXJzKSwgd2ViUGFnZUlEKTsKICAgICBwcm9jZXNzLT5yZXNwb25zaXZlbmVzc1Rp
bWVyKCkuc3RhcnQoKTsKIH0KIApAQCAtMjk1OSw3ICsyOTYwLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWcKICAgICBpZiAoIWRpZFN1c3BlbmRQcmV2aW91c1BhZ2UpCiAgICAgICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2UoKSwgbV93ZWJQYWdlSUQpOwogCi0g
ICAgc3dhcFRvV2ViUHJvY2VzcyhtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLCBtX3Byb3Zp
c2lvbmFsUGFnZS0+dGFrZURyYXdpbmdBcmVhKCksIG1fcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJh
bWUoKSk7CisgICAgc3dhcFRvV2ViUHJvY2VzcyhtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2Vzcygp
LCBtX3Byb3Zpc2lvbmFsUGFnZS0+d2ViUGFnZUlEKCksIG1fcHJvdmlzaW9uYWxQYWdlLT50YWtl
RHJhd2luZ0FyZWEoKSwgbV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpKTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIGF1dG8gYWNjZXNzaWJpbGl0eVRva2VuID0gbV9wcm92aXNpb25h
bFBhZ2UtPnRha2VBY2Nlc3NpYmlsaXR5VG9rZW4oKTsKQEAgLTI5OTksNyArMzAwMCw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgaWYgKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50
SXRlbSgpICYmIChuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBMb2NrQmFja0Zv
cndhcmRMaXN0OjpZZXMgfHwgbmF2aWdhdGlvbi5sb2NrSGlzdG9yeSgpID09IExvY2tIaXN0b3J5
OjpZZXMpKSB7CiAgICAgICAgIC8vIElmIFdlYkNvcmUgaXMgc3VwcG9zZWQgdG8gbG9jayB0aGUg
aGlzdG9yeSBmb3IgdGhpcyBsb2FkLCB0aGVuIHRoZSBuZXcgcHJvY2VzcyBuZWVkcyB0byBrbm93
IGFib3V0IHRoZSBjdXJyZW50IGhpc3RvcnkgaXRlbSBzbyBpdCBjYW4gdXBkYXRlCiAgICAgICAg
IC8vIGl0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lLgotICAgICAgICBuZXdQcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRDdXJyZW50SGlzdG9yeUl0ZW1Gb3JSZWF0dGFj
aChtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbVN0YXRlKCkpLCBtX3dlYlBh
Z2VJRCk7CisgICAgICAgIG5ld1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEN1
cnJlbnRIaXN0b3J5SXRlbUZvclJlYXR0YWNoKG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRl
bSgpLT5pdGVtU3RhdGUoKSksIG1fcHJvdmlzaW9uYWxQYWdlLT53ZWJQYWdlSUQoKSk7CiAgICAg
fQogCiAgICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBvZiByZXNwb25kaW5nIHdpdGggdGhl
IGxhc3QgcG9saWN5IGRlbGVnYXRlLCBldGMKQEAgLTQ2MjIsMjMgKzQ2MjMsMjMgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2Vi
RnJhbWVQb2xpY3lMaXN0ZW4KICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAotICAgIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBm
cmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAorICAgIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewotICAg
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLAorICAgIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRl
bnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKICAg
ICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFs
UmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUo
cmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLAotICAgIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5m
b0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKKyAgICBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRf
dCBsaXN0ZW5lcklEKQogewogICAgIGF1dG8qIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJh
bWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhwcm9jZXNzLCBmcmFtZSk7CiAKLSAgICBhdXRvIHNl
bmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2Vz
cyA9IHByb2Nlc3MuY29weVJlZigpXSAoYXV0by4uLiBhcmdzKSB7Ci0gICAgICAgIHByb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlE
LCBsaXN0ZW5lcklELCBhcmdzLi4uKSwgbV93ZWJQYWdlSUQpOworICAgIGF1dG8gc2VuZGVyID0g
UG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbd2ViUGFnZUlELCBmcmFt
ZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gcHJvY2Vzcy5jb3B5UmVmKCldIChhdXRvLi4uIGFy
Z3MpIHsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2
ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIGFyZ3MuLi4pLCB3ZWJQYWdlSUQp
OwogICAgIH0pOwogCiAgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihwcm9jZXNz
LmNvcHlSZWYoKSwgKmZyYW1lLCBXVEZNb3ZlKGZyYW1lU2VjdXJpdHlPcmlnaW4pLCBuYXZpZ2F0
aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZNb3ZlKGZyYW1lSW5mb0Rh
dGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwKQEAgLTQ2NDYsNyArNDY0Nyw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgV2ViRnJhbWVQcm94
eSYgZnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LAorICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9w
dGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJiBzZW5kZXIp
CiB7CiAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gLSBPcmlnaW5hbCBVUkwgJXMsIGN1cnJlbnQgdGFyZ2V0IFVSTCAlcyIsIG9y
aWdpbmFsUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByZXF1ZXN0LnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtNDg2MCw3ICs0ODYxLDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwg
Y29uc3QgVVJMJiBwYWcKICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNN
YWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJh
bWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwK
ICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKIHsKQEAgLTQ4NzgsNyArNDg3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwKIH0KIAog
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAotICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0
aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKIHsKQEAgLTQ5MzUsMTAgKzQ5MzYsMTAgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9j
ZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwg
bmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9h
ZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOworICAgIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCBy
ZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1
c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKQEAgLTQ5NTEsMTQgKzQ5NTIs
MTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBNRVNTQUdFX0NIRUNLX1VSTChwcm9j
ZXNzLCByZXNwb25zZS51cmwoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZp
Z2F0aW9uID0gbmF2aWdhdGlvbklEID8gbV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2
aWdhdGlvbklEKSA6IG51bGxwdHI7Ci0gICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUt
PnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RG
TW92ZShuYXZpZ2F0aW9uKSwKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0
VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlv
biA9IFdURk1vdmUobmF2aWdhdGlvbiksCiAgICAgICAgIHByb2Nlc3MgPSBwcm9jZXNzLmNvcHlS
ZWYoKV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nKSBtdXRh
YmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUgQVBJOjpXZWJzaXRlUG9saWNpZXMq
IGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNl
V2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8pOwog
ICAgICAgICBBU1NFUlRfVU5VU0VEKHNhZmVCcm93c2luZ1dhcm5pbmcsICFzYWZlQnJvd3NpbmdX
YXJuaW5nKTsKIAotICAgICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpj
cmVhdGUoaWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKV0g
KGF1dG8uLi4gYXJncykgewotICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIGFyZ3Mu
Li4pLCBtX3dlYlBhZ2VJRCk7CisgICAgICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25T
ZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbd2ViUGFnZUlELCBmcmFtZUlELCBsaXN0ZW5lcklE
LCBwcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKV0gKGF1dG8uLi4gYXJncykgeworICAgICAgICAg
ICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lz
aW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIGFyZ3MuLi4pLCB3ZWJQYWdlSUQpOwogICAgICAgICB9
KTsKICAgICAgICAgCiAgICAgICAgIHJlY2VpdmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9u
LCBuYXZpZ2F0aW9uLmdldCgpLCBXVEY6Om51bGxvcHQsIFdURk1vdmUoc2VuZGVyKSk7CkBAIC01
MTA1LDcgKzUxMDYsNyBAQCBzdGF0aWMgdm9pZCB0cnlTT0F1dGhvcml6YXRpb24oUmVmPEFQSTo6
TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uLCBXZQogI2VuZGlmCiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmIG9yaWdp
bmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcyYmIHdpbmRv
d0ZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEm
IG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdpbmRvd0Zl
YXR1cmVzJiYgd2luZG93RmVhdHVyZXMsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQogewogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3Ms
IG1fcHJvY2Vzcy0+d2ViRnJhbWUoKm9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKSk7
CkBAIC03MTc3LDYgKzcxNzgsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQ
cm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogICAgIHBhcmFt
ZXRlcnMuYWN0aXZpdHlTdGF0ZSA9IG1fYWN0aXZpdHlTdGF0ZTsKICAgICBwYXJhbWV0ZXJzLmRy
YXdpbmdBcmVhVHlwZSA9IGRyYXdpbmdBcmVhLnR5cGUoKTsKICAgICBwYXJhbWV0ZXJzLmRyYXdp
bmdBcmVhSWRlbnRpZmllciA9IGRyYXdpbmdBcmVhLmlkZW50aWZpZXIoKTsKKyAgICBwYXJhbWV0
ZXJzLndlYlBhZ2VQcm94eUlkZW50aWZpZXIgPSBtX2lkZW50aWZpZXI7CiAgICAgcGFyYW1ldGVy
cy5zdG9yZSA9IHByZWZlcmVuY2VzU3RvcmUoKTsKICAgICBwYXJhbWV0ZXJzLnBhZ2VHcm91cERh
dGEgPSBtX3BhZ2VHcm91cC0+ZGF0YSgpOwogICAgIHBhcmFtZXRlcnMuaXNFZGl0YWJsZSA9IG1f
aXNFZGl0YWJsZTsKQEAgLTg2OTcsMTUgKzg2OTksMTUgQEAgV2ViVVJMU2NoZW1lSGFuZGxlciog
V2ViUGFnZVByb3h5Ojp1cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNr
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7Ci0gICAgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIFdURk1vdmUocGFyYW1ldGVycykpOworICAgIHN0YXJ0VVJM
U2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgV1RGTW92
ZShwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRh
c2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBVUkxTY2hlbWVUYXNrUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVU
YXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7CiAgICAg
YXV0byBpdGVyYXRvciA9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZmluZChwYXJh
bWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBNRVNTQUdFX0NIRUNLKHByb2Nlc3MsIGl0
ZXJhdG9yICE9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZW5kKCkpOwogCi0gICAg
aXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIHByb2Nlc3MsIHBhcmFtZXRlcnMudGFz
a0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVycy5yZXF1ZXN0KSwgbnVsbHB0cik7CisgICAg
aXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgcGFy
YW1ldGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBudWxs
cHRyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BVUkxTY2hlbWVUYXNrKHVpbnQ2NF90
IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllcikKQEAgLTg3MjEsNyAr
ODcyMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNr
KFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1lCiAgICAgYXV0byBpdGVyYXRvciA9IG1f
dXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZmluZChwYXJhbWV0ZXJzLmhhbmRsZXJJZGVu
dGlmaWVyKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgaXRlcmF0b3IgIT0gbV91cmxT
Y2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CiAKLSAgICBpdGVyYXRvci0+dmFsdWUt
PnN0YXJ0VGFzaygqdGhpcywgbV9wcm9jZXNzLCBwYXJhbWV0ZXJzLnRhc2tJZGVudGlmaWVyLCBX
VEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIFdURk1vdmUocmVwbHkpKTsKKyAgICBpdGVyYXRv
ci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgbV9wcm9jZXNzLCBtX3dlYlBhZ2VJRCwgcGFyYW1l
dGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBXVEZNb3Zl
KHJlcGx5KSk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzMzY3NjUzNmEzZi4uNDU5NTA2
NDY5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNTEyLDE3
ICsxNTEyLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmlu
ZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAgIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAotICAg
ICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1l
SW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLAorICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwKICAgICAgICAgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklE
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJik7Ci0gICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBsb2FkRGF0YVdp
dGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlv
biYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3Qq
IHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyk7Ci0gICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9u
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCk7Cisg
ICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOworICAg
IHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNv
ZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNv
cmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFs
bG93KTsKKyAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVs
bG9wdCk7CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7CiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKLSAg
ICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2lu
YWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdl
YlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5
bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIGRpZFJl
cXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CkBAIC0xNjUwLDEzICsx
NjUwLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRf
dCBuYXZpZ2F0aW9uSUQpOwogCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAotICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCisgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwg
T3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAg
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qg
VXNlckRhdGEmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAotICAg
ICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgcmVxdWVzdEJvZHksCisgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1
aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAotICAgICAg
ICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
JiYgcmVxdWVzdEJvZHksCisgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6
RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CkBAIC0xNjc4
LDcgKzE2NzgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOwogCiAgICAgLy8gVUkgY2xpZW50Ci0gICAgdm9pZCBjcmVhdGVOZXdQYWdlKGNvbnN0
IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpXaW5kb3dG
ZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBjcmVhdGVOZXdQYWdl
KGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6Oldp
bmRvd0ZlYXR1cmVzJiYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNob3dQYWdl
KCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsK
ICAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsK
QEAgLTE3MzYsNyArMTczNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDYW5TaG9ydENpcmN1
aXRIb3Jpem9udGFsV2hlZWxFdmVudHMoYm9vbCBjYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hl
ZWxFdmVudHMpIHsgbV9jYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMgPSBjYW5T
aG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHM7IH0KIAogICAgIHZvaWQgbGF1bmNoUHJv
Y2Vzcyhjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwotICAgIHZvaWQgc3dhcFRv
V2ViUHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4mJiwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKTsKKyAgICB2
b2lkIHN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiYmLCBSZWZQdHI8
V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpOwogICAgIHZvaWQgZGlkRmFpbFRvU3VzcGVuZEFm
dGVyUHJvY2Vzc1N3YXAoKTsKICAgICB2b2lkIGRpZFN1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCA2MWRjMWJjNTAyZC4uOTNkMzQxNDJmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKIAog
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIFVJIG1lc3NhZ2VzCi0gICAgQ3JlYXRl
TmV3UGFnZShzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZv
RGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OldpbmRv
d0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9u
RGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9ub3VzCisgICAgQ3JlYXRlTmV3UGFnZShz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0
aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpXaW5kb3dG
ZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRh
dGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gbmV3UGFnZUlELCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM+IG5ld1BhZ2VQYXJhbWV0ZXJzKSBTeW5jaHJvbm91cwogICAgIFNob3dQYWdlKCkKICAgICBD
bG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikKICAgICBSdW5KYXZhU2NyaXB0
QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+
ICgpIFN5bmNocm9ub3VzCkBAIC0xMDQsOCArMTA0LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKIAogICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9u
QWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZv
RGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJl
Y3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJ
RCkKLSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRl
bnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24s
IHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQs
IE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKSBT
eW5jaHJvbm91cworICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3Qg
V2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8
V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5G
cmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25E
YXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJl
Y3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJD
b3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQs
IFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQ
b2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykgU3luY2hyb25vdXMKICAgICBEZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0
IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIFVuYWJsZVRvSW1wbGVt
ZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2NGIzMWY3NTkyMi4uYjA2
YmVkYzVmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cApAQCAtMzU2LDE0ICszNTYsMTQgQEAgV2ViUGFnZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6Ondl
YlBhZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQpCiAgICAgcmV0dXJuIGdsb2JhbFBh
Z2VNYXAoKS5nZXQocGFnZUlEKTsKIH0KIAotV2ViUGFnZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6
OndlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQorLy8gRklYTUU6IElk
ZWFsbHksIHdlJ2QgZ2V0IHJpZCBvZiBhbGwgdGhlIGNhbGxlcnMgYW5kIGRyb3AgdGhpcyBmdW5j
dGlvbi4KK1dlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdl
SWRlbnRpZmllcihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCiB7Ci0gICAgLy8g
RklYTUU6IERvIGJldHRlci4KICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBnbG9iYWxQYWdlTWFwKCku
dmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHBhZ2UtPndlYlBhZ2VJRCgpID09IHdlYlBhZ2VJRCkK
ICAgICAgICAgICAgIHJldHVybiBwYWdlOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBudWxs
cHRyOwogfQogCkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGUKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBZGQgdW5oYW5kbGVkIG1lc3Nh
Z2UgbG9nZ2luZy4KKyAgICBMT0dfRVJST1IoIlVuaGFuZGxlZCBXZWJQcm9jZXNzUHJveHkgSVBD
IG1lc3NhZ2UgJXM6OiVzIChkZXN0aW5hdGlvbjogJSIgUFJJdTY0ICIpIiwgZGVjb2Rlci5tZXNz
YWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUo
KS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQogCiB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpAQCAtMTEyMSw3ICsxMTIxLDcgQEAgUmVmUHRyPEFQSTo6
T2JqZWN0PiBXZWJQcm9jZXNzUHJveHk6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMoQVBJOjpP
YmplY3QqIG9iamUKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6UGFnZUhh
bmRsZToKICAgICAgICAgICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8QVBJOjpQYWdlSGFuZGxl
Jj4ob2JqZWN0KS5pc0F1dG9jb252ZXJ0aW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBt
X3dlYlByb2Nlc3NQcm94eS53ZWJQYWdlKHN0YXRpY19jYXN0PEFQSTo6UGFnZUhhbmRsZSY+KG9i
amVjdCkucGFnZUlEKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBtX3dlYlByb2Nlc3NQcm94
eS53ZWJQYWdlKHN0YXRpY19jYXN0PEFQSTo6UGFnZUhhbmRsZSY+KG9iamVjdCkucGFnZVByb3h5
SUQoKSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmpl
Y3Q6OlR5cGU6Ok9iakNPYmplY3RHcmFwaDoKQEAgLTExNjQsNyArMTE2NCw3IEBAIFJlZlB0cjxB
UEk6Ok9iamVjdD4gV2ViUHJvY2Vzc1Byb3h5Ojp0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKEFQ
STo6T2JqZWN0KiBvYmplCiAgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6RnJhbWVIYW5kbGU6
OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNvbnN0IFdlYkZyYW1lUHJveHkmPihv
YmplY3QpLmZyYW1lSUQoKSk7CiAKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6
OlBhZ2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0
b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViUGFnZVByb3h5Jj4ob2JqZWN0KS53ZWJQ
YWdlSUQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRl
QXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViUGFnZVByb3h5Jj4ob2JqZWN0KS5p
ZGVudGlmaWVyKCksIHN0YXRpY19jYXN0PGNvbnN0IFdlYlBhZ2VQcm94eSY+KG9iamVjdCkud2Vi
UGFnZUlEKCkpOwogCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpQYWdlR3Jv
dXA6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6UGFnZUdyb3VwSGFuZGxlOjpjcmVhdGUo
V2ViUGFnZUdyb3VwRGF0YShzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlR3JvdXAmPihvYmplY3Qp
LmRhdGEoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRl
eCA0N2EyNDNkOTcwYS4uOGVkZjUzMDQwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCkBAIC0xMzMsNyArMTMzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IFdlYlByb2Nlc3NQcm94eSogcHJvY2Vzc0ZvcklkZW50aWZpZXIoV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIpOwogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIHdlYlBhZ2UoV2ViUGFnZVByb3h5
SWRlbnRpZmllcik7Ci0gICAgc3RhdGljIFdlYlBhZ2VQcm94eSogd2ViUGFnZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogd2ViUGFnZUZyb21Db3Jl
UGFnZUlkZW50aWZpZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIFJlZjxXZWJQYWdl
UHJveHk+IGNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0
aW9uPiYmKTsKIAogICAgIGVudW0gY2xhc3MgQmVnaW5zVXNpbmdEYXRhU3RvcmUgOiBib29sIHsg
Tm8sIFllcyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2No
ZW1lSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5k
bGVyLmNwcAppbmRleCA1YTZjYzk1ZDBmOC4uOTBjMGI4MGUwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwCkBAIC00OCw5ICs0OCw5IEBA
IFdlYlVSTFNjaGVtZUhhbmRsZXI6On5XZWJVUkxTY2hlbWVIYW5kbGVyKCkKICAgICBBU1NFUlQo
bV90YXNrcy5pc0VtcHR5KCkpOwogfQogCi12b2lkIFdlYlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0
VGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWludDY0
X3QgdGFza0lkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29t
cGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViVVJMU2NoZW1lSGFu
ZGxlcjo6c3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9j
ZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZCh0YXNrSWRl
bnRpZmllciwgV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKCp0aGlzLCBwYWdlLCBwcm9jZXNzLCB0
YXNrSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJV
UkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHdlYlBhZ2VJRCwgdGFz
a0lkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KSk7CiAgICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIGF1dG8gcGFnZUVudHJ5
ID0gbV90YXNrc0J5UGFnZUlkZW50aWZpZXIuYWRkKHBhZ2UuaWRlbnRpZmllcigpLCBIYXNoU2V0
PHVpbnQ2NF90PigpKTsKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFdlYlVSTFNjaGVtZUhhbmRs
ZXI6OnRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYgdGFzaykKIHsKICAgICBhdXRvIHRh
a2VuVGFzayA9IG1fdGFza3MudGFrZSh0YXNrLmlkZW50aWZpZXIoKSk7CiAgICAgQVNTRVJUX1VO
VVNFRCh0YWtlblRhc2ssIHRha2VuVGFzay0+cHRyKCkgPT0gJnRhc2spOwotICAgIHJlbW92ZVRh
c2tGcm9tUGFnZU1hcCh0YXNrLnBhZ2VJRCgpLCB0YXNrLmlkZW50aWZpZXIoKSk7CisgICAgcmVt
b3ZlVGFza0Zyb21QYWdlTWFwKHRhc2sucGFnZVByb3h5SUQoKSwgdGFzay5pZGVudGlmaWVyKCkp
OwogCiAgICAgcGxhdGZvcm1UYXNrQ29tcGxldGVkKHRhc2spOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCmluZGV4IGQ1OGM3ZTU2NzMyLi4yMzQ5
MDZmNGM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRs
ZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKLSAgICB2b2lkIHN0YXJ0VGFzayhX
ZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7
CisgICAgdm9pZCBzdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lk
IHN0b3BUYXNrKFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKTsKICAgICB2
b2lkIHN0b3BBbGxUYXNrc0ZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5Kik7
CiAgICAgdm9pZCB0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggZDYxZjEzNjIyNjQuLjI3
YTNkYjU0ZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNr
LmNwcApAQCAtMzYsMTcgKzM2LDE3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1SZWY8V2ViVVJMU2NoZW1lVGFzaz4gV2ViVVJMU2NoZW1lVGFzazo6
Y3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5j
Q29tcGxldGlvbkhhbmRsZXIpCitSZWY8V2ViVVJMU2NoZW1lVGFzaz4gV2ViVVJMU2NoZW1lVGFz
azo6Y3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIHVp
bnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3lu
Y0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJVUkxTY2hlbWVUYXNrKGhhbmRsZXIsIHBhZ2UsIHByb2Nl
c3MsIHJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShzeW5jQ29t
cGxldGlvbkhhbmRsZXIpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2NoZW1l
VGFzayhoYW5kbGVyLCBwYWdlLCBwcm9jZXNzLCB3ZWJQYWdlSUQsIHJlc291cmNlSWRlbnRpZmll
ciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShzeW5jQ29tcGxldGlvbkhhbmRsZXIpKSk7CiB9
CiAKLVdlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxl
ciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
U3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKK1dlYlVS
TFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYgaGFuZGxl
ciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVu
dGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRp
b25IYW5kbGVyKQogICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRsZXIpCi0gICAgLCBtX3Bh
Z2UoJnBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MobWFrZVJlZihwcm9jZXNzKSkKICAgICAsIG1faWRl
bnRpZmllcihyZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgLCBtX3BhZ2VJZGVudGlmaWVyKHBhZ2Uu
aWRlbnRpZmllcigpKQorICAgICwgbV9wYWdlUHJveHlJRChwYWdlLmlkZW50aWZpZXIoKSkKKyAg
ICAsIG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHJlcXVl
c3QpKQogICAgICwgbV9zeW5jQ29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzeW5jQ29tcGxldGlv
bkhhbmRsZXIpKQogewpAQCAtODIsNyArODIsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRp
ZFBlcmZvcm1SZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9ucwog
ICAgICAgICBtX3JlcXVlc3QgPSByZXF1ZXN0OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbiht
X3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSwg
cmVxdWVzdCksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRpcmVjdGlvbihtX3VybFNj
aGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSwgcmVxdWVz
dCksIG1fd2ViUGFnZUlEKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQpA
QCAtMTA3LDcgKzEwNyw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSAtPiBFCiAgICAgaWYgKGlzU3lu
YygpKQogICAgICAgICBtX3N5bmNSZXNwb25zZSA9IHJlc3BvbnNlOwogCi0gICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNl
KG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNl
KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxl
ci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlKSwgbV93ZWJQYWdlSUQpOwog
ICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBAIC0xMzQsNyArMTM0LDcgQEAg
YXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYm
IGJ1ZmZlcikgLT4gRXhjZXB0aW9uVHkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5v
bmU7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxT
Y2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCks
IG1faWRlbnRpZmllciwgeyBidWZmZXIgfSksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVE
YXRhKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHsgYnVm
ZmVyIH0pLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlvblR5cGU6Ok5vbmU7CiB9
CiAKQEAgLTE2NCw3ICsxNjQsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRl
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiAgICAgICAgIG1f
c3luY0RhdGEgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+
aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7
CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlk
Q29tcGxldGUobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwg
ZXJyb3IpLCBtX3dlYlBhZ2VJRCk7CiAgICAgbV91cmxTY2hlbWVIYW5kbGVyLT50YXNrQ29tcGxl
dGVkKCp0aGlzKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwpAQCAtMTczLDkg
KzE3Myw5IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkQ29tcGxldGUoY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpIC0+IEV4Y2VwdGlvblR5cGUKIHZvaWQgV2ViVVJMU2NoZW1lVGFzazo6
cGFnZURlc3Ryb3llZCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBB
U1NFUlQobV9wYWdlKTsKIAotICAgIG1fcGFnZSA9IG51bGxwdHI7CisgICAgbV9wYWdlUHJveHlJ
RCA9IHsgfTsKKyAgICBtX3dlYlBhZ2VJRCA9IHsgfTsKICAgICBtX3Byb2Nlc3MgPSBudWxscHRy
OwogICAgIG1fc3RvcHBlZCA9IHRydWU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVUYXNrLmgKaW5kZXggMzliMmZlYjQzYmYuLmJmZDkyMzM5MWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCkBAIC01NCwxMyArNTQsMTMg
QEAgdXNpbmcgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2UKIGNsYXNzIFdlYlVSTFNjaGVtZVRhc2sgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViVVJMU2NoZW1lVGFzaz4sIHB1YmxpYyBJbnN0YW5j
ZUNvdW50ZWQ8V2ViVVJMU2NoZW1lVGFzaz4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdl
YlVSTFNjaGVtZVRhc2spOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViVVJMU2NoZW1lVGFz
az4gY3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImLCBXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNz
UHJveHkmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
U3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYlVSTFNjaGVt
ZVRhc2s+IGNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgV2ViUHJv
Y2Vzc1Byb3h5JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYp
OwogCiAgICAgfldlYlVSTFNjaGVtZVRhc2soKTsKIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXIo
KSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcGFnZUlkZW50aWZpZXI7IH0KLQorICAgIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7IHJldHVybiBtX3BhZ2VQcm94eUlEOyB9CisgICAgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlEKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1
cm4gbV93ZWJQYWdlSUQ7IH0KICAgICBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MoKSB7IEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3Byb2Nlc3MuZ2V0KCk7IH0KIAogI2lmIFBM
QVRGT1JNKENPQ09BKQpAQCAtODcsMTUgKzg3LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhZ2VE
ZXN0cm95ZWQoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVt
ZUhhbmRsZXImLCBXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmKTsKKyAgICBXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVtZUhhbmRsZXImLCBXZWJQ
YWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWlu
dDY0X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29t
cGxldGlvbkhhbmRsZXImJik7CiAKICAgICBib29sIGlzU3luYygpIGNvbnN0IHsgcmV0dXJuICEh
bV9zeW5jQ29tcGxldGlvbkhhbmRsZXI7IH0KIAogICAgIFJlZjxXZWJVUkxTY2hlbWVIYW5kbGVy
PiBtX3VybFNjaGVtZUhhbmRsZXI7Ci0gICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgUmVm
UHRyPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIHVpbnQ2NF90IG1faWRlbnRpZmll
cjsKLSAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZUlkZW50aWZpZXI7CisgICAgV2Vi
UGFnZVByb3h5SWRlbnRpZmllciBtX3BhZ2VQcm94eUlEOworICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIG1fd2ViUGFnZUlEOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVl
c3Q7CiAgICAgbXV0YWJsZSBMb2NrIG1fcmVxdWVzdExvY2s7CiAgICAgYm9vbCBtX3N0b3BwZWQg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCmluZGV4IDQyMDIzOTZh
YmFmLi4yYjcyYzIxMTU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQpAQCAt
NDA0LDEyICs0MDQsMTIgQEAgLSAoV0tCdW5kbGVQYWdlUmVmKV9idW5kbGVQYWdlUmVmCiAKIC0g
KFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICopaGFuZGxlCiB7Ci0gICAgcmV0dXJuIFtbW1dLQnJv
d3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlSUQ6X3BhZ2UtPnBhZ2VJRCgp
XSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFs
bG9jXSBfaW5pdFdpdGhQYWdlOipfcGFnZV0gYXV0b3JlbGVhc2VdOwogfQogCiArIChpbnN0YW5j
ZXR5cGUpbG9va1VwQnJvd3NpbmdDb250ZXh0RnJvbUhhbmRsZTooV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UoaGFuZGxlLnBhZ2VJRCkpOworICAgIHJldHVybiB3cmFwcGVy
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShoYW5kbGUud2ViUGFnZUlE
KSk7CiB9CiAKIC0gKF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICopX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCmluZGV4IDJiMjg4NjRhOWFhLi5j
NDRhZGIyNmEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250
ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKQEAgLTI1Miw3
ICsyNTIsNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
OkRpZFBvc3RNZXNzYWdlKHdlYlBhZ2UtPnBhZ2VJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBtX2lk
ZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSh2YWx1ZS0+ZGF0YSgpKSksIG1fY29udHJvbGxl
ci0+aWRlbnRpZmllcigpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk6OkRpZFBvc3RNZXNzYWdlKHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIo
KSwgd2ViRnJhbWUtPmluZm8oKSwgbV9pZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UodmFs
dWUtPmRhdGEoKSkpLCBtX2NvbnRyb2xsZXItPmlkZW50aWZpZXIoKSk7CiAgICAgfQogCiAgICAg
UmVmUHRyPFdlYlVzZXJDb250ZW50Q29udHJvbGxlcj4gbV9jb250cm9sbGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAppbmRleCAwZTZiOTQzZDE1OS4uYjgwMzM1MWQ4OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCkBAIC0yOTIsNyArMjkyLDcgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXMKIAog
ICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBuZXdQYWdlSUQ7CiAgICAgT3B0aW9uYWw8V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gcGFyYW1ldGVyczsKLSAgICBpZiAoIXdlYlByb2Nlc3Mu
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+aW5mbygpLCB3ZWJGcmFtZS0+cGFnZSgpLT5wYWdl
SUQoKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRp
b25BY3Rpb25EYXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVw
bHkobmV3UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIXdl
YlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+aW5mbygpLCB3ZWJGcmFtZS0+cGFn
ZSgpLT53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCks
IHdpbmRvd0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFn
ZS5wYWdlSUQoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKCFuZXdQYWdl
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA3MDk4MGVlNWI1Yi4uNDhk
ZTM1ZmQwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtOTA2LDkgKzkw
NiwxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdAogICAgIGlmIChyZXF1ZXN0ZXIuZnJhbWVJ
RCgpICYmIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKHJlcXVlc3Rlci5mcmFtZUlE
KCkpKQogICAgICAgICBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCA9IHJlcXVlc3Rl
ci5mcmFtZUlEKCk7CiAKLSAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQ7Ci0gICAgaWYgKHJlcXVlc3Rlci5wYWdlSUQoKSAmJiBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJQYWdlKHJlcXVlc3Rlci5wYWdlSUQoKSkpCi0gICAgICAgIG9yaWdpbmF0aW5nUGFn
ZUlEID0gcmVxdWVzdGVyLnBhZ2VJRCgpOworICAgIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50
aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlEOworICAgIGlmIChyZXF1ZXN0ZXIucGFnZUlEKCkpIHsK
KyAgICAgICAgaWYgKGF1dG8qIHdlYlBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQ
YWdlKHJlcXVlc3Rlci5wYWdlSUQoKSkpCisgICAgICAgICAgICBvcmlnaW5hdGluZ1BhZ2VJRCA9
IHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKTsKKyAgICB9CiAKICAgICBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YTsKICAgICBuYXZpZ2F0aW9uQWN0aW9u
RGF0YS5uYXZpZ2F0aW9uVHlwZSA9IGFjdGlvbi0+bmF2aWdhdGlvblR5cGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dl
YlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAppbmRleCA5MGZkZjBlNmU5MC4uYjE5OWExMDMwOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJl
bW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAg
V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5ICpyZW1vdGUKICAgICA6IFJlbW90ZU9iamVjdFJlZ2lzdHJ5KHJlbW90
ZU9iamVjdFJlZ2lzdHJ5KQogICAgICwgbV9wYWdlKHBhZ2UpCiB7Ci0gICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdp
c3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCksICp0aGlzKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJl
bW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS53ZWJQYWdl
UHJveHlJZGVudGlmaWVyKCksICp0aGlzKTsKICAgICBwYWdlLnNldFJlbW90ZU9iamVjdFJlZ2lz
dHJ5KHRoaXMpOwogfQogCkBAIC00Nyw3ICs0Nyw3IEBAIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5
Ojp+V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogdm9pZCBXZWJSZW1vdGVPYmplY3RSZWdpc3Ry
eTo6Y2xvc2UoKQogewogICAgIGlmIChtX3BhZ2UucmVtb3RlT2JqZWN0UmVnaXN0cnkoKSA9PSB0
aGlzKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpKTsKICAgICAg
ICAgbV9wYWdlLnNldFJlbW90ZU9iamVjdFJlZ2lzdHJ5KG51bGxwdHIpOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFi
bGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcAppbmRleCBiYjEzMDZlMjk5Zi4uOWYzY2JiZWU4Mzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5r
VGFibGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBW
aXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6YWRkVmlzaXRlZExpbmsoUGFnZSYgcGFnZSwgU2hh
cmVkU3RyaW5nSGFzaCBsaW4KICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OlZpc2l0ZWRMaW5rU3RvcmU6OkFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdl
KHdlYlBhZ2UtPnBhZ2VJRCgpLCBsaW5rSGFzaCksIG1faWRlbnRpZmllcik7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6VmlzaXRlZExpbmtTdG9yZTo6QWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2Uod2ViUGFnZS0+
d2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBsaW5rSGFzaCksIG1faWRlbnRpZmllcik7CiB9CiAK
IHZvaWQgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OnNldFZpc2l0ZWRMaW5rVGFibGUoY29u
c3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcAppbmRleCA1NDdhNmNiMjU4ZS4u
NmI2NjlhN2IwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgV2ViSW5zcGVjdG9yVUk6Oldl
Ykluc3BlY3RvclVJKFdlYlBhZ2UmIHBhZ2UpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJJbnNwZWN0
b3JVSTo6ZXN0YWJsaXNoQ29ubmVjdGlvbihQYWdlSWRlbnRpZmllciBpbnNwZWN0ZWRQYWdlSWRl
bnRpZmllciwgYm9vbCB1bmRlclRlc3QsIHVuc2lnbmVkIGluc3BlY3Rpb25MZXZlbCkKK3ZvaWQg
V2ViSW5zcGVjdG9yVUk6OmVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmll
ciBpbnNwZWN0ZWRQYWdlSWRlbnRpZmllciwgYm9vbCB1bmRlclRlc3QsIHVuc2lnbmVkIGluc3Bl
Y3Rpb25MZXZlbCkKIHsKICAgICBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyID0gaW5zcGVjdGVk
UGFnZUlkZW50aWZpZXI7CiAgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIucmVzZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJ
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oCmlu
ZGV4IGExZmI0ZDhmMDA4Li4zODA4MGRjMjM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oCkBAIC0yNyw5ICsyNyw5IEBACiAKICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0luc3BlY3RvckZyb250ZW5kSG9zdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZp
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsK
QEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSkgb3ZlcnJpZGUgeyBjbG9zZVdpbmRvdygpOyB9CiAKICAgICAvLyBDYWxsZWQgYnkg
V2ViSW5zcGVjdG9yVUkgbWVzc2FnZXMKLSAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24oV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgaW5zcGVjdGVkUGFnZUlkZW50aWZpZXIsIGJvb2wgdW5kZXJU
ZXN0LCB1bnNpZ25lZCBpbnNwZWN0aW9uTGV2ZWwpOworICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVj
dGlvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyIGluc3BlY3RlZFBhZ2VJZGVudGlmaWVyLCBib29s
IHVuZGVyVGVzdCwgdW5zaWduZWQgaW5zcGVjdGlvbkxldmVsKTsKICAgICB2b2lkIHVwZGF0ZUNv
bm5lY3Rpb24oKTsKIAogICAgIHZvaWQgc2hvd0NvbnNvbGUoKTsKQEAgLTEzNCw3ICsxMzQsNyBA
QCBwcml2YXRlOgogICAgIC8vIGNvcmVQYWdlKCksIHNpbmNlIHdlIG1heSBuZWVkIGl0IGFmdGVy
IHRoZSBmcm9udGVuZCdzIHBhZ2UgaGFzIHN0YXJ0ZWQgZGVzdHJ1Y3Rpb24uCiAgICAgV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlciogbV9mcm9udGVuZENvbnRyb2xsZXIgeyBudWxscHRyIH07
CiAKLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVy
OworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9pbnNwZWN0ZWRQYWdlSWRlbnRpZmllcjsK
ICAgICBib29sIG1fdW5kZXJUZXN0IHsgZmFsc2UgfTsKICAgICBib29sIG1fZG9ja2luZ1VuYXZh
aWxhYmxlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNWaXNpYmxlIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
VUkubWVzc2FnZXMuaW4KaW5kZXggMzc1YTM4ZWNmMWEuLmE2M2EzOTk2ZjhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JV
SS5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdl
cyAtPiBXZWJJbnNwZWN0b3JVSSB7Ci0gICAgRXN0YWJsaXNoQ29ubmVjdGlvbihXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBpbnNwZWN0ZWRQYWdlSWRlbnRpZmllciwgYm9vbCB1bmRlclRlc3QsIHVu
c2lnbmVkIGluc3BlY3Rpb25MZXZlbCkKKyAgICBFc3RhYmxpc2hDb25uZWN0aW9uKFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllciBpbnNwZWN0ZWRQYWdlSWRlbnRpZmllciwgYm9vbCB1bmRl
clRlc3QsIHVuc2lnbmVkIGluc3BlY3Rpb25MZXZlbCkKICAgICBVcGRhdGVDb25uZWN0aW9uKCkK
IAogICAgIEF0dGFjaGVkQm90dG9tKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggZmM0YmI1MDM2YWIuLmE0OGQ3ZmY3ODY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDI2LDYgKzQyNiw3
IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNpZiBVU0UoV1BFX1JFTkRFUkVSKQogICAgICwg
bV9ob3N0RmlsZURlc2NyaXB0b3IoV1RGTW92ZShwYXJhbWV0ZXJzLmhvc3RGaWxlRGVzY3JpcHRv
cikpCiAjZW5kaWYKKyAgICAsIG1fd2ViUGFnZVByb3h5SWRlbnRpZmllcihwYXJhbWV0ZXJzLndl
YlBhZ2VQcm94eUlkZW50aWZpZXIpCiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFU0laSU5HKQogICAg
ICwgbV9zaHJpbmtUb0ZpdENvbnRlbnRUaW1lcigqdGhpcywgJldlYlBhZ2U6OnNocmlua1RvRml0
Q29udGVudFRpbWVyRmlyZWQsIDBfcykKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDc4MTM3MGRhNGEzLi43YjYwN2RjM2ExYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjkyLDcgKzI5Miw3
IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9wYWdlLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KLSAgICBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmll
ciBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtYWtl
T2JqZWN0SWRlbnRpZmllcjxTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllclR5cGU+KG1fcGFnZUlE
LnRvVUludDY0KCkpOyB9CisgICAgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgc2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbWFrZU9iamVjdElkZW50
aWZpZXI8U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXJUeXBlPihtX3dlYlBhZ2VQcm94eUlkZW50
aWZpZXIudG9VSW50NjQoKSk7IH0KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2UtPnNlc3Npb25JRCgpOyB9CiAgICAgYm9vbCB1c2VzRXBoZW1lcmFs
U2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKTsg
fQogCkBAIC0xMjAzLDYgKzEyMDMsOCBAQCBwdWJsaWM6CiAgICAgV2ViUmVtb3RlT2JqZWN0UmVn
aXN0cnkqIHJlbW90ZU9iamVjdFJlZ2lzdHJ5KCk7CiAjZW5kaWYKIAorICAgIFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
UGFnZVByb3h5SWRlbnRpZmllcjsgfQorCiAgICAgdm9pZCB1cGRhdGVJbnRyaW5zaWNDb250ZW50
U2l6ZUlmTmVlZGVkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2b2lkIHNjaGVkdWxl
RnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7CiAgICAgYm9vbCBpc1Rocm90dGxlYWJsZSgpIGNvbnN0
OwpAQCAtMTk1Nyw2ICsxOTU5LDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBXZWFrUHRyPFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5PiBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5
OwogI2VuZGlmCisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlkZW50
aWZpZXI7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50SW50cmluc2ljQ29udGVudFNp
emU7CiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFU0laSU5HKQogICAgIFdlYkNvcmU6OkRlZmVycmFi
bGVPbmVTaG90VGltZXIgbV9zaHJpbmtUb0ZpdENvbnRlbnRUaW1lcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3NzI2NzJjNDliMC4uOWEwZjYxZjBiOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTc0Niw3ICs3NDYsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZQogICAgIH0KICNlbmRpZgogCi0gICAgTE9HX0VSUk9S
KCJVbmhhbmRsZWQgd2ViIHByb2Nlc3MgbWVzc2FnZSAnJXM6JXMnIiwgZGVjb2Rlci5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50
b1N0cmluZygpLmRhdGEoKSk7CisgICAgLy8gRklYTUU6IEFkZCB1bmhhbmRsZWQgbWVzc2FnZSBs
b2dnaW5nLgogfQogCiBXZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpIGNvbnN0CkBAIC0xNzExLDcgKzE3MTEsNyBAQCBSZWZQdHI8QVBJOjpPYmpl
Y3Q+IFdlYlByb2Nlc3M6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMoQVBJOjpPYmplY3QqIG9i
amVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gbV93ZWJQcm9jZXNzLndlYlBhZ2VHcm91cChz
dGF0aWNfY2FzdDxjb25zdCBBUEk6OlBhZ2VHcm91cEhhbmRsZSY+KG9iamVjdCkud2ViUGFnZUdy
b3VwRGF0YSgpKTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6UGFnZUhh
bmRsZToKLSAgICAgICAgICAgICAgICByZXR1cm4gbV93ZWJQcm9jZXNzLndlYlBhZ2Uoc3RhdGlj
X2Nhc3Q8Y29uc3QgQVBJOjpQYWdlSGFuZGxlJj4ob2JqZWN0KS5wYWdlSUQoKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIG1fd2ViUHJvY2Vzcy53ZWJQYWdlKHN0YXRpY19jYXN0PGNvbnN0IEFQ
STo6UGFnZUhhbmRsZSY+KG9iamVjdCkud2ViUGFnZUlEKCkpOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpPYmpDT2JqZWN0R3JhcGg6
CkBAIC0xNzU0LDcgKzE3NTQsNyBAQCBSZWZQdHI8QVBJOjpPYmplY3Q+IFdlYlByb2Nlc3M6OnRy
YW5zZm9ybU9iamVjdHNUb0hhbmRsZXMoQVBJOjpPYmplY3QqIG9iamVjdCkKICAgICAgICAgICAg
ICAgICByZXR1cm4gQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGlj
X2Nhc3Q8Y29uc3QgV2ViRnJhbWUmPihvYmplY3QpLmZyYW1lSUQoKSk7CiAKICAgICAgICAgICAg
IGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2U6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29u
c3QgV2ViUGFnZSY+KG9iamVjdCkucGFnZUlEKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBB
UEk6OlBhZ2VIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNvbnN0IFdl
YlBhZ2UmPihvYmplY3QpLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgc3RhdGljX2Nhc3Q8Y29u
c3QgV2ViUGFnZSY+KG9iamVjdCkucGFnZUlEKCkpOwogCiAgICAgICAgICAgICBjYXNlIEFQSTo6
T2JqZWN0OjpUeXBlOjpCdW5kbGVQYWdlR3JvdXA6IHsKICAgICAgICAgICAgICAgICBXZWJQYWdl
R3JvdXBEYXRhIHBhZ2VHcm91cERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5kZXggNWJk
ODAyNzI1NTkuLmRhY2QwZjdmZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBAIC00Miwy
OCArNDIsMzAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLVJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0
ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmllciwgdW5zaWduZWQg
cXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8U3RvcmFnZU5hbWVz
cGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZShJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdW5zaWdu
ZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6OlNlc3Npb24s
IGlkZW50aWZpZXIsIG51bGxwdHIsIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklEKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6OlNlc3Np
b24sIGlkZW50aWZpZXIsIHBhZ2VJRCwgbnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9uSUQp
KTsKIH0KIAogUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6
Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmllciwgdW5zaWdu
ZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6OkxvY2FsLCBp
ZGVudGlmaWVyLCBudWxscHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpMb2NhbCwg
aWRlbnRpZmllciwgV1RGOjpudWxsb3B0LCBudWxscHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25J
RCkpOwogfQogCiBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBs
OjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIHVpbnQ2NF90IHF1
b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpUcmFuc2llbnRMb2Nh
bCwgaWRlbnRpZmllciwgJnRvcExldmVsT3JpZ2luLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VU
eXBlOjpUcmFuc2llbnRMb2NhbCwgaWRlbnRpZmllciwgV1RGOjpudWxsb3B0LCAmdG9wTGV2ZWxP
cmlnaW4sIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklEKSk7CiB9CiAKLVN0b3JhZ2VOYW1lc3BhY2VJ
bXBsOjpTdG9yYWdlTmFtZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSBzdG9yYWdlVHlw
ZSwgSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
KiB0b3BMZXZlbE9yaWdpbiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCitTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFjZUltcGwoV2Vi
Q29yZTo6U3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIElkZW50aWZpZXIgc3RvcmFnZU5hbWVzcGFj
ZUlELCBjb25zdCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4mIHBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRl
cywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zdG9yYWdlVHlwZShzdG9yYWdl
VHlwZSkKICAgICAsIG1fc3RvcmFnZU5hbWVzcGFjZUlEKHN0b3JhZ2VOYW1lc3BhY2VJRCkKKyAg
ICAsIG1fc2Vzc2lvblBhZ2VJRChwYWdlSWRlbnRpZmllcikKICAgICAsIG1fdG9wTGV2ZWxPcmln
aW4odG9wTGV2ZWxPcmlnaW4pCiAgICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiAg
ICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CisgICAgQVNTRVJUKHN0b3JhZ2VUeXBlID09
IFN0b3JhZ2VUeXBlOjpTZXNzaW9uIHx8ICFtX3Nlc3Npb25QYWdlSUQpOwogfQogCiBTdG9yYWdl
TmFtZXNwYWNlSW1wbDo6flN0b3JhZ2VOYW1lc3BhY2VJbXBsKCkKQEAgLTk4LDcgKzEwMCw3IEBA
IFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29weShQYWdlKiBu
ZXdQYWdlKQogICAgIGlmIChhdXRvIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAg
ICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKG5ld1BhZ2Ut
PnNlc3Npb25JRCgpLCBtX3N0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdl
KG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSksIDApOwogCi0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwobV9zdG9yYWdlVHlw
ZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZUlkZW50aWZpZXIoKSwgbV90b3BMZXZlbE9yaWdpbi5nZXQoKSwgbV9xdW90YUluQnl0ZXMsIG5l
d1BhZ2UtPnNlc3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5h
bWVzcGFjZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2Up
LT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgV2ViUGFnZTo6ZnJvbUNvcmVQ
YWdlKG5ld1BhZ2UpLT5wYWdlSUQoKSwgbV90b3BMZXZlbE9yaWdpbi5nZXQoKSwgbV9xdW90YUlu
Qnl0ZXMsIG5ld1BhZ2UtPnNlc3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OnNldFNlc3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpA
QCAtMTExLDcgKzExMyw3IEBAIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNldFNlc3Npb25J
REZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogUGFnZUlkZW50aWZpZXIgU3Rv
cmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlUGFnZUlEKCkgY29uc3QKIHsKICAgICBB
U1NFUlQobV9zdG9yYWdlVHlwZSA9PSBTdG9yYWdlVHlwZTo6U2Vzc2lvbik7Ci0gICAgcmV0dXJu
IG1ha2VPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT4obV9zdG9yYWdlTmFtZXNw
YWNlSUQudG9VSW50NjQoKSk7CisgICAgcmV0dXJuICptX3Nlc3Npb25QYWdlSUQ7CiB9CiAKIHVp
bnQ2NF90IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpwYWdlR3JvdXBJRCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuaAppbmRleCAzYTBhYjE5ZDRjMi4uNDUxNzk3NDJiNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbCA6IHB1
YmxpYyBXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlIHsKIHB1YmxpYzoKICAgICB1c2luZyBJZGVu
dGlmaWVyID0gU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXI7CiAKLSAgICBzdGF0aWMgUmVmPFN0
b3JhZ2VOYW1lc3BhY2VJbXBsPiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJZGVudGlm
aWVyLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICBzdGF0aWMg
UmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVz
LCBQQUw6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4g
Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIsIHVuc2lnbmVkIHF1b3RhSW5C
eXRlcywgUEFMOjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyBSZWY8U3RvcmFnZU5hbWVzcGFjZUlt
cGw+IGNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIHVpbnQ2NF90IHF1b3RhSW5CeXRl
cywgUEFMOjpTZXNzaW9uSUQpOwogCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFNlc3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQpIG92ZXJyaWRlOwogCiBwcml2
YXRlOgotICAgIFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVk
IHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOworICAgIFN0b3JhZ2VOYW1lc3BhY2VJbXBs
KFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBJZGVudGlmaWVyLCBjb25zdCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4mIHBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQp
OwogCiAgICAgUmVmPFdlYkNvcmU6OlN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBvdmVycmlkZTsKIApAQCAtNzIsNiArNzIsNyBAQCBw
cml2YXRlOgogCiAgICAgY29uc3QgV2ViQ29yZTo6U3RvcmFnZVR5cGUgbV9zdG9yYWdlVHlwZTsK
ICAgICBjb25zdCBJZGVudGlmaWVyIG1fc3RvcmFnZU5hbWVzcGFjZUlEOworICAgIE9wdGlvbmFs
PFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBtX3Nlc3Npb25QYWdlSUQ7CiAKICAgICAvLyBPbmx5
IHVzZWQgZm9yIHRyYW5zaWVudCBsb2NhbCBzdG9yYWdlIG5hbWVzcGFjZXMuCiAgICAgY29uc3Qg
UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsT3JpZ2luOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dl
YlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKaW5kZXggMzAwY2NmMDc4M2EuLjQ4MTgxYjQ5
MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKQEAgLTY2LDcgKzY2
LDggQEAgV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjp+V2ViU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyKCkKIAogUmVmPFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IFdlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSYgcGFnZSwg
dW5zaWduZWQgcXVvdGEpCiB7Ci0gICAgcmV0dXJuIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVh
dGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShXZWJQYWdlOjpmcm9tQ29yZVBhZ2UoJnBhZ2UpLT5z
ZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgcXVvdGEsIHBhZ2Uuc2Vzc2lvbklE
KCkpOworICAgIGF1dG8qIHdlYlBhZ2UgPSBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UoJnBhZ2UpOwor
ICAgIHJldHVybiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2Uod2ViUGFnZS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIHdlYlBh
Z2UtPnBhZ2VJRCgpLCBxdW90YSwgcGFnZS5zZXNzaW9uSUQoKSk7CiB9CiAKIFJlZjxXZWJDb3Jl
OjpTdG9yYWdlTmFtZXNwYWNlPiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZUxv
Y2FsU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KaW5kZXggOWM2NGNhZjA1ZTguLjNkODBiZTI5OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTY3Niw3ICs2NzYs
NyBAQCBSZWZQdHI8T2JqQ09iamVjdEdyYXBoPiBXZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVz
VG9PYmplY3RzKE9iakNPYmplY3RHcmFwaCYgbwogICAgICAgICBSZXRhaW5QdHI8aWQ+IHRyYW5z
Zm9ybU9iamVjdChpZCBvYmplY3QpIGNvbnN0IG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAg
ICAgIGlmIChhdXRvKiBoYW5kbGUgPSBkeW5hbWljX29iamNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZT4ob2JqZWN0KSkgewotICAgICAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJQYWdlID0g
bV93ZWJQcm9jZXNzLndlYlBhZ2UoaGFuZGxlLl9wYWdlSUQpKQorICAgICAgICAgICAgICAgIGlm
IChhdXRvKiB3ZWJQYWdlID0gbV93ZWJQcm9jZXNzLndlYlBhZ2UoaGFuZGxlLl93ZWJQYWdlSUQp
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcigqd2ViUGFnZSk7CiAKICAgICAg
ICAgICAgICAgICByZXR1cm4gW05TTnVsbCBudWxsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377629</attachid>
            <date>2019-08-29 14:52:29 -0700</date>
            <delta_ts>2019-08-29 15:24:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201225-20190829145228.patch</filename>
            <type>text/plain</type>
            <size>115773</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVlMjViZDY1NGFjYzhmYjk0
YWQ2YWYyMDgyMTA3YTMyMjc3Mzk0YTMuLjBhMGIwNjQxOTZkNGY3MjczMTZjMzMzOWVmMDU5NjBk
Yjg2NWM2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY4IEBACisyMDE5LTA4LTI5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1BTT05dIEJ1bXAgdGhlIFdlYlBh
Z2UncyBpZGVudGlmaWVyIGV2ZXJ5IHRpbWUgd2UgcHJvY2Vzcy1zd2FwCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyMjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFdmVyeSB0aW1lIHdlIGNyZWF0ZSBh
IG5ldyBXZWJQYWdlIG9iamVjdCBpbiBhIHByb3Zpc2lvbmFsIHByb2Nlc3MsIHdlIG5vdyBhc3Np
Z24gaXQgYSBuZXcKKyAgICAgICAgaWRlbnRpZmllciwgaW5zdGVhZCBvZiB1c2luZyB0aGUgaWRl
bnRpZmllciBvZiB0aGUgV2ViUGFnZSBpbiB0aGUgY29tbWl0dGVkIHByb2Nlc3MuIFRoaXMKKyAg
ICAgICAgd2lsbCBhZGRyZXNzIGlzc3VlcyB3aXRoIElQQyB3aGVuIG5hdmlnYXRpbmcgYmFjayBh
bmQgZm9ydGggYmV0d2VlbiBwcm9jZXNzZXMgc2luY2Ugd2Ugd2lsbAorICAgICAgICBubyBsb25n
ZXIgYmUgY29uZnVzZWQgYXMgdG8gd2hpY2ggV2ViUGFnZSB0aGUgSVBDIGlzIGNvbWluZyBmcm9t
LiBBbHNvLCB0aGlzIHdpbGwgYWxsb3cKKyAgICAgICAgc3VzcGVuZGVkIFdlYlBhZ2VzIHRvIGtl
ZXAgbGl2aW5nIGluIHRoZSBwcm9jZXNzLCBldmVuIGlmIHdlIHVzZSB0aGUgcHJvY2VzcyBmb3Ig
YSBuZXcgbG9hZAorICAgICAgICAod2lsbCBiZSBkb25lIGluIGEgZm9sbG93LXVwIHBhdGNoKSBz
aW5jZSB3ZSB3aWxsIG5vIGxvbmdlciBoYXZlIGFuIGlkZW50aWZpZXIgY29uZmxpY3QuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSVBhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyk6CisgICAgICAg
IChBUEk6OlBhZ2VIYW5kbGU6OlBhZ2VIYW5kbGUpOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxl
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oOgorICAgICAgICAoQVBJOjpQYWdlSGFu
ZGxlOjpwYWdlUHJveHlJRCBjb25zdCk6CisgICAgICAgIChBUEk6OlBhZ2VIYW5kbGU6OndlYlBh
Z2VJRCBjb25zdCk6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZS5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgX2luaXRXaXRo
UGFnZVByb3h5Ol0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdp
dGhQYWdlOl0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQ
YWdlUHJveHlJRDphbmRXZWJQYWdlSUQ6XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlIGhhc2hdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgaXNFcXVh
bDpdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgZW5jb2RlV2l0aENvZGVy
Ol0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBpbml0V2l0aENvZGVyOl0p
OgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRl
cm5hbC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAq
IFNoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tOgorICAgICAgICAoV2ViS2l0OjpPYmpDT2Jq
ZWN0R3JhcGg6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok9iakNPYmplY3RHcmFwaDo6ZGVj
b2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGhhbmRs
ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaGFuZGxlXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwOgorICAgICAg
ICAod2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJW
aWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdp
c3RyeSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDb21t
aXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgICogVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQ
YWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlz
aW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyk6CisgICAgICAgIChX
ZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2sp
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6d2ViUGFn
ZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
OmRpZFBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpdGVk
TGlua1N0b3JlOjphZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVmlzaXRlZExpbmtT
dG9yZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlRnJvbnRlbmRQ
YWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Om9wZW5Mb2NhbEluc3Bl
Y3RvckZyb250ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNsb3Nl
RnJvbnRlbmRQYWdlQW5kV2luZG93KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNy
ZWF0ZU5ld1BhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVU
YXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2tT
aGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VS
TFNjaGVtZVRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxT
Y2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6
c3RhcnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0Nv
bXBsZXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2s6OldlYlVSTFNjaGVtZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVU
YXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRh
c2s6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFn
ZURlc3Ryb3llZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFnZVByb3h5SUQgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjp3ZWJQYWdlSUQgY29uc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciBoYW5kbGVdKToKKyAgICAgICAgKCtbV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIGxvb2tVcEJyb3dzaW5nQ29udGV4dEZy
b21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVXaW5kb3cpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6V2ViUmVtb3RlT2JqZWN0UmVn
aXN0cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6Y2xvc2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjphZGRW
aXNpdGVkTGluayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJ
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmVzdGFibGlzaENvbm5lY3Rp
b24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6d2ViUGFnZVByb3h5SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVz
VG9PYmplY3RzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtT2JqZWN0
c1RvSGFuZGxlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OmNy
ZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5h
bWVzcGFjZUltcGw6OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1l
c3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5h
bWVzcGFjZUltcGwpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29w
eSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFn
ZVBhZ2VJRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKToKKwogMjAxOS0wOC0yOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBmZXRjaCBldmVu
dCBkaXNwYXRjaGluZyBpZiBubyBmZXRjaCBldmVudCBoYW5kbGVyIGlzIGFkZGVkIGF0IHNjcmlw
dCBldmFsdWF0aW9uIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IDc2ZmVjYzI4MDY0Mjk5ZDA1OWEyMjI5OGUzMjNmNTYxN2Y2ZGMyZDEuLjZhMjNhYzQ4
ZWUyMTEyZjY4YWI1OGIxZWFhZTVkZmIyYmFiZmNlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIyLDYgKzIyMiw3IEBAIGRlZiBmb3J3YXJkX2RlY2xh
cmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VB
cmVhSW1wbElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZp
ZXInLAorICAgICAgICAnV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyJywKICAgICBdKQog
CiAgICAgZm9yIHBhcmFtZXRlciBpbiByZWNlaXZlci5pdGVycGFyYW1ldGVycygpOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwCmluZGV4IGU2MDVhNDU5NDZmZmM3
ZjFkMDdjYjg0ZThmNWNiOTg3YmJmMzY3ZGQuLjFlMWYwNDY1MmFjZmY1ODNlNTZlY2IzOWY5NWRj
NDMzZmRlN2U3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElQYWdl
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5j
cHAKQEAgLTMxLDE4ICszMSwxOSBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAotUmVmPFBhZ2VIYW5k
bGU+IFBhZ2VIYW5kbGU6OmNyZWF0ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCitS
ZWY8UGFnZUhhbmRsZT4gUGFnZUhhbmRsZTo6Y3JlYXRlKFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZUlELCBmYWxzZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZVByb3h5SUQsIHdlYlBhZ2VJ
RCwgZmFsc2UpKTsKIH0KIAotUmVmPFBhZ2VIYW5kbGU+IFBhZ2VIYW5kbGU6OmNyZWF0ZUF1dG9j
b252ZXJ0aW5nKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK1JlZjxQYWdlSGFuZGxl
PiBQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJLaXQ6OldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgcGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWdlSGFuZGxlKHBhZ2VJRCwgdHJ1ZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZVByb3h5SUQsIHdlYlBhZ2VJ
RCwgdHJ1ZSkpOwogfQogCi1QYWdlSGFuZGxlOjpQYWdlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKQotICAgIDogbV9wYWdlSUQocGFn
ZUlEKQorUGFnZUhhbmRsZTo6UGFnZUhhbmRsZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgcGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgYm9vbCBp
c0F1dG9jb252ZXJ0aW5nKQorICAgIDogbV9wYWdlUHJveHlJRChwYWdlUHJveHlJRCkKKyAgICAs
IG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1faXNBdXRvY29udmVydGluZyhpc0F1dG9j
b252ZXJ0aW5nKQogewogfQpAQCAtNTMsMjIgKzU0LDI4IEBAIFBhZ2VIYW5kbGU6On5QYWdlSGFu
ZGxlKCkKIAogdm9pZCBQYWdlSGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXIgPDwgbV9wYWdlSUQ7CisgICAgZW5jb2RlciA8PCBtX3BhZ2VQ
cm94eUlEOworICAgIGVuY29kZXIgPDwgbV93ZWJQYWdlSUQ7CiAgICAgZW5jb2RlciA8PCBtX2lz
QXV0b2NvbnZlcnRpbmc7CiB9CiAKIGJvb2wgUGFnZUhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkKIHsKLSAgICBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwotICAgIGRlY29kZXIgPj4gcGFnZUlEOwotICAg
IGlmICghcGFnZUlEKQorICAgIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmll
cj4gcGFnZVByb3h5SUQ7CisgICAgZGVjb2RlciA+PiBwYWdlUHJveHlJRDsKKyAgICBpZiAoIXBh
Z2VQcm94eUlEKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gd2ViUGFnZUlEOworICAgIGRlY29kZXIgPj4gd2ViUGFnZUlEOwor
ICAgIGlmICghd2ViUGFnZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGlz
QXV0b2NvbnZlcnRpbmc7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc0F1dG9jb252ZXJ0aW5n
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmVzdWx0ID0gaXNBdXRvY29udmVydGlu
ZyA/IGNyZWF0ZUF1dG9jb252ZXJ0aW5nKCpwYWdlSUQpIDogY3JlYXRlKCpwYWdlSUQpOworICAg
IHJlc3VsdCA9IGlzQXV0b2NvbnZlcnRpbmcgPyBjcmVhdGVBdXRvY29udmVydGluZygqcGFnZVBy
b3h5SUQsICp3ZWJQYWdlSUQpIDogY3JlYXRlKCpwYWdlUHJveHlJRCwgKndlYlBhZ2VJRCk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9BUElQYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRs
ZS5oCmluZGV4IDZhMWNmYjY5ODI1OWJmNDhkNGQ4ZWQ1OGVjYjg3YjBmMjI2NzQzMjEuLjE4OGQx
NzUzOTI3MzNjNDY1ZWUwMjdiMzM5NzFlNjJiMzAxYmUyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0FQSVBhZ2VIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElQYWdl
SGFuZGxlX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgogCkBAIC0zOSwyMCArNDAsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAK
IGNsYXNzIFBhZ2VIYW5kbGUgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VI
YW5kbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBhZ2VIYW5kbGU+IGNyZWF0ZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7Ci0gICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVB
dXRvY29udmVydGluZyhXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQ
YWdlSGFuZGxlPiBjcmVhdGUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRv
Y29udmVydGluZyhXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5QYWdlSGFuZGxlKCk7CiAKLSAgICBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQorICAgIFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZVByb3h5SUQ7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6Ci0gICAgUGFnZUhhbmRsZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBQYWdlSGFu
ZGxlKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIGJvb2wgaXNBdXRvY29udmVydGluZyk7CiAKLSAgICBjb25zdCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBtX3BhZ2VJRDsKKyAgICBjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgbV9wYWdlUHJveHlJRDsKKyAgICBjb25zdCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3dl
YlBhZ2VJRDsKICAgICBjb25zdCBib29sIG1faXNBdXRvY29udmVydGluZzsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZS5tbQppbmRleCA3ZTk3ZjE3NmMwOGE1ODViMWI5YzI0MzBmZTk2MTNiZDNhMzkxNjlj
Li5jNmIwZWJkOWY2ZTFhZGRkODRjY2I0NjdiNTU5M2RmOTFhMTdlYTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlLm1tCkBAIC0yNiwyMSArMjYsMzYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
V0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1wb3J0ICJXZWJQYWdlLmgi
CisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+
CisKIEBpbXBsZW1lbnRhdGlvbiBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZQogCi0tIChpZClfaW5p
dFdpdGhQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXBhZ2VJRAorLSAoaWQpX2luaXRX
aXRoUGFnZVByb3h5OihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZQoreworICAgIHJldHVybiBb
c2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdlLmlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6
cGFnZS53ZWJQYWdlSUQoKV07Cit9CisKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KFdlYktpdDo6V2Vi
UGFnZSYpcGFnZQoreworICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdl
LndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS5wYWdlSUQoKV07Cit9
CisKKy0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50
aWZpZXIpcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRlbnRpZmllcil3
ZWJQYWdlSUQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKIAotICAgIF9wYWdlSUQgPSBwYWdlSUQ7CisgICAgX3BhZ2VQcm94eUlEID0gcGFn
ZVByb3h5SUQ7CisgICAgX3dlYlBhZ2VJRCA9IHdlYlBhZ2VJRDsKIAogICAgIHJldHVybiBzZWxm
OwogfQogCiAtIChOU1VJbnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX3BhZ2VJRC50b1VJbnQ2
NCgpOworICAgIHJldHVybiBXVEY6OnBhaXJJbnRIYXNoKF9wYWdlUHJveHlJRC50b1VJbnQ2NCgp
LCBfd2ViUGFnZUlELnRvVUludDY0KCkpOwogfQogCiAtIChCT09MKWlzRXF1YWw6KGlkKW9iamVj
dApAQCAtNDgsMTIgKzYzLDEzIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0CiAgICAgaWYg
KCFbb2JqZWN0IGlzS2luZE9mQ2xhc3M6W1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGNsYXNzXV0p
CiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIHJldHVybiBfcGFnZUlEID09IHN0YXRpY19jYXN0
PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCktPl9wYWdlSUQ7CisgICAgcmV0dXJu
IF9wYWdlUHJveHlJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqPihv
YmplY3QpLT5fcGFnZVByb3h5SUQgJiYgX3dlYlBhZ2VJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dz
aW5nQ29udGV4dEhhbmRsZSAqPihvYmplY3QpLT5fd2ViUGFnZUlEOwogfQogCiAtICh2b2lkKWVu
Y29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVuY29kZUludDY0
Ol9wYWdlSUQudG9VSW50NjQoKSBmb3JLZXk6QCJwYWdlSUQiXTsKKyAgICBbY29kZXIgZW5jb2Rl
SW50NjQ6X3BhZ2VQcm94eUlELnRvVUludDY0KCkgZm9yS2V5OkAicGFnZVByb3h5SUQiXTsKKyAg
ICBbY29kZXIgZW5jb2RlSW50NjQ6X3dlYlBhZ2VJRC50b1VJbnQ2NCgpIGZvcktleTpAIndlYlBh
Z2VJRCJdOwogfQogCiAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKQEAgLTYx
LDcgKzc3LDggQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFn
ZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihb
Y29kZXIgZGVjb2RlSW50NjRGb3JLZXk6QCJwYWdlSUQiXSk7CisgICAgX3BhZ2VQcm94eUlEID0g
bWFrZU9iamVjdElkZW50aWZpZXI8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyVHlwZT4o
W2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAicGFnZVByb3h5SUQiXSk7CisgICAgX3dlYlBhZ2VJ
RCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyVHlwZT4oW2Nv
ZGVyIGRlY29kZUludDY0Rm9yS2V5OkAid2ViUGFnZUlEIl0pOwogCiAgICAgcmV0dXJuIHNlbGY7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaAppbmRleCA0M2U0MWUyNGNkMzYzMzZi
NTQ3ODRiMDAzY2YxN2JiYzE2ZjY3YTY2Li44ZGVkNTlmYjU1NTE4ZDI4OTNjNzcxYjYzZWE5YmVj
NDIwNjY1OWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKQEAgLTI0LDEyICsy
NCwyMCBAQAogICovCiAKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxlLmgiCisjaW1w
b3J0ICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VJZGVu
dGlmaWVyLmg+CiAKLUBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKCkKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZTsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KIAot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3BhZ2VJRCkgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlEOworQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEhhbmRs
ZSAoKQogCi0tIChpZClfaW5pdFdpdGhQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXBh
Z2VJRDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9wYWdlUHJveHlJ
RCkgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlEOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3dlYlBhZ2VJRCkgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlEOwogCistIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6
V2ViUGFnZVByb3h5JilwYWdlOworLSAoaWQpX2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdl
JilwYWdlOworLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5
SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRXZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKXdlYlBhZ2VJRDsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZWMzMjM5M2ZhNzZjMWJmMDI5ZDI2OTIzOGYz
MWUzNmNiNjRlMDJlZi4uNWNhOTU2ZWIyMDU3ODFlMGM0Mjk1Njg1YjM2YTU1YjQ2ZTc0M2VkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKQEAgLTM5LDYgKzM5LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc3RvcmU7
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRyYXdpbmdBcmVhVHlwZSk7CiAgICAgZW5jb2RlciA8
PCBkcmF3aW5nQXJlYUlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB3ZWJQYWdlUHJveHlJZGVu
dGlmaWVyOwogICAgIGVuY29kZXIgPDwgcGFnZUdyb3VwRGF0YTsKICAgICBlbmNvZGVyIDw8IGlz
RWRpdGFibGU7CiAgICAgZW5jb2RlciA8PCB1bmRlcmxheUNvbG9yOwpAQCAtMTU3LDYgKzE1OCwx
MSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICghZHJhd2luZ0FyZWFJZGVudGlm
aWVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHBhcmFtZXRlcnMuZHJhd2lu
Z0FyZWFJZGVudGlmaWVyID0gKmRyYXdpbmdBcmVhSWRlbnRpZmllcjsKKyAgICBPcHRpb25hbDxX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiB3ZWJQYWdlUHJveHlJZGVudGlmaWVyOworICAgIGRlY29k
ZXIgPj4gd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKKyAgICBpZiAoIXdlYlBhZ2VQcm94eUlkZW50
aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcGFyYW1ldGVycy53ZWJQ
YWdlUHJveHlJZGVudGlmaWVyID0gV1RGTW92ZSgqd2ViUGFnZVByb3h5SWRlbnRpZmllcik7CiAg
ICAgT3B0aW9uYWw8V2ViUGFnZUdyb3VwRGF0YT4gcGFnZUdyb3VwRGF0YTsKICAgICBkZWNvZGVy
ID4+IHBhZ2VHcm91cERhdGE7CiAgICAgaWYgKCFwYWdlR3JvdXBEYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGUxOWQ5OTZh
MTYzYjU1MzAyMGFjNTEyNTI5ZmZmZGRmMDU1NzdhMjQuLjEwMTI0ZDBmYjBjNGJkZGExODc2ODll
MWNiODM2OGNkZGEwMDcxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCisjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNs
dWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTgwLDYgKzgxLDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmU7CiAgICAgRHJh
d2luZ0FyZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKICAgICBEcmF3aW5nQXJlYUlkZW50aWZpZXIg
ZHJhd2luZ0FyZWFJZGVudGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFn
ZVByb3h5SWRlbnRpZmllcjsKICAgICBXZWJQYWdlR3JvdXBEYXRhIHBhZ2VHcm91cERhdGE7CiAK
ICAgICBib29sIGlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvT2JqQ09iamVjdEdyYXBoLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL09iakNPYmpl
Y3RHcmFwaC5tbQppbmRleCBmZTY2ZGU2NTkyYWEwYWYyMzQ1ODgyZGIzZDQxYTEyY2EyYjliYzE2
Li4wZWFmMDZmNWNhNGJiZmM3NTc5NTczMjE1NjRkM2JkZmZiOTUwYzM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KQEAgLTE4Niw3ICsxODYsOCBAQCB2
b2lkIE9iakNPYmplY3RHcmFwaDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgaWQgb2Jq
ZWN0KQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgT2JqQ1R5cGU6OldLQnJvd3NpbmdDb250
ZXh0SGFuZGxlOgotICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PFdLQnJvd3NpbmdDb250
ZXh0SGFuZGxlICo+KG9iamVjdCkucGFnZUlEOworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCkucGFnZVByb3h5SUQ7CisgICAg
ICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKj4ob2Jq
ZWN0KS53ZWJQYWdlSUQ7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBPYmpDVHlwZTo6V0tU
eXBlUmVmV3JhcHBlcjoKQEAgLTI5OCwxMiArMjk5LDE2IEBAIGJvb2wgT2JqQ09iamVjdEdyYXBo
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8aWQ+JiByZXN1bHQpCiAg
ICAgfQogCiAgICAgY2FzZSBPYmpDVHlwZTo6V0tCcm93c2luZ0NvbnRleHRIYW5kbGU6IHsKLSAg
ICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKLSAgICAgICAg
ZGVjb2RlciA+PiBwYWdlSUQ7Ci0gICAgICAgIGlmICghcGFnZUlEKQorICAgICAgICBPcHRpb25h
bDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBwYWdlUHJveHlJRDsKKyAgICAgICAgZGVjb2RlciA+
PiBwYWdlUHJveHlJRDsKKyAgICAgICAgaWYgKCFwYWdlUHJveHlJRCkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHdl
YlBhZ2VJRDsKKyAgICAgICAgZGVjb2RlciA+PiB3ZWJQYWdlSUQ7CisgICAgICAgIGlmICghd2Vi
UGFnZUlEKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHJlc3VsdCA9IGFk
b3B0TlMoW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZUlEOipw
YWdlSURdKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJveHlJRDoqcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlE
Oip3ZWJQYWdlSURdKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlci5tbQppbmRleCAxMTAwMzNiYTZmYTRmN2MwNmYwZjUzNzJhMmRhNTUzODU3MDE0
MmEwLi43OWVkMjVlYjc5NDYyNTMxMDM0NTczNmEyZGNhODJjNzJiNTUxZTQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTcyMCw3ICs3MjAsNyBAQCAtIChOU1VJbnRlZ2Vy
KXBhZ2VDb3VudAogCiAtIChXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqKWhhbmRsZQogewotICAg
IHJldHVybiBbW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZUlE
Ol9wYWdlLT53ZWJQYWdlSUQoKV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBbW1tXS0Jyb3dz
aW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZVByb3h5OipfcGFnZV0gYXV0b3Jl
bGVhc2VdOwogfQogCiAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RS
ZWdpc3RyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggY2M3ZjZjOTYyNTg3NTg1MGNhNmFjMmMwODViNDc3ZjY2Y2M4ZjEyYS4uNzQzZmYy
YzZjZmQ3ODVmNTJhYWU2OGM4MmU5Yzc0N2U2NGUwZWMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04NzcsNyArODc3LDcgQEAgLSAo
dm9pZClkZWFsbG9jCiAgICAgW19jb250ZW50VmlldyBfd2ViVmlld0Rlc3Ryb3llZF07CiAKICAg
ICBpZiAoX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAgICAgICBfcGFnZS0+cHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RS
ZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+d2ViUGFnZUlEKCkpOworICAg
ICAgICBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBf
cGFnZS0+aWRlbnRpZmllcigpKTsKICNlbmRpZgogCiAgICAgX3BhZ2UtPmNsb3NlKCk7CkBAIC00
NzI1LDcgKzQ3MjUsNyBAQCAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmpl
Y3RSZWdpc3RyeQogI2Vsc2UKICAgICBpZiAoIV9yZW1vdGVPYmplY3RSZWdpc3RyeSkgewogICAg
ICAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0UmVn
aXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eToqX3BhZ2VdKTsKLSAgICAgICAgX3Bh
Z2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgX3BhZ2UtPndlYlBh
Z2VJRCgpLCBbX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7Cisg
ICAgICAgIF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIF9w
YWdlLT5pZGVudGlmaWVyKCksIFtfcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVn
aXN0cnldKTsKICAgICB9CiAKICAgICByZXR1cm4gX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LmdldCgp
OwpAQCAtNDczNCw3ICs0NzM0LDcgQEAgLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilfcmVt
b3RlT2JqZWN0UmVnaXN0cnkKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKilfaGFuZGxl
CiB7Ci0gICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdp
dGhQYWdlSUQ6X3BhZ2UtPndlYlBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIFtb
W1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJveHk6Kl9wYWdl
XSBhdXRvcmVsZWFzZV07CiB9CiAKIC0gKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKV9vYnNl
cnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IDU0
YTI0MDUyNGI5MGUzYmUwODRjYzU5ZDJjNTJhNjIwN2E2NTliNmEuLjRmMWU4YmIyODRmYzBjMmZh
MWRkMzdkNTk5Yjg0MmFkMTkyNzM5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC04Nyw3
ICs4Nyw3IEBAIFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RD
cmVhdGUodWludDY0X3QgcmVxdWVzdElELCBXZWJLaXRXCiAgICAgcmVxdWVzdC0+cHJpdi0+cmVx
dWVzdElEID0gcmVxdWVzdElEOwogCiAgICAgQVNTRVJUKHJlc291cmNlUmVxdWVzdC5pbml0aWF0
aW5nUGFnZUlEKCkpOwotICAgIHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlID0gV2ViUHJv
Y2Vzc1Byb3h5Ojp3ZWJQYWdlKCpyZXNvdXJjZVJlcXVlc3QuaW5pdGlhdGluZ1BhZ2VJRCgpKTsK
KyAgICByZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2Vi
UGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIoKnJlc291cmNlUmVxdWVzdC5pbml0aWF0aW5nUGFn
ZUlEKCkpOwogICAgIEFTU0VSVChyZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZSk7CiAKICAg
ICByZXR1cm4gcmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggYjFlYzg0NmI3YjQ2MDU0OGNlMGY4NmQ3
YTVkMTE3YTY3Njc4YzRmMS4uMWE4MjUzYWMwNDIyZDFlZWE0OTk4Mzc5YjU2Mjg0NmM1NWJjNzYx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1By
b3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Byb3h5Q29jb2EubW0KQEAgLTc2LDcgKzc2LDcgQEAgUmVmUHRyPE9iakNPYmplY3RHcmFwaD4g
V2ViUHJvY2Vzc1Byb3h5Ojp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKE9iakNPYmplY3RHcmEK
ICAgICAgICAgUmV0YWluUHRyPGlkPiB0cmFuc2Zvcm1PYmplY3QoaWQgb2JqZWN0KSBjb25zdCBv
dmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYXV0byogaGFuZGxlID0gZHluYW1p
Y19vYmpjX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGU+KG9iamVjdCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gbV93ZWJQcm9jZXNzUHJveHkud2ViUGFn
ZShoYW5kbGUucGFnZUlEKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJQYWdlUHJv
eHkgPSBtX3dlYlByb2Nlc3NQcm94eS53ZWJQYWdlKGhhbmRsZS5wYWdlUHJveHlJRCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgX2Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXJGb3JQYWdlUmVmOnRvQVBJKHdlYlBhZ2VQcm94eSldOwog
ICAgICAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggZjQwNDJm
ZTcwZGY2MTY2NGFmODljZjBhNDNlOTY5ZmU2MzU0NmI2Mi4uMzVhYzRkZjZlNWVkZDA3NDdhNzNk
YmU1YmNhYzNiNmE1OTMyMzJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KQEAgLTEzNjIsNyArMTM2Miw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3
SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXS1dlYlZpZXcgKm91dGVy
V2ViCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKIHsKICAgICBpZiAobV9yZW1vdGVPYmpl
Y3RSZWdpc3RyeSkgewotICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgICAgIG1fcGFnZS0+
cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpS
ZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPmlkZW50
aWZpZXIoKSk7CiAgICAgICAgIFttX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbnZhbGlkYXRlXTsK
ICAgICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG5pbDsKICAgICB9CkBAIC0zODIzLDcg
KzM4MjMsNyBAQCBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV2ViVmlld0ltcGw6OnJlbW90ZU9i
amVjdFJlZ2lzdHJ5KCkKIHsKICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKICAg
ICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSBhbGxvY10gX2luaXRXaXRoV2ViUGFnZVByb3h5Om1fcGFnZV0pOwotICAgICAgICBt
X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT53
ZWJQYWdlSUQoKSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnld
KTsKKyAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZS0+aWRlbnRpZmllcigpLCBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVP
YmplY3RSZWdpc3RyeV0pOwogICAgIH0KIAogICAgIHJldHVybiBtX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNjhjZGFkYjc2ODk4Y2EzOTc4NDc5OGYyMzk5
ODdkMzJkZmUzOTllOC4uNDUwOTIyNDIxMDBhMDg5YmU0YTY0MDNjOWM2ZDE3YmQzMzE1ZDIxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCkBAIC0zNDMsNyArMzQzLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2kKIAogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IG51bGxwdHI7CiAgICAgaWYgKHBhZ2VJRCkK
LSAgICAgICAgcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgICAg
ICBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihw
YWdlSUQpOwogCiAgICAgaWYgKHBhZ2UpIHsKICAgICAgICAgcGFnZS0+ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkoV1RGTW92ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkp
OwpAQCAtNDEyLDcgKzQxMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNo
TGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29uCiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdl
YkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiB7Ci0gICAgV2ViUGFnZVByb3h5KiBw
YWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5
KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihw
YWdlSUQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyB0aGlzIG51bGwtY2hlY2sgYmVjYXVzZSBieSB0
aGUgdGltZSB0aGUgZGVjaXNpb24gdG8gbG9nIGlzIG1hZGUsIHRoZSBwYWdlIG1heSBiZSBnb25l
LiBXZSBzaG91bGQgcmVmYWN0b3IgdG8gYXZvaWQgdGhpcywKICAgICAvLyBidXQgZm9yIG5vdyB3
ZSBzaW1wbHkgZHJvcCB0aGUgbWVzc2FnZSBpbiB0aGUgcmFyZSBjYXNlIHRoaXMgaGFwcGVucy4K
ICAgICBpZiAoIXBhZ2UpCkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFN0
cmkKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhS
ZXN1bHQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNz
UHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9j
ZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBhZ2VJRCk7CiAgICAgLy8g
RklYTUU6IFdlIGRvIHRoaXMgbnVsbC1jaGVjayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBkZWNp
c2lvbiB0byBsb2cgaXMgbWFkZSwgdGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZh
Y3RvciB0byBhdm9pZCB0aGlzLAogICAgIC8vIGJ1dCBmb3Igbm93IHdlIHNpbXBseSBkcm9wIHRo
ZSBtZXNzYWdlIGluIHRoZSByYXJlIGNhc2UgdGhpcyBoYXBwZW5zLgogICAgIGlmICghcGFnZSkK
QEAgLTQzNCw3ICs0MzQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdChQYWdlSWRlbnRpZmllciBwYWdlSUQsCiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpT
aG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdl
YlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsK
ICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyBudWxsLWNoZWNrIGJlY2F1c2UgYnkgdGhlIHRpbWUg
dGhlIGRlY2lzaW9uIHRvIGxvZyBpcyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUgZ29uZS4gV2Ugc2hv
dWxkIHJlZmFjdG9yIHRvIGF2b2lkIHRoaXMsCiAgICAgLy8gYnV0IGZvciBub3cgd2Ugc2ltcGx5
IGRyb3AgdGhlIG1lc3NhZ2UgaW4gdGhlIHJhcmUgY2FzZSB0aGlzIGhhcHBlbnMuCiAgICAgaWYg
KCFwYWdlKQpAQCAtNzc3LDcgKzc3Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFn
ZShwYWdlSUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2Vi
UGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47CkBAIC05NjAs
NyArOTYwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDb21taXRDcm9zc1NpdGVM
b2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXMKICAgICBpZiAoIWNhblNlbmRNZXNz
YWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlBy
b2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdl
YlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTI2MCw3ICsxMjYwLDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclVwbG9hZEFzc2VydGlvbigpCiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgYXV0
byogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZSh3ZWJQYWdlSUQpOworICAgIGF1dG8q
IHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHdl
YlBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gcmVwbHkoZmFsc2UpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAK
aW5kZXggMGMwMzQwNjkwNDEwNmUyNTdkNmYzYThlMmY4MGI3ZWVlMTkyMTM1ZS4uYTJhMDlkYzQ5
MjVkZjQyZTU0ODQ0NTBiZWY0Nzk3OGMwMzk3ZjllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtNTQsNyArNTQsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFs
UGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCiAgICAgOiBtX3BhZ2UocGFnZSkKLSAgICAs
IG1fd2ViUGFnZUlEKHBhZ2Uud2ViUGFnZUlEKCkpCisgICAgLCBtX3dlYlBhZ2VJRChzdXNwZW5k
ZWRQYWdlID8gc3VzcGVuZGVkUGFnZS0+d2ViUGFnZUlEKCkgOiBQYWdlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSkKICAgICAsIG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nlc3MpKQogICAgICwgbV9uYXZp
Z2F0aW9uSUQobmF2aWdhdGlvbklEKQogICAgICwgbV9pc1NlcnZlclJlZGlyZWN0KGlzU2VydmVy
UmVkaXJlY3QpCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
bG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGEKIHsK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImxvYWREYXRhOiBw
YWdlUHJveHlJRCA9ICUiIFBSSXU2NCAiIHdlYlBhZ2VJRCA9ICUiIFBSSXU2NCwgbV9wYWdlLmlk
ZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpKTsKIAotICAgIG1f
cGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG5h
dmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFdl
YkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwg
ZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAogdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9u
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3JlOjpTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9s
aWNpZXMpCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9h
ZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXMKICAgICBp
ZiAobmF2aWdhdGlvbi5mcm9tSXRlbSgpICYmIG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3YXJkTGlz
dCgpID09IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6OlllcykKICAgICAgICAgbmF2aWdh
dGlvbi5mcm9tSXRlbSgpLT5zZXRMYXN0UHJvY2Vzc0lkZW50aWZpZXIobV9wcm9jZXNzLT5jb3Jl
UHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAKLSAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdh
dGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVl
c3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7
CisgICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIFdURk1vdmUocmVxdWVzdCksIHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAogdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRp
b24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIE9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMjg3LDEzICsyODcsMTMg
QEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWUKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRh
dGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LAorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0Rh
dGEsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwKICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CiAgICAg
aWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3Jp
Z2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZy
YW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2
aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmln
aW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3Rl
bmVySUQpOwogfQogCkBAIC0zMDMsNyArMzAzLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnMK
ICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIs
IG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxv
YWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBtX3BhZ2UuZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZy
YW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVz
cG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3Rl
bmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKQEAg
LTMyNCw3ICszMjQsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcgogCiB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogewotICAgIG1fcGFnZS5zdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgbV9wYWdlLnN0YXJ0
VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgV1RG
TW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tG
b3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYg
aWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNr
Rm9yd2FyZEl0ZW1JZGUKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wg
aXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAotICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0
aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5oCmluZGV4IDViNGM5Y2YyZWRiNzJjNGM5MmNlNTFjYjJkYjIzYWZjNmVlZDc4
MmQuLjE3NTIxNTA0NzQ4YmZiNmYyMDYzY2UxNGNhNDVmZDFjYzcxODNlY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNjUsNiArNjUs
NyBAQCBwdWJsaWM6CiAgICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdl
UHJveHkmIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYkZy
YW1lUHJveHkqIG1haW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9
CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgp
OyB9CiAgICAgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
OyB9CkBAIC05Myw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCi0gICAg
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
CisgICAgICAgIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwK
ICAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7CkBAIC0xMDksNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2
b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiYpPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAotICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksCisgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5
JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9y
UXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggN2I5NWI2
ZWRlOGEzOWE3MDk2N2M0ZjMyNjc3ZTJmZjhlNzEyYjFmNi4uMWFjM2Q4ODE1MWI5Nzc0NTUxNzEy
YzkzYmE2ZDZmMjA5OGE1ZjcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3VzcGVuZGVkUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVu
ZGVkUGFnZVByb3h5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIH5TdXNwZW5kZWRQ
YWdlUHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZTsgfQorICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fd2ViUGFnZUlEOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyBy
ZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1h
aW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXggMTA3YmIyMjcwODZjM2NjNDAxMDBi
M2UyNzBkOTY3YTRiYjFhN2ZmYi4uZWFmYzQ1NzI5OTI4NTc3NjFmZmYyMTdlODU0NTYxOTM4ZmIw
YWYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtMzMy
LDkgKzMzMiw5IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFs
bFVzZXJNZXNzYWdlSGFuZGxlcnMoQVBJOjpVc2VyQ29udGVuCiAgICAgcmVtb3ZlVXNlckNvbnRl
bnRXb3JsZFVzZXMod29ybGQsIG51bWJlclJlbW92ZWQpOwogfQogCi12b2lkIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJ
bmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBkYXRhUmVmZXJlbmNlKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6
ZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHBhZ2VQcm94eUlELCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm9EYXRh
LCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGFSZWZlcmVuY2UpCiB7Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5
Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlKHBhZ2VQcm94eUlEKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKaW5kZXggZTY0NDRiMmY0
MThjMTQ1NTJhMTNkODhlZWM3Njc4YWU2NzJkMGFhOC4uNDY5ZDMwZTMxZWE5MTNiY2Y3MDQ1ZDhm
MDMxZTcxOGM1MGZiZDc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5o
CkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2
NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZv
aWQgZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCiAgICAgdm9pZCBhZGRVc2VyQ29udGVudFdvcmxkVXNl
KEFQSTo6VXNlckNvbnRlbnRXb3JsZCYpOwogICAgIHZvaWQgcmVtb3ZlVXNlckNvbnRlbnRXb3Js
ZFVzZXMoQVBJOjpVc2VyQ29udGVudFdvcmxkJiwgdW5zaWduZWQgbnVtYmVyT2ZVc2VzVG9SZW1v
dmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdl
cy5pbgppbmRleCAyNWE0ZTI5MTI3NGVlMDM2OWZkZDE2ZWUwMDVjMmM5NWY5ZmFmMjc1Li44ZDIw
MGExZTZlOWZiODllNWYwNGI1ZTU4NmU1NGU0NDlkYzFmOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNSArMjQsNSBA
QAogICovCiAKIG1lc3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5IHsKLURp
ZFBvc3RNZXNzYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RydWN0IFdlYktp
dDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklE
LCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkgV2FudHNDb25uZWN0aW9uCitEaWRQb3N0TWVz
c2FnZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQs
IElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlKSBXYW50c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5jcHAKaW5kZXggZDc5ZDdhZDg0NmM3
M2I5OWE4ZDQyYzZmZWE5MWE3OGY3ZDZiMjMzNC4uYmI2NTA5OTAzNDlmMGYyMzJiYzhkMzA3NTYw
MTMzZmQ3NmFhMjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRl
ZExpbmtTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtT
dG9yZS5jcHAKQEAgLTEwMCwxMCArMTAwLDkgQEAgdm9pZCBWaXNpdGVkTGlua1N0b3JlOjpyZW1v
dmVBbGwoKQogICAgIH0KIH0KIAotdm9pZCBWaXNpdGVkTGlua1N0b3JlOjphZGRWaXNpdGVkTGlu
a0hhc2hGcm9tUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFNoYXJlZFN0cmluZ0hhc2ggbGlu
a0hhc2gpCit2b2lkIFZpc2l0ZWRMaW5rU3RvcmU6OmFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdl
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQsIFNoYXJlZFN0cmluZ0hhc2ggbGlu
a0hhc2gpCiB7Ci0gICAgLy8gRklYTUU6IE5lZWRzIHRvIGxvb2sgdXAgV2ViUGFnZVByb3h5IGZy
b20gV2ViUGFnZUlELgotICAgIGlmIChhdXRvKiB3ZWJQYWdlUHJveHkgPSBXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2UocGFnZUlEKSkgeworICAgIGlmIChhdXRvKiB3ZWJQYWdlUHJveHkgPSBXZWJQ
cm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZVByb3h5SUQpKSB7CiAgICAgICAgIGlmICghd2ViUGFn
ZVByb3h5LT5hZGRzVmlzaXRlZExpbmtzKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5oCmluZGV4IDQ0NjkzNTM0
NDgxZTJiZjAwZDMxNDI2ZjIwYTg3YmFlYmY5Y2ZiOTguLmM1YzMwODFhYWZhMzE0Y2VlZDU5YzQz
N2MwNTRkMDJjNzAyYmQ3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zp
c2l0ZWRMaW5rU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlu
a1N0b3JlLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoU3RvcmUu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSWRlbnRpZmllZC5oPgpAQCAtNjEsNyArNjEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkSW52YWxpZGF0ZVNoYXJlZE1lbW9yeSgpIGZpbmFs
OwogICAgIHZvaWQgZGlkVXBkYXRlU2hhcmVkU3RyaW5nSGFzaGVzKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTaGFyZWRTdHJpbmdIYXNoPiYgYWRkZWRIYXNoZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpTaGFyZWRTdHJpbmdIYXNoPiYgcmVtb3ZlZEhhc2hlcykgZmluYWw7CiAKLSAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTaGFyZWRTdHJpbmdIYXNoKTsKKyAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdl
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gpOwogCiAg
ICAgdm9pZCBzZW5kU3RvcmVIYW5kbGVUb1Byb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5Jik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2Vz
LmluCmluZGV4IDJlNjZjNDI4MDhlYmI3ZWJjZjM5MzE5YjEwODZhOTI3ZjMzMTM2MWUuLjA3MzIx
YzUxZjdlNzkwN2ZiODQwM2E5ZDM5OTJkNzRlN2E0OTk1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5tZXNzYWdlcy5pbgpAQCAtMjEsNSAr
MjEsNSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBWaXNpdGVkTGlua1N0b3JlIHsK
LSAgICBBZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQ2NF90IGxpbmtIYXNoKQorICAgIEFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdl
KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCwgdWludDY0X3QgbGlu
a0hhc2gpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0
b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5j
cHAKaW5kZXggZTYyMWE4ZmQ4M2UxZjkwM2U2YzY2ZmY2MjVjMzliMDk2MGVmMjNkMi4uNzc2ODk0
YzdhMGQyNWE1YjFiZjhhNzUyZDBkMWQ2YWIzODU1YmZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcApAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUZyb250ZW5kUGFnZSgpCiAKICAgICB0cmFja0luc3Bl
Y3RvclBhZ2UobV9pbnNwZWN0b3JQYWdlLCBtX2luc3BlY3RlZFBhZ2UpOwogCi0gICAgbV9pbnNw
ZWN0b3JQYWdlLT5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNw
ZWN0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2luc3BlY3RlZFBhZ2UtPndlYlBh
Z2VJRCgpLCAqdGhpcyk7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuYWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX2luc3BlY3RlZFBhZ2UtPmlkZW50aWZpZXIoKSwgKnRoaXMpOwogICAgIG1faW5zcGVj
dG9yUGFnZS0+cHJvY2VzcygpLmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKm1faW5zcGVjdG9y
UGFnZSwgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvckJhc2VVUkwoKSk7CiB9CiAKQEAgLTQx
MSw3ICs0MTEsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpvcGVuTG9jYWxJbnNwZWN0b3JG
cm9udGVuZChib29sIGNhbkF0dGFjaCwgYm9vbCB1bmRlclRlcwogICAgIGlmICghbV9pbnNwZWN0
b3JQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3Mo
KS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RXN0YWJsaXNoQ29ubmVjdGlvbihtX2lu
c3BlY3RlZFBhZ2UtPndlYlBhZ2VJRCgpLCBtX3VuZGVyVGVzdCwgaW5zcGVjdGlvbkxldmVsKCkp
LCBtX2luc3BlY3RvclBhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX2luc3BlY3RvclBhZ2UtPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RXN0YWJsaXNoQ29ubmVjdGlv
bihtX2luc3BlY3RlZFBhZ2UtPmlkZW50aWZpZXIoKSwgbV91bmRlclRlc3QsIGluc3BlY3Rpb25M
ZXZlbCgpKSwgbV9pbnNwZWN0b3JQYWdlLT53ZWJQYWdlSUQoKSk7CiAKICAgICBBU1NFUlQoIW1f
aXNBY3RpdmVGcm9udGVuZCk7CiAgICAgbV9pc0FjdGl2ZUZyb250ZW5kID0gdHJ1ZTsKQEAgLTQ4
NSw3ICs0ODUsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjbG9zZUZyb250ZW5kUGFnZUFu
ZFdpbmRvdygpCiAgICAgdW50cmFja0luc3BlY3RvclBhZ2UobV9pbnNwZWN0b3JQYWdlKTsKIAog
ICAgIG1faW5zcGVjdG9yUGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3Rv
clVJOjpTZXRJc1Zpc2libGUobV9pc1Zpc2libGUpLCBtX2luc3BlY3RvclBhZ2UtPndlYlBhZ2VJ
RCgpKTsKLSAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
aW5zcGVjdGVkUGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1faW5zcGVjdG9yUGFnZS0+cHJvY2Vz
cygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pbnNwZWN0ZWRQYWdlLT5pZGVudGlmaWVyKCkpOwogCiAg
ICAgaWYgKG1faXNBY3RpdmVGcm9udGVuZCkgewogICAgICAgICBtX2lzQWN0aXZlRnJvbnRlbmQg
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDE0
MTcyNzZjZmMxMjY4ZDNlMzY0ZGFlNTcxM2RkM2FjZmVkY2U2ZjYuLjk0NGRiOWNlYjQxN2EwYmM3
NWQyMmVjYjNmMDcxOWU4MzE1Mjg1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNzk0LDEyICs3OTQsMTMgQEAgYm9vbCBXZWJQYWdlUHJveHk6OnN1c3Bl
bmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHQK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nl
c3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZy
YW1lKQordm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIHN0ZDo6dW5pcXVlX3B0
cjxEcmF3aW5nQXJlYVByb3h5PiYmIGRyYXdpbmdBcmVhLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4m
JiBtYWluRnJhbWUpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJzd2FwVG9XZWJQcm9jZXNzOiIpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgInN3YXBUb1dlYlByb2Nlc3M6IG5ld1dlYlBhZ2VJRD0l
IiBQUkl1NjQsIHdlYlBhZ2VJRC50b1VJbnQ2NCgpKTsKIAogICAgIG1fcHJvY2VzcyA9IFdURk1v
dmUocHJvY2Vzcyk7CisgICAgbV93ZWJQYWdlSUQgPSB3ZWJQYWdlSUQ7CiAgICAgbV93ZWJzaXRl
RGF0YVN0b3JlID0gbV9wcm9jZXNzLT53ZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICBpZiAobV9s
b2dnZXIpCkBAIC0xMTI1LDExICsxMTI2LDExIEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdl
YlBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2hvCiAg
ICAgICAgIGxhdW5jaFByb2Nlc3MoUmVnaXN0cmFibGVEb21haW4geyByZXF1ZXN0LnVybCgpIH0p
OwogCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRS
ZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1fYmFja0ZvcndhcmRM
aXN0LT5jdXJyZW50SXRlbSgpKTsKLSAgICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUocmVxdWVzdCks
IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vKTsKKyAgICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3Zl
KHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9s
aWNpZXMpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsKIApAQCAtMTE1NSw3ICsxMTU2LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKIAogICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRl
cnMobG9hZFBhcmFtZXRlcnMpOwogCi0gICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCBtX3dlYlBhZ2VJRCk7CisgICAgcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCB3
ZWJQYWdlSUQpOwogICAgIHByb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwog
fQogCkBAIC0xMjI3LDExICsxMjI4LDExIEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBh
Z2VQcm94eTo6bG9hZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjCiAgICAg
ICAgIGxhdW5jaFByb2Nlc3MoeyB9KTsKIAogICAgIGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdh
dGlvblN0YXRlLT5jcmVhdGVMb2FkRGF0YU5hdmlnYXRpb24obWFrZVVuaXF1ZTxBUEk6OlN1YnN0
aXR1dGVEYXRhPihkYXRhLnZlY3RvcigpLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVz
ZXJEYXRhKSk7Ci0gICAgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVz
ZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLCBXVEY6Om51bGxvcHQsIHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIGxvYWREYXRhV2l0aE5hdmlnYXRpb25T
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEs
IE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8sIFdURjo6bnVsbG9wdCwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSk7CiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2Fk
RGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
QVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0
IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlUHJveHk6Omxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEFQSTo6TmF2aWdhdGlvbiYgbmF2
aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1J
TUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQ
STo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJz
aXRlUG9saWNpZXMsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJs
b2FkRGF0YVdpdGhOYXZpZ2F0aW9uIik7CiAKQEAgLTEyNTQsNyArMTI1NSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0
ZXJzKTsKIAogICAgIHByb2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJh
c2VVUkwpOwotICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxv
YWRQYXJhbWV0ZXJzKSwgbV93ZWJQYWdlSUQpOworICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwgd2ViUGFnZUlEKTsKICAgICBwcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIH0KIApAQCAtMjk1OSw3ICsyOTYw
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWcKICAgICBpZiAoIWRpZFN1c3BlbmRQcmV2aW91
c1BhZ2UpCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2Uo
KSwgbV93ZWJQYWdlSUQpOwogCi0gICAgc3dhcFRvV2ViUHJvY2VzcyhtX3Byb3Zpc2lvbmFsUGFn
ZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+dGFrZURyYXdpbmdBcmVhKCksIG1fcHJv
dmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKSk7CisgICAgc3dhcFRvV2ViUHJvY2VzcyhtX3Byb3Zp
c2lvbmFsUGFnZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+d2ViUGFnZUlEKCksIG1f
cHJvdmlzaW9uYWxQYWdlLT50YWtlRHJhd2luZ0FyZWEoKSwgbV9wcm92aXNpb25hbFBhZ2UtPm1h
aW5GcmFtZSgpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGF1dG8gYWNjZXNzaWJpbGl0
eVRva2VuID0gbV9wcm92aXNpb25hbFBhZ2UtPnRha2VBY2Nlc3NpYmlsaXR5VG9rZW4oKTsKQEAg
LTI5OTksNyArMzAwMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25J
bk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgaWYgKG1fYmFj
a0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpICYmIChuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2Fy
ZExpc3QoKSA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMgfHwgbmF2aWdhdGlvbi5sb2NrSGlz
dG9yeSgpID09IExvY2tIaXN0b3J5OjpZZXMpKSB7CiAgICAgICAgIC8vIElmIFdlYkNvcmUgaXMg
c3VwcG9zZWQgdG8gbG9jayB0aGUgaGlzdG9yeSBmb3IgdGhpcyBsb2FkLCB0aGVuIHRoZSBuZXcg
cHJvY2VzcyBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBjdXJyZW50IGhpc3RvcnkgaXRlbSBzbyBp
dCBjYW4gdXBkYXRlCiAgICAgICAgIC8vIGl0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25l
LgotICAgICAgICBuZXdQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRDdXJyZW50
SGlzdG9yeUl0ZW1Gb3JSZWF0dGFjaChtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+
aXRlbVN0YXRlKCkpLCBtX3dlYlBhZ2VJRCk7CisgICAgICAgIG5ld1Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldEN1cnJlbnRIaXN0b3J5SXRlbUZvclJlYXR0YWNoKG1fYmFja0Zv
cndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtU3RhdGUoKSksIG1fcHJvdmlzaW9uYWxQYWdl
LT53ZWJQYWdlSUQoKSk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBv
ZiByZXNwb25kaW5nIHdpdGggdGhlIGxhc3QgcG9saWN5IGRlbGVnYXRlLCBldGMKQEAgLTQ2MjIs
MjMgKzQ2MjMsMjMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlY2so
Y29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW4KICNlbmRpZgogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELAotICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRh
dGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LAorICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRf
dCBsaXN0ZW5lcklEKQogewotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Y1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJp
dHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFj
dGlvbkRhdGEpLAorICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFt
ZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb25EYXRhKSwKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2lu
YXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShy
ZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5l
cklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLAotICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0
eU9yaWdpbiwKKyAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAgIGF1dG8qIGZyYW1lID0g
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhwcm9jZXNzLCBm
cmFtZSk7CiAKLSAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUo
aWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJ
RCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IHByb2Nlc3MuY29weVJlZigpXSAoYXV0by4uLiBhcmdz
KSB7Ci0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBhcmdzLi4uKSwgbV93ZWJQYWdlSUQp
OworICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlm
aWVyLCBbd2ViUGFnZUlELCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gcHJvY2Vzcy5j
b3B5UmVmKCldIChhdXRvLi4uIGFyZ3MpIHsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQs
IGFyZ3MuLi4pLCB3ZWJQYWdlSUQpOwogICAgIH0pOwogCiAgICAgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihwcm9jZXNzLmNvcHlSZWYoKSwgKmZyYW1lLCBXVEZNb3ZlKGZyYW1lU2Vj
dXJpdHlPcmlnaW4pLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEp
LCBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwKQEAgLTQ2NDYsNyAr
NDY0Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcywgV2ViRnJhbWVQcm94eSYgZnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYg
b3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAorICAgIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIFJlZjxQb2xpY3lEZWNp
c2lvblNlbmRlcj4mJiBzZW5kZXIpCiB7CiAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gLSBPcmlnaW5hbCBVUkwgJXMsIGN1cnJl
bnQgdGFyZ2V0IFVSTCAlcyIsIG9yaWdpbmFsUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtNDg2MCw3
ICs0ODYxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWcKICNlbmRpZgogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKQEAgLTQ4NzgsNyArNDg3OSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0Rh
dGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlv
bkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKQEAgLTQ5MzUsMTAgKzQ5MzYs
MTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0
eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2Fu
U2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwor
ICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1f
d2ViUGFnZUlELCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZp
Z2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0
cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKQEAgLTQ5NTEsMTQgKzQ5NTIsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBN
RVNTQUdFX0NIRUNLX1VSTChwcm9jZXNzLCByZXNwb25zZS51cmwoKSk7CiAKICAgICBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvbklEID8gbV9uYXZpZ2F0aW9u
U3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSA6IG51bGxwdHI7Ci0gICAgYXV0byBsaXN0
ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5l
cklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uKSwKKyAgICBhdXRvIGxpc3RlbmVy
ID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgaWRlbnRpZmllciwg
bGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCiAgICAgICAgIHBy
b2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQ
STo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZl
QnJvd3NpbmdXYXJuaW5nKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUg
QVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tG
cmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudDo6Tm8pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHNhZmVCcm93c2luZ1dh
cm5pbmcsICFzYWZlQnJvd3NpbmdXYXJuaW5nKTsKIAotICAgICAgICBhdXRvIHNlbmRlciA9IFBv
bGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNz
ID0gV1RGTW92ZShwcm9jZXNzKV0gKGF1dG8uLi4gYXJncykgewotICAgICAgICAgICAgcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1l
SUQsIGxpc3RlbmVySUQsIGFyZ3MuLi4pLCBtX3dlYlBhZ2VJRCk7CisgICAgICAgIGF1dG8gc2Vu
ZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbd2ViUGFnZUlE
LCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKV0gKGF1dG8u
Li4gYXJncykgeworICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIGFyZ3MuLi4pLCB3
ZWJQYWdlSUQpOwogICAgICAgICB9KTsKICAgICAgICAgCiAgICAgICAgIHJlY2VpdmVkUG9saWN5
RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBXVEY6Om51bGxvcHQsIFdU
Rk1vdmUoc2VuZGVyKSk7CkBAIC01MTA1LDcgKzUxMDYsNyBAQCBzdGF0aWMgdm9pZCB0cnlTT0F1
dGhvcml6YXRpb24oUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9u
LCBXZQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKGNvbnN0
IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBX
aW5kb3dGZWF0dXJlcyYmIHdpbmRvd0ZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdl
OjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdl
KGNvbnN0IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8
V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzJiYgd2luZG93RmVhdHVyZXMsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIE1FU1NBR0VfQ0hF
Q0sobV9wcm9jZXNzLCBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCk7CiAgICAgTUVT
U0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoKm9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YS5mcmFtZUlEKSk7CkBAIC03MTc3LDYgKzcxNzgsNyBAQCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQ
cm94eSYgcHJvYwogICAgIHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSA9IG1fYWN0aXZpdHlTdGF0
ZTsKICAgICBwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhVHlwZSA9IGRyYXdpbmdBcmVhLnR5cGUoKTsK
ICAgICBwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhSWRlbnRpZmllciA9IGRyYXdpbmdBcmVhLmlkZW50
aWZpZXIoKTsKKyAgICBwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlkZW50aWZpZXIgPSBtX2lkZW50
aWZpZXI7CiAgICAgcGFyYW1ldGVycy5zdG9yZSA9IHByZWZlcmVuY2VzU3RvcmUoKTsKICAgICBw
YXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEgPSBtX3BhZ2VHcm91cC0+ZGF0YSgpOwogICAgIHBhcmFt
ZXRlcnMuaXNFZGl0YWJsZSA9IG1faXNFZGl0YWJsZTsKQEAgLTg2OTcsMTUgKzg2OTksMTUgQEAg
V2ViVVJMU2NoZW1lSGFuZGxlciogV2ViUGFnZVByb3h5Ojp1cmxTY2hlbWVIYW5kbGVyRm9yU2No
ZW1lKGNvbnN0IFN0cmluZyYgc2NoZW0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0VVJMU2No
ZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7Ci0gICAgc3Rh
cnRVUkxTY2hlbWVUYXNrU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIFdURk1vdmUocGFyYW1l
dGVycykpOworICAgIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBtX3dlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fdXJsU2NoZW1lSGFuZGxlcnNC
eUlkZW50aWZpZXIuZmluZChwYXJhbWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBNRVNT
QUdFX0NIRUNLKHByb2Nlc3MsIGl0ZXJhdG9yICE9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50
aWZpZXIuZW5kKCkpOwogCi0gICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIHBy
b2Nlc3MsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVycy5yZXF1
ZXN0KSwgbnVsbHB0cik7CisgICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIHBy
b2Nlc3MsIHdlYlBhZ2VJRCwgcGFyYW1ldGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92ZShwYXJh
bWV0ZXJzLnJlcXVlc3QpLCBudWxscHRyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BV
UkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRl
bnRpZmllcikKQEAgLTg3MjEsNyArODcyMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3lu
Y2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1lCiAg
ICAgYXV0byBpdGVyYXRvciA9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZmluZChw
YXJhbWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vz
cywgaXRlcmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CiAK
LSAgICBpdGVyYXRvci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgbV9wcm9jZXNzLCBwYXJhbWV0
ZXJzLnRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIFdURk1vdmUo
cmVwbHkpKTsKKyAgICBpdGVyYXRvci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgbV9wcm9jZXNz
LCBtX3dlYlBhZ2VJRCwgcGFyYW1ldGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92ZShwYXJhbWV0
ZXJzLnJlcXVlc3QpLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCAzMzY3NjUzNmEzZjIyYmE5NjFjZDlkNTY3ZWJmODhiMGUwY2JlMWFiLi40NTk1MDY0NjlkNWQy
NDU1M2M2YmZjMjA2NjdkNGYwNjc1MWYyYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMTUxMiwxNyArMTUxMiwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJp
bmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRp
ZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwKLSAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAorICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAgICAgICAgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFs
PFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsCiAgICAgICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRh
JiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNr
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYp
OwotICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25z
dCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxs
b3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwotICAgIHZvaWQgbG9h
ZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6
Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBVUkxTY2hlbWVU
YXNrUGFyYW1ldGVycyYmKTsKKyAgICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2
aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZp
Z2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRl
bVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsCi0gICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJ
bmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNL
X0xPT0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudElu
TWFpbkZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUpOwpAQCAtMTY1MCwxMyArMTY1MCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRGVz
dHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKTsKIAogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJGcmFt
ZVByb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAg
ICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVy
PiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBGcmFtZUlu
Zm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlv
bkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYpOwpAQCAtMTY3OCw3ICsxNjc4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVy
bCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAotICAgIHZv
aWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkm
Jik7CiAgICAgdm9pZCBzaG93UGFnZSgpOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFs
ZXJ0OjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25m
aXJtOjpEZWxheWVkUmVwbHkmJik7CkBAIC0xNzM2LDcgKzE3MzYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hv
cnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpv
bnRhbFdoZWVsRXZlbnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9
CiAKICAgICB2b2lkIGxhdW5jaFByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mKTsKLSAgICB2b2lkIHN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
c3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYsIFJlZlB0cjxXZWJGcmFtZVByb3h5
PiYmIG1haW5GcmFtZSk7CisgICAgdm9pZCBzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4mJiwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKTsKICAgICB2
b2lkIGRpZEZhaWxUb1N1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7CiAgICAgdm9pZCBkaWRTdXNw
ZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjFkYzFiYzUwMmQ1YzkyNTMzZTI3MWI3ZDE2
YzlkZjRjZjI2M2E0My4uOTNkMzQxNDJmODc1MjcxMzA4ZTUwZmRmNWViMTBmYmQ2ODc1MmFkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMg
VUkgbWVzc2FnZXMKLSAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBzdHJ1Y3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhKSAtPiAoT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2VJRCwgT3B0aW9uYWw8V2ViS2l0
OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBuZXdQYWdlUGFyYW1ldGVycykgU3luY2hyb25v
dXMKKyAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
c3RydWN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzLCBzdHJ1Y3QgV2Vi
S2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSkgLT4gKE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9ub3Vz
CiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVzc1Rp
bWVyKQogICAgIFJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKCkgU3luY2hyb25vdXMKQEAgLTEwNCw4ICsxMDQsOCBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKICAg
ICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Us
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwg
U3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
YyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0
cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZy
YW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRh
dGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3VzCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdh
dGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdG
cmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQorICAgIERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRp
ZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVp
bnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9w
dGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKSBTeW5j
aHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmlu
ZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCiAgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDY0YjMxZjc1OTIyZmNkOWEyYzk2ZjYzNWJlMGU3MmVlOWVkODM1YTUuLmIwNmJlZGM1
ZmY1NTYxNTU5ZGU0NjRlMDU2MmU2YWQyMjY2ZTFhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzU2LDE0ICszNTYsMTQgQEAgV2ViUGFnZVBy
b3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdl
SUQpCiAgICAgcmV0dXJuIGdsb2JhbFBhZ2VNYXAoKS5nZXQocGFnZUlEKTsKIH0KIAotV2ViUGFn
ZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlEKQorLy8gRklYTUU6IElkZWFsbHksIHdlJ2QgZ2V0IHJpZCBvZiBhbGwgdGhlIGNh
bGxlcnMgYW5kIGRyb3AgdGhpcyBmdW5jdGlvbi4KK1dlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQpCiB7Ci0gICAgLy8gRklYTUU6IERvIGJldHRlci4KICAgICBmb3IgKGF1dG8m
IHBhZ2UgOiBnbG9iYWxQYWdlTWFwKCkudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHBhZ2UtPndl
YlBhZ2VJRCgpID09IHdlYlBhZ2VJRCkKICAgICAgICAgICAgIHJldHVybiBwYWdlOwogICAgIH0K
LSAgICAKKwogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC02NzAsNyArNjcwLDcgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpEZWNvZGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJ
WE1FOiBBZGQgdW5oYW5kbGVkIG1lc3NhZ2UgbG9nZ2luZy4KKyAgICBMT0dfRVJST1IoIlVuaGFu
ZGxlZCBXZWJQcm9jZXNzUHJveHkgSVBDIG1lc3NhZ2UgJXM6OiVzIChkZXN0aW5hdGlvbjogJSIg
UFJJdTY0ICIpIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5kYXRh
KCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5kZXN0
aW5hdGlvbklEKCkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQpAQCAtMTEyMSw3
ICsxMTIxLDcgQEAgUmVmUHRyPEFQSTo6T2JqZWN0PiBXZWJQcm9jZXNzUHJveHk6OnRyYW5zZm9y
bUhhbmRsZXNUb09iamVjdHMoQVBJOjpPYmplY3QqIG9iamUKIAogICAgICAgICAgICAgY2FzZSBB
UEk6Ok9iamVjdDo6VHlwZTo6UGFnZUhhbmRsZToKICAgICAgICAgICAgICAgICBBU1NFUlQoc3Rh
dGljX2Nhc3Q8QVBJOjpQYWdlSGFuZGxlJj4ob2JqZWN0KS5pc0F1dG9jb252ZXJ0aW5nKCkpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBtX3dlYlByb2Nlc3NQcm94eS53ZWJQYWdlKHN0YXRpY19j
YXN0PEFQSTo6UGFnZUhhbmRsZSY+KG9iamVjdCkucGFnZUlEKCkpOworICAgICAgICAgICAgICAg
IHJldHVybiBtX3dlYlByb2Nlc3NQcm94eS53ZWJQYWdlKHN0YXRpY19jYXN0PEFQSTo6UGFnZUhh
bmRsZSY+KG9iamVjdCkucGFnZVByb3h5SUQoKSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6Ok9iakNPYmplY3RHcmFwaDoKQEAgLTEx
NjQsNyArMTE2NCw3IEBAIFJlZlB0cjxBUEk6Ok9iamVjdD4gV2ViUHJvY2Vzc1Byb3h5Ojp0cmFu
c2Zvcm1PYmplY3RzVG9IYW5kbGVzKEFQSTo6T2JqZWN0KiBvYmplCiAgICAgICAgICAgICAgICAg
cmV0dXJuIEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0
PGNvbnN0IFdlYkZyYW1lUHJveHkmPihvYmplY3QpLmZyYW1lSUQoKSk7CiAKICAgICAgICAgICAg
IGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFQ
STo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgV2Vi
UGFnZVByb3h5Jj4ob2JqZWN0KS53ZWJQYWdlSUQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3Qg
V2ViUGFnZVByb3h5Jj4ob2JqZWN0KS5pZGVudGlmaWVyKCksIHN0YXRpY19jYXN0PGNvbnN0IFdl
YlBhZ2VQcm94eSY+KG9iamVjdCkud2ViUGFnZUlEKCkpOwogCiAgICAgICAgICAgICBjYXNlIEFQ
STo6T2JqZWN0OjpUeXBlOjpQYWdlR3JvdXA6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6
UGFnZUdyb3VwSGFuZGxlOjpjcmVhdGUoV2ViUGFnZUdyb3VwRGF0YShzdGF0aWNfY2FzdDxjb25z
dCBXZWJQYWdlR3JvdXAmPihvYmplY3QpLmRhdGEoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA0N2EyNDNkOTcwYTY4OWIxMDMxYjY3NGIxNmQ0NTlj
OGFmMjU2ZGEwLi44ZWRmNTMwNDBmYzE1YjQ5NWYxOTU0ZDM2ZDFlZDI2NDNlMWE5ODJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTMzLDcgKzEzMyw3
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3NGb3JJZGVu
dGlmaWVyKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKICAgICBzdGF0aWMgV2ViUGFnZVBy
b3h5KiB3ZWJQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOwotICAgIHN0YXRpYyBXZWJQYWdl
UHJveHkqIHdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBXZWJQ
YWdlUHJveHkqIHdlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKICAgICBSZWY8V2ViUGFnZVByb3h5PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQm
LCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAKICAgICBlbnVtIGNsYXNzIEJlZ2lu
c1VzaW5nRGF0YVN0b3JlIDogYm9vbCB7IE5vLCBZZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKaW5kZXggNWE2Y2M5NWQwZjgzNDRmOGYw
ZjlkNGYwNjAxYmIyZGRjYTc4YTgwOC4uOTBjMGI4MGUwMDJjMjdjZTA4YjhkOThjMThlMGI0ODA4
OTc1NDI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFu
ZGxlci5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgV2ViVVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNj
aGVtZUhhbmRsZXIoKQogICAgIEFTU0VSVChtX3Rhc2tzLmlzRW1wdHkoKSk7CiB9CiAKLXZvaWQg
V2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBw
YWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwg
dWludDY0X3QgdGFza0lkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNM
b2FkQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHJl
c3VsdCA9IG1fdGFza3MuYWRkKHRhc2tJZGVudGlmaWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVh
dGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGF1dG8gcmVzdWx0ID0gbV90YXNr
cy5hZGQodGFza0lkZW50aWZpZXIsIFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFn
ZSwgcHJvY2Vzcywgd2ViUGFnZUlELCB0YXNrSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50
cnkpOwogCiAgICAgYXV0byBwYWdlRW50cnkgPSBtX3Rhc2tzQnlQYWdlSWRlbnRpZmllci5hZGQo
cGFnZS5pZGVudGlmaWVyKCksIEhhc2hTZXQ8dWludDY0X3Q+KCkpOwpAQCAtMTA0LDcgKzEwNCw3
IEBAIHZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVU
YXNrJiB0YXNrKQogewogICAgIGF1dG8gdGFrZW5UYXNrID0gbV90YXNrcy50YWtlKHRhc2suaWRl
bnRpZmllcigpKTsKICAgICBBU1NFUlRfVU5VU0VEKHRha2VuVGFzaywgdGFrZW5UYXNrLT5wdHIo
KSA9PSAmdGFzayk7Ci0gICAgcmVtb3ZlVGFza0Zyb21QYWdlTWFwKHRhc2sucGFnZUlEKCksIHRh
c2suaWRlbnRpZmllcigpKTsKKyAgICByZW1vdmVUYXNrRnJvbVBhZ2VNYXAodGFzay5wYWdlUHJv
eHlJRCgpLCB0YXNrLmlkZW50aWZpZXIoKSk7CiAKICAgICBwbGF0Zm9ybVRhc2tDb21wbGV0ZWQo
dGFzayk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hl
bWVIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVy
LmgKaW5kZXggZDU4YzdlNTY3MzI2MTI4OWI3Y2QzYzA4ZjQwYmM2YmU5OGQ0Y2VkNC4uMjM0OTA2
ZjRjNGNlZTg1NzE0Y2Q0MWRkZmI4YTgxZmFmOGIyZjNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6
CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CiAKLSAgICB2b2lkIHN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkm
LCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5
bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBzdGFydFRhc2soV2ViUGFnZVBy
b3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90
IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21w
bGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIHN0b3BUYXNrKFdlYlBhZ2VQcm94eSYsIHVpbnQ2
NF90IHRhc2tJZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BBbGxUYXNrc0ZvclBhZ2UoV2ViUGFn
ZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5Kik7CiAgICAgdm9pZCB0YXNrQ29tcGxldGVkKFdlYlVS
TFNjaGVtZVRhc2smKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVS
TFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFz
ay5jcHAKaW5kZXggZDYxZjEzNjIyNjQ4Njg2ZTI3NGQxMWFjMTk0MDM5OGFjZWY1YmYxZC4uMjdh
M2RiNTRmOWIxMmRlMWI3OTc0MzMwZjI1YzY3YTI0NjI5YjdiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKQEAgLTM2LDE3ICszNiwxNyBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdlYlVSTFNj
aGVtZVRhc2s+IFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBo
YW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWlu
dDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5j
TG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQorUmVmPFdlYlVS
TFNjaGVtZVRhc2s+IFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVy
JiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcywg
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5j
Q29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2No
ZW1lVGFzayhoYW5kbGVyLCBwYWdlLCBwcm9jZXNzLCByZXNvdXJjZUlkZW50aWZpZXIsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUoc3luY0NvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYlVSTFNjaGVtZVRhc2soaGFuZGxlciwgcGFnZSwgcHJvY2Vzcywg
d2ViUGFnZUlELCByZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
c3luY0NvbXBsZXRpb25IYW5kbGVyKSkpOwogfQogCi1XZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxT
Y2hlbWVUYXNrKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIs
IFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBz
eW5jQ29tcGxldGlvbkhhbmRsZXIpCitXZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVUYXNr
KFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIHVpbnQ2NF90IHJl
c291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21w
bGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFuZGxlcikKICAgICA6IG1fdXJsU2NoZW1l
SGFuZGxlcihoYW5kbGVyKQotICAgICwgbV9wYWdlKCZwYWdlKQogICAgICwgbV9wcm9jZXNzKG1h
a2VSZWYocHJvY2VzcykpCiAgICAgLCBtX2lkZW50aWZpZXIocmVzb3VyY2VJZGVudGlmaWVyKQot
ICAgICwgbV9wYWdlSWRlbnRpZmllcihwYWdlLmlkZW50aWZpZXIoKSkKKyAgICAsIG1fcGFnZVBy
b3h5SUQocGFnZS5pZGVudGlmaWVyKCkpCisgICAgLCBtX3dlYlBhZ2VJRCh3ZWJQYWdlSUQpCiAg
ICAgLCBtX3JlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSkKICAgICAsIG1fc3luY0NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoc3luY0NvbXBsZXRpb25IYW5kbGVyKSkKIHsKQEAgLTgyLDcgKzgyLDcg
QEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24oV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnMKICAgICAgICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsK
ICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVt
ZVRhc2tEaWRQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVy
KCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBtX3BhZ2UtPndlYlBhZ2VJRCgp
KTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tE
aWRQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1f
aWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3QpLCBtX3dlYlBhZ2VJRCk7CiAKICAgICByZXR1
cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAgLTEwNyw3ICsxMDcsNyBAQCBhdXRvIFdlYlVS
TFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkgLT4gRQogICAgIGlmIChpc1N5bmMoKSkKICAgICAgICAgbV9zeW5jUmVzcG9uc2Ug
PSByZXNwb25zZTsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJM
U2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZp
ZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2Vp
dmVSZXNwb25zZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVy
LCByZXNwb25zZSksIG1fd2ViUGFnZUlEKTsKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9u
ZTsKIH0KIApAQCAtMTM0LDcgKzEzNCw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVj
ZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpIC0+IEV4Y2VwdGlvblR5CiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVEYXRhKG1fdXJs
U2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHsgYnVmZmVyIH0pLCBt
X3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50
aWZpZXIoKSwgbV9pZGVudGlmaWVyLCB7IGJ1ZmZlciB9KSwgbV93ZWJQYWdlSUQpOwogICAgIHJl
dHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBAIC0xNjQsNyArMTY0LDcgQEAgYXV0byBX
ZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikg
LT4gRXhjZXB0aW9uVHlwZQogICAgICAgICBtX3N5bmNEYXRhID0gbnVsbHB0cjsKICAgICB9CiAK
LSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRD
b21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBl
cnJvciksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+
aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSwgbV93ZWJQYWdlSUQpOwogICAgIG1f
dXJsU2NoZW1lSGFuZGxlci0+dGFza0NvbXBsZXRlZCgqdGhpcyk7CiAKICAgICByZXR1cm4gRXhj
ZXB0aW9uVHlwZTo6Tm9uZTsKQEAgLTE3Myw5ICsxNzMsOSBAQCBhdXRvIFdlYlVSTFNjaGVtZVRh
c2s6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25U
eXBlCiB2b2lkIFdlYlVSTFNjaGVtZVRhc2s6OnBhZ2VEZXN0cm95ZWQoKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgQVNTRVJUKG1fcGFnZSk7CiAKLSAgICBtX3BhZ2Ug
PSBudWxscHRyOworICAgIG1fcGFnZVByb3h5SUQgPSB7IH07CisgICAgbV93ZWJQYWdlSUQgPSB7
IH07CiAgICAgbV9wcm9jZXNzID0gbnVsbHB0cjsKICAgICBtX3N0b3BwZWQgPSB0cnVlOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oCmluZGV4IDM5YjJm
ZWI0M2JmYzc3OWFlMmYxNmJhZTE3ODJmYzc0NjVlOGM2NDAuLmJmZDkyMzM5MWNlN2JjNDAyY2Nh
ZGQ2NWY1OTA3ZDRmYjI2ZTE5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlVSTFNjaGVtZVRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxT
Y2hlbWVUYXNrLmgKQEAgLTU0LDEzICs1NCwxMyBAQCB1c2luZyBTeW5jTG9hZENvbXBsZXRpb25I
YW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZQog
Y2xhc3MgV2ViVVJMU2NoZW1lVGFzayA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJV
UkxTY2hlbWVUYXNrPiwgcHVibGljIEluc3RhbmNlQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViVVJMU2NoZW1lVGFzayk7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxl
ciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYp
OworICAgIHN0YXRpYyBSZWY8V2ViVVJMU2NoZW1lVGFzaz4gY3JlYXRlKFdlYlVSTFNjaGVtZUhh
bmRsZXImLCBXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgdWludDY0X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7CiAKICAgICB+V2ViVVJMU2NoZW1lVGFzaygp
OwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgcGFnZUlEKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9w
YWdlSWRlbnRpZmllcjsgfQotCisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJ
RCgpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcGFnZVByb3h5
SUQ7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYlBy
b2Nlc3NQcm94eSogcHJvY2VzcygpIHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJu
IG1fcHJvY2Vzcy5nZXQoKTsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC04NywxNSArODcs
MTUgQEAgcHVibGljOgogICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpOwogCiBwcml2YXRlOgotICAg
IFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdl
YlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIFdlYlVSTFNjaGVtZVRh
c2soV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIGJv
b2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gISFtX3N5bmNDb21wbGV0aW9uSGFuZGxlcjsgfQog
CiAgICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+IG1fdXJsU2NoZW1lSGFuZGxlcjsKLSAgICBX
ZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nl
c3M7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgbV9wYWdlSWRlbnRpZmllcjsKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVBy
b3h5SUQ7CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBtdXRhYmxlIExvY2sgbV9yZXF1
ZXN0TG9jazsKICAgICBib29sIG1fc3RvcHBlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXIubW0KaW5kZXggNDIwMjM5NmFiYWZhZjMwZDcxODlhZWI2ODUwOWVhMjcxNzFi
OTc0NS4uMmI3MmMyMTE1OGFmOWFjNzM3OWUzNmQwN2E5NzYzMWY4YzM2NTBhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJy
b3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtNDA0LDEyICs0MDQsMTIgQEAgLSAoV0tCdW5k
bGVQYWdlUmVmKV9idW5kbGVQYWdlUmVmCiAKIC0gKFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICop
aGFuZGxlCiB7Ci0gICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBf
aW5pdFdpdGhQYWdlSUQ6X3BhZ2UtPnBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJu
IFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlOipfcGFnZV0g
YXV0b3JlbGVhc2VdOwogfQogCiArIChpbnN0YW5jZXR5cGUpbG9va1VwQnJvd3NpbmdDb250ZXh0
RnJvbUhhbmRsZTooV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1
cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UoaGFuZGxl
LnBhZ2VJRCkpOworICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViUGFnZShoYW5kbGUud2ViUGFnZUlEKSk7CiB9CiAKIC0gKF9XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5ICopX3JlbW90ZU9iamVjdFJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXIuY3BwCmluZGV4IDJiMjg4NjRhOWFhMDk4NDQyZDYxNTMyYzY0MGY1YjkzYTg1OTk4MGEu
LmM0NGFkYjI2YTBmMWM5NTM0NDBiODk4YzBlN2RmZjU1Zjk2YWEwNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXIuY3BwCkBAIC0yNTIsNyArMjUyLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpEaWRQb3N0TWVzc2FnZSh3ZWJQYWdlLT5w
YWdlSUQoKSwgd2ViRnJhbWUtPmluZm8oKSwgbV9pZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVu
Y2UodmFsdWUtPmRhdGEoKSkpLCBtX2NvbnRyb2xsZXItPmlkZW50aWZpZXIoKSk7CisgICAgICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpEaWRQb3N0TWVzc2FnZSh3
ZWJQYWdlLT53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksIHdlYkZyYW1lLT5pbmZvKCksIG1faWRl
bnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlKHZhbHVlLT5kYXRhKCkpKSwgbV9jb250cm9sbGVy
LT5pZGVudGlmaWVyKCkpOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJVc2VyQ29udGVudENvbnRy
b2xsZXI+IG1fY29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMGU2Yjk0M2Qx
NTljNjEyMmE5YjQ0NGZlNjhmMDU3NTA2OWQxMWRmMC4uYjgwMzM1MWQ4OWIxNDk4MDQ5NDg5NzVk
MzZlNzc4NDljN2FjN2Q1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTI5Miw3ICsyOTIs
NyBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNv
bnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogCiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IG5ld1BhZ2VJRDsKICAgICBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBw
YXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1l
LT5pbmZvKCksIHdlYkZyYW1lLT5wYWdlKCktPnBhZ2VJRCgpLCByZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdlSUQsIHBhcmFtZXRlcnMp
LCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdl
KHdlYkZyYW1lLT5pbmZvKCksIHdlYkZyYW1lLT5wYWdlKCktPndlYlBhZ2VQcm94eUlkZW50aWZp
ZXIoKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRp
b25BY3Rpb25EYXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVw
bHkobmV3UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIW5ld1BhZ2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCmluZGV4IDcwOTgwZWU1YjViOGQ3MDM3ZTQ1YjNmMmFmM2UyYmIxZmEwMzk0YTgu
LjQ4ZGUzNWZkMDVlM2I4OWI0MWVjOTI5YWEyYzJkZDM2MjZlOTkwMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtOTA2LDkgKzkwNiwxMSBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
TmF2aWdhdAogICAgIGlmIChyZXF1ZXN0ZXIuZnJhbWVJRCgpICYmIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkZyYW1lKHJlcXVlc3Rlci5mcmFtZUlEKCkpKQogICAgICAgICBvcmlnaW5hdGlu
Z0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCA9IHJlcXVlc3Rlci5mcmFtZUlEKCk7CiAKLSAgICBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQ7Ci0gICAgaWYgKHJlcXVlc3Rl
ci5wYWdlSUQoKSAmJiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHJlcXVlc3Rlci5w
YWdlSUQoKSkpCi0gICAgICAgIG9yaWdpbmF0aW5nUGFnZUlEID0gcmVxdWVzdGVyLnBhZ2VJRCgp
OworICAgIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
OworICAgIGlmIChyZXF1ZXN0ZXIucGFnZUlEKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHdlYlBh
Z2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHJlcXVlc3Rlci5wYWdlSUQoKSkp
CisgICAgICAgICAgICBvcmlnaW5hdGluZ1BhZ2VJRCA9IHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlk
ZW50aWZpZXIoKTsKKyAgICB9CiAKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5uYXZpZ2F0aW9uVHlwZSA9IGFj
dGlvbi0+bmF2aWdhdGlvblR5cGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNw
cAppbmRleCA5MGZkZjBlNmU5MDkxNTVjNDE1NDJmNzE5OWNhZTdiNWIwNmUxNTRiLi5iMTk5YTEw
MzA4ZjhmZGM4MzA2ZjZiMDYwZWJhYThiNjAyMjIwYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuY3BwCkBAIC0zNSw3ICszNSw3IEBAIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5
OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVtb3Rl
CiAgICAgOiBSZW1vdGVPYmplY3RSZWdpc3RyeShyZW1vdGVPYmplY3RSZWdpc3RyeSkKICAgICAs
IG1fcGFnZShwYWdlKQogewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV9wYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCAqdGhp
cyk7CiAgICAgcGFnZS5zZXRSZW1vdGVPYmplY3RSZWdpc3RyeSh0aGlzKTsKIH0KIApAQCAtNDcs
NyArNDcsNyBAQCBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6fldlYlJlbW90ZU9iamVjdFJlZ2lz
dHJ5KCkKIHZvaWQgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6OmNsb3NlKCkKIHsKICAgICBpZiAo
bV9wYWdlLnJlbW90ZU9iamVjdFJlZ2lzdHJ5KCkgPT0gdGhpcykgewotICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9i
amVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7Cisg
ICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
LndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSk7CiAgICAgICAgIG1fcGFnZS5zZXRSZW1vdGVPYmpl
Y3RSZWdpc3RyeShudWxscHRyKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5j
cHAKaW5kZXggYmIxMzA2ZTI5OWYzZjc3OGQ5ZTY1MjVlMzk3MDAyYTE4MTlhMmFjYy4uOWYzY2Ji
ZWU4MzdjNGU1ODhkM2Q4MjQyNTBlYjZhZTcyZmE3NTAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250
cm9sbGVyLmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIFZpc2l0ZWRMaW5rVGFibGVDb250cm9s
bGVyOjphZGRWaXNpdGVkTGluayhQYWdlJiBwYWdlLCBTaGFyZWRTdHJpbmdIYXNoIGxpbgogICAg
IGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VmlzaXRlZExp
bmtTdG9yZTo6QWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2Uod2ViUGFnZS0+cGFnZUlEKCksIGxp
bmtIYXNoKSwgbV9pZGVudGlmaWVyKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpWaXNpdGVkTGlua1N0b3JlOjpB
ZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZSh3ZWJQYWdlLT53ZWJQYWdlUHJveHlJZGVudGlmaWVy
KCksIGxpbmtIYXNoKSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9pZCBWaXNpdGVkTGlua1RhYmxl
Q29udHJvbGxlcjo6c2V0VmlzaXRlZExpbmtUYWJsZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRs
ZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yVUkuY3BwCmluZGV4IDU0N2E2Y2IyNThlMWJhNzFmOTg4YTQ0ZjNmMWVmODA2Y2Iy
ODVhYzguLjZiNjY5YTdiMDEyNzEwNDk1YjI4OWM4NTFjZDM0MmQ4OWZlZDUzZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAgV2ViSW5zcGVjdG9yVUk6OldlYkluc3BlY3RvclVJKFdlYlBhZ2Um
IHBhZ2UpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZXN0YWJsaXNoQ29ubmVj
dGlvbihQYWdlSWRlbnRpZmllciBpbnNwZWN0ZWRQYWdlSWRlbnRpZmllciwgYm9vbCB1bmRlclRl
c3QsIHVuc2lnbmVkIGluc3BlY3Rpb25MZXZlbCkKK3ZvaWQgV2ViSW5zcGVjdG9yVUk6OmVzdGFi
bGlzaENvbm5lY3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmllciBpbnNwZWN0ZWRQYWdlSWRlbnRp
ZmllciwgYm9vbCB1bmRlclRlc3QsIHVuc2lnbmVkIGluc3BlY3Rpb25MZXZlbCkKIHsKICAgICBt
X2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyID0gaW5zcGVjdGVkUGFnZUlkZW50aWZpZXI7CiAgICAg
bV9mcm9udGVuZEFQSURpc3BhdGNoZXIucmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oCmluZGV4IGExZmI0ZDhmMDA4MDhlYWU5
ZDU2NzU1ZDA3MmE4ZjY3Y2ZmY2MyNWYuLjM4MDgwZGMyMzliMWI0MmFkOWJlNGEyYzdhZTRjNTdk
MzMyZDkwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yVUkuaApAQCAtMjcsOSArMjcsOSBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oIgorI2luY2x1
ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rv
ckZyb250ZW5kQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CkBAIC01Myw3ICs1Myw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UpIG92ZXJyaWRlIHsg
Y2xvc2VXaW5kb3coKTsgfQogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYkluc3BlY3RvclVJIG1lc3Nh
Z2VzCi0gICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IGluc3BlY3RlZFBhZ2VJZGVudGlmaWVyLCBib29sIHVuZGVyVGVzdCwgdW5zaWduZWQgaW5zcGVj
dGlvbkxldmVsKTsKKyAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZVByb3h5SWRl
bnRpZmllciBpbnNwZWN0ZWRQYWdlSWRlbnRpZmllciwgYm9vbCB1bmRlclRlc3QsIHVuc2lnbmVk
IGluc3BlY3Rpb25MZXZlbCk7CiAgICAgdm9pZCB1cGRhdGVDb25uZWN0aW9uKCk7CiAKICAgICB2
b2lkIHNob3dDb25zb2xlKCk7CkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBj
b3JlUGFnZSgpLCBzaW5jZSB3ZSBtYXkgbmVlZCBpdCBhZnRlciB0aGUgZnJvbnRlbmQncyBwYWdl
IGhhcyBzdGFydGVkIGRlc3RydWN0aW9uLgogICAgIFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXIqIG1fZnJvbnRlbmRDb250cm9sbGVyIHsgbnVsbHB0ciB9OwogCi0gICAgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgbV9pbnNwZWN0ZWRQYWdlSWRlbnRpZmllcjsKKyAgICBXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIG1faW5zcGVjdGVkUGFnZUlkZW50aWZpZXI7CiAgICAgYm9vbCBtX3VuZGVyVGVz
dCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2RvY2tpbmdVbmF2YWlsYWJsZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2lzVmlzaWJsZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluCmluZGV4
IDM3NWEzOGVjZjFhYmZhZTljOGNlNzQxZjU5MGQ4NTdmMDQ4NDYyZjAuLmE2M2EzOTk2ZjhjNDFi
MzZiM2RiZTYwNzU2ZmY5OTg0OTZjZGQyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluCkBAIC0y
MSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvclVJ
IHsKLSAgICBFc3RhYmxpc2hDb25uZWN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGluc3Bl
Y3RlZFBhZ2VJZGVudGlmaWVyLCBib29sIHVuZGVyVGVzdCwgdW5zaWduZWQgaW5zcGVjdGlvbkxl
dmVsKQorICAgIEVzdGFibGlzaENvbm5lY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyIGluc3BlY3RlZFBhZ2VJZGVudGlmaWVyLCBib29sIHVuZGVyVGVzdCwgdW5zaWduZWQgaW5z
cGVjdGlvbkxldmVsKQogICAgIFVwZGF0ZUNvbm5lY3Rpb24oKQogCiAgICAgQXR0YWNoZWRCb3R0
b20oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBmYzRiYjUwMzZhYmE4MTdjY2IwY2IyZmQzMzU1ZTk2OWMzNTYwZmYxLi5hNDhkN2ZmNzg2NmJh
ZDlkYjk2YWNjMWQyYTQ4NTE0NWIxNTE2MWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDI2LDYgKzQyNiw3IEBAIFdlYlBhZ2U6OldlYlBh
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycykKICNpZiBVU0UoV1BFX1JFTkRFUkVSKQogICAgICwgbV9ob3N0RmlsZURlc2NyaXB0
b3IoV1RGTW92ZShwYXJhbWV0ZXJzLmhvc3RGaWxlRGVzY3JpcHRvcikpCiAjZW5kaWYKKyAgICAs
IG1fd2ViUGFnZVByb3h5SWRlbnRpZmllcihwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlkZW50aWZp
ZXIpCiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFU0laSU5HKQogICAgICwgbV9zaHJpbmtUb0ZpdENv
bnRlbnRUaW1lcigqdGhpcywgJldlYlBhZ2U6OnNocmlua1RvRml0Q29udGVudFRpbWVyRmlyZWQs
IDBfcykKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDc4MTM3MGRhNGEzNTQ3YTU0ZGRkMGIwNGJlYmFhZjFhZjI1MTQxOGMuLjdiNjA3ZGMz
YTFiMDVkZGEwZjE1MDQxOWY4OWM2MzhhODU4Zjk1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI5Miw3ICsyOTIsNyBAQCBwdWJsaWM6CiAKICAg
ICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsg
fQogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZUlEOyB9Ci0gICAgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgc2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbWFrZU9iamVjdElkZW50aWZpZXI8
U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXJUeXBlPihtX3BhZ2VJRC50b1VJbnQ2NCgpKTsgfQor
ICAgIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPFN0b3JhZ2VOYW1l
c3BhY2VJZGVudGlmaWVyVHlwZT4obV93ZWJQYWdlUHJveHlJZGVudGlmaWVyLnRvVUludDY0KCkp
OyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdl
LT5zZXNzaW9uSUQoKTsgfQogICAgIGJvb2wgdXNlc0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7
IHJldHVybiBtX3BhZ2UtPnVzZXNFcGhlbWVyYWxTZXNzaW9uKCk7IH0KIApAQCAtMTIwMyw2ICsx
MjAzLDggQEAgcHVibGljOgogICAgIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5KiByZW1vdGVPYmpl
Y3RSZWdpc3RyeSgpOwogI2VuZGlmCiAKKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VQcm94eUlkZW50aWZp
ZXI7IH0KKwogICAgIHZvaWQgdXBkYXRlSW50cmluc2ljQ29udGVudFNpemVJZk5lZWRlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9pZCBzY2hlZHVsZUZ1bGxFZGl0b3JTdGF0ZVVw
ZGF0ZSgpOwogICAgIGJvb2wgaXNUaHJvdHRsZWFibGUoKSBjb25zdDsKQEAgLTE5NTcsNiArMTk1
OSw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV2Vha1B0cjxXZWJSZW1v
dGVPYmplY3RSZWdpc3RyeT4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeTsKICNlbmRpZgorICAgIFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJveHlJZGVudGlmaWVyOwogICAgIFdlYkNv
cmU6OkludFNpemUgbV9sYXN0U2VudEludHJpbnNpY0NvbnRlbnRTaXplOwogI2lmIEVOQUJMRShW
SUVXUE9SVF9SRVNJWklORykKICAgICBXZWJDb3JlOjpEZWZlcnJhYmxlT25lU2hvdFRpbWVyIG1f
c2hyaW5rVG9GaXRDb250ZW50VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggNzcyNjcyYzQ5YjBiY2JlNDg1YTBhOWMxYzhjNzY1MzMxZGE0ODk4Mi4uOWEw
ZjYxZjBiOTI5MmUzNTc5Zjg1YzYwOGNhOWNhZjUwZGRmZjQyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNzQ2LDcgKzc0Niw3IEBAIHZvaWQgV2ViUHJvY2Vz
czo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlCiAgICAgfQogI2VuZGlmCiAKLSAgICBMT0dfRVJST1IoIlVuaGFuZGxlZCB3ZWIg
cHJvY2VzcyBtZXNzYWdlICclczolcyciLCBkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50
b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgp
KTsKKyAgICAvLyBGSVhNRTogQWRkIHVuaGFuZGxlZCBtZXNzYWdlIGxvZ2dpbmcuCiB9CiAKIFdl
YkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgY29u
c3QKQEAgLTE3MTEsNyArMTcxMSw3IEBAIFJlZlB0cjxBUEk6Ok9iamVjdD4gV2ViUHJvY2Vzczo6
dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhBUEk6Ok9iamVjdCogb2JqZWN0KQogICAgICAgICAg
ICAgICAgIHJldHVybiBtX3dlYlByb2Nlc3Mud2ViUGFnZUdyb3VwKHN0YXRpY19jYXN0PGNvbnN0
IEFQSTo6UGFnZUdyb3VwSGFuZGxlJj4ob2JqZWN0KS53ZWJQYWdlR3JvdXBEYXRhKCkpOwogCiAg
ICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpQYWdlSGFuZGxlOgotICAgICAgICAg
ICAgICAgIHJldHVybiBtX3dlYlByb2Nlc3Mud2ViUGFnZShzdGF0aWNfY2FzdDxjb25zdCBBUEk6
OlBhZ2VIYW5kbGUmPihvYmplY3QpLnBhZ2VJRCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
bV93ZWJQcm9jZXNzLndlYlBhZ2Uoc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpQYWdlSGFuZGxlJj4o
b2JqZWN0KS53ZWJQYWdlSUQoKSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgICAg
IGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6Ok9iakNPYmplY3RHcmFwaDoKQEAgLTE3NTQsNyArMTc1
NCw3IEBAIFJlZlB0cjxBUEk6Ok9iamVjdD4gV2ViUHJvY2Vzczo6dHJhbnNmb3JtT2JqZWN0c1Rv
SGFuZGxlcyhBUEk6Ok9iamVjdCogb2JqZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBBUEk6
OkZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJG
cmFtZSY+KG9iamVjdCkuZnJhbWVJRCgpKTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVj
dDo6VHlwZTo6QnVuZGxlUGFnZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlSGFu
ZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlJj4ob2Jq
ZWN0KS5wYWdlSUQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6UGFnZUhhbmRsZTo6
Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViUGFnZSY+KG9iamVjdCku
d2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlJj4ob2Jq
ZWN0KS5wYWdlSUQoKSk7CiAKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1
bmRsZVBhZ2VHcm91cDogewogICAgICAgICAgICAgICAgIFdlYlBhZ2VHcm91cERhdGEgcGFnZUdy
b3VwRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRleCA1YmQ4MDI3MjU1OTNiZTYxODU2
ZjY0ZjdmNGI4MTYzOTEzNzlmYmQ0Li5kYWNkMGY3ZmRkOWE3NjE2MzI0NTU1ZTMyNGZiMmIxZGZm
YzJkNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBAIC00MiwyOCArNDIsMzAgQEAKIG5h
bWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxTdG9yYWdl
TmFtZXNwYWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdl
TmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3Jh
Z2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdW5zaWduZWQgcXVvdGFJbkJ5dGVz
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6OlNlc3Npb24sIGlkZW50aWZpZXIsIG51
bGxwdHIsIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklEKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6OlNlc3Npb24sIGlkZW50aWZpZXIs
IHBhZ2VJRCwgbnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9uSUQpKTsKIH0KIAogUmVmPFN0
b3JhZ2VOYW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlTG9jYWxTdG9y
YWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVz
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6OkxvY2FsLCBpZGVudGlmaWVyLCBudWxs
cHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpMb2NhbCwgaWRlbnRpZmllciwgV1RG
OjpudWxsb3B0LCBudWxscHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOwogfQogCiBSZWY8
U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVUcmFuc2ll
bnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIHVpbnQ2NF90IHF1b3RhSW5CeXRlcywgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3Jh
Z2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpUcmFuc2llbnRMb2NhbCwgaWRlbnRpZmllciwg
JnRvcExldmVsT3JpZ2luLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpUcmFuc2llbnRM
b2NhbCwgaWRlbnRpZmllciwgV1RGOjpudWxsb3B0LCAmdG9wTGV2ZWxPcmlnaW4sIHF1b3RhSW5C
eXRlcywgc2Vzc2lvbklEKSk7CiB9CiAKLVN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpTdG9yYWdlTmFt
ZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgSWRlbnRpZmllciBz
dG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbE9yaWdp
biwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitTdG9y
YWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5
cGUgc3RvcmFnZVR5cGUsIElkZW50aWZpZXIgc3RvcmFnZU5hbWVzcGFjZUlELCBjb25zdCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4mIHBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogbV9zdG9yYWdlVHlwZShzdG9yYWdlVHlwZSkKICAgICAsIG1f
c3RvcmFnZU5hbWVzcGFjZUlEKHN0b3JhZ2VOYW1lc3BhY2VJRCkKKyAgICAsIG1fc2Vzc2lvblBh
Z2VJRChwYWdlSWRlbnRpZmllcikKICAgICAsIG1fdG9wTGV2ZWxPcmlnaW4odG9wTGV2ZWxPcmln
aW4pCiAgICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiAgICAgLCBtX3Nlc3Npb25J
RChzZXNzaW9uSUQpCiB7CisgICAgQVNTRVJUKHN0b3JhZ2VUeXBlID09IFN0b3JhZ2VUeXBlOjpT
ZXNzaW9uIHx8ICFtX3Nlc3Npb25QYWdlSUQpOwogfQogCiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6
flN0b3JhZ2VOYW1lc3BhY2VJbXBsKCkKQEAgLTk4LDcgKzEwMCw3IEBAIFJlZjxTdG9yYWdlTmFt
ZXNwYWNlPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29weShQYWdlKiBuZXdQYWdlKQogICAgIGlm
IChhdXRvIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmV4aXN0aW5nTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAgICAgIG5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2Vy
U2V0OjpDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKG5ld1BhZ2UtPnNlc3Npb25JRCgpLCBt
X3N0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSksIDApOwogCi0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJv
bUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwg
bV90b3BMZXZlbE9yaWdpbi5nZXQoKSwgbV9xdW90YUluQnl0ZXMsIG5ld1BhZ2UtPnNlc3Npb25J
RCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwobV9z
dG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5w
YWdlSUQoKSwgbV90b3BMZXZlbE9yaWdpbi5nZXQoKSwgbV9xdW90YUluQnl0ZXMsIG5ld1BhZ2Ut
PnNlc3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNldFNlc3Np
b25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtMTExLDcgKzExMyw3
IEBAIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNldFNlc3Npb25JREZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogUGFnZUlkZW50aWZpZXIgU3RvcmFnZU5hbWVzcGFjZUlt
cGw6OnNlc3Npb25TdG9yYWdlUGFnZUlEKCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9zdG9yYWdl
VHlwZSA9PSBTdG9yYWdlVHlwZTo6U2Vzc2lvbik7Ci0gICAgcmV0dXJuIG1ha2VPYmplY3RJZGVu
dGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT4obV9zdG9yYWdlTmFtZXNwYWNlSUQudG9VSW50NjQo
KSk7CisgICAgcmV0dXJuICptX3Nlc3Npb25QYWdlSUQ7CiB9CiAKIHVpbnQ2NF90IFN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjpwYWdlR3JvdXBJRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAppbmRl
eCAzYTBhYjE5ZDRjMmIxYTk4YjM5MDI2ZTNjYTI0ZDNmODkwMDQ1NTZjLi4yYTFiYjQzMDQzYTQ1
OGRlMGEyZmFjM2Q3NGQ4YmQ2MDNkNzFjOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmgKQEAgLTQ0
LDcgKzQ0LDcgQEAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZUltcGwgOiBwdWJsaWMgV2ViQ29yZTo6
U3RvcmFnZU5hbWVzcGFjZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgSWRlbnRpZmllciA9IFN0b3Jh
Z2VOYW1lc3BhY2VJZGVudGlmaWVyOwogCi0gICAgc3RhdGljIFJlZjxTdG9yYWdlTmFtZXNwYWNl
SW1wbD4gY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciwgdW5zaWduZWQg
cXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7CisgICAgc3RhdGljIFJlZjxTdG9yYWdlTmFt
ZXNwYWNlSW1wbD4gY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9u
SUQpOwogICAgIHN0YXRpYyBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IGNyZWF0ZUxvY2FsU3Rv
cmFnZU5hbWVzcGFjZShJZGVudGlmaWVyLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vz
c2lvbklEKTsKICAgICBzdGF0aWMgUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBjcmVhdGVUcmFu
c2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsT3JpZ2luLCB1aW50NjRfdCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lv
bklEKTsKIApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZXNzaW9uSURG
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBTdG9y
YWdlTmFtZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSwgSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExldmVsT3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMs
IFBBTDo6U2Vzc2lvbklEKTsKKyAgICBTdG9yYWdlTmFtZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9y
YWdlVHlwZSwgSWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExldmVsT3JpZ2luLCB1bnNpZ25lZCBx
dW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIFJlZjxXZWJDb3JlOjpTdG9yYWdl
QXJlYT4gc3RvcmFnZUFyZWEoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikgb3Zl
cnJpZGU7CiAKQEAgLTcyLDYgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IFdlYkNvcmU6
OlN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7CiAgICAgY29uc3QgSWRlbnRpZmllciBtX3N0b3Jh
Z2VOYW1lc3BhY2VJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbV9z
ZXNzaW9uUGFnZUlEOwogCiAgICAgLy8gT25seSB1c2VkIGZvciB0cmFuc2llbnQgbG9jYWwgc3Rv
cmFnZSBuYW1lc3BhY2VzLgogICAgIGNvbnN0IFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4gbV90b3BMZXZlbE9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3Bw
CmluZGV4IDMwMGNjZjA3ODNhYjE5OTMxYmQzZDE0N2E5OWZjMjVhNWRkZTFhNWQuLjQ4MTgxYjQ5
MzBkNjJkMWEwNjg3NmQzNjQ3NmM5ZmE5OWY5ZTNhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyLmNwcApAQCAtNjYsNyArNjYsOCBAQCBXZWJTdG9yYWdlTmFtZXNwYWNlUHJv
dmlkZXI6On5XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIoKQogCiBSZWY8V2ViQ29yZTo6U3Rv
cmFnZU5hbWVzcGFjZT4gV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpjcmVhdGVTZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZShQYWdlJiBwYWdlLCB1bnNpZ25lZCBxdW90YSkKIHsKLSAgICByZXR1
cm4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKFdl
YlBhZ2U6OmZyb21Db3JlUGFnZSgmcGFnZSktPnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllcigpLCBxdW90YSwgcGFnZS5zZXNzaW9uSUQoKSk7CisgICAgYXV0byogd2ViUGFnZSA9IFdl
YlBhZ2U6OmZyb21Db3JlUGFnZSgmcGFnZSk7CisgICAgcmV0dXJuIFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh3ZWJQYWdlLT5zZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgd2ViUGFnZS0+cGFnZUlEKCksIHF1b3RhLCBwYWdlLnNl
c3Npb25JRCgpKTsKIH0KIAogUmVmPFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IFdlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKHVuc2lnbmVk
IHF1b3RhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA5YzY0Y2FmMDVlODMxMzQw
MWVmNGE3ZmY4MjQ0YjEwYjg4ZjBhNTY2Li4zZDgwYmUyOTk5NzUwNTkxOTRlYTEzNTEwNmFiZDJh
YTU1OWQ0NjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KQEAgLTY3Niw3ICs2NzYsNyBAQCBSZWZQdHI8T2JqQ09iamVjdEdyYXBo
PiBXZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKE9iakNPYmplY3RHcmFwaCYg
bwogICAgICAgICBSZXRhaW5QdHI8aWQ+IHRyYW5zZm9ybU9iamVjdChpZCBvYmplY3QpIGNvbnN0
IG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBoYW5kbGUgPSBkeW5h
bWljX29iamNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZT4ob2JqZWN0KSkgewotICAgICAg
ICAgICAgICAgIGlmIChhdXRvKiB3ZWJQYWdlID0gbV93ZWJQcm9jZXNzLndlYlBhZ2UoaGFuZGxl
Ll9wYWdlSUQpKQorICAgICAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJQYWdlID0gbV93ZWJQcm9j
ZXNzLndlYlBhZ2UoaGFuZGxlLl93ZWJQYWdlSUQpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gd3JhcHBlcigqd2ViUGFnZSk7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gW05TTnVsbCBu
dWxsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377633</attachid>
            <date>2019-08-29 15:24:47 -0700</date>
            <delta_ts>2019-08-29 16:00:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201225-20190829152446.patch</filename>
            <type>text/plain</type>
            <size>115393</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVlMjViZDY1NGFjYzhmYjk0
YWQ2YWYyMDgyMTA3YTMyMjc3Mzk0YTMuLjBhMGIwNjQxOTZkNGY3MjczMTZjMzMzOWVmMDU5NjBk
Yjg2NWM2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY4IEBACisyMDE5LTA4LTI5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1BTT05dIEJ1bXAgdGhlIFdlYlBh
Z2UncyBpZGVudGlmaWVyIGV2ZXJ5IHRpbWUgd2UgcHJvY2Vzcy1zd2FwCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyMjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFdmVyeSB0aW1lIHdlIGNyZWF0ZSBh
IG5ldyBXZWJQYWdlIG9iamVjdCBpbiBhIHByb3Zpc2lvbmFsIHByb2Nlc3MsIHdlIG5vdyBhc3Np
Z24gaXQgYSBuZXcKKyAgICAgICAgaWRlbnRpZmllciwgaW5zdGVhZCBvZiB1c2luZyB0aGUgaWRl
bnRpZmllciBvZiB0aGUgV2ViUGFnZSBpbiB0aGUgY29tbWl0dGVkIHByb2Nlc3MuIFRoaXMKKyAg
ICAgICAgd2lsbCBhZGRyZXNzIGlzc3VlcyB3aXRoIElQQyB3aGVuIG5hdmlnYXRpbmcgYmFjayBh
bmQgZm9ydGggYmV0d2VlbiBwcm9jZXNzZXMgc2luY2Ugd2Ugd2lsbAorICAgICAgICBubyBsb25n
ZXIgYmUgY29uZnVzZWQgYXMgdG8gd2hpY2ggV2ViUGFnZSB0aGUgSVBDIGlzIGNvbWluZyBmcm9t
LiBBbHNvLCB0aGlzIHdpbGwgYWxsb3cKKyAgICAgICAgc3VzcGVuZGVkIFdlYlBhZ2VzIHRvIGtl
ZXAgbGl2aW5nIGluIHRoZSBwcm9jZXNzLCBldmVuIGlmIHdlIHVzZSB0aGUgcHJvY2VzcyBmb3Ig
YSBuZXcgbG9hZAorICAgICAgICAod2lsbCBiZSBkb25lIGluIGEgZm9sbG93LXVwIHBhdGNoKSBz
aW5jZSB3ZSB3aWxsIG5vIGxvbmdlciBoYXZlIGFuIGlkZW50aWZpZXIgY29uZmxpY3QuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSVBhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyk6CisgICAgICAg
IChBUEk6OlBhZ2VIYW5kbGU6OlBhZ2VIYW5kbGUpOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxl
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oOgorICAgICAgICAoQVBJOjpQYWdlSGFu
ZGxlOjpwYWdlUHJveHlJRCBjb25zdCk6CisgICAgICAgIChBUEk6OlBhZ2VIYW5kbGU6OndlYlBh
Z2VJRCBjb25zdCk6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZS5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgX2luaXRXaXRo
UGFnZVByb3h5Ol0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdp
dGhQYWdlOl0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQ
YWdlUHJveHlJRDphbmRXZWJQYWdlSUQ6XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlIGhhc2hdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgaXNFcXVh
bDpdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgZW5jb2RlV2l0aENvZGVy
Ol0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBpbml0V2l0aENvZGVyOl0p
OgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRl
cm5hbC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAq
IFNoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tOgorICAgICAgICAoV2ViS2l0OjpPYmpDT2Jq
ZWN0R3JhcGg6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok9iakNPYmplY3RHcmFwaDo6ZGVj
b2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGhhbmRs
ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaGFuZGxlXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwOgorICAgICAg
ICAod2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJW
aWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdp
c3RyeSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDb21t
aXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgICogVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQ
YWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlz
aW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyk6CisgICAgICAgIChX
ZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2sp
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6d2ViUGFn
ZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
OmRpZFBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpdGVk
TGlua1N0b3JlOjphZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVmlzaXRlZExpbmtT
dG9yZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlRnJvbnRlbmRQ
YWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Om9wZW5Mb2NhbEluc3Bl
Y3RvckZyb250ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNsb3Nl
RnJvbnRlbmRQYWdlQW5kV2luZG93KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNy
ZWF0ZU5ld1BhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVU
YXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2tT
aGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VS
TFNjaGVtZVRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxT
Y2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6
c3RhcnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0Nv
bXBsZXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2s6OldlYlVSTFNjaGVtZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVU
YXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRh
c2s6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFn
ZURlc3Ryb3llZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFnZVByb3h5SUQgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjp3ZWJQYWdlSUQgY29uc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciBoYW5kbGVdKToKKyAgICAgICAgKCtbV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIGxvb2tVcEJyb3dzaW5nQ29udGV4dEZy
b21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVXaW5kb3cpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6V2ViUmVtb3RlT2JqZWN0UmVn
aXN0cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6Y2xvc2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjphZGRW
aXNpdGVkTGluayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJ
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmVzdGFibGlzaENvbm5lY3Rp
b24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6d2ViUGFnZVByb3h5SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVz
VG9PYmplY3RzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtT2JqZWN0
c1RvSGFuZGxlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OmNy
ZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5h
bWVzcGFjZUltcGw6OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1l
c3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5h
bWVzcGFjZUltcGwpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29w
eSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFn
ZVBhZ2VJRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKToKKwogMjAxOS0wOC0yOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBmZXRjaCBldmVu
dCBkaXNwYXRjaGluZyBpZiBubyBmZXRjaCBldmVudCBoYW5kbGVyIGlzIGFkZGVkIGF0IHNjcmlw
dCBldmFsdWF0aW9uIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IDc2ZmVjYzI4MDY0Mjk5ZDA1OWEyMjI5OGUzMjNmNTYxN2Y2ZGMyZDEuLjZhMjNhYzQ4
ZWUyMTEyZjY4YWI1OGIxZWFhZTVkZmIyYmFiZmNlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIyLDYgKzIyMiw3IEBAIGRlZiBmb3J3YXJkX2RlY2xh
cmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VB
cmVhSW1wbElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZp
ZXInLAorICAgICAgICAnV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyJywKICAgICBdKQog
CiAgICAgZm9yIHBhcmFtZXRlciBpbiByZWNlaXZlci5pdGVycGFyYW1ldGVycygpOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwCmluZGV4IGU2MDVhNDU5NDZmZmM3
ZjFkMDdjYjg0ZThmNWNiOTg3YmJmMzY3ZGQuLjFlMWYwNDY1MmFjZmY1ODNlNTZlY2IzOWY5NWRj
NDMzZmRlN2U3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElQYWdl
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5j
cHAKQEAgLTMxLDE4ICszMSwxOSBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAotUmVmPFBhZ2VIYW5k
bGU+IFBhZ2VIYW5kbGU6OmNyZWF0ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCitS
ZWY8UGFnZUhhbmRsZT4gUGFnZUhhbmRsZTo6Y3JlYXRlKFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZUlELCBmYWxzZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZVByb3h5SUQsIHdlYlBhZ2VJ
RCwgZmFsc2UpKTsKIH0KIAotUmVmPFBhZ2VIYW5kbGU+IFBhZ2VIYW5kbGU6OmNyZWF0ZUF1dG9j
b252ZXJ0aW5nKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK1JlZjxQYWdlSGFuZGxl
PiBQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJLaXQ6OldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgcGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWdlSGFuZGxlKHBhZ2VJRCwgdHJ1ZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZVByb3h5SUQsIHdlYlBhZ2VJ
RCwgdHJ1ZSkpOwogfQogCi1QYWdlSGFuZGxlOjpQYWdlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKQotICAgIDogbV9wYWdlSUQocGFn
ZUlEKQorUGFnZUhhbmRsZTo6UGFnZUhhbmRsZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgcGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgYm9vbCBp
c0F1dG9jb252ZXJ0aW5nKQorICAgIDogbV9wYWdlUHJveHlJRChwYWdlUHJveHlJRCkKKyAgICAs
IG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1faXNBdXRvY29udmVydGluZyhpc0F1dG9j
b252ZXJ0aW5nKQogewogfQpAQCAtNTMsMjIgKzU0LDI4IEBAIFBhZ2VIYW5kbGU6On5QYWdlSGFu
ZGxlKCkKIAogdm9pZCBQYWdlSGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXIgPDwgbV9wYWdlSUQ7CisgICAgZW5jb2RlciA8PCBtX3BhZ2VQ
cm94eUlEOworICAgIGVuY29kZXIgPDwgbV93ZWJQYWdlSUQ7CiAgICAgZW5jb2RlciA8PCBtX2lz
QXV0b2NvbnZlcnRpbmc7CiB9CiAKIGJvb2wgUGFnZUhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkKIHsKLSAgICBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwotICAgIGRlY29kZXIgPj4gcGFnZUlEOwotICAg
IGlmICghcGFnZUlEKQorICAgIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmll
cj4gcGFnZVByb3h5SUQ7CisgICAgZGVjb2RlciA+PiBwYWdlUHJveHlJRDsKKyAgICBpZiAoIXBh
Z2VQcm94eUlEKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gd2ViUGFnZUlEOworICAgIGRlY29kZXIgPj4gd2ViUGFnZUlEOwor
ICAgIGlmICghd2ViUGFnZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGlz
QXV0b2NvbnZlcnRpbmc7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc0F1dG9jb252ZXJ0aW5n
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmVzdWx0ID0gaXNBdXRvY29udmVydGlu
ZyA/IGNyZWF0ZUF1dG9jb252ZXJ0aW5nKCpwYWdlSUQpIDogY3JlYXRlKCpwYWdlSUQpOworICAg
IHJlc3VsdCA9IGlzQXV0b2NvbnZlcnRpbmcgPyBjcmVhdGVBdXRvY29udmVydGluZygqcGFnZVBy
b3h5SUQsICp3ZWJQYWdlSUQpIDogY3JlYXRlKCpwYWdlUHJveHlJRCwgKndlYlBhZ2VJRCk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9BUElQYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRs
ZS5oCmluZGV4IDZhMWNmYjY5ODI1OWJmNDhkNGQ4ZWQ1OGVjYjg3YjBmMjI2NzQzMjEuLjE4OGQx
NzUzOTI3MzNjNDY1ZWUwMjdiMzM5NzFlNjJiMzAxYmUyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0FQSVBhZ2VIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElQYWdl
SGFuZGxlX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgogCkBAIC0zOSwyMCArNDAsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAK
IGNsYXNzIFBhZ2VIYW5kbGUgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VI
YW5kbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBhZ2VIYW5kbGU+IGNyZWF0ZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7Ci0gICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVB
dXRvY29udmVydGluZyhXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQ
YWdlSGFuZGxlPiBjcmVhdGUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRv
Y29udmVydGluZyhXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5QYWdlSGFuZGxlKCk7CiAKLSAgICBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQorICAgIFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZVByb3h5SUQ7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6Ci0gICAgUGFnZUhhbmRsZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBQYWdlSGFu
ZGxlKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIGJvb2wgaXNBdXRvY29udmVydGluZyk7CiAKLSAgICBjb25zdCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBtX3BhZ2VJRDsKKyAgICBjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgbV9wYWdlUHJveHlJRDsKKyAgICBjb25zdCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3dl
YlBhZ2VJRDsKICAgICBjb25zdCBib29sIG1faXNBdXRvY29udmVydGluZzsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZS5tbQppbmRleCA3ZTk3ZjE3NmMwOGE1ODViMWI5YzI0MzBmZTk2MTNiZDNhMzkxNjlj
Li5jNmIwZWJkOWY2ZTFhZGRkODRjY2I0NjdiNTU5M2RmOTFhMTdlYTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlLm1tCkBAIC0yNiwyMSArMjYsMzYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
V0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1wb3J0ICJXZWJQYWdlLmgi
CisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+
CisKIEBpbXBsZW1lbnRhdGlvbiBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZQogCi0tIChpZClfaW5p
dFdpdGhQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXBhZ2VJRAorLSAoaWQpX2luaXRX
aXRoUGFnZVByb3h5OihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZQoreworICAgIHJldHVybiBb
c2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdlLmlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6
cGFnZS53ZWJQYWdlSUQoKV07Cit9CisKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KFdlYktpdDo6V2Vi
UGFnZSYpcGFnZQoreworICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdl
LndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS5wYWdlSUQoKV07Cit9
CisKKy0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50
aWZpZXIpcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRlbnRpZmllcil3
ZWJQYWdlSUQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKIAotICAgIF9wYWdlSUQgPSBwYWdlSUQ7CisgICAgX3BhZ2VQcm94eUlEID0gcGFn
ZVByb3h5SUQ7CisgICAgX3dlYlBhZ2VJRCA9IHdlYlBhZ2VJRDsKIAogICAgIHJldHVybiBzZWxm
OwogfQogCiAtIChOU1VJbnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX3BhZ2VJRC50b1VJbnQ2
NCgpOworICAgIHJldHVybiBXVEY6OnBhaXJJbnRIYXNoKF9wYWdlUHJveHlJRC50b1VJbnQ2NCgp
LCBfd2ViUGFnZUlELnRvVUludDY0KCkpOwogfQogCiAtIChCT09MKWlzRXF1YWw6KGlkKW9iamVj
dApAQCAtNDgsMTIgKzYzLDEzIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0CiAgICAgaWYg
KCFbb2JqZWN0IGlzS2luZE9mQ2xhc3M6W1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGNsYXNzXV0p
CiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIHJldHVybiBfcGFnZUlEID09IHN0YXRpY19jYXN0
PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCktPl9wYWdlSUQ7CisgICAgcmV0dXJu
IF9wYWdlUHJveHlJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqPihv
YmplY3QpLT5fcGFnZVByb3h5SUQgJiYgX3dlYlBhZ2VJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dz
aW5nQ29udGV4dEhhbmRsZSAqPihvYmplY3QpLT5fd2ViUGFnZUlEOwogfQogCiAtICh2b2lkKWVu
Y29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVuY29kZUludDY0
Ol9wYWdlSUQudG9VSW50NjQoKSBmb3JLZXk6QCJwYWdlSUQiXTsKKyAgICBbY29kZXIgZW5jb2Rl
SW50NjQ6X3BhZ2VQcm94eUlELnRvVUludDY0KCkgZm9yS2V5OkAicGFnZVByb3h5SUQiXTsKKyAg
ICBbY29kZXIgZW5jb2RlSW50NjQ6X3dlYlBhZ2VJRC50b1VJbnQ2NCgpIGZvcktleTpAIndlYlBh
Z2VJRCJdOwogfQogCiAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKQEAgLTYx
LDcgKzc3LDggQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFn
ZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihb
Y29kZXIgZGVjb2RlSW50NjRGb3JLZXk6QCJwYWdlSUQiXSk7CisgICAgX3BhZ2VQcm94eUlEID0g
bWFrZU9iamVjdElkZW50aWZpZXI8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyVHlwZT4o
W2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAicGFnZVByb3h5SUQiXSk7CisgICAgX3dlYlBhZ2VJ
RCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyVHlwZT4oW2Nv
ZGVyIGRlY29kZUludDY0Rm9yS2V5OkAid2ViUGFnZUlEIl0pOwogCiAgICAgcmV0dXJuIHNlbGY7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaAppbmRleCA0M2U0MWUyNGNkMzYzMzZi
NTQ3ODRiMDAzY2YxN2JiYzE2ZjY3YTY2Li44ZGVkNTlmYjU1NTE4ZDI4OTNjNzcxYjYzZWE5YmVj
NDIwNjY1OWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKQEAgLTI0LDEyICsy
NCwyMCBAQAogICovCiAKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxlLmgiCisjaW1w
b3J0ICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VJZGVu
dGlmaWVyLmg+CiAKLUBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKCkKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZTsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KIAot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3BhZ2VJRCkgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlEOworQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEhhbmRs
ZSAoKQogCi0tIChpZClfaW5pdFdpdGhQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXBh
Z2VJRDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9wYWdlUHJveHlJ
RCkgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlEOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3dlYlBhZ2VJRCkgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlEOwogCistIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6
V2ViUGFnZVByb3h5JilwYWdlOworLSAoaWQpX2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdl
JilwYWdlOworLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5
SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRXZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKXdlYlBhZ2VJRDsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZWMzMjM5M2ZhNzZjMWJmMDI5ZDI2OTIzOGYz
MWUzNmNiNjRlMDJlZi4uNWNhOTU2ZWIyMDU3ODFlMGM0Mjk1Njg1YjM2YTU1YjQ2ZTc0M2VkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKQEAgLTM5LDYgKzM5LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc3RvcmU7
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRyYXdpbmdBcmVhVHlwZSk7CiAgICAgZW5jb2RlciA8
PCBkcmF3aW5nQXJlYUlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB3ZWJQYWdlUHJveHlJZGVu
dGlmaWVyOwogICAgIGVuY29kZXIgPDwgcGFnZUdyb3VwRGF0YTsKICAgICBlbmNvZGVyIDw8IGlz
RWRpdGFibGU7CiAgICAgZW5jb2RlciA8PCB1bmRlcmxheUNvbG9yOwpAQCAtMTU3LDYgKzE1OCwx
MSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICghZHJhd2luZ0FyZWFJZGVudGlm
aWVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHBhcmFtZXRlcnMuZHJhd2lu
Z0FyZWFJZGVudGlmaWVyID0gKmRyYXdpbmdBcmVhSWRlbnRpZmllcjsKKyAgICBPcHRpb25hbDxX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiB3ZWJQYWdlUHJveHlJZGVudGlmaWVyOworICAgIGRlY29k
ZXIgPj4gd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKKyAgICBpZiAoIXdlYlBhZ2VQcm94eUlkZW50
aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcGFyYW1ldGVycy53ZWJQ
YWdlUHJveHlJZGVudGlmaWVyID0gV1RGTW92ZSgqd2ViUGFnZVByb3h5SWRlbnRpZmllcik7CiAg
ICAgT3B0aW9uYWw8V2ViUGFnZUdyb3VwRGF0YT4gcGFnZUdyb3VwRGF0YTsKICAgICBkZWNvZGVy
ID4+IHBhZ2VHcm91cERhdGE7CiAgICAgaWYgKCFwYWdlR3JvdXBEYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGUxOWQ5OTZh
MTYzYjU1MzAyMGFjNTEyNTI5ZmZmZGRmMDU1NzdhMjQuLjEwMTI0ZDBmYjBjNGJkZGExODc2ODll
MWNiODM2OGNkZGEwMDcxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCisjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNs
dWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTgwLDYgKzgxLDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMgewogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmU7CiAgICAgRHJh
d2luZ0FyZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKICAgICBEcmF3aW5nQXJlYUlkZW50aWZpZXIg
ZHJhd2luZ0FyZWFJZGVudGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFn
ZVByb3h5SWRlbnRpZmllcjsKICAgICBXZWJQYWdlR3JvdXBEYXRhIHBhZ2VHcm91cERhdGE7CiAK
ICAgICBib29sIGlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvT2JqQ09iamVjdEdyYXBoLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL09iakNPYmpl
Y3RHcmFwaC5tbQppbmRleCBmZTY2ZGU2NTkyYWEwYWYyMzQ1ODgyZGIzZDQxYTEyY2EyYjliYzE2
Li4wZWFmMDZmNWNhNGJiZmM3NTc5NTczMjE1NjRkM2JkZmZiOTUwYzM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KQEAgLTE4Niw3ICsxODYsOCBAQCB2
b2lkIE9iakNPYmplY3RHcmFwaDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgaWQgb2Jq
ZWN0KQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgT2JqQ1R5cGU6OldLQnJvd3NpbmdDb250
ZXh0SGFuZGxlOgotICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PFdLQnJvd3NpbmdDb250
ZXh0SGFuZGxlICo+KG9iamVjdCkucGFnZUlEOworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCkucGFnZVByb3h5SUQ7CisgICAg
ICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKj4ob2Jq
ZWN0KS53ZWJQYWdlSUQ7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBPYmpDVHlwZTo6V0tU
eXBlUmVmV3JhcHBlcjoKQEAgLTI5OCwxMiArMjk5LDE2IEBAIGJvb2wgT2JqQ09iamVjdEdyYXBo
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8aWQ+JiByZXN1bHQpCiAg
ICAgfQogCiAgICAgY2FzZSBPYmpDVHlwZTo6V0tCcm93c2luZ0NvbnRleHRIYW5kbGU6IHsKLSAg
ICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKLSAgICAgICAg
ZGVjb2RlciA+PiBwYWdlSUQ7Ci0gICAgICAgIGlmICghcGFnZUlEKQorICAgICAgICBPcHRpb25h
bDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBwYWdlUHJveHlJRDsKKyAgICAgICAgZGVjb2RlciA+
PiBwYWdlUHJveHlJRDsKKyAgICAgICAgaWYgKCFwYWdlUHJveHlJRCkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHdl
YlBhZ2VJRDsKKyAgICAgICAgZGVjb2RlciA+PiB3ZWJQYWdlSUQ7CisgICAgICAgIGlmICghd2Vi
UGFnZUlEKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHJlc3VsdCA9IGFk
b3B0TlMoW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZUlEOipw
YWdlSURdKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0SGFu
ZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJveHlJRDoqcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlE
Oip3ZWJQYWdlSURdKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlci5tbQppbmRleCAxMTAwMzNiYTZmYTRmN2MwNmYwZjUzNzJhMmRhNTUzODU3MDE0
MmEwLi43OWVkMjVlYjc5NDYyNTMxMDM0NTczNmEyZGNhODJjNzJiNTUxZTQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTcyMCw3ICs3MjAsNyBAQCAtIChOU1VJbnRlZ2Vy
KXBhZ2VDb3VudAogCiAtIChXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqKWhhbmRsZQogewotICAg
IHJldHVybiBbW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZUlE
Ol9wYWdlLT53ZWJQYWdlSUQoKV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBbW1tXS0Jyb3dz
aW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZVByb3h5OipfcGFnZV0gYXV0b3Jl
bGVhc2VdOwogfQogCiAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RS
ZWdpc3RyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggY2M3ZjZjOTYyNTg3NTg1MGNhNmFjMmMwODViNDc3ZjY2Y2M4ZjEyYS4uNzQzZmYy
YzZjZmQ3ODVmNTJhYWU2OGM4MmU5Yzc0N2U2NGUwZWMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04NzcsNyArODc3LDcgQEAgLSAo
dm9pZClkZWFsbG9jCiAgICAgW19jb250ZW50VmlldyBfd2ViVmlld0Rlc3Ryb3llZF07CiAKICAg
ICBpZiAoX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAgICAgICBfcGFnZS0+cHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RS
ZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+d2ViUGFnZUlEKCkpOworICAg
ICAgICBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBf
cGFnZS0+aWRlbnRpZmllcigpKTsKICNlbmRpZgogCiAgICAgX3BhZ2UtPmNsb3NlKCk7CkBAIC00
NzI1LDcgKzQ3MjUsNyBAQCAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmpl
Y3RSZWdpc3RyeQogI2Vsc2UKICAgICBpZiAoIV9yZW1vdGVPYmplY3RSZWdpc3RyeSkgewogICAg
ICAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0UmVn
aXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eToqX3BhZ2VdKTsKLSAgICAgICAgX3Bh
Z2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgX3BhZ2UtPndlYlBh
Z2VJRCgpLCBbX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7Cisg
ICAgICAgIF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIF9w
YWdlLT5pZGVudGlmaWVyKCksIFtfcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVn
aXN0cnldKTsKICAgICB9CiAKICAgICByZXR1cm4gX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LmdldCgp
OwpAQCAtNDczNCw3ICs0NzM0LDcgQEAgLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilfcmVt
b3RlT2JqZWN0UmVnaXN0cnkKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKilfaGFuZGxl
CiB7Ci0gICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdp
dGhQYWdlSUQ6X3BhZ2UtPndlYlBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIFtb
W1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJveHk6Kl9wYWdl
XSBhdXRvcmVsZWFzZV07CiB9CiAKIC0gKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKV9vYnNl
cnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IDU0
YTI0MDUyNGI5MGUzYmUwODRjYzU5ZDJjNTJhNjIwN2E2NTliNmEuLjRmMWU4YmIyODRmYzBjMmZh
MWRkMzdkNTk5Yjg0MmFkMTkyNzM5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC04Nyw3
ICs4Nyw3IEBAIFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHdlYmtpdFVSSVNjaGVtZVJlcXVlc3RD
cmVhdGUodWludDY0X3QgcmVxdWVzdElELCBXZWJLaXRXCiAgICAgcmVxdWVzdC0+cHJpdi0+cmVx
dWVzdElEID0gcmVxdWVzdElEOwogCiAgICAgQVNTRVJUKHJlc291cmNlUmVxdWVzdC5pbml0aWF0
aW5nUGFnZUlEKCkpOwotICAgIHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdlID0gV2ViUHJv
Y2Vzc1Byb3h5Ojp3ZWJQYWdlKCpyZXNvdXJjZVJlcXVlc3QuaW5pdGlhdGluZ1BhZ2VJRCgpKTsK
KyAgICByZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2Vi
UGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIoKnJlc291cmNlUmVxdWVzdC5pbml0aWF0aW5nUGFn
ZUlEKCkpOwogICAgIEFTU0VSVChyZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZSk7CiAKICAg
ICByZXR1cm4gcmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggYjFlYzg0NmI3YjQ2MDU0OGNlMGY4NmQ3
YTVkMTE3YTY3Njc4YzRmMS4uMWE4MjUzYWMwNDIyZDFlZWE0OTk4Mzc5YjU2Mjg0NmM1NWJjNzYx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1By
b3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Byb3h5Q29jb2EubW0KQEAgLTc2LDcgKzc2LDcgQEAgUmVmUHRyPE9iakNPYmplY3RHcmFwaD4g
V2ViUHJvY2Vzc1Byb3h5Ojp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKE9iakNPYmplY3RHcmEK
ICAgICAgICAgUmV0YWluUHRyPGlkPiB0cmFuc2Zvcm1PYmplY3QoaWQgb2JqZWN0KSBjb25zdCBv
dmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYXV0byogaGFuZGxlID0gZHluYW1p
Y19vYmpjX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGU+KG9iamVjdCkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gbV93ZWJQcm9jZXNzUHJveHkud2ViUGFn
ZShoYW5kbGUucGFnZUlEKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJQYWdlUHJv
eHkgPSBtX3dlYlByb2Nlc3NQcm94eS53ZWJQYWdlKGhhbmRsZS5wYWdlUHJveHlJRCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgX2Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXJGb3JQYWdlUmVmOnRvQVBJKHdlYlBhZ2VQcm94eSldOwog
ICAgICAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggZjQwNDJm
ZTcwZGY2MTY2NGFmODljZjBhNDNlOTY5ZmU2MzU0NmI2Mi4uMzVhYzRkZjZlNWVkZDA3NDdhNzNk
YmU1YmNhYzNiNmE1OTMyMzJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KQEAgLTEzNjIsNyArMTM2Miw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3
SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXS1dlYlZpZXcgKm91dGVy
V2ViCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKIHsKICAgICBpZiAobV9yZW1vdGVPYmpl
Y3RSZWdpc3RyeSkgewotICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgICAgIG1fcGFnZS0+
cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpS
ZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPmlkZW50
aWZpZXIoKSk7CiAgICAgICAgIFttX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbnZhbGlkYXRlXTsK
ICAgICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG5pbDsKICAgICB9CkBAIC0zODIzLDcg
KzM4MjMsNyBAQCBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV2ViVmlld0ltcGw6OnJlbW90ZU9i
amVjdFJlZ2lzdHJ5KCkKIHsKICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKICAg
ICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSBhbGxvY10gX2luaXRXaXRoV2ViUGFnZVByb3h5Om1fcGFnZV0pOwotICAgICAgICBt
X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT53
ZWJQYWdlSUQoKSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnld
KTsKKyAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZS0+aWRlbnRpZmllcigpLCBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVP
YmplY3RSZWdpc3RyeV0pOwogICAgIH0KIAogICAgIHJldHVybiBtX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNjhjZGFkYjc2ODk4Y2EzOTc4NDc5OGYyMzk5
ODdkMzJkZmUzOTllOC4uNDUwOTIyNDIxMDBhMDg5YmU0YTY0MDNjOWM2ZDE3YmQzMzE1ZDIxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCkBAIC0zNDMsNyArMzQzLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2kKIAogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IG51bGxwdHI7CiAgICAgaWYgKHBhZ2VJRCkK
LSAgICAgICAgcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgICAg
ICBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihw
YWdlSUQpOwogCiAgICAgaWYgKHBhZ2UpIHsKICAgICAgICAgcGFnZS0+ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkoV1RGTW92ZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkp
OwpAQCAtNDEyLDcgKzQxMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNo
TGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29uCiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdl
YkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiB7Ci0gICAgV2ViUGFnZVByb3h5KiBw
YWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5
KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihw
YWdlSUQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyB0aGlzIG51bGwtY2hlY2sgYmVjYXVzZSBieSB0
aGUgdGltZSB0aGUgZGVjaXNpb24gdG8gbG9nIGlzIG1hZGUsIHRoZSBwYWdlIG1heSBiZSBnb25l
LiBXZSBzaG91bGQgcmVmYWN0b3IgdG8gYXZvaWQgdGhpcywKICAgICAvLyBidXQgZm9yIG5vdyB3
ZSBzaW1wbHkgZHJvcCB0aGUgbWVzc2FnZSBpbiB0aGUgcmFyZSBjYXNlIHRoaXMgaGFwcGVucy4K
ICAgICBpZiAoIXBhZ2UpCkBAIC00MjMsNyArNDIzLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFN0
cmkKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhS
ZXN1bHQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNz
UHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9j
ZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBhZ2VJRCk7CiAgICAgLy8g
RklYTUU6IFdlIGRvIHRoaXMgbnVsbC1jaGVjayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBkZWNp
c2lvbiB0byBsb2cgaXMgbWFkZSwgdGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZh
Y3RvciB0byBhdm9pZCB0aGlzLAogICAgIC8vIGJ1dCBmb3Igbm93IHdlIHNpbXBseSBkcm9wIHRo
ZSBtZXNzYWdlIGluIHRoZSByYXJlIGNhc2UgdGhpcyBoYXBwZW5zLgogICAgIGlmICghcGFnZSkK
QEAgLTQzNCw3ICs0MzQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdChQYWdlSWRlbnRpZmllciBwYWdlSUQsCiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpT
aG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdl
YlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsK
ICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyBudWxsLWNoZWNrIGJlY2F1c2UgYnkgdGhlIHRpbWUg
dGhlIGRlY2lzaW9uIHRvIGxvZyBpcyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUgZ29uZS4gV2Ugc2hv
dWxkIHJlZmFjdG9yIHRvIGF2b2lkIHRoaXMsCiAgICAgLy8gYnV0IGZvciBub3cgd2Ugc2ltcGx5
IGRyb3AgdGhlIG1lc3NhZ2UgaW4gdGhlIHJhcmUgY2FzZSB0aGlzIGhhcHBlbnMuCiAgICAgaWYg
KCFwYWdlKQpAQCAtNzc3LDcgKzc3Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFn
ZShwYWdlSUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2Vi
UGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47CkBAIC05NjAs
NyArOTYwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDb21taXRDcm9zc1NpdGVM
b2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXMKICAgICBpZiAoIWNhblNlbmRNZXNz
YWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlBy
b2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdl
YlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTI2MCw3ICsxMjYwLDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclVwbG9hZEFzc2VydGlvbigpCiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0
aW5nRm9yU3luY1JlcGx5KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNX
aGVuV2FpdGluZ0ZvclN5bmNSZXBseTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgYXV0
byogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZSh3ZWJQYWdlSUQpOworICAgIGF1dG8q
IHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHdl
YlBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gcmVwbHkoZmFsc2UpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAK
aW5kZXggMGMwMzQwNjkwNDEwNmUyNTdkNmYzYThlMmY4MGI3ZWVlMTkyMTM1ZS4uYTJhMDlkYzQ5
MjVkZjQyZTU0ODQ0NTBiZWY0Nzk3OGMwMzk3ZjllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtNTQsNyArNTQsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFs
UGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVuZGVkUGFnZVByb3h5PiBzdXNwZW5kZWRQYWdlLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgaXNTZXJ2ZXJSZWRpcmVjdCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCiAgICAgOiBtX3BhZ2UocGFnZSkKLSAgICAs
IG1fd2ViUGFnZUlEKHBhZ2Uud2ViUGFnZUlEKCkpCisgICAgLCBtX3dlYlBhZ2VJRChzdXNwZW5k
ZWRQYWdlID8gc3VzcGVuZGVkUGFnZS0+d2ViUGFnZUlEKCkgOiBQYWdlSWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKSkKICAgICAsIG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nlc3MpKQogICAgICwgbV9uYXZp
Z2F0aW9uSUQobmF2aWdhdGlvbklEKQogICAgICwgbV9pc1NlcnZlclJlZGlyZWN0KGlzU2VydmVy
UmVkaXJlY3QpCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
bG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGEKIHsK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImxvYWREYXRhOiBw
YWdlUHJveHlJRCA9ICUiIFBSSXU2NCAiIHdlYlBhZ2VJRCA9ICUiIFBSSXU2NCwgbV9wYWdlLmlk
ZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpKTsKIAotICAgIG1f
cGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG5h
dmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFdl
YkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcykpOworICAgIG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwg
ZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAogdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9u
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3JlOjpTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9s
aWNpZXMpCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9h
ZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXMKICAgICBp
ZiAobmF2aWdhdGlvbi5mcm9tSXRlbSgpICYmIG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3YXJkTGlz
dCgpID09IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6OlllcykKICAgICAgICAgbmF2aWdh
dGlvbi5mcm9tSXRlbSgpLT5zZXRMYXN0UHJvY2Vzc0lkZW50aWZpZXIobV9wcm9jZXNzLT5jb3Jl
UHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAKLSAgICBtX3BhZ2UubG9hZFJlcXVlc3RXaXRoTmF2aWdh
dGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVl
c3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7
CisgICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIFdURk1vdmUocmVxdWVzdCksIHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFz
Q29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAogdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRp
b24mIG5hdmlnYXRpb24sIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIE9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMjg3LDEzICsyODcsMTMg
QEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWUKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRh
dGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LAorICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0Rh
dGEsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwKICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CiAgICAg
aWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3Jp
Z2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwKKyAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBXVEZNb3ZlKGZy
YW1lU2VjdXJpdHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2
aWdhdGlvbkFjdGlvbkRhdGEpLAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmln
aW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3Rl
bmVySUQpOwogfQogCkBAIC0zMDMsNyArMzAzLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnMK
ICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIs
IG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxv
YWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBtX3BhZ2UuZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIGZy
YW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVz
cG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3Rl
bmVySUQsIHVzZXJEYXRhKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKQEAg
LTMyNCw3ICszMjQsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcgogCiB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogewotICAgIG1fcGFnZS5zdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgbV9wYWdlLnN0YXJ0
VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgV1RG
TW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tG
b3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYg
aWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNr
Rm9yd2FyZEl0ZW1JZGUKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wg
aXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAotICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0
aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEm
JiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5oCmluZGV4IDViNGM5Y2YyZWRiNzJjNGM5MmNlNTFjYjJkYjIzYWZjNmVlZDc4
MmQuLjE3NTIxNTA0NzQ4YmZiNmYyMDYzY2UxNGNhNDVmZDFjYzcxODNlY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNjUsNiArNjUs
NyBAQCBwdWJsaWM6CiAgICAgflByb3Zpc2lvbmFsUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdl
UHJveHkmIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYkZy
YW1lUHJveHkqIG1haW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9
CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgp
OyB9CiAgICAgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
OyB9CkBAIC05Myw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCi0gICAg
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
CisgICAgICAgIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwK
ICAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7CkBAIC0xMDksNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2
b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
JiYpPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAotICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksCisgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5
JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9y
UXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggN2I5NWI2
ZWRlOGEzOWE3MDk2N2M0ZjMyNjc3ZTJmZjhlNzEyYjFmNi4uMWFjM2Q4ODE1MWI5Nzc0NTUxNzEy
YzkzYmE2ZDZmMjA5OGE1ZjcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3VzcGVuZGVkUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVu
ZGVkUGFnZVByb3h5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIH5TdXNwZW5kZWRQ
YWdlUHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZTsgfQorICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fd2ViUGFnZUlEOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgeyBy
ZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1h
aW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXggMTA3YmIyMjcwODZjM2NjNDAxMDBi
M2UyNzBkOTY3YTRiYjFhN2ZmYi4uZWFmYzQ1NzI5OTI4NTc3NjFmZmYyMTdlODU0NTYxOTM4ZmIw
YWYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcApAQCAtMzMy
LDkgKzMzMiw5IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFs
bFVzZXJNZXNzYWdlSGFuZGxlcnMoQVBJOjpVc2VyQ29udGVuCiAgICAgcmVtb3ZlVXNlckNvbnRl
bnRXb3JsZFVzZXMod29ybGQsIG51bWJlclJlbW92ZWQpOwogfQogCi12b2lkIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjpkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJ
bmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBkYXRhUmVmZXJlbmNlKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6
ZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHBhZ2VQcm94eUlELCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm9EYXRh
LCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGFSZWZlcmVuY2UpCiB7Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5
Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlKHBhZ2VQcm94eUlEKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKaW5kZXggZTY0NDRiMmY0
MThjMTQ1NTJhMTNkODhlZWM3Njc4YWU2NzJkMGFhOC4uNDY5ZDMwZTMxZWE5MTNiY2Y3MDQ1ZDhm
MDMxZTcxOGM1MGZiZDc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5o
CkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWRQb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2
NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOworICAgIHZv
aWQgZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCiAgICAgdm9pZCBhZGRVc2VyQ29udGVudFdvcmxkVXNl
KEFQSTo6VXNlckNvbnRlbnRXb3JsZCYpOwogICAgIHZvaWQgcmVtb3ZlVXNlckNvbnRlbnRXb3Js
ZFVzZXMoQVBJOjpVc2VyQ29udGVudFdvcmxkJiwgdW5zaWduZWQgbnVtYmVyT2ZVc2VzVG9SZW1v
dmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdl
cy5pbgppbmRleCAyNWE0ZTI5MTI3NGVlMDM2OWZkZDE2ZWUwMDVjMmM5NWY5ZmFmMjc1Li44ZDIw
MGExZTZlOWZiODllNWYwNGI1ZTU4NmU1NGU0NDlkYzFmOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNSArMjQsNSBA
QAogICovCiAKIG1lc3NhZ2VzIC0+IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5IHsKLURp
ZFBvc3RNZXNzYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3RydWN0IFdlYktp
dDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklE
LCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkgV2FudHNDb25uZWN0aW9uCitEaWRQb3N0TWVz
c2FnZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG1lc3NhZ2VIYW5kbGVySUQs
IElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlKSBXYW50c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5jcHAKaW5kZXggZDc5ZDdhZDg0NmM3
M2I5OWE4ZDQyYzZmZWE5MWE3OGY3ZDZiMjMzNC4uYmI2NTA5OTAzNDlmMGYyMzJiYzhkMzA3NTYw
MTMzZmQ3NmFhMjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRl
ZExpbmtTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtT
dG9yZS5jcHAKQEAgLTEwMCwxMCArMTAwLDkgQEAgdm9pZCBWaXNpdGVkTGlua1N0b3JlOjpyZW1v
dmVBbGwoKQogICAgIH0KIH0KIAotdm9pZCBWaXNpdGVkTGlua1N0b3JlOjphZGRWaXNpdGVkTGlu
a0hhc2hGcm9tUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFNoYXJlZFN0cmluZ0hhc2ggbGlu
a0hhc2gpCit2b2lkIFZpc2l0ZWRMaW5rU3RvcmU6OmFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdl
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQsIFNoYXJlZFN0cmluZ0hhc2ggbGlu
a0hhc2gpCiB7Ci0gICAgLy8gRklYTUU6IE5lZWRzIHRvIGxvb2sgdXAgV2ViUGFnZVByb3h5IGZy
b20gV2ViUGFnZUlELgotICAgIGlmIChhdXRvKiB3ZWJQYWdlUHJveHkgPSBXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2UocGFnZUlEKSkgeworICAgIGlmIChhdXRvKiB3ZWJQYWdlUHJveHkgPSBXZWJQ
cm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZVByb3h5SUQpKSB7CiAgICAgICAgIGlmICghd2ViUGFn
ZVByb3h5LT5hZGRzVmlzaXRlZExpbmtzKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5oCmluZGV4IDQ0NjkzNTM0
NDgxZTJiZjAwZDMxNDI2ZjIwYTg3YmFlYmY5Y2ZiOTguLmM1YzMwODFhYWZhMzE0Y2VlZDU5YzQz
N2MwNTRkMDJjNzAyYmQ3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zp
c2l0ZWRMaW5rU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlu
a1N0b3JlLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoU3RvcmUu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvSWRlbnRpZmllZC5oPgpAQCAtNjEsNyArNjEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkSW52YWxpZGF0ZVNoYXJlZE1lbW9yeSgpIGZpbmFs
OwogICAgIHZvaWQgZGlkVXBkYXRlU2hhcmVkU3RyaW5nSGFzaGVzKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTaGFyZWRTdHJpbmdIYXNoPiYgYWRkZWRIYXNoZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpTaGFyZWRTdHJpbmdIYXNoPiYgcmVtb3ZlZEhhc2hlcykgZmluYWw7CiAKLSAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTaGFyZWRTdHJpbmdIYXNoKTsKKyAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdl
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlNoYXJlZFN0cmluZ0hhc2gpOwogCiAg
ICAgdm9pZCBzZW5kU3RvcmVIYW5kbGVUb1Byb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5Jik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2Vz
LmluCmluZGV4IDJlNjZjNDI4MDhlYmI3ZWJjZjM5MzE5YjEwODZhOTI3ZjMzMTM2MWUuLjA3MzIx
YzUxZjdlNzkwN2ZiODQwM2E5ZDM5OTJkNzRlN2E0OTk1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5tZXNzYWdlcy5pbgpAQCAtMjEsNSAr
MjEsNSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBWaXNpdGVkTGlua1N0b3JlIHsK
LSAgICBBZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQ2NF90IGxpbmtIYXNoKQorICAgIEFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdl
KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCwgdWludDY0X3QgbGlu
a0hhc2gpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0
b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5j
cHAKaW5kZXggZTYyMWE4ZmQ4M2UxZjkwM2U2YzY2ZmY2MjVjMzliMDk2MGVmMjNkMi4uNzc2ODk0
YzdhMGQyNWE1YjFiZjhhNzUyZDBkMWQ2YWIzODU1YmZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcApAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUZyb250ZW5kUGFnZSgpCiAKICAgICB0cmFja0luc3Bl
Y3RvclBhZ2UobV9pbnNwZWN0b3JQYWdlLCBtX2luc3BlY3RlZFBhZ2UpOwogCi0gICAgbV9pbnNw
ZWN0b3JQYWdlLT5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNw
ZWN0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2luc3BlY3RlZFBhZ2UtPndlYlBh
Z2VJRCgpLCAqdGhpcyk7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuYWRkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX2luc3BlY3RlZFBhZ2UtPmlkZW50aWZpZXIoKSwgKnRoaXMpOwogICAgIG1faW5zcGVj
dG9yUGFnZS0+cHJvY2VzcygpLmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKm1faW5zcGVjdG9y
UGFnZSwgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvckJhc2VVUkwoKSk7CiB9CiAKQEAgLTQx
MSw3ICs0MTEsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpvcGVuTG9jYWxJbnNwZWN0b3JG
cm9udGVuZChib29sIGNhbkF0dGFjaCwgYm9vbCB1bmRlclRlcwogICAgIGlmICghbV9pbnNwZWN0
b3JQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3Mo
KS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RXN0YWJsaXNoQ29ubmVjdGlvbihtX2lu
c3BlY3RlZFBhZ2UtPndlYlBhZ2VJRCgpLCBtX3VuZGVyVGVzdCwgaW5zcGVjdGlvbkxldmVsKCkp
LCBtX2luc3BlY3RvclBhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX2luc3BlY3RvclBhZ2UtPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RXN0YWJsaXNoQ29ubmVjdGlv
bihtX2luc3BlY3RlZFBhZ2UtPmlkZW50aWZpZXIoKSwgbV91bmRlclRlc3QsIGluc3BlY3Rpb25M
ZXZlbCgpKSwgbV9pbnNwZWN0b3JQYWdlLT53ZWJQYWdlSUQoKSk7CiAKICAgICBBU1NFUlQoIW1f
aXNBY3RpdmVGcm9udGVuZCk7CiAgICAgbV9pc0FjdGl2ZUZyb250ZW5kID0gdHJ1ZTsKQEAgLTQ4
NSw3ICs0ODUsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjbG9zZUZyb250ZW5kUGFnZUFu
ZFdpbmRvdygpCiAgICAgdW50cmFja0luc3BlY3RvclBhZ2UobV9pbnNwZWN0b3JQYWdlKTsKIAog
ICAgIG1faW5zcGVjdG9yUGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3Rv
clVJOjpTZXRJc1Zpc2libGUobV9pc1Zpc2libGUpLCBtX2luc3BlY3RvclBhZ2UtPndlYlBhZ2VJ
RCgpKTsKLSAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
aW5zcGVjdGVkUGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1faW5zcGVjdG9yUGFnZS0+cHJvY2Vz
cygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pbnNwZWN0ZWRQYWdlLT5pZGVudGlmaWVyKCkpOwogCiAg
ICAgaWYgKG1faXNBY3RpdmVGcm9udGVuZCkgewogICAgICAgICBtX2lzQWN0aXZlRnJvbnRlbmQg
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDE0
MTcyNzZjZmMxMjY4ZDNlMzY0ZGFlNTcxM2RkM2FjZmVkY2U2ZjYuLjk0NGRiOWNlYjQxN2EwYmM3
NWQyMmVjYjNmMDcxOWU4MzE1Mjg1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNzk0LDEyICs3OTQsMTMgQEAgYm9vbCBXZWJQYWdlUHJveHk6OnN1c3Bl
bmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHQK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nl
c3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZy
YW1lKQordm9pZCBXZWJQYWdlUHJveHk6OnN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIHN0ZDo6dW5pcXVlX3B0
cjxEcmF3aW5nQXJlYVByb3h5PiYmIGRyYXdpbmdBcmVhLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4m
JiBtYWluRnJhbWUpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJzd2FwVG9XZWJQcm9jZXNzOiIpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgInN3YXBUb1dlYlByb2Nlc3M6IG5ld1dlYlBhZ2VJRD0l
IiBQUkl1NjQsIHdlYlBhZ2VJRC50b1VJbnQ2NCgpKTsKIAogICAgIG1fcHJvY2VzcyA9IFdURk1v
dmUocHJvY2Vzcyk7CisgICAgbV93ZWJQYWdlSUQgPSB3ZWJQYWdlSUQ7CiAgICAgbV93ZWJzaXRl
RGF0YVN0b3JlID0gbV9wcm9jZXNzLT53ZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICBpZiAobV9s
b2dnZXIpCkBAIC0xMTI1LDExICsxMTI2LDExIEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdl
YlBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2hvCiAg
ICAgICAgIGxhdW5jaFByb2Nlc3MoUmVnaXN0cmFibGVEb21haW4geyByZXF1ZXN0LnVybCgpIH0p
OwogCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRS
ZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1fYmFja0ZvcndhcmRM
aXN0LT5jdXJyZW50SXRlbSgpKTsKLSAgICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUocmVxdWVzdCks
IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6Ok5vKTsKKyAgICBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3Zl
KHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7CiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgQVBJOjpOYXZp
Z2F0aW9uJiBuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9s
aWNpZXMpCiB7CiAgICAgQVNTRVJUKCFtX2lzQ2xvc2VkKTsKIApAQCAtMTE1NSw3ICsxMTU2LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKIAogICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRl
cnMobG9hZFBhcmFtZXRlcnMpOwogCi0gICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCBtX3dlYlBhZ2VJRCk7CisgICAgcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFJlcXVlc3QobG9hZFBhcmFtZXRlcnMpLCB3
ZWJQYWdlSUQpOwogICAgIHByb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwog
fQogCkBAIC0xMjI3LDExICsxMjI4LDExIEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBh
Z2VQcm94eTo6bG9hZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjCiAgICAg
ICAgIGxhdW5jaFByb2Nlc3MoeyB9KTsKIAogICAgIGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdh
dGlvblN0YXRlLT5jcmVhdGVMb2FkRGF0YU5hdmlnYXRpb24obWFrZVVuaXF1ZTxBUEk6OlN1YnN0
aXR1dGVEYXRhPihkYXRhLnZlY3RvcigpLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVz
ZXJEYXRhKSk7Ci0gICAgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVz
ZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLCBXVEY6Om51bGxvcHQsIHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIGxvYWREYXRhV2l0aE5hdmlnYXRpb25T
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIG5hdmlnYXRpb24sIGRhdGEs
IE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZDo6Tm8sIFdURjo6bnVsbG9wdCwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSk7CiAgICAgcmV0dXJuIG5hdmlnYXRpb247CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpsb2Fk
RGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
QVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0
IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlUHJveHk6Omxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEFQSTo6TmF2aWdhdGlvbiYgbmF2
aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1J
TUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQ
STo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJz
aXRlUG9saWNpZXMsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJs
b2FkRGF0YVdpdGhOYXZpZ2F0aW9uIik7CiAKQEAgLTEyNTQsNyArMTI1NSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0
ZXJzKTsKIAogICAgIHByb2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJh
c2VVUkwpOwotICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxv
YWRQYXJhbWV0ZXJzKSwgbV93ZWJQYWdlSUQpOworICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwgd2ViUGFnZUlEKTsKICAgICBwcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIH0KIApAQCAtMjk1OSw3ICsyOTYw
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWcKICAgICBpZiAoIWRpZFN1c3BlbmRQcmV2aW91
c1BhZ2UpCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2Uo
KSwgbV93ZWJQYWdlSUQpOwogCi0gICAgc3dhcFRvV2ViUHJvY2VzcyhtX3Byb3Zpc2lvbmFsUGFn
ZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+dGFrZURyYXdpbmdBcmVhKCksIG1fcHJv
dmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKSk7CisgICAgc3dhcFRvV2ViUHJvY2VzcyhtX3Byb3Zp
c2lvbmFsUGFnZS0+cHJvY2VzcygpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+d2ViUGFnZUlEKCksIG1f
cHJvdmlzaW9uYWxQYWdlLT50YWtlRHJhd2luZ0FyZWEoKSwgbV9wcm92aXNpb25hbFBhZ2UtPm1h
aW5GcmFtZSgpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGF1dG8gYWNjZXNzaWJpbGl0
eVRva2VuID0gbV9wcm92aXNpb25hbFBhZ2UtPnRha2VBY2Nlc3NpYmlsaXR5VG9rZW4oKTsKQEAg
LTI5OTksNyArMzAwMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRpb25J
bk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBzCiAgICAgaWYgKG1fYmFj
a0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpICYmIChuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2Fy
ZExpc3QoKSA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMgfHwgbmF2aWdhdGlvbi5sb2NrSGlz
dG9yeSgpID09IExvY2tIaXN0b3J5OjpZZXMpKSB7CiAgICAgICAgIC8vIElmIFdlYkNvcmUgaXMg
c3VwcG9zZWQgdG8gbG9jayB0aGUgaGlzdG9yeSBmb3IgdGhpcyBsb2FkLCB0aGVuIHRoZSBuZXcg
cHJvY2VzcyBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBjdXJyZW50IGhpc3RvcnkgaXRlbSBzbyBp
dCBjYW4gdXBkYXRlCiAgICAgICAgIC8vIGl0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25l
LgotICAgICAgICBuZXdQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRDdXJyZW50
SGlzdG9yeUl0ZW1Gb3JSZWF0dGFjaChtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+
aXRlbVN0YXRlKCkpLCBtX3dlYlBhZ2VJRCk7CisgICAgICAgIG5ld1Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldEN1cnJlbnRIaXN0b3J5SXRlbUZvclJlYXR0YWNoKG1fYmFja0Zv
cndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtU3RhdGUoKSksIG1fcHJvdmlzaW9uYWxQYWdl
LT53ZWJQYWdlSUQoKSk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBv
ZiByZXNwb25kaW5nIHdpdGggdGhlIGxhc3QgcG9saWN5IGRlbGVnYXRlLCBldGMKQEAgLTQ2MjIs
MjMgKzQ2MjMsMjMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlY2so
Y29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW4KICNlbmRpZgogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELAotICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRh
dGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LAorICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRf
dCBsaXN0ZW5lcklEKQogewotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Y1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBXVEZNb3ZlKGZyYW1lU2VjdXJp
dHlPcmlnaW4pLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFj
dGlvbkRhdGEpLAorICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFt
ZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb25EYXRhKSwKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2lu
YXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShy
ZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5l
cklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLAotICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0
eU9yaWdpbiwKKyAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAgIGF1dG8qIGZyYW1lID0g
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhwcm9jZXNzLCBm
cmFtZSk7CiAKLSAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUo
aWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJ
RCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IHByb2Nlc3MuY29weVJlZigpXSAoYXV0by4uLiBhcmdz
KSB7Ci0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBhcmdzLi4uKSwgbV93ZWJQYWdlSUQp
OworICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlm
aWVyLCBbd2ViUGFnZUlELCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gcHJvY2Vzcy5j
b3B5UmVmKCldIChhdXRvLi4uIGFyZ3MpIHsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQs
IGFyZ3MuLi4pLCB3ZWJQYWdlSUQpOwogICAgIH0pOwogCiAgICAgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihwcm9jZXNzLmNvcHlSZWYoKSwgKmZyYW1lLCBXVEZNb3ZlKGZyYW1lU2Vj
dXJpdHlPcmlnaW4pLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEp
LCBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwKQEAgLTQ2NDYsNyAr
NDY0Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcywgV2ViRnJhbWVQcm94eSYgZnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYg
b3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAorICAgIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIFJlZjxQb2xpY3lEZWNp
c2lvblNlbmRlcj4mJiBzZW5kZXIpCiB7CiAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gLSBPcmlnaW5hbCBVUkwgJXMsIGN1cnJl
bnQgdGFyZ2V0IFVSTCAlcyIsIG9yaWdpbmFsUmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtNDg2MCw3
ICs0ODYxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWcKICNlbmRpZgogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKQEAgLTQ4NzgsNyArNDg3OSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLAotICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0Rh
dGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKKyAgICB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlv
bkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKQEAgLTQ5MzUsMTAgKzQ5MzYs
MTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0
eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2Fu
U2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwor
ICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1f
d2ViUGFnZUlELCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZp
Z2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0
cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKQEAgLTQ5NTEsMTQgKzQ5NTIsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBN
RVNTQUdFX0NIRUNLX1VSTChwcm9jZXNzLCByZXNwb25zZS51cmwoKSk7CiAKICAgICBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvbklEID8gbV9uYXZpZ2F0aW9u
U3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSA6IG51bGxwdHI7Ci0gICAgYXV0byBsaXN0
ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZUlELCBpZGVudGlmaWVyLCBsaXN0ZW5l
cklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uKSwKKyAgICBhdXRvIGxpc3RlbmVy
ID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHdlYlBhZ2VJRCwgZnJhbWVJRCwgaWRlbnRpZmllciwg
bGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbiksCiAgICAgICAgIHBy
b2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQ
STo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZl
QnJvd3NpbmdXYXJuaW5nKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUg
QVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tG
cmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudDo6Tm8pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHNhZmVCcm93c2luZ1dh
cm5pbmcsICFzYWZlQnJvd3NpbmdXYXJuaW5nKTsKIAotICAgICAgICBhdXRvIHNlbmRlciA9IFBv
bGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNz
ID0gV1RGTW92ZShwcm9jZXNzKV0gKGF1dG8uLi4gYXJncykgewotICAgICAgICAgICAgcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1l
SUQsIGxpc3RlbmVySUQsIGFyZ3MuLi4pLCBtX3dlYlBhZ2VJRCk7CisgICAgICAgIGF1dG8gc2Vu
ZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBbd2ViUGFnZUlE
LCBmcmFtZUlELCBsaXN0ZW5lcklELCBwcm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKV0gKGF1dG8u
Li4gYXJncykgeworICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIGFyZ3MuLi4pLCB3
ZWJQYWdlSUQpOwogICAgICAgICB9KTsKICAgICAgICAgCiAgICAgICAgIHJlY2VpdmVkUG9saWN5
RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBXVEY6Om51bGxvcHQsIFdU
Rk1vdmUoc2VuZGVyKSk7CkBAIC01MTA1LDcgKzUxMDYsNyBAQCBzdGF0aWMgdm9pZCB0cnlTT0F1
dGhvcml6YXRpb24oUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9u
LCBXZQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKGNvbnN0
IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBX
aW5kb3dGZWF0dXJlcyYmIHdpbmRvd0ZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdl
OjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdl
KGNvbnN0IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8
V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzJiYgd2luZG93RmVhdHVyZXMsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIE1FU1NBR0VfQ0hF
Q0sobV9wcm9jZXNzLCBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCk7CiAgICAgTUVT
U0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoKm9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YS5mcmFtZUlEKSk7CkBAIC03MTc3LDYgKzcxNzgsNyBAQCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQ
cm94eSYgcHJvYwogICAgIHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSA9IG1fYWN0aXZpdHlTdGF0
ZTsKICAgICBwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhVHlwZSA9IGRyYXdpbmdBcmVhLnR5cGUoKTsK
ICAgICBwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhSWRlbnRpZmllciA9IGRyYXdpbmdBcmVhLmlkZW50
aWZpZXIoKTsKKyAgICBwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlkZW50aWZpZXIgPSBtX2lkZW50
aWZpZXI7CiAgICAgcGFyYW1ldGVycy5zdG9yZSA9IHByZWZlcmVuY2VzU3RvcmUoKTsKICAgICBw
YXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEgPSBtX3BhZ2VHcm91cC0+ZGF0YSgpOwogICAgIHBhcmFt
ZXRlcnMuaXNFZGl0YWJsZSA9IG1faXNFZGl0YWJsZTsKQEAgLTg2OTcsMTUgKzg2OTksMTUgQEAg
V2ViVVJMU2NoZW1lSGFuZGxlciogV2ViUGFnZVByb3h5Ojp1cmxTY2hlbWVIYW5kbGVyRm9yU2No
ZW1lKGNvbnN0IFN0cmluZyYgc2NoZW0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0VVJMU2No
ZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7Ci0gICAgc3Rh
cnRVUkxTY2hlbWVUYXNrU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIFdURk1vdmUocGFyYW1l
dGVycykpOworICAgIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBtX3dlYlBhZ2VJRCwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fdXJsU2NoZW1lSGFuZGxlcnNC
eUlkZW50aWZpZXIuZmluZChwYXJhbWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBNRVNT
QUdFX0NIRUNLKHByb2Nlc3MsIGl0ZXJhdG9yICE9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50
aWZpZXIuZW5kKCkpOwogCi0gICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIHBy
b2Nlc3MsIHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVycy5yZXF1
ZXN0KSwgbnVsbHB0cik7CisgICAgaXRlcmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIHBy
b2Nlc3MsIHdlYlBhZ2VJRCwgcGFyYW1ldGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92ZShwYXJh
bWV0ZXJzLnJlcXVlc3QpLCBudWxscHRyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BV
UkxTY2hlbWVUYXNrKHVpbnQ2NF90IGhhbmRsZXJJZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrSWRl
bnRpZmllcikKQEAgLTg3MjEsNyArODcyMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3lu
Y2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1lCiAg
ICAgYXV0byBpdGVyYXRvciA9IG1fdXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZmluZChw
YXJhbWV0ZXJzLmhhbmRsZXJJZGVudGlmaWVyKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vz
cywgaXRlcmF0b3IgIT0gbV91cmxTY2hlbWVIYW5kbGVyc0J5SWRlbnRpZmllci5lbmQoKSk7CiAK
LSAgICBpdGVyYXRvci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgbV9wcm9jZXNzLCBwYXJhbWV0
ZXJzLnRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIFdURk1vdmUo
cmVwbHkpKTsKKyAgICBpdGVyYXRvci0+dmFsdWUtPnN0YXJ0VGFzaygqdGhpcywgbV9wcm9jZXNz
LCBtX3dlYlBhZ2VJRCwgcGFyYW1ldGVycy50YXNrSWRlbnRpZmllciwgV1RGTW92ZShwYXJhbWV0
ZXJzLnJlcXVlc3QpLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCAzMzY3NjUzNmEzZjIyYmE5NjFjZDlkNTY3ZWJmODhiMGUwY2JlMWFiLi40NTk1MDY0NjlkNWQy
NDU1M2M2YmZjMjA2NjdkNGYwNjc1MWYyYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMTUxMiwxNyArMTUxMiwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJp
bmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRp
ZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwKLSAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAorICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAgICAgICAgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFs
PFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsCiAgICAgICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRh
JiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2Fu
U2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNr
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYp
OwotICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25z
dCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcm
IGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0Nv
bnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxs
b3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwotICAgIHZvaWQgbG9h
ZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6
Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBVUkxTY2hlbWVU
YXNrUGFyYW1ldGVycyYmKTsKKyAgICB2b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2
aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZp
Z2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRl
bVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsCi0gICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJ
bmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNL
X0xPT0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudElu
TWFpbkZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUpOwpAQCAtMTY1MCwxMyArMTY1MCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRGVz
dHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKTsKIAogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJGcmFt
ZVByb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAg
ICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVy
PiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBGcmFtZUlu
Zm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlv
bkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYpOwpAQCAtMTY3OCw3ICsxNjc4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVy
bCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAotICAgIHZv
aWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkm
Jik7CiAgICAgdm9pZCBzaG93UGFnZSgpOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFs
ZXJ0OjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25m
aXJtOjpEZWxheWVkUmVwbHkmJik7CkBAIC0xNzM2LDcgKzE3MzYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hv
cnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpv
bnRhbFdoZWVsRXZlbnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9
CiAKICAgICB2b2lkIGxhdW5jaFByb2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mKTsKLSAgICB2b2lkIHN3YXBUb1dlYlByb2Nlc3MoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
c3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYsIFJlZlB0cjxXZWJGcmFtZVByb3h5
PiYmIG1haW5GcmFtZSk7CisgICAgdm9pZCBzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWFQcm94eT4mJiwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKTsKICAgICB2
b2lkIGRpZEZhaWxUb1N1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCk7CiAgICAgdm9pZCBkaWRTdXNw
ZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjFkYzFiYzUwMmQ1YzkyNTMzZTI3MWI3ZDE2
YzlkZjRjZjI2M2E0My4uOTNkMzQxNDJmODc1MjcxMzA4ZTUwZmRmNWViMTBmYmQ2ODc1MmFkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMg
VUkgbWVzc2FnZXMKLSAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBzdHJ1Y3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhKSAtPiAoT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2VJRCwgT3B0aW9uYWw8V2ViS2l0
OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBuZXdQYWdlUGFyYW1ldGVycykgU3luY2hyb25v
dXMKKyAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
c3RydWN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzLCBzdHJ1Y3QgV2Vi
S2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSkgLT4gKE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9ub3Vz
CiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVzc1Rp
bWVyKQogICAgIFJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKCkgU3luY2hyb25vdXMKQEAgLTEwNCw4ICsxMDQsOCBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKICAg
ICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Us
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwg
U3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
YyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0
cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZy
YW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRh
dGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3VzCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdh
dGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdG
cmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQorICAgIERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRp
ZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVp
bnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9w
dGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKSBTeW5j
aHJvbm91cwogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmlu
ZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCiAgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDY0YjMxZjc1OTIyZmNkOWEyYzk2ZjYzNWJlMGU3MmVlOWVkODM1YTUuLmFmNjc0OGM5
ZjczODE1Zjc2MDk4NThmNTA5M2I5YjYwOWE2NTcyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzU2LDE0ICszNTYsMTQgQEAgV2ViUGFnZVBy
b3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdl
SUQpCiAgICAgcmV0dXJuIGdsb2JhbFBhZ2VNYXAoKS5nZXQocGFnZUlEKTsKIH0KIAotV2ViUGFn
ZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlEKQorLy8gRklYTUU6IElkZWFsbHksIHdlJ2QgZ2V0IHJpZCBvZiBhbGwgdGhlIGNh
bGxlcnMgYW5kIGRyb3AgdGhpcyBmdW5jdGlvbi4KK1dlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcihXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQpCiB7Ci0gICAgLy8gRklYTUU6IERvIGJldHRlci4KICAgICBmb3IgKGF1dG8m
IHBhZ2UgOiBnbG9iYWxQYWdlTWFwKCkudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHBhZ2UtPndl
YlBhZ2VJRCgpID09IHdlYlBhZ2VJRCkKICAgICAgICAgICAgIHJldHVybiBwYWdlOwogICAgIH0K
LSAgICAKKwogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC0xMTIxLDcgKzExMjEsNyBAQCBS
ZWZQdHI8QVBJOjpPYmplY3Q+IFdlYlByb2Nlc3NQcm94eTo6dHJhbnNmb3JtSGFuZGxlc1RvT2Jq
ZWN0cyhBUEk6Ok9iamVjdCogb2JqZQogCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpU
eXBlOjpQYWdlSGFuZGxlOgogICAgICAgICAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxBUEk6
OlBhZ2VIYW5kbGUmPihvYmplY3QpLmlzQXV0b2NvbnZlcnRpbmcoKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIG1fd2ViUHJvY2Vzc1Byb3h5LndlYlBhZ2Uoc3RhdGljX2Nhc3Q8QVBJOjpQYWdl
SGFuZGxlJj4ob2JqZWN0KS5wYWdlSUQoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fd2Vi
UHJvY2Vzc1Byb3h5LndlYlBhZ2Uoc3RhdGljX2Nhc3Q8QVBJOjpQYWdlSGFuZGxlJj4ob2JqZWN0
KS5wYWdlUHJveHlJRCgpKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAgY2Fz
ZSBBUEk6Ok9iamVjdDo6VHlwZTo6T2JqQ09iamVjdEdyYXBoOgpAQCAtMTE2NCw3ICsxMTY0LDcg
QEAgUmVmUHRyPEFQSTo6T2JqZWN0PiBXZWJQcm9jZXNzUHJveHk6OnRyYW5zZm9ybU9iamVjdHNU
b0hhbmRsZXMoQVBJOjpPYmplY3QqIG9iamUKICAgICAgICAgICAgICAgICByZXR1cm4gQVBJOjpG
cmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViRnJh
bWVQcm94eSY+KG9iamVjdCkuZnJhbWVJRCgpKTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9i
amVjdDo6VHlwZTo6UGFnZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlSGFuZGxl
OjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlUHJveHkmPihv
YmplY3QpLndlYlBhZ2VJRCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlSGFu
ZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlUHJveHkm
PihvYmplY3QpLmlkZW50aWZpZXIoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgV2ViUGFnZVByb3h5Jj4o
b2JqZWN0KS53ZWJQYWdlSUQoKSk7CiAKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5
cGU6OlBhZ2VHcm91cDoKICAgICAgICAgICAgICAgICByZXR1cm4gQVBJOjpQYWdlR3JvdXBIYW5k
bGU6OmNyZWF0ZShXZWJQYWdlR3JvdXBEYXRhKHN0YXRpY19jYXN0PGNvbnN0IFdlYlBhZ2VHcm91
cCY+KG9iamVjdCkuZGF0YSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IDQ3YTI0M2Q5NzBhNjg5YjEwMzFiNjc0YjE2ZDQ1OWM4YWYyNTZkYTAuLjhl
ZGY1MzA0MGZjMTViNDk1ZjE5NTRkMzZkMWVkMjY0M2UxYTk4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMzMsNyArMTMzLDcgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIFdlYlByb2Nlc3NQcm94eSogcHJvY2Vzc0ZvcklkZW50aWZpZXIoV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIHdlYlBhZ2Uo
V2ViUGFnZVByb3h5SWRlbnRpZmllcik7Ci0gICAgc3RhdGljIFdlYlBhZ2VQcm94eSogd2ViUGFn
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogd2Vi
UGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAg
IFJlZjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYsIFJlZjxBUEk6OlBh
Z2VDb25maWd1cmF0aW9uPiYmKTsKIAogICAgIGVudW0gY2xhc3MgQmVnaW5zVXNpbmdEYXRhU3Rv
cmUgOiBib29sIHsgTm8sIFllcyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJV
UkxTY2hlbWVIYW5kbGVyLmNwcAppbmRleCA1YTZjYzk1ZDBmODM0NGY4ZjBmOWQ0ZjA2MDFiYjJk
ZGNhNzhhODA4Li45MGMwYjgwZTAwMmMyN2NlMDhiOGQ5OGMxOGUwYjQ4MDg5NzU0MjdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmNwcApAQCAt
NDgsOSArNDgsOSBAQCBXZWJVUkxTY2hlbWVIYW5kbGVyOjp+V2ViVVJMU2NoZW1lSGFuZGxlcigp
CiAgICAgQVNTRVJUKG1fdGFza3MuaXNFbXB0eSgpKTsKIH0KIAotdm9pZCBXZWJVUkxTY2hlbWVI
YW5kbGVyOjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YlVSTFNjaGVtZUhhbmRsZXI6OnN0YXJ0VGFzayhXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCB1aW50NjRfdCB0YXNr
SWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9u
SGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gbV90YXNr
cy5hZGQodGFza0lkZW50aWZpZXIsIFdlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFn
ZSwgcHJvY2VzcywgdGFza0lkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKSk7CisgICAgYXV0byByZXN1bHQgPSBtX3Rhc2tzLmFkZCh0YXNrSWRl
bnRpZmllciwgV2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKCp0aGlzLCBwYWdlLCBwcm9jZXNzLCB3
ZWJQYWdlSUQsIHRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSkpOwogICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRyeSk7CiAKICAgICBh
dXRvIHBhZ2VFbnRyeSA9IG1fdGFza3NCeVBhZ2VJZGVudGlmaWVyLmFkZChwYWdlLmlkZW50aWZp
ZXIoKSwgSGFzaFNldDx1aW50NjRfdD4oKSk7CkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBXZWJV
UkxTY2hlbWVIYW5kbGVyOjp0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smIHRhc2spCiB7
CiAgICAgYXV0byB0YWtlblRhc2sgPSBtX3Rhc2tzLnRha2UodGFzay5pZGVudGlmaWVyKCkpOwog
ICAgIEFTU0VSVF9VTlVTRUQodGFrZW5UYXNrLCB0YWtlblRhc2stPnB0cigpID09ICZ0YXNrKTsK
LSAgICByZW1vdmVUYXNrRnJvbVBhZ2VNYXAodGFzay5wYWdlSUQoKSwgdGFzay5pZGVudGlmaWVy
KCkpOworICAgIHJlbW92ZVRhc2tGcm9tUGFnZU1hcCh0YXNrLnBhZ2VQcm94eUlEKCksIHRhc2su
aWRlbnRpZmllcigpKTsKIAogICAgIHBsYXRmb3JtVGFza0NvbXBsZXRlZCh0YXNrKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaAppbmRleCBkNThj
N2U1NjczMjYxMjg5YjdjZDNjMDhmNDBiYzZiZTk4ZDRjZWQ0Li4yMzQ5MDZmNGM0Y2VlODU3MTRj
ZDQxZGRmYjhhODFmYWY4YjJmM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lSGFuZGxlci5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHVpbnQ2
NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAotICAgIHZv
aWQgc3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHRh
c2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0
aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBXZWJQcm9j
ZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVy
JiYpOwogICAgIHZvaWQgc3RvcFRhc2soV2ViUGFnZVByb3h5JiwgdWludDY0X3QgdGFza0lkZW50
aWZpZXIpOwogICAgIHZvaWQgc3RvcEFsbFRhc2tzRm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJQ
cm9jZXNzUHJveHkqKTsKICAgICB2b2lkIHRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAppbmRleCBk
NjFmMTM2MjI2NDg2ODZlMjc0ZDExYWMxOTQwMzk4YWNlZjViZjFkLi4yN2EzZGI1NGY5YjEyZGUx
Yjc5NzQzMzBmMjVjNjdhMjQ2MjliN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJVUkxTY2hlbWVUYXNrLmNwcApAQCAtMzYsMTcgKzM2LDE3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8V2ViVVJMU2NoZW1lVGFzaz4gV2Vi
VVJMU2NoZW1lVGFzazo6Y3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCByZXNvdXJj
ZUlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlv
bkhhbmRsZXImJiBzeW5jQ29tcGxldGlvbkhhbmRsZXIpCitSZWY8V2ViVVJMU2NoZW1lVGFzaz4g
V2ViVVJMU2NoZW1lVGFzazo6Y3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIsIFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJVUkxTY2hlbWVUYXNrKGhhbmRs
ZXIsIHBhZ2UsIHByb2Nlc3MsIHJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwg
V1RGTW92ZShzeW5jQ29tcGxldGlvbkhhbmRsZXIpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViVVJMU2NoZW1lVGFzayhoYW5kbGVyLCBwYWdlLCBwcm9jZXNzLCB3ZWJQYWdlSUQsIHJl
c291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShzeW5jQ29tcGxldGlv
bkhhbmRsZXIpKSk7CiB9CiAKLVdlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2Vi
VVJMU2NoZW1lSGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9u
SGFuZGxlcikKK1dlYlVSTFNjaGVtZVRhc2s6OldlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1l
SGFuZGxlciYgaGFuZGxlciwgV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHBy
b2Nlc3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlm
aWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVy
JiYgc3luY0NvbXBsZXRpb25IYW5kbGVyKQogICAgIDogbV91cmxTY2hlbWVIYW5kbGVyKGhhbmRs
ZXIpCi0gICAgLCBtX3BhZ2UoJnBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MobWFrZVJlZihwcm9jZXNz
KSkKICAgICAsIG1faWRlbnRpZmllcihyZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgLCBtX3BhZ2VJ
ZGVudGlmaWVyKHBhZ2UuaWRlbnRpZmllcigpKQorICAgICwgbV9wYWdlUHJveHlJRChwYWdlLmlk
ZW50aWZpZXIoKSkKKyAgICAsIG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1fcmVxdWVz
dChXVEZNb3ZlKHJlcXVlc3QpKQogICAgICwgbV9zeW5jQ29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShzeW5jQ29tcGxldGlvbkhhbmRsZXIpKQogewpAQCAtODIsNyArODIsNyBAQCBhdXRvIFdlYlVS
TFNjaGVtZVRhc2s6OmRpZFBlcmZvcm1SZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVzcG9ucwogICAgICAgICBtX3JlcXVlc3QgPSByZXF1ZXN0OwogICAgIH0KIAotICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZv
cm1SZWRpcmVjdGlvbihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlm
aWVyLCByZXNwb25zZSwgcmVxdWVzdCksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFBlcmZvcm1SZWRp
cmVjdGlvbihtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBy
ZXNwb25zZSwgcmVxdWVzdCksIG1fd2ViUGFnZUlEKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25U
eXBlOjpOb25lOwogfQpAQCAtMTA3LDcgKzEwNyw3IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKSAtPiBF
CiAgICAgaWYgKGlzU3luYygpKQogICAgICAgICBtX3N5bmNSZXNwb25zZSA9IHJlc3BvbnNlOwog
Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlk
UmVjZWl2ZVJlc3BvbnNlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50
aWZpZXIsIHJlc3BvbnNlKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZVJlc3BvbnNlKG1f
dXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIHJlc3BvbnNlKSwg
bV93ZWJQYWdlSUQpOwogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQogCkBAIC0x
MzQsNyArMTM0LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8
U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikgLT4gRXhjZXB0aW9uVHkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvblR5cGU6Ok5vbmU7CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpVUkxTY2hlbWVUYXNrRGlkUmVjZWl2ZURhdGEobV91cmxTY2hlbWVIYW5kbGVy
LT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgeyBidWZmZXIgfSksIG1fcGFnZS0+d2ViUGFn
ZUlEKCkpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1l
VGFza0RpZFJlY2VpdmVEYXRhKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lk
ZW50aWZpZXIsIHsgYnVmZmVyIH0pLCBtX3dlYlBhZ2VJRCk7CiAgICAgcmV0dXJuIEV4Y2VwdGlv
blR5cGU6Ok5vbmU7CiB9CiAKQEAgLTE2NCw3ICsxNjQsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRh
c2s6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25U
eXBlCiAgICAgICAgIG1fc3luY0RhdGEgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENvbXBsZXRlKG1fdXJs
U2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVycm9yKSwgbV9wYWdl
LT53ZWJQYWdlSUQoKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpV
UkxTY2hlbWVUYXNrRGlkQ29tcGxldGUobV91cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCks
IG1faWRlbnRpZmllciwgZXJyb3IpLCBtX3dlYlBhZ2VJRCk7CiAgICAgbV91cmxTY2hlbWVIYW5k
bGVyLT50YXNrQ29tcGxldGVkKCp0aGlzKTsKIAogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpO
b25lOwpAQCAtMTczLDkgKzE3Myw5IEBAIGF1dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkQ29tcGxl
dGUoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIC0+IEV4Y2VwdGlvblR5cGUKIHZvaWQgV2Vi
VVJMU2NoZW1lVGFzazo6cGFnZURlc3Ryb3llZCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKLSAgICBBU1NFUlQobV9wYWdlKTsKIAotICAgIG1fcGFnZSA9IG51bGxwdHI7Cisg
ICAgbV9wYWdlUHJveHlJRCA9IHsgfTsKKyAgICBtX3dlYlBhZ2VJRCA9IHsgfTsKICAgICBtX3By
b2Nlc3MgPSBudWxscHRyOwogICAgIG1fc3RvcHBlZCA9IHRydWU7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKaW5kZXggMzliMmZlYjQzYmZjNzc5YWUy
ZjE2YmFlMTc4MmZjNzQ2NWU4YzY0MC4uYmZkOTIzMzkxY2U3YmM0MDJjY2FkZDY1ZjU5MDdkNGZi
MjZlMTk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
VGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaApA
QCAtNTQsMTMgKzU0LDEzIEBAIHVzaW5nIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXIgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlCiBjbGFzcyBXZWJVUkxT
Y2hlbWVUYXNrIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlVSTFNjaGVtZVRhc2s+
LCBwdWJsaWMgSW5zdGFuY2VDb3VudGVkPFdlYlVSTFNjaGVtZVRhc2s+IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShXZWJVUkxTY2hlbWVUYXNrKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFdlYlVSTFNjaGVtZVRhc2s+IGNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVBy
b3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgdWludDY0X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgc3RhdGlj
IFJlZjxXZWJVUkxTY2hlbWVUYXNrPiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBh
Z2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21w
bGV0aW9uSGFuZGxlciYmKTsKIAogICAgIH5XZWJVUkxTY2hlbWVUYXNrKCk7CiAKICAgICB1aW50
NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQoKSBj
b25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVybiBtX3BhZ2VJZGVudGlmaWVy
OyB9Ci0KKyAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlEKCkgY29uc3QgeyBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9wYWdlUHJveHlJRDsgfQorICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsgcmV0dXJuIG1fd2ViUGFnZUlEOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5KiBw
cm9jZXNzKCkgeyBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9wcm9jZXNzLmdl
dCgpOyB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTg3LDE1ICs4NywxNSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwYWdlRGVzdHJveWVkKCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViVVJMU2NoZW1l
VGFzayhXZWJVUkxTY2hlbWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5
JiwgdWludDY0X3QgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNM
b2FkQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgV2ViVVJMU2NoZW1lVGFzayhXZWJVUkxTY2hl
bWVIYW5kbGVyJiwgV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOwogCiAgICAgYm9vbCBpc1N5bmMoKSBj
b25zdCB7IHJldHVybiAhIW1fc3luY0NvbXBsZXRpb25IYW5kbGVyOyB9CiAKICAgICBSZWY8V2Vi
VVJMU2NoZW1lSGFuZGxlcj4gbV91cmxTY2hlbWVIYW5kbGVyOwotICAgIFdlYlBhZ2VQcm94eSog
bV9wYWdlOwogICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKICAgICB1aW50
NjRfdCBtX2lkZW50aWZpZXI7Ci0gICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3BhZ2VJZGVu
dGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlUHJveHlJRDsKKyAgICBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3dlYlBhZ2VJRDsKICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIG11dGFibGUgTG9jayBtX3JlcXVlc3RMb2NrOwogICAg
IGJvb2wgbV9zdG9wcGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5t
bQppbmRleCA0MjAyMzk2YWJhZmFmMzBkNzE4OWFlYjY4NTA5ZWEyNzE3MWI5NzQ1Li4yYjcyYzIx
MTU4YWY5YWM3Mzc5ZTM2ZDA3YTk3NjMxZjhjMzY1MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyLm1tCkBAIC00MDQsMTIgKzQwNCwxMiBAQCAtIChXS0J1bmRsZVBhZ2VSZWYpX2J1
bmRsZVBhZ2VSZWYKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKiloYW5kbGUKIHsKLSAg
ICByZXR1cm4gW1tbV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VJ
RDpfcGFnZS0+cGFnZUlEKCldIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbV0tCcm93c2lu
Z0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2U6Kl9wYWdlXSBhdXRvcmVsZWFzZV07
CiB9CiAKICsgKGluc3RhbmNldHlwZSlsb29rVXBCcm93c2luZ0NvbnRleHRGcm9tSGFuZGxlOihX
S0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqKWhhbmRsZQogewotICAgIHJldHVybiB3cmFwcGVyKFdl
YktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShoYW5kbGUucGFnZUlEKSk7Cisg
ICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdl
KGhhbmRsZS53ZWJQYWdlSUQpKTsKIH0KIAogLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilf
cmVtb3RlT2JqZWN0UmVnaXN0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKaW5k
ZXggMmIyODg2NGE5YWEwOTg0NDJkNjE1MzJjNjQwZjViOTNhODU5OTgwYS4uYzQ0YWRiMjZhMGYx
Yzk1MzQ0MGI4OThjMGU3ZGZmNTVmOTZhYTA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5jcHAKQEAgLTI1Miw3ICsyNTIsNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAoIXdlYlBh
Z2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHk6OkRpZFBvc3RNZXNzYWdlKHdlYlBhZ2UtPnBhZ2VJRCgpLCB3ZWJG
cmFtZS0+aW5mbygpLCBtX2lkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSh2YWx1ZS0+ZGF0
YSgpKSksIG1fY29udHJvbGxlci0+aWRlbnRpZmllcigpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OkRpZFBvc3RNZXNzYWdlKHdlYlBhZ2UtPndlYlBh
Z2VQcm94eUlkZW50aWZpZXIoKSwgd2ViRnJhbWUtPmluZm8oKSwgbV9pZGVudGlmaWVyLCBJUEM6
OkRhdGFSZWZlcmVuY2UodmFsdWUtPmRhdGEoKSkpLCBtX2NvbnRyb2xsZXItPmlkZW50aWZpZXIo
KSk7CiAgICAgfQogCiAgICAgUmVmUHRyPFdlYlVzZXJDb250ZW50Q29udHJvbGxlcj4gbV9jb250
cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwZTZiOTQzZDE1OWM2MTIyYTliNDQ0
ZmU2OGYwNTc1MDY5ZDExZGYwLi5iODAzMzUxZDg5YjE0OTgwNDk0ODk3NWQzNmU3Nzg0OWM3YWM3
ZDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjkyLDcgKzI5Miw3IEBAIFBhZ2UqIFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYgcmVxdWVzCiAKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gbmV3UGFnZUlE
OwogICAgIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IHBhcmFtZXRlcnM7Ci0g
ICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJhbWUtPmluZm8oKSwgd2Vi
RnJhbWUtPnBhZ2UoKS0+cGFnZUlEKCksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRv
d0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5wYWdl
SUQoKSkpCisgICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJhbWUtPmlu
Zm8oKSwgd2ViRnJhbWUtPnBhZ2UoKS0+d2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCByZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRhdGEp
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdlSUQs
IHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIGlmICghbmV3UGFnZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5k
ZXggNzA5ODBlZTViNWI4ZDcwMzdlNDViM2YyYWYzZTJiYjFmYTAzOTRhOC4uNDhkZTM1ZmQwNWUz
Yjg5YjQxZWM5MjlhYTJjMmRkMzYyNmU5OTAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC05MDYsOSArOTA2LDExIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0CiAgICAg
aWYgKHJlcXVlc3Rlci5mcmFtZUlEKCkgJiYgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJh
bWUocmVxdWVzdGVyLmZyYW1lSUQoKSkpCiAgICAgICAgIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YS5mcmFtZUlEID0gcmVxdWVzdGVyLmZyYW1lSUQoKTsKIAotICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRDsKLSAgICBpZiAocmVxdWVzdGVyLnBhZ2VJRCgpICYm
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocmVxdWVzdGVyLnBhZ2VJRCgpKSkKLSAg
ICAgICAgb3JpZ2luYXRpbmdQYWdlSUQgPSByZXF1ZXN0ZXIucGFnZUlEKCk7CisgICAgT3B0aW9u
YWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQ7CisgICAgaWYgKHJl
cXVlc3Rlci5wYWdlSUQoKSkgeworICAgICAgICBpZiAoYXV0byogd2ViUGFnZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocmVxdWVzdGVyLnBhZ2VJRCgpKSkKKyAgICAgICAgICAg
IG9yaWdpbmF0aW5nUGFnZUlEID0gd2ViUGFnZS0+d2ViUGFnZVByb3h5SWRlbnRpZmllcigpOwor
ICAgIH0KIAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhOwog
ICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm5hdmlnYXRpb25UeXBlID0gYWN0aW9uLT5uYXZpZ2F0
aW9uVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCmluZGV4IDkwZmRm
MGU2ZTkwOTE1NWM0MTU0MmY3MTk5Y2FlN2I1YjA2ZTE1NGIuLmIxOTlhMTAzMDhmOGZkYzgzMDZm
NmIwNjBlYmFhOGI2MDIyMjBiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5j
cHAKQEAgLTM1LDcgKzM1LDcgQEAgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6OldlYlJlbW90ZU9i
amVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZW1vdGUKICAgICA6IFJlbW90
ZU9iamVjdFJlZ2lzdHJ5KHJlbW90ZU9iamVjdFJlZ2lzdHJ5KQogICAgICwgbV9wYWdlKHBhZ2Up
CiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uu
cGFnZUlEKCksICp0aGlzKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCksICp0aGlzKTsKICAgICBwYWdl
LnNldFJlbW90ZU9iamVjdFJlZ2lzdHJ5KHRoaXMpOwogfQogCkBAIC00Nyw3ICs0Nyw3IEBAIFdl
YlJlbW90ZU9iamVjdFJlZ2lzdHJ5Ojp+V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogdm9pZCBX
ZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6Y2xvc2UoKQogewogICAgIGlmIChtX3BhZ2UucmVtb3Rl
T2JqZWN0UmVnaXN0cnkoKSA9PSB0aGlzKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVP
YmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uud2ViUGFnZVByb3h5
SWRlbnRpZmllcigpKTsKICAgICAgICAgbV9wYWdlLnNldFJlbW90ZU9iamVjdFJlZ2lzdHJ5KG51
bGxwdHIpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcAppbmRleCBiYjEz
MDZlMjk5ZjNmNzc4ZDllNjUyNWUzOTcwMDJhMTgxOWEyYWNjLi45ZjNjYmJlZTgzN2M0ZTU4OGQz
ZDgyNDI1MGViNmFlNzJmYTc1MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCkBA
IC04NCw3ICs4NCw3IEBAIHZvaWQgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OmFkZFZpc2l0
ZWRMaW5rKFBhZ2UmIHBhZ2UsIFNoYXJlZFN0cmluZ0hhc2ggbGluCiAgICAgaWYgKCF3ZWJQYWdl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpWaXNpdGVkTGlua1N0b3JlOjpBZGRW
aXNpdGVkTGlua0hhc2hGcm9tUGFnZSh3ZWJQYWdlLT5wYWdlSUQoKSwgbGlua0hhc2gpLCBtX2lk
ZW50aWZpZXIpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlZpc2l0ZWRMaW5rU3RvcmU6OkFkZFZpc2l0ZWRMaW5r
SGFzaEZyb21QYWdlKHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgbGlua0hhc2gp
LCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjpz
ZXRWaXNpdGVkTGlua1RhYmxlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JV
SS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5j
cHAKaW5kZXggNTQ3YTZjYjI1OGUxYmE3MWY5ODhhNDRmM2YxZWY4MDZjYjI4NWFjOC4uNmI2Njlh
N2IwMTI3MTA0OTViMjg5Yzg1MWNkMzQyZDg5ZmVkNTNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcApAQCAtNjAsNyArNjAs
NyBAQCBXZWJJbnNwZWN0b3JVSTo6V2ViSW5zcGVjdG9yVUkoV2ViUGFnZSYgcGFnZSkKICNlbmRp
ZgogfQogCi12b2lkIFdlYkluc3BlY3RvclVJOjplc3RhYmxpc2hDb25uZWN0aW9uKFBhZ2VJZGVu
dGlmaWVyIGluc3BlY3RlZFBhZ2VJZGVudGlmaWVyLCBib29sIHVuZGVyVGVzdCwgdW5zaWduZWQg
aW5zcGVjdGlvbkxldmVsKQordm9pZCBXZWJJbnNwZWN0b3JVSTo6ZXN0YWJsaXNoQ29ubmVjdGlv
bihXZWJQYWdlUHJveHlJZGVudGlmaWVyIGluc3BlY3RlZFBhZ2VJZGVudGlmaWVyLCBib29sIHVu
ZGVyVGVzdCwgdW5zaWduZWQgaW5zcGVjdGlvbkxldmVsKQogewogICAgIG1faW5zcGVjdGVkUGFn
ZUlkZW50aWZpZXIgPSBpbnNwZWN0ZWRQYWdlSWRlbnRpZmllcjsKICAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci5yZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3RvclVJLmgKaW5kZXggYTFmYjRkOGYwMDgwOGVhZTlkNTY3NTVkMDcyYThm
NjdjZmZjYzI1Zi4uMzgwODBkYzIzOWIxYjQyYWQ5YmU0YTJjN2FlNGM1N2QzMzJkOTA5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5o
CkBAIC0yNyw5ICsyNyw5IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgiCisjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckZyb250ZW5kSG9zdC5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5n
UmVmZXJlbmNlLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSkgb3ZlcnJpZGUgeyBjbG9zZVdpbmRvdygp
OyB9CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViSW5zcGVjdG9yVUkgbWVzc2FnZXMKLSAgICB2b2lk
IGVzdGFibGlzaENvbm5lY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaW5zcGVjdGVkUGFn
ZUlkZW50aWZpZXIsIGJvb2wgdW5kZXJUZXN0LCB1bnNpZ25lZCBpbnNwZWN0aW9uTGV2ZWwpOwor
ICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyIGluc3Bl
Y3RlZFBhZ2VJZGVudGlmaWVyLCBib29sIHVuZGVyVGVzdCwgdW5zaWduZWQgaW5zcGVjdGlvbkxl
dmVsKTsKICAgICB2b2lkIHVwZGF0ZUNvbm5lY3Rpb24oKTsKIAogICAgIHZvaWQgc2hvd0NvbnNv
bGUoKTsKQEAgLTEzNCw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIC8vIGNvcmVQYWdlKCksIHNp
bmNlIHdlIG1heSBuZWVkIGl0IGFmdGVyIHRoZSBmcm9udGVuZCdzIHBhZ2UgaGFzIHN0YXJ0ZWQg
ZGVzdHJ1Y3Rpb24uCiAgICAgV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciogbV9mcm9udGVu
ZENvbnRyb2xsZXIgeyBudWxscHRyIH07CiAKLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBt
X2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9p
bnNwZWN0ZWRQYWdlSWRlbnRpZmllcjsKICAgICBib29sIG1fdW5kZXJUZXN0IHsgZmFsc2UgfTsK
ICAgICBib29sIG1fZG9ja2luZ1VuYXZhaWxhYmxlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNW
aXNpYmxlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3RvclVJLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KaW5kZXggMzc1YTM4ZWNmMWFi
ZmFlOWM4Y2U3NDFmNTkwZDg1N2YwNDg0NjJmMC4uYTYzYTM5OTZmOGM0MWIzNmIzZGJlNjA3NTZm
Zjk5ODQ5NmNkZDIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUkgewotICAgIEVzdGFi
bGlzaENvbm5lY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgaW5zcGVjdGVkUGFnZUlkZW50
aWZpZXIsIGJvb2wgdW5kZXJUZXN0LCB1bnNpZ25lZCBpbnNwZWN0aW9uTGV2ZWwpCisgICAgRXN0
YWJsaXNoQ29ubmVjdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgaW5zcGVjdGVk
UGFnZUlkZW50aWZpZXIsIGJvb2wgdW5kZXJUZXN0LCB1bnNpZ25lZCBpbnNwZWN0aW9uTGV2ZWwp
CiAgICAgVXBkYXRlQ29ubmVjdGlvbigpCiAKICAgICBBdHRhY2hlZEJvdHRvbSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZjNGJiNTAzNmFi
YTgxN2NjYjBjYjJmZDMzNTVlOTY5YzM1NjBmZjEuLmE0OGQ3ZmY3ODY2YmFkOWRiOTZhY2MxZDJh
NDg1MTQ1YjE1MTYxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC00MjYsNiArNDI2LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lm
IFVTRShXUEVfUkVOREVSRVIpCiAgICAgLCBtX2hvc3RGaWxlRGVzY3JpcHRvcihXVEZNb3ZlKHBh
cmFtZXRlcnMuaG9zdEZpbGVEZXNjcmlwdG9yKSkKICNlbmRpZgorICAgICwgbV93ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SWRlbnRpZmllcikKICNpZiBFTkFC
TEUoVklFV1BPUlRfUkVTSVpJTkcpCiAgICAgLCBtX3Nocmlua1RvRml0Q29udGVudFRpbWVyKCp0
aGlzLCAmV2ViUGFnZTo6c2hyaW5rVG9GaXRDb250ZW50VGltZXJGaXJlZCwgMF9zKQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzgxMzcw
ZGE0YTM1NDdhNTRkZGQwYjA0YmViYWFmMWFmMjUxNDE4Yy4uN2I2MDdkYzNhMWIwNWRkYTBmMTUw
NDE5Zjg5YzYzOGE4NThmOTVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMjkyLDcgKzI5Miw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OlBh
Z2UqIGNvcmVQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAgICAgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KLSAg
ICBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtYWtlT2JqZWN0SWRlbnRpZmllcjxTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllclR5cGU+KG1fcGFnZUlELnRvVUludDY0KCkpOyB9CisgICAgU3RvcmFnZU5h
bWVzcGFjZUlkZW50aWZpZXIgc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbWFrZU9iamVjdElkZW50aWZpZXI8U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZp
ZXJUeXBlPihtX3dlYlBhZ2VQcm94eUlkZW50aWZpZXIudG9VSW50NjQoKSk7IH0KICAgICBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UtPnNlc3Npb25JRCgp
OyB9CiAgICAgYm9vbCB1c2VzRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZS0+dXNlc0VwaGVtZXJhbFNlc3Npb24oKTsgfQogCkBAIC0xMjAzLDYgKzEyMDMsOCBAQCBwdWJs
aWM6CiAgICAgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkqIHJlbW90ZU9iamVjdFJlZ2lzdHJ5KCk7
CiAjZW5kaWYKIAorICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUGFnZVByb3h5SWRlbnRpZmllcjsgfQorCiAgICAg
dm9pZCB1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKTsKICAgICB2b2lkIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7CiAgICAg
Ym9vbCBpc1Rocm90dGxlYWJsZSgpIGNvbnN0OwpAQCAtMTk1Nyw2ICsxOTU5LDcgQEAgcHJpdmF0
ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXZWFrUHRyPFdlYlJlbW90ZU9iamVjdFJlZ2lz
dHJ5PiBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2VuZGlmCisgICAgV2ViUGFnZVByb3h5SWRl
bnRpZmllciBtX3dlYlBhZ2VQcm94eUlkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBt
X2xhc3RTZW50SW50cmluc2ljQ29udGVudFNpemU7CiAjaWYgRU5BQkxFKFZJRVdQT1JUX1JFU0la
SU5HKQogICAgIFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90VGltZXIgbV9zaHJpbmtUb0ZpdENv
bnRlbnRUaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3
NzI2NzJjNDliMGJjYmU0ODVhMGE5YzFjOGM3NjUzMzFkYTQ4OTgyLi5lMjc5ZDQ0Zjc2YTgyZDVl
OWY1MDhmY2YwZmU0ZDhhYjUwZGE5YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC03NDYsNyArNzQ2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGUKICAg
ICB9CiAjZW5kaWYKIAotICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3Nh
Z2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCkuZGF0
YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCkpOworICAgIExPR19F
UlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyAoZGVzdGluYXRpb246
ICVsbHUpIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCks
IGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpOwogfQogCiBXZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpIGNvbnN0CkBAIC0xNzExLDcgKzE3MTEsNyBAQCBSZWZQdHI8QVBJOjpP
YmplY3Q+IFdlYlByb2Nlc3M6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMoQVBJOjpPYmplY3Qq
IG9iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gbV93ZWJQcm9jZXNzLndlYlBhZ2VHcm91
cChzdGF0aWNfY2FzdDxjb25zdCBBUEk6OlBhZ2VHcm91cEhhbmRsZSY+KG9iamVjdCkud2ViUGFn
ZUdyb3VwRGF0YSgpKTsKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6UGFn
ZUhhbmRsZToKLSAgICAgICAgICAgICAgICByZXR1cm4gbV93ZWJQcm9jZXNzLndlYlBhZ2Uoc3Rh
dGljX2Nhc3Q8Y29uc3QgQVBJOjpQYWdlSGFuZGxlJj4ob2JqZWN0KS5wYWdlSUQoKSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG1fd2ViUHJvY2Vzcy53ZWJQYWdlKHN0YXRpY19jYXN0PGNvbnN0
IEFQSTo6UGFnZUhhbmRsZSY+KG9iamVjdCkud2ViUGFnZUlEKCkpOwogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpPYmpDT2JqZWN0R3Jh
cGg6CkBAIC0xNzU0LDcgKzE3NTQsNyBAQCBSZWZQdHI8QVBJOjpPYmplY3Q+IFdlYlByb2Nlc3M6
OnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMoQVBJOjpPYmplY3QqIG9iamVjdCkKICAgICAgICAg
ICAgICAgICByZXR1cm4gQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3Rh
dGljX2Nhc3Q8Y29uc3QgV2ViRnJhbWUmPihvYmplY3QpLmZyYW1lSUQoKSk7CiAKICAgICAgICAg
ICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2U6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8
Y29uc3QgV2ViUGFnZSY+KG9iamVjdCkucGFnZUlEKCkpOworICAgICAgICAgICAgICAgIHJldHVy
biBBUEk6OlBhZ2VIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNvbnN0
IFdlYlBhZ2UmPihvYmplY3QpLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgc3RhdGljX2Nhc3Q8
Y29uc3QgV2ViUGFnZSY+KG9iamVjdCkucGFnZUlEKCkpOwogCiAgICAgICAgICAgICBjYXNlIEFQ
STo6T2JqZWN0OjpUeXBlOjpCdW5kbGVQYWdlR3JvdXA6IHsKICAgICAgICAgICAgICAgICBXZWJQ
YWdlR3JvdXBEYXRhIHBhZ2VHcm91cERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5kZXgg
NWJkODAyNzI1NTkzYmU2MTg1NmY2NGY3ZjRiODE2MzkxMzc5ZmJkNC4uZGFjZDBmN2ZkZDlhNzYx
NjMyNDU1NWUzMjRmYjJiMWRmZmMyZDQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApAQCAt
NDIsMjggKzQyLDMwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1SZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpj
cmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVuc2ln
bmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorUmVmPFN0b3JhZ2VO
YW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UoSWRlbnRpZmllciBpZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVu
c2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpTZXNz
aW9uLCBpZGVudGlmaWVyLCBudWxscHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpT
ZXNzaW9uLCBpZGVudGlmaWVyLCBwYWdlSUQsIG51bGxwdHIsIHF1b3RhSW5CeXRlcywgc2Vzc2lv
bklEKSk7CiB9CiAKIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFjZUlt
cGw6OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVu
c2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpMb2Nh
bCwgaWRlbnRpZmllciwgbnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9uSUQpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZTo6TG9j
YWwsIGlkZW50aWZpZXIsIFdURjo6bnVsbG9wdCwgbnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBzZXNz
aW9uSUQpKTsKIH0KIAogUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNl
SW1wbDo6Y3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCB1aW50NjRf
dCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZTo6VHJhbnNpZW50
TG9jYWwsIGlkZW50aWZpZXIsICZ0b3BMZXZlbE9yaWdpbiwgcXVvdGFJbkJ5dGVzLCBzZXNzaW9u
SUQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9y
YWdlVHlwZTo6VHJhbnNpZW50TG9jYWwsIGlkZW50aWZpZXIsIFdURjo6bnVsbG9wdCwgJnRvcExl
dmVsT3JpZ2luLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOwogfQogCi1TdG9yYWdlTmFtZXNw
YWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUgc3RvcmFn
ZVR5cGUsIElkZW50aWZpZXIgc3RvcmFnZU5hbWVzcGFjZUlELCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQorU3RvcmFnZU5hbWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBs
KFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBJZGVudGlmaWVyIHN0b3JhZ2VOYW1l
c3BhY2VJRCwgY29uc3QgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+JiBwYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExldmVsT3JpZ2luLCB1bnNpZ25lZCBxdW90YUlu
Qnl0ZXMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fc3RvcmFnZVR5cGUoc3Rv
cmFnZVR5cGUpCiAgICAgLCBtX3N0b3JhZ2VOYW1lc3BhY2VJRChzdG9yYWdlTmFtZXNwYWNlSUQp
CisgICAgLCBtX3Nlc3Npb25QYWdlSUQocGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX3RvcExldmVs
T3JpZ2luKHRvcExldmVsT3JpZ2luKQogICAgICwgbV9xdW90YUluQnl0ZXMocXVvdGFJbkJ5dGVz
KQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogeworICAgIEFTU0VSVChzdG9yYWdlVHlw
ZSA9PSBTdG9yYWdlVHlwZTo6U2Vzc2lvbiB8fCAhbV9zZXNzaW9uUGFnZUlEKTsKIH0KIAogU3Rv
cmFnZU5hbWVzcGFjZUltcGw6On5TdG9yYWdlTmFtZXNwYWNlSW1wbCgpCkBAIC05OCw3ICsxMDAs
NyBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNvcHkoUGFn
ZSogbmV3UGFnZSkKICAgICBpZiAoYXV0byBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpKQog
ICAgICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpTdG9yYWdlTWFuYWdlclNldDo6Q2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShuZXdQ
YWdlLT5zZXNzaW9uSUQoKSwgbV9zdG9yYWdlTmFtZXNwYWNlSUQsIFdlYlBhZ2U6OmZyb21Db3Jl
UGFnZShuZXdQYWdlKS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCkpLCAwKTsK
IAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKG1fc3RvcmFn
ZVR5cGUsIFdlYlBhZ2U6OmZyb21Db3JlUGFnZShuZXdQYWdlKS0+c2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2VJZGVudGlmaWVyKCksIG1fdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIG1fcXVvdGFJbkJ5dGVz
LCBuZXdQYWdlLT5zZXNzaW9uSUQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3Jh
Z2VOYW1lc3BhY2VJbXBsKG1fc3RvcmFnZVR5cGUsIFdlYlBhZ2U6OmZyb21Db3JlUGFnZShuZXdQ
YWdlKS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIFdlYlBhZ2U6OmZyb21D
b3JlUGFnZShuZXdQYWdlKS0+cGFnZUlEKCksIG1fdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIG1fcXVv
dGFJbkJ5dGVzLCBuZXdQYWdlLT5zZXNzaW9uSUQoKSkpOwogfQogCiB2b2lkIFN0b3JhZ2VOYW1l
c3BhY2VJbXBsOjpzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKQEAgLTExMSw3ICsxMTMsNyBAQCB2b2lkIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXRTZXNz
aW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIFBhZ2VJZGVudGlmaWVy
IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFnZVBhZ2VJRCgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKG1fc3RvcmFnZVR5cGUgPT0gU3RvcmFnZVR5cGU6OlNlc3Npb24pOwotICAgIHJl
dHVybiBtYWtlT2JqZWN0SWRlbnRpZmllcjxQYWdlSWRlbnRpZmllclR5cGU+KG1fc3RvcmFnZU5h
bWVzcGFjZUlELnRvVUludDY0KCkpOworICAgIHJldHVybiAqbV9zZXNzaW9uUGFnZUlEOwogfQog
CiB1aW50NjRfdCBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6cGFnZUdyb3VwSUQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmgKaW5kZXggM2EwYWIxOWQ0YzJiMWE5OGIzOTAyNmUzY2EyNGQzZjg5MDA0
NTU2Yy4uMmExYmI0MzA0M2E0NThkZTBhMmZhYzNkNzRkOGJkNjAzZDcxYzhmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUlt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VJbXBs
IDogcHVibGljIFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2UgewogcHVibGljOgogICAgIHVzaW5n
IElkZW50aWZpZXIgPSBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcjsKIAotICAgIHN0YXRpYyBS
ZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElk
ZW50aWZpZXIsIHVuc2lnbmVkIHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOworICAgIHN0
YXRpYyBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlKElkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1bnNpZ25lZCBxdW90YUlu
Qnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgUmVmPFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsPiBjcmVhdGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmllciwgdW5zaWduZWQgcXVv
dGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIFJlZjxTdG9yYWdlTmFtZXNw
YWNlSW1wbD4gY3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9yaWdpbiwgdWludDY0X3QgcXVvdGFJ
bkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7CiAKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0U2Vzc2lvbklERm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6Ci0gICAgU3RvcmFnZU5hbWVzcGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUs
IElkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbE9yaWdpbiwgdW5z
aWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7CisgICAgU3RvcmFnZU5hbWVzcGFj
ZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUsIElkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiB0b3BMZXZl
bE9yaWdpbiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICBS
ZWY8V2ViQ29yZTo6U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYpIG92ZXJyaWRlOwogCkBAIC03Miw2ICs3Miw3IEBAIHByaXZhdGU6CiAK
ICAgICBjb25zdCBXZWJDb3JlOjpTdG9yYWdlVHlwZSBtX3N0b3JhZ2VUeXBlOwogICAgIGNvbnN0
IElkZW50aWZpZXIgbV9zdG9yYWdlTmFtZXNwYWNlSUQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG1fc2Vzc2lvblBhZ2VJRDsKIAogICAgIC8vIE9ubHkgdXNlZCBmb3Ig
dHJhbnNpZW50IGxvY2FsIHN0b3JhZ2UgbmFtZXNwYWNlcy4KICAgICBjb25zdCBSZWZQdHI8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxPcmlnaW47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvV2ViU3RvcmFnZU5h
bWVzcGFjZVByb3ZpZGVyLmNwcAppbmRleCAzMDBjY2YwNzgzYWIxOTkzMWJkM2QxNDdhOTlmYzI1
YTVkZGUxYTVkLi40ODE4MWI0OTMwZDYyZDFhMDY4NzZkMzY0NzZjOWZhOTlmOWUzYTIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9y
YWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKQEAgLTY2LDcgKzY2LDggQEAgV2Vi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjp+V2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKCkK
IAogUmVmPFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92
aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSYgcGFnZSwgdW5zaWduZWQg
cXVvdGEpCiB7Ci0gICAgcmV0dXJuIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVTZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZShXZWJQYWdlOjpmcm9tQ29yZVBhZ2UoJnBhZ2UpLT5zZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgcXVvdGEsIHBhZ2Uuc2Vzc2lvbklEKCkpOworICAg
IGF1dG8qIHdlYlBhZ2UgPSBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UoJnBhZ2UpOworICAgIHJldHVy
biBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uod2Vi
UGFnZS0+c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKCksIHdlYlBhZ2UtPnBhZ2VJ
RCgpLCBxdW90YSwgcGFnZS5zZXNzaW9uSUQoKSk7CiB9CiAKIFJlZjxXZWJDb3JlOjpTdG9yYWdl
TmFtZXNwYWNlPiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmNyZWF0ZUxvY2FsU3RvcmFn
ZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5k
ZXggOWM2NGNhZjA1ZTgzMTM0MDFlZjRhN2ZmODI0NGIxMGI4OGYwYTU2Ni4uM2Q4MGJlMjk5OTc1
MDU5MTk0ZWExMzUxMDZhYmQyYWE1NTlkNDYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02NzYsNyArNjc2LDcgQEAgUmVm
UHRyPE9iakNPYmplY3RHcmFwaD4gV2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0
cyhPYmpDT2JqZWN0R3JhcGgmIG8KICAgICAgICAgUmV0YWluUHRyPGlkPiB0cmFuc2Zvcm1PYmpl
Y3QoaWQgb2JqZWN0KSBjb25zdCBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
YXV0byogaGFuZGxlID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5kbGU+
KG9iamVjdCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byogd2ViUGFnZSA9IG1fd2ViUHJv
Y2Vzcy53ZWJQYWdlKGhhbmRsZS5fcGFnZUlEKSkKKyAgICAgICAgICAgICAgICBpZiAoYXV0byog
d2ViUGFnZSA9IG1fd2ViUHJvY2Vzcy53ZWJQYWdlKGhhbmRsZS5fd2ViUGFnZUlEKSkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXIoKndlYlBhZ2UpOwogCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFtOU051bGwgbnVsbF07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377646</attachid>
            <date>2019-08-29 16:00:13 -0700</date>
            <delta_ts>2019-08-30 09:34:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201225-20190829160012.patch</filename>
            <type>text/plain</type>
            <size>119217</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVlMjViZDY1NGFjYzhmYjk0
YWQ2YWYyMDgyMTA3YTMyMjc3Mzk0YTMuLjBhMGIwNjQxOTZkNGY3MjczMTZjMzMzOWVmMDU5NjBk
Yjg2NWM2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTY4IEBACisyMDE5LTA4LTI5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1BTT05dIEJ1bXAgdGhlIFdlYlBh
Z2UncyBpZGVudGlmaWVyIGV2ZXJ5IHRpbWUgd2UgcHJvY2Vzcy1zd2FwCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEyMjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFdmVyeSB0aW1lIHdlIGNyZWF0ZSBh
IG5ldyBXZWJQYWdlIG9iamVjdCBpbiBhIHByb3Zpc2lvbmFsIHByb2Nlc3MsIHdlIG5vdyBhc3Np
Z24gaXQgYSBuZXcKKyAgICAgICAgaWRlbnRpZmllciwgaW5zdGVhZCBvZiB1c2luZyB0aGUgaWRl
bnRpZmllciBvZiB0aGUgV2ViUGFnZSBpbiB0aGUgY29tbWl0dGVkIHByb2Nlc3MuIFRoaXMKKyAg
ICAgICAgd2lsbCBhZGRyZXNzIGlzc3VlcyB3aXRoIElQQyB3aGVuIG5hdmlnYXRpbmcgYmFjayBh
bmQgZm9ydGggYmV0d2VlbiBwcm9jZXNzZXMgc2luY2Ugd2Ugd2lsbAorICAgICAgICBubyBsb25n
ZXIgYmUgY29uZnVzZWQgYXMgdG8gd2hpY2ggV2ViUGFnZSB0aGUgSVBDIGlzIGNvbWluZyBmcm9t
LiBBbHNvLCB0aGlzIHdpbGwgYWxsb3cKKyAgICAgICAgc3VzcGVuZGVkIFdlYlBhZ2VzIHRvIGtl
ZXAgbGl2aW5nIGluIHRoZSBwcm9jZXNzLCBldmVuIGlmIHdlIHVzZSB0aGUgcHJvY2VzcyBmb3Ig
YSBuZXcgbG9hZAorICAgICAgICAod2lsbCBiZSBkb25lIGluIGEgZm9sbG93LXVwIHBhdGNoKSBz
aW5jZSB3ZSB3aWxsIG5vIGxvbmdlciBoYXZlIGFuIGlkZW50aWZpZXIgY29uZmxpY3QuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSVBhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGUpOgor
ICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyk6CisgICAgICAg
IChBUEk6OlBhZ2VIYW5kbGU6OlBhZ2VIYW5kbGUpOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxl
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoQVBJOjpQYWdlSGFuZGxlOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5oOgorICAgICAgICAoQVBJOjpQYWdlSGFu
ZGxlOjpwYWdlUHJveHlJRCBjb25zdCk6CisgICAgICAgIChBUEk6OlBhZ2VIYW5kbGU6OndlYlBh
Z2VJRCBjb25zdCk6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZS5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgX2luaXRXaXRo
UGFnZVByb3h5Ol0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdp
dGhQYWdlOl0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQ
YWdlUHJveHlJRDphbmRXZWJQYWdlSUQ6XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlIGhhc2hdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgaXNFcXVh
bDpdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgZW5jb2RlV2l0aENvZGVy
Ol0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBpbml0V2l0aENvZGVyOl0p
OgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRl
cm5hbC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAq
IFNoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tOgorICAgICAgICAoV2ViS2l0OjpPYmpDT2Jq
ZWN0R3JhcGg6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok9iakNPYmplY3RHcmFwaDo6ZGVj
b2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGhhbmRs
ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaGFuZGxlXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwOgorICAgICAg
ICAod2Via2l0VVJJU2NoZW1lUmVxdWVzdENyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJW
aWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdp
c3RyeSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDb21t
aXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnRlc3RQcm9jZXNzSW5jb21pbmdT
eW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk6CisgICAgICAgICogVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQ
YWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlz
aW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyk6CisgICAgICAgIChX
ZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2sp
OgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6d2ViUGFn
ZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6
OmRpZFBvc3RNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpdGVk
TGlua1N0b3JlOjphZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVmlzaXRlZExpbmtT
dG9yZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlRnJvbnRlbmRQ
YWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Om9wZW5Mb2NhbEluc3Bl
Y3RvckZyb250ZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNsb3Nl
RnJvbnRlbmRQYWdlQW5kV2luZG93KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZERhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNy
ZWF0ZU5ld1BhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hlbWVU
YXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2tT
aGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VS
TFNjaGVtZVRhc2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVUkxT
Y2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6
c3RhcnRUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcjo6dGFza0Nv
bXBsZXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTFNjaGVtZVRhc2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVt
ZVRhc2s6OldlYlVSTFNjaGVtZVRhc2spOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVU
YXNrOjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxTY2hl
bWVUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRh
c2s6OmRpZENvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFn
ZURlc3Ryb3llZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMU2NoZW1lVGFzazo6cGFnZVByb3h5SUQgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrOjp3ZWJQYWdlSUQgY29uc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciBoYW5kbGVdKToKKyAgICAgICAgKCtbV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyIGxvb2tVcEJyb3dzaW5nQ29udGV4dEZy
b21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVXaW5kb3cpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6V2ViUmVtb3RlT2JqZWN0UmVn
aXN0cnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6Y2xvc2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjphZGRW
aXNpdGVkTGluayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJ
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmVzdGFibGlzaENvbm5lY3Rp
b24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6d2ViUGFnZVByb3h5SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVz
VG9PYmplY3RzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6dHJhbnNmb3JtT2JqZWN0
c1RvSGFuZGxlcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OmNy
ZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU5h
bWVzcGFjZUltcGw6OmNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1l
c3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5h
bWVzcGFjZUltcGwpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29w
eSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFn
ZVBhZ2VJRCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKToKKwogMjAxOS0wOC0yOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2tpcCBmZXRjaCBldmVu
dCBkaXNwYXRjaGluZyBpZiBubyBmZXRjaCBldmVudCBoYW5kbGVyIGlzIGFkZGVkIGF0IHNjcmlw
dCBldmFsdWF0aW9uIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IDc2ZmVjYzI4MDY0Mjk5ZDA1OWEyMjI5OGUzMjNmNTYxN2Y2ZGMyZDEuLjZhMjNhYzQ4
ZWUyMTEyZjY4YWI1OGIxZWFhZTVkZmIyYmFiZmNlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIyLDYgKzIyMiw3IEBAIGRlZiBmb3J3YXJkX2RlY2xh
cmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VB
cmVhSW1wbElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZp
ZXInLAorICAgICAgICAnV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyJywKICAgICBdKQog
CiAgICAgZm9yIHBhcmFtZXRlciBpbiByZWNlaXZlci5pdGVycGFyYW1ldGVycygpOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0FQSVBhZ2VIYW5kbGUuY3BwCmluZGV4IGU2MDVhNDU5NDZmZmM3
ZjFkMDdjYjg0ZThmNWNiOTg3YmJmMzY3ZGQuLjFlMWYwNDY1MmFjZmY1ODNlNTZlY2IzOWY5NWRj
NDMzZmRlN2U3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElQYWdl
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRsZS5j
cHAKQEAgLTMxLDE4ICszMSwxOSBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAotUmVmPFBhZ2VIYW5k
bGU+IFBhZ2VIYW5kbGU6OmNyZWF0ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCitS
ZWY8UGFnZUhhbmRsZT4gUGFnZUhhbmRsZTo6Y3JlYXRlKFdlYktpdDo6V2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZUlELCBmYWxzZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZVByb3h5SUQsIHdlYlBhZ2VJ
RCwgZmFsc2UpKTsKIH0KIAotUmVmPFBhZ2VIYW5kbGU+IFBhZ2VIYW5kbGU6OmNyZWF0ZUF1dG9j
b252ZXJ0aW5nKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK1JlZjxQYWdlSGFuZGxl
PiBQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJLaXQ6OldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgcGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYWdlSGFuZGxlKHBhZ2VJRCwgdHJ1ZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VIYW5kbGUocGFnZVByb3h5SUQsIHdlYlBhZ2VJ
RCwgdHJ1ZSkpOwogfQogCi1QYWdlSGFuZGxlOjpQYWdlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKQotICAgIDogbV9wYWdlSUQocGFn
ZUlEKQorUGFnZUhhbmRsZTo6UGFnZUhhbmRsZShXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgcGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgYm9vbCBp
c0F1dG9jb252ZXJ0aW5nKQorICAgIDogbV9wYWdlUHJveHlJRChwYWdlUHJveHlJRCkKKyAgICAs
IG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1faXNBdXRvY29udmVydGluZyhpc0F1dG9j
b252ZXJ0aW5nKQogewogfQpAQCAtNTMsMjIgKzU0LDI4IEBAIFBhZ2VIYW5kbGU6On5QYWdlSGFu
ZGxlKCkKIAogdm9pZCBQYWdlSGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXIgPDwgbV9wYWdlSUQ7CisgICAgZW5jb2RlciA8PCBtX3BhZ2VQ
cm94eUlEOworICAgIGVuY29kZXIgPDwgbV93ZWJQYWdlSUQ7CiAgICAgZW5jb2RlciA8PCBtX2lz
QXV0b2NvbnZlcnRpbmc7CiB9CiAKIGJvb2wgUGFnZUhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkKIHsKLSAgICBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwotICAgIGRlY29kZXIgPj4gcGFnZUlEOwotICAg
IGlmICghcGFnZUlEKQorICAgIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmll
cj4gcGFnZVByb3h5SUQ7CisgICAgZGVjb2RlciA+PiBwYWdlUHJveHlJRDsKKyAgICBpZiAoIXBh
Z2VQcm94eUlEKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gd2ViUGFnZUlEOworICAgIGRlY29kZXIgPj4gd2ViUGFnZUlEOwor
ICAgIGlmICghd2ViUGFnZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGlz
QXV0b2NvbnZlcnRpbmc7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc0F1dG9jb252ZXJ0aW5n
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmVzdWx0ID0gaXNBdXRvY29udmVydGlu
ZyA/IGNyZWF0ZUF1dG9jb252ZXJ0aW5nKCpwYWdlSUQpIDogY3JlYXRlKCpwYWdlSUQpOworICAg
IHJlc3VsdCA9IGlzQXV0b2NvbnZlcnRpbmcgPyBjcmVhdGVBdXRvY29udmVydGluZygqcGFnZVBy
b3h5SUQsICp3ZWJQYWdlSUQpIDogY3JlYXRlKCpwYWdlUHJveHlJRCwgKndlYlBhZ2VJRCk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9BUElQYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJUGFnZUhhbmRs
ZS5oCmluZGV4IDZhMWNmYjY5ODI1OWJmNDhkNGQ4ZWQ1OGVjYjg3YjBmMjI2NzQzMjEuLjE4OGQx
NzUzOTI3MzNjNDY1ZWUwMjdiMzM5NzFlNjJiMzAxYmUyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9BUElQYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0FQSVBhZ2VIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElQYWdl
SGFuZGxlX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgogCkBAIC0zOSwyMCArNDAsMjIgQEAgbmFtZXNwYWNlIEFQSSB7CiAK
IGNsYXNzIFBhZ2VIYW5kbGUgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OlBhZ2VI
YW5kbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBhZ2VIYW5kbGU+IGNyZWF0ZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7Ci0gICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVB
dXRvY29udmVydGluZyhXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQ
YWdlSGFuZGxlPiBjcmVhdGUoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxQYWdlSGFuZGxlPiBjcmVhdGVBdXRv
Y29udmVydGluZyhXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5QYWdlSGFuZGxlKCk7CiAKLSAgICBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQorICAgIFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZVByb3h5SUQ7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJRDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6Ci0gICAgUGFnZUhhbmRsZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBQYWdlSGFu
ZGxlKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIGJvb2wgaXNBdXRvY29udmVydGluZyk7CiAKLSAgICBjb25zdCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBtX3BhZ2VJRDsKKyAgICBjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgbV9wYWdlUHJveHlJRDsKKyAgICBjb25zdCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3dl
YlBhZ2VJRDsKICAgICBjb25zdCBib29sIG1faXNBdXRvY29udmVydGluZzsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RSZWdpc3Ry
eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdFJlZ2lzdHJ5
LmgKaW5kZXggZDVmYjUwNWFiMjViNzdiOTRkMGQyZjk5NTZjM2EyZmNmNWZmNjA3Mi4uMTJiZmVi
NDA0YTQyYmNjMjI3MmM5OGZkNDBhZGZhOGJlMzI0NTVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlByb2Nl
c3NUaHJvdHRsZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvV2Vha09iakNQdHIuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtNTIsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZW5kVW51c2VkUmVwbHkodWludDY0X3QgcmVwbHlJRCk7CiAKIHByb3RlY3RlZDoKLSAgICBleHBs
aWNpdCBSZW1vdGVPYmplY3RSZWdpc3RyeShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKTsKKyAg
ICBSZW1vdGVPYmplY3RSZWdpc3RyeShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqLCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIG1lc3NhZ2VEZXN0aW5hdGlvbklEKTsKICAgICAKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbiB0YWtl
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSB7IHJldHVybiBudWxscHRyOyB9CkBAIC02OCw2ICs2
OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWFrT2JqQ1B0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3Ry
eT4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBQcm9jZXNz
VGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbj4gbV9wZW5kaW5nUmVwbGllczsKKyAg
ICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fbWVzc2FnZURlc3RpbmF0aW9uSUQ7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9Db2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9Db2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeS5tbQppbmRleCAyZWFiM2UzMWNlMWIxYWI0YWYw
Y2YxNDg3ZTY0NzhjMWQzOGRkNTc1Li44NTYyZmQwYmMxNjNiZDc1NTY1NGUwYmQxYTUwNGZlOTky
MTliY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvUmVtb3Rl
T2JqZWN0UmVnaXN0cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC0zNCw4ICszNCw5IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1SZW1vdGVPYmplY3RSZWdpc3RyeTo6UmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZU9iamVjdFJlZ2lzdHJ5KQorUmVtb3RlT2JqZWN0UmVn
aXN0cnk6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5KF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZW1v
dGVPYmplY3RSZWdpc3RyeSwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtZXNzYWdlRGVzdGluYXRp
b25JRCkKICAgICA6IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3RlT2JqZWN0UmVnaXN0cnkp
CisgICAgLCBtX21lc3NhZ2VEZXN0aW5hdGlvbklEKG1lc3NhZ2VEZXN0aW5hdGlvbklEKQogewog
fQogCkBAIC01MSwxNyArNTIsMTcgQEAgdm9pZCBSZW1vdGVPYmplY3RSZWdpc3RyeTo6c2VuZElu
dm9jYXRpb24oY29uc3QgUmVtb3RlT2JqZWN0SW52b2NhdGlvbiYgaW52b2NhdGkKICAgICAgICAg
bV9wZW5kaW5nUmVwbGllcy5hZGQocmVwbHlJbmZvLT5yZXBseUlELCB0YWtlQmFja2dyb3VuZEFj
dGl2aXR5VG9rZW4oKSk7CiAgICAgfQogCi0gICAgbWVzc2FnZVNlbmRlcigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpJbnZva2VNZXRob2QoaW52b2NhdGlvbikpOworICAg
IG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6SW52
b2tlTWV0aG9kKGludm9jYXRpb24pLCBtX21lc3NhZ2VEZXN0aW5hdGlvbklEKTsKIH0KIAogdm9p
ZCBSZW1vdGVPYmplY3RSZWdpc3RyeTo6c2VuZFJlcGx5QmxvY2sodWludDY0X3QgcmVwbHlJRCwg
Y29uc3QgVXNlckRhdGEmIGJsb2NrSW52b2NhdGlvbikKIHsKLSAgICBtZXNzYWdlU2VuZGVyKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6OkNhbGxSZXBseUJsb2NrKHJlcGx5
SUQsIGJsb2NrSW52b2NhdGlvbikpOworICAgIG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6Q2FsbFJlcGx5QmxvY2socmVwbHlJRCwgYmxvY2tJbnZv
Y2F0aW9uKSwgbV9tZXNzYWdlRGVzdGluYXRpb25JRCk7CiB9CiAKIHZvaWQgUmVtb3RlT2JqZWN0
UmVnaXN0cnk6OnNlbmRVbnVzZWRSZXBseSh1aW50NjRfdCByZXBseUlEKQogewotICAgIG1lc3Nh
Z2VTZW5kZXIoKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6UmVsZWFzZVVu
dXNlZFJlcGx5QmxvY2socmVwbHlJRCkpOworICAgIG1lc3NhZ2VTZW5kZXIoKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6UmVsZWFzZVVudXNlZFJlcGx5QmxvY2socmVwbHlJ
RCksIG1fbWVzc2FnZURlc3RpbmF0aW9uSUQpOwogfQogCiB2b2lkIFJlbW90ZU9iamVjdFJlZ2lz
dHJ5OjppbnZva2VNZXRob2QoY29uc3QgUmVtb3RlT2JqZWN0SW52b2NhdGlvbiYgaW52b2NhdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dEhhbmRsZS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dEhhbmRsZS5tbQppbmRleCA3ZTk3ZjE3NmMwOGE1ODViMWI5YzI0MzBmZTk2MTNi
ZDNhMzkxNjljLi5jNmIwZWJkOWY2ZTFhZGRkODRjY2I0NjdiNTU5M2RmOTFhMTdlYTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0SGFuZGxlLm1tCkBAIC0yNiwyMSArMjYsMzYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1wb3J0ICJX
ZWJQYWdlLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPHd0Zi9IYXNoRnVu
Y3Rpb25zLmg+CisKIEBpbXBsZW1lbnRhdGlvbiBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZQogCi0t
IChpZClfaW5pdFdpdGhQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXBhZ2VJRAorLSAo
aWQpX2luaXRXaXRoUGFnZVByb3h5OihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZQoreworICAg
IHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdlLmlkZW50aWZpZXIoKSBhbmRX
ZWJQYWdlSUQ6cGFnZS53ZWJQYWdlSUQoKV07Cit9CisKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KFdl
YktpdDo6V2ViUGFnZSYpcGFnZQoreworICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJv
eHlJRDpwYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS5wYWdl
SUQoKV07Cit9CisKKy0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIpcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcil3ZWJQYWdlSUQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9wYWdlSUQgPSBwYWdlSUQ7CisgICAgX3BhZ2VQcm94
eUlEID0gcGFnZVByb3h5SUQ7CisgICAgX3dlYlBhZ2VJRCA9IHdlYlBhZ2VJRDsKIAogICAgIHJl
dHVybiBzZWxmOwogfQogCiAtIChOU1VJbnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX3BhZ2VJ
RC50b1VJbnQ2NCgpOworICAgIHJldHVybiBXVEY6OnBhaXJJbnRIYXNoKF9wYWdlUHJveHlJRC50
b1VJbnQ2NCgpLCBfd2ViUGFnZUlELnRvVUludDY0KCkpOwogfQogCiAtIChCT09MKWlzRXF1YWw6
KGlkKW9iamVjdApAQCAtNDgsMTIgKzYzLDEzIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0
CiAgICAgaWYgKCFbb2JqZWN0IGlzS2luZE9mQ2xhc3M6W1dLQnJvd3NpbmdDb250ZXh0SGFuZGxl
IGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIHJldHVybiBfcGFnZUlEID09IHN0
YXRpY19jYXN0PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCktPl9wYWdlSUQ7Cisg
ICAgcmV0dXJuIF9wYWdlUHJveHlJRCA9PSBzdGF0aWNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZSAqPihvYmplY3QpLT5fcGFnZVByb3h5SUQgJiYgX3dlYlBhZ2VJRCA9PSBzdGF0aWNfY2Fz
dDxXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqPihvYmplY3QpLT5fd2ViUGFnZUlEOwogfQogCiAt
ICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVu
Y29kZUludDY0Ol9wYWdlSUQudG9VSW50NjQoKSBmb3JLZXk6QCJwYWdlSUQiXTsKKyAgICBbY29k
ZXIgZW5jb2RlSW50NjQ6X3BhZ2VQcm94eUlELnRvVUludDY0KCkgZm9yS2V5OkAicGFnZVByb3h5
SUQiXTsKKyAgICBbY29kZXIgZW5jb2RlSW50NjQ6X3dlYlBhZ2VJRC50b1VJbnQ2NCgpIGZvcktl
eTpAIndlYlBhZ2VJRCJdOwogfQogCiAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29k
ZXIKQEAgLTYxLDcgKzc3LDggQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVy
CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAK
LSAgICBfcGFnZUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXJUeXBlPihbY29kZXIgZGVjb2RlSW50NjRGb3JLZXk6QCJwYWdlSUQiXSk7CisgICAgX3BhZ2VQ
cm94eUlEID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlm
aWVyVHlwZT4oW2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAicGFnZVByb3h5SUQiXSk7CisgICAg
X3dlYlBhZ2VJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
VHlwZT4oW2NvZGVyIGRlY29kZUludDY0Rm9yS2V5OkAid2ViUGFnZUlEIl0pOwogCiAgICAgcmV0
dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaAppbmRleCA0M2U0MWUy
NGNkMzYzMzZiNTQ3ODRiMDAzY2YxN2JiYzE2ZjY3YTY2Li44ZGVkNTlmYjU1NTE4ZDI4OTNjNzcx
YjYzZWE5YmVjNDIwNjY1OWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Q29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKQEAg
LTI0LDEyICsyNCwyMCBAQAogICovCiAKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxl
LmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L1BhZ2VJZGVudGlmaWVyLmg+CiAKLUBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRIYW5kbGUg
KCkKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZTsKK2NsYXNzIFdlYlBhZ2VQcm94
eTsKK30KIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3BhZ2VJRCkg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEOworQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29u
dGV4dEhhbmRsZSAoKQogCi0tIChpZClfaW5pdFdpdGhQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKXBhZ2VJRDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9w
YWdlUHJveHlJRCkgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlEOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3dlYlBhZ2VJRCkgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOwogCistIChpZClfaW5pdFdpdGhQYWdlUHJveHk6
KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlOworLSAoaWQpX2luaXRXaXRoUGFnZTooV2ViS2l0
OjpXZWJQYWdlJilwYWdlOworLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5SUQ6KFdlYktpdDo6V2Vi
UGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRXZWJQYWdlSUQ6KFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyKXdlYlBhZ2VJRDsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZWMzMjM5M2ZhNzZjMWJmMDI5
ZDI2OTIzOGYzMWUzNmNiNjRlMDJlZi4uNWNhOTU2ZWIyMDU3ODFlMGM0Mjk1Njg1YjM2YTU1YjQ2
ZTc0M2VkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAKQEAgLTM5LDYgKzM5LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgc3RvcmU7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRyYXdpbmdBcmVhVHlwZSk7CiAgICAg
ZW5jb2RlciA8PCBkcmF3aW5nQXJlYUlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCB3ZWJQYWdl
UHJveHlJZGVudGlmaWVyOwogICAgIGVuY29kZXIgPDwgcGFnZUdyb3VwRGF0YTsKICAgICBlbmNv
ZGVyIDw8IGlzRWRpdGFibGU7CiAgICAgZW5jb2RlciA8PCB1bmRlcmxheUNvbG9yOwpAQCAtMTU3
LDYgKzE1OCwxMSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgIGlmICghZHJhd2luZ0Fy
ZWFJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHBhcmFtZXRl
cnMuZHJhd2luZ0FyZWFJZGVudGlmaWVyID0gKmRyYXdpbmdBcmVhSWRlbnRpZmllcjsKKyAgICBP
cHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiB3ZWJQYWdlUHJveHlJZGVudGlmaWVyOwor
ICAgIGRlY29kZXIgPj4gd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKKyAgICBpZiAoIXdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcGFyYW1l
dGVycy53ZWJQYWdlUHJveHlJZGVudGlmaWVyID0gV1RGTW92ZSgqd2ViUGFnZVByb3h5SWRlbnRp
Zmllcik7CiAgICAgT3B0aW9uYWw8V2ViUGFnZUdyb3VwRGF0YT4gcGFnZUdyb3VwRGF0YTsKICAg
ICBkZWNvZGVyID4+IHBhZ2VHcm91cERhdGE7CiAgICAgaWYgKCFwYWdlR3JvdXBEYXRhKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4
IGUxOWQ5OTZhMTYzYjU1MzAyMGFjNTEyNTI5ZmZmZGRmMDU1NzdhMjQuLjEwMTI0ZDBmYjBjNGJk
ZGExODc2ODllMWNiODM2OGNkZGEwMDcxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCisjaW5jbHVkZSAi
V2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUu
aCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTgwLDYgKzgxLDcgQEAgc3RydWN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmU7
CiAgICAgRHJhd2luZ0FyZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKICAgICBEcmF3aW5nQXJlYUlk
ZW50aWZpZXIgZHJhd2luZ0FyZWFJZGVudGlmaWVyOworICAgIFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKICAgICBXZWJQYWdlR3JvdXBEYXRhIHBhZ2VHcm91
cERhdGE7CiAKICAgICBib29sIGlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L09iakNPYmplY3RHcmFwaC5tbQppbmRleCBmZTY2ZGU2NTkyYWEwYWYyMzQ1ODgyZGIzZDQxYTEy
Y2EyYjliYzE2Li4wZWFmMDZmNWNhNGJiZmM3NTc5NTczMjE1NjRkM2JkZmZiOTUwYzM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgubW0KQEAgLTE4Niw3ICsx
ODYsOCBAQCB2b2lkIE9iakNPYmplY3RHcmFwaDo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
ciwgaWQgb2JqZWN0KQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgT2JqQ1R5cGU6OldLQnJv
d3NpbmdDb250ZXh0SGFuZGxlOgotICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PFdLQnJv
d3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCkucGFnZUlEOworICAgICAgICBlbmNvZGVyIDw8
IHN0YXRpY19jYXN0PFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICo+KG9iamVjdCkucGFnZVByb3h5
SUQ7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8V0tCcm93c2luZ0NvbnRleHRIYW5k
bGUgKj4ob2JqZWN0KS53ZWJQYWdlSUQ7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBPYmpD
VHlwZTo6V0tUeXBlUmVmV3JhcHBlcjoKQEAgLTI5OCwxMiArMjk5LDE2IEBAIGJvb2wgT2JqQ09i
amVjdEdyYXBoOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8aWQ+JiBy
ZXN1bHQpCiAgICAgfQogCiAgICAgY2FzZSBPYmpDVHlwZTo6V0tCcm93c2luZ0NvbnRleHRIYW5k
bGU6IHsKLSAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsK
LSAgICAgICAgZGVjb2RlciA+PiBwYWdlSUQ7Ci0gICAgICAgIGlmICghcGFnZUlEKQorICAgICAg
ICBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBwYWdlUHJveHlJRDsKKyAgICAgICAg
ZGVjb2RlciA+PiBwYWdlUHJveHlJRDsKKyAgICAgICAgaWYgKCFwYWdlUHJveHlJRCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IHdlYlBhZ2VJRDsKKyAgICAgICAgZGVjb2RlciA+PiB3ZWJQYWdlSUQ7CisgICAgICAg
IGlmICghd2ViUGFnZUlEKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHJl
c3VsdCA9IGFkb3B0TlMoW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRo
UGFnZUlEOipwYWdlSURdKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHROUyhbW1dLQnJvd3NpbmdD
b250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJveHlJRDoqcGFnZVByb3h5SUQgYW5k
V2ViUGFnZUlEOip3ZWJQYWdlSURdKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCAxMTAwMzNiYTZmYTRmN2MwNmYwZjUzNzJhMmRh
NTUzODU3MDE0MmEwLi43OWVkMjVlYjc5NDYyNTMxMDM0NTczNmEyZGNhODJjNzJiNTUxZTQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTcyMCw3ICs3MjAsNyBAQCAtIChO
U1VJbnRlZ2VyKXBhZ2VDb3VudAogCiAtIChXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSAqKWhhbmRs
ZQogewotICAgIHJldHVybiBbW1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRX
aXRoUGFnZUlEOl9wYWdlLT53ZWJQYWdlSUQoKV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBb
W1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZVByb3h5OipfcGFn
ZV0gYXV0b3JlbGVhc2VdOwogfQogCiAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1v
dGVPYmplY3RSZWdpc3RyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KaW5kZXggY2M3ZjZjOTYyNTg3NTg1MGNhNmFjMmMwODViNDc3ZjY2Y2M4ZjEy
YS4uNzQzZmYyYzZjZmQ3ODVmNTJhYWU2OGM4MmU5Yzc0N2U2NGUwZWMxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04NzcsNyArODc3
LDcgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW19jb250ZW50VmlldyBfd2ViVmlld0Rlc3Ryb3ll
ZF07CiAKICAgICBpZiAoX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAgICAgICBfcGFnZS0+cHJv
Y2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+d2ViUGFnZUlE
KCkpOworICAgICAgICBfcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBfcGFnZS0+aWRlbnRpZmllcigpKTsKICNlbmRpZgogCiAgICAgX3BhZ2UtPmNsb3Nl
KCk7CkBAIC00NzI1LDcgKzQ3MjUsNyBAQCAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9y
ZW1vdGVPYmplY3RSZWdpc3RyeQogI2Vsc2UKICAgICBpZiAoIV9yZW1vdGVPYmplY3RSZWdpc3Ry
eSkgewogICAgICAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eToqX3BhZ2VdKTsKLSAg
ICAgICAgX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgX3Bh
Z2UtPndlYlBhZ2VJRCgpLCBbX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lz
dHJ5XSk7CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIF9wYWdlLT5pZGVudGlmaWVyKCksIFtfcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3Rl
T2JqZWN0UmVnaXN0cnldKTsKICAgICB9CiAKICAgICByZXR1cm4gX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5LmdldCgpOwpAQCAtNDczNCw3ICs0NzM0LDcgQEAgLSAoX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkgKilfcmVtb3RlT2JqZWN0UmVnaXN0cnkKIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUg
KilfaGFuZGxlCiB7Ci0gICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9j
XSBfaW5pdFdpdGhQYWdlSUQ6X3BhZ2UtPndlYlBhZ2VJRCgpXSBhdXRvcmVsZWFzZV07CisgICAg
cmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlUHJv
eHk6Kl9wYWdlXSBhdXRvcmVsZWFzZV07CiB9CiAKIC0gKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZl
bnRzKV9vYnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3Bw
CmluZGV4IDU0YTI0MDUyNGI5MGUzYmUwODRjYzU5ZDJjNTJhNjIwN2E2NTliNmEuLjRmMWU4YmIy
ODRmYzBjMmZhMWRkMzdkNTk5Yjg0MmFkMTkyNzM5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3Bw
CkBAIC04Nyw3ICs4Nyw3IEBAIFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHdlYmtpdFVSSVNjaGVt
ZVJlcXVlc3RDcmVhdGUodWludDY0X3QgcmVxdWVzdElELCBXZWJLaXRXCiAgICAgcmVxdWVzdC0+
cHJpdi0+cmVxdWVzdElEID0gcmVxdWVzdElEOwogCiAgICAgQVNTRVJUKHJlc291cmNlUmVxdWVz
dC5pbml0aWF0aW5nUGFnZUlEKCkpOwotICAgIHJlcXVlc3QtPnByaXYtPmluaXRpYXRpbmdQYWdl
ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKCpyZXNvdXJjZVJlcXVlc3QuaW5pdGlhdGluZ1Bh
Z2VJRCgpKTsKKyAgICByZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFnZSA9IFdlYlByb2Nlc3NQ
cm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIoKnJlc291cmNlUmVxdWVzdC5pbml0
aWF0aW5nUGFnZUlEKCkpOwogICAgIEFTU0VSVChyZXF1ZXN0LT5wcml2LT5pbml0aWF0aW5nUGFn
ZSk7CiAKICAgICByZXR1cm4gcmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKaW5kZXggM2QxMjgwMjcx
MjdiMzZjODc1ZTZkMTI5N2ZmYzJkZDdkY2QwYzJiZC4uYTNmYWI2MmY3NTJkNmM4OGI5MWM2Y2E5
MjQyMzg0ODg5MGYwZTlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgUHJv
Y2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gVUlSZW1vdGVPYmplY3RSZWdp
c3RyeTo6dGFrZUJhY2tncm91bmQKIH0KIAogVUlSZW1vdGVPYmplY3RSZWdpc3RyeTo6VUlSZW1v
dGVPYmplY3RSZWdpc3RyeShfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVtb3RlT2JqZWN0UmVn
aXN0cnksIFdlYlBhZ2VQcm94eSYgcGFnZSkKLSAgICA6IFJlbW90ZU9iamVjdFJlZ2lzdHJ5KHJl
bW90ZU9iamVjdFJlZ2lzdHJ5KQorICAgIDogUmVtb3RlT2JqZWN0UmVnaXN0cnkocmVtb3RlT2Jq
ZWN0UmVnaXN0cnksIHBhZ2UuaWRlbnRpZmllcigpKQogICAgICwgbV9wYWdlKHBhZ2UpCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJv
eHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94
eUNvY29hLm1tCmluZGV4IGIxZWM4NDZiN2I0NjA1NDhjZTBmODZkN2E1ZDExN2E2NzY3OGM0ZjEu
LjFhODI1M2FjMDQyMmQxZWVhNDk5ODM3OWI1NjI4NDZjNTViYzc2MWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBA
IC03Niw3ICs3Niw3IEBAIFJlZlB0cjxPYmpDT2JqZWN0R3JhcGg+IFdlYlByb2Nlc3NQcm94eTo6
dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhPYmpDT2JqZWN0R3JhCiAgICAgICAgIFJldGFpblB0
cjxpZD4gdHJhbnNmb3JtT2JqZWN0KGlkIG9iamVjdCkgY29uc3Qgb3ZlcnJpZGUKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKGF1dG8qIGhhbmRsZSA9IGR5bmFtaWNfb2JqY19jYXN0PFdLQnJv
d3NpbmdDb250ZXh0SGFuZGxlPihvYmplY3QpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8q
IHdlYlBhZ2VQcm94eSA9IG1fd2ViUHJvY2Vzc1Byb3h5LndlYlBhZ2UoaGFuZGxlLnBhZ2VJRCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gbV93ZWJQcm9jZXNz
UHJveHkud2ViUGFnZShoYW5kbGUucGFnZVByb3h5SUQpKSB7CiAgICAgICAgICAgICAgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIF9icm93c2luZ0NvbnRleHRDb250
cm9sbGVyRm9yUGFnZVJlZjp0b0FQSSh3ZWJQYWdlUHJveHkpXTsKICAgICAgICAgICAgICAgICAg
ICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGY0MDQyZmU3MGRmNjE2NjRhZjg5Y2Yw
YTQzZTk2OWZlNjM1NDZiNjIuLjM1YWM0ZGY2ZTVlZGQwNzQ3YTczZGJlNWJjYWMzYjZhNTkzMjMy
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC0xMzYyLDcgKzEzNjIsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJW
aWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYgogV2ViVmlld0ltcGw6
On5XZWJWaWV3SW1wbCgpCiB7CiAgICAgaWYgKG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKLSAg
ICAgICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNz
UG9vbCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0
cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCkpOwogICAgICAg
ICBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSBfaW52YWxpZGF0ZV07CiAgICAgICAgIG1fcmVtb3Rl
T2JqZWN0UmVnaXN0cnkgPSBuaWw7CiAgICAgfQpAQCAtMzgyMyw3ICszODIzLDcgQEAgX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkgKldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3RyeSgpCiB7
CiAgICAgaWYgKCFtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7CiAgICAgICAgIG1fcmVtb3RlT2Jq
ZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgYWxsb2NdIF9p
bml0V2l0aFdlYlBhZ2VQcm94eTptX3BhZ2VdKTsKLSAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCku
cHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJl
Z2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+d2ViUGFnZUlEKCksIFttX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7CisgICAgICAgIG1fcGFn
ZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpS
ZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPmlkZW50
aWZpZXIoKSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsK
ICAgICB9CiAKICAgICByZXR1cm4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeS5nZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDY4Y2RhZGI3Njg5OGNhMzk3ODQ3OThmMjM5OTg3ZDMyZGZlMzk5ZTguLjQ1
MDkyMjQyMTAwYTA4OWJlNGE2NDAzYzljNmQxN2JkMzMxNWQyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMzQzLDcgKzM0Myw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3NpCiAKICAgICBXZWJQYWdl
UHJveHkqIHBhZ2UgPSBudWxscHRyOwogICAgIGlmIChwYWdlSUQpCi0gICAgICAgIHBhZ2UgPSBX
ZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICAgICAgcGFnZSA9IFdlYlByb2Nl
c3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKIAogICAgIGlm
IChwYWdlKSB7CiAgICAgICAgIHBhZ2UtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5KFdURk1vdmUoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKQEAgLTQxMiw3ICs0MTIs
NyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNz
TGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmxvZ0RpYWdub3N0aWNNZXNzYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpTaG91bGRTYW1w
bGUgc2hvdWxkU2FtcGxlKQogewotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQ
cm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nl
c3NQcm94eTo6d2ViUGFnZUZyb21Db3JlUGFnZUlkZW50aWZpZXIocGFnZUlEKTsKICAgICAvLyBG
SVhNRTogV2UgZG8gdGhpcyBudWxsLWNoZWNrIGJlY2F1c2UgYnkgdGhlIHRpbWUgdGhlIGRlY2lz
aW9uIHRvIGxvZyBpcyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUgZ29uZS4gV2Ugc2hvdWxkIHJlZmFj
dG9yIHRvIGF2b2lkIHRoaXMsCiAgICAgLy8gYnV0IGZvciBub3cgd2Ugc2ltcGx5IGRyb3AgdGhl
IG1lc3NhZ2UgaW4gdGhlIHJhcmUgY2FzZSB0aGlzIGhhcHBlbnMuCiAgICAgaWYgKCFwYWdlKQpA
QCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBTdHJpCiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCB1aW50MzJfdCByZXN1bHQsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUp
CiB7Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBh
Z2VJRCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdl
RnJvbUNvcmVQYWdlSWRlbnRpZmllcihwYWdlSUQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyB0aGlz
IG51bGwtY2hlY2sgYmVjYXVzZSBieSB0aGUgdGltZSB0aGUgZGVjaXNpb24gdG8gbG9nIGlzIG1h
ZGUsIHRoZSBwYWdlIG1heSBiZSBnb25lLiBXZSBzaG91bGQgcmVmYWN0b3IgdG8gYXZvaWQgdGhp
cywKICAgICAvLyBidXQgZm9yIG5vdyB3ZSBzaW1wbHkgZHJvcCB0aGUgbWVzc2FnZSBpbiB0aGUg
cmFyZSBjYXNlIHRoaXMgaGFwcGVucy4KICAgICBpZiAoIXBhZ2UpCkBAIC00MzQsNyArNDM0LDcg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1
bHQoUGFnZUlkZW50aWZpZXIgcGFnZUlELAogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Omxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUs
IHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3Vs
ZFNhbXBsZSkKIHsKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6Ondl
YlBhZ2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6
OndlYlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBhZ2VJRCk7CiAgICAgLy8gRklYTUU6IFdl
IGRvIHRoaXMgbnVsbC1jaGVjayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBkZWNpc2lvbiB0byBs
b2cgaXMgbWFkZSwgdGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZhY3RvciB0byBh
dm9pZCB0aGlzLAogICAgIC8vIGJ1dCBmb3Igbm93IHdlIHNpbXBseSBkcm9wIHRoZSBtZXNzYWdl
IGluIHRoZSByYXJlIGNhc2UgdGhpcyBoYXBwZW5zLgogICAgIGlmICghcGFnZSkKQEAgLTc3Nyw3
ICs3NzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpcwogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJh
bWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJQ
YWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBX
ZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2VGcm9tQ29yZVBhZ2VJ
ZGVudGlmaWVyKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTYwLDcgKzk2MCw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNm
ZXJGcm9tUHJldmFsZW50UmVzCiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBh
Z2UocGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6Ondl
YlBhZ2VGcm9tQ29yZVBhZ2VJZGVudGlmaWVyKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTEyNjAsNyArMTI2MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6Y2xlYXJVcGxvYWRBc3NlcnRpb24oKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHk6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewotICAgIGF1dG8qIHBhZ2UgPSBXZWJQcm9j
ZXNzUHJveHk6OndlYlBhZ2Uod2ViUGFnZUlEKTsKKyAgICBhdXRvKiBwYWdlID0gV2ViUHJvY2Vz
c1Byb3h5Ojp3ZWJQYWdlRnJvbUNvcmVQYWdlSWRlbnRpZmllcih3ZWJQYWdlSUQpOwogICAgIGlm
ICghcGFnZSkKICAgICAgICAgcmV0dXJuIHJlcGx5KGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IDBjMDM0MDY5MDQx
MDZlMjU3ZDZmM2E4ZTJmODBiN2VlZTE5MjEzNWUuLmEyYTA5ZGM0OTI1ZGY0MmU1NDg0NDUwYmVm
NDc5NzhjMDM5N2Y5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdl
UHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywgc3RkOjp1bmlxdWVf
cHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gc3VzcGVuZGVkUGFnZSwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBib29sIGlzU2VydmVyUmVkaXJlY3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBtX3dlYlBhZ2VJRChwYWdl
LndlYlBhZ2VJRCgpKQorICAgICwgbV93ZWJQYWdlSUQoc3VzcGVuZGVkUGFnZSA/IHN1c3BlbmRl
ZFBhZ2UtPndlYlBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBt
X3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAgICAsIG1fbmF2aWdhdGlvbklEKG5hdmlnYXRp
b25JRCkKICAgICAsIG1faXNTZXJ2ZXJSZWRpcmVjdChpc1NlcnZlclJlZGlyZWN0KQpAQCAtMTQ1
LDcgKzE0NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhCiB7CiAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJsb2FkRGF0YTogcGFnZVByb3h5SUQgPSAlIiBQ
Ukl1NjQgIiB3ZWJQYWdlSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5pZGVudGlmaWVyKCkudG9VSW50
NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSk7CiAKLSAgICBtX3BhZ2UubG9hZERhdGFXaXRo
TmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBuYXZpZ2F0aW9uLCBkYXRhLCBN
SU1FVHlwZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVh
dEFzQ29udGludWluZ0xvYWQ6OlllcywgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICBt
X3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBt
X3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJM
LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMsIFdU
Rk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmxvYWRSZXF1ZXN0KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQpAQCAtMTU4LDcg
KzE1OCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRSZXF1ZXN0KEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQ29yZTo6UmVzCiAgICAgaWYgKG5hdmlnYXRpb24uZnJv
bUl0ZW0oKSAmJiBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKSA9PSBXZWJDb3JlOjpM
b2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpCiAgICAgICAgIG5hdmlnYXRpb24uZnJvbUl0ZW0oKS0+
c2V0TGFzdFByb2Nlc3NJZGVudGlmaWVyKG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVy
KCkpOwogCi0gICAgbV9wYWdlLmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9j
ZXNzLmNvcHlSZWYoKSwgbmF2aWdhdGlvbiwgV1RGTW92ZShyZXF1ZXN0KSwgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZDo6WWVzLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOworICAgIG1fcGFnZS5sb2Fk
UmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFn
ZUlELCBuYXZpZ2F0aW9uLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5LCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXMsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRh
PiYmIHdlYnNpdGVQb2xpY2llcykKQEAgLTI4NywxMyArMjg3LDEzIEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lCiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCi0gICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBO
YXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRh
JiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwKKyAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJQ
YWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1
dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2Uu
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIs
IG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksCisgICAgbV9wYWdl
LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2lu
KSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRh
KSwKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9y
aWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdU
Rk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIApAQCAt
MzAzLDcgKzMwMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zCiAgICAgaWYgKCF2YWxpZGF0
ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
cGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBm
cmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJl
c3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0
ZW5lcklELCB1c2VyRGF0YSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBj
YW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7
CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCkBAIC0zMjQsNyArMzI0LDcgQEAg
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoRnIKIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6c3Rh
cnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsK
LSAgICBtX3BhZ2Uuc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IFdURk1vdmUocGFyYW1ldGVycykpOworICAgIG1fcGFnZS5zdGFydFVSTFNjaGVtZVRhc2tTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIFdURk1vdmUocGFyYW1ldGVycykp
OwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9JdGVtKGNv
bnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImIGlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQpAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlCiB9
CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5m
b0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAg
ICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRl
eCA1YjRjOWNmMmVkYjcyYzRjOTJjZTUxY2IyZGIyM2FmYzZlZWQ3ODJkLi4xNzUyMTUwNDc0OGJm
YjZmMjA2M2NlMTRjYTQ1ZmQxY2M3MTgzZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGljOgogICAg
IH5Qcm92aXNpb25hbFBhZ2VQcm94eSgpOwogCiAgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgeyBy
ZXR1cm4gbV9wYWdlOyB9CisgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKCkg
Y29uc3QgeyByZXR1cm4gbV93ZWJQYWdlSUQ7IH0KICAgICBXZWJGcmFtZVByb3h5KiBtYWluRnJh
bWUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZS5nZXQoKTsgfQogICAgIFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcygpIHsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQogICAgIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDsgfQpAQCAtOTMsNyArOTQs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmlu
YWw7CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLAotICAgICAgICBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBPcHRpb25h
bDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0
YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCiAgICAgICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYpOwpAQCAtMTA5LDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFVSTFNjaGVt
ZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdv
VG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7CiAgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2
aWdhdGlvbkFjdGlvbkRhdGEmJiwKLSAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAorICAgICAgICBGcmFt
ZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJ
Q0tfTE9PSykKICAgICB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50
SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCmluZGV4IDdiOTViNmVkZThhMzlhNzA5NjdjNGYz
MjY3N2UyZmY4ZTcxMmIxZjYuLjFhYzNkODgxNTFiOTc3NDU1MTcxMmM5M2JhNmQ2ZjIwOThhNWY3
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBA
IC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+U3VzcGVuZGVkUGFnZVByb3h5KCk7CiAKICAg
ICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KKyAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2VJ
RDsgfQogICAgIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcygpIHsgcmV0dXJuIG1fcHJvY2Vzcy5n
ZXQoKTsgfQogICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHkuY3BwCmluZGV4IDEwN2JiMjI3MDg2YzNjYzQwMTAwYjNlMjcwZDk2N2E0YmIxYTdm
ZmIuLmVhZmM0NTcyOTkyODU3NzYxZmZmMjE3ZTg1NDU2MTkzOGZiMGFmMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9X
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTMzMiw5ICszMzIsOSBAQCB2b2lk
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyTWVzc2FnZUhhbmRs
ZXJzKEFQSTo6VXNlckNvbnRlbgogICAgIHJlbW92ZVVzZXJDb250ZW50V29ybGRVc2VzKHdvcmxk
LCBudW1iZXJSZW1vdmVkKTsKIH0KIAotdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eTo6ZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90
IG1lc3NhZ2VIYW5kbGVySUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5j
ZSkKK3ZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmRpZFBvc3RNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJv
eHlJRCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVzc2Fn
ZUhhbmRsZXJJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQogewot
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQp
OworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdl
UHJveHlJRCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eS5oCmluZGV4IGU2NDQ0YjJmNDE4YzE0NTUyYTEzZDg4ZWVj
NzY3OGFlNjcyZDBhYTguLjQ2OWQzMGUzMWVhOTEzYmNmNzA0NWQ4ZjAzMWU3MThjNTBmYmQ3OGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaApAQCAtMTEyLDcgKzExMiw3
IEBAIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
IAotICAgIHZvaWQgZGlkUG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxl
cklELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZFBvc3RNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0IEZyYW1lSW5m
b0RhdGEmLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmKTsKIAogICAgIHZvaWQgYWRkVXNlckNvbnRlbnRXb3JsZFVzZShBUEk6OlVzZXJDb250ZW50
V29ybGQmKTsKICAgICB2b2lkIHJlbW92ZVVzZXJDb250ZW50V29ybGRVc2VzKEFQSTo6VXNlckNv
bnRlbnRXb3JsZCYsIHVuc2lnbmVkIG51bWJlck9mVXNlc1RvUmVtb3ZlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjVhNGUy
OTEyNzRlZTAzNjlmZGQxNmVlMDA1YzJjOTVmOWZhZjI3NS4uOGQyMDBhMWU2ZTlmYjg5ZTVmMDRi
NWU1ODZlNTRlNDQ5ZGMxZjhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDUgKzI0LDUgQEAKICAqLwogCiBtZXNzYWdl
cyAtPiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSB7Ci1EaWRQb3N0TWVzc2FnZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEg
ZnJhbWVJbmZvRGF0YSwgdWludDY0X3QgbWVzc2FnZUhhbmRsZXJJRCwgSVBDOjpEYXRhUmVmZXJl
bmNlIG1lc3NhZ2UpIFdhbnRzQ29ubmVjdGlvbgorRGlkUG9zdE1lc3NhZ2UoV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBm
cmFtZUluZm9EYXRhLCB1aW50NjRfdCBtZXNzYWdlSGFuZGxlcklELCBJUEM6OkRhdGFSZWZlcmVu
Y2UgbWVzc2FnZSkgV2FudHNDb25uZWN0aW9uCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCmluZGV4IGQ3OWQ3YWQ4NDZjNzNiOTlhOGQ0MmM2ZmVhOTFh
NzhmN2Q2YjIzMzQuLmJiNjUwOTkwMzQ5ZjBmMjMyYmM4ZDMwNzU2MDEzM2ZkNzZhYTI3M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuY3BwCkBAIC0xMDAs
MTAgKzEwMCw5IEBAIHZvaWQgVmlzaXRlZExpbmtTdG9yZTo6cmVtb3ZlQWxsKCkKICAgICB9CiB9
CiAKLXZvaWQgVmlzaXRlZExpbmtTdG9yZTo6YWRkVmlzaXRlZExpbmtIYXNoRnJvbVBhZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBTaGFyZWRTdHJpbmdIYXNoIGxpbmtIYXNoKQordm9pZCBWaXNp
dGVkTGlua1N0b3JlOjphZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZShXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHBhZ2VQcm94eUlELCBTaGFyZWRTdHJpbmdIYXNoIGxpbmtIYXNoKQogewotICAgIC8v
IEZJWE1FOiBOZWVkcyB0byBsb29rIHVwIFdlYlBhZ2VQcm94eSBmcm9tIFdlYlBhZ2VJRC4KLSAg
ICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJ
RCkpIHsKKyAgICBpZiAoYXV0byogd2ViUGFnZVByb3h5ID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQ
YWdlKHBhZ2VQcm94eUlEKSkgewogICAgICAgICBpZiAoIXdlYlBhZ2VQcm94eS0+YWRkc1Zpc2l0
ZWRMaW5rcygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Zpc2l0ZWRMaW5rU3RvcmUuaAppbmRleCA0NDY5MzUzNDQ4MWUyYmYwMGQzMTQyNmYy
MGE4N2JhZWJmOWNmYjk4Li5jNWMzMDgxYWFmYTMxNGNlZWQ1OWM0MzdjMDU0ZDAyYzcwMmJkNzcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5oCkBAIC0yOCw3
ICsyOCw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFN0b3JlLmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL0lkZW50aWZpZWQuaD4KQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpZEludmFsaWRhdGVTaGFyZWRNZW1vcnkoKSBmaW5hbDsKICAgICB2b2lkIGRpZFVw
ZGF0ZVNoYXJlZFN0cmluZ0hhc2hlcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2hhcmVkU3RyaW5n
SGFzaD4mIGFkZGVkSGFzaGVzLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFz
aD4mIHJlbW92ZWRIYXNoZXMpIGZpbmFsOwogCi0gICAgdm9pZCBhZGRWaXNpdGVkTGlua0hhc2hG
cm9tUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U2hhcmVkU3RyaW5nSGFz
aCk7CisgICAgdm9pZCBhZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZShXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRTdHJpbmdIYXNoKTsKIAogICAgIHZvaWQgc2VuZFN0b3Jl
SGFuZGxlVG9Qcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVmlzaXRlZExpbmtTdG9yZS5tZXNzYWdlcy5pbgppbmRleCAyZTY2YzQy
ODA4ZWJiN2ViY2YzOTMxOWIxMDg2YTkyN2YzMzEzNjFlLi4wNzMyMWM1MWY3ZTc5MDdmYjg0MDNh
OWQzOTkyZDc0ZTdhNDk5NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9W
aXNpdGVkTGlua1N0b3JlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Zpc2l0ZWRMaW5rU3RvcmUubWVzc2FnZXMuaW4KQEAgLTIxLDUgKzIxLDUgQEAKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAogbWVzc2FnZXMgLT4gVmlzaXRlZExpbmtTdG9yZSB7Ci0gICAgQWRkVmlzaXRlZExp
bmtIYXNoRnJvbVBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBs
aW5rSGFzaCkKKyAgICBBZGRWaXNpdGVkTGlua0hhc2hGcm9tUGFnZShXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQsIHVpbnQ2NF90IGxpbmtIYXNoKQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IGU2MjFhOGZk
ODNlMWY5MDNlNmM2NmZmNjI1YzM5YjA5NjBlZjIzZDIuLjc3Njg5NGM3YTBkMjVhNWIxYmY4YTc1
MmQwZDFkNmFiMzg1NWJmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
Ykluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5jcHAKQEAgLTM5MCw3ICszOTAsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpjcmVhdGVGcm9udGVuZFBhZ2UoKQogCiAgICAgdHJhY2tJbnNwZWN0b3JQYWdlKG1faW5zcGVj
dG9yUGFnZSwgbV9pbnNwZWN0ZWRQYWdlKTsKIAotICAgIG1faW5zcGVjdG9yUGFnZS0+cHJvY2Vz
cygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9pbnNwZWN0ZWRQYWdlLT53ZWJQYWdlSUQoKSwgKnRoaXMpOwor
ICAgIG1faW5zcGVjdG9yUGFnZS0+cHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6V2ViSW5zcGVjdG9yUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pbnNwZWN0ZWRQ
YWdlLT5pZGVudGlmaWVyKCksICp0aGlzKTsKICAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3Mo
KS5hc3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKCptX2luc3BlY3RvclBhZ2UsIFdlYkluc3BlY3Rv
clByb3h5OjppbnNwZWN0b3JCYXNlVVJMKCkpOwogfQogCkBAIC00MTEsNyArNDExLDcgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6b3BlbkxvY2FsSW5zcGVjdG9yRnJvbnRlbmQoYm9vbCBjYW5B
dHRhY2gsIGJvb2wgdW5kZXJUZXMKICAgICBpZiAoIW1faW5zcGVjdG9yUGFnZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViSW5zcGVjdG9yVUk6OkVzdGFibGlzaENvbm5lY3Rpb24obV9pbnNwZWN0ZWRQYWdlLT53ZWJQ
YWdlSUQoKSwgbV91bmRlclRlc3QsIGluc3BlY3Rpb25MZXZlbCgpKSwgbV9pbnNwZWN0b3JQYWdl
LT53ZWJQYWdlSUQoKSk7CisgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViSW5zcGVjdG9yVUk6OkVzdGFibGlzaENvbm5lY3Rpb24obV9pbnNwZWN0ZWRQYWdl
LT5pZGVudGlmaWVyKCksIG1fdW5kZXJUZXN0LCBpbnNwZWN0aW9uTGV2ZWwoKSksIG1faW5zcGVj
dG9yUGFnZS0+d2ViUGFnZUlEKCkpOwogCiAgICAgQVNTRVJUKCFtX2lzQWN0aXZlRnJvbnRlbmQp
OwogICAgIG1faXNBY3RpdmVGcm9udGVuZCA9IHRydWU7CkBAIC00ODUsNyArNDg1LDcgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3coKQogICAgIHVu
dHJhY2tJbnNwZWN0b3JQYWdlKG1faW5zcGVjdG9yUGFnZSk7CiAKICAgICBtX2luc3BlY3RvclBh
Z2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6U2V0SXNWaXNpYmxl
KG1faXNWaXNpYmxlKSwgbV9pbnNwZWN0b3JQYWdlLT53ZWJQYWdlSUQoKSk7Ci0gICAgbV9pbnNw
ZWN0b3JQYWdlLT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJJ
bnNwZWN0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2luc3BlY3RlZFBhZ2UtPndl
YlBhZ2VJRCgpKTsKKyAgICBtX2luc3BlY3RvclBhZ2UtPnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faW5zcGVjdGVkUGFnZS0+aWRlbnRpZmllcigpKTsKIAogICAgIGlmIChtX2lzQWN0aXZl
RnJvbnRlbmQpIHsKICAgICAgICAgbV9pc0FjdGl2ZUZyb250ZW5kID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAxNDE3Mjc2Y2ZjMTI2OGQzZTM2
NGRhZTU3MTNkZDNhY2ZlZGNlNmY2Li45NDRkYjljZWI0MTdhMGJjNzVkMjJlY2IzZjA3MTllODMx
NTI4NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc5
NCwxMiArNzk0LDEzIEBAIGJvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBv
c3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2Vzcywgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYgZHJh
d2luZ0FyZWEsIFJlZlB0cjxXZWJGcmFtZVByb3h5PiYmIG1haW5GcmFtZSkKK3ZvaWQgV2ViUGFn
ZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94
eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKQogewog
ICAgIEFTU0VSVCghbV9pc0Nsb3NlZCk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAic3dhcFRvV2ViUHJvY2VzczoiKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExv
YWRpbmcsICJzd2FwVG9XZWJQcm9jZXNzOiBuZXdXZWJQYWdlSUQ9JSIgUFJJdTY0LCB3ZWJQYWdl
SUQudG9VSW50NjQoKSk7CiAKICAgICBtX3Byb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpOworICAg
IG1fd2ViUGFnZUlEID0gd2ViUGFnZUlEOwogICAgIG1fd2Vic2l0ZURhdGFTdG9yZSA9IG1fcHJv
Y2Vzcy0+d2Vic2l0ZURhdGFTdG9yZSgpOwogCiAgICAgaWYgKG1fbG9nZ2VyKQpAQCAtMTEyNSwx
MSArMTEyNiwxMSBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNobwogICAgICAgICBsYXVuY2hQcm9j
ZXNzKFJlZ2lzdHJhYmxlRG9tYWluIHsgcmVxdWVzdC51cmwoKSB9KTsKIAogICAgIGF1dG8gbmF2
aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24o
UmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0o
KSk7Ci0gICAgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5LCB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObyk7
CisgICAgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShyZXF1ZXN0KSwgc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSwgdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZDo6Tm8pOwogICAgIHJldHVybiBuYXZpZ2F0aW9uOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5n
TG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0
V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlv
biwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFNo
b3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAgIEFT
U0VSVCghbV9pc0Nsb3NlZCk7CiAKQEAgLTExNTUsNyArMTE1Niw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzCiAKICAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJz
KTsKIAotICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRSZXF1ZXN0KGxv
YWRQYXJhbWV0ZXJzKSwgbV93ZWJQYWdlSUQpOworICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkxvYWRSZXF1ZXN0KGxvYWRQYXJhbWV0ZXJzKSwgd2ViUGFnZUlEKTsKICAgICBw
cm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIH0KIApAQCAtMTIyNywxMSAr
MTIyOCwxMSBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvYWREYXRh
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgYwogICAgICAgICBsYXVuY2hQcm9jZXNz
KHsgfSk7CiAKICAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRl
TG9hZERhdGFOYXZpZ2F0aW9uKG1ha2VVbmlxdWU8QVBJOjpTdWJzdGl0dXRlRGF0YT4oZGF0YS52
ZWN0b3IoKSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSkpOwotICAgIGxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbmF2aWdhdGlv
biwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkOjpObywgV1RGOjpudWxsb3B0LCBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KTsKKyAgICBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1fcHJvY2Vzcy5j
b3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlwZSwgZW5jb2Rp
bmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQ6Ok5vLCBX
VEY6Om51bGxvcHQsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogICAgIHJldHVybiBu
YXZpZ2F0aW9uOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlv
blNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcm
IE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkws
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3
ZWJzaXRlUG9saWNpZXMsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0
aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlELCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7
CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAibG9hZERhdGFXaXRoTmF2aWdh
dGlvbiIpOwogCkBAIC0xMjU0LDcgKzEyNTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERh
dGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAg
ICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CiAKICAgICBwcm9j
ZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKCp0aGlzLCBiYXNlVVJMKTsKLSAgICBwcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkRGF0YShsb2FkUGFyYW1ldGVycyksIG1f
d2ViUGFnZUlEKTsKKyAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkRGF0
YShsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CiAgICAgcHJvY2Vzcy0+cmVzcG9uc2l2ZW5l
c3NUaW1lcigpLnN0YXJ0KCk7CiB9CiAKQEAgLTI5NTksNyArMjk2MCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnCiAgICAgaWYgKCFkaWRTdXNwZW5kUHJldmlvdXNQYWdlKQogICAgICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsb3NlKCksIG1fd2ViUGFnZUlEKTsK
IAotICAgIHN3YXBUb1dlYlByb2Nlc3MobV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSwgbV9w
cm92aXNpb25hbFBhZ2UtPnRha2VEcmF3aW5nQXJlYSgpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+bWFp
bkZyYW1lKCkpOworICAgIHN3YXBUb1dlYlByb2Nlc3MobV9wcm92aXNpb25hbFBhZ2UtPnByb2Nl
c3MoKSwgbV9wcm92aXNpb25hbFBhZ2UtPndlYlBhZ2VJRCgpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+
dGFrZURyYXdpbmdBcmVhKCksIG1fcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKSk7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBhdXRvIGFjY2Vzc2liaWxpdHlUb2tlbiA9IG1fcHJvdmlz
aW9uYWxQYWdlLT50YWtlQWNjZXNzaWJpbGl0eVRva2VuKCk7CkBAIC0yOTk5LDcgKzMwMDAsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6
TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgcwogICAgIGlmIChtX2JhY2tGb3J3YXJkTGlzdC0+Y3Vy
cmVudEl0ZW0oKSAmJiAobmF2aWdhdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0KCkgPT0gTG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6WWVzIHx8IG5hdmlnYXRpb24ubG9ja0hpc3RvcnkoKSA9PSBMb2NrSGlz
dG9yeTo6WWVzKSkgewogICAgICAgICAvLyBJZiBXZWJDb3JlIGlzIHN1cHBvc2VkIHRvIGxvY2sg
dGhlIGhpc3RvcnkgZm9yIHRoaXMgbG9hZCwgdGhlbiB0aGUgbmV3IHByb2Nlc3MgbmVlZHMgdG8g
a25vdyBhYm91dCB0aGUgY3VycmVudCBoaXN0b3J5IGl0ZW0gc28gaXQgY2FuIHVwZGF0ZQogICAg
ICAgICAvLyBpdCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IG9uZS4KLSAgICAgICAgbmV3UHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Q3VycmVudEhpc3RvcnlJdGVtRm9yUmVh
dHRhY2gobV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1TdGF0ZSgpKSwgbV93
ZWJQYWdlSUQpOworICAgICAgICBuZXdQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpT
ZXRDdXJyZW50SGlzdG9yeUl0ZW1Gb3JSZWF0dGFjaChtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVu
dEl0ZW0oKS0+aXRlbVN0YXRlKCkpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+d2ViUGFnZUlEKCkpOwog
ICAgIH0KIAogICAgIC8vIEZJWE1FOiBXb3JrIG91dCB0aW1pbmcgb2YgcmVzcG9uZGluZyB3aXRo
IHRoZSBsYXN0IHBvbGljeSBkZWxlZ2F0ZSwgZXRjCkBAIC00NjIyLDIzICs0NjIzLDIzIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2ws
IFdlYkZyYW1lUG9saWN5TGlzdGVuCiAjZW5kaWYKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKLSAgICBO
YXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRh
JiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKKyAgICBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJ
bmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsK
LSAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRp
ZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKKyAgICBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSks
CiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmln
aW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZN
b3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKLSAgICBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFt
ZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCisgICAgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0socHJvY2VzcywgZnJhbWUpOwogCi0gICAgYXV0
byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lSUQsIGxpc3RlbmVySUQsIHBy
b2Nlc3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKGF1dG8uLi4gYXJncykgewotICAgICAgICBwcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJh
bWVJRCwgbGlzdGVuZXJJRCwgYXJncy4uLiksIG1fd2ViUGFnZUlEKTsKKyAgICBhdXRvIHNlbmRl
ciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3dlYlBhZ2VJRCwg
ZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IHByb2Nlc3MuY29weVJlZigpXSAoYXV0by4u
LiBhcmdzKSB7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJl
Y2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBhcmdzLi4uKSwgd2ViUGFn
ZUlEKTsKICAgICB9KTsKIAogICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24ocHJv
Y2Vzcy5jb3B5UmVmKCksICpmcmFtZSwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgbmF2
aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShmcmFtZUlu
Zm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsCkBAIC00NjQ2LDcgKzQ2NDcsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveAogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCi0gICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJ
bmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKKyAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRh
LCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2Vu
ZGVyKQogewogICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uIC0gT3JpZ2luYWwgVVJMICVzLCBjdXJyZW50IHRhcmdldCBVUkwgJXMi
LCBvcmlnaW5hbFJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVxdWVzdC51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKQEAgLTQ4NjAsNyArNDg2MSw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJh
bWUsIGNvbnN0IFVSTCYgcGFnCiAjZW5kaWYKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29s
IGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEs
IEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJ
bmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYg
cmVwbHkpCiB7CkBAIC00ODc4LDcgKzQ4NzksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsCiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Y1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKLSAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCisgICAgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCiB7CkBAIC00OTM1LDEwICs0OTM2LDEwIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewotICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZp
ZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93
bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKKyAgICBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJ
RCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25z
ZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJ
RCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBh
Z2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTUxLDE0ICs0
OTUyLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgTUVTU0FHRV9DSEVDS19VUkwo
cHJvY2VzcywgcmVzcG9uc2UudXJsKCkpOwogCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4g
bmF2aWdhdGlvbiA9IG5hdmlnYXRpb25JRCA/IG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwotICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZy
YW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgZnJhbWVJRCwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9
IFdURk1vdmUobmF2aWdhdGlvbiksCisgICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUt
PnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCB3ZWJQYWdlSUQsIGZyYW1lSUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmln
YXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb24pLAogICAgICAgICBwcm9jZXNzID0gcHJvY2Vzcy5j
b3B5UmVmKCldIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2ll
cyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZykg
bXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBBc3NlcnQgdGhlIEFQSTo6V2Vic2l0ZVBvbGlj
aWVzKiBpcyBudWxscHRyIGhlcmUgb25jZSBjbGllbnRzIG9mIFdLRnJhbWVQb2xpY3lMaXN0ZW5l
clVzZVdpdGhQb2xpY2llcyBnbyBhd2F5LgogICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5v
KTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChzYWZlQnJvd3NpbmdXYXJuaW5nLCAhc2FmZUJyb3dz
aW5nV2FybmluZyk7CiAKLSAgICAgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRl
cjo6Y3JlYXRlKGlkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKSwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJvY2Vz
cyldIChhdXRvLi4uIGFyZ3MpIHsKLSAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBh
cmdzLi4uKSwgbV93ZWJQYWdlSUQpOworICAgICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lz
aW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgW3dlYlBhZ2VJRCwgZnJhbWVJRCwgbGlzdGVu
ZXJJRCwgcHJvY2VzcyA9IFdURk1vdmUocHJvY2VzcyldIChhdXRvLi4uIGFyZ3MpIHsKKyAgICAg
ICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklELCBhcmdzLi4uKSwgd2ViUGFnZUlEKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIAogICAgICAgICByZWNlaXZlZFBvbGljeURlY2lzaW9uKHBvbGljeUFj
dGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGOjpudWxsb3B0LCBXVEZNb3ZlKHNlbmRlcikpOwpA
QCAtNTEwNSw3ICs1MTA2LDcgQEAgc3RhdGljIHZvaWQgdHJ5U09BdXRob3JpemF0aW9uKFJlZjxB
UEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2UKICNlbmRpZgogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiBv
cmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMmJiB3
aW5kb3dGZWF0dXJlcywgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYg
cmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9E
YXRhJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50
aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXaW5k
b3dGZWF0dXJlcyYmIHdpbmRvd0ZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vzcywgb3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9j
ZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKCpvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJ
RCkpOwpAQCAtNzE3Nyw2ICs3MTc4LDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQ
YWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBw
YXJhbWV0ZXJzLmFjdGl2aXR5U3RhdGUgPSBtX2FjdGl2aXR5U3RhdGU7CiAgICAgcGFyYW1ldGVy
cy5kcmF3aW5nQXJlYVR5cGUgPSBkcmF3aW5nQXJlYS50eXBlKCk7CiAgICAgcGFyYW1ldGVycy5k
cmF3aW5nQXJlYUlkZW50aWZpZXIgPSBkcmF3aW5nQXJlYS5pZGVudGlmaWVyKCk7CisgICAgcGFy
YW1ldGVycy53ZWJQYWdlUHJveHlJZGVudGlmaWVyID0gbV9pZGVudGlmaWVyOwogICAgIHBhcmFt
ZXRlcnMuc3RvcmUgPSBwcmVmZXJlbmNlc1N0b3JlKCk7CiAgICAgcGFyYW1ldGVycy5wYWdlR3Jv
dXBEYXRhID0gbV9wYWdlR3JvdXAtPmRhdGEoKTsKICAgICBwYXJhbWV0ZXJzLmlzRWRpdGFibGUg
PSBtX2lzRWRpdGFibGU7CkBAIC04Njk3LDE1ICs4Njk5LDE1IEBAIFdlYlVSTFNjaGVtZUhhbmRs
ZXIqIFdlYlBhZ2VQcm94eTo6dXJsU2NoZW1lSGFuZGxlckZvclNjaGVtZShjb25zdCBTdHJpbmcm
IHNjaGVtCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1l
VGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewotICAgIHN0YXJ0VVJMU2NoZW1lVGFza1No
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKKyAgICBzdGFy
dFVSTFNjaGVtZVRhc2tTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdlSUQsIFdU
Rk1vdmUocGFyYW1ldGVycykpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVUkxTY2hl
bWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgVVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQordm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0VVJMU2No
ZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlm
aWVyIHdlYlBhZ2VJRCwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewog
ICAgIGF1dG8gaXRlcmF0b3IgPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVyLmZpbmQo
cGFyYW1ldGVycy5oYW5kbGVySWRlbnRpZmllcik7CiAgICAgTUVTU0FHRV9DSEVDSyhwcm9jZXNz
LCBpdGVyYXRvciAhPSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVyLmVuZCgpKTsKIAot
ICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRUYXNrKCp0aGlzLCBwcm9jZXNzLCBwYXJhbWV0ZXJz
LnRhc2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMucmVxdWVzdCksIG51bGxwdHIpOwor
ICAgIGl0ZXJhdG9yLT52YWx1ZS0+c3RhcnRUYXNrKCp0aGlzLCBwcm9jZXNzLCB3ZWJQYWdlSUQs
IHBhcmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVycy5yZXF1ZXN0KSwg
bnVsbHB0cik7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzdG9wVVJMU2NoZW1lVGFzayh1aW50
NjRfdCBoYW5kbGVySWRlbnRpZmllciwgdWludDY0X3QgdGFza0lkZW50aWZpZXIpCkBAIC04NzIx
LDcgKzg3MjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9ub3VzVVJMU2NoZW1l
VGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX3VybFNjaGVtZUhhbmRsZXJzQnlJZGVudGlmaWVyLmZpbmQocGFyYW1ldGVycy5oYW5kbGVy
SWRlbnRpZmllcik7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGl0ZXJhdG9yICE9IG1f
dXJsU2NoZW1lSGFuZGxlcnNCeUlkZW50aWZpZXIuZW5kKCkpOwogCi0gICAgaXRlcmF0b3ItPnZh
bHVlLT5zdGFydFRhc2soKnRoaXMsIG1fcHJvY2VzcywgcGFyYW1ldGVycy50YXNrSWRlbnRpZmll
ciwgV1RGTW92ZShwYXJhbWV0ZXJzLnJlcXVlc3QpLCBXVEZNb3ZlKHJlcGx5KSk7CisgICAgaXRl
cmF0b3ItPnZhbHVlLT5zdGFydFRhc2soKnRoaXMsIG1fcHJvY2VzcywgbV93ZWJQYWdlSUQsIHBh
cmFtZXRlcnMudGFza0lkZW50aWZpZXIsIFdURk1vdmUocGFyYW1ldGVycy5yZXF1ZXN0KSwgV1RG
TW92ZShyZXBseSkpOwogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzM2NzY1MzZhM2YyMmJh
OTYxY2Q5ZDU2N2ViZjg4YjBlMGNiZTFhYi4uNDU5NTA2NDY5ZDVkMjQ1NTNjNmJmYzIwNjY3ZDRm
MDY3NTFmMmEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE1
MTIsMTcgKzE1MTIsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGly
ZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
Ci0gICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwg
RnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsCisgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlv
bkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAogICAgICAgICBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3Rl
bmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3Qg
VXNlckRhdGEmKTsKLSAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKLSAgICB2b2lkIGxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZp
Z2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKLSAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmln
YXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0
KTsKKyAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7
CisgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwg
V2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9s
aWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxk
Tm90QWxsb3cpOworICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0
aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RG
OjpudWxsb3B0KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsK
ICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5G
cmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
LAotICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCisgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9u
YWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRh
dGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQg
ZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKQEAgLTE2NTAs
MTMgKzE2NTAsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVp
bnQ2NF90IG5hdmlnYXRpb25JRCk7CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYsCi0gICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJbmZvRGF0
YSYmLCBPcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCBVc2VyRGF0YSYsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7CiAgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYs
Ci0gICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25h
bDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0
YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1l
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCi0g
ICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwKKyAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKQEAg
LTE2NzgsNyArMTY3OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0
bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CiAKICAgICAvLyBVSSBjbGllbnQKLSAgICB2b2lkIGNyZWF0ZU5ld1BhZ2Uo
Y29uc3QgRnJhbWVJbmZvRGF0YSYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6Oldp
bmRvd0ZlYXR1cmVzJiYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNyZWF0ZU5l
d1BhZ2UoY29uc3QgRnJhbWVJbmZvRGF0YSYsIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6V2luZG93RmVhdHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgc2hv
d1BhZ2UoKTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5
JiYpOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5
JiYpOwpAQCAtMTczNiw3ICsxNzM2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENhblNob3J0
Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyhib29sIGNhblNob3J0Q2lyY3VpdEhvcml6b250
YWxXaGVlbEV2ZW50cykgeyBtX2NhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyA9
IGNhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50czsgfQogCiAgICAgdm9pZCBsYXVu
Y2hQcm9jZXNzKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgdm9pZCBz
d2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHN0ZDo6dW5pcXVlX3B0cjxE
cmF3aW5nQXJlYVByb3h5PiYmLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBtYWluRnJhbWUpOwor
ICAgIHZvaWQgc3dhcFRvV2ViUHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+JiYsIFJl
ZlB0cjxXZWJGcmFtZVByb3h5PiYmIG1haW5GcmFtZSk7CiAgICAgdm9pZCBkaWRGYWlsVG9TdXNw
ZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpOwogICAgIHZvaWQgZGlkU3VzcGVuZEFmdGVyUHJvY2Vzc1N3
YXAoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDYxZGMxYmM1MDJkNWM5MjUzM2UyNzFiN2QxNmM5ZGY0Y2YyNjNhNDMuLjkz
ZDM0MTQyZjg3NTI3MTMwOGU1MGZkZjVlYjEwZmJkNjg3NTJhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcg
QEAKIAogbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIFVJIG1lc3NhZ2VzCi0gICAg
Q3JlYXRlTmV3UGFnZShzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6
OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9u
QWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9ub3VzCisgICAgQ3JlYXRlTmV3
UGFnZShzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpX
aW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gbmV3UGFnZUlELCBPcHRpb25hbDxXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM+IG5ld1BhZ2VQYXJhbWV0ZXJzKSBTeW5jaHJvbm91cwogICAgIFNob3dQYWdlKCkK
ICAgICBDbG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikKICAgICBSdW5KYXZh
U2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3Nh
Z2UpIC0+ICgpIFN5bmNocm9ub3VzCkBAIC0xMDQsOCArMTA0LDggQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKIAogICAgICMgUG9saWN5IG1lc3NhZ2VzCiAgICAgRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0
dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
LSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJh
bWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlz
dGVuZXJJRCkKLSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZv
RGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNo
ZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lB
Y3Rpb24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25s
b2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGlj
aWVzKSBTeW5jaHJvbm91cworICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
YyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0
cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0
aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBp
c01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25B
Y3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9E
YXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhf
dCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0
aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6Oldl
YnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykgU3luY2hyb25vdXMKICAgICBEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdp
biwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwg
c3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIFVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2NGIzMWY3NTky
MmZjZDlhMmM5NmY2MzViZTBlNzJlZTllZDgzNWE1Li5hZjY3NDhjOWY3MzgxNWY3NjA5ODU4ZjUw
OTNiOWI2MDlhNjU3MjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTM1NiwxNCArMzU2LDE0IEBAIFdlYlBhZ2VQcm94eSogV2ViUHJvY2Vzc1By
b3h5Ojp3ZWJQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKQogICAgIHJldHVybiBn
bG9iYWxQYWdlTWFwKCkuZ2V0KHBhZ2VJRCk7CiB9CiAKLVdlYlBhZ2VQcm94eSogV2ViUHJvY2Vz
c1Byb3h5Ojp3ZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkKKy8vIEZJ
WE1FOiBJZGVhbGx5LCB3ZSdkIGdldCByaWQgb2YgYWxsIHRoZSBjYWxsZXJzIGFuZCBkcm9wIHRo
aXMgZnVuY3Rpb24uCitXZWJQYWdlUHJveHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZUZyb21D
b3JlUGFnZUlkZW50aWZpZXIoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQogewot
ICAgIC8vIEZJWE1FOiBEbyBiZXR0ZXIuCiAgICAgZm9yIChhdXRvJiBwYWdlIDogZ2xvYmFsUGFn
ZU1hcCgpLnZhbHVlcygpKSB7CiAgICAgICAgIGlmIChwYWdlLT53ZWJQYWdlSUQoKSA9PSB3ZWJQ
YWdlSUQpCiAgICAgICAgICAgICByZXR1cm4gcGFnZTsKICAgICB9Ci0gICAgCisKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIApAQCAtMTEyMSw3ICsxMTIxLDcgQEAgUmVmUHRyPEFQSTo6T2JqZWN0
PiBXZWJQcm9jZXNzUHJveHk6OnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMoQVBJOjpPYmplY3Qq
IG9iamUKIAogICAgICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6UGFnZUhhbmRsZToK
ICAgICAgICAgICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8QVBJOjpQYWdlSGFuZGxlJj4ob2Jq
ZWN0KS5pc0F1dG9jb252ZXJ0aW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBtX3dlYlBy
b2Nlc3NQcm94eS53ZWJQYWdlKHN0YXRpY19jYXN0PEFQSTo6UGFnZUhhbmRsZSY+KG9iamVjdCku
cGFnZUlEKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBtX3dlYlByb2Nlc3NQcm94eS53ZWJQ
YWdlKHN0YXRpY19jYXN0PEFQSTo6UGFnZUhhbmRsZSY+KG9iamVjdCkucGFnZVByb3h5SUQoKSk7
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5
cGU6Ok9iakNPYmplY3RHcmFwaDoKQEAgLTExNjQsNyArMTE2NCw3IEBAIFJlZlB0cjxBUEk6Ok9i
amVjdD4gV2ViUHJvY2Vzc1Byb3h5Ojp0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKEFQSTo6T2Jq
ZWN0KiBvYmplCiAgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0
ZUF1dG9jb252ZXJ0aW5nKHN0YXRpY19jYXN0PGNvbnN0IFdlYkZyYW1lUHJveHkmPihvYmplY3Qp
LmZyYW1lSUQoKSk7CiAKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2U6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZl
cnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViUGFnZVByb3h5Jj4ob2JqZWN0KS53ZWJQYWdlSUQo
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0b2Nv
bnZlcnRpbmcoc3RhdGljX2Nhc3Q8Y29uc3QgV2ViUGFnZVByb3h5Jj4ob2JqZWN0KS5pZGVudGlm
aWVyKCksIHN0YXRpY19jYXN0PGNvbnN0IFdlYlBhZ2VQcm94eSY+KG9iamVjdCkud2ViUGFnZUlE
KCkpOwogCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpQYWdlR3JvdXA6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6UGFnZUdyb3VwSGFuZGxlOjpjcmVhdGUoV2ViUGFn
ZUdyb3VwRGF0YShzdGF0aWNfY2FzdDxjb25zdCBXZWJQYWdlR3JvdXAmPihvYmplY3QpLmRhdGEo
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA0N2Ey
NDNkOTcwYTY4OWIxMDMxYjY3NGIxNmQ0NTljOGFmMjU2ZGEwLi44ZWRmNTMwNDBmYzE1YjQ5NWYx
OTU0ZDM2ZDFlZDI2NDNlMWE5ODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaApAQCAtMTMzLDcgKzEzMyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBXZWJQ
cm9jZXNzUHJveHkqIHByb2Nlc3NGb3JJZGVudGlmaWVyKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyKTsKICAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiB3ZWJQYWdlKFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIpOwotICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIHdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOworICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIHdlYlBhZ2VGcm9tQ29yZVBhZ2VJ
ZGVudGlmaWVyKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICBSZWY8V2ViUGFnZVByb3h5
PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4m
Jik7CiAKICAgICBlbnVtIGNsYXNzIEJlZ2luc1VzaW5nRGF0YVN0b3JlIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5j
cHAKaW5kZXggNWE2Y2M5NWQwZjgzNDRmOGYwZjlkNGYwNjAxYmIyZGRjYTc4YTgwOC4uOTBjMGI4
MGUwMDJjMjdjZTA4YjhkOThjMThlMGI0ODA4OTc1NDI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgV2Vi
VVJMU2NoZW1lSGFuZGxlcjo6fldlYlVSTFNjaGVtZUhhbmRsZXIoKQogICAgIEFTU0VSVChtX3Rh
c2tzLmlzRW1wdHkoKSk7CiB9CiAKLXZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6c3RhcnRUYXNr
KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW50NjRfdCB0
YXNrSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0
aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJVUkxTY2hlbWVIYW5kbGVy
OjpzdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IFBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgdWludDY0X3QgdGFza0lkZW50aWZpZXIsIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdGFza3MuYWRkKHRhc2tJZGVudGlm
aWVyLCBXZWJVUkxTY2hlbWVUYXNrOjpjcmVhdGUoKnRoaXMsIHBhZ2UsIHByb2Nlc3MsIHRhc2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkp
OworICAgIGF1dG8gcmVzdWx0ID0gbV90YXNrcy5hZGQodGFza0lkZW50aWZpZXIsIFdlYlVSTFNj
aGVtZVRhc2s6OmNyZWF0ZSgqdGhpcywgcGFnZSwgcHJvY2Vzcywgd2ViUGFnZUlELCB0YXNrSWRl
bnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsK
ICAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwogCiAgICAgYXV0byBwYWdlRW50cnkgPSBt
X3Rhc2tzQnlQYWdlSWRlbnRpZmllci5hZGQocGFnZS5pZGVudGlmaWVyKCksIEhhc2hTZXQ8dWlu
dDY0X3Q+KCkpOwpAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgV2ViVVJMU2NoZW1lSGFuZGxlcjo6
dGFza0NvbXBsZXRlZChXZWJVUkxTY2hlbWVUYXNrJiB0YXNrKQogewogICAgIGF1dG8gdGFrZW5U
YXNrID0gbV90YXNrcy50YWtlKHRhc2suaWRlbnRpZmllcigpKTsKICAgICBBU1NFUlRfVU5VU0VE
KHRha2VuVGFzaywgdGFrZW5UYXNrLT5wdHIoKSA9PSAmdGFzayk7Ci0gICAgcmVtb3ZlVGFza0Zy
b21QYWdlTWFwKHRhc2sucGFnZUlEKCksIHRhc2suaWRlbnRpZmllcigpKTsKKyAgICByZW1vdmVU
YXNrRnJvbVBhZ2VNYXAodGFzay5wYWdlUHJveHlJRCgpLCB0YXNrLmlkZW50aWZpZXIoKSk7CiAK
ICAgICBwbGF0Zm9ybVRhc2tDb21wbGV0ZWQodGFzayk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJVUkxTY2hlbWVIYW5kbGVyLmgKaW5kZXggZDU4YzdlNTY3MzI2MTI4OWI3Y2Qz
YzA4ZjQwYmM2YmU5OGQ0Y2VkNC4uMjM0OTA2ZjRjNGNlZTg1NzE0Y2Q0MWRkZmI4YTgxZmFmOGIy
ZjNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFu
ZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZUhhbmRsZXIu
aApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKLSAgICB2b2lkIHN0YXJ0VGFzayhXZWJQ
YWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCB0YXNrSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7Cisg
ICAgdm9pZCBzdGFydFRhc2soV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5JiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIHN0
b3BUYXNrKFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IHRhc2tJZGVudGlmaWVyKTsKICAgICB2b2lk
IHN0b3BBbGxUYXNrc0ZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5Kik7CiAg
ICAgdm9pZCB0YXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5jcHAKaW5kZXggZDYxZjEzNjIyNjQ4Njg2ZTI3
NGQxMWFjMTk0MDM5OGFjZWY1YmYxZC4uMjdhM2RiNTRmOWIxMmRlMWI3OTc0MzMwZjI1YzY3YTI0
NjI5YjdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1l
VGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5j
cHAKQEAgLTM2LDE3ICszNiwxNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUmVmPFdlYlVSTFNjaGVtZVRhc2s+IFdlYlVSTFNjaGVtZVRhc2s6OmNy
ZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2UsIFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgc3luY0Nv
bXBsZXRpb25IYW5kbGVyKQorUmVmPFdlYlVSTFNjaGVtZVRhc2s+IFdlYlVSTFNjaGVtZVRhc2s6
OmNyZWF0ZShXZWJVUkxTY2hlbWVIYW5kbGVyJiBoYW5kbGVyLCBXZWJQYWdlUHJveHkmIHBhZ2Us
IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCB1aW50
NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5bmNM
b2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5jQ29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViVVJMU2NoZW1lVGFzayhoYW5kbGVyLCBwYWdlLCBwcm9jZXNz
LCByZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoc3luY0NvbXBs
ZXRpb25IYW5kbGVyKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlVSTFNjaGVtZVRh
c2soaGFuZGxlciwgcGFnZSwgcHJvY2Vzcywgd2ViUGFnZUlELCByZXNvdXJjZUlkZW50aWZpZXIs
IFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoc3luY0NvbXBsZXRpb25IYW5kbGVyKSkpOwogfQog
Ci1XZWJVUkxTY2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVtZUhhbmRsZXIm
IGhhbmRsZXIsIFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1
aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN5
bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJiBzeW5jQ29tcGxldGlvbkhhbmRsZXIpCitXZWJVUkxT
Y2hlbWVUYXNrOjpXZWJVUkxTY2hlbWVUYXNrKFdlYlVSTFNjaGVtZUhhbmRsZXImIGhhbmRsZXIs
IFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgU3luY0xvYWRDb21wbGV0aW9uSGFuZGxlciYmIHN5bmNDb21wbGV0aW9u
SGFuZGxlcikKICAgICA6IG1fdXJsU2NoZW1lSGFuZGxlcihoYW5kbGVyKQotICAgICwgbV9wYWdl
KCZwYWdlKQogICAgICwgbV9wcm9jZXNzKG1ha2VSZWYocHJvY2VzcykpCiAgICAgLCBtX2lkZW50
aWZpZXIocmVzb3VyY2VJZGVudGlmaWVyKQotICAgICwgbV9wYWdlSWRlbnRpZmllcihwYWdlLmlk
ZW50aWZpZXIoKSkKKyAgICAsIG1fcGFnZVByb3h5SUQocGFnZS5pZGVudGlmaWVyKCkpCisgICAg
LCBtX3dlYlBhZ2VJRCh3ZWJQYWdlSUQpCiAgICAgLCBtX3JlcXVlc3QoV1RGTW92ZShyZXF1ZXN0
KSkKICAgICAsIG1fc3luY0NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc3luY0NvbXBsZXRpb25I
YW5kbGVyKSkKIHsKQEAgLTgyLDcgKzgyLDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRQ
ZXJmb3JtUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnMKICAg
ICAgICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRQZXJmb3JtUmVkaXJlY3Rpb24obV91
cmxTY2hlbWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UsIHJl
cXVlc3QpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRQZXJmb3JtUmVkaXJlY3Rpb24obV91cmxTY2hl
bWVIYW5kbGVyLT5pZGVudGlmaWVyKCksIG1faWRlbnRpZmllciwgcmVzcG9uc2UsIHJlcXVlc3Qp
LCBtX3dlYlBhZ2VJRCk7CiAKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KQEAg
LTEwNyw3ICsxMDcsNyBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZFJlY2VpdmVSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgLT4gRQogICAgIGlmIChpc1N5bmMo
KSkKICAgICAgICAgbV9zeW5jUmVzcG9uc2UgPSByZXNwb25zZTsKIAotICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZSht
X3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSks
IG1fcGFnZS0+d2ViUGFnZUlEKCkpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VVJMU2NoZW1lVGFza0RpZFJlY2VpdmVSZXNwb25zZShtX3VybFNjaGVtZUhhbmRsZXIt
PmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCByZXNwb25zZSksIG1fd2ViUGFnZUlEKTsKICAg
ICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKIH0KIApAQCAtMTM0LDcgKzEzNCw3IEBAIGF1
dG8gV2ViVVJMU2NoZW1lVGFzazo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBi
dWZmZXIpIC0+IEV4Y2VwdGlvblR5CiAgICAgICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25l
OwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2No
ZW1lVGFza0RpZFJlY2VpdmVEYXRhKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBt
X2lkZW50aWZpZXIsIHsgYnVmZmVyIH0pLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRSZWNlaXZlRGF0
YShtX3VybFNjaGVtZUhhbmRsZXItPmlkZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCB7IGJ1ZmZl
ciB9KSwgbV93ZWJQYWdlSUQpOwogICAgIHJldHVybiBFeGNlcHRpb25UeXBlOjpOb25lOwogfQog
CkBAIC0xNjQsNyArMTY0LDcgQEAgYXV0byBXZWJVUkxTY2hlbWVUYXNrOjpkaWRDb21wbGV0ZShj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgLT4gRXhjZXB0aW9uVHlwZQogICAgICAgICBtX3N5
bmNEYXRhID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVSTFNjaGVtZVRhc2tEaWRDb21wbGV0ZShtX3VybFNjaGVtZUhhbmRsZXItPmlk
ZW50aWZpZXIoKSwgbV9pZGVudGlmaWVyLCBlcnJvciksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOwor
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VVJMU2NoZW1lVGFza0RpZENv
bXBsZXRlKG1fdXJsU2NoZW1lSGFuZGxlci0+aWRlbnRpZmllcigpLCBtX2lkZW50aWZpZXIsIGVy
cm9yKSwgbV93ZWJQYWdlSUQpOwogICAgIG1fdXJsU2NoZW1lSGFuZGxlci0+dGFza0NvbXBsZXRl
ZCgqdGhpcyk7CiAKICAgICByZXR1cm4gRXhjZXB0aW9uVHlwZTo6Tm9uZTsKQEAgLTE3Myw5ICsx
NzMsOSBAQCBhdXRvIFdlYlVSTFNjaGVtZVRhc2s6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKSAtPiBFeGNlcHRpb25UeXBlCiB2b2lkIFdlYlVSTFNjaGVtZVRhc2s6OnBh
Z2VEZXN0cm95ZWQoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgQVNT
RVJUKG1fcGFnZSk7CiAKLSAgICBtX3BhZ2UgPSBudWxscHRyOworICAgIG1fcGFnZVByb3h5SUQg
PSB7IH07CisgICAgbV93ZWJQYWdlSUQgPSB7IH07CiAgICAgbV9wcm9jZXNzID0gbnVsbHB0cjsK
ICAgICBtX3N0b3BwZWQgPSB0cnVlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViVVJMU2NoZW1lVGFzay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
VVJMU2NoZW1lVGFzay5oCmluZGV4IDM5YjJmZWI0M2JmYzc3OWFlMmYxNmJhZTE3ODJmYzc0NjVl
OGM2NDAuLmJmZDkyMzM5MWNlN2JjNDAyY2NhZGQ2NWY1OTA3ZDRmYjI2ZTE5ODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlVSTFNjaGVtZVRhc2suaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJVUkxTY2hlbWVUYXNrLmgKQEAgLTU0LDEzICs1NCwxMyBA
QCB1c2luZyBTeW5jTG9hZENvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZQogY2xhc3MgV2ViVVJMU2NoZW1lVGFzayA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiwgcHVibGljIEluc3RhbmNl
Q291bnRlZDxXZWJVUkxTY2hlbWVUYXNrPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vi
VVJMU2NoZW1lVGFzayk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJVUkxTY2hlbWVUYXNr
PiBjcmVhdGUoV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQ
cm94eSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBT
eW5jTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHN0YXRpYyBSZWY8V2ViVVJMU2NoZW1l
VGFzaz4gY3JlYXRlKFdlYlVSTFNjaGVtZUhhbmRsZXImLCBXZWJQYWdlUHJveHkmLCBXZWJQcm9j
ZXNzUHJveHkmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgaWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFN5bmNMb2FkQ29tcGxldGlvbkhhbmRsZXImJik7
CiAKICAgICB+V2ViVVJMU2NoZW1lVGFzaygpOwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigp
IGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOyByZXR1cm4gbV9wYWdlSWRlbnRpZmllcjsgfQotCisgICAgV2ViUGFn
ZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCgpIGNvbnN0IHsgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsgcmV0dXJuIG1fcGFnZVByb3h5SUQ7IH0KKyAgICBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQoKSBjb25zdCB7IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7IHJldHVy
biBtX3dlYlBhZ2VJRDsgfQogICAgIFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcygpIHsgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCkBAIC04NywxNSArODcsMTUgQEAgcHVibGljOgogICAgIHZvaWQgcGFnZURl
c3Ryb3llZCgpOwogCiBwcml2YXRlOgotICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1l
SGFuZGxlciYsIFdlYlBhZ2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IGlkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBTeW5jTG9hZENvbXBsZXRpb25IYW5k
bGVyJiYpOworICAgIFdlYlVSTFNjaGVtZVRhc2soV2ViVVJMU2NoZW1lSGFuZGxlciYsIFdlYlBh
Z2VQcm94eSYsIFdlYlByb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgU3luY0xvYWRDb21w
bGV0aW9uSGFuZGxlciYmKTsKIAogICAgIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gISFt
X3N5bmNDb21wbGV0aW9uSGFuZGxlcjsgfQogCiAgICAgUmVmPFdlYlVSTFNjaGVtZUhhbmRsZXI+
IG1fdXJsU2NoZW1lSGFuZGxlcjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBSZWZQ
dHI8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVy
OwotICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlSWRlbnRpZmllcjsKKyAgICBXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZVByb3h5SUQ7CisgICAgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgbV93ZWJQYWdlSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVz
dDsKICAgICBtdXRhYmxlIExvY2sgbV9yZXF1ZXN0TG9jazsKICAgICBib29sIG1fc3RvcHBlZCB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggNDIwMjM5NmFi
YWZhZjMwZDcxODlhZWI2ODUwOWVhMjcxNzFiOTc0NS4uMmI3MmMyMTE1OGFmOWFjNzM3OWUzNmQw
N2E5NzYzMWY4YzM2NTBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQpAQCAt
NDA0LDEyICs0MDQsMTIgQEAgLSAoV0tCdW5kbGVQYWdlUmVmKV9idW5kbGVQYWdlUmVmCiAKIC0g
KFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICopaGFuZGxlCiB7Ci0gICAgcmV0dXJuIFtbW1dLQnJv
d3NpbmdDb250ZXh0SGFuZGxlIGFsbG9jXSBfaW5pdFdpdGhQYWdlSUQ6X3BhZ2UtPnBhZ2VJRCgp
XSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIFtbW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIGFs
bG9jXSBfaW5pdFdpdGhQYWdlOipfcGFnZV0gYXV0b3JlbGVhc2VdOwogfQogCiArIChpbnN0YW5j
ZXR5cGUpbG9va1VwQnJvd3NpbmdDb250ZXh0RnJvbUhhbmRsZTooV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UoaGFuZGxlLnBhZ2VJRCkpOworICAgIHJldHVybiB3cmFwcGVy
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShoYW5kbGUud2ViUGFnZUlE
KSk7CiB9CiAKIC0gKF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICopX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCmluZGV4IDJiMjg4NjRhOWFhMDk4
NDQyZDYxNTMyYzY0MGY1YjkzYTg1OTk4MGEuLmM0NGFkYjI2YTBmMWM5NTM0NDBiODk4YzBlN2Rm
ZjU1Zjk2YWEwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCkBAIC0yNTIs
NyArMjUyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5
OjpEaWRQb3N0TWVzc2FnZSh3ZWJQYWdlLT5wYWdlSUQoKSwgd2ViRnJhbWUtPmluZm8oKSwgbV9p
ZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UodmFsdWUtPmRhdGEoKSkpLCBtX2NvbnRyb2xs
ZXItPmlkZW50aWZpZXIoKSk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjpEaWRQb3N0TWVzc2FnZSh3ZWJQYWdlLT53ZWJQYWdlUHJveHlJZGVudGlmaWVy
KCksIHdlYkZyYW1lLT5pbmZvKCksIG1faWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlKHZh
bHVlLT5kYXRhKCkpKSwgbV9jb250cm9sbGVyLT5pZGVudGlmaWVyKCkpOwogICAgIH0KIAogICAg
IFJlZlB0cjxXZWJVc2VyQ29udGVudENvbnRyb2xsZXI+IG1fY29udHJvbGxlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggMGU2Yjk0M2QxNTljNjEyMmE5YjQ0NGZlNjhmMDU3NTA2OWQxMWRm
MC4uYjgwMzM1MWQ4OWIxNDk4MDQ5NDg5NzVkMzZlNzc4NDljN2FjN2Q1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTI5Miw3ICsyOTIsNyBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwog
CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2VJRDsKICAgICBPcHRpb25hbDxX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBwYXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vz
cy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5pbmZvKCksIHdlYkZyYW1lLT5wYWdlKCktPnBh
Z2VJRCgpLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdh
dGlvbkFjdGlvbkRhdGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpS
ZXBseShuZXdQYWdlSUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICgh
d2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5pbmZvKCksIHdlYkZyYW1lLT5w
YWdlKCktPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3Qo
KSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9w
YWdlLnBhZ2VJRCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIW5ld1Bh
Z2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDcwOTgwZWU1YjViOGQ3
MDM3ZTQ1YjNmMmFmM2UyYmIxZmEwMzk0YTguLjQ4ZGUzNWZkMDVlM2I4OWI0MWVjOTI5YWEyYzJk
ZDM2MjZlOTkwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtOTA2LDkg
KzkwNiwxMSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdAogICAgIGlmIChyZXF1ZXN0ZXIuZnJh
bWVJRCgpICYmIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKHJlcXVlc3Rlci5mcmFt
ZUlEKCkpKQogICAgICAgICBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCA9IHJlcXVl
c3Rlci5mcmFtZUlEKCk7CiAKLSAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQ7Ci0gICAgaWYgKHJlcXVlc3Rlci5wYWdlSUQoKSAmJiBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJQYWdlKHJlcXVlc3Rlci5wYWdlSUQoKSkpCi0gICAgICAgIG9yaWdpbmF0aW5n
UGFnZUlEID0gcmVxdWVzdGVyLnBhZ2VJRCgpOworICAgIE9wdGlvbmFsPFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlEOworICAgIGlmIChyZXF1ZXN0ZXIucGFnZUlEKCkp
IHsKKyAgICAgICAgaWYgKGF1dG8qIHdlYlBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJQYWdlKHJlcXVlc3Rlci5wYWdlSUQoKSkpCisgICAgICAgICAgICBvcmlnaW5hdGluZ1BhZ2VJ
RCA9IHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKTsKKyAgICB9CiAKICAgICBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YTsKICAgICBuYXZpZ2F0aW9uQWN0
aW9uRGF0YS5uYXZpZ2F0aW9uVHlwZSA9IGFjdGlvbi0+bmF2aWdhdGlvblR5cGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlJlbW90ZU9i
amVjdFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmNwcAppbmRleCA5MGZkZjBlNmU5MDkxNTVjNDE1NDJm
NzE5OWNhZTdiNWIwNmUxNTRiLi44N2ZiYjNlMWVkNDIyY2E3OGI3Y2FjYmY4OGNkMjEwNDk3YTAw
NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9X
ZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3BwCkBAIC0zMiwxMCArMzIs
MTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeTo6V2Vi
UmVtb3RlT2JqZWN0UmVnaXN0cnkoX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZU9iamVj
dFJlZ2lzdHJ5LCBXZWJQYWdlJiBwYWdlKQotICAgIDogUmVtb3RlT2JqZWN0UmVnaXN0cnkocmVt
b3RlT2JqZWN0UmVnaXN0cnkpCisgICAgOiBSZW1vdGVPYmplY3RSZWdpc3RyeShyZW1vdGVPYmpl
Y3RSZWdpc3RyeSwgcGFnZS53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCkpCiAgICAgLCBtX3BhZ2Uo
cGFnZSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS5wYWdlSUQoKSwgKnRoaXMpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSwgKnRoaXMpOwogICAg
IHBhZ2Uuc2V0UmVtb3RlT2JqZWN0UmVnaXN0cnkodGhpcyk7CiB9CiAKQEAgLTQ3LDcgKzQ3LDcg
QEAgV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk6On5XZWJSZW1vdGVPYmplY3RSZWdpc3RyeSgpCiB2
b2lkIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjpjbG9zZSgpCiB7CiAgICAgaWYgKG1fcGFnZS5y
ZW1vdGVPYmplY3RSZWdpc3RyeSgpID09IHRoaXMpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdp
c3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOworICAgICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJl
bW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS53ZWJQYWdl
UHJveHlJZGVudGlmaWVyKCkpOwogICAgICAgICBtX3BhZ2Uuc2V0UmVtb3RlT2JqZWN0UmVnaXN0
cnkobnVsbHB0cik7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCmluZGV4
IGJiMTMwNmUyOTlmM2Y3NzhkOWU2NTI1ZTM5NzAwMmExODE5YTJhY2MuLjlmM2NiYmVlODM3YzRl
NTg4ZDNkODI0MjUwZWI2YWU3MmZhNzUwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5j
cHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6YWRk
VmlzaXRlZExpbmsoUGFnZSYgcGFnZSwgU2hhcmVkU3RyaW5nSGFzaCBsaW4KICAgICBpZiAoIXdl
YlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlZpc2l0ZWRMaW5rU3RvcmU6
OkFkZFZpc2l0ZWRMaW5rSGFzaEZyb21QYWdlKHdlYlBhZ2UtPnBhZ2VJRCgpLCBsaW5rSGFzaCks
IG1faWRlbnRpZmllcik7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VmlzaXRlZExpbmtTdG9yZTo6QWRkVmlzaXRl
ZExpbmtIYXNoRnJvbVBhZ2Uod2ViUGFnZS0+d2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBsaW5r
SGFzaCksIG1faWRlbnRpZmllcik7CiB9CiAKIHZvaWQgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xs
ZXI6OnNldFZpc2l0ZWRMaW5rVGFibGUoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRs
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
clVJLmNwcAppbmRleCA1NDdhNmNiMjU4ZTFiYTcxZjk4OGE0NGYzZjFlZjgwNmNiMjg1YWM4Li42
YjY2OWE3YjAxMjcxMDQ5NWIyODljODUxY2QzNDJkODlmZWQ1M2ZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC02MCw3
ICs2MCw3IEBAIFdlYkluc3BlY3RvclVJOjpXZWJJbnNwZWN0b3JVSShXZWJQYWdlJiBwYWdlKQog
I2VuZGlmCiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yVUk6OmVzdGFibGlzaENvbm5lY3Rpb24oUGFn
ZUlkZW50aWZpZXIgaW5zcGVjdGVkUGFnZUlkZW50aWZpZXIsIGJvb2wgdW5kZXJUZXN0LCB1bnNp
Z25lZCBpbnNwZWN0aW9uTGV2ZWwpCit2b2lkIFdlYkluc3BlY3RvclVJOjplc3RhYmxpc2hDb25u
ZWN0aW9uKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgaW5zcGVjdGVkUGFnZUlkZW50aWZpZXIsIGJv
b2wgdW5kZXJUZXN0LCB1bnNpZ25lZCBpbnNwZWN0aW9uTGV2ZWwpCiB7CiAgICAgbV9pbnNwZWN0
ZWRQYWdlSWRlbnRpZmllciA9IGluc3BlY3RlZFBhZ2VJZGVudGlmaWVyOwogICAgIG1fZnJvbnRl
bmRBUElEaXNwYXRjaGVyLnJlc2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaAppbmRleCBhMWZiNGQ4ZjAwODA4ZWFlOWQ1Njc1NWQw
NzJhOGY2N2NmZmNjMjVmLi4zODA4MGRjMjM5YjFiNDJhZDliZTRhMmM3YWU0YzU3ZDMzMmQ5MDk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
clVJLmgKQEAgLTI3LDkgKzI3LDkgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UsIElQQzo6U3RyaW5nUmVmZXJlbmNlKSBvdmVycmlkZSB7IGNsb3NlV2lu
ZG93KCk7IH0KIAogICAgIC8vIENhbGxlZCBieSBXZWJJbnNwZWN0b3JVSSBtZXNzYWdlcwotICAg
IHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpbnNwZWN0
ZWRQYWdlSWRlbnRpZmllciwgYm9vbCB1bmRlclRlc3QsIHVuc2lnbmVkIGluc3BlY3Rpb25MZXZl
bCk7CisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIg
aW5zcGVjdGVkUGFnZUlkZW50aWZpZXIsIGJvb2wgdW5kZXJUZXN0LCB1bnNpZ25lZCBpbnNwZWN0
aW9uTGV2ZWwpOwogICAgIHZvaWQgdXBkYXRlQ29ubmVjdGlvbigpOwogCiAgICAgdm9pZCBzaG93
Q29uc29sZSgpOwpAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgLy8gY29yZVBhZ2Uo
KSwgc2luY2Ugd2UgbWF5IG5lZWQgaXQgYWZ0ZXIgdGhlIGZyb250ZW5kJ3MgcGFnZSBoYXMgc3Rh
cnRlZCBkZXN0cnVjdGlvbi4KICAgICBXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKiBtX2Zy
b250ZW5kQ29udHJvbGxlciB7IG51bGxwdHIgfTsKIAotICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIG1faW5zcGVjdGVkUGFnZUlkZW50aWZpZXI7CisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyOwogICAgIGJvb2wgbV91bmRlclRlc3QgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9kb2NraW5nVW5hdmFpbGFibGUgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pc1Zpc2libGUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgppbmRleCAzNzVhMzhl
Y2YxYWJmYWU5YzhjZTc0MWY1OTBkODU3ZjA0ODQ2MmYwLi5hNjNhMzk5NmY4YzQxYjM2YjNkYmU2
MDc1NmZmOTk4NDk2Y2RkMjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEs
NyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSSB7Ci0gICAg
RXN0YWJsaXNoQ29ubmVjdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBpbnNwZWN0ZWRQYWdl
SWRlbnRpZmllciwgYm9vbCB1bmRlclRlc3QsIHVuc2lnbmVkIGluc3BlY3Rpb25MZXZlbCkKKyAg
ICBFc3RhYmxpc2hDb25uZWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBpbnNw
ZWN0ZWRQYWdlSWRlbnRpZmllciwgYm9vbCB1bmRlclRlc3QsIHVuc2lnbmVkIGluc3BlY3Rpb25M
ZXZlbCkKICAgICBVcGRhdGVDb25uZWN0aW9uKCkKIAogICAgIEF0dGFjaGVkQm90dG9tKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZmM0YmI1
MDM2YWJhODE3Y2NiMGNiMmZkMzM1NWU5NjljMzU2MGZmMS4uYTQ4ZDdmZjc4NjZiYWQ5ZGI5NmFj
YzFkMmE0ODUxNDViMTUxNjFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTQyNiw2ICs0MjYsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICAsIG1faG9zdEZpbGVEZXNjcmlwdG9yKFdURk1v
dmUocGFyYW1ldGVycy5ob3N0RmlsZURlc2NyaXB0b3IpKQogI2VuZGlmCisgICAgLCBtX3dlYlBh
Z2VQcm94eUlkZW50aWZpZXIocGFyYW1ldGVycy53ZWJQYWdlUHJveHlJZGVudGlmaWVyKQogI2lm
IEVOQUJMRShWSUVXUE9SVF9SRVNJWklORykKICAgICAsIG1fc2hyaW5rVG9GaXRDb250ZW50VGlt
ZXIoKnRoaXMsICZXZWJQYWdlOjpzaHJpbmtUb0ZpdENvbnRlbnRUaW1lckZpcmVkLCAwX3MpCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3
ODEzNzBkYTRhMzU0N2E1NGRkZDBiMDRiZWJhYWYxYWYyNTE0MThjLi43YjYwN2RjM2ExYjA1ZGRh
MGYxNTA0MTlmODljNjM4YTg1OGY5NWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0yOTIsNyArMjkyLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KICAgICBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsg
fQotICAgIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHNlc3Npb25TdG9yYWdlTmFtZXNwYWNl
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPFN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyVHlwZT4obV9wYWdlSUQudG9VSW50NjQoKSk7IH0KKyAgICBTdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllciBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtYWtlT2JqZWN0SWRlbnRpZmllcjxTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllclR5cGU+KG1fd2ViUGFnZVByb3h5SWRlbnRpZmllci50b1VJbnQ2NCgpKTsgfQogICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS0+c2Vzc2lv
bklEKCk7IH0KICAgICBib29sIHVzZXNFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4g
bV9wYWdlLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpOyB9CiAKQEAgLTEyMDMsNiArMTIwMyw4IEBA
IHB1YmxpYzoKICAgICBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeSogcmVtb3RlT2JqZWN0UmVnaXN0
cnkoKTsKICNlbmRpZgogCisgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQYWdlUHJveHlJZGVudGlmaWVyOyB9CisK
ICAgICB2b2lkIHVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplSWZOZWVkZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgc2NoZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsK
ICAgICBib29sIGlzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CkBAIC0xOTU3LDYgKzE5NTksNyBAQCBw
cml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdlYWtQdHI8V2ViUmVtb3RlT2JqZWN0
UmVnaXN0cnk+IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKKyAgICBXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SWRlbnRpZmllcjsKICAgICBXZWJDb3JlOjpJbnRT
aXplIG1fbGFzdFNlbnRJbnRyaW5zaWNDb250ZW50U2l6ZTsKICNpZiBFTkFCTEUoVklFV1BPUlRf
UkVTSVpJTkcpCiAgICAgV2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lciBtX3Nocmlua1Rv
Rml0Q29udGVudFRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDc3MjY3MmM0OWIwYmNiZTQ4NWEwYTljMWM4Yzc2NTMzMWRhNDg5ODIuLmUyNzlkNDRmNzZh
ODJkNWU5ZjUwOGZjZjBmZTRkOGFiNTBkYTlhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTc0Niw3ICs3NDYsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBk
ZQogICAgIH0KICNlbmRpZgogCi0gICAgTE9HX0VSUk9SKCJVbmhhbmRsZWQgd2ViIHByb2Nlc3Mg
bWVzc2FnZSAnJXM6JXMnIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmco
KS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSk7CisgICAg
TE9HX0VSUk9SKCJVbmhhbmRsZWQgd2ViIHByb2Nlc3MgbWVzc2FnZSAnJXM6JXMnIChkZXN0aW5h
dGlvbjogJWxsdSkiLCBkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLmRh
dGEoKSwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLmRl
c3RpbmF0aW9uSUQoKSk7CiB9CiAKIFdlYkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgY29uc3QKQEAgLTE3MTEsNyArMTcxMSw3IEBAIFJlZlB0cjxB
UEk6Ok9iamVjdD4gV2ViUHJvY2Vzczo6dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyhBUEk6Ok9i
amVjdCogb2JqZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBtX3dlYlByb2Nlc3Mud2ViUGFn
ZUdyb3VwKHN0YXRpY19jYXN0PGNvbnN0IEFQSTo6UGFnZUdyb3VwSGFuZGxlJj4ob2JqZWN0KS53
ZWJQYWdlR3JvdXBEYXRhKCkpOwogCiAgICAgICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBl
OjpQYWdlSGFuZGxlOgotICAgICAgICAgICAgICAgIHJldHVybiBtX3dlYlByb2Nlc3Mud2ViUGFn
ZShzdGF0aWNfY2FzdDxjb25zdCBBUEk6OlBhZ2VIYW5kbGUmPihvYmplY3QpLnBhZ2VJRCgpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbV93ZWJQcm9jZXNzLndlYlBhZ2Uoc3RhdGljX2Nhc3Q8
Y29uc3QgQVBJOjpQYWdlSGFuZGxlJj4ob2JqZWN0KS53ZWJQYWdlSUQoKSk7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6Ok9iakNPYmpl
Y3RHcmFwaDoKQEAgLTE3NTQsNyArMTc1NCw3IEBAIFJlZlB0cjxBUEk6Ok9iamVjdD4gV2ViUHJv
Y2Vzczo6dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyhBUEk6Ok9iamVjdCogb2JqZWN0KQogICAg
ICAgICAgICAgICAgIHJldHVybiBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGlu
ZyhzdGF0aWNfY2FzdDxjb25zdCBXZWJGcmFtZSY+KG9iamVjdCkuZnJhbWVJRCgpKTsKIAogICAg
ICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZToKLSAgICAgICAgICAg
ICAgICByZXR1cm4gQVBJOjpQYWdlSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhzdGF0aWNf
Y2FzdDxjb25zdCBXZWJQYWdlJj4ob2JqZWN0KS5wYWdlSUQoKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIEFQSTo6UGFnZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoc3RhdGljX2Nhc3Q8
Y29uc3QgV2ViUGFnZSY+KG9iamVjdCkud2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBzdGF0aWNf
Y2FzdDxjb25zdCBXZWJQYWdlJj4ob2JqZWN0KS5wYWdlSUQoKSk7CiAKICAgICAgICAgICAgIGNh
c2UgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2VHcm91cDogewogICAgICAgICAgICAgICAg
IFdlYlBhZ2VHcm91cERhdGEgcGFnZUdyb3VwRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApp
bmRleCA1YmQ4MDI3MjU1OTNiZTYxODU2ZjY0ZjdmNGI4MTYzOTEzNzlmYmQ0Li5kYWNkMGY3ZmRk
OWE3NjE2MzI0NTU1ZTMyNGZiMmIxZGZmYzJkNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3Bw
CkBAIC00MiwyOCArNDIsMzAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKLVJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFjZUlt
cGw6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmllciwg
dW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8U3Rv
cmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVTZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZShJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6
OlNlc3Npb24sIGlkZW50aWZpZXIsIG51bGxwdHIsIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklEKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5
cGU6OlNlc3Npb24sIGlkZW50aWZpZXIsIHBhZ2VJRCwgbnVsbHB0ciwgcXVvdGFJbkJ5dGVzLCBz
ZXNzaW9uSUQpKTsKIH0KIAogUmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNw
YWNlSW1wbDo6Y3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKElkZW50aWZpZXIgaWRlbnRpZmll
ciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGU6
OkxvY2FsLCBpZGVudGlmaWVyLCBudWxscHRyLCBxdW90YUluQnl0ZXMsIHNlc3Npb25JRCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBl
OjpMb2NhbCwgaWRlbnRpZmllciwgV1RGOjpudWxsb3B0LCBudWxscHRyLCBxdW90YUluQnl0ZXMs
IHNlc3Npb25JRCkpOwogfQogCiBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1l
c3BhY2VJbXBsOjpjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxPcmlnaW4sIHVp
bnQ2NF90IHF1b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlOjpUcmFu
c2llbnRMb2NhbCwgaWRlbnRpZmllciwgJnRvcExldmVsT3JpZ2luLCBxdW90YUluQnl0ZXMsIHNl
c3Npb25JRCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBs
KFN0b3JhZ2VUeXBlOjpUcmFuc2llbnRMb2NhbCwgaWRlbnRpZmllciwgV1RGOjpudWxsb3B0LCAm
dG9wTGV2ZWxPcmlnaW4sIHF1b3RhSW5CeXRlcywgc2Vzc2lvbklEKSk7CiB9CiAKLVN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjpTdG9yYWdlTmFtZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSBz
dG9yYWdlVHlwZSwgSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luKiB0b3BMZXZlbE9yaWdpbiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCitTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFj
ZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIElkZW50aWZpZXIgc3RvcmFn
ZU5hbWVzcGFjZUlELCBjb25zdCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4mIHBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxPcmlnaW4sIHVuc2lnbmVkIHF1
b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zdG9yYWdlVHlw
ZShzdG9yYWdlVHlwZSkKICAgICAsIG1fc3RvcmFnZU5hbWVzcGFjZUlEKHN0b3JhZ2VOYW1lc3Bh
Y2VJRCkKKyAgICAsIG1fc2Vzc2lvblBhZ2VJRChwYWdlSWRlbnRpZmllcikKICAgICAsIG1fdG9w
TGV2ZWxPcmlnaW4odG9wTGV2ZWxPcmlnaW4pCiAgICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUlu
Qnl0ZXMpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiB7CisgICAgQVNTRVJUKHN0b3Jh
Z2VUeXBlID09IFN0b3JhZ2VUeXBlOjpTZXNzaW9uIHx8ICFtX3Nlc3Npb25QYWdlSUQpOwogfQog
CiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6flN0b3JhZ2VOYW1lc3BhY2VJbXBsKCkKQEAgLTk4LDcg
KzEwMCw3IEBAIFJlZjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29w
eShQYWdlKiBuZXdQYWdlKQogICAgIGlmIChhdXRvIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkpCiAgICAgICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyU2V0OjpDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNl
KG5ld1BhZ2UtPnNlc3Npb25JRCgpLCBtX3N0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViUGFnZTo6ZnJv
bUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSks
IDApOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwobV9z
dG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgbV90b3BMZXZlbE9yaWdpbi5nZXQoKSwgbV9xdW90YUlu
Qnl0ZXMsIG5ld1BhZ2UtPnNlc3Npb25JRCgpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
U3RvcmFnZU5hbWVzcGFjZUltcGwobV9zdG9yYWdlVHlwZSwgV2ViUGFnZTo6ZnJvbUNvcmVQYWdl
KG5ld1BhZ2UpLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgV2ViUGFnZTo6
ZnJvbUNvcmVQYWdlKG5ld1BhZ2UpLT5wYWdlSUQoKSwgbV90b3BMZXZlbE9yaWdpbi5nZXQoKSwg
bV9xdW90YUluQnl0ZXMsIG5ld1BhZ2UtPnNlc3Npb25JRCgpKSk7CiB9CiAKIHZvaWQgU3RvcmFn
ZU5hbWVzcGFjZUltcGw6OnNldFNlc3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQpAQCAtMTExLDcgKzExMyw3IEBAIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNl
dFNlc3Npb25JREZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogUGFnZUlkZW50
aWZpZXIgU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlUGFnZUlEKCkgY29uc3QK
IHsKICAgICBBU1NFUlQobV9zdG9yYWdlVHlwZSA9PSBTdG9yYWdlVHlwZTo6U2Vzc2lvbik7Ci0g
ICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPFBhZ2VJZGVudGlmaWVyVHlwZT4obV9zdG9y
YWdlTmFtZXNwYWNlSUQudG9VSW50NjQoKSk7CisgICAgcmV0dXJuICptX3Nlc3Npb25QYWdlSUQ7
CiB9CiAKIHVpbnQ2NF90IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpwYWdlR3JvdXBJRCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TmFtZXNwYWNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZUltcGwuaAppbmRleCAzYTBhYjE5ZDRjMmIxYTk4YjM5MDI2ZTNjYTI0ZDNm
ODkwMDQ1NTZjLi4yYTFiYjQzMDQzYTQ1OGRlMGEyZmFjM2Q3NGQ4YmQ2MDNkNzFjOGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VOYW1lc3BhY2VJbXBsLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU3RvcmFnZU5hbWVzcGFj
ZUltcGwgOiBwdWJsaWMgV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZSB7CiBwdWJsaWM6CiAgICAg
dXNpbmcgSWRlbnRpZmllciA9IFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyOwogCi0gICAgc3Rh
dGljIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2UoSWRlbnRpZmllciwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzLCBQQUw6OlNlc3Npb25JRCk7Cisg
ICAgc3RhdGljIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gY3JlYXRlU2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UoSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVuc2lnbmVkIHF1
b3RhSW5CeXRlcywgUEFMOjpTZXNzaW9uSUQpOwogICAgIHN0YXRpYyBSZWY8U3RvcmFnZU5hbWVz
cGFjZUltcGw+IGNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZShJZGVudGlmaWVyLCB1bnNpZ25l
ZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKICAgICBzdGF0aWMgUmVmPFN0b3JhZ2VO
YW1lc3BhY2VJbXBsPiBjcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCB1aW50NjRfdCBx
dW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKIApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRTZXNzaW9uSURGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEKSBvdmVycmlk
ZTsKIAogcHJpdmF0ZToKLSAgICBTdG9yYWdlTmFtZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdl
VHlwZSwgSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHRvcExldmVsT3JpZ2lu
LCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICBTdG9yYWdlTmFt
ZXNwYWNlSW1wbChXZWJDb3JlOjpTdG9yYWdlVHlwZSwgSWRlbnRpZmllciwgY29uc3QgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIHRv
cExldmVsT3JpZ2luLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMsIFBBTDo6U2Vzc2lvbklEKTsKIAog
ICAgIFJlZjxXZWJDb3JlOjpTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJikgb3ZlcnJpZGU7CiAKQEAgLTcyLDYgKzcyLDcgQEAgcHJpdmF0
ZToKIAogICAgIGNvbnN0IFdlYkNvcmU6OlN0b3JhZ2VUeXBlIG1fc3RvcmFnZVR5cGU7CiAgICAg
Y29uc3QgSWRlbnRpZmllciBtX3N0b3JhZ2VOYW1lc3BhY2VJRDsKKyAgICBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gbV9zZXNzaW9uUGFnZUlEOwogCiAgICAgLy8gT25seSB1c2Vk
IGZvciB0cmFuc2llbnQgbG9jYWwgc3RvcmFnZSBuYW1lc3BhY2VzLgogICAgIGNvbnN0IFJlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbE9yaWdpbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3JhZ2VOYW1lc3BhY2VQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCmluZGV4IDMwMGNjZjA3ODNhYjE5OTMxYmQzZDE0N2E5
OWZjMjVhNWRkZTFhNWQuLjQ4MTgxYjQ5MzBkNjJkMWEwNjg3NmQzNjQ3NmM5ZmE5OWY5ZTNhMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1dlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcApAQCAtNjYsNyArNjYsOCBA
QCBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6On5XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIoKQogCiBSZWY8V2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZT4gV2ViU3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdlJiBwYWdlLCB1bnNp
Z25lZCBxdW90YSkKIHsKLSAgICByZXR1cm4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmNyZWF0ZVNl
c3Npb25TdG9yYWdlTmFtZXNwYWNlKFdlYlBhZ2U6OmZyb21Db3JlUGFnZSgmcGFnZSktPnNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcigpLCBxdW90YSwgcGFnZS5zZXNzaW9uSUQoKSk7
CisgICAgYXV0byogd2ViUGFnZSA9IFdlYlBhZ2U6OmZyb21Db3JlUGFnZSgmcGFnZSk7CisgICAg
cmV0dXJuIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZSh3ZWJQYWdlLT5zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIoKSwgd2ViUGFnZS0+
cGFnZUlEKCksIHF1b3RhLCBwYWdlLnNlc3Npb25JRCgpKTsKIH0KIAogUmVmPFdlYkNvcmU6OlN0
b3JhZ2VOYW1lc3BhY2U+IFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6Y3JlYXRlTG9jYWxT
dG9yYWdlTmFtZXNwYWNlKHVuc2lnbmVkIHF1b3RhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQppbmRleCA5YzY0Y2FmMDVlODMxMzQwMWVmNGE3ZmY4MjQ0YjEwYjg4ZjBhNTY2Li4zZDgwYmUy
OTk5NzUwNTkxOTRlYTEzNTEwNmFiZDJhYTU1OWQ0NjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTY3Niw3ICs2NzYsNyBA
QCBSZWZQdHI8T2JqQ09iamVjdEdyYXBoPiBXZWJQcm9jZXNzOjp0cmFuc2Zvcm1IYW5kbGVzVG9P
YmplY3RzKE9iakNPYmplY3RHcmFwaCYgbwogICAgICAgICBSZXRhaW5QdHI8aWQ+IHRyYW5zZm9y
bU9iamVjdChpZCBvYmplY3QpIGNvbnN0IG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmIChhdXRvKiBoYW5kbGUgPSBkeW5hbWljX29iamNfY2FzdDxXS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZT4ob2JqZWN0KSkgewotICAgICAgICAgICAgICAgIGlmIChhdXRvKiB3ZWJQYWdlID0gbV93
ZWJQcm9jZXNzLndlYlBhZ2UoaGFuZGxlLl9wYWdlSUQpKQorICAgICAgICAgICAgICAgIGlmIChh
dXRvKiB3ZWJQYWdlID0gbV93ZWJQcm9jZXNzLndlYlBhZ2UoaGFuZGxlLl93ZWJQYWdlSUQpKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcigqd2ViUGFnZSk7CiAKICAgICAgICAg
ICAgICAgICByZXR1cm4gW05TTnVsbCBudWxsXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>