<?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>201921</bug_id>
          
          <creation_ts>2019-09-18 10:37:34 -0700</creation_ts>
          <short_desc>NetworkLoadParameters shouldn&apos;t store sessionID</short_desc>
          <delta_ts>2019-09-18 14:32:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1571954</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-09-18 10:37:34 -0700</bug_when>
    <thetext>Now that there&apos;s a single session id per WebProcess, we don&apos;t need to store the session id in NetworkLoadParameters anymore. Clients can just directly ask NetworkConnectionToWebProcess for the WebProcess&apos;s session ID instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571990</commentid>
    <comment_count>1</comment_count>
      <attachid>379055</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-09-18 11:50:18 -0700</bug_when>
    <thetext>Created attachment 379055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571997</commentid>
    <comment_count>2</comment_count>
      <attachid>379055</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 11:57:49 -0700</bug_when>
    <thetext>Comment on attachment 379055
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:-120
&gt; -    if (!decoder.decode(result.identifier))

Didn&apos;t you drop this one by mistake?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572004</commentid>
    <comment_count>3</comment_count>
      <attachid>379057</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-09-18 12:06:28 -0700</bug_when>
    <thetext>Created attachment 379057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572006</commentid>
    <comment_count>4</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-09-18 12:07:04 -0700</bug_when>
    <thetext>Yep, I deleted the extra line in the decoding function which broke website loading completely. Should be fixed in the newest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572015</commentid>
    <comment_count>5</comment_count>
      <attachid>379057</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 12:14:39 -0700</bug_when>
    <thetext>Comment on attachment 379057
Patch

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

r=me with nits.

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:304
&gt; +    auto* networkSession = m_connection-&gt;networkProcess().networkSession(sessionID());

I believe this could be:
auto* networkSession = m_connection-&gt;networkSession();

&gt; Source/WebKit/NetworkProcess/PreconnectTask.h:43
&gt; +    explicit PreconnectTask(NetworkProcess&amp;, PAL::SessionID, NetworkLoadParameters&amp;&amp;, CompletionHandler&lt;void(const WebCore::ResourceError&amp;)&gt;&amp;&amp; completionHandler = { });

nit: we should probably drop the explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572026</commentid>
    <comment_count>6</comment_count>
      <attachid>379061</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2019-09-18 12:33:32 -0700</bug_when>
    <thetext>Created attachment 379061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572027</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-18 12:34:43 -0700</bug_when>
    <thetext>Let&apos;s wait for green bubbles before committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572086</commentid>
    <comment_count>8</comment_count>
      <attachid>379061</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-18 14:31:34 -0700</bug_when>
    <thetext>Comment on attachment 379061
Patch

Clearing flags on attachment: 379061

Committed r250053: &lt;https://trac.webkit.org/changeset/250053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572087</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-18 14:31:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572088</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-18 14:32:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/55493060&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379055</attachid>
            <date>2019-09-18 11:50:18 -0700</date>
            <delta_ts>2019-09-18 12:06:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201921-20190918115018.patch</filename>
            <type>text/plain</type>
            <size>28568</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5OTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMyZWRiMjNiYjYxZjQ5N2Y1
MWNjYTE1MmJjZDUzZTFjNjZhNTVkNDEuLjFhNThiMzllOGZjM2IyNDY2OTk1ZWVjNjJmNDkyYTAz
OWRhZTg4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTktMDktMTggIEJlbmphbWlu
IE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMg
c2hvdWxkbid0IHN0b3JlIHNlc3Npb25JRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm93IHRoYXQgdGhlcmUncyBhIHNpbmdsZSBzZXNzaW9uIGlkIHBl
ciBXZWJQcm9jZXNzLCB3ZSBkb24ndCBuZWVkIHRvCisgICAgICAgIHN0b3JlIHRoZSBzZXNzaW9u
IGlkIGluIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBhbnltb3JlLiBDbGllbnRzIGNhbiBqdXN0Cisg
ICAgICAgIGRpcmVjdGx5IGFzayBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBmb3IgdGhl
IFdlYlByb2Nlc3MncyBzZXNzaW9uCisgICAgICAgIElEIGluc3RlYWQuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OnN0YXJ0UHJlZmxpZ2h0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpw
cmVjb25uZWN0VG8pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpz
dGFydE5ldHdvcmtMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
Ojpjb252ZXJ0VG9Eb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGluZ0xvYWQ6OlBpbmdMb2FkKToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OmxvYWRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6UHJlY29ubmVjdFRhc2spOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RU
YXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2
ZUxvYWQ6OlNwZWN1bGF0aXZlTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
YWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKToKKwogMjAxOS0wOS0xNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlByb2Nlc3MgY2xhc3MgbWV0aG9k
cyBzaG91bGQgbm90IG5lZWQgdG8gdGFrZSBhIHNlc3Npb25JRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAK
aW5kZXggOTA5ZWE1MzkxYTRlOGM5NmUzNDUxMjhmYjc0Yzk4N2Y4ZTlkZjRkZi4uZjNlMmYwZTAy
Nzk1NWY3ZWRjMTNjMmE2NjE0ZTUwYTM2MTNhY2JjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCkBA
IC0xNjMsNyArMTYzLDcgQEAgdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpmaXJlQ29u
dmVyc2lvblJlcXVlc3QoY29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJgogCiAgICAgc3RhdGljIHVp
bnQ2NF90IGlkZW50aWZpZXIgPSAwOwogICAgIAotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzIGxvYWRQYXJhbWV0ZXJzIHsgUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSB9OworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSArK2lkZW50aWZpZXI7CiAgICAgbG9hZFBh
cmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3Jp
Z2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShjb252ZXJzaW9uUmVmZXJyZXJVUkwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkTWFuYWdlci5jcHAKaW5kZXggNTA3ZjRmNmZmYzNkNDA2OWMxMzc4MjY1Mjc1YzY2MDY1NGI0
YzgzOS4uMDQyN2YxOWZkNjM3ZDBlYmQ1MzU0YmNiZTg2Mjk3NWM5YTZjNzdjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFy
dERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hCiAg
ICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTmV0d29ya0xv
YWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgeyBzZXNzaW9uSUQgfTsKKyAgICBOZXR3b3JrTG9hZFBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0Owog
ICAgIHBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9IENsaWVudENyZWRlbnRpYWxQ
b2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzOwogICAgIGlmIChyZXF1ZXN0LnVybCgp
LnByb3RvY29sSXNCbG9iKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggYjdjMWFmZWI3
NDJmMmFiMmJjMTcxZTgxNWY1ZmZmMDIzZjkwYjU1NS4uNTdiYmRhYjVkYTc4ZTExMzcyMjlkODlk
NWQxY2U3MzQxZGFjNzhlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNjMsNyArNjMs
NyBAQCB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6c3RhcnRQcmVmbGlnaHQoKQog
ewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0UHJlZmxpZ2h0Iik7CiAKLSAgICBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMgeyBtX3BhcmFtZXRlcnMuc2Vzc2lv
bklEIH07CisgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwogICAgIGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVz
dChtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2lu
LCBtX3BhcmFtZXRlcnMucmVmZXJyZXIpOwogICAgIGlmICghbV9wYXJhbWV0ZXJzLnVzZXJBZ2Vu
dC5pc051bGwoKSkKICAgICAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OlVzZXJBZ2VudCwgbV9wYXJhbWV0ZXJzLnVzZXJBZ2VudCk7
CkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpzdGFy
dFByZWZsaWdodCgpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRy
aWNzKQogICAgICAgICBtX2xvYWRJbmZvcm1hdGlvbiA9IE5ldHdvcmtUcmFuc2FjdGlvbkluZm9y
bWF0aW9uIHsgTmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb246OlR5cGU6OlByZWZsaWdodCwg
bG9hZFBhcmFtZXRlcnMucmVxdWVzdCwgeyB9LCB7IH0gfTsKIAotICAgIGlmIChhdXRvKiBuZXR3
b3JrU2Vzc2lvbiA9IG1fbmV0d29ya1Byb2Nlc3MtPm5ldHdvcmtTZXNzaW9uKGxvYWRQYXJhbWV0
ZXJzLnNlc3Npb25JRCkpIHsKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBtX25ldHdv
cmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihtX3BhcmFtZXRlcnMuc2Vzc2lvbklEKSkgewogICAg
ICAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSgqbmV0d29ya1Nlc3Npb24sICp0
aGlzLCBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSk7CiAgICAgICAgIG1fdGFzay0+cmVzdW1lKCk7
CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDE4NjI1YjYzYWI2
YjJkNDdjOTcyNWZmZGY2N2Y2Y2M1YTE3ZWQzNWEuLmZmZTljNGFjMThlYTYwYjhkMTI3MWFiYWM0
NDE4NWEzMWFkM2Q4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00NzcsNyAr
NDc3LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlY29ubmVjdFRv
KHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWUKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMu
cmVxdWVzdC5odHRwQm9keSgpKTsKICAgICAKICNpZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1Qp
Ci0gICAgbmV3IFByZWNvbm5lY3RUYXNrKG5ldHdvcmtQcm9jZXNzKCksIFdURk1vdmUocGFyYW1l
dGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIg
PSBwcmVjb25uZWN0aW9uSWRlbnRpZmllcl0gKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSB7
CisgICAgbmV3IFByZWNvbm5lY3RUYXNrKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCgpLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBpZGVudGlmaWVyID0gcHJlY29ubmVjdGlvbklkZW50aWZpZXJdIChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikgewogICAgICAgICBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKGlkZW50aWZpZXIs
IGVycm9yKTsKICAgICB9KTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCA5MmI4MTI3MzI1MTY2NjI0M2Q4
NTFlYjhhNWFiYzMyODExMzg1ZjI5Li4wNTA0YjIzYmY5ZGQ3YzQ0ZTQ5NGU5NDVhMWEwYWU0ZjIx
MjIzMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTQyLDEyICs0Miw2IEBAIGVudW0gY2xhc3MgUHJlY29ubmVj
dE9ubHkgeyBObywgWWVzIH07CiAKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgTmV0d29ya0xvYWRQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKLSAgICAgICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQotICAgIHsKLSAgICB9Ci0K
LSAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciB3ZWJQYWdlUHJveHlJRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7
CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCmluZGV4
IDNlZmM3N2M4ZWIwYzk0MTExMjQ0NTIxMjM5MjVjN2Y5NWZlZGNmYTQuLjRmN2EwOGFlYjg0NGVj
YTYyOGU3NDZjMmQ2M2ExYjA3OWExNTJhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCkBAIC0yNSw3ICsyNSw2IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCkBAIC0z
NSw2ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIAogdHlwZWRl
ZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAppbmRleCBkNWZmZWEzMzZjMjY4MTVjMWZmMGI5ZWM1MTdmODdiOTJmMDA0M2FjLi42Mzg2
MTIzZjNmZjY4ZWYyZWE5OTUxZTA2ZmVjZWJlMGQ1ODhmMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcApAQCAtMzMsNyArMzMsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsKICAgICBlbmNvZGVy
IDw8IGlkZW50aWZpZXI7CiAgICAgZW5jb2RlciA8PCB3ZWJQYWdlUHJveHlJRDsKICAgICBlbmNv
ZGVyIDw8IHdlYlBhZ2VJRDsKQEAgLTEwOSwxNyArMTA4LDggQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAog
T3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM+IE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIE9wdGlv
bmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQ7Ci0gICAgZGVjb2RlciA+PiBzZXNzaW9uSUQ7
CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzdWx0OwogCi0gICAgaWYgKCFz
ZXNzaW9uSUQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyByZXN1bHQgeyAqc2Vzc2lvbklEIH07Ci0KLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5pZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLSAgICAgICAgCiAgICAgT3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gd2Vi
UGFnZVByb3h5SUQ7CiAgICAgZGVjb2RlciA+PiB3ZWJQYWdlUHJveHlJRDsKICAgICBpZiAoIXdl
YlBhZ2VQcm94eUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4IDBjNjY5YWU3OGY4MDFi
MGNlYzNjYWY2NTI5MzZiMTQ2NzVmZWVjODYuLjEyMDM0NzA0ZGE5MjdiNWEyZmMxYjVjZWZlOTli
YmY4MmJmZGY1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKQEAgLTQzLDExICs0Myw2IEBA
IHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgOiBwdWJsaWMgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHsK
IHB1YmxpYzoKLSAgICBleHBsaWNpdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgICAgIDogTmV0d29ya0xvYWRQYXJhbWV0ZXJzKHNl
c3Npb25JRCkKLSAgICB7Ci0gICAgfQotCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIE9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBjZGU5ZjIwNWE5NTU4
ZWQ4OWRkNzA3OGRlZjRkMzdkNzZkYzljMjg5Li4wNmEwZjg0ZjYyZDg3MDIzOTdjMjQ4NWZjOTIw
ODdmOWRiN2U2YmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpOZXR3b3JrUmVzb3VyY2VMb2FkZXIoTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmJiBwYXIKIAogICAgIGlmIChzeW5jaHJvbm91c1JlcGx5IHx8IHBhcmFtZXRlcnMu
c2hvdWxkUmVzdHJpY3RIVFRQUmVzcG9uc2VBY2Nlc3MgfHwgcGFyYW1ldGVycy5vcHRpb25zLmtl
ZXBBbGl2ZSkgewogICAgICAgICBOZXR3b3JrTG9hZENoZWNrZXI6OkxvYWRUeXBlIHJlcXVlc3RM
b2FkVHlwZSA9IGlzTWFpbkZyYW1lTG9hZCgpID8gTmV0d29ya0xvYWRDaGVja2VyOjpMb2FkVHlw
ZTo6TWFpbkZyYW1lIDogTmV0d29ya0xvYWRDaGVja2VyOjpMb2FkVHlwZTo6T3RoZXI7Ci0gICAg
ICAgIG1fbmV0d29ya0xvYWRDaGVja2VyID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZENoZWNrZXI+
KGNvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKSwgRmV0Y2hPcHRpb25zIHsgbV9wYXJhbWV0ZXJz
Lm9wdGlvbnMgfSwgbV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQ
cm94eUlELCBIVFRQSGVhZGVyTWFwIHsgbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRl
cnMgfSwgVVJMIHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNv
dXJjZU9yaWdpbi5jb3B5UmVmKCksIG1fcGFyYW1ldGVycy50b3BPcmlnaW4uY29weVJlZigpLCBt
X3BhcmFtZXRlcnMucHJlZmxpZ2h0UG9saWN5LCBvcmlnaW5hbFJlcXVlc3QoKS5odHRwUmVmZXJy
ZXIoKSwgbV9wYXJhbWV0ZXJzLmlzSFRUUFNVcGdyYWRlRW5hYmxlZCwgc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzKCksIHJlcXVlc3RMb2FkVHlwZSk7CisgICAgICAgIG1fbmV0
d29ya0xvYWRDaGVja2VyID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZENoZWNrZXI+KGNvbm5lY3Rp
b24ubmV0d29ya1Byb2Nlc3MoKSwgRmV0Y2hPcHRpb25zIHsgbV9wYXJhbWV0ZXJzLm9wdGlvbnMg
fSwgc2Vzc2lvbklEKCksIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgSFRUUEhlYWRlck1h
cCB7IG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzIH0sIFVSTCB7IG1fcGFyYW1l
dGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigp
LCBtX3BhcmFtZXRlcnMudG9wT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdo
dFBvbGljeSwgb3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIG1fcGFyYW1ldGVycy5p
c0hUVFBTVXBncmFkZUVuYWJsZWQsIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmlj
cygpLCByZXF1ZXN0TG9hZFR5cGUpOwogICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLmNzcFJlc3Bv
bnNlSGVhZGVycykKICAgICAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5zZXRDU1BSZXNw
b25zZUhlYWRlcnMoQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsgbV9wYXJh
bWV0ZXJzLmNzcFJlc3BvbnNlSGVhZGVycy52YWx1ZSgpIH0pOwogI2lmIEVOQUJMRShDT05URU5U
X0VYVEVOU0lPTlMpCkBAIC0zMDEsMTQgKzMwMSwxNCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExv
YQogICAgIGlmIChwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UgJiYgbV9uZXR3b3JrTG9hZENoZWNrZXIpCiAg
ICAgICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBtX25ldHdvcmtMb2Fk
Q2hlY2tlci0+c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3koKTsKIAotICAgIGF1dG8qIG5ldHdvcmtT
ZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHBh
cmFtZXRlcnMuc2Vzc2lvbklEKTsKLSAgICBpZiAoIW5ldHdvcmtTZXNzaW9uICYmIHBhcmFtZXRl
cnMuc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3
b3JrUHJvY2VzcygpLmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRl
cnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyhwYXJhbWV0ZXJzLnNlc3Npb25JRCkpOwotICAg
ICAgICBuZXR3b3JrU2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3
b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCk7CisgICAgYXV0byogbmV0d29ya1Nlc3Np
b24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKCkpOworICAgIGlmICghbmV0d29ya1Nlc3Npb24gJiYgc2Vzc2lvbklEKCkuaXNFcGhlbWVy
YWwoKSkgeworICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkuYWRkV2Vic2l0
ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3Npb25QYXJh
bWV0ZXJzKHNlc3Npb25JRCgpKSk7CisgICAgICAgIG5ldHdvcmtTZXNzaW9uID0gbV9jb25uZWN0
aW9uLT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKTsKICAgICB9
CiAgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVt
cHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0
ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgcGFyYW1ldGVycy5zZXNzaW9uSUQudG9VSW50NjQo
KSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xv
YWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0
IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25J
RC50b1VJbnQ2NCgpKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3JlYXRl
IGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMg
bm90IGV4aXN0LiIsIHNlc3Npb25JRCgpLnRvVUludDY0KCkpOworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRl
IGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllciwgc2Vzc2lvbklEKCkudG9VSW50NjQoKSk7CiAgICAgICAgIG1fY29ubmVj
dGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhcmFtZXRlcnMu
d2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxF
cnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludmFsaWRTZXNzaW9u
SURLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIGRpZEZhaWxMb2Fk
aW5nKGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAgICAgICByZXR1cm47CkBAIC0z
NDgsNyArMzQ4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25s
b2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3UKICAgICAKICAgICAvLyBUaGlz
IGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAg
ICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJv
Y2VzcygpLmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQobV9wYXJhbWV0ZXJzLnNlc3Np
b25JRCwgZG93bmxvYWRJRCwgcmVxdWVzdCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29y
a1Byb2Nlc3MoKS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKHNlc3Npb25JRCgpLCBk
b3dubG9hZElELCByZXF1ZXN0KTsKICAgICAgICAgYWJvcnQoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCmluZGV4IGU2MWI2OWQyNzJiODVkZTg4NzYxOGFkNDkxMTNjMmRlOTQ0MTk0
OTEuLmQ2NTA3MmI3MmJkNDEzMTQxYTA2YjI4N2M0NTI2OWJlNDJhZjA3NzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCisjaW5jbHVkZSAiTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKICNp
bmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgpAQCAtODMsNyArODQsNyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Uo
KSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlOyB9CiAKICAgICBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fY29u
bmVjdGlvbjsgfQotICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFyYW1ldGVycy5zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24tPnNlc3Npb25JRCgpOyB9CiAgICAgUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXI7IH0KICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cAppbmRleCBjM2VlODYzMjk5ZjViY2E4NjkyMjU2OTI1MTAzODk0YWM4Y2Q0ZTBjLi5iMTU1MGFl
ZGMwNzU5N2UxNGNjODFlOWFiYTgzZjY3NTdmOTk4YjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIE5l
dHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nl
c3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIC8vIFBpbmdMb2FkIG1hbmFnZXMgaXRzIG93biBsaWZldGltZSwg
ZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1cnBvc2UgaGFzIGJlZW4gZnVsZmlsbGVkLgotICAg
ICAgICBuZXcgUGluZ0xvYWQobV9uZXR3b3JrUHJvY2VzcywgV1RGTW92ZShsb2FkUGFyYW1ldGVy
cyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgbmV3IFBpbmdMb2FkKG1f
bmV0d29ya1Byb2Nlc3MsIG1fc2Vzc2lvbklELCBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IGYyNWY0M2E1NzA2MDM5MWFhNDliNzA0MmUz
YjEzMzU3YTgzOGZhMmUuLjAwMzc5YTM5YWQ3ZjIxZjI4YWJiZTJjNzkxODM4M2Y3MWNmMDk2NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCkBAIC0zNCwyNiAr
MzQsMjggQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkVycm9y
cy5oIgogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0Vf
TE9HX0lGKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IE5ldHdvcmssICIlcCAtIFBpbmdMb2FkOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKyNk
ZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobV9z
ZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIFBpbmdM
b2FkOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1QaW5nTG9hZDo6UGluZ0xvYWQoTmV0d29ya1By
b2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICA6IG1fcGFy
YW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorUGluZ0xvYWQ6OlBpbmdMb2FkKE5ldHdvcmtQ
cm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKKyAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICAsIG1fcGFy
YW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQogICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICAsIG1fdGltZW91dFRpbWVyKCp0aGlzLCAm
UGluZ0xvYWQ6OnRpbWVvdXRUaW1lckZpcmVkKQotICAgICwgbV9uZXR3b3JrTG9hZENoZWNrZXIo
bWFrZVVuaXF1ZVJlZjxOZXR3b3JrTG9hZENoZWNrZXI+KG5ldHdvcmtQcm9jZXNzLCBGZXRjaE9w
dGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0aW9uc30sIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1f
cGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgV1RGTW92ZShtX3BhcmFtZXRlcnMub3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycyksIFVSTCB7IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFy
YW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFtZXRlcnMudG9wT3JpZ2luLmNv
cHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwgbV9wYXJhbWV0ZXJzLnJlcXVl
c3QuaHR0cFJlZmVycmVyKCkpKQorICAgICwgbV9uZXR3b3JrTG9hZENoZWNrZXIobWFrZVVuaXF1
ZVJlZjxOZXR3b3JrTG9hZENoZWNrZXI+KG5ldHdvcmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMgeyBt
X3BhcmFtZXRlcnMub3B0aW9uc30sIG1fc2Vzc2lvbklELCBtX3BhcmFtZXRlcnMud2ViUGFnZVBy
b3h5SUQsIFdURk1vdmUobV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpLCBVUkwg
eyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2lu
LmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbi5jb3B5UmVmKCksIG1fcGFyYW1ldGVy
cy5wcmVmbGlnaHRQb2xpY3ksIG1fcGFyYW1ldGVycy5yZXF1ZXN0Lmh0dHBSZWZlcnJlcigpKSkK
IHsKICAgICBpbml0aWFsaXplKG5ldHdvcmtQcm9jZXNzKTsKIH0KIAogUGluZ0xvYWQ6OlBpbmdM
b2FkKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZUVycm9yJiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotICAgIDogbV9wYXJh
bWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgOiBtX3Nlc3Npb25JRChjb25uZWN0aW9u
LnNlc3Npb25JRCgpKQorICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCiAg
ICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQogICAg
ICwgbV90aW1lb3V0VGltZXIoKnRoaXMsICZQaW5nTG9hZDo6dGltZW91dFRpbWVyRmlyZWQpCi0g
ICAgLCBtX25ldHdvcmtMb2FkQ2hlY2tlcihtYWtlVW5pcXVlUmVmPE5ldHdvcmtMb2FkQ2hlY2tl
cj4obmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25zfSwg
bV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCBXVEZN
b3ZlKG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgVVJMIHsgbV9wYXJhbWV0
ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5UmVmKCks
IG1fcGFyYW1ldGVycy50b3BPcmlnaW4uY29weVJlZigpLCBtX3BhcmFtZXRlcnMucHJlZmxpZ2h0
UG9saWN5LCBtX3BhcmFtZXRlcnMucmVxdWVzdC5odHRwUmVmZXJyZXIoKSkpCisgICAgLCBtX25l
dHdvcmtMb2FkQ2hlY2tlcihtYWtlVW5pcXVlUmVmPE5ldHdvcmtMb2FkQ2hlY2tlcj4obmV0d29y
a1Byb2Nlc3MsIEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25zfSwgbV9zZXNzaW9u
SUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgV1RGTW92ZShtX3BhcmFtZXRlcnMub3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycyksIFVSTCB7IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpIH0s
IG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFtZXRlcnMudG9wT3Jp
Z2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwgbV9wYXJhbWV0ZXJz
LnJlcXVlc3QuaHR0cFJlZmVycmVyKCkpKQogICAgICwgbV9ibG9iRmlsZXMoY29ubmVjdGlvbi5y
ZXNvbHZlQmxvYlJlZmVyZW5jZXMobV9wYXJhbWV0ZXJzKSkKIHsKICAgICBmb3IgKGF1dG8mIGZp
bGUgOiBtX2Jsb2JGaWxlcykgewpAQCAtMTE3LDcgKzExOSw3IEBAIHZvaWQgUGluZ0xvYWQ6OmRp
ZEZpbmlzaChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzCiB2b2lkIFBpbmdMb2FkOjpsb2FkUmVxdWVzdChOZXR3b3JrUHJvY2VzcyYgbmV0d29y
a1Byb2Nlc3MsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZCIpOwotICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vz
c2lvbiA9IG5ldHdvcmtQcm9jZXNzLm5ldHdvcmtTZXNzaW9uKG1fcGFyYW1ldGVycy5zZXNzaW9u
SUQpKSB7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MubmV0
d29ya1Nlc3Npb24obV9zZXNzaW9uSUQpKSB7CiAgICAgICAgIGF1dG8gbG9hZFBhcmFtZXRlcnMg
PSBtX3BhcmFtZXRlcnM7CiAgICAgICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBXVEZNb3Zl
KHJlcXVlc3QpOwogICAgICAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSgqbmV0
d29ya1Nlc3Npb24sICp0aGlzLCBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSk7CkBAIC0xNDgsNyAr
MTUwLDcgQEAgdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgQ2hhbGxlbmcKIHsKICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlQ2hhbGxlbmdlIik7CiAgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0
aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhl
bnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7Ci0gICAgICAg
IG1fbmV0d29ya0xvYWRDaGVja2VyLT5uZXR3b3JrUHJvY2VzcygpLmF1dGhlbnRpY2F0aW9uTWFu
YWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3BhcmFtZXRlcnMuc2Vz
c2lvbklELCBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsICBtX3BhcmFtZXRlcnMudG9wT3Jp
Z2luID8gJm1fcGFyYW1ldGVycy50b3BPcmlnaW4tPmRhdGEoKSA6IG51bGxwdHIsIGNoYWxsZW5n
ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBtX25ldHdvcmtMb2FkQ2hl
Y2tlci0+bmV0d29ya1Byb2Nlc3MoKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdl
UHJveHlJRCwgIG1fcGFyYW1ldGVycy50b3BPcmlnaW4gPyAmbV9wYXJhbWV0ZXJzLnRvcE9yaWdp
bi0+ZGF0YSgpIDogbnVsbHB0ciwgY2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGlu
Z0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaAppbmRleCA1
MDU5MmI3NTI5OGUyZGQzNTIxY2NlNjgwMDkwNWZiOGFhZjVjYjFkLi4xNTZhNjVkMGE3YzgyNmE3
YjFkOGI5N2JiMTQyMWIyNDBiNWI0YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1BpbmdMb2FkLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
aW5nTG9hZC5oCkBAIC00MSw4ICs0MSw4IEBAIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogCiBjbGFz
cyBQaW5nTG9hZCBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQaW5nTG9hZD4sIHByaXZh
dGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKIHB1YmxpYzoKKyAgICBQaW5nTG9hZChOZXR3b3Jr
UHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpOwogICAgIFBpbmdMb2FkKE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpOwot
ICAgIFBpbmdMb2FkKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKTsKIAogcHJpdmF0ZToKICAg
ICB+UGluZ0xvYWQoKTsKQEAgLTY1LDYgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlk
RmluaXNoKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImID0geyB9LCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSA9IHsgfSk7CiAgICAgCisgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbV9w
YXJhbWV0ZXJzOwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4gbV9jb21wbGV0
aW9uSGFuZGxlcjsKICAgICBSZWZQdHI8TmV0d29ya0RhdGFUYXNrPiBtX3Rhc2s7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwCmluZGV4IDJjNjQy
N2U2NDgyMmNlZjVkMWE4MTIwMjVlZmQ2Yzg1NDU0MWNlODcuLmY5ZmE1ZjgxZDZkOTY3YzMwZGQ5
OTA1ZTU0YzZhOTIxMTYzMTQ5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJlY29ubmVjdFRhc2suY3BwCkBAIC0zOSwxMyArMzksMTMgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1QcmVjb25uZWN0VGFzazo6UHJlY29u
bmVjdFRhc2soTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNl
RXJyb3ImKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK1ByZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0
VGFzayhOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBSZXNvdXJjZUVycm9yJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAg
OiBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQogICAgICwg
bV90aW1lb3V0VGltZXIoW3RoaXNdIHsgZGlkRmluaXNoKFJlc291cmNlRXJyb3IgeyBTdHJpbmco
KSwgMCwgbV9uZXR3b3JrTG9hZC0+cGFyYW1ldGVycygpLnJlcXVlc3QudXJsKCksICJQcmVjb25u
ZWN0aW9uIHRpbWVkIG91dCJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6VGltZW91dCB9KTsgfSkK
IHsKICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6UHJlY29u
bmVjdFRhc2soKSIsIHRoaXMpOwogCi0gICAgYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3Jr
UHJvY2Vzcy5uZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCk7CisgICAgYXV0byog
bmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcy5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQp
OwogICAgIGlmICghbmV0d29ya1Nlc3Npb24pIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIoaW50ZXJuYWxFcnJvcihwYXJhbWV0ZXJz
LnJlcXVlc3QudXJsKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJlY29ubmVjdFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29u
bmVjdFRhc2suaAppbmRleCA1NjU4YTZlZGJmZGM2MDJmM2Q0YTlhNDkxYTljM2EyYjgyZDJmNWEz
Li45ZDA5YmIyYTNlYWYzM2U1Y2VjNWM3YzUwZmNlNzcwNTUwOGY4NTBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oCkBAIC00MCw3ICs0MCw3IEBA
IGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogCiBjbGFzcyBQcmVjb25uZWN0VGFzayBmaW5hbCA6IHB1
YmxpYyBOZXR3b3JrTG9hZENsaWVudCB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUHJlY29ubmVj
dFRhc2soTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+JiYgY29tcGxldGlv
bkhhbmRsZXIgPSB7IH0pOworICAgIGV4cGxpY2l0IFByZWNvbm5lY3RUYXNrKE5ldHdvcmtQcm9j
ZXNzJiwgUEFMOjpTZXNzaW9uSUQsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKT4mJiBjb21wbGV0aW9u
SGFuZGxlciA9IHsgfSk7CiAgICAgflByZWNvbm5lY3RUYXNrKCk7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNw
ZWN1bGF0aXZlTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKaW5kZXggYzkxMzUwZTE1ZGY2YWMyYTUwYWIx
YzFiYTUwODMzMzc3YTM2OGU4Yy4uNmM3MmZhYmU3MmUzNTk0NDhhN2MxYjI5MWNkOTBlOTUwZTVi
YmU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcApAQCAtNTIsNyArNTIs
NyBAQCBTcGVjdWxhdGl2ZUxvYWQ6OlNwZWN1bGF0aXZlTG9hZChDYWNoZSYgY2FjaGUsIGNvbnN0
IEdsb2JhbEZyYW1lSUQmIGdsb2JhbEZyYW1lSQogewogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5
IHx8IG1fY2FjaGVFbnRyeS0+bmVlZHNWYWxpZGF0aW9uKCkpOwogCi0gICAgTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMgeyBjYWNoZS5zZXNzaW9uSUQoKSB9OworICAgIE5ldHdvcmtM
b2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogICAgIHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQg
PSBnbG9iYWxGcmFtZUlELndlYlBhZ2VQcm94eUlEOwogICAgIHBhcmFtZXRlcnMud2ViUGFnZUlE
ID0gZ2xvYmFsRnJhbWVJRC53ZWJQYWdlSUQ7CiAgICAgcGFyYW1ldGVycy53ZWJGcmFtZUlEID0g
Z2xvYmFsRnJhbWVJRC5mcmFtZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDU1YjM3YzI5M2MxNWQ5ZmE5
MmJkNzU0ZjkzZjM5ZGZlMjM0NzIwNTguLmQ3ZjA1MjM0NWU2YTM1NjM0YjY5MDI4M2ZlMjlmNTUy
ODFmNWUyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXIm
IHJlc291cmNlTAogICAgIENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IGNvbnRlbnRFbmNv
ZGluZ1NuaWZmaW5nUG9saWN5ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkU25pZmZDb250ZW50RW5j
b2RpbmcoKSA/IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZiA6IENvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmOwogICAgIFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UoKSA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UgOiBTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAKLSAgICBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyB7IHNlc3Npb25JRCB9OworICAgIE5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwogICAgIGxvYWRQYXJhbWV0ZXJzLmlk
ZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlE
ID0gdHJhY2tpbmdQYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEOwogICAgIGxvYWRQYXJhbWV0ZXJz
LndlYlBhZ2VJRCA9IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQ7CkBAIC01NTUsNyArNTU1LDcg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFt
ZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzIHsgc2Vzc2lvbklE
IH07CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CiAg
ICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IHJlc291cmNlTG9hZElkZW50aWZpZXI7CiAg
ICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQgPSB3ZWJQYWdlUHJveHlJRDsKICAgICBs
b2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSBwYWdlSUQ7CkBAIC02MjQsNyArNjI0LDcgQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY28KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzIHsgZnJhbWUucGFnZSgpID8g
ZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCkgfTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVy
czsKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gZ2VuZXJhdGVMb2FkSWRlbnRpZmll
cigpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJh
bWV0ZXJzLnNvdXJjZU9yaWdpbiA9ICZkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKQEAgLTY4
NCw3ICs2ODQsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8oRnJhbWVM
b2FkZXImIGZyYW1lTG9hZGVyLCBjb25zdCBVUkwmIHVybCwgUwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVycyB7IHdl
YlBhZ2UtPnNlc3Npb25JRCgpIH07CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMg
cGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QgeyB1
cmwgfTsKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEID0gd2ViUGFnZS0+d2ViUGFnZVBy
b3h5SWRlbnRpZmllcigpOwogICAgIHBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2ViUGFnZS0+aWRl
bnRpZmllcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379057</attachid>
            <date>2019-09-18 12:06:28 -0700</date>
            <delta_ts>2019-09-18 12:33:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201921-20190918120627.patch</filename>
            <type>text/plain</type>
            <size>28446</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5OTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMyZWRiMjNiYjYxZjQ5N2Y1
MWNjYTE1MmJjZDUzZTFjNjZhNTVkNDEuLjFhNThiMzllOGZjM2IyNDY2OTk1ZWVjNjJmNDkyYTAz
OWRhZTg4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTktMDktMTggIEJlbmphbWlu
IE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMg
c2hvdWxkbid0IHN0b3JlIHNlc3Npb25JRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm93IHRoYXQgdGhlcmUncyBhIHNpbmdsZSBzZXNzaW9uIGlkIHBl
ciBXZWJQcm9jZXNzLCB3ZSBkb24ndCBuZWVkIHRvCisgICAgICAgIHN0b3JlIHRoZSBzZXNzaW9u
IGlkIGluIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBhbnltb3JlLiBDbGllbnRzIGNhbiBqdXN0Cisg
ICAgICAgIGRpcmVjdGx5IGFzayBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBmb3IgdGhl
IFdlYlByb2Nlc3MncyBzZXNzaW9uCisgICAgICAgIElEIGluc3RlYWQuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OnN0YXJ0UHJlZmxpZ2h0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpw
cmVjb25uZWN0VG8pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpz
dGFydE5ldHdvcmtMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
Ojpjb252ZXJ0VG9Eb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGluZ0xvYWQ6OlBpbmdMb2FkKToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OmxvYWRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6UHJlY29ubmVjdFRhc2spOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RU
YXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2
ZUxvYWQ6OlNwZWN1bGF0aXZlTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
YWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKToKKwogMjAxOS0wOS0xNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlByb2Nlc3MgY2xhc3MgbWV0aG9k
cyBzaG91bGQgbm90IG5lZWQgdG8gdGFrZSBhIHNlc3Npb25JRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAK
aW5kZXggOTA5ZWE1MzkxYTRlOGM5NmUzNDUxMjhmYjc0Yzk4N2Y4ZTlkZjRkZi4uZjNlMmYwZTAy
Nzk1NWY3ZWRjMTNjMmE2NjE0ZTUwYTM2MTNhY2JjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCkBA
IC0xNjMsNyArMTYzLDcgQEAgdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpmaXJlQ29u
dmVyc2lvblJlcXVlc3QoY29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJgogCiAgICAgc3RhdGljIHVp
bnQ2NF90IGlkZW50aWZpZXIgPSAwOwogICAgIAotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzIGxvYWRQYXJhbWV0ZXJzIHsgUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KSB9OworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwog
ICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSArK2lkZW50aWZpZXI7CiAgICAgbG9hZFBh
cmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3Jp
Z2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShjb252ZXJzaW9uUmVmZXJyZXJVUkwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkTWFuYWdlci5jcHAKaW5kZXggNTA3ZjRmNmZmYzNkNDA2OWMxMzc4MjY1Mjc1YzY2MDY1NGI0
YzgzOS4uMDQyN2YxOWZkNjM3ZDBlYmQ1MzU0YmNiZTg2Mjk3NWM5YTZjNzdjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFy
dERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hCiAg
ICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTmV0d29ya0xv
YWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgeyBzZXNzaW9uSUQgfTsKKyAgICBOZXR3b3JrTG9hZFBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0Owog
ICAgIHBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9IENsaWVudENyZWRlbnRpYWxQ
b2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzOwogICAgIGlmIChyZXF1ZXN0LnVybCgp
LnByb3RvY29sSXNCbG9iKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggYjdjMWFmZWI3
NDJmMmFiMmJjMTcxZTgxNWY1ZmZmMDIzZjkwYjU1NS4uNTdiYmRhYjVkYTc4ZTExMzcyMjlkODlk
NWQxY2U3MzQxZGFjNzhlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNjMsNyArNjMs
NyBAQCB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6c3RhcnRQcmVmbGlnaHQoKQog
ewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0UHJlZmxpZ2h0Iik7CiAKLSAgICBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMgeyBtX3BhcmFtZXRlcnMuc2Vzc2lv
bklEIH07CisgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwogICAgIGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSBjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVz
dChtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2lu
LCBtX3BhcmFtZXRlcnMucmVmZXJyZXIpOwogICAgIGlmICghbV9wYXJhbWV0ZXJzLnVzZXJBZ2Vu
dC5pc051bGwoKSkKICAgICAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OlVzZXJBZ2VudCwgbV9wYXJhbWV0ZXJzLnVzZXJBZ2VudCk7
CkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpzdGFy
dFByZWZsaWdodCgpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRy
aWNzKQogICAgICAgICBtX2xvYWRJbmZvcm1hdGlvbiA9IE5ldHdvcmtUcmFuc2FjdGlvbkluZm9y
bWF0aW9uIHsgTmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb246OlR5cGU6OlByZWZsaWdodCwg
bG9hZFBhcmFtZXRlcnMucmVxdWVzdCwgeyB9LCB7IH0gfTsKIAotICAgIGlmIChhdXRvKiBuZXR3
b3JrU2Vzc2lvbiA9IG1fbmV0d29ya1Byb2Nlc3MtPm5ldHdvcmtTZXNzaW9uKGxvYWRQYXJhbWV0
ZXJzLnNlc3Npb25JRCkpIHsKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBtX25ldHdv
cmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihtX3BhcmFtZXRlcnMuc2Vzc2lvbklEKSkgewogICAg
ICAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSgqbmV0d29ya1Nlc3Npb24sICp0
aGlzLCBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSk7CiAgICAgICAgIG1fdGFzay0+cmVzdW1lKCk7
CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDE4NjI1YjYzYWI2
YjJkNDdjOTcyNWZmZGY2N2Y2Y2M1YTE3ZWQzNWEuLmZmZTljNGFjMThlYTYwYjhkMTI3MWFiYWM0
NDE4NWEzMWFkM2Q4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00NzcsNyAr
NDc3LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlY29ubmVjdFRv
KHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWUKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMu
cmVxdWVzdC5odHRwQm9keSgpKTsKICAgICAKICNpZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1Qp
Ci0gICAgbmV3IFByZWNvbm5lY3RUYXNrKG5ldHdvcmtQcm9jZXNzKCksIFdURk1vdmUocGFyYW1l
dGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIg
PSBwcmVjb25uZWN0aW9uSWRlbnRpZmllcl0gKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSB7
CisgICAgbmV3IFByZWNvbm5lY3RUYXNrKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCgpLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBpZGVudGlmaWVyID0gcHJlY29ubmVjdGlvbklkZW50aWZpZXJdIChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikgewogICAgICAgICBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKGlkZW50aWZpZXIs
IGVycm9yKTsKICAgICB9KTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCA5MmI4MTI3MzI1MTY2NjI0M2Q4
NTFlYjhhNWFiYzMyODExMzg1ZjI5Li4wNTA0YjIzYmY5ZGQ3YzQ0ZTQ5NGU5NDVhMWEwYWU0ZjIx
MjIzMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTQyLDEyICs0Miw2IEBAIGVudW0gY2xhc3MgUHJlY29ubmVj
dE9ubHkgeyBObywgWWVzIH07CiAKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgTmV0d29ya0xvYWRQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKLSAgICAgICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQotICAgIHsKLSAgICB9Ci0K
LSAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciB3ZWJQYWdlUHJveHlJRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7
CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCmluZGV4
IDNlZmM3N2M4ZWIwYzk0MTExMjQ0NTIxMjM5MjVjN2Y5NWZlZGNmYTQuLjRmN2EwOGFlYjg0NGVj
YTYyOGU3NDZjMmQ2M2ExYjA3OWExNTJhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCkBAIC0yNSw3ICsyNSw2IEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCkBAIC0z
NSw2ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIAogdHlwZWRl
ZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmNwcAppbmRleCBkNWZmZWEzMzZjMjY4MTVjMWZmMGI5ZWM1MTdmODdiOTJmMDA0M2FjLi4wMTM4
NTYzODE1N2RkNGQwNGM2ODg3YTBmODQ2Zjk3NzU3YjBhY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcApAQCAtMzMsNyArMzMsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsKICAgICBlbmNvZGVy
IDw8IGlkZW50aWZpZXI7CiAgICAgZW5jb2RlciA8PCB3ZWJQYWdlUHJveHlJRDsKICAgICBlbmNv
ZGVyIDw8IHdlYlBhZ2VJRDsKQEAgLTEwOSwxMyArMTA4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAog
T3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM+IE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIE9wdGlv
bmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQ7Ci0gICAgZGVjb2RlciA+PiBzZXNzaW9uSUQ7
Ci0KLSAgICBpZiAoIXNlc3Npb25JRCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc3VsdCB7ICpzZXNzaW9uSUQgfTsK
KyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXN1bHQ7CiAKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5pZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAppbmRleCAwYzY2OWFlNzhmODAxYjBjZWMzY2Fm
NjUyOTM2YjE0Njc1ZmVlYzg2Li4xMjAzNDcwNGRhOTI3YjVhMmZjMWI1Y2VmZTk5YmJmODJiZmRm
NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCkBAIC00MywxMSArNDMsNiBAQCB0eXBlZGVm
IHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzIDogcHVibGljIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6
Ci0gICAgZXhwbGljaXQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQotICAgICAgICA6IE5ldHdvcmtMb2FkUGFyYW1ldGVycyhzZXNzaW9uSUQp
Ci0gICAgewotICAgIH0KLQogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0Owog
ICAgIHN0YXRpYyBPcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4gZGVjb2Rl
KElQQzo6RGVjb2RlciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggY2RlOWYyMDVhOTU1OGVkODlkZDcw
NzhkZWY0ZDM3ZDc2ZGM5YzI4OS4uMDZhMGY4NGY2MmQ4NzAyMzk3YzI0ODVmYzkyMDg3ZjlkYjdl
NmJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6TmV0d29ya1Jlc291cmNlTG9hZGVyKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
JiYgcGFyCiAKICAgICBpZiAoc3luY2hyb25vdXNSZXBseSB8fCBwYXJhbWV0ZXJzLnNob3VsZFJl
c3RyaWN0SFRUUFJlc3BvbnNlQWNjZXNzIHx8IHBhcmFtZXRlcnMub3B0aW9ucy5rZWVwQWxpdmUp
IHsKICAgICAgICAgTmV0d29ya0xvYWRDaGVja2VyOjpMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUg
PSBpc01haW5GcmFtZUxvYWQoKSA/IE5ldHdvcmtMb2FkQ2hlY2tlcjo6TG9hZFR5cGU6Ok1haW5G
cmFtZSA6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6TG9hZFR5cGU6Ok90aGVyOwotICAgICAgICBtX25l
dHdvcmtMb2FkQ2hlY2tlciA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWRDaGVja2VyPihjb25uZWN0
aW9uLm5ldHdvcmtQcm9jZXNzKCksIEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25z
IH0sIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwg
SFRUUEhlYWRlck1hcCB7IG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzIH0sIFVS
TCB7IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmln
aW4uY29weVJlZigpLCBtX3BhcmFtZXRlcnMudG9wT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0
ZXJzLnByZWZsaWdodFBvbGljeSwgb3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIG1f
cGFyYW1ldGVycy5pc0hUVFBTVXBncmFkZUVuYWJsZWQsIHNob3VsZENhcHR1cmVFeHRyYU5ldHdv
cmtMb2FkTWV0cmljcygpLCByZXF1ZXN0TG9hZFR5cGUpOworICAgICAgICBtX25ldHdvcmtMb2Fk
Q2hlY2tlciA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWRDaGVja2VyPihjb25uZWN0aW9uLm5ldHdv
cmtQcm9jZXNzKCksIEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25zIH0sIHNlc3Np
b25JRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIEhUVFBIZWFkZXJNYXAgeyBtX3Bh
cmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyB9LCBVUkwgeyBtX3BhcmFtZXRlcnMucmVx
dWVzdC51cmwoKSB9LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJh
bWV0ZXJzLnRvcE9yaWdpbi5jb3B5UmVmKCksIG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQb2xpY3ks
IG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBtX3BhcmFtZXRlcnMuaXNIVFRQU1Vw
Z3JhZGVFbmFibGVkLCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSwgcmVx
dWVzdExvYWRUeXBlKTsKICAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5jc3BSZXNwb25zZUhlYWRl
cnMpCiAgICAgICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c2V0Q1NQUmVzcG9uc2VIZWFk
ZXJzKENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IG1fcGFyYW1ldGVycy5j
c3BSZXNwb25zZUhlYWRlcnMudmFsdWUoKSB9KTsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJ
T05TKQpAQCAtMzAxLDE0ICszMDEsMTQgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0
YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICBp
ZiAocGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6VXNlICYmIG1fbmV0d29ya0xvYWRDaGVja2VyKQogICAgICAgICBw
YXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gbV9uZXR3b3JrTG9hZENoZWNrZXIt
PnN0b3JlZENyZWRlbnRpYWxzUG9saWN5KCk7CiAKLSAgICBhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9
IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJz
LnNlc3Npb25JRCk7Ci0gICAgaWYgKCFuZXR3b3JrU2Vzc2lvbiAmJiBwYXJhbWV0ZXJzLnNlc3Np
b25JRC5pc0VwaGVtZXJhbCgpKSB7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nl
c3MoKS5hZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpwcml2
YXRlU2Vzc2lvblBhcmFtZXRlcnMocGFyYW1ldGVycy5zZXNzaW9uSUQpKTsKLSAgICAgICAgbmV0
d29ya1Nlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Np
b24ocGFyYW1ldGVycy5zZXNzaW9uSUQpOworICAgIGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9j
b25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKTsK
KyAgICBpZiAoIW5ldHdvcmtTZXNzaW9uICYmIHNlc3Npb25JRCgpLmlzRXBoZW1lcmFsKCkpIHsK
KyAgICAgICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmFkZFdlYnNpdGVEYXRhU3Rv
cmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW9uUGFyYW1ldGVycyhz
ZXNzaW9uSUQoKSkpOworICAgICAgICBuZXR3b3JrU2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0
d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSk7CiAgICAgfQogICAgIGlm
ICghbmV0d29ya1Nlc3Npb24pIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8g
Y3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0
IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnRvVUludDY0KCkpOwotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRl
bXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5v
dCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQudG9VSW50
NjQoKSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdv
cmtMb2FkIHdpdGggYSBzZXNzaW9uIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlz
dC4iLCBzZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdv
cmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
c2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIHNlc3Npb25JRCgpLnRvVUludDY0KCkpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPm5l
dHdvcmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3NhZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VQ
cm94eUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXko
KSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnZhbGlkU2Vzc2lvbklES2V5KCks
IFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICBkaWRGYWlsTG9hZGluZyhpbnRl
cm5hbEVycm9yKHJlcXVlc3QudXJsKCkpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ4LDcgKzM0
OCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9hZChEb3du
bG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291CiAgICAgCiAgICAgLy8gVGhpcyBjYW4gaGFw
cGVuIGlmIHRoZSByZXNvdXJjZSBjYW1lIGZyb20gdGhlIGRpc2sgY2FjaGUuCiAgICAgaWYgKCFt
X25ldHdvcmtMb2FkKSB7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5k
b3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIGRv
d25sb2FkSUQsIHJlcXVlc3QpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNz
KCkuZG93bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChzZXNzaW9uSUQoKSwgZG93bmxvYWRJ
RCwgcmVxdWVzdCk7CiAgICAgICAgIGFib3J0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCBlNjFiNjlkMjcyYjg1ZGU4ODc2MThhZDQ5MTEzYzJkZTk0NDE5NDkxLi5kNjUw
NzJiNzJiZDQxMzE0MWEwNmIyODdjNDUyNjliZTQyYWYwNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRl
ci5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKQEAgLTgzLDcgKzg0LDcgQEAgcHVibGlj
OgogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXNwb25zZTsgfQogCiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb247
IH0KLSAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFt
ZXRlcnMuc2Vzc2lvbklEOyB9CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
eyByZXR1cm4gbV9jb25uZWN0aW9uLT5zZXNzaW9uSUQoKTsgfQogICAgIFJlc291cmNlTG9hZElk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyOyB9CiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRDsgfQogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQ7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXgg
YzNlZTg2MzI5OWY1YmNhODY5MjI1NjkyNTEwMzg5NGFjOGNkNGUwYy4uYjE1NTBhZWRjMDc1OTdl
MTRjYzgxZTlhYmE4M2Y2NzU3Zjk5OGIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBOZXR3b3JrU2Vz
c2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBjb25z
dCBOZXR3b3JrU2VzcwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAvLyBQaW5nTG9hZCBtYW5hZ2VzIGl0cyBvd24gbGlmZXRpbWUsIGRlbGV0aW5n
IGl0c2VsZiB3aGVuIGl0cyBwdXJwb3NlIGhhcyBiZWVuIGZ1bGZpbGxlZC4KLSAgICAgICAgbmV3
IFBpbmdMb2FkKG1fbmV0d29ya1Byb2Nlc3MsIFdURk1vdmUobG9hZFBhcmFtZXRlcnMpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIG5ldyBQaW5nTG9hZChtX25ldHdvcmtQ
cm9jZXNzLCBtX3Nlc3Npb25JRCwgV1RGTW92ZShsb2FkUGFyYW1ldGVycyksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1BpbmdMb2FkLmNwcAppbmRleCBmMjVmNDNhNTcwNjAzOTFhYTQ5YjcwNDJlM2IxMzM1N2E4
MzhmYTJlLi4wMDM3OWEzOWFkN2YyMWYyOGFiYmUyYzc5MTgzODNmNzFjZjA5NjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcApAQCAtMzQsMjYgKzM0LDI4IEBA
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKIAot
I2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRiht
X3BhcmFtZXRlcnMuc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3Jr
LCAiJXAgLSBQaW5nTG9hZDo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKG1fc2Vzc2lvbklE
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBQaW5nTG9hZDo6IiBm
bXQsIHRoaXMsICMjX19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAotUGluZ0xvYWQ6OlBpbmdMb2FkKE5ldHdvcmtQcm9jZXNzJiBu
ZXR3b3JrUHJvY2VzcywgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3ImLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAgOiBtX3BhcmFtZXRlcnMo
V1RGTW92ZShwYXJhbWV0ZXJzKSkKK1BpbmdMb2FkOjpQaW5nTG9hZChOZXR3b3JrUHJvY2VzcyYg
bmV0d29ya1Byb2Nlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFJlc291cmNlRXJyb3ImLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCisgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgLCBtX3BhcmFtZXRlcnMo
V1RGTW92ZShwYXJhbWV0ZXJzKSkKICAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpCiAgICAgLCBtX3RpbWVvdXRUaW1lcigqdGhpcywgJlBpbmdMb2Fk
Ojp0aW1lb3V0VGltZXJGaXJlZCkKLSAgICAsIG1fbmV0d29ya0xvYWRDaGVja2VyKG1ha2VVbmlx
dWVSZWY8TmV0d29ya0xvYWRDaGVja2VyPihuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zIHsg
bV9wYXJhbWV0ZXJzLm9wdGlvbnN9LCBtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCBtX3BhcmFtZXRl
cnMud2ViUGFnZVByb3h5SUQsIFdURk1vdmUobV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhl
YWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFtZXRlcnMu
c291cmNlT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbi5jb3B5UmVmKCks
IG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQb2xpY3ksIG1fcGFyYW1ldGVycy5yZXF1ZXN0Lmh0dHBS
ZWZlcnJlcigpKSkKKyAgICAsIG1fbmV0d29ya0xvYWRDaGVja2VyKG1ha2VVbmlxdWVSZWY8TmV0
d29ya0xvYWRDaGVja2VyPihuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zIHsgbV9wYXJhbWV0
ZXJzLm9wdGlvbnN9LCBtX3Nlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCBX
VEZNb3ZlKG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzKSwgVVJMIHsgbV9wYXJh
bWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi5jb3B5UmVm
KCksIG1fcGFyYW1ldGVycy50b3BPcmlnaW4uY29weVJlZigpLCBtX3BhcmFtZXRlcnMucHJlZmxp
Z2h0UG9saWN5LCBtX3BhcmFtZXRlcnMucmVxdWVzdC5odHRwUmVmZXJyZXIoKSkpCiB7CiAgICAg
aW5pdGlhbGl6ZShuZXR3b3JrUHJvY2Vzcyk7CiB9CiAKIFBpbmdMb2FkOjpQaW5nTG9hZChOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICA6IG1fcGFyYW1ldGVycyhX
VEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgIDogbV9zZXNzaW9uSUQoY29ubmVjdGlvbi5zZXNzaW9u
SUQoKSkKKyAgICAsIG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQogICAgICwgbV9j
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICAsIG1fdGlt
ZW91dFRpbWVyKCp0aGlzLCAmUGluZ0xvYWQ6OnRpbWVvdXRUaW1lckZpcmVkKQotICAgICwgbV9u
ZXR3b3JrTG9hZENoZWNrZXIobWFrZVVuaXF1ZVJlZjxOZXR3b3JrTG9hZENoZWNrZXI+KG5ldHdv
cmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0aW9uc30sIG1fcGFyYW1l
dGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgV1RGTW92ZShtX3Bh
cmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksIFVSTCB7IG1fcGFyYW1ldGVycy5yZXF1
ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFt
ZXRlcnMudG9wT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwg
bV9wYXJhbWV0ZXJzLnJlcXVlc3QuaHR0cFJlZmVycmVyKCkpKQorICAgICwgbV9uZXR3b3JrTG9h
ZENoZWNrZXIobWFrZVVuaXF1ZVJlZjxOZXR3b3JrTG9hZENoZWNrZXI+KG5ldHdvcmtQcm9jZXNz
LCBGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0aW9uc30sIG1fc2Vzc2lvbklELCBtX3Bh
cmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIFdURk1vdmUobV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVx
dWVzdEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFt
ZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbi5jb3B5
UmVmKCksIG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQb2xpY3ksIG1fcGFyYW1ldGVycy5yZXF1ZXN0
Lmh0dHBSZWZlcnJlcigpKSkKICAgICAsIG1fYmxvYkZpbGVzKGNvbm5lY3Rpb24ucmVzb2x2ZUJs
b2JSZWZlcmVuY2VzKG1fcGFyYW1ldGVycykpCiB7CiAgICAgZm9yIChhdXRvJiBmaWxlIDogbV9i
bG9iRmlsZXMpIHsKQEAgLTExNyw3ICsxMTksNyBAQCB2b2lkIFBpbmdMb2FkOjpkaWRGaW5pc2go
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlcwog
dm9pZCBQaW5nTG9hZDo6bG9hZFJlcXVlc3QoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInN0YXJ0TmV0d29ya0xvYWQiKTsKLSAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBu
ZXR3b3JrUHJvY2Vzcy5uZXR3b3JrU2Vzc2lvbihtX3BhcmFtZXRlcnMuc2Vzc2lvbklEKSkgewor
ICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzLm5ldHdvcmtTZXNz
aW9uKG1fc2Vzc2lvbklEKSkgewogICAgICAgICBhdXRvIGxvYWRQYXJhbWV0ZXJzID0gbV9wYXJh
bWV0ZXJzOwogICAgICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0
KTsKICAgICAgICAgbV90YXNrID0gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoKm5ldHdvcmtTZXNz
aW9uLCAqdGhpcywgV1RGTW92ZShsb2FkUGFyYW1ldGVycykpOwpAQCAtMTQ4LDcgKzE1MCw3IEBA
IHZvaWQgUGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmJiBjaGFsbGVuZ2UsIENoYWxsZW5nCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkUmVjZWl2ZUNoYWxsZW5nZSIpOwogICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNl
KCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgewotICAgICAgICBtX25ldHdv
cmtMb2FkQ2hlY2tlci0+bmV0d29ya1Byb2Nlc3MoKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5k
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELCAgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbiA/ICZt
X3BhcmFtZXRlcnMudG9wT3JpZ2luLT5kYXRhKCkgOiBudWxscHRyLCBjaGFsbGVuZ2UsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgbV9uZXR3b3JrTG9hZENoZWNrZXItPm5l
dHdvcmtQcm9jZXNzKCkuYXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKG1fc2Vzc2lvbklELCBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQs
ICBtX3BhcmFtZXRlcnMudG9wT3JpZ2luID8gJm1fcGFyYW1ldGVycy50b3BPcmlnaW4tPmRhdGEo
KSA6IG51bGxwdHIsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKaW5kZXggNTA1OTJiNzUy
OThlMmRkMzUyMWNjZTY4MDA5MDVmYjhhYWY1Y2IxZC4uMTU2YTY1ZDBhN2M4MjZhN2IxZDhiOTdi
YjE0MjFiMjQwYjViNGExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9QaW5nTG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQu
aApAQCAtNDEsOCArNDEsOCBAQCBjbGFzcyBOZXR3b3JrUHJvY2VzczsKIAogY2xhc3MgUGluZ0xv
YWQgZmluYWwgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGluZ0xvYWQ+LCBwcml2YXRlIE5ldHdv
cmtEYXRhVGFza0NsaWVudCB7CiBwdWJsaWM6CisgICAgUGluZ0xvYWQoTmV0d29ya1Byb2Nlc3Mm
LCBQQUw6OlNlc3Npb25JRCwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKTsKICAgICBQaW5nTG9hZChOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYsIE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmKTsKLSAgICBQaW5n
TG9hZChOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKT4mJik7CiAKIHByaXZhdGU6CiAgICAgflBpbmdM
b2FkKCk7CkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEZpbmlzaChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiA9IHsgfSwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UgPSB7IH0pOwogICAgIAorICAgIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIG1fcGFyYW1ldGVy
czsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+IG1fY29tcGxldGlvbkhhbmRs
ZXI7CiAgICAgUmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4gbV90YXNrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcAppbmRleCAyYzY0MjdlNjQ4MjJj
ZWY1ZDFhODEyMDI1ZWZkNmM4NTQ1NDFjZTg3Li5mOWZhNWY4MWQ2ZDk2N2MzMGRkOTkwNWU1NGM2
YTkyMTE2MzE0OTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
ZWNvbm5lY3RUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNv
bm5lY3RUYXNrLmNwcApAQCAtMzksMTMgKzM5LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUHJlY29ubmVjdFRhc2s6OlByZWNvbm5lY3RUYXNr
KE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZUVycm9yJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soTmV0
d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE5l
dHdvcmtMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgUmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIDogbV9jb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICAsIG1fdGltZW91
dFRpbWVyKFt0aGlzXSB7IGRpZEZpbmlzaChSZXNvdXJjZUVycm9yIHsgU3RyaW5nKCksIDAsIG1f
bmV0d29ya0xvYWQtPnBhcmFtZXRlcnMoKS5yZXF1ZXN0LnVybCgpLCAiUHJlY29ubmVjdGlvbiB0
aW1lZCBvdXQiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OlRpbWVvdXQgfSk7IH0pCiB7CiAgICAg
UkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OlByZWNvbm5lY3RUYXNr
KCkiLCB0aGlzKTsKIAotICAgIGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3Mu
bmV0d29ya1Nlc3Npb24ocGFyYW1ldGVycy5zZXNzaW9uSUQpOworICAgIGF1dG8qIG5ldHdvcmtT
ZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKICAgICBp
ZiAoIW5ldHdvcmtTZXNzaW9uKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKGludGVybmFsRXJyb3IocGFyYW1ldGVycy5yZXF1ZXN0
LnVybCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNv
bm5lY3RUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNr
LmgKaW5kZXggNTY1OGE2ZWRiZmRjNjAyZjNkNGE5YTQ5MWE5YzNhMmI4MmQyZjVhMy4uOWQwOWJi
MmEzZWFmMzNlNWNlYzVjN2M1MGZjZTc3MDU1MDhmODUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBO
ZXR3b3JrUHJvY2VzczsKIAogY2xhc3MgUHJlY29ubmVjdFRhc2sgZmluYWwgOiBwdWJsaWMgTmV0
d29ya0xvYWRDbGllbnQgewogcHVibGljOgotICAgIGV4cGxpY2l0IFByZWNvbm5lY3RUYXNrKE5l
dHdvcmtQcm9jZXNzJiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
ID0geyB9KTsKKyAgICBleHBsaWNpdCBQcmVjb25uZWN0VGFzayhOZXR3b3JrUHJvY2VzcyYsIFBB
TDo6U2Vzc2lvbklELCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+JiYgY29tcGxldGlvbkhhbmRsZXIg
PSB7IH0pOwogICAgIH5QcmVjb25uZWN0VGFzaygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2
ZUxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTcGVjdWxhdGl2ZUxvYWQuY3BwCmluZGV4IGM5MTM1MGUxNWRmNmFjMmE1MGFiMWMxYmE1MDgz
MzM3N2EzNjhlOGMuLjZjNzJmYWJlNzJlMzU5NDQ4YTdjMWIyOTFjZDkwZTk1MGU1YmJlNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3BlY3VsYXRpdmVMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgU3Bl
Y3VsYXRpdmVMb2FkOjpTcGVjdWxhdGl2ZUxvYWQoQ2FjaGUmIGNhY2hlLCBjb25zdCBHbG9iYWxG
cmFtZUlEJiBnbG9iYWxGcmFtZUkKIHsKICAgICBBU1NFUlQoIW1fY2FjaGVFbnRyeSB8fCBtX2Nh
Y2hlRW50cnktPm5lZWRzVmFsaWRhdGlvbigpKTsKIAotICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzIHsgY2FjaGUuc2Vzc2lvbklEKCkgfTsKKyAgICBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEID0gZ2xvYmFs
RnJhbWVJRC53ZWJQYWdlUHJveHlJRDsKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IGdsb2Jh
bEZyYW1lSUQud2ViUGFnZUlEOwogICAgIHBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IGdsb2JhbEZy
YW1lSUQuZnJhbWVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCA1NWIzN2MyOTNjMTVkOWZhOTJiZDc1NGY5
M2YzOWRmZTIzNDcyMDU4Li5kN2YwNTIzNDVlNmEzNTYzNGI2OTAyODNmZTI5ZjU1MjgxZjVlMmQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJj
ZUwKICAgICBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFNuaWZmQ29udGVudEVuY29kaW5nKCkg
PyBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgOiBDb250ZW50RW5jb2RpbmdT
bmlmZmluZ1BvbGljeTo6RG9Ob3RTbmlmZjsKICAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKCkgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlIDogU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6OkRvTm90VXNlOwogCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMgbG9hZFBhcmFtZXRlcnMgeyBzZXNzaW9uSUQgfTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVy
ID0gaWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCA9IHRyYWNr
aW5nUGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdl
SUQgPSB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlEOwpAQCAtNTU1LDcgKzU1NSw3IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXIm
IGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyB7IHNlc3Npb25JRCB9OworICAg
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLmlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEID0gd2ViUGFnZVByb3h5SUQ7CiAgICAgbG9hZFBhcmFt
ZXRlcnMud2ViUGFnZUlEID0gcGFnZUlEOwpAQCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyB7IGZyYW1lLnBhZ2UoKSA/IGZyYW1lLnBh
Z2UoKS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpIH07
CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CiAgICAg
bG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKTsKICAg
ICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5z
b3VyY2VPcmlnaW4gPSAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CkBAIC02ODQsNyArNjg0
LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKEZyYW1lTG9hZGVyJiBm
cmFtZUxvYWRlciwgY29uc3QgVVJMJiB1cmwsIFMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgeyB3ZWJQYWdlLT5z
ZXNzaW9uSUQoKSB9OworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHBhcmFtZXRl
cnM7CiAgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0IHsgdXJsIH07CiAg
ICAgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCA9IHdlYlBhZ2UtPndlYlBhZ2VQcm94eUlkZW50
aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UtPmlkZW50aWZpZXIo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379061</attachid>
            <date>2019-09-18 12:33:32 -0700</date>
            <delta_ts>2019-09-18 14:31:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201921-20190918123331.patch</filename>
            <type>text/plain</type>
            <size>28406</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5OTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMyZWRiMjNiYjYxZjQ5N2Y1
MWNjYTE1MmJjZDUzZTFjNjZhNTVkNDEuLjc1OTM2MjdmYWJmNWYwMTI3Nzc4YzNhODJlMWNkZDU2
NmExNjgxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTktMDktMTggIEJlbmphbWlu
IE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMg
c2hvdWxkbid0IHN0b3JlIHNlc3Npb25JRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxOTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgTm93IHRoYXQgdGhlcmUncyBhIHNpbmdsZSBzZXNzaW9uIGlkIHBlciBX
ZWJQcm9jZXNzLCB3ZSBkb24ndCBuZWVkIHRvCisgICAgICAgIHN0b3JlIHRoZSBzZXNzaW9uIGlk
IGluIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBhbnltb3JlLiBDbGllbnRzIGNhbiBqdXN0CisgICAg
ICAgIGRpcmVjdGx5IGFzayBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBmb3IgdGhlIFdl
YlByb2Nlc3MncyBzZXNzaW9uCisgICAgICAgIElEIGluc3RlYWQuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6QWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpzdGFydERvd25sb2FkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OnN0YXJ0UHJlZmxpZ2h0KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVj
b25uZWN0VG8pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
czo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xv
YWRNZXRyaWNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFy
dE5ldHdvcmtMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b252ZXJ0VG9Eb3dubG9hZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24pOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGlu
Z0xvYWQ6OlBpbmdMb2FkKToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OmxvYWRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUHJlY29ubmVjdFRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6
UHJlY29ubmVjdFRhc2spOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNr
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRp
dmVMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2ZUxv
YWQ6OlNwZWN1bGF0aXZlTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNj
aGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRl
clN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKToKKwogMjAxOS0wOS0xNyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlByb2Nlc3MgY2xhc3MgbWV0aG9kcyBz
aG91bGQgbm90IG5lZWQgdG8gdGFrZSBhIHNlc3Npb25JRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAKaW5k
ZXggOTA5ZWE1MzkxYTRlOGM5NmUzNDUxMjhmYjc0Yzk4N2Y4ZTlkZjRkZi4uZjNlMmYwZTAyNzk1
NWY3ZWRjMTNjMmE2NjE0ZTUwYTM2MTNhY2JjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCkBAIC0x
NjMsNyArMTYzLDcgQEAgdm9pZCBBZENsaWNrQXR0cmlidXRpb25NYW5hZ2VyOjpmaXJlQ29udmVy
c2lvblJlcXVlc3QoY29uc3QgQWRDbGlja0F0dHJpYnV0aW9uJgogCiAgICAgc3RhdGljIHVpbnQ2
NF90IGlkZW50aWZpZXIgPSAwOwogICAgIAotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzIGxvYWRQYXJhbWV0ZXJzIHsgUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSB9
OworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwogICAg
IGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSArK2lkZW50aWZpZXI7CiAgICAgbG9hZFBhcmFt
ZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2lu
ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShjb252ZXJzaW9uUmVmZXJyZXJVUkwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
TWFuYWdlci5jcHAKaW5kZXggNTA3ZjRmNmZmYzNkNDA2OWMxMzc4MjY1Mjc1YzY2MDY1NGI0Yzgz
OS4uMDQyN2YxOWZkNjM3ZDBlYmQ1MzU0YmNiZTg2Mjk3NWM5YTZjNzdjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1h
bmFnZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFydERv
d25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG9hCiAgICAg
aWYgKCFuZXR3b3JrU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMgeyBzZXNzaW9uSUQgfTsKKyAgICBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAg
IHBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9IENsaWVudENyZWRlbnRpYWxQb2xp
Y3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzOwogICAgIGlmIChyZXF1ZXN0LnVybCgpLnBy
b3RvY29sSXNCbG9iKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggYjdjMWFmZWI3NDJm
MmFiMmJjMTcxZTgxNWY1ZmZmMDIzZjkwYjU1NS4uNTdiYmRhYjVkYTc4ZTExMzcyMjlkODlkNWQx
Y2U3MzQxZGFjNzhlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNjMsNyArNjMsNyBA
QCB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6c3RhcnRQcmVmbGlnaHQoKQogewog
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0UHJlZmxpZ2h0Iik7CiAKLSAgICBOZXR3
b3JrTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMgeyBtX3BhcmFtZXRlcnMuc2Vzc2lvbklE
IH07CisgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnJlcXVlc3QgPSBjcmVhdGVBY2Nlc3NDb250cm9sUHJlZmxpZ2h0UmVxdWVzdCht
X3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLCBt
X3BhcmFtZXRlcnMucmVmZXJyZXIpOwogICAgIGlmICghbV9wYXJhbWV0ZXJzLnVzZXJBZ2VudC5p
c051bGwoKSkKICAgICAgICAgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OlVzZXJBZ2VudCwgbV9wYXJhbWV0ZXJzLnVzZXJBZ2VudCk7CkBA
IC03MSw3ICs3MSw3IEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpzdGFydFBy
ZWZsaWdodCgpCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNz
KQogICAgICAgICBtX2xvYWRJbmZvcm1hdGlvbiA9IE5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0
aW9uIHsgTmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb246OlR5cGU6OlByZWZsaWdodCwgbG9h
ZFBhcmFtZXRlcnMucmVxdWVzdCwgeyB9LCB7IH0gfTsKIAotICAgIGlmIChhdXRvKiBuZXR3b3Jr
U2Vzc2lvbiA9IG1fbmV0d29ya1Byb2Nlc3MtPm5ldHdvcmtTZXNzaW9uKGxvYWRQYXJhbWV0ZXJz
LnNlc3Npb25JRCkpIHsKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBtX25ldHdvcmtQ
cm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihtX3BhcmFtZXRlcnMuc2Vzc2lvbklEKSkgewogICAgICAg
ICBtX3Rhc2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSgqbmV0d29ya1Nlc3Npb24sICp0aGlz
LCBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzKSk7CiAgICAgICAgIG1fdGFzay0+cmVzdW1lKCk7CiAg
ICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDE4NjI1YjYzYWI2YjJk
NDdjOTcyNWZmZGY2N2Y2Y2M1YTE3ZWQzNWEuLmZmZTljNGFjMThlYTYwYjhkMTI3MWFiYWM0NDE4
NWEzMWFkM2Q4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00NzcsNyArNDc3
LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlY29ubmVjdFRvKHVp
bnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWUKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMucmVx
dWVzdC5odHRwQm9keSgpKTsKICAgICAKICNpZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCi0g
ICAgbmV3IFByZWNvbm5lY3RUYXNrKG5ldHdvcmtQcm9jZXNzKCksIFdURk1vdmUocGFyYW1ldGVy
cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBw
cmVjb25uZWN0aW9uSWRlbnRpZmllcl0gKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSB7Cisg
ICAgbmV3IFByZWNvbm5lY3RUYXNrKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCgpLCBXVEZN
b3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBp
ZGVudGlmaWVyID0gcHJlY29ubmVjdGlvbklkZW50aWZpZXJdIChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikgewogICAgICAgICBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKGlkZW50aWZpZXIsIGVy
cm9yKTsKICAgICB9KTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCA5MmI4MTI3MzI1MTY2NjI0M2Q4NTFl
YjhhNWFiYzMyODExMzg1ZjI5Li4wNTA0YjIzYmY5ZGQ3YzQ0ZTQ5NGU5NDVhMWEwYWU0ZjIxMjIz
MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmgKQEAgLTQyLDEyICs0Miw2IEBAIGVudW0gY2xhc3MgUHJlY29ubmVjdE9u
bHkgeyBObywgWWVzIH07CiAKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6
Ci0gICAgZXhwbGljaXQgTmV0d29ya0xvYWRQYXJhbWV0ZXJzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKLSAgICAgICAgOiBzZXNzaW9uSUQoc2Vzc2lvbklEKQotICAgIHsKLSAgICB9Ci0KLSAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3
ZWJQYWdlUHJveHlJRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7CiAg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCmluZGV4IDNl
ZmM3N2M4ZWIwYzk0MTExMjQ0NTIxMjM5MjVjN2Y5NWZlZGNmYTQuLjRmN2EwOGFlYjg0NGVjYTYy
OGU3NDZjMmQ2M2ExYjA3OWExNTJhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCkBAIC0yNSw3ICsyNSw2IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCkBAIC0zNSw2
ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIAogdHlwZWRlZiB1
aW50NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNw
cAppbmRleCBkNWZmZWEzMzZjMjY4MTVjMWZmMGI5ZWM1MTdmODdiOTJmMDA0M2FjLi4wMTM4NTYz
ODE1N2RkNGQwNGM2ODg3YTBmODQ2Zjk3NzU3YjBhY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmNwcApAQCAtMzMsNyArMzMsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsKICAgICBlbmNvZGVyIDw8
IGlkZW50aWZpZXI7CiAgICAgZW5jb2RlciA8PCB3ZWJQYWdlUHJveHlJRDsKICAgICBlbmNvZGVy
IDw8IHdlYlBhZ2VJRDsKQEAgLTEwOSwxMyArMTA4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogT3B0
aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM+IE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIE9wdGlvbmFs
PFBBTDo6U2Vzc2lvbklEPiBzZXNzaW9uSUQ7Ci0gICAgZGVjb2RlciA+PiBzZXNzaW9uSUQ7Ci0K
LSAgICBpZiAoIXNlc3Npb25JRCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAg
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc3VsdCB7ICpzZXNzaW9uSUQgfTsKKyAg
ICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXN1bHQ7CiAKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5pZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAppbmRleCAwYzY2OWFlNzhmODAxYjBjZWMzY2FmNjUy
OTM2YjE0Njc1ZmVlYzg2Li4xMjAzNDcwNGRhOTI3YjVhMmZjMWI1Y2VmZTk5YmJmODJiZmRmNTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCkBAIC00MywxMSArNDMsNiBAQCB0eXBlZGVmIHVp
bnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzIDogcHVibGljIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQotICAgICAgICA6IE5ldHdvcmtMb2FkUGFyYW1ldGVycyhzZXNzaW9uSUQpCi0g
ICAgewotICAgIH0KLQogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAg
IHN0YXRpYyBPcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4gZGVjb2RlKElQ
Qzo6RGVjb2RlciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggY2RlOWYyMDVhOTU1OGVkODlkZDcwNzhk
ZWY0ZDM3ZDc2ZGM5YzI4OS4uZGU4OWExNmYwMTdiMmYyOTdmNmQwNDE5NzQwMDdkZjY0MWU3MjU4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6TmV0d29ya1Jlc291cmNlTG9hZGVyKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYg
cGFyCiAKICAgICBpZiAoc3luY2hyb25vdXNSZXBseSB8fCBwYXJhbWV0ZXJzLnNob3VsZFJlc3Ry
aWN0SFRUUFJlc3BvbnNlQWNjZXNzIHx8IHBhcmFtZXRlcnMub3B0aW9ucy5rZWVwQWxpdmUpIHsK
ICAgICAgICAgTmV0d29ya0xvYWRDaGVja2VyOjpMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBp
c01haW5GcmFtZUxvYWQoKSA/IE5ldHdvcmtMb2FkQ2hlY2tlcjo6TG9hZFR5cGU6Ok1haW5GcmFt
ZSA6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6TG9hZFR5cGU6Ok90aGVyOwotICAgICAgICBtX25ldHdv
cmtMb2FkQ2hlY2tlciA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWRDaGVja2VyPihjb25uZWN0aW9u
Lm5ldHdvcmtQcm9jZXNzKCksIEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25zIH0s
IG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgSFRU
UEhlYWRlck1hcCB7IG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJzIH0sIFVSTCB7
IG1fcGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4u
Y29weVJlZigpLCBtX3BhcmFtZXRlcnMudG9wT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJz
LnByZWZsaWdodFBvbGljeSwgb3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIG1fcGFy
YW1ldGVycy5pc0hUVFBTVXBncmFkZUVuYWJsZWQsIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcygpLCByZXF1ZXN0TG9hZFR5cGUpOworICAgICAgICBtX25ldHdvcmtMb2FkQ2hl
Y2tlciA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWRDaGVja2VyPihjb25uZWN0aW9uLm5ldHdvcmtQ
cm9jZXNzKCksIEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5vcHRpb25zIH0sIHNlc3Npb25J
RCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIEhUVFBIZWFkZXJNYXAgeyBtX3BhcmFt
ZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyB9LCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVz
dC51cmwoKSB9LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0
ZXJzLnRvcE9yaWdpbi5jb3B5UmVmKCksIG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQb2xpY3ksIG9y
aWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBtX3BhcmFtZXRlcnMuaXNIVFRQU1VwZ3Jh
ZGVFbmFibGVkLCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSwgcmVxdWVz
dExvYWRUeXBlKTsKICAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5jc3BSZXNwb25zZUhlYWRlcnMp
CiAgICAgICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+c2V0Q1NQUmVzcG9uc2VIZWFkZXJz
KENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IG1fcGFyYW1ldGVycy5jc3BS
ZXNwb25zZUhlYWRlcnMudmFsdWUoKSB9KTsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQpAQCAtMzAxLDE0ICszMDEsMTQgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0
TmV0d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICBpZiAo
cGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeTo6VXNlICYmIG1fbmV0d29ya0xvYWRDaGVja2VyKQogICAgICAgICBwYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gbV9uZXR3b3JrTG9hZENoZWNrZXItPnN0
b3JlZENyZWRlbnRpYWxzUG9saWN5KCk7CiAKLSAgICBhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG1f
Y29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNl
c3Npb25JRCk7Ci0gICAgaWYgKCFuZXR3b3JrU2Vzc2lvbiAmJiBwYXJhbWV0ZXJzLnNlc3Npb25J
RC5pc0VwaGVtZXJhbCgpKSB7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3Mo
KS5hZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpwcml2YXRl
U2Vzc2lvblBhcmFtZXRlcnMocGFyYW1ldGVycy5zZXNzaW9uSUQpKTsKLSAgICAgICAgbmV0d29y
a1Nlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24o
cGFyYW1ldGVycy5zZXNzaW9uSUQpOworICAgIGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbV9jb25u
ZWN0aW9uLT5uZXR3b3JrU2Vzc2lvbigpOworICAgIGlmICghbmV0d29ya1Nlc3Npb24gJiYgc2Vz
c2lvbklEKCkuaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQ
cm9jZXNzKCkuYWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6
cHJpdmF0ZVNlc3Npb25QYXJhbWV0ZXJzKHNlc3Npb25JRCgpKSk7CisgICAgICAgIG5ldHdvcmtT
ZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNl
c3Npb25JRCgpKTsKICAgICB9CiAgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikgewotICAgICAgICBX
VEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vz
c2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgcGFyYW1ldGVycy5z
ZXNzaW9uSUQudG9VSW50NjQoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9X
RUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3
aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25J
RD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBw
YXJhbWV0ZXJzLnNlc3Npb25JRC50b1VJbnQ2NCgpKTsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJB
dHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBS
SXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHNlc3Npb25JRCgpLnRvVUludDY0KCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBB
dHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2Vz
IG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgc2Vzc2lvbklEKCkudG9VSW50NjQoKSk7
CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVz
c2FnZShtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dn
aW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OmludmFsaWRTZXNzaW9uSURLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAg
ICAgICAgIGRpZEZhaWxMb2FkaW5nKGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAg
ICAgICByZXR1cm47CkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3UK
ICAgICAKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUgZnJvbSB0
aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKLSAgICAgICAgbV9jb25u
ZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQo
bV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVxdWVzdCk7CisgICAgICAgIG1f
Y29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25s
b2FkKHNlc3Npb25JRCgpLCBkb3dubG9hZElELCByZXF1ZXN0KTsKICAgICAgICAgYWJvcnQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IGU2MWI2OWQyNzJiODVkZTg4NzYx
OGFkNDkxMTNjMmRlOTQ0MTk0OTEuLmQ2NTA3MmI3MmJkNDEzMTQxYTA2YjI4N2M0NTI2OWJlNDJh
ZjA3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkSUQu
aCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgi
CisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0xvYWRDbGllbnQuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5o
IgpAQCAtODMsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlOyB9CiAKICAgICBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNv
bnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQotICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQ7IH0KKyAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24tPnNlc3Npb25J
RCgpOyB9CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXI7IH0KICAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9
CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBjM2VlODYzMjk5ZjViY2E4NjkyMjU2OTI1MTAzODk0
YWM4Y2Q0ZTBjLi5iMTU1MGFlZGMwNzU5N2UxNGNjODFlOWFiYTgzZjY3NTdmOTk4YjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAt
MTAxLDcgKzEwMSw3IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIGNvbnN0IE5ldHdvcmtTZXNzCiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIFBpbmdMb2FkIG1hbmFnZXMg
aXRzIG93biBsaWZldGltZSwgZGVsZXRpbmcgaXRzZWxmIHdoZW4gaXRzIHB1cnBvc2UgaGFzIGJl
ZW4gZnVsZmlsbGVkLgotICAgICAgICBuZXcgUGluZ0xvYWQobV9uZXR3b3JrUHJvY2VzcywgV1RG
TW92ZShsb2FkUGFyYW1ldGVycyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAg
ICAgbmV3IFBpbmdMb2FkKG1fbmV0d29ya1Byb2Nlc3MsIG1fc2Vzc2lvbklELCBXVEZNb3ZlKGxv
YWRQYXJhbWV0ZXJzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIH0pOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IGYyNWY0M2E1
NzA2MDM5MWFhNDliNzA0MmUzYjEzMzU3YTgzOGZhMmUuLjAwMzc5YTM5YWQ3ZjIxZjI4YWJiZTJj
NzkxODM4M2Y3MWNmMDk2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xv
YWQuY3BwCkBAIC0zNCwyNiArMzQsMjggQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgog
I2luY2x1ZGUgIldlYkVycm9ycy5oIgogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
Zm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQuaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIFBpbmdMb2FkOjoiIGZtdCwgdGhpcywg
IyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikg
UkVMRUFTRV9MT0dfSUYobV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5l
dHdvcmssICIlcCAtIFBpbmdMb2FkOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1QaW5nTG9hZDo6
UGluZ0xvYWQoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
UmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKLSAgICA6IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorUGluZ0xvYWQ6
OlBpbmdMb2FkKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICA6IG1fc2Vzc2lvbklEKHNlc3Np
b25JRCkKKyAgICAsIG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQogICAgICwgbV9j
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICAsIG1fdGlt
ZW91dFRpbWVyKCp0aGlzLCAmUGluZ0xvYWQ6OnRpbWVvdXRUaW1lckZpcmVkKQotICAgICwgbV9u
ZXR3b3JrTG9hZENoZWNrZXIobWFrZVVuaXF1ZVJlZjxOZXR3b3JrTG9hZENoZWNrZXI+KG5ldHdv
cmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0aW9uc30sIG1fcGFyYW1l
dGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgV1RGTW92ZShtX3Bh
cmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksIFVSTCB7IG1fcGFyYW1ldGVycy5yZXF1
ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBtX3BhcmFt
ZXRlcnMudG9wT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBvbGljeSwg
bV9wYXJhbWV0ZXJzLnJlcXVlc3QuaHR0cFJlZmVycmVyKCkpKQorICAgICwgbV9uZXR3b3JrTG9h
ZENoZWNrZXIobWFrZVVuaXF1ZVJlZjxOZXR3b3JrTG9hZENoZWNrZXI+KG5ldHdvcmtQcm9jZXNz
LCBGZXRjaE9wdGlvbnMgeyBtX3BhcmFtZXRlcnMub3B0aW9uc30sIG1fc2Vzc2lvbklELCBtX3Bh
cmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIFdURk1vdmUobV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVx
dWVzdEhlYWRlcnMpLCBVUkwgeyBtX3BhcmFtZXRlcnMucmVxdWVzdC51cmwoKSB9LCBtX3BhcmFt
ZXRlcnMuc291cmNlT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbi5jb3B5
UmVmKCksIG1fcGFyYW1ldGVycy5wcmVmbGlnaHRQb2xpY3ksIG1fcGFyYW1ldGVycy5yZXF1ZXN0
Lmh0dHBSZWZlcnJlcigpKSkKIHsKICAgICBpbml0aWFsaXplKG5ldHdvcmtQcm9jZXNzKTsKIH0K
IAogUGluZ0xvYWQ6OlBpbmdMb2FkKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25u
ZWN0aW9uLCBOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBS
ZXNvdXJjZUVycm9yJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotICAgIDogbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgOiBtX3Nl
c3Npb25JRChjb25uZWN0aW9uLnNlc3Npb25JRCgpKQorICAgICwgbV9wYXJhbWV0ZXJzKFdURk1v
dmUocGFyYW1ldGVycykpCiAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKQogICAgICwgbV90aW1lb3V0VGltZXIoKnRoaXMsICZQaW5nTG9hZDo6dGlt
ZW91dFRpbWVyRmlyZWQpCi0gICAgLCBtX25ldHdvcmtMb2FkQ2hlY2tlcihtYWtlVW5pcXVlUmVm
PE5ldHdvcmtMb2FkQ2hlY2tlcj4obmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyB7IG1fcGFy
YW1ldGVycy5vcHRpb25zfSwgbV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VQcm94eUlELCBXVEZNb3ZlKG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3RIZWFkZXJz
KSwgVVJMIHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkgfSwgbV9wYXJhbWV0ZXJzLnNvdXJj
ZU9yaWdpbi5jb3B5UmVmKCksIG1fcGFyYW1ldGVycy50b3BPcmlnaW4uY29weVJlZigpLCBtX3Bh
cmFtZXRlcnMucHJlZmxpZ2h0UG9saWN5LCBtX3BhcmFtZXRlcnMucmVxdWVzdC5odHRwUmVmZXJy
ZXIoKSkpCisgICAgLCBtX25ldHdvcmtMb2FkQ2hlY2tlcihtYWtlVW5pcXVlUmVmPE5ldHdvcmtM
b2FkQ2hlY2tlcj4obmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyB7IG1fcGFyYW1ldGVycy5v
cHRpb25zfSwgbV9zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgV1RGTW92
ZShtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksIFVSTCB7IG1fcGFyYW1ldGVy
cy5yZXF1ZXN0LnVybCgpIH0sIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4uY29weVJlZigpLCBt
X3BhcmFtZXRlcnMudG9wT3JpZ2luLmNvcHlSZWYoKSwgbV9wYXJhbWV0ZXJzLnByZWZsaWdodFBv
bGljeSwgbV9wYXJhbWV0ZXJzLnJlcXVlc3QuaHR0cFJlZmVycmVyKCkpKQogICAgICwgbV9ibG9i
RmlsZXMoY29ubmVjdGlvbi5yZXNvbHZlQmxvYlJlZmVyZW5jZXMobV9wYXJhbWV0ZXJzKSkKIHsK
ICAgICBmb3IgKGF1dG8mIGZpbGUgOiBtX2Jsb2JGaWxlcykgewpAQCAtMTE3LDcgKzExOSw3IEBA
IHZvaWQgUGluZ0xvYWQ6OmRpZEZpbmlzaChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzCiB2b2lkIFBpbmdMb2FkOjpsb2FkUmVxdWVzdChOZXR3
b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7
CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZCIpOwotICAgIGlm
IChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzLm5ldHdvcmtTZXNzaW9uKG1f
cGFyYW1ldGVycy5zZXNzaW9uSUQpKSB7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0g
bmV0d29ya1Byb2Nlc3MubmV0d29ya1Nlc3Npb24obV9zZXNzaW9uSUQpKSB7CiAgICAgICAgIGF1
dG8gbG9hZFBhcmFtZXRlcnMgPSBtX3BhcmFtZXRlcnM7CiAgICAgICAgIGxvYWRQYXJhbWV0ZXJz
LnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgICAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0
YVRhc2s6OmNyZWF0ZSgqbmV0d29ya1Nlc3Npb24sICp0aGlzLCBXVEZNb3ZlKGxvYWRQYXJhbWV0
ZXJzKSk7CkBAIC0xNDgsNyArMTUwLDcgQEAgdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxs
ZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgQ2hhbGxlbmcKIHsKICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQ2hhbGxlbmdlIik7CiAgICAgaWYg
KGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVx
dWVzdGVkKSB7Ci0gICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5uZXR3b3JrUHJvY2Vzcygp
LmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShtX3BhcmFtZXRlcnMuc2Vzc2lvbklELCBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsICBt
X3BhcmFtZXRlcnMudG9wT3JpZ2luID8gJm1fcGFyYW1ldGVycy50b3BPcmlnaW4tPmRhdGEoKSA6
IG51bGxwdHIsIGNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAg
ICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+bmV0d29ya1Byb2Nlc3MoKS5hdXRoZW50aWNhdGlvbk1h
bmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9zZXNzaW9uSUQsIG1f
cGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgIG1fcGFyYW1ldGVycy50b3BPcmlnaW4gPyAmbV9w
YXJhbWV0ZXJzLnRvcE9yaWdpbi0+ZGF0YSgpIDogbnVsbHB0ciwgY2hhbGxlbmdlLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UGluZ0xvYWQuaAppbmRleCA1MDU5MmI3NTI5OGUyZGQzNTIxY2NlNjgwMDkwNWZiOGFhZjVjYjFk
Li4xNTZhNjVkMGE3YzgyNmE3YjFkOGI5N2JiMTQyMWIyNDBiNWI0YTFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCkBAIC00MSw4ICs0MSw4IEBAIGNsYXNzIE5ldHdv
cmtQcm9jZXNzOwogCiBjbGFzcyBQaW5nTG9hZCBmaW5hbCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxQaW5nTG9hZD4sIHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKIHB1YmxpYzoKKyAg
ICBQaW5nTG9hZChOZXR3b3JrUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik+JiYpOwog
ICAgIFBpbmdMb2FkKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTmV0d29ya1Byb2Nl
c3MmLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJik+JiYpOwotICAgIFBpbmdMb2FkKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYm
KTsKIAogcHJpdmF0ZToKICAgICB+UGluZ0xvYWQoKTsKQEAgLTY1LDYgKzY1LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgZGlkRmluaXNoKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImID0g
eyB9LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSA9IHsgfSk7CiAg
ICAgCisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKICAgICBSZWZQdHI8TmV0d29ya0RhdGFUYXNr
PiBtX3Rhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNv
bm5lY3RUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRh
c2suY3BwCmluZGV4IDJjNjQyN2U2NDgyMmNlZjVkMWE4MTIwMjVlZmQ2Yzg1NDU0MWNlODcuLmY5
ZmE1ZjgxZDZkOTY3YzMwZGQ5OTA1ZTU0YzZhOTIxMTYzMTQ5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwCkBAIC0zOSwxMyArMzksMTMg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1QcmVj
b25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
LCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IFJlc291cmNlRXJyb3ImKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK1ByZWNvbm5l
Y3RUYXNrOjpQcmVjb25uZWN0VGFzayhOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVy
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZUVycm9yJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiAgICAgOiBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKQogICAgICwgbV90aW1lb3V0VGltZXIoW3RoaXNdIHsgZGlkRmluaXNoKFJlc291
cmNlRXJyb3IgeyBTdHJpbmcoKSwgMCwgbV9uZXR3b3JrTG9hZC0+cGFyYW1ldGVycygpLnJlcXVl
c3QudXJsKCksICJQcmVjb25uZWN0aW9uIHRpbWVkIG91dCJfcywgUmVzb3VyY2VFcnJvcjo6VHlw
ZTo6VGltZW91dCB9KTsgfSkKIHsKICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVj
b25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soKSIsIHRoaXMpOwogCi0gICAgYXV0byogbmV0d29y
a1Nlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcy5uZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Np
b25JRCk7CisgICAgYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcy5uZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpOwogICAgIGlmICghbmV0d29ya1Nlc3Npb24pIHsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIG1fY29tcGxldGlvbkhhbmRsZXIoaW50ZXJu
YWxFcnJvcihwYXJhbWV0ZXJzLnJlcXVlc3QudXJsKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaAppbmRleCA1NjU4YTZlZGJmZGM2MDJmM2Q0YTlh
NDkxYTljM2EyYjgyZDJmNWEzLi4wYmY3MDk0M2I0MjQ1OTdlMjRiMGFiZGM0NGM5MWRiMDFiM2Y3
NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RU
YXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5o
CkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogCiBjbGFzcyBQcmVjb25u
ZWN0VGFzayBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrTG9hZENsaWVudCB7CiBwdWJsaWM6Ci0gICAg
ZXhwbGljaXQgUHJlY29ubmVjdFRhc2soTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJik+JiYgY29tcGxldGlvbkhhbmRsZXIgPSB7IH0pOworICAgIFByZWNvbm5lY3RUYXNrKE5l
dHdvcmtQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKT4mJiBj
b21wbGV0aW9uSGFuZGxlciA9IHsgfSk7CiAgICAgflByZWNvbm5lY3RUYXNrKCk7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZC5jcHAKaW5kZXggYzkxMzUwZTE1ZGY2
YWMyYTUwYWIxYzFiYTUwODMzMzc3YTM2OGU4Yy4uNmM3MmZhYmU3MmUzNTk0NDhhN2MxYjI5MWNk
OTBlOTUwZTViYmU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcApAQCAt
NTIsNyArNTIsNyBAQCBTcGVjdWxhdGl2ZUxvYWQ6OlNwZWN1bGF0aXZlTG9hZChDYWNoZSYgY2Fj
aGUsIGNvbnN0IEdsb2JhbEZyYW1lSUQmIGdsb2JhbEZyYW1lSQogewogICAgIEFTU0VSVCghbV9j
YWNoZUVudHJ5IHx8IG1fY2FjaGVFbnRyeS0+bmVlZHNWYWxpZGF0aW9uKCkpOwogCi0gICAgTmV0
d29ya0xvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgeyBjYWNoZS5zZXNzaW9uSUQoKSB9OworICAg
IE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogICAgIHBhcmFtZXRlcnMud2ViUGFn
ZVByb3h5SUQgPSBnbG9iYWxGcmFtZUlELndlYlBhZ2VQcm94eUlEOwogICAgIHBhcmFtZXRlcnMu
d2ViUGFnZUlEID0gZ2xvYmFsRnJhbWVJRC53ZWJQYWdlSUQ7CiAgICAgcGFyYW1ldGVycy53ZWJG
cmFtZUlEID0gZ2xvYmFsRnJhbWVJRC5mcmFtZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDU1YjM3YzI5
M2MxNWQ5ZmE5MmJkNzU0ZjkzZjM5ZGZlMjM0NzIwNTguLmQ3ZjA1MjM0NWU2YTM1NjM0YjY5MDI4
M2ZlMjlmNTUyODFmNWUyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3Vy
Y2VMb2FkZXImIHJlc291cmNlTAogICAgIENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IGNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkU25pZmZD
b250ZW50RW5jb2RpbmcoKSA/IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZiA6
IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmOwogICAgIFN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gcmVzb3VyY2VMb2FkZXIu
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpV
c2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAKLSAgICBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyB7IHNlc3Npb25JRCB9OworICAgIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwogICAgIGxvYWRQYXJh
bWV0ZXJzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBh
Z2VQcm94eUlEID0gdHJhY2tpbmdQYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQ7CkBAIC01NTUs
NyArNTU1LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzIHsg
c2Vzc2lvbklEIH07CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFt
ZXRlcnM7CiAgICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IHJlc291cmNlTG9hZElkZW50
aWZpZXI7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQgPSB3ZWJQYWdlUHJveHlJ
RDsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSBwYWdlSUQ7CkBAIC02MjQsNyArNjI0
LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUs
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzIHsgZnJhbWUu
cGFnZSgpID8gZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkgfTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2Fk
UGFyYW1ldGVyczsKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gZ2VuZXJhdGVMb2Fk
SWRlbnRpZmllcigpOwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAg
IGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiA9ICZkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4o
KTsKQEAgLTY4NCw3ICs2ODQsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0
VG8oRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCBjb25zdCBVUkwmIHVybCwgUwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcGFyYW1l
dGVycyB7IHdlYlBhZ2UtPnNlc3Npb25JRCgpIH07CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBSZXNvdXJjZVJl
cXVlc3QgeyB1cmwgfTsKICAgICBwYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlEID0gd2ViUGFnZS0+
d2ViUGFnZVByb3h5SWRlbnRpZmllcigpOwogICAgIHBhcmFtZXRlcnMud2ViUGFnZUlEID0gd2Vi
UGFnZS0+aWRlbnRpZmllcigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>