<?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>206104</bug_id>
          
          <creation_ts>2020-01-10 15:38:13 -0800</creation_ts>
          <short_desc>Expose frame information on _WKResourceLoadInfo</short_desc>
          <delta_ts>2020-01-11 17:48:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1605352</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-01-10 15:38:13 -0800</bug_when>
    <thetext>Expose frame information on _WKResourceLoadInfo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605358</commentid>
    <comment_count>1</comment_count>
      <attachid>387387</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-01-10 15:43:17 -0800</bug_when>
    <thetext>Created attachment 387387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605371</commentid>
    <comment_count>2</comment_count>
      <attachid>387390</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-01-10 16:14:15 -0800</bug_when>
    <thetext>Created attachment 387390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605404</commentid>
    <comment_count>3</comment_count>
      <attachid>387398</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-01-10 16:57:50 -0800</bug_when>
    <thetext>Created attachment 387398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605558</commentid>
    <comment_count>4</comment_count>
      <attachid>387398</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-01-11 12:37:08 -0800</bug_when>
    <thetext>Comment on attachment 387398
Patch

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

&gt; Source/WebKit/Shared/API/Cocoa/_WKFrameHandle.mm:93
&gt; +    [coder encodeObject:@([self frameID]) forKey:@&quot;frameID&quot;];

self.frameID ?

&gt; Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:596
&gt; -    if (page)
&gt; -        loadParameters.pageHasResourceLoadClient = page-&gt;hasResourceLoadClient();
&gt; +    addParametersFromFrame(webFrame-&gt;coreFrame(), loadParameters);

I assume it is totally ok that the loadParameters here might get .isHTTPSUpgradeEnabled set now, when it didn&apos;t before?

&gt; Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:662
&gt; +    addParametersFromFrame(&amp;frame, loadParameters);

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605588</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-01-11 17:42:06 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #4)
&gt; I assume it is totally ok that the loadParameters here might get
&gt; .isHTTPSUpgradeEnabled set now, when it didn&apos;t before?
Yes, that was an oversight before.  We want https upgrade for sync xhr and beacon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605590</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-01-11 17:47:04 -0800</bug_when>
    <thetext>http://trac.webkit.org/r254409</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605591</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-11 17:48:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/58507584&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387387</attachid>
            <date>2020-01-10 15:43:17 -0800</date>
            <delta_ts>2020-01-10 16:14:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206104-20200110154316.patch</filename>
            <type>text/plain</type>
            <size>24932</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAxLTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGZy
YW1lIGluZm9ybWF0aW9uIG9uIF9XS1Jlc291cmNlTG9hZEluZm8KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEwNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTcxMzIyOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lSWRl
bnRpZmllci5oOgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKTogRGVs
ZXRlZC4KKwogMjAyMC0wMS0xMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEZpeCBhY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1t
YWtlLXZpc2libGUtaWZyYW1lLW9mZnNjcmVlbi5odG1sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVJZGVudGlmaWVyLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDkgKzMyLDQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogZW51bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIEZy
YW1lSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47CiAK
LWlubGluZSBGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90IGZy
YW1lSUQpCi17Ci0gICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmll
clR5cGU+KGZyYW1lSUQpOwotfQotCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU0MzQ1KQor
KysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBA
QAorMjAyMC0wMS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIEV4cG9zZSBmcmFtZSBpbmZvcm1hdGlvbiBvbiBfV0tSZXNvdXJjZUxvYWRJ
bmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYx
MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MTMyMjkwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnJlc291cmNlTG9hZEluZm8pOgorICAgICAgICAqIFNoYXJlZC9BUEkv
Q29jb2EvX1dLRnJhbWVIYW5kbGUuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0Zy
YW1lSGFuZGxlLm1tOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBmcmFtZUlEXSk6CisgICAg
ICAgICgtW19XS0ZyYW1lSGFuZGxlIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW19XS0Zy
YW1lSGFuZGxlIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5kbGUg
X2ZyYW1lSURdKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1l
SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBTaGFyZWQvUmVzb3VyY2VMb2FkSW5mby5oOgor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJUmVzb3VyY2VMb2FkSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3Igc2hvd01haW5SZXNv
dXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3Vy
Y2VMb2FkSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VM
b2FkSW5mby5tbToKKyAgICAgICAgKC1bX1dLUmVzb3VyY2VMb2FkSW5mbyBmcmFtZV0pOgorICAg
ICAgICAoLVtfV0tSZXNvdXJjZUxvYWRJbmZvIHBhcmVudEZyYW1lXSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Nh
bkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3ByaW50T3BlcmF0
aW9uV2l0aFByaW50SW5mbzpmb3JGcmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAgICgtW1dLUmVs
b2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6XSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW06Cisg
ICAgICAgICgrW1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIGxvb2tVcEZyYW1lRnJvbUhhbmRsZTpd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgor
ICAgICAgICAoV2ViS2l0OjphZGRQYXJhbWV0ZXJzRnJvbUZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjppbnN0YWxsU2VydmljZVdvcmtlcik6CisKIDIwMjAtMDEtMTAgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBFeHBhbmQgX1dLUmVzb3VyY2VM
b2FkRGVsZWdhdGUgY2FsbGJhY2tzCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAko
cmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcs
NyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvCiAgICAgZW5jb2Rl
ciA8PCBmcmFtZUFuY2VzdG9yT3JpZ2luczsKICAgICBlbmNvZGVyIDw8IGlzSFRUUFNVcGdyYWRl
RW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQ7CisgICAg
ZW5jb2RlciA8PCBwYXJlbnRGcmFtZUlEOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
ICAgIGVuY29kZXIgPDwgc2VydmljZVdvcmtlcnNNb2RlOwpAQCAtMjU1LDYgKzI1NiwxMiBAQCBP
cHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4gCiAgICAgaWYgKCFwYWdlSGFz
UmVzb3VyY2VMb2FkQ2xpZW50KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHJl
c3VsdC5wYWdlSGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gKnBhZ2VIYXNSZXNvdXJjZUxvYWRDbGll
bnQ7CisgICAgCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gcGFyZW50
RnJhbWVJRDsKKyAgICBkZWNvZGVyID4+IHBhcmVudEZyYW1lSUQ7CisgICAgaWYgKCFwYXJlbnRG
cmFtZUlEKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC5wYXJlbnRG
cmFtZUlEID0gV1RGTW92ZSgqcGFyZW50RnJhbWVJRCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgT3B0aW9uYWw8U2VydmljZVdvcmtlcnNNb2RlPiBzZXJ2aWNlV29ya2Vyc01v
ZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTQzNDUpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiBmcmFtZUFuY2VzdG9yT3JpZ2luczsKICAg
ICBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBwYWdlSGFz
UmVzb3VyY2VMb2FkQ2xpZW50IHsgZmFsc2UgfTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgV2ViQ29yZTo6U2VydmljZVdvcmtlcnNNb2RlIHNlcnZpY2VXb3JrZXJzTW9kZSB7IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSB9OwpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAkocmV2
aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYsNyArMzM2LDkgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29yawogUmVzb3VyY2VMb2FkSW5mbyBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlTG9hZEluZm8oKQogewogICAgIHJldHVybiB7Ci0g
ICAgICAgIG1fcmVzb3VyY2VMb2FkSUQKKyAgICAgICAgbV9yZXNvdXJjZUxvYWRJRCwKKyAgICAg
ICAgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsCisgICAgICAgIG1fcGFyYW1ldGVycy5wYXJlbnRG
cmFtZUlELAogICAgIH07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNl
TG9hZEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxv
YWRJbmZvLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291
cmNlTG9hZEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTYgKzI3LDIxIEBACiAKICNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHN0cnVjdCBSZXNvdXJjZUxvYWRJbmZvIHsKIAogICAgIE5ldHdvcmtS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlTG9hZElEOworICAgIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiAgICAgCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJj
ZUxvYWRJRDsKKyAgICAgICAgZW5jb2RlciA8PCBmcmFtZUlEOworICAgICAgICBlbmNvZGVyIDw8
IHBhcmVudEZyYW1lSUQ7CiAgICAgfQogCiAgICAgc3RhdGljIE9wdGlvbmFsPFJlc291cmNlTG9h
ZEluZm8+IGRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC00Niw4ICs1MSwyMCBAQCBz
dHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbyB7CiAgICAgICAgIGlmICghcmVzb3VyY2VMb2FkSUQpCiAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAgICAgIE9wdGlvbmFsPE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CisgICAgICAgIGRlY29kZXIg
Pj4gZnJhbWVJRDsKKyAgICAgICAgaWYgKCFmcmFtZUlEKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+PiBwYXJlbnRGcmFtZUlEOworICAgICAgICBkZWNvZGVyID4+IHBhcmVudEZyYW1l
SUQ7CisgICAgICAgIGlmICghcGFyZW50RnJhbWVJRCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKICAgICAgICAgcmV0dXJuIHt7CiAgICAgICAgICAgICBXVEZNb3ZlKCpyZXNv
dXJjZUxvYWRJRCksCisgICAgICAgICAgICBXVEZNb3ZlKCpmcmFtZUlEKSwKKyAgICAgICAgICAg
IFdURk1vdmUoKnBhcmVudEZyYW1lSUQpLAogICAgICAgICB9fTsKICAgICB9CiB9OwpJbmRleDog
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgJKHJl
dmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFt
ZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw0ICszMCw2IEBACiBXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUg
OiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KIAorQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSB1aW50NjRfdCBmcmFtZUlEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0JKHJldmlzaW9uIDI1
NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogCi1AaW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUgewotICAg
IEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7Ci19CitA
aW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUKIAogLSAodm9pZClkZWFsbG9jCiB7CkBAIC01
NSw3ICs1Myw3IEBAIC0gKE5TVUludGVnZXIpaGFzaAogICAgIHJldHVybiBfZnJhbWVIYW5kbGUt
PmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCi0tICh1aW50NjRfdClfZnJhbWVJRAorLSAodWlu
dDY0X3QpZnJhbWVJRAogewogICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJ
bnQ2NCgpOwogfQpAQCAtODUsMTQgKzgzLDE0IEBAIC0gKGlkKWluaXRXaXRoQ29kZXI6KE5TQ29k
ZXIgKilkZWNvZGVyCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgQVBJOjpPYmpl
Y3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBXZWJDb3JlOjpm
cmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUpLCBmYWxz
ZSk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxl
PihzZWxmLCBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBl
PihmcmFtZUlELnVuc2lnbmVkTG9uZ0xvbmdWYWx1ZSksIGZhbHNlKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQogCiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0g
ICAgW2NvZGVyIGVuY29kZU9iamVjdDpAKFtzZWxmIF9mcmFtZUlEXSkgZm9yS2V5OkAiZnJhbWVJ
RCJdOworICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6QChbc2VsZiBmcmFtZUlEXSkgZm9yS2V5OkAi
ZnJhbWVJRCJdOwogfQogCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50
YXRpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRs
ZUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaAkocmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsOCArMzYsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEFQ
STo6RnJhCiAKIH0KIAotQGludGVyZmFjZSBfV0tGcmFtZUhhbmRsZSAoKSA8V0tPYmplY3Q+Ci0K
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdWludDY0X3QgX2ZyYW1lSUQ7Ci0KK0Bp
bnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUgKCkgPFdLT2JqZWN0PiB7CitAcGFja2FnZQorICAgIEFQ
STo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7Cit9CiBAZW5k
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkSW5mby5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElSZXNvdXJjZUxv
YWRJbmZvLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElSZXNvdXJjZUxvYWRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAg
cHVibGljOgogICAgIH0KIAogICAgIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZp
ZXIgcmVzb3VyY2VMb2FkSUQoKSBjb25zdCB7IHJldHVybiBtX2luZm8ucmVzb3VyY2VMb2FkSUQ7
IH0KKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX2luZm8uZnJhbWVJRDsgfQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gcGFyZW50RnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5wYXJlbnRG
cmFtZUlEOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVzb3VyY2VMb2FkSW5mbyhXZWJL
aXQ6OlJlc291cmNlTG9hZEluZm8mJiBpbmZvKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCShyZXZpc2lvbiAyNTQzNDUpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgLSAodm9pZClzaG93UmVzb3VyY2VzCiAtICh2
b2lkKXNob3dNYWluUmVzb3VyY2VGb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZQogewog
ICAgIGlmIChhdXRvKiBwYWdlID0gX2luc3BlY3Rvci0+aW5zcGVjdGVkUGFnZSgpKQotICAgICAg
ICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndl
YkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsK
KyAgICAgICAgX2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nl
c3MoKS53ZWJGcmFtZShmcmFtZS0+X2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkpKTsKIH0KIAogLSAo
dm9pZClhdHRhY2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tS
ZXNvdXJjZUxvYWRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8uaAkocmV2aXNpb24gMjU0MzQ1KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSB1aW50NjRfdCByZXNvdXJjZUxvYWRJRDsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLRnJhbWVIYW5kbGUqIGZyYW1lOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgX1dLRnJhbWVIYW5kbGUqIHBh
cmVudEZyYW1lOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCShyZXZpc2lvbiAyNTQz
NDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VMb2Fk
SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsOSBAQAogI2ltcG9ydCAiY29uZmln
LmgiCiAjaW1wb3J0ICJfV0tSZXNvdXJjZUxvYWRJbmZvLmgiCiAKKyNpbXBvcnQgIkFQSUZyYW1l
SGFuZGxlLmgiCiAjaW1wb3J0ICJBUElSZXNvdXJjZUxvYWRJbmZvLmgiCisjaW1wb3J0ICJfV0tG
cmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tSZXNvdXJjZUxvYWRJbmZvSW50ZXJu
YWwuaCIKIAogQGltcGxlbWVudGF0aW9uIF9XS1Jlc291cmNlTG9hZEluZm8KQEAgLTQyLDYgKzQ0
LDIwIEBAIC0gKHVpbnQ2NF90KXJlc291cmNlTG9hZElECiAgICAgcmV0dXJuIF9pbmZvLT5yZXNv
dXJjZUxvYWRJRCgpLnRvVUludDY0KCk7CiB9CiAKKy0gKF9XS0ZyYW1lSGFuZGxlICopZnJhbWUK
K3sKKyAgICBpZiAoYXV0byBmcmFtZUlEID0gX2luZm8tPmZyYW1lSUQoKSkKKyAgICAgICAgcmV0
dXJuIHdyYXBwZXIoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKCpmcmFtZUlEKSk7CisgICAgcmV0
dXJuIG5pbDsKK30KKworLSAoX1dLRnJhbWVIYW5kbGUgKilwYXJlbnRGcmFtZQoreworICAgIGlm
IChhdXRvIHBhcmVudEZyYW1lSUQgPSBfaW5mby0+cGFyZW50RnJhbWVJRCgpKQorICAgICAgICBy
ZXR1cm4gd3JhcHBlcihBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGUoKnBhcmVudEZyYW1lSUQpKTsK
KyAgICByZXR1cm4gbmlsOworfQorCiAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAogewogICAg
IHJldHVybiAqX2luZm87CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dL
V2ViVmlld01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
bWFjL1dLV2ViVmlld01hYy5tbQkocmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0NjEs
NyArMTQ2MSw3IEBAIC0gKHZvaWQpX3NldFNob3VsZFN1cHByZXNzRmlyc3RSZXNwb25kZXIKIAog
LSAoQk9PTClfY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVIYW5k
bGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2Vi
RnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFuZGxlLl9mcmFtZUlE
KSkpCisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZy
YW1lKGZyYW1lSGFuZGxlLT5fZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkpCiAgICAgICAgIHJldHVy
biBfaW1wbC0+Y2FuQ2hhbmdlRnJhbWVMYXlvdXQoKndlYkZyYW1lUHJveHkpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KQEAgLTE1NDgsNyArMTU0OCw3IEBAIC0gKE5TUHJpbnRPcGVyYXRpb24gKilf
cHJpbnRPcGVyYXRpb25XaXQKIAogLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlv
bldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFt
ZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0gICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBf
cGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChm
cmFtZUhhbmRsZS5fZnJhbWVJRCkpKQorICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3Bh
Z2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS0+X2ZyYW1lSGFuZGxlLT5mcmFtZUlE
KCkpKQogICAgICAgICByZXR1cm4gX2ltcGwtPnByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbyhw
cmludEluZm8sICp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gbmlsOwogfQpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRl
bXB0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tS
ZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0JKHJldmlzaW9uIDI1NDM0NSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5
QXR0ZW1wdGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIC0gKEJPT0wpYXR0
ZW1wdFJlY292ZXJ5CiAgICAgaWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm4gTk87CiAKLSAg
ICBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3LT5fcGFnZS0+
cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChbX2ZyYW1l
SGFuZGxlIF9mcmFtZUlEXSkpOworICAgIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQ
cm94eSA9IHdlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoX2ZyYW1lSGFuZGxlLT5f
ZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSk7CiAgICAgaWYgKCF3ZWJGcmFtZVByb3h5KQogICAgICAg
ICByZXR1cm4gTk87CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCShyZXZpc2lvbiAyNTQzNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzM0LDcgKzczNCw3IEBA
IC0gKE5TVUludGVnZXIpX3drX3BhZ2VDb3VudEZvclByaW50Rm9ybWEKIAogICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgIGlmIChfV0tGcmFtZUhhbmRsZSAqaGFuZGxl
ID0gcHJpbnRGb3JtYXR0ZXIuZnJhbWVUb1ByaW50KQotICAgICAgICBmcmFtZUlEID0gV2ViQ29y
ZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhhbmRsZS5fZnJhbWVJRCk7CisgICAgICAgIGZyYW1l
SUQgPSBoYW5kbGUuX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCk7CiAgICAgZWxzZSBpZiAoYXV0byBt
YWluRnJhbWUgPSBfcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIGZyYW1lSUQgPSBtYWluRnJh
bWUtPmZyYW1lSUQoKTsKICAgICBlbHNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5LmNwcAkocmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE5MCw3ICsxOTAsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBldmFsdWF0ZUphdmFTY3JpcHRDYWxs
CiAgICAgaWYgKCFhdXRvbWF0aW9uU2Vzc2lvblByb3h5KQogICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKLSAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCA9IFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChKU1ZhbHVlVG9OdW1iZXIo
Y29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllclR5cGU+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2Vw
dGlvbikpOwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4
dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24pOwogICAgIGlmIChKU1ZhbHVlSXNTdHJpbmcoY29u
dGV4dCwgYXJndW1lbnRzWzJdKSkgewogICAgICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKEpT
VmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5t
bQkocmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDgsNyArNDgsNyBAQAogCiArIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSGFu
ZGxlOihfV0tGcmFtZUhhbmRsZSAqKWhhbmRsZQogewotICAgIHJldHVybiB3cmFwcGVyKFdlYktp
dDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlm
aWVyRnJvbUlEKGhhbmRsZS5fZnJhbWVJRCkpKTsKKyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6
OldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGhhbmRsZS0+X2ZyYW1lSGFuZGxlLT5m
cmFtZUlEKCkpKTsKIH0KIAogLSAodm9pZClkZWFsbG9jCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCShyZXZp
c2lvbiAyNTQzNDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2Fk
ZXJTdHJhdGVneS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MRnJh
bWVPd25lckVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaD4KQEAgLTI1Myw2ICsyNTQsMjIg
QEAgYm9vbCBXZWJMb2FkZXJTdHJhdGVneTo6dHJ5TG9hZGluZ1VzaW5nVQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorc3RhdGljIHZvaWQgYWRkUGFyYW1ldGVyc0Zyb21GcmFtZShjb25zdCBGcmFt
ZSogZnJhbWUsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorewor
ICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIHBhcmFtZXRlcnMuaXNIVFRQ
U1VwZ3JhZGVFbmFibGVkID0gZnJhbWUtPnNldHRpbmdzKCkuSFRUUFNVcGdyYWRlRW5hYmxlZCgp
OworCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQorICAgICAgICBwYXJhbWV0
ZXJzLnBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBwYWdlLT5oYXNSZXNvdXJjZUxvYWRDbGll
bnQoKTsKKworICAgIGlmIChhdXRvKiBvd25lckVsZW1lbnQgPSBmcmFtZS0+b3duZXJFbGVtZW50
KCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHBhcmVudEZyYW1lID0gb3duZXJFbGVtZW50LT5kb2N1
bWVudCgpLmZyYW1lKCkpCisgICAgICAgICAgICBwYXJhbWV0ZXJzLnBhcmVudEZyYW1lSUQgPSBw
YXJlbnRGcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOworICAgIH0KK30KKwogdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291
cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBXZWJSZXNvdXJjZUxvYWRlcjo6VHJhY2tpbmdQYXJhbWV0ZXJzJiB0cmFja2luZ1Bh
cmFtZXRlcnMsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
U2Vjb25kcyBtYXhpbXVtQnVmZmVyaW5nVGltZSkKIHsKICAgICBSZXNvdXJjZUxvYWRJZGVudGlm
aWVyIGlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRlci5pZGVudGlmaWVyKCk7CkBAIC0yODYsMTEg
KzMwMyw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb20KICAgICBs
b2FkUGFyYW1ldGVycy5tYXhpbXVtQnVmZmVyaW5nVGltZSA9IG1heGltdW1CdWZmZXJpbmdUaW1l
OwogICAgIGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMgPSByZXNvdXJjZUxvYWRlci5vcHRpb25zKCk7
CiAgICAgbG9hZFBhcmFtZXRlcnMucHJlZmxpZ2h0UG9saWN5ID0gcmVzb3VyY2VMb2FkZXIub3B0
aW9ucygpLnByZWZsaWdodFBvbGljeTsKLSAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgbG9hZFBh
cmFtZXRlcnMuaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZnJhbWUtPnNldHRpbmdzKCkuSFRUUFNV
cGdyYWRlRW5hYmxlZCgpOwotICAgICAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCkp
Ci0gICAgICAgICAgICBsb2FkUGFyYW1ldGVycy5wYWdlSGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0g
cGFnZS0+aGFzUmVzb3VyY2VMb2FkQ2xpZW50KCk7Ci0gICAgfQorICAgIGFkZFBhcmFtZXRlcnNG
cm9tRnJhbWUoZnJhbWUsIGxvYWRQYXJhbWV0ZXJzKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKICAgICBsb2FkUGFyYW1ldGVycy5zZXJ2aWNlV29ya2Vyc01vZGUgPSByZXNvdXJjZUxv
YWRlci5vcHRpb25zKCkuc2VydmljZVdvcmtlcnNNb2RlOwpAQCAtNTgwLDggKzU5Myw3IEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmMKICAgICAgICAgICAgIGxvYWRQ
YXJhbWV0ZXJzLmNzcFJlc3BvbnNlSGVhZGVycyA9IGNvbnRlbnRTZWN1cml0eVBvbGljeS0+cmVz
cG9uc2VIZWFkZXJzKCk7CiAgICAgfQogICAgIGxvYWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVz
dEhlYWRlcnMgPSBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwotICAgIGlmIChwYWdlKQotICAgICAg
ICBsb2FkUGFyYW1ldGVycy5wYWdlSGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gcGFnZS0+aGFzUmVz
b3VyY2VMb2FkQ2xpZW50KCk7CisgICAgYWRkUGFyYW1ldGVyc0Zyb21GcmFtZSh3ZWJGcmFtZS0+
Y29yZUZyYW1lKCksIGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIGRhdGEuc2hyaW5rKDApOwogCkBA
IC02NDcsOCArNjU5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZChG
cgogICAgICAgICBpZiAoYXV0byogY29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQtPmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpKQogICAgICAgICAgICAgbG9hZFBhcmFtZXRlcnMuY3NwUmVz
cG9uc2VIZWFkZXJzID0gY29udGVudFNlY3VyaXR5UG9saWN5LT5yZXNwb25zZUhlYWRlcnMoKTsK
ICAgICB9Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKQotICAgICAgICBs
b2FkUGFyYW1ldGVycy5wYWdlSGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gcGFnZS0+aGFzUmVzb3Vy
Y2VMb2FkQ2xpZW50KCk7CisgICAgYWRkUGFyYW1ldGVyc0Zyb21GcmFtZSgmZnJhbWUsIGxvYWRQ
YXJhbWV0ZXJzKTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgbG9hZFBh
cmFtZXRlcnMubWFpbkRvY3VtZW50VVJMID0gZG9jdW1lbnQtPnRvcERvY3VtZW50KCkudXJsKCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNTQz
NDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0CiAgICAgLy8gRklYTUU6IFRoaXMg
bWV0aG9kIHNob3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0byBXZWJDb3JlOjpTV0NvbnRleHRNYW5h
Z2VyOjpDb25uZWN0aW9uCiAgICAgLy8gSWYgaXQgd2VyZW4ndCBmb3IgU2VydmljZVdvcmtlckZy
YW1lTG9hZGVyQ2xpZW50J3MgZGVwZW5kZW5jZSBvbiBXZWJEb2N1bWVudExvYWRlciwgdGhpcyBj
b3VsZCBhbHJlYWR5IGhhcHBlbi4KICAgICAvLyBGSVhNRTogV2VpcmQgdG8gcGFzcyBtX3ByZXZp
b3VzU2VydmljZVdvcmtlcklEIGFzIGEgRnJhbWVJZGVudGlmaWVyLgotICAgIGF1dG8gZnJhbWVM
b2FkZXJDbGllbnQgPSBtYWtlVW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4o
KnRoaXMsIG1fd2ViUGFnZVByb3h5SUQsIG1fcGFnZUlELCBmcmFtZUlkZW50aWZpZXJGcm9tSUQo
KyttX3ByZXZpb3VzU2VydmljZVdvcmtlcklEKSwgZWZmZWN0aXZlVXNlckFnZW50KTsKKyAgICBh
dXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gbWFrZVVuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQ+KCp0aGlzLCBtX3dlYlBhZ2VQcm94eUlELCBtX3BhZ2VJRCwgbWFrZU9iamVjdElk
ZW50aWZpZXI8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyVHlwZT4oKyttX3ByZXZpb3VzU2Vydmlj
ZVdvcmtlcklEKSwgZWZmZWN0aXZlVXNlckFnZW50KTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5s
b2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKICAgICBt
X2xvYWRlcnMuYWRkKFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsKIApJbmRleDogVG9vbHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU0Mzcy
KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MjAtMDEtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBFeHBvc2UgZnJhbWUgaW5mb3JtYXRpb24gb24gX1dLUmVzb3VyY2VMb2FkSW5mbwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTA0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzEzMjI5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUmVzb3VyY2VMb2FkRGVsZWdhdGUubW06CisgICAgICAgIChURVNUKToKKwogMjAyMC0wMS0x
MCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEZpeCB0ZXN0IGFzc2VydGlvbnMgYWZ0ZXIgcjI1NDM0NQpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZERl
bGVnYXRlLm1tCShyZXZpc2lvbiAyNTQzNjcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Jlc291cmNlTG9hZERlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBACiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorI2ltcG9ydCA8
V2ViS2l0L19XS0ZyYW1lSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUmVzb3VyY2VMb2Fk
RGVsZWdhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tSZXNvdXJjZUxvYWRJbmZvLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC0xMjksNyArMTMwLDcgQEAgVEVTVChSZXNvdXJjZUxv
YWREZWxlZ2F0ZSwgQmVhY29uQW5kU3luYwogewogICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2
ZXIgc2VydmVyKHsKICAgICAgICAgeyAiLyIsIHsgImhlbGxvIiB9IH0sCi0gICAgICAgIHsgIi94
aHJUYXJnZXQiLCB7ICJoaSIgfSB9LAorICAgICAgICB7ICIveGhyVGFyZ2V0IiwgeyB7eyAiQ29u
dGVudC1UeXBlIiwgInRleHQvaHRtbCIgfX0sICAiaGkiIH0gfSwKICAgICAgICAgeyAiL2JlYWNv
blRhcmdldCIsIHsgImhpIiB9IH0sCiAgICAgfSk7CiAKQEAgLTE0MCw5ICsxNDEsMTEgQEAgVEVT
VChSZXNvdXJjZUxvYWREZWxlZ2F0ZSwgQmVhY29uQW5kU3luYwogICAgIF9fYmxvY2sgYm9vbCBy
ZWNlaXZlZENhbGxiYWNrID0gZmFsc2U7CiAgICAgYXV0byByZXNvdXJjZUxvYWREZWxlZ2F0ZSA9
IGFkb3B0TlMoW1Rlc3RSZXNvdXJjZUxvYWREZWxlZ2F0ZSBuZXddKTsKICAgICBbd2ViVmlldyBf
c2V0UmVzb3VyY2VMb2FkRGVsZWdhdGU6cmVzb3VyY2VMb2FkRGVsZWdhdGUuZ2V0KCldOwotICAg
IFtyZXNvdXJjZUxvYWREZWxlZ2F0ZSBzZXREaWRTZW5kUmVxdWVzdDpeKFdLV2ViVmlldyAqLCBf
V0tSZXNvdXJjZUxvYWRJbmZvICosIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCkgeworICAgIFtyZXNv
dXJjZUxvYWREZWxlZ2F0ZSBzZXREaWRTZW5kUmVxdWVzdDpeKFdLV2ViVmlldyAqLCBfV0tSZXNv
dXJjZUxvYWRJbmZvICppbmZvLCBOU1VSTFJlcXVlc3QgKnJlcXVlc3QpIHsKICAgICAgICAgcmVx
dWVzdEZyb21EZWxlZ2F0ZSA9IHJlcXVlc3Q7CiAgICAgICAgIHJlY2VpdmVkQ2FsbGJhY2sgPSB0
cnVlOworICAgICAgICBFWFBFQ1RfVFJVRSghIWluZm8uZnJhbWUpOworICAgICAgICBFWFBFQ1Rf
RkFMU0UoISFpbmZvLnBhcmVudEZyYW1lKTsKICAgICB9XTsKICAgICAKICAgICBfX2Jsb2NrIGJv
b2wgcmVjZWl2ZWRBbGVydCA9IGZhbHNlOwpAQCAtMjY0LDYgKzI2NywyNyBAQCBURVNUKFJlc291
cmNlTG9hZERlbGVnYXRlLCBMb2FkSW5mbykKICAgICBFWFBFQ1RfRVEobG9hZEluZm9zWzZdLmdl
dCgpLnJlc291cmNlTG9hZElELCBsb2FkSW5mb3NbN10uZ2V0KCkucmVzb3VyY2VMb2FkSUQpOwog
ICAgIEVYUEVDVF9FUShsb2FkSW5mb3NbNl0uZ2V0KCkucmVzb3VyY2VMb2FkSUQsIGxvYWRJbmZv
c1s4XS5nZXQoKS5yZXNvdXJjZUxvYWRJRCk7CiAgICAgRVhQRUNUX05FKGxvYWRJbmZvc1s2XS5n
ZXQoKS5yZXNvdXJjZUxvYWRJRCwgbG9hZEluZm9zWzBdLmdldCgpLnJlc291cmNlTG9hZElEKTsK
KyAgICBhdXRvIGNoZWNrRnJhbWVzID0gXihzaXplX3QgaW5kZXgsIF9XS0ZyYW1lSGFuZGxlICpl
eHBlY3RlZEZyYW1lLCBfV0tGcmFtZUhhbmRsZSAqZXhwZWN0ZWRQYXJlbnQpIHsKKyAgICAgICAg
X1dLUmVzb3VyY2VMb2FkSW5mbyAqaW5mbyA9IGxvYWRJbmZvc1tpbmRleF0uZ2V0KCk7CisgICAg
ICAgIEVYUEVDVF9FUSghIWluZm8uZnJhbWUsICEhZXhwZWN0ZWRGcmFtZSk7CisgICAgICAgIEVY
UEVDVF9FUSghIWluZm8ucGFyZW50RnJhbWUsICEhZXhwZWN0ZWRQYXJlbnQpOworICAgICAgICBF
WFBFQ1RfRVEoaW5mby5mcmFtZS5mcmFtZUlELCBleHBlY3RlZEZyYW1lLmZyYW1lSUQpOworICAg
ICAgICBFWFBFQ1RfRVEoaW5mby5wYXJlbnRGcmFtZS5mcmFtZUlELCBleHBlY3RlZFBhcmVudC5m
cmFtZUlEKTsKKyAgICB9OworICAgIF9XS0ZyYW1lSGFuZGxlICptYWluID0gbG9hZEluZm9zWzBd
LmdldCgpLmZyYW1lOworICAgIF9XS0ZyYW1lSGFuZGxlICpzdWIgPSBsb2FkSW5mb3NbOF0uZ2V0
KCkuZnJhbWU7CisgICAgRVhQRUNUX1RSVUUoISFtYWluKTsKKyAgICBFWFBFQ1RfVFJVRSghIXN1
Yik7CisgICAgRVhQRUNUX1RSVUUobWFpbi5mcmFtZUlEICE9IHN1Yi5mcmFtZUlEKTsKKyAgICBj
aGVja0ZyYW1lcygwLCBtYWluLCBuaWwpOworICAgIGNoZWNrRnJhbWVzKDEsIG1haW4sIG5pbCk7
CisgICAgY2hlY2tGcmFtZXMoMiwgbWFpbiwgbmlsKTsKKyAgICBjaGVja0ZyYW1lcygzLCBzdWIs
IG1haW4pOworICAgIGNoZWNrRnJhbWVzKDQsIHN1YiwgbWFpbik7CisgICAgY2hlY2tGcmFtZXMo
NSwgc3ViLCBtYWluKTsKKyAgICBjaGVja0ZyYW1lcyg2LCBzdWIsIG1haW4pOworICAgIGNoZWNr
RnJhbWVzKDcsIHN1YiwgbWFpbik7CisgICAgY2hlY2tGcmFtZXMoOCwgc3ViLCBtYWluKTsKIAog
ICAgIEVYUEVDVF9FUShvdGhlclBhcmFtZXRlcnMuc2l6ZSgpLCA5dWxsKTsKICAgICBFWFBFQ1Rf
V0tfU1RSRVEoTlNTdHJpbmdGcm9tQ2xhc3MoW290aGVyUGFyYW1ldGVyc1swXSBjbGFzc10pLCAi
TlNNdXRhYmxlVVJMUmVxdWVzdCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387390</attachid>
            <date>2020-01-10 16:14:15 -0800</date>
            <delta_ts>2020-01-10 16:57:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206104-20200110161414.patch</filename>
            <type>text/plain</type>
            <size>25138</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAxLTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGZy
YW1lIGluZm9ybWF0aW9uIG9uIF9XS1Jlc291cmNlTG9hZEluZm8KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEwNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTcxMzIyOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lSWRl
bnRpZmllci5oOgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKTogRGVs
ZXRlZC4KKwogMjAyMC0wMS0xMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEZpeCBhY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1t
YWtlLXZpc2libGUtaWZyYW1lLW9mZnNjcmVlbi5odG1sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVJZGVudGlmaWVyLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDkgKzMyLDQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogZW51bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIEZy
YW1lSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47CiAK
LWlubGluZSBGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90IGZy
YW1lSUQpCi17Ci0gICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmll
clR5cGU+KGZyYW1lSUQpOwotfQotCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU0MzQ1KQor
KysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBA
QAorMjAyMC0wMS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIEV4cG9zZSBmcmFtZSBpbmZvcm1hdGlvbiBvbiBfV0tSZXNvdXJjZUxvYWRJ
bmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYx
MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MTMyMjkwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnJlc291cmNlTG9hZEluZm8pOgorICAgICAgICAqIFNoYXJlZC9BUEkv
Q29jb2EvX1dLRnJhbWVIYW5kbGUuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0Zy
YW1lSGFuZGxlLm1tOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBmcmFtZUlEXSk6CisgICAg
ICAgICgtW19XS0ZyYW1lSGFuZGxlIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW19XS0Zy
YW1lSGFuZGxlIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5kbGUg
X2ZyYW1lSURdKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1l
SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBTaGFyZWQvUmVzb3VyY2VMb2FkSW5mby5oOgor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJUmVzb3VyY2VMb2FkSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3Igc2hvd01haW5SZXNv
dXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3Vy
Y2VMb2FkSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VM
b2FkSW5mby5tbToKKyAgICAgICAgKC1bX1dLUmVzb3VyY2VMb2FkSW5mbyBmcmFtZV0pOgorICAg
ICAgICAoLVtfV0tSZXNvdXJjZUxvYWRJbmZvIHBhcmVudEZyYW1lXSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Nh
bkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3ByaW50T3BlcmF0
aW9uV2l0aFByaW50SW5mbzpmb3JGcmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAgICgtW1dLUmVs
b2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6XSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW06Cisg
ICAgICAgICgrW1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIGxvb2tVcEZyYW1lRnJvbUhhbmRsZTpd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgor
ICAgICAgICAoV2ViS2l0OjphZGRQYXJhbWV0ZXJzRnJvbUZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjppbnN0YWxsU2VydmljZVdvcmtlcik6CisKIDIwMjAtMDEtMTAgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBFeHBhbmQgX1dLUmVzb3VyY2VM
b2FkRGVsZWdhdGUgY2FsbGJhY2tzCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAko
cmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcs
NyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvCiAgICAgZW5jb2Rl
ciA8PCBmcmFtZUFuY2VzdG9yT3JpZ2luczsKICAgICBlbmNvZGVyIDw8IGlzSFRUUFNVcGdyYWRl
RW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQ7CisgICAg
ZW5jb2RlciA8PCBwYXJlbnRGcmFtZUlEOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
ICAgIGVuY29kZXIgPDwgc2VydmljZVdvcmtlcnNNb2RlOwpAQCAtMjU1LDYgKzI1NiwxMiBAQCBP
cHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4gCiAgICAgaWYgKCFwYWdlSGFz
UmVzb3VyY2VMb2FkQ2xpZW50KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHJl
c3VsdC5wYWdlSGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gKnBhZ2VIYXNSZXNvdXJjZUxvYWRDbGll
bnQ7CisgICAgCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gcGFyZW50
RnJhbWVJRDsKKyAgICBkZWNvZGVyID4+IHBhcmVudEZyYW1lSUQ7CisgICAgaWYgKCFwYXJlbnRG
cmFtZUlEKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC5wYXJlbnRG
cmFtZUlEID0gV1RGTW92ZSgqcGFyZW50RnJhbWVJRCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgT3B0aW9uYWw8U2VydmljZVdvcmtlcnNNb2RlPiBzZXJ2aWNlV29ya2Vyc01v
ZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTQzNDUpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiBmcmFtZUFuY2VzdG9yT3JpZ2luczsKICAg
ICBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBwYWdlSGFz
UmVzb3VyY2VMb2FkQ2xpZW50IHsgZmFsc2UgfTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgV2ViQ29yZTo6U2VydmljZVdvcmtlcnNNb2RlIHNlcnZpY2VXb3JrZXJzTW9kZSB7IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSB9OwpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAkocmV2
aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYsNyArMzM2LDkgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29yawogUmVzb3VyY2VMb2FkSW5mbyBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlTG9hZEluZm8oKQogewogICAgIHJldHVybiB7Ci0g
ICAgICAgIG1fcmVzb3VyY2VMb2FkSUQKKyAgICAgICAgbV9yZXNvdXJjZUxvYWRJRCwKKyAgICAg
ICAgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsCisgICAgICAgIG1fcGFyYW1ldGVycy5wYXJlbnRG
cmFtZUlELAogICAgIH07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNl
TG9hZEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxv
YWRJbmZvLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291
cmNlTG9hZEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTYgKzI3LDIxIEBACiAKICNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHN0cnVjdCBSZXNvdXJjZUxvYWRJbmZvIHsKIAogICAgIE5ldHdvcmtS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlTG9hZElEOworICAgIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiAgICAgCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJj
ZUxvYWRJRDsKKyAgICAgICAgZW5jb2RlciA8PCBmcmFtZUlEOworICAgICAgICBlbmNvZGVyIDw8
IHBhcmVudEZyYW1lSUQ7CiAgICAgfQogCiAgICAgc3RhdGljIE9wdGlvbmFsPFJlc291cmNlTG9h
ZEluZm8+IGRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC00Niw4ICs1MSwyMCBAQCBz
dHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbyB7CiAgICAgICAgIGlmICghcmVzb3VyY2VMb2FkSUQpCiAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAgICAgIE9wdGlvbmFsPE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CisgICAgICAgIGRlY29kZXIg
Pj4gZnJhbWVJRDsKKyAgICAgICAgaWYgKCFmcmFtZUlEKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+PiBwYXJlbnRGcmFtZUlEOworICAgICAgICBkZWNvZGVyID4+IHBhcmVudEZyYW1l
SUQ7CisgICAgICAgIGlmICghcGFyZW50RnJhbWVJRCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKICAgICAgICAgcmV0dXJuIHt7CiAgICAgICAgICAgICBXVEZNb3ZlKCpyZXNv
dXJjZUxvYWRJRCksCisgICAgICAgICAgICBXVEZNb3ZlKCpmcmFtZUlEKSwKKyAgICAgICAgICAg
IFdURk1vdmUoKnBhcmVudEZyYW1lSUQpLAogICAgICAgICB9fTsKICAgICB9CiB9OwpJbmRleDog
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgJKHJl
dmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFt
ZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw0ICszMCw2IEBACiBXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUg
OiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KIAorQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSB1aW50NjRfdCBmcmFtZUlEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0JKHJldmlzaW9uIDI1
NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogCi1AaW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUgewotICAg
IEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7Ci19CitA
aW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUKIAogLSAodm9pZClkZWFsbG9jCiB7CkBAIC01
NSw3ICs1Myw3IEBAIC0gKE5TVUludGVnZXIpaGFzaAogICAgIHJldHVybiBfZnJhbWVIYW5kbGUt
PmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCi0tICh1aW50NjRfdClfZnJhbWVJRAorLSAodWlu
dDY0X3QpZnJhbWVJRAogewogICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJ
bnQ2NCgpOwogfQpAQCAtODUsMTQgKzgzLDE0IEBAIC0gKGlkKWluaXRXaXRoQ29kZXI6KE5TQ29k
ZXIgKilkZWNvZGVyCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgQVBJOjpPYmpl
Y3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBXZWJDb3JlOjpm
cmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUpLCBmYWxz
ZSk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxl
PihzZWxmLCBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBl
PihmcmFtZUlELnVuc2lnbmVkTG9uZ0xvbmdWYWx1ZSksIGZhbHNlKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQogCiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0g
ICAgW2NvZGVyIGVuY29kZU9iamVjdDpAKFtzZWxmIF9mcmFtZUlEXSkgZm9yS2V5OkAiZnJhbWVJ
RCJdOworICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6QChbc2VsZiBmcmFtZUlEXSkgZm9yS2V5OkAi
ZnJhbWVJRCJdOwogfQogCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50
YXRpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRs
ZUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaAkocmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsOCArMzYsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEFQ
STo6RnJhCiAKIH0KIAotQGludGVyZmFjZSBfV0tGcmFtZUhhbmRsZSAoKSA8V0tPYmplY3Q+Ci0K
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdWludDY0X3QgX2ZyYW1lSUQ7Ci0KK0Bp
bnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUgKCkgPFdLT2JqZWN0PiB7CitAcGFja2FnZQorICAgIEFQ
STo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7Cit9CiBAZW5k
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkSW5mby5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElSZXNvdXJjZUxv
YWRJbmZvLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElSZXNvdXJjZUxvYWRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAg
cHVibGljOgogICAgIH0KIAogICAgIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZp
ZXIgcmVzb3VyY2VMb2FkSUQoKSBjb25zdCB7IHJldHVybiBtX2luZm8ucmVzb3VyY2VMb2FkSUQ7
IH0KKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX2luZm8uZnJhbWVJRDsgfQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gcGFyZW50RnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5wYXJlbnRG
cmFtZUlEOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVzb3VyY2VMb2FkSW5mbyhXZWJL
aXQ6OlJlc291cmNlTG9hZEluZm8mJiBpbmZvKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCShyZXZpc2lvbiAyNTQzNDUpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgLSAodm9pZClzaG93UmVzb3VyY2VzCiAtICh2
b2lkKXNob3dNYWluUmVzb3VyY2VGb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZQogewog
ICAgIGlmIChhdXRvKiBwYWdlID0gX2luc3BlY3Rvci0+aW5zcGVjdGVkUGFnZSgpKQotICAgICAg
ICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndl
YkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsK
KyAgICAgICAgX2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nl
c3MoKS53ZWJGcmFtZShmcmFtZS0+X2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkpKTsKIH0KIAogLSAo
dm9pZClhdHRhY2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tS
ZXNvdXJjZUxvYWRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8uaAkocmV2aXNpb24gMjU0MzQ1KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMjMsNiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKK0BjbGFz
cyBfV0tGcmFtZUhhbmRsZTsKKwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCkBAIC0zMiw2ICsz
Niw4IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW8KIC0gKGluc3Rh
bmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIHVpbnQ2NF90IHJlc291cmNlTG9hZElEOworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBfV0tGcmFtZUhhbmRsZSogZnJhbWU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIG51bGxhYmxlKSBfV0tGcmFtZUhhbmRsZSogcGFyZW50RnJhbWU7CiAKIEBlbmQKIApJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZElu
Zm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Jlc291cmNlTG9hZEluZm8ubW0JKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw3ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIl9XS1Jlc291
cmNlTG9hZEluZm8uaCIKIAorI2ltcG9ydCAiQVBJRnJhbWVIYW5kbGUuaCIKICNpbXBvcnQgIkFQ
SVJlc291cmNlTG9hZEluZm8uaCIKKyNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIl9XS1Jlc291cmNlTG9hZEluZm9JbnRlcm5hbC5oIgogCiBAaW1wbGVtZW50YXRp
b24gX1dLUmVzb3VyY2VMb2FkSW5mbwpAQCAtNDIsNiArNDQsMjAgQEAgLSAodWludDY0X3QpcmVz
b3VyY2VMb2FkSUQKICAgICByZXR1cm4gX2luZm8tPnJlc291cmNlTG9hZElEKCkudG9VSW50NjQo
KTsKIH0KIAorLSAoX1dLRnJhbWVIYW5kbGUgKilmcmFtZQoreworICAgIGlmIChhdXRvIGZyYW1l
SUQgPSBfaW5mby0+ZnJhbWVJRCgpKQorICAgICAgICByZXR1cm4gd3JhcHBlcihBUEk6OkZyYW1l
SGFuZGxlOjpjcmVhdGUoKmZyYW1lSUQpKTsKKyAgICByZXR1cm4gbmlsOworfQorCistIChfV0tG
cmFtZUhhbmRsZSAqKXBhcmVudEZyYW1lCit7CisgICAgaWYgKGF1dG8gcGFyZW50RnJhbWVJRCA9
IF9pbmZvLT5wYXJlbnRGcmFtZUlEKCkpCisgICAgICAgIHJldHVybiB3cmFwcGVyKEFQSTo6RnJh
bWVIYW5kbGU6OmNyZWF0ZSgqcGFyZW50RnJhbWVJRCkpOworICAgIHJldHVybiBuaWw7Cit9CisK
IC0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0CiB7CiAgICAgcmV0dXJuICpfaW5mbzsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCShy
ZXZpc2lvbiAyNTQzNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2Vi
Vmlld01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgLSAodm9pZClf
c2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRlcgogCiAtIChCT09MKV9jYW5DaGFuZ2VGcmFt
ZUxheW91dDooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRvKiB3
ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlk
ZW50aWZpZXJGcm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKKyAgICBpZiAoYXV0byogd2Vi
RnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVIYW5kbGUtPl9mcmFt
ZUhhbmRsZS0+ZnJhbWVJRCgpKSkKICAgICAgICAgcmV0dXJuIF9pbXBsLT5jYW5DaGFuZ2VGcmFt
ZUxheW91dCgqd2ViRnJhbWVQcm94eSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTU0OCw3
ICsxNTQ4LDcgQEAgLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdAogCiAt
IChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmlu
dEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVIYW5kbGUK
IHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJh
bWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkp
CisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1l
KGZyYW1lSGFuZGxlLT5fZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkpCiAgICAgICAgIHJldHVybiBf
aW1wbC0+cHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywgKndlYkZyYW1lUHJv
eHkpOwogICAgIHJldHVybiBuaWw7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVy
eUF0dGVtcHRlci5tbQkocmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTYzLDcgKzYzLDcgQEAgLSAoQk9PTClhdHRlbXB0UmVjb3ZlcnkKICAgICBpZiAo
IXdlYlZpZXcpCiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIFdlYktpdDo6V2ViRnJhbWVQcm94
eSogd2ViRnJhbWVQcm94eSA9IHdlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURdKSk7Cisg
ICAgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2Ut
PnByb2Nlc3MoKS53ZWJGcmFtZShfZnJhbWVIYW5kbGUtPl9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgp
KTsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkpCiAgICAgICAgIHJldHVybiBOTzsKIApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0JKHJldmlzaW9u
IDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC03MzQsNyArNzM0LDcgQEAgLSAoTlNVSW50ZWdlcilfd2tfcGFn
ZUNvdW50Rm9yUHJpbnRGb3JtYQogCiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQ7CiAgICAgaWYgKF9XS0ZyYW1lSGFuZGxlICpoYW5kbGUgPSBwcmludEZvcm1hdHRlci5mcmFt
ZVRvUHJpbnQpCi0gICAgICAgIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9t
SUQoaGFuZGxlLl9mcmFtZUlEKTsKKyAgICAgICAgZnJhbWVJRCA9IGhhbmRsZS5fZnJhbWVIYW5k
bGUtPmZyYW1lSUQoKTsKICAgICBlbHNlIGlmIChhdXRvIG1haW5GcmFtZSA9IF9wYWdlLT5tYWlu
RnJhbWUoKSkKICAgICAgICAgZnJhbWVJRCA9IG1haW5GcmFtZS0+ZnJhbWVJRCgpOwogICAgIGVs
c2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCShyZXZpc2lvbiAyNTQz
NDUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRp
YyBKU1ZhbHVlUmVmIGV2YWx1YXRlSmF2YVNjcmlwdENhbGwKICAgICBpZiAoIWF1dG9tYXRpb25T
ZXNzaW9uUHJveHkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIAotICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gV2ViQ29yZTo6ZnJh
bWVJZGVudGlmaWVyRnJvbUlEKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0s
IGV4Y2VwdGlvbikpOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gbWFr
ZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyVHlwZT4oSlNWYWx1ZVRv
TnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CiAgICAgdWludDY0X3Qg
Y2FsbGJhY2tJRCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2Vw
dGlvbik7CiAgICAgaWYgKEpTVmFsdWVJc1N0cmluZyhjb250ZXh0LCBhcmd1bWVudHNbMl0pKSB7
CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250
ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCShyZXZpc2lvbiAyNTQzNDUpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBACiAK
ICsgKGluc3RhbmNldHlwZSlsb29rVXBGcmFtZUZyb21IYW5kbGU6KF9XS0ZyYW1lSGFuZGxlICop
aGFuZGxlCiB7Ci0gICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9mcmFt
ZUlEKSkpOworICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoaGFuZGxlLT5fZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkpOwogfQogCiAtICh2
b2lkKWRlYWxsb2MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25z
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVM
b2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtU3RyYXRlZ2llcy5oPgpAQCAtMjUzLDYgKzI1NCwyMiBAQCBib29sIFdlYkxvYWRlclN0cmF0
ZWd5Ojp0cnlMb2FkaW5nVXNpbmdVCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgdm9p
ZCBhZGRQYXJhbWV0ZXJzRnJvbUZyYW1lKGNvbnN0IEZyYW1lKiBmcmFtZSwgTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgaWYgKCFmcmFtZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcGFyYW1ldGVycy5pc0hUVFBTVXBncmFkZUVuYWJsZWQgPSBmcmFt
ZS0+c2V0dGluZ3MoKS5IVFRQU1VwZ3JhZGVFbmFibGVkKCk7CisKKyAgICBpZiAoYXV0byogcGFn
ZSA9IGZyYW1lLT5wYWdlKCkpCisgICAgICAgIHBhcmFtZXRlcnMucGFnZUhhc1Jlc291cmNlTG9h
ZENsaWVudCA9IHBhZ2UtPmhhc1Jlc291cmNlTG9hZENsaWVudCgpOworCisgICAgaWYgKGF1dG8q
IG93bmVyRWxlbWVudCA9IGZyYW1lLT5vd25lckVsZW1lbnQoKSkgeworICAgICAgICBpZiAoYXV0
byogcGFyZW50RnJhbWUgPSBvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAg
ICAgICAgIHBhcmFtZXRlcnMucGFyZW50RnJhbWVJRCA9IHBhcmVudEZyYW1lLT5sb2FkZXIoKS5j
bGllbnQoKS5mcmFtZUlEKCk7CisgICAgfQorfQorCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9h
ZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYlJlc291cmNlTG9h
ZGVyOjpUcmFja2luZ1BhcmFtZXRlcnMmIHRyYWNraW5nUGFyYW1ldGVycywgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBTZWNvbmRzIG1heGltdW1CdWZmZXJp
bmdUaW1lKQogewogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciA9IHJlc291
cmNlTG9hZGVyLmlkZW50aWZpZXIoKTsKQEAgLTI4NiwxMSArMzAzLDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbQogICAgIGxvYWRQYXJhbWV0ZXJzLm1heGltdW1C
dWZmZXJpbmdUaW1lID0gbWF4aW11bUJ1ZmZlcmluZ1RpbWU7CiAgICAgbG9hZFBhcmFtZXRlcnMu
b3B0aW9ucyA9IHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKTsKICAgICBsb2FkUGFyYW1ldGVycy5w
cmVmbGlnaHRQb2xpY3kgPSByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkucHJlZmxpZ2h0UG9saWN5
OwotICAgIGlmIChmcmFtZSkgewotICAgICAgICBsb2FkUGFyYW1ldGVycy5pc0hUVFBTVXBncmFk
ZUVuYWJsZWQgPSBmcmFtZS0+c2V0dGluZ3MoKS5IVFRQU1VwZ3JhZGVFbmFibGVkKCk7Ci0gICAg
ICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgICAgIGxvYWRQYXJh
bWV0ZXJzLnBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBwYWdlLT5oYXNSZXNvdXJjZUxvYWRD
bGllbnQoKTsKLSAgICB9CisgICAgYWRkUGFyYW1ldGVyc0Zyb21GcmFtZShmcmFtZSwgbG9hZFBh
cmFtZXRlcnMpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGxvYWRQYXJhbWV0
ZXJzLnNlcnZpY2VXb3JrZXJzTW9kZSA9IHJlc291cmNlTG9hZGVyLm9wdGlvbnMoKS5zZXJ2aWNl
V29ya2Vyc01vZGU7CkBAIC01ODAsOCArNTkzLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
bG9hZFJlc291cmNlU3luYwogICAgICAgICAgICAgbG9hZFBhcmFtZXRlcnMuY3NwUmVzcG9uc2VI
ZWFkZXJzID0gY29udGVudFNlY3VyaXR5UG9saWN5LT5yZXNwb25zZUhlYWRlcnMoKTsKICAgICB9
CiAgICAgbG9hZFBhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyA9IG9yaWdpbmFsUmVx
dWVzdEhlYWRlcnM7Ci0gICAgaWYgKHBhZ2UpCi0gICAgICAgIGxvYWRQYXJhbWV0ZXJzLnBhZ2VI
YXNSZXNvdXJjZUxvYWRDbGllbnQgPSBwYWdlLT5oYXNSZXNvdXJjZUxvYWRDbGllbnQoKTsKKyAg
ICBhZGRQYXJhbWV0ZXJzRnJvbUZyYW1lKHdlYkZyYW1lLT5jb3JlRnJhbWUoKSwgbG9hZFBhcmFt
ZXRlcnMpOwogCiAgICAgZGF0YS5zaHJpbmsoMCk7CiAKQEAgLTY0Nyw4ICs2NTksNyBAQCB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2FkKEZyCiAgICAgICAgIGlmIChhdXRvKiBj
b250ZW50U2VjdXJpdHlQb2xpY3kgPSBkb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkp
CiAgICAgICAgICAgICBsb2FkUGFyYW1ldGVycy5jc3BSZXNwb25zZUhlYWRlcnMgPSBjb250ZW50
U2VjdXJpdHlQb2xpY3ktPnJlc3BvbnNlSGVhZGVycygpOwogICAgIH0KLSAgICBpZiAoYXV0byog
cGFnZSA9IGRvY3VtZW50LT5wYWdlKCkpCi0gICAgICAgIGxvYWRQYXJhbWV0ZXJzLnBhZ2VIYXNS
ZXNvdXJjZUxvYWRDbGllbnQgPSBwYWdlLT5oYXNSZXNvdXJjZUxvYWRDbGllbnQoKTsKKyAgICBh
ZGRQYXJhbWV0ZXJzRnJvbUZyYW1lKCZmcmFtZSwgbG9hZFBhcmFtZXRlcnMpOwogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBsb2FkUGFyYW1ldGVycy5tYWluRG9jdW1lbnRV
UkwgPSBkb2N1bWVudC0+dG9wRG9jdW1lbnQoKS51cmwoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246Omluc3QKICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG1vdmVk
IGRpcmVjdGx5IHRvIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24KICAgICAv
LyBJZiBpdCB3ZXJlbid0IGZvciBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQncyBkZXBl
bmRlbmNlIG9uIFdlYkRvY3VtZW50TG9hZGVyLCB0aGlzIGNvdWxkIGFscmVhZHkgaGFwcGVuLgog
ICAgIC8vIEZJWE1FOiBXZWlyZCB0byBwYXNzIG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgYXMg
YSBGcmFtZUlkZW50aWZpZXIuCi0gICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IG1ha2VVbmlx
dWU8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgbV93ZWJQYWdlUHJveHlJ
RCwgbV9wYWdlSUQsIGZyYW1lSWRlbnRpZmllckZyb21JRCgrK21fcHJldmlvdXNTZXJ2aWNlV29y
a2VySUQpLCBlZmZlY3RpdmVVc2VyQWdlbnQpOworICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQg
PSBtYWtlVW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIG1fd2Vi
UGFnZVByb3h5SUQsIG1fcGFnZUlELCBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXJUeXBlPigrK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQpLCBlZmZlY3RpdmVV
c2VyQWdlbnQpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFt
ZSA9IGZyYW1lTG9hZGVyQ2xpZW50LmdldCgpOwogICAgIG1fbG9hZGVycy5hZGQoV1RGTW92ZShm
cmFtZUxvYWRlckNsaWVudCkpOwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTQzNzIpCisrKyBUb29scy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMS0xMCAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEV4cG9zZSBmcmFtZSBp
bmZvcm1hdGlvbiBvbiBfV0tSZXNvdXJjZUxvYWRJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxMDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU3MTMyMjkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIwLTAxLTEwICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IHRlc3QgYXNzZXJ0aW9ucyBh
ZnRlciByMjU0MzQ1CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Jlc291cmNlTG9hZERlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0JKHJldmlzaW9uIDI1
NDM2NykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VM
b2FkRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQg
IlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRnJhbWVIYW5kbGUu
aD4KICNpbXBvcnQgPFdlYktpdC9fV0tSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L19XS1Jlc291cmNlTG9hZEluZm8uaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
QEAgLTEyOSw3ICsxMzAsNyBAQCBURVNUKFJlc291cmNlTG9hZERlbGVnYXRlLCBCZWFjb25BbmRT
eW5jCiB7CiAgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoewogICAgICAgICB7
ICIvIiwgeyAiaGVsbG8iIH0gfSwKLSAgICAgICAgeyAiL3hoclRhcmdldCIsIHsgImhpIiB9IH0s
CisgICAgICAgIHsgIi94aHJUYXJnZXQiLCB7IHt7ICJDb250ZW50LVR5cGUiLCAidGV4dC9odG1s
IiB9fSwgICJoaSIgfSB9LAogICAgICAgICB7ICIvYmVhY29uVGFyZ2V0IiwgeyAiaGkiIH0gfSwK
ICAgICB9KTsKIApAQCAtMTQwLDkgKzE0MSwxMSBAQCBURVNUKFJlc291cmNlTG9hZERlbGVnYXRl
LCBCZWFjb25BbmRTeW5jCiAgICAgX19ibG9jayBib29sIHJlY2VpdmVkQ2FsbGJhY2sgPSBmYWxz
ZTsKICAgICBhdXRvIHJlc291cmNlTG9hZERlbGVnYXRlID0gYWRvcHROUyhbVGVzdFJlc291cmNl
TG9hZERlbGVnYXRlIG5ld10pOwogICAgIFt3ZWJWaWV3IF9zZXRSZXNvdXJjZUxvYWREZWxlZ2F0
ZTpyZXNvdXJjZUxvYWREZWxlZ2F0ZS5nZXQoKV07Ci0gICAgW3Jlc291cmNlTG9hZERlbGVnYXRl
IHNldERpZFNlbmRSZXF1ZXN0Ol4oV0tXZWJWaWV3ICosIF9XS1Jlc291cmNlTG9hZEluZm8gKiwg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KSB7CisgICAgW3Jlc291cmNlTG9hZERlbGVnYXRlIHNldERp
ZFNlbmRSZXF1ZXN0Ol4oV0tXZWJWaWV3ICosIF9XS1Jlc291cmNlTG9hZEluZm8gKmluZm8sIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCkgewogICAgICAgICByZXF1ZXN0RnJvbURlbGVnYXRlID0gcmVx
dWVzdDsKICAgICAgICAgcmVjZWl2ZWRDYWxsYmFjayA9IHRydWU7CisgICAgICAgIEVYUEVDVF9U
UlVFKCEhaW5mby5mcmFtZSk7CisgICAgICAgIEVYUEVDVF9GQUxTRSghIWluZm8ucGFyZW50RnJh
bWUpOwogICAgIH1dOwogICAgIAogICAgIF9fYmxvY2sgYm9vbCByZWNlaXZlZEFsZXJ0ID0gZmFs
c2U7CkBAIC0yNjQsNiArMjY3LDI3IEBAIFRFU1QoUmVzb3VyY2VMb2FkRGVsZWdhdGUsIExvYWRJ
bmZvKQogICAgIEVYUEVDVF9FUShsb2FkSW5mb3NbNl0uZ2V0KCkucmVzb3VyY2VMb2FkSUQsIGxv
YWRJbmZvc1s3XS5nZXQoKS5yZXNvdXJjZUxvYWRJRCk7CiAgICAgRVhQRUNUX0VRKGxvYWRJbmZv
c1s2XS5nZXQoKS5yZXNvdXJjZUxvYWRJRCwgbG9hZEluZm9zWzhdLmdldCgpLnJlc291cmNlTG9h
ZElEKTsKICAgICBFWFBFQ1RfTkUobG9hZEluZm9zWzZdLmdldCgpLnJlc291cmNlTG9hZElELCBs
b2FkSW5mb3NbMF0uZ2V0KCkucmVzb3VyY2VMb2FkSUQpOworICAgIGF1dG8gY2hlY2tGcmFtZXMg
PSBeKHNpemVfdCBpbmRleCwgX1dLRnJhbWVIYW5kbGUgKmV4cGVjdGVkRnJhbWUsIF9XS0ZyYW1l
SGFuZGxlICpleHBlY3RlZFBhcmVudCkgeworICAgICAgICBfV0tSZXNvdXJjZUxvYWRJbmZvICpp
bmZvID0gbG9hZEluZm9zW2luZGV4XS5nZXQoKTsKKyAgICAgICAgRVhQRUNUX0VRKCEhaW5mby5m
cmFtZSwgISFleHBlY3RlZEZyYW1lKTsKKyAgICAgICAgRVhQRUNUX0VRKCEhaW5mby5wYXJlbnRG
cmFtZSwgISFleHBlY3RlZFBhcmVudCk7CisgICAgICAgIEVYUEVDVF9FUShpbmZvLmZyYW1lLmZy
YW1lSUQsIGV4cGVjdGVkRnJhbWUuZnJhbWVJRCk7CisgICAgICAgIEVYUEVDVF9FUShpbmZvLnBh
cmVudEZyYW1lLmZyYW1lSUQsIGV4cGVjdGVkUGFyZW50LmZyYW1lSUQpOworICAgIH07CisgICAg
X1dLRnJhbWVIYW5kbGUgKm1haW4gPSBsb2FkSW5mb3NbMF0uZ2V0KCkuZnJhbWU7CisgICAgX1dL
RnJhbWVIYW5kbGUgKnN1YiA9IGxvYWRJbmZvc1s4XS5nZXQoKS5mcmFtZTsKKyAgICBFWFBFQ1Rf
VFJVRSghIW1haW4pOworICAgIEVYUEVDVF9UUlVFKCEhc3ViKTsKKyAgICBFWFBFQ1RfVFJVRSht
YWluLmZyYW1lSUQgIT0gc3ViLmZyYW1lSUQpOworICAgIGNoZWNrRnJhbWVzKDAsIG1haW4sIG5p
bCk7CisgICAgY2hlY2tGcmFtZXMoMSwgbWFpbiwgbmlsKTsKKyAgICBjaGVja0ZyYW1lcygyLCBt
YWluLCBuaWwpOworICAgIGNoZWNrRnJhbWVzKDMsIHN1YiwgbWFpbik7CisgICAgY2hlY2tGcmFt
ZXMoNCwgc3ViLCBtYWluKTsKKyAgICBjaGVja0ZyYW1lcyg1LCBzdWIsIG1haW4pOworICAgIGNo
ZWNrRnJhbWVzKDYsIHN1YiwgbWFpbik7CisgICAgY2hlY2tGcmFtZXMoNywgc3ViLCBtYWluKTsK
KyAgICBjaGVja0ZyYW1lcyg4LCBzdWIsIG1haW4pOwogCiAgICAgRVhQRUNUX0VRKG90aGVyUGFy
YW1ldGVycy5zaXplKCksIDl1bGwpOwogICAgIEVYUEVDVF9XS19TVFJFUShOU1N0cmluZ0Zyb21D
bGFzcyhbb3RoZXJQYXJhbWV0ZXJzWzBdIGNsYXNzXSksICJOU011dGFibGVVUkxSZXF1ZXN0Iik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387398</attachid>
            <date>2020-01-10 16:57:50 -0800</date>
            <delta_ts>2020-01-11 12:37:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206104-20200110165749.patch</filename>
            <type>text/plain</type>
            <size>25139</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAxLTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXhwb3NlIGZy
YW1lIGluZm9ybWF0aW9uIG9uIF9XS1Jlc291cmNlTG9hZEluZm8KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjEwNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTcxMzIyOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lSWRl
bnRpZmllci5oOgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKTogRGVs
ZXRlZC4KKwogMjAyMC0wMS0xMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEZpeCBhY2Nlc3NpYmlsaXR5L3Njcm9sbC10by1t
YWtlLXZpc2libGUtaWZyYW1lLW9mZnNjcmVlbi5odG1sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lSWRlbnRpZmllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVJZGVudGlmaWVyLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVJZGVudGlmaWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDkgKzMyLDQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogZW51bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIEZy
YW1lSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47CiAK
LWlubGluZSBGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90IGZy
YW1lSUQpCi17Ci0gICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmll
clR5cGU+KGZyYW1lSUQpOwotfQotCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjU0MzQ1KQor
KysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBA
QAorMjAyMC0wMS0xMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIEV4cG9zZSBmcmFtZSBpbmZvcm1hdGlvbiBvbiBfV0tSZXNvdXJjZUxvYWRJ
bmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYx
MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MTMyMjkwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnJlc291cmNlTG9hZEluZm8pOgorICAgICAgICAqIFNoYXJlZC9BUEkv
Q29jb2EvX1dLRnJhbWVIYW5kbGUuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0Zy
YW1lSGFuZGxlLm1tOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBmcmFtZUlEXSk6CisgICAg
ICAgICgtW19XS0ZyYW1lSGFuZGxlIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW19XS0Zy
YW1lSGFuZGxlIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5kbGUg
X2ZyYW1lSURdKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1l
SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBTaGFyZWQvUmVzb3VyY2VMb2FkSW5mby5oOgor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJUmVzb3VyY2VMb2FkSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0b3Igc2hvd01haW5SZXNv
dXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3Vy
Y2VMb2FkSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVzb3VyY2VM
b2FkSW5mby5tbToKKyAgICAgICAgKC1bX1dLUmVzb3VyY2VMb2FkSW5mbyBmcmFtZV0pOgorICAg
ICAgICAoLVtfV0tSZXNvdXJjZUxvYWRJbmZvIHBhcmVudEZyYW1lXSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Nh
bkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3ByaW50T3BlcmF0
aW9uV2l0aFByaW50SW5mbzpmb3JGcmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAgICgtW1dLUmVs
b2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6XSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW06Cisg
ICAgICAgICgrW1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIGxvb2tVcEZyYW1lRnJvbUhhbmRsZTpd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgor
ICAgICAgICAoV2ViS2l0OjphZGRQYXJhbWV0ZXJzRnJvbUZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjppbnN0YWxsU2VydmljZVdvcmtlcik6CisKIDIwMjAtMDEtMTAgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBFeHBhbmQgX1dLUmVzb3VyY2VM
b2FkRGVsZWdhdGUgY2FsbGJhY2tzCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAko
cmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcs
NyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvCiAgICAgZW5jb2Rl
ciA8PCBmcmFtZUFuY2VzdG9yT3JpZ2luczsKICAgICBlbmNvZGVyIDw8IGlzSFRUUFNVcGdyYWRl
RW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQ7CisgICAg
ZW5jb2RlciA8PCBwYXJlbnRGcmFtZUlEOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
ICAgIGVuY29kZXIgPDwgc2VydmljZVdvcmtlcnNNb2RlOwpAQCAtMjU1LDYgKzI1NiwxMiBAQCBP
cHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycz4gCiAgICAgaWYgKCFwYWdlSGFz
UmVzb3VyY2VMb2FkQ2xpZW50KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIHJl
c3VsdC5wYWdlSGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gKnBhZ2VIYXNSZXNvdXJjZUxvYWRDbGll
bnQ7CisgICAgCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gcGFyZW50
RnJhbWVJRDsKKyAgICBkZWNvZGVyID4+IHBhcmVudEZyYW1lSUQ7CisgICAgaWYgKCFwYXJlbnRG
cmFtZUlEKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJlc3VsdC5wYXJlbnRG
cmFtZUlEID0gV1RGTW92ZSgqcGFyZW50RnJhbWVJRCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgT3B0aW9uYWw8U2VydmljZVdvcmtlcnNNb2RlPiBzZXJ2aWNlV29ya2Vyc01v
ZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTQzNDUpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiBmcmFtZUFuY2VzdG9yT3JpZ2luczsKICAg
ICBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBwYWdlSGFz
UmVzb3VyY2VMb2FkQ2xpZW50IHsgZmFsc2UgfTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgV2ViQ29yZTo6U2VydmljZVdvcmtlcnNNb2RlIHNlcnZpY2VXb3JrZXJzTW9kZSB7IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSB9OwpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAkocmV2
aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYsNyArMzM2LDkgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29yawogUmVzb3VyY2VMb2FkSW5mbyBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlTG9hZEluZm8oKQogewogICAgIHJldHVybiB7Ci0g
ICAgICAgIG1fcmVzb3VyY2VMb2FkSUQKKyAgICAgICAgbV9yZXNvdXJjZUxvYWRJRCwKKyAgICAg
ICAgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsCisgICAgICAgIG1fcGFyYW1ldGVycy5wYXJlbnRG
cmFtZUlELAogICAgIH07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNl
TG9hZEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxv
YWRJbmZvLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1Jlc291
cmNlTG9hZEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTYgKzI3LDIxIEBACiAKICNpbmNs
dWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHN0cnVjdCBSZXNvdXJjZUxvYWRJbmZvIHsKIAogICAgIE5ldHdvcmtS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlTG9hZElEOworICAgIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiAgICAgCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgZW5jb2RlciA8PCByZXNvdXJj
ZUxvYWRJRDsKKyAgICAgICAgZW5jb2RlciA8PCBmcmFtZUlEOworICAgICAgICBlbmNvZGVyIDw8
IHBhcmVudEZyYW1lSUQ7CiAgICAgfQogCiAgICAgc3RhdGljIE9wdGlvbmFsPFJlc291cmNlTG9h
ZEluZm8+IGRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC00Niw4ICs1MSwyMCBAQCBz
dHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbyB7CiAgICAgICAgIGlmICghcmVzb3VyY2VMb2FkSUQpCiAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisgICAgICAgIE9wdGlvbmFsPE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CisgICAgICAgIGRlY29kZXIg
Pj4gZnJhbWVJRDsKKyAgICAgICAgaWYgKCFmcmFtZUlEKQorICAgICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+PiBwYXJlbnRGcmFtZUlEOworICAgICAgICBkZWNvZGVyID4+IHBhcmVudEZyYW1l
SUQ7CisgICAgICAgIGlmICghcGFyZW50RnJhbWVJRCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKICAgICAgICAgcmV0dXJuIHt7CiAgICAgICAgICAgICBXVEZNb3ZlKCpyZXNv
dXJjZUxvYWRJRCksCisgICAgICAgICAgICBXVEZNb3ZlKCpmcmFtZUlEKSwKKyAgICAgICAgICAg
IFdURk1vdmUoKnBhcmVudEZyYW1lSUQpLAogICAgICAgICB9fTsKICAgICB9CiB9OwpJbmRleDog
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgJKHJl
dmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFt
ZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw0ICszMCw2IEBACiBXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUg
OiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KIAorQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSB1aW50NjRfdCBmcmFtZUlEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0JKHJldmlzaW9uIDI1
NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogCi1AaW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUgewotICAg
IEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7Ci19CitA
aW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUKIAogLSAodm9pZClkZWFsbG9jCiB7CkBAIC01
NSw3ICs1Myw3IEBAIC0gKE5TVUludGVnZXIpaGFzaAogICAgIHJldHVybiBfZnJhbWVIYW5kbGUt
PmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCi0tICh1aW50NjRfdClfZnJhbWVJRAorLSAodWlu
dDY0X3QpZnJhbWVJRAogewogICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJ
bnQ2NCgpOwogfQpAQCAtODUsMTQgKzgzLDE0IEBAIC0gKGlkKWluaXRXaXRoQ29kZXI6KE5TQ29k
ZXIgKilkZWNvZGVyCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgQVBJOjpPYmpl
Y3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBXZWJDb3JlOjpm
cmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUpLCBmYWxz
ZSk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxl
PihzZWxmLCBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBl
PihmcmFtZUlELnVuc2lnbmVkTG9uZ0xvbmdWYWx1ZSksIGZhbHNlKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQogCiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0g
ICAgW2NvZGVyIGVuY29kZU9iamVjdDpAKFtzZWxmIF9mcmFtZUlEXSkgZm9yS2V5OkAiZnJhbWVJ
RCJdOworICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6QChbc2VsZiBmcmFtZUlEXSkgZm9yS2V5OkAi
ZnJhbWVJRCJdOwogfQogCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50
YXRpb24KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRs
ZUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaAkocmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsOCArMzYsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEFQ
STo6RnJhCiAKIH0KIAotQGludGVyZmFjZSBfV0tGcmFtZUhhbmRsZSAoKSA8V0tPYmplY3Q+Ci0K
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdWludDY0X3QgX2ZyYW1lSUQ7Ci0KK0Bp
bnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUgKCkgPFdLT2JqZWN0PiB7CitAcGFja2FnZQorICAgIEFQ
STo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7Cit9CiBAZW5k
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUmVzb3VyY2VMb2FkSW5mby5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElSZXNvdXJjZUxv
YWRJbmZvLmgJKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElSZXNvdXJjZUxvYWRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAg
cHVibGljOgogICAgIH0KIAogICAgIFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZp
ZXIgcmVzb3VyY2VMb2FkSUQoKSBjb25zdCB7IHJldHVybiBtX2luZm8ucmVzb3VyY2VMb2FkSUQ7
IH0KKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX2luZm8uZnJhbWVJRDsgfQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gcGFyZW50RnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1faW5mby5wYXJlbnRG
cmFtZUlEOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVzb3VyY2VMb2FkSW5mbyhXZWJL
aXQ6OlJlc291cmNlTG9hZEluZm8mJiBpbmZvKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCShyZXZpc2lvbiAyNTQzNDUpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgLSAodm9pZClzaG93UmVzb3VyY2VzCiAtICh2
b2lkKXNob3dNYWluUmVzb3VyY2VGb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZQogewog
ICAgIGlmIChhdXRvKiBwYWdlID0gX2luc3BlY3Rvci0+aW5zcGVjdGVkUGFnZSgpKQotICAgICAg
ICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndl
YkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsK
KyAgICAgICAgX2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nl
c3MoKS53ZWJGcmFtZShmcmFtZS0+X2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkpKTsKIH0KIAogLSAo
dm9pZClhdHRhY2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tS
ZXNvdXJjZUxvYWRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8uaAkocmV2aXNpb24gMjU0MzQ1KQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMjMsNiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKK0BjbGFz
cyBfV0tGcmFtZUhhbmRsZTsKKwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCkBAIC0zMiw2ICsz
Niw4IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW8KIC0gKGluc3Rh
bmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIHVpbnQ2NF90IHJlc291cmNlTG9hZElEOworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBfV0tGcmFtZUhhbmRsZSogZnJhbWU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIG51bGxhYmxlKSBfV0tGcmFtZUhhbmRsZSogcGFyZW50RnJhbWU7CiAKIEBlbmQKIApJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jlc291cmNlTG9hZElu
Zm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Jlc291cmNlTG9hZEluZm8ubW0JKHJldmlzaW9uIDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZXNvdXJjZUxvYWRJbmZvLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw3ICsyNiw5IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIl9XS1Jlc291
cmNlTG9hZEluZm8uaCIKIAorI2ltcG9ydCAiQVBJRnJhbWVIYW5kbGUuaCIKICNpbXBvcnQgIkFQ
SVJlc291cmNlTG9hZEluZm8uaCIKKyNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIK
ICNpbXBvcnQgIl9XS1Jlc291cmNlTG9hZEluZm9JbnRlcm5hbC5oIgogCiBAaW1wbGVtZW50YXRp
b24gX1dLUmVzb3VyY2VMb2FkSW5mbwpAQCAtNDIsNiArNDQsMjAgQEAgLSAodWludDY0X3QpcmVz
b3VyY2VMb2FkSUQKICAgICByZXR1cm4gX2luZm8tPnJlc291cmNlTG9hZElEKCkudG9VSW50NjQo
KTsKIH0KIAorLSAoX1dLRnJhbWVIYW5kbGUgKilmcmFtZQoreworICAgIGlmIChhdXRvIGZyYW1l
SUQgPSBfaW5mby0+ZnJhbWVJRCgpKQorICAgICAgICByZXR1cm4gd3JhcHBlcihBUEk6OkZyYW1l
SGFuZGxlOjpjcmVhdGUoKmZyYW1lSUQpKTsKKyAgICByZXR1cm4gbmlsOworfQorCistIChfV0tG
cmFtZUhhbmRsZSAqKXBhcmVudEZyYW1lCit7CisgICAgaWYgKGF1dG8gcGFyZW50RnJhbWVJRCA9
IF9pbmZvLT5wYXJlbnRGcmFtZUlEKCkpCisgICAgICAgIHJldHVybiB3cmFwcGVyKEFQSTo6RnJh
bWVIYW5kbGU6OmNyZWF0ZSgqcGFyZW50RnJhbWVJRCkpOworICAgIHJldHVybiBuaWw7Cit9CisK
IC0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0CiB7CiAgICAgcmV0dXJuICpfaW5mbzsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCShy
ZXZpc2lvbiAyNTQzNDUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2Vi
Vmlld01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgLSAodm9pZClf
c2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRlcgogCiAtIChCT09MKV9jYW5DaGFuZ2VGcmFt
ZUxheW91dDooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRvKiB3
ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlk
ZW50aWZpZXJGcm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKKyAgICBpZiAoYXV0byogd2Vi
RnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVIYW5kbGUtPl9mcmFt
ZUhhbmRsZS0+ZnJhbWVJRCgpKSkKICAgICAgICAgcmV0dXJuIF9pbXBsLT5jYW5DaGFuZ2VGcmFt
ZUxheW91dCgqd2ViRnJhbWVQcm94eSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTU0OCw3
ICsxNTQ4LDcgQEAgLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdAogCiAt
IChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmlu
dEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVIYW5kbGUK
IHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJh
bWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkp
CisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1l
KGZyYW1lSGFuZGxlLT5fZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkpCiAgICAgICAgIHJldHVybiBf
aW1wbC0+cHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywgKndlYkZyYW1lUHJv
eHkpOwogICAgIHJldHVybiBuaWw7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVy
eUF0dGVtcHRlci5tbQkocmV2aXNpb24gMjU0MzQ1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTYzLDcgKzYzLDcgQEAgLSAoQk9PTClhdHRlbXB0UmVjb3ZlcnkKICAgICBpZiAo
IXdlYlZpZXcpCiAgICAgICAgIHJldHVybiBOTzsKIAotICAgIFdlYktpdDo6V2ViRnJhbWVQcm94
eSogd2ViRnJhbWVQcm94eSA9IHdlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURdKSk7Cisg
ICAgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2Ut
PnByb2Nlc3MoKS53ZWJGcmFtZShfZnJhbWVIYW5kbGUtPl9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgp
KTsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkpCiAgICAgICAgIHJldHVybiBOTzsKIApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0JKHJldmlzaW9u
IDI1NDM0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC03MzQsNyArNzM0LDcgQEAgLSAoTlNVSW50ZWdlcilfd2tfcGFn
ZUNvdW50Rm9yUHJpbnRGb3JtYQogCiAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQ7CiAgICAgaWYgKF9XS0ZyYW1lSGFuZGxlICpoYW5kbGUgPSBwcmludEZvcm1hdHRlci5mcmFt
ZVRvUHJpbnQpCi0gICAgICAgIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9t
SUQoaGFuZGxlLl9mcmFtZUlEKTsKKyAgICAgICAgZnJhbWVJRCA9IGhhbmRsZS0+X2ZyYW1lSGFu
ZGxlLT5mcmFtZUlEKCk7CiAgICAgZWxzZSBpZiAoYXV0byBtYWluRnJhbWUgPSBfcGFnZS0+bWFp
bkZyYW1lKCkpCiAgICAgICAgIGZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKICAgICBl
bHNlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAkocmV2aXNpb24gMjU0
MzQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw3ICsxOTAsNyBAQCBzdGF0
aWMgSlNWYWx1ZVJlZiBldmFsdWF0ZUphdmFTY3JpcHRDYWxsCiAgICAgaWYgKCFhdXRvbWF0aW9u
U2Vzc2lvblByb3h5KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7CiAKLSAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCA9IFdlYkNvcmU6OmZy
YW1lSWRlbnRpZmllckZyb21JRChKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBd
LCBleGNlcHRpb24pKTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCA9IG1h
a2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllclR5cGU+KEpTVmFsdWVU
b051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwogICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNl
cHRpb24pOwogICAgIGlmIChKU1ZhbHVlSXNTdHJpbmcoY29udGV4dCwgYXJndW1lbnRzWzJdKSkg
ewogICAgICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKEpTVmFsdWVUb1N0cmluZ0NvcHkoY29u
dGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQkocmV2aXNpb24gMjU0MzQ1KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5GcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQAog
CiArIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSGFuZGxlOihfV0tGcmFtZUhhbmRsZSAq
KWhhbmRsZQogewotICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhhbmRsZS5fZnJh
bWVJRCkpKTsKKyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGhhbmRsZS0+X2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkpKTsKIH0KIAogLSAo
dm9pZClkZWFsbG9jCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCShyZXZpc2lvbiAyNTQzNDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9u
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MRnJhbWVPd25lckVsZW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybVN0cmF0ZWdpZXMuaD4KQEAgLTI1Myw2ICsyNTQsMjIgQEAgYm9vbCBXZWJMb2FkZXJTdHJh
dGVneTo6dHJ5TG9hZGluZ1VzaW5nVQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIHZv
aWQgYWRkUGFyYW1ldGVyc0Zyb21GcmFtZShjb25zdCBGcmFtZSogZnJhbWUsIE5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIGlmICghZnJhbWUpCisgICAg
ICAgIHJldHVybjsKKworICAgIHBhcmFtZXRlcnMuaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZnJh
bWUtPnNldHRpbmdzKCkuSFRUUFNVcGdyYWRlRW5hYmxlZCgpOworCisgICAgaWYgKGF1dG8qIHBh
Z2UgPSBmcmFtZS0+cGFnZSgpKQorICAgICAgICBwYXJhbWV0ZXJzLnBhZ2VIYXNSZXNvdXJjZUxv
YWRDbGllbnQgPSBwYWdlLT5oYXNSZXNvdXJjZUxvYWRDbGllbnQoKTsKKworICAgIGlmIChhdXRv
KiBvd25lckVsZW1lbnQgPSBmcmFtZS0+b3duZXJFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGF1
dG8qIHBhcmVudEZyYW1lID0gb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAg
ICAgICAgICBwYXJhbWV0ZXJzLnBhcmVudEZyYW1lSUQgPSBwYXJlbnRGcmFtZS0+bG9hZGVyKCku
Y2xpZW50KCkuZnJhbWVJRCgpOworICAgIH0KK30KKwogdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxv
YWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJSZXNvdXJjZUxv
YWRlcjo6VHJhY2tpbmdQYXJhbWV0ZXJzJiB0cmFja2luZ1BhcmFtZXRlcnMsIGJvb2wgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgU2Vjb25kcyBtYXhpbXVtQnVmZmVy
aW5nVGltZSkKIHsKICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIgPSByZXNv
dXJjZUxvYWRlci5pZGVudGlmaWVyKCk7CkBAIC0yODYsMTEgKzMwMyw3IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb20KICAgICBsb2FkUGFyYW1ldGVycy5tYXhpbXVt
QnVmZmVyaW5nVGltZSA9IG1heGltdW1CdWZmZXJpbmdUaW1lOwogICAgIGxvYWRQYXJhbWV0ZXJz
Lm9wdGlvbnMgPSByZXNvdXJjZUxvYWRlci5vcHRpb25zKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMu
cHJlZmxpZ2h0UG9saWN5ID0gcmVzb3VyY2VMb2FkZXIub3B0aW9ucygpLnByZWZsaWdodFBvbGlj
eTsKLSAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgbG9hZFBhcmFtZXRlcnMuaXNIVFRQU1VwZ3Jh
ZGVFbmFibGVkID0gZnJhbWUtPnNldHRpbmdzKCkuSFRUUFNVcGdyYWRlRW5hYmxlZCgpOwotICAg
ICAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICBsb2FkUGFy
YW1ldGVycy5wYWdlSGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gcGFnZS0+aGFzUmVzb3VyY2VMb2Fk
Q2xpZW50KCk7Ci0gICAgfQorICAgIGFkZFBhcmFtZXRlcnNGcm9tRnJhbWUoZnJhbWUsIGxvYWRQ
YXJhbWV0ZXJzKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBsb2FkUGFyYW1l
dGVycy5zZXJ2aWNlV29ya2Vyc01vZGUgPSByZXNvdXJjZUxvYWRlci5vcHRpb25zKCkuc2Vydmlj
ZVdvcmtlcnNNb2RlOwpAQCAtNTgwLDggKzU5Myw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OmxvYWRSZXNvdXJjZVN5bmMKICAgICAgICAgICAgIGxvYWRQYXJhbWV0ZXJzLmNzcFJlc3BvbnNl
SGVhZGVycyA9IGNvbnRlbnRTZWN1cml0eVBvbGljeS0+cmVzcG9uc2VIZWFkZXJzKCk7CiAgICAg
fQogICAgIGxvYWRQYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdEhlYWRlcnMgPSBvcmlnaW5hbFJl
cXVlc3RIZWFkZXJzOwotICAgIGlmIChwYWdlKQotICAgICAgICBsb2FkUGFyYW1ldGVycy5wYWdl
SGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gcGFnZS0+aGFzUmVzb3VyY2VMb2FkQ2xpZW50KCk7Cisg
ICAgYWRkUGFyYW1ldGVyc0Zyb21GcmFtZSh3ZWJGcmFtZS0+Y29yZUZyYW1lKCksIGxvYWRQYXJh
bWV0ZXJzKTsKIAogICAgIGRhdGEuc2hyaW5rKDApOwogCkBAIC02NDcsOCArNjU5LDcgQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZChGcgogICAgICAgICBpZiAoYXV0byog
Y29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
KQogICAgICAgICAgICAgbG9hZFBhcmFtZXRlcnMuY3NwUmVzcG9uc2VIZWFkZXJzID0gY29udGVu
dFNlY3VyaXR5UG9saWN5LT5yZXNwb25zZUhlYWRlcnMoKTsKICAgICB9Ci0gICAgaWYgKGF1dG8q
IHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKQotICAgICAgICBsb2FkUGFyYW1ldGVycy5wYWdlSGFz
UmVzb3VyY2VMb2FkQ2xpZW50ID0gcGFnZS0+aGFzUmVzb3VyY2VMb2FkQ2xpZW50KCk7CisgICAg
YWRkUGFyYW1ldGVyc0Zyb21GcmFtZSgmZnJhbWUsIGxvYWRQYXJhbWV0ZXJzKTsKIAogI2lmIEVO
QUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgbG9hZFBhcmFtZXRlcnMubWFpbkRvY3VtZW50
VVJMID0gZG9jdW1lbnQtPnRvcERvY3VtZW50KCkudXJsKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyNTQzNDUpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjppbnN0CiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtb3Zl
ZCBkaXJlY3RseSB0byBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uCiAgICAg
Ly8gSWYgaXQgd2VyZW4ndCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50J3MgZGVw
ZW5kZW5jZSBvbiBXZWJEb2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBlbi4K
ICAgICAvLyBGSVhNRTogV2VpcmQgdG8gcGFzcyBtX3ByZXZpb3VzU2VydmljZVdvcmtlcklEIGFz
IGEgRnJhbWVJZGVudGlmaWVyLgotICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBtYWtlVW5p
cXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIG1fd2ViUGFnZVByb3h5
SUQsIG1fcGFnZUlELCBmcmFtZUlkZW50aWZpZXJGcm9tSUQoKyttX3ByZXZpb3VzU2VydmljZVdv
cmtlcklEKSwgZWZmZWN0aXZlVXNlckFnZW50KTsKKyAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50
ID0gbWFrZVVuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBtX3dl
YlBhZ2VQcm94eUlELCBtX3BhZ2VJRCwgbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyVHlwZT4oKyttX3ByZXZpb3VzU2VydmljZVdvcmtlcklEKSwgZWZmZWN0aXZl
VXNlckFnZW50KTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJh
bWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKICAgICBtX2xvYWRlcnMuYWRkKFdURk1vdmUo
ZnJhbWVMb2FkZXJDbGllbnQpKTsKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU0MzcyKQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDEtMTAgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBFeHBvc2UgZnJhbWUg
aW5mb3JtYXRpb24gb24gX1dLUmVzb3VyY2VMb2FkSW5mbworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NzEzMjI5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkRGVsZWdh
dGUubW06CisgICAgICAgIChURVNUKToKKwogMjAyMC0wMS0xMCAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0ZXN0IGFzc2VydGlvbnMg
YWZ0ZXIgcjI1NDM0NQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZERlbGVnYXRlLm1tCShyZXZpc2lvbiAy
NTQzNjcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNl
TG9hZERlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0
ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0ZyYW1lSGFuZGxl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9fV0tSZXNvdXJjZUxvYWRJbmZvLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CkBAIC0xMjksNyArMTMwLDcgQEAgVEVTVChSZXNvdXJjZUxvYWREZWxlZ2F0ZSwgQmVhY29uQW5k
U3luYwogewogICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKICAgICAgICAg
eyAiLyIsIHsgImhlbGxvIiB9IH0sCi0gICAgICAgIHsgIi94aHJUYXJnZXQiLCB7ICJoaSIgfSB9
LAorICAgICAgICB7ICIveGhyVGFyZ2V0IiwgeyB7eyAiQ29udGVudC1UeXBlIiwgInRleHQvaHRt
bCIgfX0sICAiaGkiIH0gfSwKICAgICAgICAgeyAiL2JlYWNvblRhcmdldCIsIHsgImhpIiB9IH0s
CiAgICAgfSk7CiAKQEAgLTE0MCw5ICsxNDEsMTEgQEAgVEVTVChSZXNvdXJjZUxvYWREZWxlZ2F0
ZSwgQmVhY29uQW5kU3luYwogICAgIF9fYmxvY2sgYm9vbCByZWNlaXZlZENhbGxiYWNrID0gZmFs
c2U7CiAgICAgYXV0byByZXNvdXJjZUxvYWREZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3RSZXNvdXJj
ZUxvYWREZWxlZ2F0ZSBuZXddKTsKICAgICBbd2ViVmlldyBfc2V0UmVzb3VyY2VMb2FkRGVsZWdh
dGU6cmVzb3VyY2VMb2FkRGVsZWdhdGUuZ2V0KCldOwotICAgIFtyZXNvdXJjZUxvYWREZWxlZ2F0
ZSBzZXREaWRTZW5kUmVxdWVzdDpeKFdLV2ViVmlldyAqLCBfV0tSZXNvdXJjZUxvYWRJbmZvICos
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCkgeworICAgIFtyZXNvdXJjZUxvYWREZWxlZ2F0ZSBzZXRE
aWRTZW5kUmVxdWVzdDpeKFdLV2ViVmlldyAqLCBfV0tSZXNvdXJjZUxvYWRJbmZvICppbmZvLCBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QpIHsKICAgICAgICAgcmVxdWVzdEZyb21EZWxlZ2F0ZSA9IHJl
cXVlc3Q7CiAgICAgICAgIHJlY2VpdmVkQ2FsbGJhY2sgPSB0cnVlOworICAgICAgICBFWFBFQ1Rf
VFJVRSghIWluZm8uZnJhbWUpOworICAgICAgICBFWFBFQ1RfRkFMU0UoISFpbmZvLnBhcmVudEZy
YW1lKTsKICAgICB9XTsKICAgICAKICAgICBfX2Jsb2NrIGJvb2wgcmVjZWl2ZWRBbGVydCA9IGZh
bHNlOwpAQCAtMjY0LDYgKzI2NywyNyBAQCBURVNUKFJlc291cmNlTG9hZERlbGVnYXRlLCBMb2Fk
SW5mbykKICAgICBFWFBFQ1RfRVEobG9hZEluZm9zWzZdLmdldCgpLnJlc291cmNlTG9hZElELCBs
b2FkSW5mb3NbN10uZ2V0KCkucmVzb3VyY2VMb2FkSUQpOwogICAgIEVYUEVDVF9FUShsb2FkSW5m
b3NbNl0uZ2V0KCkucmVzb3VyY2VMb2FkSUQsIGxvYWRJbmZvc1s4XS5nZXQoKS5yZXNvdXJjZUxv
YWRJRCk7CiAgICAgRVhQRUNUX05FKGxvYWRJbmZvc1s2XS5nZXQoKS5yZXNvdXJjZUxvYWRJRCwg
bG9hZEluZm9zWzBdLmdldCgpLnJlc291cmNlTG9hZElEKTsKKyAgICBhdXRvIGNoZWNrRnJhbWVz
ID0gXihzaXplX3QgaW5kZXgsIF9XS0ZyYW1lSGFuZGxlICpleHBlY3RlZEZyYW1lLCBfV0tGcmFt
ZUhhbmRsZSAqZXhwZWN0ZWRQYXJlbnQpIHsKKyAgICAgICAgX1dLUmVzb3VyY2VMb2FkSW5mbyAq
aW5mbyA9IGxvYWRJbmZvc1tpbmRleF0uZ2V0KCk7CisgICAgICAgIEVYUEVDVF9FUSghIWluZm8u
ZnJhbWUsICEhZXhwZWN0ZWRGcmFtZSk7CisgICAgICAgIEVYUEVDVF9FUSghIWluZm8ucGFyZW50
RnJhbWUsICEhZXhwZWN0ZWRQYXJlbnQpOworICAgICAgICBFWFBFQ1RfRVEoaW5mby5mcmFtZS5m
cmFtZUlELCBleHBlY3RlZEZyYW1lLmZyYW1lSUQpOworICAgICAgICBFWFBFQ1RfRVEoaW5mby5w
YXJlbnRGcmFtZS5mcmFtZUlELCBleHBlY3RlZFBhcmVudC5mcmFtZUlEKTsKKyAgICB9OworICAg
IF9XS0ZyYW1lSGFuZGxlICptYWluID0gbG9hZEluZm9zWzBdLmdldCgpLmZyYW1lOworICAgIF9X
S0ZyYW1lSGFuZGxlICpzdWIgPSBsb2FkSW5mb3NbOF0uZ2V0KCkuZnJhbWU7CisgICAgRVhQRUNU
X1RSVUUoISFtYWluKTsKKyAgICBFWFBFQ1RfVFJVRSghIXN1Yik7CisgICAgRVhQRUNUX1RSVUUo
bWFpbi5mcmFtZUlEICE9IHN1Yi5mcmFtZUlEKTsKKyAgICBjaGVja0ZyYW1lcygwLCBtYWluLCBu
aWwpOworICAgIGNoZWNrRnJhbWVzKDEsIG1haW4sIG5pbCk7CisgICAgY2hlY2tGcmFtZXMoMiwg
bWFpbiwgbmlsKTsKKyAgICBjaGVja0ZyYW1lcygzLCBzdWIsIG1haW4pOworICAgIGNoZWNrRnJh
bWVzKDQsIHN1YiwgbWFpbik7CisgICAgY2hlY2tGcmFtZXMoNSwgc3ViLCBtYWluKTsKKyAgICBj
aGVja0ZyYW1lcyg2LCBzdWIsIG1haW4pOworICAgIGNoZWNrRnJhbWVzKDcsIHN1YiwgbWFpbik7
CisgICAgY2hlY2tGcmFtZXMoOCwgc3ViLCBtYWluKTsKIAogICAgIEVYUEVDVF9FUShvdGhlclBh
cmFtZXRlcnMuc2l6ZSgpLCA5dWxsKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoTlNTdHJpbmdGcm9t
Q2xhc3MoW290aGVyUGFyYW1ldGVyc1swXSBjbGFzc10pLCAiTlNNdXRhYmxlVVJMUmVxdWVzdCIp
Owo=
</data>
<flag name="review"
          id="403200"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>