<?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>233939</bug_id>
          
          <creation_ts>2021-12-07 10:57:38 -0800</creation_ts>
          <short_desc>Add a `DOMPasteAccessCategory` to control which pasteboard the WebProcess is granted access to when pasting</short_desc>
          <delta_ts>2021-12-09 19:10:17 -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>
          
          <blocked>191379</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821113</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 10:57:38 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821152</commentid>
    <comment_count>1</comment_count>
      <attachid>446217</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 11:58:33 -0800</bug_when>
    <thetext>Created attachment 446217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821153</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-12-07 11:59:29 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821167</commentid>
    <comment_count>3</comment_count>
      <attachid>446217</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-07 12:25:39 -0800</bug_when>
    <thetext>Comment on attachment 446217
Patch

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

&gt; Source/WebCore/page/Frame.h:179
&gt; +    bool requestDOMPasteAccess(DOMPasteAccessCategory);

Could we make this default to `DOMPasteAccessCategory::General`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821168</commentid>
    <comment_count>4</comment_count>
      <attachid>446217</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 12:27:46 -0800</bug_when>
    <thetext>Comment on attachment 446217
Patch

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

&gt;&gt; Source/WebCore/page/Frame.h:179
&gt;&gt; +    bool requestDOMPasteAccess(DOMPasteAccessCategory);
&gt; 
&gt; Could we make this default to `DOMPasteAccessCategory::General`?

Sure.  I kinda like the explicit-ness of having the callsite know exactly which category they&apos;re asking for, but I can also see the benefit in having `General` be the default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821178</commentid>
    <comment_count>5</comment_count>
      <attachid>446222</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-07 12:44:51 -0800</bug_when>
    <thetext>Created attachment 446222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821290</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-07 16:56:23 -0800</bug_when>
    <thetext>Committed r286632 (244945@main): &lt;https://commits.webkit.org/244945@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446222.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821291</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-07 16:57:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/86183512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821605</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-12-08 10:06:07 -0800</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/286632/webkit

broke 3 pasteboard tests on iOS 15 

editing/pasteboard/dom-paste/dom-paste-confirmation.html
editing/pasteboard/dom-paste/dom-paste-consecutive-confirmations.html
editing/pasteboard/dom-paste/dom-paste-requires-user-gesture.html

tracking in https://bugs.webkit.org/show_bug.cgi?id=234014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821719</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-12-08 12:35:10 -0800</bug_when>
    <thetext>Reverted r286632 for reason:

Broke 3 tests on iOS

Committed r286705 (244984@trunk): &lt;https://commits.webkit.org/244984@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821955</commentid>
    <comment_count>10</comment_count>
      <attachid>446487</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-08 19:33:41 -0800</bug_when>
    <thetext>Created attachment 446487
Patch

fix mistake in `-[WKContentView pasteForWebView:]`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822486</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-09 19:10:09 -0800</bug_when>
    <thetext>Committed r286825 (245059@main): &lt;https://commits.webkit.org/245059@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446487.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446217</attachid>
            <date>2021-12-07 11:58:33 -0800</date>
            <delta_ts>2021-12-07 12:44:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233939-20211207125832.patch</filename>
            <type>text/plain</type>
            <size>62596</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YzdkY2MzN2MyMGE3ODlmZWMwMWRkMWI4Y2M0N2YzN2VhOWI2MDU5Li4w
OTRhMWI3YTk4Y2Y1NzEyM2Y5NTJmNzdlNTMzNmRjMzdmZjY5NzUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzkgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdo
aWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBw
YXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnRpbmcgYC1wYXN0ZUZvbnQ6YCA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTkxMzc5PiBy
ZXF1aXJlcyB0aGF0IHdlIHJlYWQgZnJvbSB0aGUgZm9udAorICAgICAgICBwYXN0ZWJvYXJkIGlu
c3RlYWQgb2YgdGhlIGdlbmVyYWwgcGFzdGVib2FyZC4gSW4gb3JkZXIgdG8gYWxsb3cgd2ViIGNv
bnRlbnQgdG8gdHJpZ2dlciB0aGlzCisgICAgICAgIChlLmcuIGBkb2N1bWVudC5leGVjQ29tbWFu
ZCgiUGFzdGVGb250IikpYCkgd2UgbXVzdCBoYXZlIGEgd2F5IGZvciB0aGUgV2ViUHJvY2VzcyB0
byBzaWduYWwKKyAgICAgICAgdGhhdCBpdCB3aXNoZXMgdG8gcmVhZCBmcm9tIHRoZSBmb250IHBh
c3RlYm9hcmQgaW5zdGVhZCBvZiB0aGUgZ2VuZXJhbCBwYXN0ZWJvYXJkLiBBcyBzdWNoLAorICAg
ICAgICBjcmVhdGUgYW5kIHBhc3MgYWxvbmcgYSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAgdG8g
YHJlcXVlc3RET01QYXN0ZUFjY2Vzc2AuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9y
LgorCisgICAgICAgICogZG9tL0RPTVBhc3RlQWNjZXNzLmg6CisgICAgICAgIENyZWF0ZSBgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeWAuCisKKyAgICAgICAgKiBNb2R1bGVzL2FzeW5jLWNsaXBib2Fy
ZC9DbGlwYm9hcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpyZWFkVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmQ6OnJlYWQpOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVBhc3RlQW5kTWF0Y2hTdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpleGVjdXRlUGFzdGVBc1BsYWluVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRl
UGFzdGVBc1F1b3RhdGlvbik6CisgICAgICAgIFVzZSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6
R2VuZXJhbGAuCisKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGll
bnQ6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICogcGFnZS9GcmFtZS5oOgorICAg
ICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnJlcXVlc3RE
T01QYXN0ZUFjY2Vzcyk6CisgICAgICAgIFBhc3MgYWxvbmcgdGhlIGBET01QYXN0ZUFjY2Vzc0Nh
dGVnb3J5YC4KKwogMjAyMS0xMi0wNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgQXNzZXJ0aW9uIGFmdGVyIHJlbW92aW5nIHN0eWxlc2hlZXQgd2l0aCBsb2Fk
aW5nIEBpbXBvcnQgcnVsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3NTUwNzlmMDJhNjI5YWUwYWQ0YjdkY2NjNzdj
MjcyNTc2Y2I0ZTU4Li4yYzFiNTk2NTY1MDEwMmE0MjZiYjQ0ZGQwZDJlYTMyMTBlYzA1MDhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEwMCBAQAorMjAyMS0xMi0wNyAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnlg
IHRvIGNvbnRyb2wgd2hpY2ggcGFzdGVib2FyZCB0aGUgV2ViUHJvY2VzcyBpcyBncmFudGVkIGFj
Y2VzcyB0byB3aGVuIHBhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMzkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudGluZyBgLXBhc3RlRm9udDpgIDxodHRwczovL3dlYmtpdC5v
cmcvYi8xOTEzNzk+IHJlcXVpcmVzIHRoYXQgd2UgcmVhZCBmcm9tIHRoZSBmb250CisgICAgICAg
IHBhc3RlYm9hcmQgaW5zdGVhZCBvZiB0aGUgZ2VuZXJhbCBwYXN0ZWJvYXJkLiBJbiBvcmRlciB0
byBhbGxvdyB3ZWIgY29udGVudCB0byB0cmlnZ2VyIHRoaXMKKyAgICAgICAgKGUuZy4gYGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJQYXN0ZUZvbnQiKSlgKSB3ZSBtdXN0IGhhdmUgYSB3YXkgZm9yIHRo
ZSBXZWJQcm9jZXNzIHRvIHNpZ25hbAorICAgICAgICB0aGF0IGl0IHdpc2hlcyB0byByZWFkIGZy
b20gdGhlIGZvbnQgcGFzdGVib2FyZCBpbnN0ZWFkIG9mIHRoZSBnZW5lcmFsIHBhc3RlYm9hcmQu
IEFzIHN1Y2gsCisgICAgICAgIGNyZWF0ZSBhbmQgcGFzcyBhbG9uZyBhIGBET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5YCB0byBgcmVxdWVzdERPTVBhc3RlQWNjZXNzYC4KKworICAgICAgICBObyBjaGFu
Z2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToK
KyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICBJbmRpY2F0ZSB3aGljaCBoZWFk
ZXIgaXMgYXNzb2NpYXRlZCB3aXRoIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKC1bV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSBp
bml0V2l0aFdlYlZpZXdJbXBsOnBhc3RlQWNjZXNzQ2F0ZWdvcnk6XSk6IEFkZGVkLgorICAgICAg
ICAoLVtXS0RPTVBhc3RlTWVudURlbGVnYXRlIG1lbnVEaWRDbG9zZTpdKToKKyAgICAgICAgKC1b
V0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSBfd2ViX2dyYW50RE9NUGFzdGVBY2Nlc3NdKTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVQcm9jZXNzU3dhcE9yRXhpdCk6
CisgICAgICAgIChXZWJLaXQ6OnBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6cGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlRE9NUGFzdGVSZXF1ZXN0Rm9yQ2F0
ZWdvcnlXaXRoUmVzdWx0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhpZGVET01Q
YXN0ZU1lbnVXaXRoUmVzdWx0KTogQWRkZWQuCisgICAgICAgICgtW1dLRE9NUGFzdGVNZW51RGVs
ZWdhdGUgaW5pdFdpdGhXZWJWaWV3SW1wbDpdKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmhhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3
IF93ZWJfZ3JhbnRET01QYXN0ZUFjY2Vzc10pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfZ3Jh
bnRET01QYXN0ZUFjY2Vzc10pOiBEZWxldGVkLgorICAgICAgICBQYXNzIHRoZSBgRE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeWAgdG8gdGhlIGBXS0RPTVBhc3RlTWVudURlbGVnYXRlYCBhbmQgdXNlIGl0
IGFzIHRoZSBgdGFyZ2V0YAorICAgICAgICBvZiB0aGUgYE5TTWVudUl0ZW1gIHNvIHRoYXQgd2Ug
Y2FuIHBhc3MgYWxvbmcgdGhlIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCBpbiB0aGUgYGFjdGlv
bmAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld10pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX3dpbGxIaWRlTWVudTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwYXN0ZUZvcldlYlZpZXc6XSk6CisgICAgICAgIChwYXN0ZWJvYXJkTmFtZUZvckFjY2Vz
c0NhdGVnb3J5KTogQWRkZWQuCisgICAgICAgIChwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkp
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfaGlkZVBhc3RlTWVudVdpdGhSZXN1
bHQ6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oYW5kbGVET01QYXN0ZVJl
cXVlc3RGb3JDYXRlZ29yeTpyZXN1bHQ6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF93aWxsUGVyZm9ybUFjdGlvbjpzZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2RpZFBlcmZvcm1BY3Rpb246c2VuZGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGhhbmRsZUtleVdlYkV2ZW50OndpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzRm9yQ2F0ZWdvcnk6ZWxlbWVudFJl
Y3Q6b3JpZ2luSWRlbnRpZmllcjpjb21wbGV0aW9uSGFuZGxlcjpdKTogQWRkZWQuCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3JlcXVlc3RET01QYXN0ZUFjY2Vzc1dp
dGhFbGVtZW50UmVjdDpvcmlnaW5JZGVudGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VD
bGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNj
ZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9wbGF5c3RhdGlvbi9Q
YWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xp
ZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERPTVBh
c3RlQWNjZXNzKToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUgYERPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnlgLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnBhc3RlQWNjZXNzQ2F0ZWdvcnlGb3JD
b21tYW5kKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVk
aXRDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFz
dGVDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6aXNQYXN0ZUNvbW1hbmROYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQpCisgICAgICAgIENyZWF0ZSBhIG1h
cHBpbmcgYmV0d2VlbiBwYXN0ZSBjb21tYW5kIG5hbWUgYW5kIGBET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5YC4KKwogMjAyMS0xMi0wNyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIENvY29hIFdlYkdMIHNob3VsZCBzdXBwb3J0IFVJIHNpZGUgY29tcG9zaXRp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBlMTcwZTA5M2NiYTljNTBkZmZjMjEx
NThiZjIwYjI4YWFkYzFhMGFlLi42YWU1MzdjNGJlY2I0MGNjZDQ3Njg2ZjdiMmQ5YTQ5MzM0Mzky
ODY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEt
MTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBh
IGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdoaWNoIHBhc3RlYm9hcmQgdGhl
IFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBwYXN0aW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM5MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRpbmcgYC1wYXN0
ZUZvbnQ6YCA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTkxMzc5PiByZXF1aXJlcyB0aGF0IHdlIHJl
YWQgZnJvbSB0aGUgZm9udAorICAgICAgICBwYXN0ZWJvYXJkIGluc3RlYWQgb2YgdGhlIGdlbmVy
YWwgcGFzdGVib2FyZC4gSW4gb3JkZXIgdG8gYWxsb3cgd2ViIGNvbnRlbnQgdG8gdHJpZ2dlciB0
aGlzCisgICAgICAgIChlLmcuIGBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGVGb250IikpYCkg
d2UgbXVzdCBoYXZlIGEgd2F5IGZvciB0aGUgV2ViUHJvY2VzcyB0byBzaWduYWwKKyAgICAgICAg
dGhhdCBpdCB3aXNoZXMgdG8gcmVhZCBmcm9tIHRoZSBmb250IHBhc3RlYm9hcmQgaW5zdGVhZCBv
ZiB0aGUgZ2VuZXJhbCBwYXN0ZWJvYXJkLiBBcyBzdWNoLAorICAgICAgICBjcmVhdGUgYW5kIHBh
c3MgYWxvbmcgYSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAgdG8gYHJlcXVlc3RET01QYXN0ZUFj
Y2Vzc2AuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6
OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisKIDIwMjEtMTItMDYgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tl
ZCBieSBgV2FsbFRpbWVgIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0
aXZlIGRhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMDJlOTQ2YmMxZmIwYjM1
NmJiMTVhYjgzNjBlODYxNDU1NDcyNDdjYy4uY2FjZDFiZTYzNzdkYjNhZTJhNTdhMDQ0YTQxMTk4
ZTY1Nzg2NWYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgYSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAgdG8gY29udHJvbCB3aGljaCBwYXN0ZWJv
YXJkIHRoZSBXZWJQcm9jZXNzIGlzIGdyYW50ZWQgYWNjZXNzIHRvIHdoZW4gcGFzdGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50aW5n
IGAtcGFzdGVGb250OmAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5MTM3OT4gcmVxdWlyZXMgdGhh
dCB3ZSByZWFkIGZyb20gdGhlIGZvbnQKKyAgICAgICAgcGFzdGVib2FyZCBpbnN0ZWFkIG9mIHRo
ZSBnZW5lcmFsIHBhc3RlYm9hcmQuIEluIG9yZGVyIHRvIGFsbG93IHdlYiBjb250ZW50IHRvIHRy
aWdnZXIgdGhpcworICAgICAgICAoZS5nLiBgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlRm9u
dCIpKWApIHdlIG11c3QgaGF2ZSBhIHdheSBmb3IgdGhlIFdlYlByb2Nlc3MgdG8gc2lnbmFsCisg
ICAgICAgIHRoYXQgaXQgd2lzaGVzIHRvIHJlYWQgZnJvbSB0aGUgZm9udCBwYXN0ZWJvYXJkIGlu
c3RlYWQgb2YgdGhlIGdlbmVyYWwgcGFzdGVib2FyZC4gQXMgc3VjaCwKKyAgICAgICAgY3JlYXRl
IGFuZCBwYXNzIGFsb25nIGEgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnlgIHRvIGByZXF1ZXN0RE9N
UGFzdGVBY2Nlc3NgLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9y
Q2xpZW50OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorCiAyMDIxLTEyLTAyICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkg
d29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkLmNwcAppbmRleCA0YWU3YmNjOTZm
YTczYzc2OTk3ZDJmMjU1N2RhZjRhNzU1ODViOGMxLi42MmU0YjFjZjJiYTZkYTM1NGIxNTRjNDhm
YTNiODczMmFjMmFhNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5j
LWNsaXBib2FyZC9DbGlwYm9hcmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5
bmMtY2xpcGJvYXJkL0NsaXBib2FyZC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIENsaXBi
b2FyZDo6cmVhZFRleHQoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogCiAgICAgYXV0
byBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKFBhZ2VQYXN0
ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKGZyYW1lLT5wYWdlSUQoKSkpOwogICAgIGF1dG8gY2hhbmdl
Q291bnRBdFN0YXJ0ID0gcGFzdGVib2FyZC0+Y2hhbmdlQ291bnQoKTsKLSAgICBpZiAoIWZyYW1l
LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKSkgeworICAgIGlmICghZnJhbWUtPnJlcXVlc3RET01Q
YXN0ZUFjY2VzcyhET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsKSkgewogICAgICAgICBw
cm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIENsaXBib2FyZDo6cmVhZChSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCiAgICAgYXV0byBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKFBhZ2VQYXN0ZWJvYXJkQ29udGV4dDo6Y3JlYXRlKGZyYW1lLT5wYWdl
SUQoKSkpOwogICAgIGF1dG8gY2hhbmdlQ291bnRBdFN0YXJ0ID0gcGFzdGVib2FyZC0+Y2hhbmdl
Q291bnQoKTsKIAotICAgIGlmICghZnJhbWUtPnJlcXVlc3RET01QYXN0ZUFjY2VzcygpKSB7Cisg
ICAgaWYgKCFmcmFtZS0+cmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkdlbmVyYWwpKSB7CiAgICAgICAgIHJlamVjdFByb21pc2VBbmRDbGVhckFjdGl2ZVNlc3Np
b24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01QYXN0ZUFjY2Vzcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNz
LmgKaW5kZXggOGJmYzE2N2IyNGUzNWYwN2I0MGJjYmY3NzNiODMzMmI3NzRjOWEwZC4uZGI1YTY0
NGNhNjI0N2ZkOWJhMWUwMWIyZThiNzNhNzIwMzEyMDI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBh
c3RlQWNjZXNzLmgKQEAgLTI5LDYgKzI5LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
ZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWludDhfdCB7CisgICAgR2VuZXJh
bCwKK307CisKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90IHsKICAg
ICBOb3RSZXF1ZXN0ZWRZZXQsCiAgICAgRGVuaWVkLApAQCAtNDUsNiArNDksMTMgQEAgZW51bSBj
bGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdCB7CiAKIG5hbWVzcGFjZSBXVEYg
ewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnk+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5OjpHZW5lcmFsCisgICAgPjsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZT4gewogICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCBmMTg3NTlk
MDYyZGY1OTZmOTQ1N2Q5MTkwYTU3MGE3MTQ5MmUzNGZjLi44YTg5N2NhYjgyMGExNGI0NjkzZmRk
N2QwODgyNmM3ZDhmMzRmNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAKQEAgLTg5OSw3ICs4OTksNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGUoRnJhbWUm
IGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoIWZyYW1lLnJlcXVlc3RET01QYXN0ZUFj
Y2VzcygpKQorICAgIGlmICghZnJhbWUucmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNj
ZXNzQ2F0ZWdvcnk6OkdlbmVyYWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmcmFt
ZS5lZGl0b3IoKS5wYXN0ZSgpOwpAQCAtOTMwLDcgKzkzMCw3IEBAIHN0YXRpYyBib29sIGV4ZWN1
dGVQYXN0ZUFuZE1hdGNoU3R5bGUoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRT
b3VyY2UKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgaWYgKCFmcmFtZS5yZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoKSkKKyAgICBpZiAoIWZyYW1lLnJlcXVlc3RET01QYXN0ZUFjY2Vz
cyhET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgZnJhbWUuZWRpdG9yKCkucGFzdGVBc1BsYWluVGV4dCgpOwpAQCAtOTQ1LDcgKzk0
NSw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVQYXN0ZUFzUGxhaW5UZXh0KEZyYW1lJiBmcmFtZSwg
RXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIGlmICghZnJhbWUucmVxdWVzdERPTVBhc3RlQWNjZXNzKCkpCisgICAgaWYgKCFm
cmFtZS5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJh
bCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZyYW1lLmVkaXRvcigpLnBhc3RlQXNQ
bGFpblRleHQoKTsKQEAgLTk2MCw3ICs5NjAsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGVB
c1F1b3RhdGlvbihGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzbwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoIWZyYW1lLnJlcXVlc3RET01Q
YXN0ZUFjY2VzcygpKQorICAgIGlmICghZnJhbWUucmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBmcmFtZS5lZGl0b3IoKS5wYXN0ZUFzUXVvdGF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwCmluZGV4IGMwODc4NWFmOGZjOTI0ZTM1M2ZmZDQ4M2RmN2I5NWRhMjQ0
M2FlODQuLmQ3Zjg1NmI5MDM1N2I0YzU4MDkxY2RiYmI0MDg1NWFiNTY2M2VjYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0yODUsNyArMjg1LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsKICAgICB2b2lk
IGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmluYWwgeyB9CiAKLSAgICBET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJl
dHVybiBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CisgICAgRE9N
UGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoRE9NUGFzdGVBY2Nlc3ND
YXRlZ29yeSwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gRE9NUGFzdGVBY2Nlc3NSZXNw
b25zZTo6RGVuaWVkRm9yR2VzdHVyZTsgfQogCiAgICAgYm9vbCBjYW5Db3B5Q3V0KEZyYW1lKiwg
Ym9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQog
ICAgIGJvb2wgY2FuUGFzdGUoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWwg
eyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRl
eCA4MjM3NGU3MjYyYzcwZWE5ZGZlNGQ2NGYyNWFiMTM1YWE2MDMzM2NmLi4xODE3NTMxY2I2OThi
OGE0ZWRhMjgxMGNjNDY2YzgxNjljYjE2M2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNz
IERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIAogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKQEAgLTEw
MSw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDYW5kaWRhdGVz
Rm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNwYWNlcyhUZXh0Q2hlY2tpbmdSZXN1
bHQpIHsgfQogCi0gICAgdmlydHVhbCBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01Q
YXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0
dWFsIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikgPSAwOwogCiAg
ICAgLy8gTm90aWZ5IGFuIGlucHV0IG1ldGhvZCB0aGF0IGEgY29tcG9zaXRpb24gd2FzIHZvbHVu
dGFyaWx5IGRpc2NhcmRlZCBieSBXZWJDb3JlLCBzbyB0aGF0IGl0IGNvdWxkIGNsZWFuIHVwIHRv
by4KICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgd2hlbiBhIGNvbXBvc2l0aW9u
IGlzIGNsb3NlZCBwZXIgYSByZXF1ZXN0IGZyb20gYW4gaW5wdXQgbWV0aG9kLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAppbmRleCA3Nzg4ZWU1NzU1ZmViZjAwM2Y5MjliNmRmNWRlMDk0ZmQ3YTkzMzhmLi5h
NTdiODcwNjBmN2I5NzIxY2NkODIyMDVjNTVhOTQwZjZkYmIxNzI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcApAQCAtNTYxLDcgKzU2MSw3IEBAIGJvb2wgRnJhbWU6OnNlbGVjdGlvbkNoYW5nZUNhbGxi
YWNrc0Rpc2FibGVkKCkgY29uc3QKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQog
Ci1ib29sIEZyYW1lOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKQorYm9vbCBGcmFtZTo6cmVxdWVz
dERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29y
eSkKIHsKICAgICBpZiAobV9zZXR0aW5ncy0+amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCgp
ICYmIG1fc2V0dGluZ3MtPmRvbVBhc3RlQWxsb3dlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTU4OSw3ICs1ODksNyBAQCBib29sIEZyYW1lOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKQog
ICAgICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAg
ICBhdXRvIHJlc3BvbnNlID0gY2xpZW50LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MobV9kb2MtPm9y
aWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCkpOworICAgICAgICBhdXRvIHJlc3BvbnNlID0g
Y2xpZW50LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MocGFzdGVBY2Nlc3NDYXRlZ29yeSwgbV9kb2Mt
Pm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCkpOwogICAgICAgICBnZXN0dXJlVG9rZW4t
PmRpZFJlcXVlc3RET01QYXN0ZUFjY2VzcyhyZXNwb25zZSk7CiAgICAgICAgIHN3aXRjaCAocmVz
cG9uc2UpIHsKICAgICAgICAgY2FzZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9y
Q29tbWFuZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCAxMjRkZjE4ODVmNzFkY2Q3ZDY1ZTAxZDY5ZmQ3
OWIxMDRhMDdlNjcyLi42ZGIwODYxMzc5NjU3M2RmYjU3MDllYzc5ZTEzZWRhNGFhNzFlODQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oCkBAIC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFz
SGFkVXNlckludGVyYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRVc2VySW50ZXJhY3Rp
b247IH0KICAgICB2b2lkIHNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbigpIHsgbV9oYXNIYWRVc2Vy
SW50ZXJhY3Rpb24gPSB0cnVlOyB9CiAKLSAgICBib29sIHJlcXVlc3RET01QYXN0ZUFjY2Vzcygp
OworICAgIGJvb2wgcmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkp
OwogCiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMDkzMGNmOTE3YmE3OTBlNTc1ZDg0Yjk2
OWVhYzA1ODFmNTJmNTE2ZS4uOTQyYzc2MWQzNjc1ZDljZGFkY2Y5ZGExZDQ1ZWI5M2I5ODIxMGIy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03NTgsNiAr
NzU4LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpD
T09QRGlzcG9zaXRpb24nOiBbJzxXZWJDb3JlL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5Lmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcic6IFsnPFdlYkNvcmUvR3JhcGhp
Y3NUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGln
aHQnOiBbJzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UnOiBbJzxXZWJDb3JlL0RPTVBh
c3RlQWNjZXNzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2Un
OiBbJzxXZWJDb3JlL0NvbG9yU3BhY2UuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtQnVmZmVySWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4nXSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5j
cHAKaW5kZXggOTIwNDQ0MGIwMjhmZDE3NWFmNmYwZmViMWM3ODBlYTdjYjkzOGRkOC4uMWE5MWM3
ZDc4N2Y3ZDNiODhhMmYwZmNiZDQ4ZWI3MmZlNmJmNTMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTU0OCw3ICs1NDgs
NyBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01l
ZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KAogfQogI2VuZGlmCiAKLXZvaWQgUGFnZUNsaWVu
dEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBJbnRSZWN0JiwgY29uc3QgU3RyaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01Q
YXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb21wbGV0aW9u
SGFuZGxlcihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNs
aWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuaAppbmRleCA0MmE0NDE3NjQwZGQ2Nzc4MDAwNjA5ZmMxM2M3N2RlMzU2YmNlOGExLi45OWQw
OTdhYmRlZmIxZTgzMmQzZjZmY2Q3YmVmOTIzNGJlMWNhMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xNjAsNyArMTYwLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpIGZpbmFsIHsg
fQogICAgIHZvaWQgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKSBmaW5hbCB7IH0KIAotICAgIHZv
aWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBT
dHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVz
cG9uc2UpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlKT4mJikgZmluYWw7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIp
CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1p
c3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3Qm
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5k
ZXggYTU4ODYxZmMzMTE5ZWNjOTRmM2FkYTAzMzk5MjBjYWMyNmE4MmVkNi4uMDk3MzQ0MzAzOTA2
MWI4Zjk4YjBjMDcxNzhlNGFmNmE1MDQ0MDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcubW0KQEAgLTkxMiwxMSArOTEyLDYgQEAgQUxMT1dfREVQUkVDQVRFRF9J
TVBMRU1FTlRBVElPTlNfRU5ECiAgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+bmFtZXNPZlByb21p
c2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbihkcm9wRGVzdGluYXRpb24pOwogfQogCi0tICh2
b2lkKV93ZWJfZ3JhbnRET01QYXN0ZUFjY2VzcwotewotICAgIF9kYXRhLT5faW1wbC0+aGFuZGxl
RE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
OjpHcmFudGVkRm9yR2VzdHVyZSk7Ci19Ci0KIC0gKHZvaWQpbWF5YmVJbnN0YWxsSWNvbkxvYWRp
bmdDbGllbnQKIHsKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQppbmRleCA1
YjA2YmM1N2RhNDFkYzJmMTI0NDgyZWM5MzhjZTA2MDVhNWUzZjkzLi4yZDMwNjljY2UyNTI0NDc1
OTlkMWQ2YmFlMzdkMDZhOWUyZWM2NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQpAQCAtMTIzMiwxMSArMTIzMiw2IEBAIC0gKHZvaWQp
X3dlYl9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQK
ICAgICBbc2VsZiBfZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpldmVudF07CiB9
CiAKLS0gKHZvaWQpX3dlYl9ncmFudERPTVBhc3RlQWNjZXNzCi17Ci0gICAgX2ltcGwtPmhhbmRs
ZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZTo6R3JhbnRlZEZvckdlc3R1cmUpOwotfQotCiAtICh2b2lkKV90YWtlRmluZFN0cmluZ0Zyb21T
ZWxlY3Rpb25JbnRlcm5hbDooaWQpc2VuZGVyCiB7CiAgICAgW3NlbGYgdGFrZUZpbmRTdHJpbmdG
cm9tU2VsZWN0aW9uOnNlbmRlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDZjM2UxYzk1NTA0MjA1NWIzMDE2ZTA0ZTRi
YzljNDAwYzVhNWM5MDUuLjgwNjk5M2NhNzNhOWNjZTM3NzUzZDgwNWE5YWI5ZjRjYjZiZDFhN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwCkBAIC00MTUsNyArNDE1LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6YmVnYW5FeGl0
RnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiAvKiBpbml0aWFsRnJhbWUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2Up
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBh
c3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZv
ckdlc3R1cmUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdl
Q2xpZW50SW1wbC5oCmluZGV4IGNhMzAwMDBlMWEwNmI4NTg4NjcxNmM4ZDk5MWVmNDg1OTYzZmQ2
MzUuLjdjMDhhMTNlMTBjNzU2Nzc0NTJiNzRmNTJiZTJiNDQ3YTVlZGFhMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTM2LDYg
KzM2LDcgQEAgY2xhc3MgVmlldzsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFz
cyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiB9CiAKQEAgLTE1OCw3ICsxNTksNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICAgICBJUEM6OkF0dGFjaG1lbnQgaG9zdEZpbGVEZXNjcmlwdG9yKCkgZmlu
YWw7Ci0gICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNj
ZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UpPiYmKSBmaW5hbDsKIAogICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbigpIG92ZXJyaWRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCAz
ZjZkZDFmMjQyZTdhMTE1ZWNmNzk4MzkwZjM0YjYzNWM2ZThkNmY5Li45MzQwOTQwMDIxNGI2YjY3
YjIwODlmN2QwZTM3ZWQwY2IxZWNiYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmgKQEAgLTEzNSw4ICsxMzUsNiBAQCBzdHJ1Y3QgVHJhbnNsYXRpb25D
b250ZXh0TWVudUluZm87CiAtICh2b2lkKV93ZWJfZGlkUGVyZm9ybURyYWdPcGVyYXRpb246KEJP
T0wpaGFuZGxlZDsKICNlbmRpZgogCi0tICh2b2lkKV93ZWJfZ3JhbnRET01QYXN0ZUFjY2VzczsK
LQogQG9wdGlvbmFsCiAtICh2b2lkKV93ZWJfZGlkQWRkTWVkaWFDb250cm9sc01hbmFnZXI6KGlk
KWNvbnRyb2xzTWFuYWdlcjsKIC0gKHZvaWQpX3dlYl9kaWRSZW1vdmVNZWRpYUNvbnRyb2xzTWFu
YWdlcjsKQEAgLTY1Miw5ICs2NTAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdGFrZUZvY3VzKFdl
YkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKICAgICB2b2lkIGNsZWFyUHJvbWlzZWREcmFnSW1hZ2Uo
KTsKIAotICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpOwotICAgIHZvaWQgaGFuZGxl
RE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
KTsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2UpPiYmKTsKKyAgICB2b2lkIGhhbmRsZURPTVBhc3RlUmVxdWVzdEZvckNhdGVnb3J5
V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlKTsKICAgICBOU01lbnUgKmRvbVBhc3RlTWVudSgpIGNvbnN0IHsg
cmV0dXJuIG1fZG9tUGFzdGVNZW51LmdldCgpOyB9CisgICAgdm9pZCBoaWRlRE9NUGFzdGVNZW51
V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKTsKIAogI2lmIEhBVkUo
VFJBTlNMQVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIGJv
b2wgY2FuSGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAzZDllODc3YjBjYjc1NjU0
YjYzOTE2Mzk1NTdmNTJiNjAzOTJjYWM5Li44OGM1ZGQ4OWMxNGY3OWI1ZjUwOGNlMmE1NDQ1Yjdm
NzUzMGI0YjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtMTAwNywxOSArMTAwNywyMSBAQCAtIChOU1N0cmluZyAqKWF0dGFjaG1lbnRJZGVu
dGlmaWVyCiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0PE5TTWVudURlbGVnYXRlPgotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6
KFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGw7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJW
aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbCBwYXN0ZUFjY2Vzc0NhdGVnb3J5OihX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5KWNhdGVnb3J5OwogQGVuZAogCiBAaW1wbGVt
ZW50YXRpb24gV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSB7CiAgICAgV2Vha1B0cjxXZWJLaXQ6Oldl
YlZpZXdJbXBsPiBfaW1wbDsKKyAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IF9j
YXRlZ29yeTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktp
dDo6V2ViVmlld0ltcGwmKWltcGwKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXdJbXBs
OihXZWJLaXQ6OldlYlZpZXdJbXBsJilpbXBsIHBhc3RlQWNjZXNzQ2F0ZWdvcnk6KFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkpY2F0ZWdvcnkKIHsKICAgICBpZiAoIShzZWxmID0gW3N1
cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIF9pbXBsID0gaW1wbDsKKyAg
ICBfY2F0ZWdvcnkgPSBjYXRlZ29yeTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMTAyNyw3
ICsxMDI5LDcgQEAgLSAodm9pZCltZW51RGlkQ2xvc2U6KE5TTWVudSAqKW1lbnUKIHsKICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2ltcGwgPSBfaW1wbF0gewogICAgICAgICBpZiAoaW1w
bCkKLSAgICAgICAgICAgIGltcGwtPmhhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQoV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CisgICAgICAg
ICAgICBpbXBsLT5oaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKICAgICB9KTsKIH0KIApAQCAtMTA0Myw2
ICsxMDQ1LDExIEBAIC0gKE5TUmVjdCljb25maW5lbWVudFJlY3RGb3JNZW51OihOU01lbnUgKilt
ZW51IG9uU2NyZWVuOihOU1NjcmVlbiAqKXNjcmVlbgogICAgIHJldHVybiBjb25maW5lbWVudFJl
Y3Q7CiB9CiAKKy0gKHZvaWQpX3dlYl9ncmFudERPTVBhc3RlQWNjZXNzCit7CisgICAgX2ltcGwt
PmhhbmRsZURPTVBhc3RlUmVxdWVzdEZvckNhdGVnb3J5V2l0aFJlc3VsdChfY2F0ZWdvcnksIFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlKTsKK30KKwog
QGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE2MDMsNyArMTYxMCw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OmhhbmRsZVByb2Nlc3NTd2FwT3JFeGl0KCkKIAogICAgIHVwZGF0ZVJlbW90ZUFj
Y2Vzc2liaWxpdHlSZWdpc3RyYXRpb24oZmFsc2UpOwogCi0gICAgaGFuZGxlRE9NUGFzdGVSZXF1
ZXN0V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JH
ZXN0dXJlKTsKKyAgICBoaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1w
bDo6cHJvY2Vzc1dpbGxTd2FwKCkKQEAgLTQ1NzgsMzQgKzQ1ODUsNTggQEAgTlNBcnJheSAqV2Vi
Vmlld0ltcGw6Om5hbWVzT2ZQcm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb24oTlNVUkwg
KmRyb3BEZXN0aW4KICAgICByZXR1cm4gQFtbcGF0aCBsYXN0UGF0aENvbXBvbmVudF1dOwogfQog
Ci12b2lkIFdlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uKQor
c3RhdGljIE5TUGFzdGVib2FyZE5hbWUgcGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnkpCit7Cisg
ICAgc3dpdGNoIChwYXN0ZUFjY2Vzc0NhdGVnb3J5KSB7CisgICAgY2FzZSBXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgorICAgICAgICByZXR1cm4gTlNQYXN0ZWJvYXJk
TmFtZUdlbmVyYWw7CisgICAgfQorfQorCitzdGF0aWMgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJk
Rm9yQWNjZXNzQ2F0ZWdvcnkoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFj
Y2Vzc0NhdGVnb3J5KQoreworICAgIHN3aXRjaCAocGFzdGVBY2Nlc3NDYXRlZ29yeSkgeworICAg
IGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbDoKKyAgICAgICAg
cmV0dXJuIE5TUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZDsKKyAgICB9Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbikKIHsKICAgICBBU1NF
UlQoIW1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcik7Ci0gICAgaGFuZGxlRE9NUGFzdGVSZXF1ZXN0
V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0
dXJlKTsKKyAgICBoaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIAotICAgIE5TRGF0YSAqZGF0YSA9IFtO
U1Bhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICBOU0RhdGEgKmRhdGEgPSBbcGFz
dGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBl
OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CiAgICAgYXV0
byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsKICAgICBpZiAo
V2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoYnVmZmVyLmdl
dCgpKS5vcmlnaW4oKSA9PSBvcmlnaW5JZGVudGlmaWVyKSB7Ci0gICAgICAgIG1fcGFnZS0+Z3Jh
bnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbCk7
CisgICAgICAgIG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShwYXN0
ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpKTsKICAgICAg
ICAgY29tcGxldGlvbihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9y
R2VzdHVyZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2RvbVBhc3RlTWVudURl
bGVnYXRlID0gYWRvcHROUyhbW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRo
V2ViVmlld0ltcGw6KnRoaXNdKTsKKyAgICBtX2RvbVBhc3RlTWVudURlbGVnYXRlID0gYWRvcHRO
UyhbW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoV2ViVmlld0ltcGw6KnRo
aXMgcGFzdGVBY2Nlc3NDYXRlZ29yeTpwYXN0ZUFjY2Vzc0NhdGVnb3J5XSk7CiAgICAgbV9kb21Q
YXN0ZVJlcXVlc3RIYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uKTsKICAgICBtX2RvbVBhc3Rl
TWVudSA9IGFkb3B0TlMoW1tOU01lbnUgYWxsb2NdIGluaXRXaXRoVGl0bGU6V2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnUGFzdGUoKV0pOwogCiAgICAgW21fZG9tUGFzdGVNZW51IHNldERlbGVn
YXRlOm1fZG9tUGFzdGVNZW51RGVsZWdhdGUuZ2V0KCldOwogICAgIFttX2RvbVBhc3RlTWVudSBz
ZXRBbGxvd3NDb250ZXh0TWVudVBsdWdJbnM6Tk9dOwotICAgIFttX2RvbVBhc3RlTWVudSBpbnNl
cnRJdGVtV2l0aFRpdGxlOldlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkgYWN0aW9u
OkBzZWxlY3Rvcihfd2ViX2dyYW50RE9NUGFzdGVBY2Nlc3MpIGtleUVxdWl2YWxlbnQ6ZW1wdHlT
dHJpbmcoKSBhdEluZGV4OjBdOworCisgICAgYXV0byBwYXN0ZU1lbnVJdGVtID0gUmV0YWluUHRy
KFttX2RvbVBhc3RlTWVudSBpbnNlcnRJdGVtV2l0aFRpdGxlOldlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ1Bhc3RlKCkgYWN0aW9uOkBzZWxlY3Rvcihfd2ViX2dyYW50RE9NUGFzdGVBY2Nlc3Mp
IGtleUVxdWl2YWxlbnQ6ZW1wdHlTdHJpbmcoKSBhdEluZGV4OjBdKTsKKyAgICBbcGFzdGVNZW51
SXRlbSBzZXRUYXJnZXQ6bV9kb21QYXN0ZU1lbnVEZWxlZ2F0ZS5nZXQoKV07CisKICAgICBbTlNN
ZW51IHBvcFVwQ29udGV4dE1lbnU6bV9kb21QYXN0ZU1lbnUuZ2V0KCkgd2l0aEV2ZW50Om1fbGFz
dE1vdXNlRG93bkV2ZW50LmdldCgpIGZvclZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpXTsK
IH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6aGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdChX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKQordm9pZCBXZWJWaWV3SW1w
bDo6aGFuZGxlRE9NUGFzdGVSZXF1ZXN0Rm9yQ2F0ZWdvcnlXaXRoUmVzdWx0KFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSwgV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZSByZXNwb25zZSkKIHsKICAgICBpZiAocmVzcG9uc2UgPT0gV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckNvbW1hbmQgfHwgcmVzcG9uc2Ug
PT0gV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckdlc3R1cmUpCi0g
ICAgICAgIG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU1Bhc3Rl
Ym9hcmROYW1lR2VuZXJhbCk7CisgICAgICAgIG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQ
YXN0ZWJvYXJkRGF0YShwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNz
Q2F0ZWdvcnkpKTsKIAorICAgIGhpZGVET01QYXN0ZU1lbnVXaXRoUmVzdWx0KHJlc3BvbnNlKTsK
K30KKwordm9pZCBXZWJWaWV3SW1wbDo6aGlkZURPTVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXNwb25zZSkKK3sKICAgICBpZiAoYXV0byBoYW5k
bGVyID0gc3RkOjpleGNoYW5nZShtX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIsIHsgfSkpCiAgICAg
ICAgIGhhbmRsZXIocmVzcG9uc2UpOwogICAgIFttX2RvbVBhc3RlTWVudSByZW1vdmVBbGxJdGVt
c107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggYzQ4NWM3ZmMzMTNlYTA4
MzNmYzYwNjI2NzE2OWQ2OTJhODI0MDkyOC4uMTk1YzNjODIyMDg4YTc3YmI5ZGYxNjc4NTAxMGY0
MTU2YzZjYzY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTEwLDYg
KzExMCw3IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0g
Y2xhc3MgU2Nyb2xsYmFyU3R5bGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9y
TGlmZXRpbWUgOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5p
bWF0aW9uIDogdWludDhfdDsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51
bSBjbGFzcyBTY3JvbGxJc0FuaW1hdGVkIDogdWludDhfdDsKIApAQCAtNTk5LDcgKzYwMCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlRHJhZ0NhcmV0UmVjdChjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBwcmV2aW91c0NhcmV0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgY2FyZXRSZWN0KSA9IDA7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0
cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
KT4mJikgPSAwOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2aXJ0dWFs
IHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQmLCBjb25zdCBTdHJpbmcm
IHNvdXJjZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBhYTQ3YjE3NDJhYjFmYjkxMmE0M2I1Y2IyZjExODVmODkwMTUxNmFjLi5iMzQxMTU5MDVhMjNk
MWE2MjRhZTc0ZDhjODJlZTM3ZjQ3OTlmNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTI1MDgsMTUgKzI1MDgsMjAgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNlbGVjdEFsbCgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VsZWN0QWxsKCkpOwog
fQogCi1zdGF0aWMgYm9vbCBpc1Bhc3RlQ29tbWFuZE5hbWUoY29uc3QgU3RyaW5nJiBjb21tYW5k
TmFtZSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk+IHBhc3Rl
QWNjZXNzQ2F0ZWdvcnlGb3JDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+PiBwYXN0ZUNvbW1hbmROYW1lcyA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+IHsKLSAgICAgICAgIlBhc3RlIiwKLSAgICAgICAgIlBhc3RlQW5kTWF0
Y2hTdHlsZSIsCi0gICAgICAgICJQYXN0ZUFzUXVvdGF0aW9uIiwKLSAgICAgICAgIlBhc3RlQXNQ
bGFpblRleHQiCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U3RyaW5nLCBET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBwYXN0ZUNvbW1h
bmROYW1lcyA9IEhhc2hNYXA8U3RyaW5nLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+IHsKKyAgICAgICAgeyAiUGFzdGUiLCBET01QYXN0ZUFjY2Vzc0Nh
dGVnb3J5OjpHZW5lcmFsIH0sCisgICAgICAgIHsgIlBhc3RlQW5kTWF0Y2hTdHlsZSIsIERPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWwgfSwKKyAgICAgICAgeyAiUGFzdGVBc1F1b3RhdGlv
biIsIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWwgfSwKKyAgICAgICAgeyAiUGFzdGVB
c1BsYWluVGV4dCIsIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWwgfSwKICAgICB9Owot
ICAgIHJldHVybiBwYXN0ZUNvbW1hbmROYW1lcy0+Y29udGFpbnMoY29tbWFuZE5hbWUpOworCisg
ICAgYXV0byBpdCA9IHBhc3RlQ29tbWFuZE5hbWVzLT5maW5kKGNvbW1hbmROYW1lKTsKKyAgICBp
ZiAoaXQgIT0gcGFzdGVDb21tYW5kTmFtZXMtPmVuZCgpKQorICAgICAgICByZXR1cm4gaXQtPnZh
bHVlOworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJp
bmcmIGFyZ3VtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tGdW5jdGlv
bikKQEAgLTI1MjYsOCArMjUzMSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRlRWRpdENv
bW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaXNQYXN0ZUNvbW1hbmROYW1lKGNvbW1hbmROYW1l
KSkKLSAgICAgICAgd2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQoKTsKKyAgICBpZiAoYXV0byBwYXN0
ZUFjY2Vzc0NhdGVnb3J5ID0gcGFzdGVBY2Nlc3NDYXRlZ29yeUZvckNvbW1hbmQoY29tbWFuZE5h
bWUpKQorICAgICAgICB3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCgqcGFzdGVBY2Nlc3NDYXRlZ29y
eSk7CiAKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkV4ZWN1dGVF
ZGl0Q29tbWFuZFdpdGhDYWxsYmFjayhjb21tYW5kTmFtZSwgYXJndW1lbnQpLCBbY2FsbGJhY2tG
dW5jdGlvbiA9IFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIGJhY2tncm91bmRBY3Rpdml0eSA9
IG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5KCJXZWJQYWdlUHJveHk6
OmV4ZWN1dGVFZGl0Q29tbWFuZCJfcyldICgpIG11dGFibGUgewogICAgICAgICBjYWxsYmFja0Z1
bmN0aW9uKCk7CkBAIC0yNTQxLDggKzI1NDYsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0
ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYQog
ICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYg
KGlzUGFzdGVDb21tYW5kTmFtZShjb21tYW5kTmFtZSkpCi0gICAgICAgIHdpbGxQZXJmb3JtUGFz
dGVDb21tYW5kKCk7CisgICAgaWYgKGF1dG8gcGFzdGVBY2Nlc3NDYXRlZ29yeSA9IHBhc3RlQWNj
ZXNzQ2F0ZWdvcnlGb3JDb21tYW5kKGNvbW1hbmROYW1lKSkKKyAgICAgICAgd2lsbFBlcmZvcm1Q
YXN0ZUNvbW1hbmQoKnBhc3RlQWNjZXNzQ2F0ZWdvcnkpOwogCiAgICAgaWYgKGNvbW1hbmROYW1l
ID09IGlnbm9yZVNwZWxsaW5nQ29tbWFuZE5hbWUpCiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5P
cklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CkBAIC02NTg4LDkgKzY1OTMsOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoYm9vbCBpc05ldmVy
UmljaGx5RWRpdGFibAogCiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RET01Q
YXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRS
ZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgbV9wYWdlQ2xpZW50LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoZWxlbWVudFJlY3Qs
IG9yaWdpbklkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX3Bh
Z2VDbGllbnQtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBlbGVt
ZW50UmVjdCwgb3JpZ2luSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCiAvLyBCYWNrRm9yd2FyZExpc3QKQEAgLTEwNzkxLDcgKzEwNzk2LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnBsYXRmb3JtRGlkU2VsZWN0SXRlbUZyb21BY3RpdmVDb250ZXh0TWVudShjb25z
dCBXZWJDb250ZXh0TWUKIAogI2lmICFQTEFURk9STShDT0NPQSkKIAotdm9pZCBXZWJQYWdlUHJv
eHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVy
Zm9ybVBhc3RlQ29tbWFuZChET01QYXN0ZUFjY2Vzc0NhdGVnb3J5KQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDVhODMyZTU1YWNiYTE4OWIzOWI5ZTg5
N2NjMWNhMThiN2I0ODQ1NTUuLjc3MTk0NzM5NTI3NWM4YzUzMGI5OWZiZGFkYTM5MmYwYjUwNDQ5
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNjYsNiArMjY2
LDcgQEAgY2xhc3MgVmFsaWRhdGlvbkJ1YmJsZTsKIAogZW51bSBjbGFzcyBBdXRvcGxheUV2ZW50
IDogdWludDhfdDsKIGVudW0gY2xhc3MgQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQgOiBib29s
OworZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWludDhfdDsKIGVudW0gY2xh
c3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIEV2ZW50TWFr
ZXNHYW1lcGFkc1Zpc2libGUgOiBib29sOwogZW51bSBjbGFzcyBMb2NrQmFja0ZvcndhcmRMaXN0
IDogYm9vbDsKQEAgLTIyNTQsOCArMjI1NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRJc05l
dmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcihib29sKTsKICNlbmRpZgogCi0gICAgdm9pZCBy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmlu
ZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZSk+JiYpOwotICAgIHZvaWQgd2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQoKTsKKyAgICB2b2lkIHJl
cXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJik7CisgICAgdm9pZCB3aWxsUGVy
Zm9ybVBhc3RlQ29tbWFuZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5KTsKIAogICAg
IC8vIEJhY2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAgICB2b2lkIGJhY2tGb3J3YXJkQWRk
SXRlbShCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMDg3NzhhZTY1NDQ4YmVjYTgw
MGI0MGZkMzI4MzhjZDIzZWQ3OGI5My4uZTNmZjBhMzVjZDNmZjQ5OWE3MTMzZjliZmYyZDMzMTQ0
NDg5NGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjMyLDcgKzIzMiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAgICAgU2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoYm9vbCBpc05ldmVyUmlj
aGx5RWRpdGFibGUpCiAjZW5kaWYKIAotICAgIFJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3Jl
OjpJbnRSZWN0IGVsZW1lbnRSZWN0LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGVudW06
dWludDhfdCBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKSBTeW5jaHJv
bm91cworICAgIFJlcXVlc3RET01QYXN0ZUFjY2VzcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBXZWJDb3JlOjpJbnRSZWN0
IGVsZW1lbnRSZWN0LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGVudW06dWludDhfdCBX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKSBTeW5jaHJvbm91cwogCiAg
ICAgIyBGaW5kIG1lc3NhZ2VzCiAgICAgRGlkQ291bnRTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJp
bmcsIHVpbnQzMl90IG1hdGNoQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDU2MDczYmI4Mzc3YjA2YmM0MTVkNTZlMDY3OGMz
MTZmNmM4ZTJiYjMuLjNiMDRhODMzZGJlMGI2YjY2ZWUxNGQzYzMwMGYzMDY4NzE4YmYyY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBA
IC0zOCw2ICszOCw3IEBAIE9CSkNfQ0xBU1MgV0tDb250ZW50VmlldzsKIE9CSkNfQ0xBU1MgV0tF
ZGl0b3JVbmRvVGFyZ2V0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlIDogdWludDhfdDsKIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvOwogfQpAQCAt
MjY2LDcgKzI2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlj
a0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Y29uc3QgU3RyaW5nJik+JiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2b2lkIHJlcXVlc3RE
T01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVu
dFJlY3QsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICB2b2lkIGRpZFBlcmZvcm1EcmFnT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0KaW5kZXggMzJkMWY4OWMwNThiOWI0MGExOGU4ZjY3YmM3YmU5ZjBhMTAyNTA4Yi4uZmFjOWU3
ZmI3OGJlZTBmNjI5NDU2NzJlM2JiNzRiOWUwNTIwZTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtOTUxLDkgKzk1MSw5IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50
KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsCiB9CiAjZW5kaWYKIAotdm9pZCBQYWdlQ2xpZW50SW1w
bDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRS
ZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBlbGVtZW50UmVjdCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewotICAgIFttX2NvbnRlbnRWaWV3IF9yZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3NXaXRoRWxlbWVudFJlY3Q6ZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRpZmllcjpvcmlnaW5J
ZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsK
KyAgICBbbV9jb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzRm9yQ2F0ZWdvcnk6cGFz
dGVBY2Nlc3NDYXRlZ29yeSBlbGVtZW50UmVjdDplbGVtZW50UmVjdCBvcmlnaW5JZGVudGlmaWVy
Om9yaWdpbklkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjYW5jZWxQb2ludGVyc0Zvckdlc3R1
cmVSZWNvZ25pemVyKFVJR2VzdHVyZVJlY29nbml6ZXIqIGdlc3R1cmVSZWNvZ25pemVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCmluZGV4IGIzZjhhMzJlZTQ2YjFmN2E5OTI0YTc1YmZkNGZkNDc0OTcxMmJkNzIuLmMx
YmNmNWQ2MTViZjYxMDBhNzc4Yjk5NWI0YThkOTVhZDRlOWQ1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAg
LTkwLDYgKzkwLDcgQEAgc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgUHJvbWlz
ZWRBdHRhY2htZW50SW5mbzsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogc3RydWN0
IFRleHRSZWNvZ25pdGlvblJlc3VsdDsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NDYXRlZ29y
eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90
OwogZW51bSBjbGFzcyBNb3VzZUV2ZW50UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91
dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKQEAgLTY3MSw3ICs2NzIsNyBAQCBGT1JfRUFDSF9Q
UklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05f
Rk9SX1dFQl9WSUVXKQogLSAodm9pZCl1cGRhdGVGb2N1c2VkRWxlbWVudFNlbGVjdGVkSW5kZXg6
KHVpbnQzMl90KWluZGV4IGFsbG93c011bHRpcGxlU2VsZWN0aW9uOihib29sKWFsbG93c011bHRp
cGxlU2VsZWN0aW9uOwogLSAodm9pZCl1cGRhdGVGb2N1c2VkRWxlbWVudEZvY3VzZWRXaXRoRGF0
YUxpc3REcm9wZG93bjooQk9PTCl2YWx1ZTsKIAotLSAodm9pZClfcmVxdWVzdERPTVBhc3RlQWNj
ZXNzV2l0aEVsZW1lbnRSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JillbGVtZW50UmVjdCBv
cmlnaW5JZGVudGlmaWVyOihjb25zdCBTdHJpbmcmKW9yaWdpbklkZW50aWZpZXIgY29tcGxldGlv
bkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKV9yZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3NGb3JDYXRlZ29yeTooV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSlwYXN0ZUFj
Y2Vzc0NhdGVnb3J5IGVsZW1lbnRSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JillbGVtZW50
UmVjdCBvcmlnaW5JZGVudGlmaWVyOihjb25zdCBTdHJpbmcmKW9yaWdpbklkZW50aWZpZXIgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAKIC0gKHZvaWQpZG9BZnRlclBv
c2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24pKWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CiAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5mb3Jt
YXRpb25Jc1VwVG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJl
cXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAxYTgxY2NlNDQ1NWViMWE3MmIxMGU4ZjI0NzNjNjBh
MjkxZWE1OGJhLi5iOTBhY2ZlYzQ4MTI4ZjQ1M2M5MTAyMzZkMmJiZjhhY2JhOTE5MTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTEyNDgsNyArMTI0OCw3IEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0
aW9uCiAgICAgX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucyA9IHsgfTsKIAogICAg
IFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOwotICAgIFtzZWxmIF9oYW5kbGVE
T01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6
OkRlbmllZEZvckdlc3R1cmVdOworICAgIFtzZWxmIF9oaWRlUGFzdGVNZW51V2l0aFJlc3VsdDpX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKICAgICBb
c2VsZiBfY2FuY2VsUGVuZGluZ0tleUV2ZW50SGFuZGxlcl07CiAKICAgICBfY2FjaGVkU2VsZWN0
ZWRUZXh0UmFuZ2UgPSBuaWw7CkBAIC0xNjM3LDcgKzE2MzcsNyBAQCAtIChCT09MKXJlc2lnbkZp
cnN0UmVzcG9uZGVyRm9yV2ViVmlldwogICAgIGJvb2wgc3VwZXJEaWRSZXNpZ24gPSBbc3VwZXIg
cmVzaWduRmlyc3RSZXNwb25kZXJdOwogCiAgICAgaWYgKHN1cGVyRGlkUmVzaWduKSB7Ci0gICAg
ICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOworICAgICAgICBbc2VsZiBfaGlk
ZVBhc3RlTWVudVdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVu
aWVkRm9yR2VzdHVyZV07CiAgICAgICAgIF9wYWdlLT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCwgV2ViS2l0OjpXZWJQYWdlUHJveHk6OkFj
dGl2aXR5U3RhdGVDaGFuZ2VEaXNwYXRjaE1vZGU6OkltbWVkaWF0ZSk7CiAKICAgICAgICAgaWYg
KF9rZXlXZWJFdmVudEhhbmRsZXIpIHsKQEAgLTE3MDUsNyArMTcwNSw3IEBAIC0gKHZvaWQpX3dl
YlRvdWNoRXZlbnRzUmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVy
ICopZ2VzdHVyZVJlCiAKICAgICBfbGFzdEludGVyYWN0aW9uTG9jYXRpb24gPSBsYXN0VG91Y2hF
dmVudC0+bG9jYXRpb25JbkRvY3VtZW50Q29vcmRpbmF0ZXM7CiAgICAgaWYgKGxhc3RUb3VjaEV2
ZW50LT50eXBlID09IFVJV2ViVG91Y2hFdmVudFRvdWNoQmVnaW4pIHsKLSAgICAgICAgW3NlbGYg
X2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CisgICAgICAgIFtzZWxmIF9oaWRlUGFzdGVNZW51
V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0
dXJlXTsKICAgICAgICAgX2xheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RJbnRlcmFjdGlvblN0
YXJ0ID0gZG93bmNhc3Q8V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Pigq
X3BhZ2UtPmRyYXdpbmdBcmVhKCkpLmxhc3RDb21taXR0ZWRMYXllclRyZWVUcmFuc2FjdGlvbklE
KCk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMzk2OSw3ICszOTY5LDcgQEAgLSAo
aWQpdGFyZ2V0Rm9yQWN0aW9uRm9yV2ViVmlldzooU0VMKWFjdGlvbiB3aXRoU2VuZGVyOihpZClz
ZW5kZXIKIAogLSAodm9pZClfd2lsbEhpZGVNZW51OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgogewotICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNv
cmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOworICAgIFtzZWxm
IF9oaWRlUGFzdGVNZW51V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
OjpEZW5pZWRGb3JHZXN0dXJlXTsKIH0KIAogLSAodm9pZClfZGlkSGlkZU1lbnU6KE5TTm90aWZp
Y2F0aW9uICopbm90aWZpY2F0aW9uCkBAIC0zOTk3LDcgKzM5OTcsNyBAQCAtICh2b2lkKWN1dEZv
cldlYlZpZXc6KGlkKXNlbmRlcgogCiAtICh2b2lkKXBhc3RlRm9yV2ViVmlldzooaWQpc2VuZGVy
CiB7Ci0gICAgaWYgKHNlbmRlciA9PSBVSU1lbnVDb250cm9sbGVyLnNoYXJlZE1lbnVDb250cm9s
bGVyICYmIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlXSkKKyAgICBpZiAoc2VuZGVy
ID09IFVJTWVudUNvbnRyb2xsZXIuc2hhcmVkTWVudUNvbnRyb2xsZXIgJiYgW3NlbGYgX2hpZGVQ
YXN0ZU1lbnVXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50
ZWRGb3JHZXN0dXJlXSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgX3BhZ2UtPmV4ZWN1dGVFZGl0
Q29tbWFuZCgicGFzdGUiX3MpOwpAQCAtNDE0MywxMSArNDE0MywyNCBAQCAtICh2b2lkKV9hY2Nl
c3NpYmlsaXR5Q2xlYXJTZWxlY3Rpb24KICAgICBfcGFnZS0+c3RvcmVTZWxlY3Rpb25Gb3JBY2Nl
c3NpYmlsaXR5KGZhbHNlKTsKIH0KIAotLSAoQk9PTClfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0
aFJlc3VsdDooV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSlyZXNwb25zZQorc3RhdGlj
IFVJUGFzdGVib2FyZE5hbWUgcGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnkpCiB7Ci0gICAgaWYg
KHJlc3BvbnNlID09IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JD
b21tYW5kIHx8IHJlc3BvbnNlID09IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6Okdy
YW50ZWRGb3JHZXN0dXJlKQotICAgICAgICBfcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0
ZWJvYXJkRGF0YShVSVBhc3RlYm9hcmROYW1lR2VuZXJhbCk7CisgICAgc3dpdGNoIChwYXN0ZUFj
Y2Vzc0NhdGVnb3J5KSB7CisgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5
OjpHZW5lcmFsOgorICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWw7CisgICAg
fQorfQogCitzdGF0aWMgVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnko
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5KQorewor
ICAgIHN3aXRjaCAocGFzdGVBY2Nlc3NDYXRlZ29yeSkgeworICAgIGNhc2UgV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbDoKKyAgICAgICAgcmV0dXJuIFVJUGFzdGVib2Fy
ZC5nZW5lcmFsUGFzdGVib2FyZDsKKyAgICB9Cit9CisKKy0gKEJPT0wpX2hpZGVQYXN0ZU1lbnVX
aXRoUmVzdWx0OihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKXJlc3BvbnNlCit7CiAg
ICAgaWYgKGF1dG8gcGFzdGVIYW5kbGVyID0gV1RGTW92ZShfZG9tUGFzdGVSZXF1ZXN0SGFuZGxl
cikpIHsKICAgICAgICAgW1VJTWVudUNvbnRyb2xsZXIuc2hhcmVkTWVudUNvbnRyb2xsZXIgaGlk
ZU1lbnVGcm9tVmlldzpzZWxmXTsKICAgICAgICAgcGFzdGVIYW5kbGVyKHJlc3BvbnNlKTsKQEAg
LTQxNTYsMTYgKzQxNjksMjQgQEAgLSAoQk9PTClfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJl
c3VsdDooV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSlyZXNwb24KICAgICByZXR1cm4g
Tk87CiB9CiAKKy0gKEJPT0wpX2hhbmRsZURPTVBhc3RlUmVxdWVzdEZvckNhdGVnb3J5OihXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5KXBhc3RlQWNjZXNzQ2F0ZWdvcnkgcmVzdWx0OihX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKXJlc3BvbnNlCit7CisgICAgaWYgKHJlc3Bv
bnNlID09IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JDb21tYW5k
IHx8IHJlc3BvbnNlID09IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRG
b3JHZXN0dXJlKQorICAgICAgICBfcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJk
RGF0YShwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkp
KTsKKworICAgIHJldHVybiBbc2VsZiBfaGlkZVBhc3RlTWVudVdpdGhSZXN1bHQ6cmVzcG9uc2Vd
OworfQorCiAtICh2b2lkKV93aWxsUGVyZm9ybUFjdGlvbjooU0VMKWFjdGlvbiBzZW5kZXI6KGlk
KXNlbmRlcgogewogICAgIGlmIChhY3Rpb24gIT0gQHNlbGVjdG9yKHBhc3RlOikpCi0gICAgICAg
IFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOworICAgICAgICBbc2VsZiBfaGlkZVBh
c3RlTWVudVdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVk
Rm9yR2VzdHVyZV07CiB9CiAKIC0gKHZvaWQpX2RpZFBlcmZvcm1BY3Rpb246KFNFTClhY3Rpb24g
c2VuZGVyOihpZClzZW5kZXIKIHsKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihwYXN0ZTop
KQotICAgICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKKyAgICAgICAgW3Nl
bGYgX2hpZGVQYXN0ZU1lbnVXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2U6OkRlbmllZEZvckdlc3R1cmVdOwogfQogCiAvLyBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9j
b2wKQEAgLTU4MjAsNyArNTg0MSw3IEBAIC0gKHZvaWQpaGFuZGxlS2V5V2ViRXZlbnQ6KDo6V2Vi
RXZlbnQgKil0aGVFdmVudCB3aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJl
c3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsK
KyAgICBbc2VsZiBfaGlkZVBhc3RlTWVudVdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nl
c3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CiAKICAgICB1c2luZyBIYW5kbGVkQnlJbnB1
dE1ldGhvZCA9IFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6SGFuZGxlZEJ5SW5wdXRN
ZXRob2Q7CiAgICAgYXV0byoga2V5Ym9hcmQgPSBbVUlLZXlib2FyZEltcGwgc2hhcmVkSW5zdGFu
Y2VdOwpAQCAtNjYwOSwxNSArNjYzMCwxNSBAQCBzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRl
bU9yaWdpbnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0CiAgICAg
cmV0dXJuIGZvdW5kQXRMZWFzdE9uZU1hdGNoaW5nSWRlbnRpZmllcjsKIH0KIAotLSAodm9pZClf
cmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JillbGVtZW50UmVjdCBvcmlnaW5JZGVudGlmaWVyOihjb25zdCBTdHJpbmcmKW9yaWdpbklk
ZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpY29tcGxldGlvbkhhbmRsZXIKKy0gKHZvaWQp
X3JlcXVlc3RET01QYXN0ZUFjY2Vzc0ZvckNhdGVnb3J5OihXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5KXBhc3RlQWNjZXNzQ2F0ZWdvcnkgZWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKWVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6KGNvbnN0IFN0cmluZyYpb3Jp
Z2luSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiljb21wbGV0aW9uSGFuZGxlcgogewog
ICAgIGlmIChhdXRvIGV4aXN0aW5nQ29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKF9k
b21QYXN0ZVJlcXVlc3RIYW5kbGVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpIHsKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGV4aXN0aW5nQ29tcGxldGlvbkhh
bmRsZXIoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7
CiAgICAgfQogCi0gICAgaWYgKGFsbFBhc3RlYm9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2luKFVJ
UGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZCwgb3JpZ2luSWRlbnRpZmllcikpIHsKLSAgICAg
ICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckNvbW1hbmRdOworICAgIGlmIChhbGxQYXN0ZWJv
YXJkSXRlbU9yaWdpbnNNYXRjaE9yaWdpbihwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkocGFz
dGVBY2Nlc3NDYXRlZ29yeSksIG9yaWdpbklkZW50aWZpZXIpKSB7CisgICAgICAgIFtzZWxmIF9o
YW5kbGVET01QYXN0ZVJlcXVlc3RGb3JDYXRlZ29yeTpwYXN0ZUFjY2Vzc0NhdGVnb3J5IHJlc3Vs
dDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yQ29tbWFuZF07CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGY4MGM4MjQ5ZGE0NjdiOTQyMDM1ZTQ2MDZlODk5YmNi
NjRlZGJjNmMuLjBkZGZjM2U2OTFmMjlkNzlhMmY5YjNhYTZiMWMwNTlhZjM3YzAwMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTU0
NCw5ICsxNTQ0LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1VzZXJGYWNpbmdDaGFuZ2VkKGJv
b2wgaXNVc2VyRmFjaW5nKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVy
Zm9ybVBhc3RlQ29tbWFuZCgpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNv
bW1hbmQoRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5KQogewotICAg
IGdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoVUlQYXN0ZWJvYXJkTmFtZUdlbmVy
YWwpOworICAgIHN3aXRjaCAocGFzdGVBY2Nlc3NDYXRlZ29yeSkgeworICAgIGNhc2UgRE9NUGFz
dGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbDoKKyAgICAgICAgZ3JhbnRBY2Nlc3NUb0N1cnJlbnRQ
YXN0ZWJvYXJkRGF0YShVSVBhc3RlYm9hcmROYW1lR2VuZXJhbCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXREZXZpY2VIYXNBR1hDb21waWxlclNl
cnZpY2VGb3JUZXN0aW5nKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggZDIyMzhmZGM5ZDE2Zjc3ZjhjM2QzMDJjYTk5NzZm
ZTgzZjFiM2YzNy4uOTZiZjQyOGIxOWI1YmE5ZDc0NmEzZWExMTE1MWJkM2NhZmIxNmRlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAg
LTIyNSw3ICsyMjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbFJlY29yZE5hdmlnYXRpb25T
bmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRS
ZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHJl
cXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
KT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmlu
ZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZSk+JiYpIGZpbmFsOwogCiAgICAgdm9pZCBtYWtlVmlld0JsYW5rKGJvb2wpIGZpbmFsOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5k
ZXggYTQxMTIxMzVmMmVmMTkwMTVhNTJmMWUxYjAzYWUzMGExZjIyM2QyYS4uNjI5MGE4MDkwZTM1
OWI2MzAyMDhkYjcxMjY5MjQwNzRkMWM1ZDdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtMTAwMCw5ICsxMDAwLDkgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6dGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uIGRpcmVj
dGlvbikKICAgICBtX2ltcGwtPnRha2VGb2N1cyhkaXJlY3Rpb24pOwogfQogCi12b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
ZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9u
KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBj
b21wbGV0aW9uKQogewotICAgIG1faW1wbC0+cmVxdWVzdERPTVBhc3RlQWNjZXNzKGVsZW1lbnRS
ZWN0LCBvcmlnaW5JZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKKyAgICBtX2ltcGwt
PnJlcXVlc3RET01QYXN0ZUFjY2VzcyhwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBlbGVtZW50UmVjdCwg
b3JpZ2luSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uKSk7CiB9CiAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggZTAzZTA4MGFl
ZTA4MzgwYjQ2ZmZlODlkZDhlNjFiNjZiNTk4ZGI0Ni4uNTUxYTJhZjIzZmVlMGJmZDI0ODc4NjIw
YTljZDc5ZjA3MzYxYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tCkBAIC02NTEsOSArNjUxLDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
bGF0Zm9ybURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4
dE1lCiAKICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1h
bmQoKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKERPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSkKIHsKLSAgICBncmFudEFjY2Vzc1Rv
Q3VycmVudFBhc3RlYm9hcmREYXRhKE5TUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKKyAgICBzd2l0
Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKKyAgICBjYXNlIERPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkdlbmVyYWw6CisgICAgICAgIGdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEo
TlNQYXN0ZWJvYXJkTmFtZUdlbmVyYWwpOworICAgICAgICByZXR1cm47CisgICAgfQogfQogCiBQ
bGF0Zm9ybVZpZXcqIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1WaWV3KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmNw
cAppbmRleCBhOTI3YTQ5OGQ4YTc5M2Q5MmFiNDNjNjZkYTgwNDgyOTA5YjU1MjU2Li5kZTBkODZk
Y2EzZWM2NTYyZGRjYTIyYTIxMzA0NmUxZjQ4MGQ3YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuY3BwCkBAIC0zMTcs
NyArMzE3LDcgQEAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiBQYWdlQ2xp
ZW50SW1wbDo6dXNlckludGVyZmFjZUxheW91dERpcmVjdGkKICAgICByZXR1cm4gV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0
IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6
RGVuaWVkRm9yR2VzdHVyZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
cGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuaAppbmRleCA2NGNiNzBmMTFkNzdmYmNhZTkzNDE0
Y2ZmMjJmMTg4ZDA1OGYyYjZjLi42YjI3NGJkOTMzMjM4MmY1ZDIyOWIzNmQyZTAwOGNhNzY0MWVi
M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdl
Q2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1Bh
Z2VDbGllbnRJbXBsLmgKQEAgLTE0OSw3ICsxNDksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29y
ZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIG92ZXJyaWRlOwogCiAgICAg
UGxheVN0YXRpb25XZWJWaWV3JiBtX3ZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggYzc5NzA2YTEyNGI0NGMyZmYxM2I0ZDZh
N2ZiZWM2M2FhZWFkYWIzOS4uNDM5Njc0YjMyM2FlZGJkNGI5ZmM0YjIxMWMwMDgyODgzNjMyMTE3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3Bw
CkBAIC0zNzMsNyArMzczLDcgQEAgSFdORCBQYWdlQ2xpZW50SW1wbDo6dmlld1dpZGdldCgpCiAg
ICAgcmV0dXJuIG1fdmlldy53aW5kb3coKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IEludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNz
KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IEludFJlY3QmLCBjb25zdCBT
dHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVz
cG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaAppbmRleCAzZWE0OTNk
ZjFlNjY4NzZmNTA5ZGY2YzNjMDkxNzI0MGI3NjRjYmE1Li44NGZlMTZhYWQ3YzJmYzk3MDE4Y2Nk
MDRlMTYxNmRiZDYyM2M0NzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93
aW4vUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFn
ZUNsaWVudEltcGwuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnkgOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWlu
dDhfdDsKIH0KIApAQCAtMTQ4LDcgKzE0OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24o
KSBvdmVycmlkZSB7IHJldHVybiBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
OjpMVFI7IH0KIAotICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RET01Q
YXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgZmluYWw7CiAKICAgICAvLyBNZW1iZXJzIG9m
IFBhZ2VDbGllbnRJbXBsIGNsYXNzCiAgICAgRGVmYXVsdFVuZG9Db250cm9sbGVyIG1fdW5kb0Nv
bnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDgxZTM3OWUzM2QxYTlhY2RjODZl
ZjVjNGJlMjFhNzI2MGQ5NGQ0OGUuLmRmMjc4YTc4ODRiYWM4OWQ1ZDE1ZjdkYzY0OWQ2NmQ4MDUw
NGMxZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0zMzIsOSArMzMyLDkgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnJlZG8oKQogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvKFVuZG9PclJlZG86OlJlZG8pLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1JlZG86OlJlcGx5KCkpOwogfQogCi1XZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNj
ZXNzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikKK1dlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBTdHJp
bmcmIG9yaWdpbklkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIG1fcGFnZS0+cmVxdWVzdERPTVBh
c3RlQWNjZXNzKG9yaWdpbklkZW50aWZpZXIpOworICAgIHJldHVybiBtX3BhZ2UtPnJlcXVlc3RE
T01QYXN0ZUFjY2VzcyhwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBvcmlnaW5JZGVudGlmaWVyKTsKIH0K
IAogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShHTElCKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmlu
ZGV4IDUwNmQ5ZjU0MTM4ZDM3Y2I0YzY0ZWQ0NjBmNTlhNWMyOGZlNTIyYTYuLjRjNDg4OTc2MDEy
MmFmNzZmMDNiODBjNGY4NjYyYTEyM2Y0ZDkxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogfQog
CkBAIC05Myw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlclJlZG9TdGVwKFdl
YkNvcmU6OlVuZG9TdGVwJikgZmluYWw7CiAgICAgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9u
cygpIGZpbmFsOwogCi0gICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0
RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2VzcyhX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZyYW1lKiwgYm9v
bCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuUGFzdGUoV2ViQ29yZTo6
RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGIzYjBmYmNjNzZlNjBmNjc4YmYx
YzZkZTUyMTMwNTk4Y2IyZDAwODguLjNkZmQ1ODM1ZjUwMmQwNmZkZmFlNzVkMDViMGU4MzUwZmU4
NTE4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC03MTk3LDcgKzcxOTcsNyBAQCB2b2lkIFdlYlBhZ2U6OnNob3dDb250YWN0UGlja2VyKGNv
bnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLAogICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Q29udGFjdFBpY2tlcihy
ZXF1ZXN0RGF0YSksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSBXZWJQYWdlOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyKQorV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSBXZWJQ
YWdlOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29y
eSBwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiB7
CiAgICAgYXV0byByZXNwb25zZSA9IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRl
bmllZEZvckdlc3R1cmU7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTcyMDcsNyArNzIw
Nyw3IEBAIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgV2ViUGFnZTo6cmVxdWVzdERP
TVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3JpCiAgICAgLy8gc2hvdWxkIGJlIHJlbW92ZWQg
b25jZSA8cmRhcjovL3Byb2JsZW0vMTYyMDcwMDI+IGlzIHJlc29sdmVkLgogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQXV0b2NvcnJlY3Rpb25Db250ZXh0KGF1dG9jb3Jy
ZWN0aW9uQ29udGV4dCgpKSk7CiAjZW5kaWYKLSAgICBzZW5kU3luY1dpdGhEZWxheWVkUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNzKHJlY3RGb3JFbGVt
ZW50QXRJbnRlcmFjdGlvbkxvY2F0aW9uKCksIG9yaWdpbklkZW50aWZpZXIpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZXF1ZXN0RE9NUGFzdGVBY2Nlc3M6OlJlcGx5KHJlc3BvbnNlKSk7Cisg
ICAgc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVl
c3RET01QYXN0ZUFjY2VzcyhwYXN0ZUFjY2Vzc0NhdGVnb3J5LCByZWN0Rm9yRWxlbWVudEF0SW50
ZXJhY3Rpb25Mb2NhdGlvbigpLCBvcmlnaW5JZGVudGlmaWVyKSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNzOjpSZXBseShyZXNwb25zZSkpOwogICAgIHJldHVy
biByZXNwb25zZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDM1YzIzZmU2MDJlYjRmOTA0MWFiYjBhOTg3ZTdkMmYwY2EwZjhiM2UuLjUzM2Qw
OGM2YjI0OWUxZjI4ZTQzZjMzZDY4NzU5MWFlMTY4YTViNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIyNCw2ICsyMjQsNyBAQCBjbGFzcyBWaXNp
YmxlUG9zaXRpb247CiBlbnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKIGVudW0gY2xh
c3MgQ09FUERpc3Bvc2l0aW9uIDogYm9vbDsKIGVudW0gY2xhc3MgQ3JlYXRlTmV3R3JvdXBGb3JI
aWdobGlnaHQgOiBib29sOworZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIERyYWdBcHBsaWNhdGlvbkZsYWdzIDogdWludDhfdDsKIGVudW0gY2xhc3MgRHJhZ0hh
bmRsaW5nTWV0aG9kIDogdWludDhfdDsKQEAgLTEzMzksNyArMTM0MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHNlbmRTeW5jKFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBT
ZWNvbmRzOjppbmZpbml0eSgpLCBzZW5kU3luY09wdGlvbnMpOwogICAgIH0KIAotICAgIFdlYkNv
cmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0
cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CisgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29y
eSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKICAgICBXZWJDb3JlOjpJbnRSZWN0
IHJlY3RGb3JFbGVtZW50QXRJbnRlcmFjdGlvbkxvY2F0aW9uKCkgY29uc3Q7CiAKICAgICBjb25z
dCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkNvbG9yPiYgYmFja2dyb3VuZENvbG9yKCkgY29uc3Qg
eyByZXR1cm4gbV9iYWNrZ3JvdW5kQ29sb3I7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNDVmN2Mx
ZjVjYTc0ODJkNjBkOWJjNzRlZjYxNmMzMmZkNjI2NzY0Ny4uNDIwMTA3ZGE2NWI3NmI2ZDEyYzRj
NDU4MTM5ZjMwODI1OGQ5M2ZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTgzLDcgKzgzLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGdldENsaWVudFBhc3RlYm9hcmREYXRhKGNvbnN0IHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2ltcGxlUmFuZ2U+JiwgVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRU
eXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PiYgcGFzdGVib2FyZERh
dGEpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRJbnNlcnRpb25QYXN0ZWJvYXJkKGNvbnN0IFN0cmlu
ZyYpIGZpbmFsOwotICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERP
TVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmU7IH0KKyAgICBXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CiAKICNpZiBVU0UoQVBQ
S0lUKQogICAgIHZvaWQgdXBwZXJjYXNlV29yZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRl
eCBjMTY3Y2EyOTIyM2VlYTk5ZTUyOGE4ZWE2MTI4YzFlMWU2OWVlM2YxLi4wODdiNjllN2E4YjBi
Njg4YWNiZmU0NGU0ZGFiMWI3YmRhNTQxZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTE3LDcg
KzExNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJD
b3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlv
biYpIGZpbmFsIHsgfQogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3Vt
ZW50RnJhZ21lbnQmLCBjb25zdCBXZWJDb3JlOjpTaW1wbGVSYW5nZSYsIGJvb2wpIGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CiAKLSAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJl
cXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CisgICAgV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZTsgfQogCiAgICAg
V2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgZmluYWwgeyByZXR1cm4g
dGhpczsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446222</attachid>
            <date>2021-12-07 12:44:51 -0800</date>
            <delta_ts>2021-12-08 19:33:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233939-20211207134450.patch</filename>
            <type>text/plain</type>
            <size>59615</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4OWI2ZTVkZjJhY2UzNzI0MTIzOGM4NjE3NWU2ODQyMmVhYTYxZWNjLi5h
NjY2YjNmYjVmNmI2OGU3NGJjMmNkNjYwZTAyNjdlZjJkNDljNjBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdo
aWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBw
YXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgSW1w
bGVtZW50aW5nIGAtcGFzdGVGb250OmAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5MTM3OT4gcmVx
dWlyZXMgdGhhdCB3ZSByZWFkIGZyb20gdGhlIGZvbnQKKyAgICAgICAgcGFzdGVib2FyZCBpbnN0
ZWFkIG9mIHRoZSBnZW5lcmFsIHBhc3RlYm9hcmQuIEluIG9yZGVyIHRvIGFsbG93IHdlYiBjb250
ZW50IHRvIHRyaWdnZXIgdGhpcworICAgICAgICAoZS5nLiBgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
IlBhc3RlRm9udCIpKWApIHdlIG11c3QgaGF2ZSBhIHdheSBmb3IgdGhlIFdlYlByb2Nlc3MgdG8g
c2lnbmFsCisgICAgICAgIHRoYXQgaXQgd2lzaGVzIHRvIHJlYWQgZnJvbSB0aGUgZm9udCBwYXN0
ZWJvYXJkIGluc3RlYWQgb2YgdGhlIGdlbmVyYWwgcGFzdGVib2FyZC4gQXMgc3VjaCwKKyAgICAg
ICAgY3JlYXRlIGFuZCBwYXNzIGFsb25nIGEgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnlgIHRvIGBy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3NgLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4K
KworICAgICAgICAqIGRvbS9ET01QYXN0ZUFjY2Vzcy5oOgorICAgICAgICBDcmVhdGUgYERPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnlgLgorCisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50
OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSBgRE9NUGFz
dGVBY2Nlc3NDYXRlZ29yeWAuCisKIDIwMjEtMTItMDcgIEt5bGUgUGlkZGluZ3RvbiAgPGtwaWRk
aW5ndG9uQGFwcGxlLmNvbT4KICAgICAgICAgUm9sbCBBTkdMRSB0byBpbmNsdWRlIHVwc3RyZWFt
ZWQgTWV0YWwgYmFja2VuZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIwODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU3NTBlMzIxNjEwMzU4ZTM4NmYzMDg4ZTIwMmZi
MzBlMzlkNjdkMDUuLjNjYmJkOTM4ZWZiZmIwOTNiZGVkZmE5ZTJiNmVjZmY3YzE2NjM5Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisyMDIxLTEyLTA3ICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAg
dG8gY29udHJvbCB3aGljaCBwYXN0ZWJvYXJkIHRoZSBXZWJQcm9jZXNzIGlzIGdyYW50ZWQgYWNj
ZXNzIHRvIHdoZW4gcGFzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzOTM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgor
CisgICAgICAgIEltcGxlbWVudGluZyBgLXBhc3RlRm9udDpgIDxodHRwczovL3dlYmtpdC5vcmcv
Yi8xOTEzNzk+IHJlcXVpcmVzIHRoYXQgd2UgcmVhZCBmcm9tIHRoZSBmb250CisgICAgICAgIHBh
c3RlYm9hcmQgaW5zdGVhZCBvZiB0aGUgZ2VuZXJhbCBwYXN0ZWJvYXJkLiBJbiBvcmRlciB0byBh
bGxvdyB3ZWIgY29udGVudCB0byB0cmlnZ2VyIHRoaXMKKyAgICAgICAgKGUuZy4gYGRvY3VtZW50
LmV4ZWNDb21tYW5kKCJQYXN0ZUZvbnQiKSlgKSB3ZSBtdXN0IGhhdmUgYSB3YXkgZm9yIHRoZSBX
ZWJQcm9jZXNzIHRvIHNpZ25hbAorICAgICAgICB0aGF0IGl0IHdpc2hlcyB0byByZWFkIGZyb20g
dGhlIGZvbnQgcGFzdGVib2FyZCBpbnN0ZWFkIG9mIHRoZSBnZW5lcmFsIHBhc3RlYm9hcmQuIEFz
IHN1Y2gsCisgICAgICAgIGNyZWF0ZSBhbmQgcGFzcyBhbG9uZyBhIGBET01QYXN0ZUFjY2Vzc0Nh
dGVnb3J5YCB0byBgcmVxdWVzdERPTVBhc3RlQWNjZXNzYC4KKworICAgICAgICBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICBJbmRpY2F0ZSB3aGljaCBoZWFkZXIg
aXMgYXNzb2NpYXRlZCB3aXRoIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKC1bV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSBpbml0
V2l0aFdlYlZpZXdJbXBsOnBhc3RlQWNjZXNzQ2F0ZWdvcnk6XSk6IEFkZGVkLgorICAgICAgICAo
LVtXS0RPTVBhc3RlTWVudURlbGVnYXRlIG1lbnVEaWRDbG9zZTpdKToKKyAgICAgICAgKC1bV0tE
T01QYXN0ZU1lbnVEZWxlZ2F0ZSBfd2ViX2dyYW50RE9NUGFzdGVBY2Nlc3NdKTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVQcm9jZXNzU3dhcE9yRXhpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OnBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkpOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6cGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlRE9NUGFzdGVSZXF1ZXN0Rm9yQ2F0ZWdv
cnlXaXRoUmVzdWx0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhpZGVET01QYXN0
ZU1lbnVXaXRoUmVzdWx0KTogQWRkZWQuCisgICAgICAgICgtW1dLRE9NUGFzdGVNZW51RGVsZWdh
dGUgaW5pdFdpdGhXZWJWaWV3SW1wbDpdKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmhhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF93
ZWJfZ3JhbnRET01QYXN0ZUFjY2Vzc10pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfZ3JhbnRE
T01QYXN0ZUFjY2Vzc10pOiBEZWxldGVkLgorICAgICAgICBQYXNzIHRoZSBgRE9NUGFzdGVBY2Nl
c3NDYXRlZ29yeWAgdG8gdGhlIGBXS0RPTVBhc3RlTWVudURlbGVnYXRlYCBhbmQgdXNlIGl0IGFz
IHRoZSBgdGFyZ2V0YAorICAgICAgICBvZiB0aGUgYE5TTWVudUl0ZW1gIHNvIHRoYXQgd2UgY2Fu
IHBhc3MgYWxvbmcgdGhlIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCBpbiB0aGUgYGFjdGlvbmAu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld10pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX3dpbGxIaWRlTWVudTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBwYXN0ZUZvcldlYlZpZXc6XSk6CisgICAgICAgIChwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0Nh
dGVnb3J5KTogQWRkZWQuCisgICAgICAgIChwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkpOiBB
ZGRlZC4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfaGlkZVBhc3RlTWVudVdpdGhSZXN1bHQ6
XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oYW5kbGVET01QYXN0ZVJlcXVl
c3RGb3JDYXRlZ29yeTpyZXN1bHQ6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF93aWxsUGVyZm9ybUFjdGlvbjpzZW5kZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2RpZFBlcmZvcm1BY3Rpb246c2VuZGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhh
bmRsZUtleVdlYkV2ZW50OndpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzRm9yQ2F0ZWdvcnk6ZWxlbWVudFJlY3Q6
b3JpZ2luSWRlbnRpZmllcjpjb21wbGV0aW9uSGFuZGxlcjpdKTogQWRkZWQuCisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6XSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3JlcXVlc3RET01QYXN0ZUFjY2Vzc1dpdGhF
bGVtZW50UmVjdDpvcmlnaW5JZGVudGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9Q
YWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdl
Q2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERPTVBhc3Rl
QWNjZXNzKToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnlg
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnBhc3RlQWNjZXNzQ2F0ZWdvcnlGb3JDb21t
YW5kKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVkaXRD
b21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFzdGVD
b21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6aXNQYXN0ZUNvbW1hbmROYW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQpCisgICAgICAgIENyZWF0ZSBhIG1hcHBp
bmcgYmV0d2VlbiBwYXN0ZSBjb21tYW5kIG5hbWUgYW5kIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5
YC4KKwogMjAyMS0xMi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1ha2UgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnByb2Nlc3NEaWRFeGl0KCkgcmV0dXJuIGVh
cmx5IGlmIHByb2Nlc3MgbmV2ZXIgcmVnaXN0ZXJlZCBhbnkgbG9ja3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCBlMTcwZTA5M2NiYTljNTBkZmZjMjExNThiZjIwYjI4YWFkYzFhMGFl
Li5mMjBlNGU3NzRhYWJhZDk2MWM5MTE0Zjk0YzBkMWY3NTlhNWMxNDEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTItMDcgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0Nh
dGVnb3J5YCB0byBjb250cm9sIHdoaWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3Jh
bnRlZCBhY2Nlc3MgdG8gd2hlbiBwYXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24g
SHNpZWguCisKKyAgICAgICAgSW1wbGVtZW50aW5nIGAtcGFzdGVGb250OmAgPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzE5MTM3OT4gcmVxdWlyZXMgdGhhdCB3ZSByZWFkIGZyb20gdGhlIGZvbnQKKyAg
ICAgICAgcGFzdGVib2FyZCBpbnN0ZWFkIG9mIHRoZSBnZW5lcmFsIHBhc3RlYm9hcmQuIEluIG9y
ZGVyIHRvIGFsbG93IHdlYiBjb250ZW50IHRvIHRyaWdnZXIgdGhpcworICAgICAgICAoZS5nLiBg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlRm9udCIpKWApIHdlIG11c3QgaGF2ZSBhIHdheSBm
b3IgdGhlIFdlYlByb2Nlc3MgdG8gc2lnbmFsCisgICAgICAgIHRoYXQgaXQgd2lzaGVzIHRvIHJl
YWQgZnJvbSB0aGUgZm9udCBwYXN0ZWJvYXJkIGluc3RlYWQgb2YgdGhlIGdlbmVyYWwgcGFzdGVi
b2FyZC4gQXMgc3VjaCwKKyAgICAgICAgY3JlYXRlIGFuZCBwYXNzIGFsb25nIGEgYERPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnlgIHRvIGByZXF1ZXN0RE9NUGFzdGVBY2Nlc3NgLgorCisgICAgICAgIE5v
IGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MpOgorCiAyMDIxLTEyLTA2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDaGFuZ2UgSURMIGBEYXRlYCB0byBiZSBiYWNrZWQgYnkgYFdhbGxUaW1lYCB0byBh
dm9pZCBjb25mdXNpb24gd2hlbiBjb252ZXJ0aW5nIHRvIG5hdGl2ZSBkYXRlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCmluZGV4IDAyZTk0NmJjMWZiMGIzNTZiYjE1YWI4MzYwZTg2MTQ1NTQ3
MjQ3Y2MuLmJjOTUzYzAxOWI5MzkzNDUzZTA0ZTY5ZDU1Njc2MzJhMTdhOTI3ZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMi0wNyAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgYERPTVBhc3RlQWNj
ZXNzQ2F0ZWdvcnlgIHRvIGNvbnRyb2wgd2hpY2ggcGFzdGVib2FyZCB0aGUgV2ViUHJvY2VzcyBp
cyBncmFudGVkIGFjY2VzcyB0byB3aGVuIHBhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IFdl
bnNvbiBIc2llaC4KKworICAgICAgICBJbXBsZW1lbnRpbmcgYC1wYXN0ZUZvbnQ6YCA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTkxMzc5PiByZXF1aXJlcyB0aGF0IHdlIHJlYWQgZnJvbSB0aGUgZm9u
dAorICAgICAgICBwYXN0ZWJvYXJkIGluc3RlYWQgb2YgdGhlIGdlbmVyYWwgcGFzdGVib2FyZC4g
SW4gb3JkZXIgdG8gYWxsb3cgd2ViIGNvbnRlbnQgdG8gdHJpZ2dlciB0aGlzCisgICAgICAgIChl
LmcuIGBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGVGb250IikpYCkgd2UgbXVzdCBoYXZlIGEg
d2F5IGZvciB0aGUgV2ViUHJvY2VzcyB0byBzaWduYWwKKyAgICAgICAgdGhhdCBpdCB3aXNoZXMg
dG8gcmVhZCBmcm9tIHRoZSBmb250IHBhc3RlYm9hcmQgaW5zdGVhZCBvZiB0aGUgZ2VuZXJhbCBw
YXN0ZWJvYXJkLiBBcyBzdWNoLAorICAgICAgICBjcmVhdGUgYW5kIHBhc3MgYWxvbmcgYSBgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeWAgdG8gYHJlcXVlc3RET01QYXN0ZUFjY2Vzc2AuCisKKyAgICAg
ICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RET01QYXN0
ZUFjY2Vzcyk6CisKIDIwMjEtMTItMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFjcm9zcyBtdWx0aXBsZSBX
ZWJQcm9jZXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01QYXN0ZUFjY2Vz
cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKaW5kZXggOGJmYzE2N2Iy
NGUzNWYwN2I0MGJjYmY3NzNiODMzMmI3NzRjOWEwZC4uZGI1YTY0NGNhNjI0N2ZkOWJhMWUwMWIy
ZThiNzNhNzIwMzEyMDI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3Rl
QWNjZXNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBhc3RlQWNjZXNzLmgKQEAgLTI5
LDYgKzI5LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5IDogdWludDhfdCB7CisgICAgR2VuZXJhbCwKK307CisKIGVudW0gY2xh
c3MgRE9NUGFzdGVBY2Nlc3NQb2xpY3kgOiB1aW50OF90IHsKICAgICBOb3RSZXF1ZXN0ZWRZZXQs
CiAgICAgRGVuaWVkLApAQCAtNDUsNiArNDksMTMgQEAgZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlIDogdWludDhfdCB7CiAKIG5hbWVzcGFjZSBXVEYgewogCit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk+IHsKKyAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5LAorICAgICAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5l
cmFsCisgICAgPjsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CiAgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGMwODc4NWFmOGZjOTI0ZTM1M2ZmZDQ4M2RmN2I5
NWRhMjQ0M2FlODQuLmQ3Zjg1NmI5MDM1N2I0YzU4MDkxY2RiYmI0MDg1NWFiNTY2M2VjYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0yODUsNyArMjg1LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsKICAg
ICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmluYWwgeyB9CiAKLSAgICBET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBmaW5h
bCB7IHJldHVybiBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9Cisg
ICAgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoRE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeSwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gRE9NUGFzdGVBY2Nl
c3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZTsgfQogCiAgICAgYm9vbCBjYW5Db3B5Q3V0KEZy
YW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGRlZmF1bHRWYWx1
ZTsgfQogICAgIGJvb2wgY2FuUGFzdGUoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQu
aAppbmRleCA4MjM3NGU3MjYyYzcwZWE5ZGZlNGQ2NGYyNWFiMTM1YWE2MDMzM2NmLi4xODE3NTMx
Y2I2OThiOGE0ZWRhMjgxMGNjNDY2YzgxNjljYjE2M2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9y
Q2xpZW50LmgKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVt
IGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90OwogZW51bSBjbGFzcyBET01Q
YXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIAogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsK
QEAgLTEwMSw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDYW5k
aWRhdGVzRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNwYWNlcyhUZXh0Q2hlY2tp
bmdSZXN1bHQpIHsgfQogCi0gICAgdmlydHVhbCBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVl
c3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKERP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikgPSAw
OwogCiAgICAgLy8gTm90aWZ5IGFuIGlucHV0IG1ldGhvZCB0aGF0IGEgY29tcG9zaXRpb24gd2Fz
IHZvbHVudGFyaWx5IGRpc2NhcmRlZCBieSBXZWJDb3JlLCBzbyB0aGF0IGl0IGNvdWxkIGNsZWFu
IHVwIHRvby4KICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgd2hlbiBhIGNvbXBv
c2l0aW9uIGlzIGNsb3NlZCBwZXIgYSByZXF1ZXN0IGZyb20gYW4gaW5wdXQgbWV0aG9kLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCA3Nzg4ZWU1NzU1ZmViZjAwM2Y5MjliNmRmNWRlMDk0ZmQ3YTkz
MzhmLi5hNTdiODcwNjBmN2I5NzIxY2NkODIyMDVjNTVhOTQwZjZkYmIxNzI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcApAQCAtNTYxLDcgKzU2MSw3IEBAIGJvb2wgRnJhbWU6OnNlbGVjdGlvbkNoYW5n
ZUNhbGxiYWNrc0Rpc2FibGVkKCkgY29uc3QKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKQogCi1ib29sIEZyYW1lOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoKQorYm9vbCBGcmFtZTo6
cmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3ND
YXRlZ29yeSkKIHsKICAgICBpZiAobV9zZXR0aW5ncy0+amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBi
b2FyZCgpICYmIG1fc2V0dGluZ3MtPmRvbVBhc3RlQWxsb3dlZCgpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTU4OSw3ICs1ODksNyBAQCBib29sIEZyYW1lOjpyZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoKQogICAgICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgICAgICBhdXRvIHJlc3BvbnNlID0gY2xpZW50LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MobV9k
b2MtPm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCkpOworICAgICAgICBhdXRvIHJlc3Bv
bnNlID0gY2xpZW50LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MocGFzdGVBY2Nlc3NDYXRlZ29yeSwg
bV9kb2MtPm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCkpOwogICAgICAgICBnZXN0dXJl
VG9rZW4tPmRpZFJlcXVlc3RET01QYXN0ZUFjY2VzcyhyZXNwb25zZSk7CiAgICAgICAgIHN3aXRj
aCAocmVzcG9uc2UpIHsKICAgICAgICAgY2FzZSBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFu
dGVkRm9yQ29tbWFuZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCAxMjRkZjE4ODVmNzFkY2Q3ZDY1ZTAx
ZDY5ZmQ3OWIxMDRhMDdlNjcyLi41MzY0NGViMTk1ZTE3Y2QyZmQ3ZmM0MWIxNDJhZDFiNzZlNGI2
Y2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzSGFkVXNlckludGVyYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYXNIYWRVc2VySW50
ZXJhY3Rpb247IH0KICAgICB2b2lkIHNldEhhc0hhZFVzZXJJbnRlcmFjdGlvbigpIHsgbV9oYXNI
YWRVc2VySW50ZXJhY3Rpb24gPSB0cnVlOyB9CiAKLSAgICBib29sIHJlcXVlc3RET01QYXN0ZUFj
Y2VzcygpOworICAgIGJvb2wgcmVxdWVzdERPTVBhc3RlQWNjZXNzKERPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnkgPSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsKTsKIAogICAgIFN0cmluZyBk
ZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IDA5MzBjZjkxN2JhNzkwZTU3NWQ4NGI5NjllYWMwNTgxZjUyZjUxNmUu
Ljk0MmM3NjFkMzY3NWQ5Y2RhZGNmOWRhMWQ0NWViOTNiOTgyMTBiMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNzU4LDYgKzc1OCw3IEBAIGRlZiBoZWFk
ZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6Q09PUERpc3Bvc2l0aW9uJzog
Wyc8V2ViQ29yZS9Dcm9zc09yaWdpbk9wZW5lclBvbGljeS5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6Q29tcG9zaXRlT3BlcmF0b3InOiBbJzxXZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OkNyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9B
cHBIaWdobGlnaHQuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnknOiBbJzxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlJzogWyc8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJzogWyc8V2ViQ29yZS9Db2xv
clNwYWNlLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklk
ZW50aWZpZXInOiBbJzxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+J10sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDkyMDQ0NDBi
MDI4ZmQxNzVhZjZmMGZlYjFjNzgwZWE3Y2I5MzhkZDguLjFhOTFjN2Q3ODdmN2QzYjg4YTJmMGZj
YmQ0OGViNzJmZTZiZjUzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC01NDgsNyArNTQ4LDcgQEAgYm9vbCBQYWdlQ2xp
ZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNz
aW9uUmVxdWVzdCgKIH0KICNlbmRpZgogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MoY29uc3QgSW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgSW50UmVjdCYsIGNvbnN0IFN0cmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNDJhNDQx
NzY0MGRkNjc3ODAwMDYwOWZjMTNjNzdkZTM1NmJjZThhMS4uOTlkMDk3YWJkZWZiMWU4MzJkM2Y2
ZmNkN2JlZjkyMzRiZTFjYTBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuaApAQCAtMTYwLDcgKzE2MCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBpc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSBmaW5hbCB7IH0KICAgICB2b2lkIGlzUGxh
eWluZ0F1ZGlvRGlkQ2hhbmdlKCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0
ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgZmluYWw7
CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3ND
YXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFs
OwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIGJvb2wgZGVjaWRl
UG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0
YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Jikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGE1ODg2MWZjMzExOWVj
Yzk0ZjNhZGEwMzM5OTIwY2FjMjZhODJlZDYuLjA5NzM0NDMwMzkwNjFiOGY5OGIwYzA3MTc4ZTRh
ZjZhNTA0NDAwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
CkBAIC05MTIsMTEgKzkxMiw2IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPm5hbWVzT2ZQcm9taXNlZEZpbGVzRHJvcHBlZEF0
RGVzdGluYXRpb24oZHJvcERlc3RpbmF0aW9uKTsKIH0KIAotLSAodm9pZClfd2ViX2dyYW50RE9N
UGFzdGVBY2Nlc3MKLXsKLSAgICBfZGF0YS0+X2ltcGwtPmhhbmRsZURPTVBhc3RlUmVxdWVzdFdp
dGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckdlc3R1
cmUpOwotfQotCiAtICh2b2lkKW1heWJlSW5zdGFsbEljb25Mb2FkaW5nQ2xpZW50CiB7CiAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXggNWIwNmJjNTdkYTQxZGMyZjEy
NDQ4MmVjOTM4Y2UwNjA1YTVlM2Y5My4uMmQzMDY5Y2NlMjUyNDQ3NTk5ZDFkNmJhZTM3ZDA2YTll
MmVjNjcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dl
YlZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZp
ZXdNYWMubW0KQEAgLTEyMzIsMTEgKzEyMzIsNiBAQCAtICh2b2lkKV93ZWJfZ2VzdHVyZUV2ZW50
V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTooTlNFdmVudCAqKWV2ZW50CiAgICAgW3NlbGYgX2dlc3R1
cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6ZXZlbnRdOwogfQogCi0tICh2b2lkKV93ZWJf
Z3JhbnRET01QYXN0ZUFjY2VzcwotewotICAgIF9pbXBsLT5oYW5kbGVET01QYXN0ZVJlcXVlc3RX
aXRoUmVzdWx0KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JHZXN0
dXJlKTsKLX0KLQogLSAodm9pZClfdGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uSW50ZXJuYWw6
KGlkKXNlbmRlcgogewogICAgIFtzZWxmIHRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpzZW5k
ZXJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmNwcAppbmRleCA2YzNlMWM5NTUwNDIwNTViMzAxNmUwNGU0YmM5YzQwMGM1YTVjOTA1Li44
MDY5OTNjYTczYTljY2UzNzc1M2Q4MDVhOWFiOWY0Y2I2YmQxYTdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNDE1LDcg
KzQxNSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgLyogaW5pdGlhbEZyYW1lCiAKICNlbmRpZiAvLyBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vz
cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaAppbmRl
eCBjYTMwMDAwZTFhMDZiODU4ODY3MTZjOGQ5OTFlZjQ4NTk2M2ZkNjM1Li43YzA4YTEzZTEwYzc1
Njc3NDUyYjc0ZjUyYmUyYjQ0N2E1ZWRhYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCkBAIC0zNiw2ICszNiw3IEBAIGNsYXNzIFZp
ZXc7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3ND
YXRlZ29yeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1
aW50OF90OwogfQogCkBAIC0xNTgsNyArMTU5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAg
SVBDOjpBdHRhY2htZW50IGhvc3RGaWxlRGVzY3JpcHRvcigpIGZpbmFsOwotICAgIHZvaWQgcmVx
dWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2Up
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
KT4mJikgZmluYWw7CiAKICAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
IHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggM2Y2ZGQxZjI0MmU3YTExNWVj
Zjc5ODM5MGYzNGI2MzVjNmU4ZDZmOS4uOTM0MDk0MDAyMTRiNmI2N2IyMDg5ZjdkMGUzN2VkMGNi
MWVjYmEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CkBAIC0xMzUsOCArMTM1LDYgQEAgc3RydWN0IFRyYW5zbGF0aW9uQ29udGV4dE1lbnVJbmZvOwog
LSAodm9pZClfd2ViX2RpZFBlcmZvcm1EcmFnT3BlcmF0aW9uOihCT09MKWhhbmRsZWQ7CiAjZW5k
aWYKIAotLSAodm9pZClfd2ViX2dyYW50RE9NUGFzdGVBY2Nlc3M7Ci0KIEBvcHRpb25hbAogLSAo
dm9pZClfd2ViX2RpZEFkZE1lZGlhQ29udHJvbHNNYW5hZ2VyOihpZCljb250cm9sc01hbmFnZXI7
CiAtICh2b2lkKV93ZWJfZGlkUmVtb3ZlTWVkaWFDb250cm9sc01hbmFnZXI7CkBAIC02NTIsOSAr
NjUwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVj
dGlvbik7CiAgICAgdm9pZCBjbGVhclByb21pc2VkRHJhZ0ltYWdlKCk7CiAKLSAgICB2b2lkIHJl
cXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UpPiYmKTsKLSAgICB2b2lkIGhhbmRsZURPTVBhc3RlUmVxdWVzdFdp
dGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk7CisgICAgdm9pZCByZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJik7Cisg
ICAgdm9pZCBoYW5kbGVET01QYXN0ZVJlcXVlc3RGb3JDYXRlZ29yeVdpdGhSZXN1bHQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZSk7CiAgICAgTlNNZW51ICpkb21QYXN0ZU1lbnUoKSBjb25zdCB7IHJldHVybiBtX2RvbVBhc3Rl
TWVudS5nZXQoKTsgfQorICAgIHZvaWQgaGlkZURPTVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk7CiAKICNpZiBIQVZFKFRSQU5TTEFUSU9OX1VJX1NF
UlZJQ0VTKSAmJiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBib29sIGNhbkhhbmRsZUNvbnRl
eHRNZW51VHJhbnNsYXRpb24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggM2Q5ZTg3N2IwY2I3NTY1NGI2MzkxNjM5NTU3ZjUyYjYw
MzkyY2FjOS4uODhjNWRkODljMTRmNzliNWY1MDhjZTJhNTQ0NWI3Zjc1MzBiNGI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTEwMDcsMTkg
KzEwMDcsMjEgQEAgLSAoTlNTdHJpbmcgKilhdHRhY2htZW50SWRlbnRpZmllcgogQGVuZAogCiBA
aW50ZXJmYWNlIFdLRE9NUGFzdGVNZW51RGVsZWdhdGUgOiBOU09iamVjdDxOU01lbnVEZWxlZ2F0
ZT4KLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJ
bXBsJilpbXBsOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktpdDo6
V2ViVmlld0ltcGwmKWltcGwgcGFzdGVBY2Nlc3NDYXRlZ29yeTooV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeSljYXRlZ29yeTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRE9NUGFz
dGVNZW51RGVsZWdhdGUgewogICAgIFdlYWtQdHI8V2ViS2l0OjpXZWJWaWV3SW1wbD4gX2ltcGw7
CisgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBfY2F0ZWdvcnk7CiB9CiAKLS0g
KGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJilp
bXBsCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3
SW1wbCYpaW1wbCBwYXN0ZUFjY2Vzc0NhdGVnb3J5OihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0Nh
dGVnb3J5KWNhdGVnb3J5CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKICAgICBfaW1wbCA9IGltcGw7CisgICAgX2NhdGVnb3J5ID0gY2F0
ZWdvcnk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTEwMjcsNyArMTAyOSw3IEBAIC0gKHZv
aWQpbWVudURpZENsb3NlOihOU01lbnUgKiltZW51CiB7CiAgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFtpbXBsID0gX2ltcGxdIHsKICAgICAgICAgaWYgKGltcGwpCi0gICAgICAgICAgICBp
bXBsLT5oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0KFdlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUpOworICAgICAgICAgICAgaW1wbC0+aGlkZURP
TVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVu
aWVkRm9yR2VzdHVyZSk7CiAgICAgfSk7CiB9CiAKQEAgLTEwNDMsNiArMTA0NSwxMSBAQCAtIChO
U1JlY3QpY29uZmluZW1lbnRSZWN0Rm9yTWVudTooTlNNZW51ICopbWVudSBvblNjcmVlbjooTlNT
Y3JlZW4gKilzY3JlZW4KICAgICByZXR1cm4gY29uZmluZW1lbnRSZWN0OwogfQogCistICh2b2lk
KV93ZWJfZ3JhbnRET01QYXN0ZUFjY2VzcworeworICAgIF9pbXBsLT5oYW5kbGVET01QYXN0ZVJl
cXVlc3RGb3JDYXRlZ29yeVdpdGhSZXN1bHQoX2NhdGVnb3J5LCBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yR2VzdHVyZSk7Cit9CisKIEBlbmQKIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC0xNjAzLDcgKzE2MTAsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpoYW5kbGVQ
cm9jZXNzU3dhcE9yRXhpdCgpCiAKICAgICB1cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0
cmF0aW9uKGZhbHNlKTsKIAotICAgIGhhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQoV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CisgICAgaGlk
ZURPTVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6
RGVuaWVkRm9yR2VzdHVyZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnByb2Nlc3NXaWxsU3dh
cCgpCkBAIC00NTc4LDM0ICs0NTg1LDU4IEBAIE5TQXJyYXkgKldlYlZpZXdJbXBsOjpuYW1lc09m
UHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uKE5TVVJMICpkcm9wRGVzdGluCiAgICAg
cmV0dXJuIEBbW3BhdGggbGFzdFBhdGhDb21wb25lbnRdXTsKIH0KIAotdm9pZCBXZWJWaWV3SW1w
bDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbikKK3N0YXRpYyBOU1Bhc3RlYm9h
cmROYW1lIHBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkoV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5KQoreworICAgIHN3aXRjaCAocGFzdGVB
Y2Nlc3NDYXRlZ29yeSkgeworICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29y
eTo6R2VuZXJhbDoKKyAgICAgICAgcmV0dXJuIE5TUGFzdGVib2FyZE5hbWVHZW5lcmFsOworICAg
IH0KK30KKworc3RhdGljIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5
KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSkKK3sK
KyAgICBzd2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CisgICAgICAgIHJldHVybiBOU1Bhc3RlYm9h
cmQuZ2VuZXJhbFBhc3RlYm9hcmQ7CisgICAgfQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpyZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFj
Y2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiBvcmln
aW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb24pCiB7CiAgICAgQVNTRVJUKCFtX2RvbVBhc3RlUmVx
dWVzdEhhbmRsZXIpOwotICAgIGhhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CisgICAgaGlkZURP
TVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVu
aWVkRm9yR2VzdHVyZSk7CiAKLSAgICBOU0RhdGEgKmRhdGEgPSBbTlNQYXN0ZWJvYXJkLmdlbmVy
YWxQYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6
OmNvY29hVHlwZSgpKV07CisgICAgTlNEYXRhICpkYXRhID0gW3Bhc3RlYm9hcmRGb3JBY2Nlc3ND
YXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSBkYXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOwogICAgIGF1dG8gYnVmZmVyID0gV2ViQ29y
ZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSk7CiAgICAgaWYgKFdlYkNvcmU6OlBhc3RlYm9h
cmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKGJ1ZmZlci5nZXQoKSkub3JpZ2luKCkgPT0g
b3JpZ2luSWRlbnRpZmllcikgewotICAgICAgICBtX3BhZ2UtPmdyYW50QWNjZXNzVG9DdXJyZW50
UGFzdGVib2FyZERhdGEoTlNQYXN0ZWJvYXJkTmFtZUdlbmVyYWwpOworICAgICAgICBtX3BhZ2Ut
PmdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEocGFzdGVib2FyZE5hbWVGb3JBY2Nl
c3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSk7CiAgICAgICAgIGNvbXBsZXRpb24oV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckdlc3R1cmUpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgbV9kb21QYXN0ZU1lbnVEZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tXS0RPTVBhc3RlTWVudURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFdlYlZpZXdJbXBsOip0aGlz
XSk7CisgICAgbV9kb21QYXN0ZU1lbnVEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS0RPTVBhc3RlTWVu
dURlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFdlYlZpZXdJbXBsOip0aGlzIHBhc3RlQWNjZXNzQ2F0
ZWdvcnk6cGFzdGVBY2Nlc3NDYXRlZ29yeV0pOwogICAgIG1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbik7CiAgICAgbV9kb21QYXN0ZU1lbnUgPSBhZG9wdE5TKFtb
TlNNZW51IGFsbG9jXSBpbml0V2l0aFRpdGxlOldlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Bh
c3RlKCldKTsKIAogICAgIFttX2RvbVBhc3RlTWVudSBzZXREZWxlZ2F0ZTptX2RvbVBhc3RlTWVu
dURlbGVnYXRlLmdldCgpXTsKICAgICBbbV9kb21QYXN0ZU1lbnUgc2V0QWxsb3dzQ29udGV4dE1l
bnVQbHVnSW5zOk5PXTsKLSAgICBbbV9kb21QYXN0ZU1lbnUgaW5zZXJ0SXRlbVdpdGhUaXRsZTpX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpIGFjdGlvbjpAc2VsZWN0b3IoX3dlYl9n
cmFudERPTVBhc3RlQWNjZXNzKSBrZXlFcXVpdmFsZW50OmVtcHR5U3RyaW5nKCkgYXRJbmRleDow
XTsKKworICAgIGF1dG8gcGFzdGVNZW51SXRlbSA9IFJldGFpblB0cihbbV9kb21QYXN0ZU1lbnUg
aW5zZXJ0SXRlbVdpdGhUaXRsZTpXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpIGFj
dGlvbjpAc2VsZWN0b3IoX3dlYl9ncmFudERPTVBhc3RlQWNjZXNzKSBrZXlFcXVpdmFsZW50OmVt
cHR5U3RyaW5nKCkgYXRJbmRleDowXSk7CisgICAgW3Bhc3RlTWVudUl0ZW0gc2V0VGFyZ2V0Om1f
ZG9tUGFzdGVNZW51RGVsZWdhdGUuZ2V0KCldOworCiAgICAgW05TTWVudSBwb3BVcENvbnRleHRN
ZW51Om1fZG9tUGFzdGVNZW51LmdldCgpIHdpdGhFdmVudDptX2xhc3RNb3VzZURvd25FdmVudC5n
ZXQoKSBmb3JWaWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKV07CiB9CiAKLXZvaWQgV2ViVmll
d0ltcGw6OmhhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSByZXNwb25zZSkKK3ZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZURPTVBhc3Rl
UmVxdWVzdEZvckNhdGVnb3J5V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnksIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2Ug
cmVzcG9uc2UpCiB7CiAgICAgaWYgKHJlc3BvbnNlID09IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2U6OkdyYW50ZWRGb3JDb21tYW5kIHx8IHJlc3BvbnNlID09IFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlKQotICAgICAgICBtX3BhZ2UtPmdy
YW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoTlNQYXN0ZWJvYXJkTmFtZUdlbmVyYWwp
OworICAgICAgICBtX3BhZ2UtPmdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEocGFz
dGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSk7CiAKKyAg
ICBoaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChyZXNwb25zZSk7Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6OmhpZGVET01QYXN0ZU1lbnVXaXRoUmVzdWx0KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2UgcmVzcG9uc2UpCit7CiAgICAgaWYgKGF1dG8gaGFuZGxlciA9IHN0ZDo6ZXhjaGFu
Z2UobV9kb21QYXN0ZVJlcXVlc3RIYW5kbGVyLCB7IH0pKQogICAgICAgICBoYW5kbGVyKHJlc3Bv
bnNlKTsKICAgICBbbV9kb21QYXN0ZU1lbnUgcmVtb3ZlQWxsSXRlbXNdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGM0ODVjN2ZjMzEzZWEwODMzZmM2MDYyNjcxNjlkNjky
YTgyNDA5MjguLjE5NWMzYzgyMjA4OGE3N2JiOWRmMTY3ODUwMTBmNDE1NmM2Y2M2NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTExMCw2ICsxMTAsNyBAQCBlbnVtIGNs
YXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNjcm9sbGJhclN0
eWxlIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvckxpZmV0aW1lIDogdWludDhf
dDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvckRpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7
CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90OwogZW51bSBjbGFz
cyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgU2Nyb2xsSXNB
bmltYXRlZCA6IHVpbnQ4X3Q7CiAKQEAgLTU5OSw3ICs2MDAsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZURyYWdDYXJldFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
cHJldmlvdXNDYXJldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNhcmV0UmVjdCkgPSAw
OwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVs
ZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpID0gMDsKIAogI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydEF0
dGFjaG1lbnQoQVBJOjpBdHRhY2htZW50JiwgY29uc3QgU3RyaW5nJiBzb3VyY2UpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggY2MzYjA3YTVjNWM4MTMz
OTY5ZjAwZjBjMzNmNGI4NDY1ZWM3NjI0ZS4uYTM0YjFiYjE0NjI1NWE0ODE1NWYxNjIwMDFmNTA1
Zjg4ZTZmOWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0yNTEwLDE1ICsyNTEwLDIwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3RBbGwoKQogICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNlbGVjdEFsbCgpKTsKIH0KIAotc3RhdGljIGJvb2wg
aXNQYXN0ZUNvbW1hbmROYW1lKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpCitzdGF0aWMgc3Rk
OjpvcHRpb25hbDxET01QYXN0ZUFjY2Vzc0NhdGVnb3J5PiBwYXN0ZUFjY2Vzc0NhdGVnb3J5Rm9y
Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gcGFzdGVD
b21tYW5kTmFtZXMgPSBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiB7
Ci0gICAgICAgICJQYXN0ZSIsCi0gICAgICAgICJQYXN0ZUFuZE1hdGNoU3R5bGUiLAotICAgICAg
ICAiUGFzdGVBc1F1b3RhdGlvbiIsCi0gICAgICAgICJQYXN0ZUFzUGxhaW5UZXh0IgorICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFN0cmluZywgRE9NUGFzdGVBY2Nlc3NDYXRlZ29y
eSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gcGFzdGVDb21tYW5kTmFtZXMgPSBIYXNoTWFw
PFN0cmluZywgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PiB7CisgICAgICAgIHsgIlBhc3RlIiwgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbCB9
LAorICAgICAgICB7ICJQYXN0ZUFuZE1hdGNoU3R5bGUiLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5
OjpHZW5lcmFsIH0sCisgICAgICAgIHsgIlBhc3RlQXNRdW90YXRpb24iLCBET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5OjpHZW5lcmFsIH0sCisgICAgICAgIHsgIlBhc3RlQXNQbGFpblRleHQiLCBET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsIH0sCiAgICAgfTsKLSAgICByZXR1cm4gcGFzdGVD
b21tYW5kTmFtZXMtPmNvbnRhaW5zKGNvbW1hbmROYW1lKTsKKworICAgIGF1dG8gaXQgPSBwYXN0
ZUNvbW1hbmROYW1lcy0+ZmluZChjb21tYW5kTmFtZSk7CisgICAgaWYgKGl0ICE9IHBhc3RlQ29t
bWFuZE5hbWVzLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKKworICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRlRWRpdENvbW1h
bmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCkBAIC0yNTI4LDggKzI1
MzMsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmlu
ZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKGlzUGFzdGVDb21tYW5kTmFtZShjb21tYW5kTmFtZSkpCi0gICAgICAgIHdpbGxQ
ZXJmb3JtUGFzdGVDb21tYW5kKCk7CisgICAgaWYgKGF1dG8gcGFzdGVBY2Nlc3NDYXRlZ29yeSA9
IHBhc3RlQWNjZXNzQ2F0ZWdvcnlGb3JDb21tYW5kKGNvbW1hbmROYW1lKSkKKyAgICAgICAgd2ls
bFBlcmZvcm1QYXN0ZUNvbW1hbmQoKnBhc3RlQWNjZXNzQ2F0ZWdvcnkpOwogCiAgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpFeGVjdXRlRWRpdENvbW1hbmRXaXRoQ2Fs
bGJhY2soY29tbWFuZE5hbWUsIGFyZ3VtZW50KSwgW2NhbGxiYWNrRnVuY3Rpb24gPSBXVEZNb3Zl
KGNhbGxiYWNrRnVuY3Rpb24pLCBiYWNrZ3JvdW5kQWN0aXZpdHkgPSBtX3Byb2Nlc3MtPnRocm90
dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5OjpleGVjdXRlRWRpdENvbW1h
bmQiX3MpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbigpOwpAQCAtMjU0
Myw4ICsyNTQ4LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGEKICAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1Bhc3RlQ29tbWFuZE5h
bWUoY29tbWFuZE5hbWUpKQotICAgICAgICB3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCgpOworICAg
IGlmIChhdXRvIHBhc3RlQWNjZXNzQ2F0ZWdvcnkgPSBwYXN0ZUFjY2Vzc0NhdGVnb3J5Rm9yQ29t
bWFuZChjb21tYW5kTmFtZSkpCisgICAgICAgIHdpbGxQZXJmb3JtUGFzdGVDb21tYW5kKCpwYXN0
ZUFjY2Vzc0NhdGVnb3J5KTsKIAogICAgIGlmIChjb21tYW5kTmFtZSA9PSBpZ25vcmVTcGVsbGlu
Z0NvbW1hbmROYW1lKQogICAgICAgICArK21fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2Fn
ZUNvdW50OwpAQCAtNjU5MSw5ICs2NTk2LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldElzTmV2
ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNoQmFyKGJvb2wgaXNOZXZlclJpY2hseUVkaXRhYmwKIAog
I2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3Bv
bnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0Nh
dGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIG1fcGFnZUNs
aWVudC0+cmVxdWVzdERPTVBhc3RlQWNjZXNzKGVsZW1lbnRSZWN0LCBvcmlnaW5JZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgbV9wYWdlQ2xpZW50LT5yZXF1ZXN0
RE9NUGFzdGVBY2Nlc3MocGFzdGVBY2Nlc3NDYXRlZ29yeSwgZWxlbWVudFJlY3QsIG9yaWdpbklk
ZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogLy8gQmFja0Zvcndh
cmRMaXN0CkBAIC0xMDc5NCw3ICsxMDc5OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwbGF0Zm9y
bURpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1lCiAK
ICNpZiAhUExBVEZPUk0oQ09DT0EpCiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBh
c3RlQ29tbWFuZCgpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQo
RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCAzNDcwYzhhODMwNzc5ODliNmUyNTQ3N2UwY2Q5MDJlZGQ2MTg3ZmE4
Li5lMWM5ZTgzYzJhYmQwZjdlYzBkMzY1ZTkzYTBjNjY0ODAxMGMyMDU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjY2LDYgKzI2Niw3IEBAIGNsYXNzIFZhbGlk
YXRpb25CdWJibGU7CiAKIGVudW0gY2xhc3MgQXV0b3BsYXlFdmVudCA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IDogYm9vbDsKK2VudW0gY2xhc3MgRE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNz
UmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBFdmVudE1ha2VzR2FtZXBhZHNWaXNpYmxl
IDogYm9vbDsKIGVudW0gY2xhc3MgTG9ja0JhY2tGb3J3YXJkTGlzdCA6IGJvb2w7CkBAIC0yMjU1
LDggKzIyNTYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SXNOZXZlclJpY2hseUVkaXRhYmxl
Rm9yVG91Y2hCYXIoYm9vbCk7CiAjZW5kaWYKIAotICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNj
ZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKTsKLSAgICB2b2lk
IHdpbGxQZXJmb3JtUGFzdGVDb21tYW5kKCk7CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZSk+JiYpOworICAgIHZvaWQgd2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQo
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSk7CiAKICAgICAvLyBCYWNrL0ZvcndhcmQg
bGlzdCBtYW5hZ2VtZW50CiAgICAgdm9pZCBiYWNrRm9yd2FyZEFkZEl0ZW0oQmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDA4Nzc4YWU2NTQ0OGJlY2E4MDBiNDBmZDMyODM4Y2QyM2Vk
NzhiOTMuLmUzZmYwYTM1Y2QzZmY0OTlhNzEzM2Y5YmZmMmQzMzE0NDQ4OTRkMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIz
Miw3ICsyMzIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldElzTmV2ZXJS
aWNobHlFZGl0YWJsZUZvclRvdWNoQmFyKGJvb2wgaXNOZXZlclJpY2hseUVkaXRhYmxlKQogI2Vu
ZGlmCiAKLSAgICBSZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50
UmVjdCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXNwb25zZSkgU3luY2hyb25vdXMKKyAgICBSZXF1ZXN0
RE9NUGFzdGVBY2Nlc3MoZW51bTp1aW50OF90IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSwgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50UmVjdCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSByZXNwb25zZSkgU3luY2hyb25vdXMKIAogICAgICMgRmluZCBtZXNzYWdl
cwogICAgIERpZENvdW50U3RyaW5nTWF0Y2hlcyhTdHJpbmcgc3RyaW5nLCB1aW50MzJfdCBtYXRj
aENvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaAppbmRleCA1NjA3M2JiODM3N2IwNmJjNDE1ZDU2ZTA2NzhjMzE2ZjZjOGUyYmIzLi4zYjA0
YTgzM2RiZTBiNmI2NmVlMTRkM2MzMDBmMzA2ODcxOGJmMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMzgsNiArMzgsNyBAQCBP
QkpDX0NMQVNTIFdLQ29udGVudFZpZXc7CiBPQkpDX0NMQVNTIFdLRWRpdG9yVW5kb1RhcmdldDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5
IDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7
CiBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbzsKIH0KQEAgLTI2Niw3ICsyNjcsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYpPiYm
KSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFs
OworICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBTdHJp
bmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2UpPiYmKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9pZCBkaWRQ
ZXJmb3JtRHJhZ09wZXJhdGlvbihib29sIGhhbmRsZWQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDMyZDFmODlj
MDU4YjliNDBhMThlOGY2N2JjN2JlOWYwYTEwMjUwOGIuLmZhYzllN2ZiNzhiZWUwZjYyOTQ1Njcy
ZTNiYjc0YjllMDUyMGUzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTk1MSw5ICs5NTEsOSBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIGZp
bGVOYW1lLAogfQogI2VuZGlmCiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0
ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBQYWdlQ2xpZW50
SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJl
Y3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBbbV9jb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1lbnRS
ZWN0OmVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6b3JpZ2luSWRlbnRpZmllciBjb21wbGV0
aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07CisgICAgW21fY29udGVudFZp
ZXcgX3JlcXVlc3RET01QYXN0ZUFjY2Vzc0ZvckNhdGVnb3J5OnBhc3RlQWNjZXNzQ2F0ZWdvcnkg
ZWxlbWVudFJlY3Q6ZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRpZmllcjpvcmlnaW5JZGVudGlmaWVy
IGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKIH0KIAogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6Y2FuY2VsUG9pbnRlcnNGb3JHZXN0dXJlUmVjb2duaXplcihVSUdl
c3R1cmVSZWNvZ25pemVyKiBnZXN0dXJlUmVjb2duaXplcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBiM2Y4
YTMyZWU0NmIxZjdhOTkyNGE3NWJmZDRmZDQ3NDk3MTJiZDcyLi5jMWJjZjVkNjE1YmY2MTAwYTc3
OGI5OTViNGE4ZDk1YWQ0ZTlkNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC05MCw2ICs5MCw3IEBAIHN0
cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87
CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIHN0cnVjdCBUZXh0UmVjb2duaXRpb25S
ZXN1bHQ7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90OwogZW51
bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIGVudW0gY2xhc3MgTW91
c2VFdmVudFBvbGljeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJvdXRlU2hhcmluZ1BvbGljeSA6
IHVpbnQ4X3Q7CkBAIC02NzEsNyArNjcyLDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRW
SUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0g
KHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4Oih1aW50MzJfdClpbmRleCBh
bGxvd3NNdWx0aXBsZVNlbGVjdGlvbjooYm9vbClhbGxvd3NNdWx0aXBsZVNlbGVjdGlvbjsKIC0g
KHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRGb2N1c2VkV2l0aERhdGFMaXN0RHJvcGRvd246KEJP
T0wpdmFsdWU7CiAKLS0gKHZvaWQpX3JlcXVlc3RET01QYXN0ZUFjY2Vzc1dpdGhFbGVtZW50UmVj
dDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRpZmllcjoo
Y29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKWNvbXBs
ZXRpb25IYW5kbGVyOworLSAodm9pZClfcmVxdWVzdERPTVBhc3RlQWNjZXNzRm9yQ2F0ZWdvcnk6
KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkpcGFzdGVBY2Nlc3NDYXRlZ29yeSBlbGVt
ZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRp
ZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYm
KWNvbXBsZXRpb25IYW5kbGVyOwogCiAtICh2b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9u
VXBkYXRlOih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
KSlhY3Rpb24gZm9yUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dClyZXF1ZXN0OwogLSAoQk9PTCllbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZToo
V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KaW5kZXggMWE4MWNjZTQ0NTVlYjFhNzJiMTBlOGYyNDczYzYwYTI5MWVhNThiYS4uYjkwYWNm
ZWM0ODEyOGY0NTNjOTEwMjM2ZDJiYmY4YWNiYTkxOTE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0x
MjQ4LDcgKzEyNDgsNyBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIF9zdXBwcmVz
c1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMgPSB7IH07CiAKICAgICBbc2VsZiBfcmVzZXRQYW5u
aW5nUHJldmVudGlvbkZsYWdzXTsKLSAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0
aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJl
XTsKKyAgICBbc2VsZiBfaGlkZVBhc3RlTWVudVdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CiAgICAgW3NlbGYgX2NhbmNlbFBlbmRp
bmdLZXlFdmVudEhhbmRsZXJdOwogCiAgICAgX2NhY2hlZFNlbGVjdGVkVGV4dFJhbmdlID0gbmls
OwpAQCAtMTYzNyw3ICsxNjM3LDcgQEAgLSAoQk9PTClyZXNpZ25GaXJzdFJlc3BvbmRlckZvcldl
YlZpZXcKICAgICBib29sIHN1cGVyRGlkUmVzaWduID0gW3N1cGVyIHJlc2lnbkZpcnN0UmVzcG9u
ZGVyXTsKIAogICAgIGlmIChzdXBlckRpZFJlc2lnbikgewotICAgICAgICBbc2VsZiBfaGFuZGxl
RE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
OjpEZW5pZWRGb3JHZXN0dXJlXTsKKyAgICAgICAgW3NlbGYgX2hpZGVQYXN0ZU1lbnVXaXRoUmVz
dWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOwog
ICAgICAgICBfcGFnZS0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpBY3Rpdml0eVN0
YXRlOjpJc0ZvY3VzZWQsIFdlYktpdDo6V2ViUGFnZVByb3h5OjpBY3Rpdml0eVN0YXRlQ2hhbmdl
RGlzcGF0Y2hNb2RlOjpJbW1lZGlhdGUpOwogCiAgICAgICAgIGlmIChfa2V5V2ViRXZlbnRIYW5k
bGVyKSB7CkBAIC0xNzA1LDcgKzE3MDUsNyBAQCAtICh2b2lkKV93ZWJUb3VjaEV2ZW50c1JlY29n
bml6ZWQ6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZQogCiAg
ICAgX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uID0gbGFzdFRvdWNoRXZlbnQtPmxvY2F0aW9uSW5E
b2N1bWVudENvb3JkaW5hdGVzOwogICAgIGlmIChsYXN0VG91Y2hFdmVudC0+dHlwZSA9PSBVSVdl
YlRvdWNoRXZlbnRUb3VjaEJlZ2luKSB7Ci0gICAgICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJl
cXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZv
ckdlc3R1cmVdOworICAgICAgICBbc2VsZiBfaGlkZVBhc3RlTWVudVdpdGhSZXN1bHQ6V2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CiAgICAgICAgIF9s
YXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0SW50ZXJhY3Rpb25TdGFydCA9IGRvd25jYXN0PFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eT4oKl9wYWdlLT5kcmF3aW5nQXJl
YSgpKS5sYXN0Q29tbWl0dGVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpOwogCiAjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKQEAgLTM5NjksNyArMzk2OSw3IEBAIC0gKGlkKXRhcmdldEZvckFjdGlv
bkZvcldlYlZpZXc6KFNFTClhY3Rpb24gd2l0aFNlbmRlcjooaWQpc2VuZGVyCiAKIC0gKHZvaWQp
X3dpbGxIaWRlTWVudTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBbc2Vs
ZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKKyAgICBbc2VsZiBfaGlkZVBhc3RlTWVudVdp
dGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVy
ZV07CiB9CiAKIC0gKHZvaWQpX2RpZEhpZGVNZW51OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgpAQCAtMzk5Nyw3ICszOTk3LDcgQEAgLSAodm9pZCljdXRGb3JXZWJWaWV3OihpZClzZW5k
ZXIKIAogLSAodm9pZClwYXN0ZUZvcldlYlZpZXc6KGlkKXNlbmRlcgogewotICAgIGlmIChzZW5k
ZXIgPT0gVUlNZW51Q29udHJvbGxlci5zaGFyZWRNZW51Q29udHJvbGxlciAmJiBbc2VsZiBfaGFu
ZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3Bv
bnNlOjpHcmFudGVkRm9yR2VzdHVyZV0pCisgICAgaWYgKHNlbmRlciA9PSBVSU1lbnVDb250cm9s
bGVyLnNoYXJlZE1lbnVDb250cm9sbGVyICYmIFtzZWxmIF9oaWRlUGFzdGVNZW51V2l0aFJlc3Vs
dDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yR2VzdHVyZV0pCiAg
ICAgICAgIHJldHVybjsKIAogICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoInBhc3RlIl9z
KTsKQEAgLTQxNDMsMTEgKzQxNDMsMjQgQEAgLSAodm9pZClfYWNjZXNzaWJpbGl0eUNsZWFyU2Vs
ZWN0aW9uCiAgICAgX3BhZ2UtPnN0b3JlU2VsZWN0aW9uRm9yQWNjZXNzaWJpbGl0eShmYWxzZSk7
CiB9CiAKLS0gKEJPT0wpX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6KFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpcmVzcG9uc2UKK3N0YXRpYyBVSVBhc3RlYm9hcmROYW1l
IHBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3ND
YXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5KQogewotICAgIGlmIChyZXNwb25zZSA9PSBXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yQ29tbWFuZCB8fCByZXNwb25z
ZSA9PSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yR2VzdHVyZSkK
LSAgICAgICAgX3BhZ2UtPmdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoVUlQYXN0
ZWJvYXJkTmFtZUdlbmVyYWwpOworICAgIHN3aXRjaCAocGFzdGVBY2Nlc3NDYXRlZ29yeSkgewor
ICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbDoKKyAgICAg
ICAgcmV0dXJuIFVJUGFzdGVib2FyZE5hbWVHZW5lcmFsOworICAgIH0KK30KIAorc3RhdGljIFVJ
UGFzdGVib2FyZCAqcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KFdlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSkKK3sKKyAgICBzd2l0Y2ggKHBhc3Rl
QWNjZXNzQ2F0ZWdvcnkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnk6OkdlbmVyYWw6CisgICAgICAgIHJldHVybiBVSVBhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9h
cmQ7CisgICAgfQorfQorCistIChCT09MKV9oaWRlUGFzdGVNZW51V2l0aFJlc3VsdDooV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSlyZXNwb25zZQorewogICAgIGlmIChhdXRvIHBhc3Rl
SGFuZGxlciA9IFdURk1vdmUoX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIpKSB7CiAgICAgICAgIFtV
SU1lbnVDb250cm9sbGVyLnNoYXJlZE1lbnVDb250cm9sbGVyIGhpZGVNZW51RnJvbVZpZXc6c2Vs
Zl07CiAgICAgICAgIHBhc3RlSGFuZGxlcihyZXNwb25zZSk7CkBAIC00MTU2LDE2ICs0MTY5LDI0
IEBAIC0gKEJPT0wpX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6KFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzUmVzcG9uc2UpcmVzcG9uCiAgICAgcmV0dXJuIE5POwogfQogCistIChCT09M
KV9oYW5kbGVET01QYXN0ZVJlcXVlc3RGb3JDYXRlZ29yeTooV2ViQ29yZTo6RE9NUGFzdGVBY2Nl
c3NDYXRlZ29yeSlwYXN0ZUFjY2Vzc0NhdGVnb3J5IHJlc3VsdDooV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSlyZXNwb25zZQoreworICAgIGlmIChyZXNwb25zZSA9PSBXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yQ29tbWFuZCB8fCByZXNwb25zZSA9PSBX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yR2VzdHVyZSkKKyAgICAg
ICAgX3BhZ2UtPmdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEocGFzdGVib2FyZE5h
bWVGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSk7CisKKyAgICByZXR1cm4g
W3NlbGYgX2hpZGVQYXN0ZU1lbnVXaXRoUmVzdWx0OnJlc3BvbnNlXTsKK30KKwogLSAodm9pZClf
d2lsbFBlcmZvcm1BY3Rpb246KFNFTClhY3Rpb24gc2VuZGVyOihpZClzZW5kZXIKIHsKICAgICBp
ZiAoYWN0aW9uICE9IEBzZWxlY3RvcihwYXN0ZTopKQotICAgICAgICBbc2VsZiBfaGFuZGxlRE9N
UGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpE
ZW5pZWRGb3JHZXN0dXJlXTsKKyAgICAgICAgW3NlbGYgX2hpZGVQYXN0ZU1lbnVXaXRoUmVzdWx0
OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOwogfQog
CiAtICh2b2lkKV9kaWRQZXJmb3JtQWN0aW9uOihTRUwpYWN0aW9uIHNlbmRlcjooaWQpc2VuZGVy
CiB7CiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IocGFzdGU6KSkKLSAgICAgICAgW3NlbGYg
X2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CisgICAgICAgIFtzZWxmIF9oaWRlUGFzdGVNZW51
V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0
dXJlXTsKIH0KIAogLy8gVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sCkBAIC01ODIwLDcgKzU4
NDEsNyBAQCAtICh2b2lkKWhhbmRsZUtleVdlYkV2ZW50Oig6OldlYkV2ZW50ICopdGhlRXZlbnQg
d2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZV07CisgICAgW3NlbGYgX2hpZGVQ
YXN0ZU1lbnVXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmll
ZEZvckdlc3R1cmVdOwogCiAgICAgdXNpbmcgSGFuZGxlZEJ5SW5wdXRNZXRob2QgPSBXZWJLaXQ6
Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQ6OkhhbmRsZWRCeUlucHV0TWV0aG9kOwogICAgIGF1dG8q
IGtleWJvYXJkID0gW1VJS2V5Ym9hcmRJbXBsIHNoYXJlZEluc3RhbmNlXTsKQEAgLTY2MDksMTUg
KzY2MzAsMTUgQEAgc3RhdGljIEJPT0wgYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0Y2hPcmln
aW4oVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBjb25zdAogICAgIHJldHVybiBmb3VuZEF0TGVh
c3RPbmVNYXRjaGluZ0lkZW50aWZpZXI7CiB9CiAKLS0gKHZvaWQpX3JlcXVlc3RET01QYXN0ZUFj
Y2Vzc1dpdGhFbGVtZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qg
b3JpZ2luSWRlbnRpZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVyIGNvbXBsZXRp
b25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2UpPiYmKWNvbXBsZXRpb25IYW5kbGVyCistICh2b2lkKV9yZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3NGb3JDYXRlZ29yeTooV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSlwYXN0ZUFj
Y2Vzc0NhdGVnb3J5IGVsZW1lbnRSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JillbGVtZW50
UmVjdCBvcmlnaW5JZGVudGlmaWVyOihjb25zdCBTdHJpbmcmKW9yaWdpbklkZW50aWZpZXIgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSk+JiYpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBpZiAoYXV0byBleGlz
dGluZ0NvbXBsZXRpb25IYW5kbGVyID0gc3RkOjpleGNoYW5nZShfZG9tUGFzdGVSZXF1ZXN0SGFu
ZGxlciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKSB7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICBleGlzdGluZ0NvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUpOwogICAgIH0KIAotICAgIGlm
IChhbGxQYXN0ZWJvYXJkSXRlbU9yaWdpbnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQuZ2VuZXJh
bFBhc3RlYm9hcmQsIG9yaWdpbklkZW50aWZpZXIpKSB7Ci0gICAgICAgIFtzZWxmIF9oYW5kbGVE
T01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6
OkdyYW50ZWRGb3JDb21tYW5kXTsKKyAgICBpZiAoYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0
Y2hPcmlnaW4ocGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkp
LCBvcmlnaW5JZGVudGlmaWVyKSkgeworICAgICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1
ZXN0Rm9yQ2F0ZWdvcnk6cGFzdGVBY2Nlc3NDYXRlZ29yeSByZXN1bHQ6V2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckNvbW1hbmRdOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQppbmRleCBmODBjODI0OWRhNDY3Yjk0MjAzNWU0NjA2ZTg5OWJjYjY0ZWRiYzZjLi4wZGRmYzNl
NjkxZjI5ZDc5YTJmOWIzYWE2YjFjMDU5YWYzN2MwMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE1NDQsOSArMTU0NCwxMyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6aXNVc2VyRmFjaW5nQ2hhbmdlZChib29sIGlzVXNlckZhY2luZykK
IH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQo
KQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKERPTVBhc3RlQWNj
ZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSkKIHsKLSAgICBncmFudEFjY2Vzc1RvQ3Vy
cmVudFBhc3RlYm9hcmREYXRhKFVJUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKKyAgICBzd2l0Y2gg
KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKKyAgICBjYXNlIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6
OkdlbmVyYWw6CisgICAgICAgIGdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEoVUlQ
YXN0ZWJvYXJkTmFtZUdlbmVyYWwpOworICAgICAgICByZXR1cm47CisgICAgfQogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0RGV2aWNlSGFzQUdYQ29tcGlsZXJTZXJ2aWNlRm9yVGVzdGluZygp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCmluZGV4IGQyMjM4ZmRjOWQxNmY3N2Y4YzNkMzAyY2E5OTc2ZmU4M2YxYjNmMzcuLjk2YmY0
MjhiMTliNWJhOWQ3NDZhM2VhMTExNTFiZDNjYWZiMTZkZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0yMjUsNyArMjI1LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlvbkdl
c3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFsOworICAg
IHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdv
cnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKSBmaW5hbDsKIAog
ICAgIHZvaWQgbWFrZVZpZXdCbGFuayhib29sKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IGE0MTEyMTM1ZjJlZjE5
MDE1YTUyZjFlMWIwM2FlMzBhMWYyMjNkMmEuLjYyOTBhODA5MGUzNTliNjMwMjA4ZGI3MTI2OTI0
MDc0ZDFjNWQ3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMubW0KQEAgLTEwMDAsOSArMTAwMCw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6
OnRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgbV9pbXBs
LT50YWtlRm9jdXMoZGlyZWN0aW9uKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVz
dERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbikKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRS
ZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbikKIHsKLSAg
ICBtX2ltcGwtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhlbGVtZW50UmVjdCwgb3JpZ2luSWRlbnRp
ZmllciwgV1RGTW92ZShjb21wbGV0aW9uKSk7CisgICAgbV9pbXBsLT5yZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MocGFzdGVBY2Nlc3NDYXRlZ29yeSwgZWxlbWVudFJlY3QsIG9yaWdpbklkZW50aWZpZXIs
IFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IGUwM2UwODBhZWUwODM4MGI0NmZmZTg5ZGQ4
ZTYxYjY2YjU5OGRiNDYuLjU1MWEyYWYyM2ZlZTBiZmQyNDg3ODYyMGE5Y2Q3OWYwNzM2MWM0ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpA
QCAtNjUxLDkgKzY1MSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1EaWRTZWxlY3RJ
dGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNvbnRleHRNZQogCiAjZW5kaWYKIAot
dm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKCkKK3ZvaWQgV2ViUGFn
ZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZChET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBh
c3RlQWNjZXNzQ2F0ZWdvcnkpCiB7Ci0gICAgZ3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJk
RGF0YShOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbCk7CisgICAgc3dpdGNoIChwYXN0ZUFjY2Vzc0Nh
dGVnb3J5KSB7CisgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgorICAg
ICAgICBncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmREYXRhKE5TUGFzdGVib2FyZE5hbWVH
ZW5lcmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0KIAogUGxhdGZvcm1WaWV3KiBXZWJQ
YWdlUHJveHk6OnBsYXRmb3JtVmlldygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggYTkyN2E0OThk
OGE3OTNkOTJhYjQzYzY2ZGE4MDQ4MjkwOWI1NTI1Ni4uZGUwZDg2ZGNhM2VjNjU2MmRkY2EyMmEy
MTMwNDZlMWY0ODBkN2E1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxh
eXN0YXRpb24vUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIFdlYkNv
cmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gUGFnZUNsaWVudEltcGw6OnVzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3RpCiAgICAgcmV0dXJuIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb246OkxUUjsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBh
c3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNz
KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFn
ZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VD
bGllbnRJbXBsLmgKaW5kZXggNjRjYjcwZjExZDc3ZmJjYWU5MzQxNGNmZjIyZjE4OGQwNThmMmI2
Yy4uNmIyNzRiZDkzMzIzODJmNWQyMjliMzZkMmUwMDhjYTc2NDFlYjNiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5oCkBA
IC0xNDksNyArMTQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbigpIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNj
ZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UpPiYmKSBvdmVycmlkZTsKIAogICAgIFBsYXlTdGF0aW9uV2ViVmll
dyYgbV92aWV3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9Q
YWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVu
dEltcGwuY3BwCmluZGV4IGM3OTcwNmExMjRiNDRjMmZmMTNiNGQ2YTdmYmVjNjNhYWVhZGFiMzku
LjQzOTY3NGIzMjNhZWRiZDRiOWZjNGIyMTFjMDA4Mjg4MzYzMjExNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMzczLDcgKzM3Myw3
IEBAIEhXTkQgUGFnZUNsaWVudEltcGw6OnZpZXdXaWRnZXQoKQogICAgIHJldHVybiBtX3ZpZXcu
d2luZG93KCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vz
cyhjb25zdCBJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggM2VhNDkzZGYxZTY2ODc2ZjUwOWRmNmMz
YzA5MTcyNDBiNzY0Y2JhNS4uODRmZTE2YWFkN2MyZmM5NzAxOGNjZDA0ZTE2MTZkYmQ2MjNjNDc5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgeworZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWludDhfdDsK
IGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiB9CiAKQEAgLTE0
OCw3ICsxNDksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1
cm4gV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOyB9CiAKLSAgICB2
b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3Qg
U3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0
IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSk+JiYpIGZpbmFsOwogCiAgICAgLy8gTWVtYmVycyBvZiBQYWdlQ2xpZW50SW1wbCBj
bGFzcwogICAgIERlZmF1bHRVbmRvQ29udHJvbGxlciBtX3VuZG9Db250cm9sbGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAppbmRleCA4MWUzNzllMzNkMWE5YWNkYzg2ZWY1YzRiZTIxYTcyNjBkOTRk
NDhlLi5kZjI3OGE3ODg0YmFjODlkNWQxNWY3ZGM2NDlkNjZkODA1MDRjMWY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcApAQCAtMzMyLDkgKzMzMiw5IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpy
ZWRvKCkKICAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1
dGVVbmRvUmVkbyhVbmRvT3JSZWRvOjpSZWRvKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhl
Y3V0ZVVuZG9SZWRvOjpSZXBseSgpKTsKIH0KIAotV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcm
IG9yaWdpbklkZW50aWZpZXIpCitXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdlYkVk
aXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyKQogewotICAgIHJldHVybiBtX3BhZ2UtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhvcmlnaW5J
ZGVudGlmaWVyKTsKKyAgICByZXR1cm4gbV9wYWdlLT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MocGFz
dGVBY2Nlc3NDYXRlZ29yeSwgb3JpZ2luSWRlbnRpZmllcik7CiB9CiAKICNpZiAhUExBVEZPUk0o
Q09DT0EpICYmICFVU0UoR0xJQikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA1MDZkOWY1NDEzOGQz
N2NiNGM2NGVkNDYwZjU5YTVjMjhmZTUyMmE2Li40YzQ4ODk3NjAxMjJhZjc2ZjAzYjgwYzRmODY2
MmExMjNmNGQ5MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90OwogZW51bSBjbGFz
cyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsKIH0KIApAQCAtOTMsNyArOTQsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYp
IGZpbmFsOwogICAgIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBmaW5hbDsKIAotICAg
IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikgZmluYWw7CisgICAgV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSBmaW5hbDsKIAog
ICAgIGJvb2wgY2FuQ29weUN1dChXZWJDb3JlOjpGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBj
b25zdCBmaW5hbDsKICAgICBib29sIGNhblBhc3RlKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBkZWZh
dWx0VmFsdWUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBiM2IwZmJjYzc2ZTYwZjY3OGJmMWM2ZGU1MjEzMDU5OGNiMmQw
MDg4Li4zZGZkNTgzNWY1MDJkMDZmZGZhZTc1ZDA1YjBlODM1MGZlODUxODljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzE5Nyw3ICs3MTk3
LDcgQEAgdm9pZCBXZWJQYWdlOjpzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250
YWN0c1JlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEpLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiB9CiAKLVdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgV2Vi
UGFnZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmll
cikKK1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgV2ViUGFnZTo6cmVxdWVzdERPTVBh
c3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRl
Z29yeSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQogewogICAgIGF1dG8gcmVzcG9u
c2UgPSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOwog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC03MjA3LDcgKzcyMDcsNyBAQCBXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdlYlBhZ2U6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25z
dCBTdHJpbmcmIG9yaQogICAgIC8vIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgPHJkYXI6Ly9wcm9i
bGVtLzE2MjA3MDAyPiBpcyByZXNvbHZlZC4KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChhdXRvY29ycmVjdGlvbkNvbnRleHQoKSkp
OwogI2VuZGlmCi0gICAgc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJlcXVlc3RET01QYXN0ZUFjY2VzcyhyZWN0Rm9yRWxlbWVudEF0SW50ZXJhY3Rpb25M
b2NhdGlvbigpLCBvcmlnaW5JZGVudGlmaWVyKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVx
dWVzdERPTVBhc3RlQWNjZXNzOjpSZXBseShyZXNwb25zZSkpOworICAgIHNlbmRTeW5jV2l0aERl
bGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0RE9NUGFzdGVBY2Nlc3Mo
cGFzdGVBY2Nlc3NDYXRlZ29yeSwgcmVjdEZvckVsZW1lbnRBdEludGVyYWN0aW9uTG9jYXRpb24o
KSwgb3JpZ2luSWRlbnRpZmllciksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RET01Q
YXN0ZUFjY2Vzczo6UmVwbHkocmVzcG9uc2UpKTsKICAgICByZXR1cm4gcmVzcG9uc2U7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzNWMyM2Zl
NjAyZWI0ZjkwNDFhYmIwYTk4N2U3ZDJmMGNhMGY4YjNlLi41MzNkMDhjNmIyNDllMWYyOGU0M2Yz
M2Q2ODc1OTFhZTE2OGE1YjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0yMjQsNiArMjI0LDcgQEAgY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogZW51
bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CiBlbnVtIGNsYXNzIENPRVBEaXNwb3NpdGlv
biA6IGJvb2w7CiBlbnVtIGNsYXNzIENyZWF0ZU5ld0dyb3VwRm9ySGlnaGxpZ2h0IDogYm9vbDsK
K2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFzcyBEcmFnQXBwbGlj
YXRpb25GbGFncyA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERyYWdIYW5kbGluZ01ldGhvZCA6IHVp
bnQ4X3Q7CkBAIC0xMzM5LDcgKzEzNDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzZW5k
U3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwgU2Vjb25kczo6aW5maW5pdHko
KSwgc2VuZFN5bmNPcHRpb25zKTsKICAgICB9CiAKLSAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIpOworICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBh
c3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllcik7CiAgICAgV2ViQ29yZTo6SW50UmVjdCByZWN0Rm9yRWxlbWVudEF0
SW50ZXJhY3Rpb25Mb2NhdGlvbigpIGNvbnN0OwogCiAgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpDb2xvcj4mIGJhY2tncm91bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dy
b3VuZENvbG9yOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDQ1ZjdjMWY1Y2E3NDgyZDYwZDliYzc0
ZWY2MTZjMzJmZDYyNjc2NDcuLjQyMDEwN2RhNjViNzZiNmQxMmM0YzQ1ODEzOWYzMDgyNThkOTNm
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXRDbGllbnRQYXN0ZWJvYXJkRGF0YShjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNp
bXBsZVJhbmdlPiYsIFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4mIHBhc3RlYm9hcmREYXRhKSBmaW5hbDsKIAogICAg
IHZvaWQgc2V0SW5zZXJ0aW9uUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25z
dCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
OjpEZW5pZWRGb3JHZXN0dXJlOyB9CisgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwg
Y29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZTo6RGVuaWVkRm9yR2VzdHVyZTsgfQogCiAjaWYgVVNFKEFQUEtJVCkKICAgICB2b2lkIHVw
cGVyY2FzZVdvcmQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggYzE2N2NhMjkyMjNlZWE5
OWU1MjhhOGVhNjEyOGMxZTFlNjllZTNmMS4uMDg3YjY5ZTdhOGIwYjY4OGFjYmZlNDRlNGRhYjFi
N2JkYTU0MWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExNyw3ICsxMTcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6VGV4dENoZWNraW5n
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24mKSBmaW5hbCB7IH0KICAg
ICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgY29u
c3QgV2ViQ29yZTo6U2ltcGxlUmFuZ2UmLCBib29sKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQog
Ci0gICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZTsgfQorICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnksIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmU7IH0KIAogICAgIFdlYkNvcmU6OlRleHRDaGVj
a2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446487</attachid>
            <date>2021-12-08 19:33:41 -0800</date>
            <delta_ts>2021-12-09 19:10:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233939-20211208203340.patch</filename>
            <type>text/plain</type>
            <size>55589</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YzdkY2MzN2MyMGE3ODlmZWMwMWRkMWI4Y2M0N2YzN2VhOWI2MDU5Li42
MmMyYTIzNzgzY2YxYmUxMWNiYjJlYzYyMWQ3ZGFhY2QzZGUyYTQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjEtMTItMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBjb250cm9sIHdo
aWNoIHBhc3RlYm9hcmQgdGhlIFdlYlByb2Nlc3MgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gd2hlbiBw
YXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM5MzkKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgSW1w
bGVtZW50aW5nIGAtcGFzdGVGb250OmAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5MTM3OT4gcmVx
dWlyZXMgdGhhdCB3ZSByZWFkIGZyb20gdGhlIGZvbnQKKyAgICAgICAgcGFzdGVib2FyZCBpbnN0
ZWFkIG9mIHRoZSBnZW5lcmFsIHBhc3RlYm9hcmQuIEluIG9yZGVyIHRvIGFsbG93IHdlYiBjb250
ZW50IHRvIHRyaWdnZXIgdGhpcworICAgICAgICAoZS5nLiBgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
IlBhc3RlRm9udCIpKWApIHdlIG11c3QgaGF2ZSBhIHdheSBmb3IgdGhlIFdlYlByb2Nlc3MgdG8g
c2lnbmFsCisgICAgICAgIHRoYXQgaXQgd2lzaGVzIHRvIHJlYWQgZnJvbSB0aGUgZm9udCBwYXN0
ZWJvYXJkIGluc3RlYWQgb2YgdGhlIGdlbmVyYWwgcGFzdGVib2FyZC4gQXMgc3VjaCwKKyAgICAg
ICAgY3JlYXRlIGFuZCBwYXNzIGFsb25nIGEgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnlgIHRvIGBy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3NgLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4K
KworICAgICAgICAqIGRvbS9ET01QYXN0ZUFjY2Vzcy5oOgorICAgICAgICBDcmVhdGUgYERPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnlgLgorCisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50
OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSBgRE9NUGFz
dGVBY2Nlc3NDYXRlZ29yeWAuCisKIDIwMjEtMTItMDcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiBhZnRlciByZW1vdmluZyBzdHlsZXNoZWV0
IHdpdGggbG9hZGluZyBAaW1wb3J0IHJ1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzU1MDc5ZjAyYTYyOWFlMGFk
NGI3ZGNjYzc3YzI3MjU3NmNiNGU1OC4uOGU5N2ZhNTE3ODVmMzJhMjBlMTU4YTY1NDUzMGUzZDM1
MmEzYzMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MCBAQAorMjAyMS0xMi0wOCAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgYERPTVBhc3RlQWNjZXNz
Q2F0ZWdvcnlgIHRvIGNvbnRyb2wgd2hpY2ggcGFzdGVib2FyZCB0aGUgV2ViUHJvY2VzcyBpcyBn
cmFudGVkIGFjY2VzcyB0byB3aGVuIHBhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNv
biBIc2llaC4KKworICAgICAgICBJbXBsZW1lbnRpbmcgYC1wYXN0ZUZvbnQ6YCA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTkxMzc5PiByZXF1aXJlcyB0aGF0IHdlIHJlYWQgZnJvbSB0aGUgZm9udAor
ICAgICAgICBwYXN0ZWJvYXJkIGluc3RlYWQgb2YgdGhlIGdlbmVyYWwgcGFzdGVib2FyZC4gSW4g
b3JkZXIgdG8gYWxsb3cgd2ViIGNvbnRlbnQgdG8gdHJpZ2dlciB0aGlzCisgICAgICAgIChlLmcu
IGBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGVGb250IikpYCkgd2UgbXVzdCBoYXZlIGEgd2F5
IGZvciB0aGUgV2ViUHJvY2VzcyB0byBzaWduYWwKKyAgICAgICAgdGhhdCBpdCB3aXNoZXMgdG8g
cmVhZCBmcm9tIHRoZSBmb250IHBhc3RlYm9hcmQgaW5zdGVhZCBvZiB0aGUgZ2VuZXJhbCBwYXN0
ZWJvYXJkLiBBcyBzdWNoLAorICAgICAgICBjcmVhdGUgYW5kIHBhc3MgYWxvbmcgYSBgRE9NUGFz
dGVBY2Nlc3NDYXRlZ29yeWAgdG8gYHJlcXVlc3RET01QYXN0ZUFjY2Vzc2AuCisKKyAgICAgICAg
Tm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgSW5kaWNhdGUgd2hp
Y2ggaGVhZGVyIGlzIGFzc29jaWF0ZWQgd2l0aCBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgICgtW1dLRE9NUGFzdGVNZW51RGVs
ZWdhdGUgaW5pdFdpdGhXZWJWaWV3SW1wbDpwYXN0ZUFjY2Vzc0NhdGVnb3J5Ol0pOiBBZGRlZC4K
KyAgICAgICAgKC1bV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSBtZW51RGlkQ2xvc2U6XSk6CisgICAg
ICAgICgtW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUgX3dlYl9ncmFudERPTVBhc3RlQWNjZXNzXSk6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlUHJvY2Vzc1N3YXBP
ckV4aXQpOgorICAgICAgICAoV2ViS2l0OjpwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OnBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeSk6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNj
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZURPTVBhc3RlUmVxdWVz
dEZvckNhdGVnb3J5V2l0aFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpo
aWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdCk6IEFkZGVkLgorICAgICAgICAoLVtXS0RPTVBhc3Rl
TWVudURlbGVnYXRlIGluaXRXaXRoV2ViVmlld0ltcGw6XSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgt
W1dLVmlldyBfd2ViX2dyYW50RE9NUGFzdGVBY2Nlc3NdKTogRGVsZXRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW06CisgICAgICAgICgtW1dLV2ViVmlldyBf
d2ViX2dyYW50RE9NUGFzdGVBY2Nlc3NdKTogRGVsZXRlZC4KKyAgICAgICAgUGFzcyB0aGUgYERP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnlgIHRvIHRoZSBgV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZWAgYW5k
IHVzZSBpdCBhcyB0aGUgYHRhcmdldGAKKyAgICAgICAgb2YgdGhlIGBOU01lbnVJdGVtYCBzbyB0
aGF0IHdlIGNhbiBwYXNzIGFsb25nIHRoZSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAgaW4gdGhl
IGBhY3Rpb25gLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbToKKyAgICAgICAgKHBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkpOiBBZGRlZC4K
KyAgICAgICAgKHBhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeSk6IEFkZGVkLgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NGb3JDYXRlZ29yeTpl
bGVtZW50UmVjdDpvcmlnaW5JZGVudGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBBZGRlZC4K
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzV2l0aEVsZW1l
bnRSZWN0Om9yaWdpbklkZW50aWZpZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RE
T01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RE
T01QYXN0ZUFjY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGll
bnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFj
Y2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGFzdGVBY2Nlc3NDYXRlZ29yeUZvckNvbW1hbmQp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpleGVjdXRlRWRpdENvbW1h
bmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RET01QYXN0ZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1QYXN0ZUNvbW1h
bmQpOgorICAgICAgICAoV2ViS2l0Ojppc1Bhc3RlQ29tbWFuZE5hbWUpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFzdGVDb21tYW5kKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCkKKyAgICAgICAgQ3JlYXRlIGEgbWFwcGluZyBi
ZXR3ZWVuIHBhc3RlIGNvbW1hbmQgbmFtZSBhbmQgYERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnlgLgor
CiAyMDIxLTEyLTA3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ29jb2EgV2ViR0wgc2hvdWxkIHN1cHBvcnQgVUkgc2lkZSBjb21wb3NpdGluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGUxNzBlMDkzY2JhOWM1MGRmZmMyMTE1OGJmMjBi
MjhhYWRjMWEwYWUuLmExN2EwZWZiNzYyZmViNDY1NjM3YzVkMWU0Y2FjODcxYTZiNzAyODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMi0wOCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgYERPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnlgIHRvIGNvbnRyb2wgd2hpY2ggcGFzdGVib2FyZCB0aGUgV2ViUHJv
Y2VzcyBpcyBncmFudGVkIGFjY2VzcyB0byB3aGVuIHBhc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzkzOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBJbXBsZW1lbnRpbmcgYC1wYXN0ZUZvbnQ6YCA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTkxMzc5PiByZXF1aXJlcyB0aGF0IHdlIHJlYWQgZnJvbSB0
aGUgZm9udAorICAgICAgICBwYXN0ZWJvYXJkIGluc3RlYWQgb2YgdGhlIGdlbmVyYWwgcGFzdGVi
b2FyZC4gSW4gb3JkZXIgdG8gYWxsb3cgd2ViIGNvbnRlbnQgdG8gdHJpZ2dlciB0aGlzCisgICAg
ICAgIChlLmcuIGBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGVGb250IikpYCkgd2UgbXVzdCBo
YXZlIGEgd2F5IGZvciB0aGUgV2ViUHJvY2VzcyB0byBzaWduYWwKKyAgICAgICAgdGhhdCBpdCB3
aXNoZXMgdG8gcmVhZCBmcm9tIHRoZSBmb250IHBhc3RlYm9hcmQgaW5zdGVhZCBvZiB0aGUgZ2Vu
ZXJhbCBwYXN0ZWJvYXJkLiBBcyBzdWNoLAorICAgICAgICBjcmVhdGUgYW5kIHBhc3MgYWxvbmcg
YSBgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAgdG8gYHJlcXVlc3RET01QYXN0ZUFjY2Vzc2AuCisK
KyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RE
T01QYXN0ZUFjY2Vzcyk6CisKIDIwMjEtMTItMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgogCiAgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2Fs
bFRpbWVgIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMDJlOTQ2YmMxZmIwYjM1NmJiMTVhYjgz
NjBlODYxNDU1NDcyNDdjYy4uYzZhOThlMDE2ZDJkNmFiMjI4ODk2ZGI2YTNlZWY3YTNjYzhiYTA0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEy
LTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBg
RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeWAgdG8gY29udHJvbCB3aGljaCBwYXN0ZWJvYXJkIHRoZSBX
ZWJQcm9jZXNzIGlzIGdyYW50ZWQgYWNjZXNzIHRvIHdoZW4gcGFzdGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTM5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEltcGxlbWVudGluZyBgLXBhc3RlRm9u
dDpgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xOTEzNzk+IHJlcXVpcmVzIHRoYXQgd2UgcmVhZCBm
cm9tIHRoZSBmb250CisgICAgICAgIHBhc3RlYm9hcmQgaW5zdGVhZCBvZiB0aGUgZ2VuZXJhbCBw
YXN0ZWJvYXJkLiBJbiBvcmRlciB0byBhbGxvdyB3ZWIgY29udGVudCB0byB0cmlnZ2VyIHRoaXMK
KyAgICAgICAgKGUuZy4gYGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZUZvbnQiKSlgKSB3ZSBt
dXN0IGhhdmUgYSB3YXkgZm9yIHRoZSBXZWJQcm9jZXNzIHRvIHNpZ25hbAorICAgICAgICB0aGF0
IGl0IHdpc2hlcyB0byByZWFkIGZyb20gdGhlIGZvbnQgcGFzdGVib2FyZCBpbnN0ZWFkIG9mIHRo
ZSBnZW5lcmFsIHBhc3RlYm9hcmQuIEFzIHN1Y2gsCisgICAgICAgIGNyZWF0ZSBhbmQgcGFzcyBh
bG9uZyBhIGBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5YCB0byBgcmVxdWVzdERPTVBhc3RlQWNjZXNz
YC4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVx
dWVzdERPTVBhc3RlQWNjZXNzKToKKwogMjAyMS0xMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJIHdvcmsgYWNyb3Nz
IG11bHRpcGxlIFdlYlByb2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVBhc3RlQWNjZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUGFzdGVBY2Nlc3MuaAppbmRl
eCA4YmZjMTY3YjI0ZTM1ZjA3YjQwYmNiZjc3M2I4MzMyYjc3NGM5YTBkLi5kYjVhNjQ0Y2E2MjQ3
ZmQ5YmExZTAxYjJlOGI3M2E3MjAzMTIwMjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUGFzdGVBY2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUGFzdGVBY2Nl
c3MuaApAQCAtMjksNiArMjksMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNs
YXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgOiB1aW50OF90IHsKKyAgICBHZW5lcmFsLAorfTsK
KwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1BvbGljeSA6IHVpbnQ4X3QgewogICAgIE5vdFJl
cXVlc3RlZFlldCwKICAgICBEZW5pZWQsCkBAIC00NSw2ICs0OSwxMyBAQCBlbnVtIGNsYXNzIERP
TVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90IHsKIAogbmFtZXNwYWNlIFdURiB7CiAKK3Rl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29y
eT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnksCisgICAgICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnk6OkdlbmVyYWwKKyAgICA+OworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlPiB7CiAgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggYzA4Nzg1YWY4ZmM5MjRlMzUz
ZmZkNDgzZGY3Yjk1ZGEyNDQzYWU4NC4uZDdmODU2YjkwMzU3YjRjNTgwOTFjZGJiYjQwODU1YWI1
NjYzZWNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTI4NSw3
ICsyODUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChVbmRvU3RlcCYp
IGZpbmFsOwogICAgIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBmaW5hbCB7IH0KIAot
ICAgIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0
cmluZyYpIGZpbmFsIHsgcmV0dXJuIERPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdl
c3R1cmU7IH0KKyAgICBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vz
cyhET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CiAKICAgICBib29sIGNh
bkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWwgeyByZXR1cm4g
ZGVmYXVsdFZhbHVlOyB9CiAgICAgYm9vbCBjYW5QYXN0ZShGcmFtZSosIGJvb2wgZGVmYXVsdFZh
bHVlKSBjb25zdCBmaW5hbCB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Vk
aXRvckNsaWVudC5oCmluZGV4IDgyMzc0ZTcyNjJjNzBlYTlkZmU0ZDY0ZjI1YWIxMzVhYTYwMzMz
Y2YuLjE4MTc1MzFjYjY5OGI4YTRlZGEyODEwY2M0NjZjODE2OWNiMTYzZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogCiBjbGFzcyBEb2N1bWVu
dEZyYWdtZW50OwpAQCAtMTAxLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhTb2Z0U3BhY2Vz
KFRleHRDaGVja2luZ1Jlc3VsdCkgeyB9CiAKLSAgICB2aXJ0dWFsIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmll
cikgPSAwOworICAgIHZpcnR1YWwgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MoRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyKSA9IDA7CiAKICAgICAvLyBOb3RpZnkgYW4gaW5wdXQgbWV0aG9kIHRoYXQgYSBjb21w
b3NpdGlvbiB3YXMgdm9sdW50YXJpbHkgZGlzY2FyZGVkIGJ5IFdlYkNvcmUsIHNvIHRoYXQgaXQg
Y291bGQgY2xlYW4gdXAgdG9vLgogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCB3
aGVuIGEgY29tcG9zaXRpb24gaXMgY2xvc2VkIHBlciBhIHJlcXVlc3QgZnJvbSBhbiBpbnB1dCBt
ZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDc3ODhlZTU3NTVmZWJmMDAzZjkyOWI2ZGY1
ZGUwOTRmZDdhOTMzOGYuLmE1N2I4NzA2MGY3Yjk3MjFjY2Q4MjIwNWM1NWE5NDBmNmRiYjE3MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC01NjEsNyArNTYxLDcgQEAgYm9vbCBGcmFtZTo6c2Vs
ZWN0aW9uQ2hhbmdlQ2FsbGJhY2tzRGlzYWJsZWQoKSBjb25zdAogfQogI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAKLWJvb2wgRnJhbWU6OnJlcXVlc3RET01QYXN0ZUFjY2VzcygpCiti
b29sIEZyYW1lOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBw
YXN0ZUFjY2Vzc0NhdGVnb3J5KQogewogICAgIGlmIChtX3NldHRpbmdzLT5qYXZhU2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkKCkgJiYgbV9zZXR0aW5ncy0+ZG9tUGFzdGVBbGxvd2VkKCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtNTg5LDcgKzU4OSw3IEBAIGJvb2wgRnJhbWU6OnJlcXVlc3RE
T01QYXN0ZUFjY2VzcygpCiAgICAgICAgIGlmICghY2xpZW50KQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgICAgIGF1dG8gcmVzcG9uc2UgPSBjbGllbnQtPnJlcXVlc3RET01QYXN0
ZUFjY2VzcyhtX2RvYy0+b3JpZ2luSWRlbnRpZmllckZvclBhc3RlYm9hcmQoKSk7CisgICAgICAg
IGF1dG8gcmVzcG9uc2UgPSBjbGllbnQtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhwYXN0ZUFjY2Vz
c0NhdGVnb3J5LCBtX2RvYy0+b3JpZ2luSWRlbnRpZmllckZvclBhc3RlYm9hcmQoKSk7CiAgICAg
ICAgIGdlc3R1cmVUb2tlbi0+ZGlkUmVxdWVzdERPTVBhc3RlQWNjZXNzKHJlc3BvbnNlKTsKICAg
ICAgICAgc3dpdGNoIChyZXNwb25zZSkgewogICAgICAgICBjYXNlIERPTVBhc3RlQWNjZXNzUmVz
cG9uc2U6OkdyYW50ZWRGb3JDb21tYW5kOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDEyNGRmMTg4NWY3
MWRjZDdkNjVlMDFkNjlmZDc5YjEwNGEwN2U2NzIuLjUzNjQ0ZWIxOTVlMTdjZDJmZDdmYzQxYjE0
MmFkMWI3NmU0YjZjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTE3Niw3ICsxNzYsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2hh
c0hhZFVzZXJJbnRlcmFjdGlvbjsgfQogICAgIHZvaWQgc2V0SGFzSGFkVXNlckludGVyYWN0aW9u
KCkgeyBtX2hhc0hhZFVzZXJJbnRlcmFjdGlvbiA9IHRydWU7IH0KIAotICAgIGJvb2wgcmVxdWVz
dERPTVBhc3RlQWNjZXNzKCk7CisgICAgYm9vbCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoRE9NUGFz
dGVBY2Nlc3NDYXRlZ29yeSA9IERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWwpOwogCiAg
ICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMDkzMGNmOTE3YmE3OTBlNTc1ZDg0Yjk2OWVhYzA1
ODFmNTJmNTE2ZS4uOTQyYzc2MWQzNjc1ZDljZGFkY2Y5ZGExZDQ1ZWI5M2I5ODIxMGIyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03NTgsNiArNzU4LDcg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpDT09QRGlz
cG9zaXRpb24nOiBbJzxXZWJDb3JlL0Nyb3NzT3JpZ2luT3BlbmVyUG9saWN5Lmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvcic6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBl
cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Q3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQnOiBb
JzxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UnOiBbJzxXZWJDb3JlL0RPTVBhc3RlQWNj
ZXNzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UnOiBbJzxX
ZWJDb3JlL0NvbG9yU3BhY2UuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtQnVmZmVySWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4nXSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5k
ZXggOTIwNDQ0MGIwMjhmZDE3NWFmNmYwZmViMWM3ODBlYTdjYjkzOGRkOC4uMWE5MWM3ZDc4N2Y3
ZDNiODhhMmYwZmNiZDQ4ZWI3MmZlNmJmNTMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTU0OCw3ICs1NDgsNyBAQCBi
b29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0KAogfQogI2VuZGlmCiAKLXZvaWQgUGFnZUNsaWVudEltcGw6
OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFj
Y2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBJbnRSZWN0JiwgY29u
c3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApp
bmRleCA0MmE0NDE3NjQwZGQ2Nzc4MDAwNjA5ZmMxM2M3N2RlMzU2YmNlOGExLi45OWQwOTdhYmRl
ZmIxZTgzMmQzZjZmY2Q3YmVmOTIzNGJlMWNhMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xNjAsNyArMTYwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpIGZpbmFsIHsgfQogICAg
IHZvaWQgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcmVx
dWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2Up
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
KT4mJikgZmluYWw7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAgICAg
Ym9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25S
ZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYTU4
ODYxZmMzMTE5ZWNjOTRmM2FkYTAzMzk5MjBjYWMyNmE4MmVkNi4uMDk3MzQ0MzAzOTA2MWI4Zjk4
YjBjMDcxNzhlNGFmNmE1MDQ0MDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KQEAgLTkxMiwxMSArOTEyLDYgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1F
TlRBVElPTlNfRU5ECiAgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+bmFtZXNPZlByb21pc2VkRmls
ZXNEcm9wcGVkQXREZXN0aW5hdGlvbihkcm9wRGVzdGluYXRpb24pOwogfQogCi0tICh2b2lkKV93
ZWJfZ3JhbnRET01QYXN0ZUFjY2VzcwotewotICAgIF9kYXRhLT5faW1wbC0+aGFuZGxlRE9NUGFz
dGVSZXF1ZXN0V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFu
dGVkRm9yR2VzdHVyZSk7Ci19Ci0KIC0gKHZvaWQpbWF5YmVJbnN0YWxsSWNvbkxvYWRpbmdDbGll
bnQKIHsKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQppbmRleCA1YjA2YmM1
N2RhNDFkYzJmMTI0NDgyZWM5MzhjZTA2MDVhNWUzZjkzLi4yZDMwNjljY2UyNTI0NDc1OTlkMWQ2
YmFlMzdkMDZhOWUyZWM2NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvbWFjL1dLV2ViVmlld01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
bWFjL1dLV2ViVmlld01hYy5tbQpAQCAtMTIzMiwxMSArMTIzMiw2IEBAIC0gKHZvaWQpX3dlYl9n
ZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQKICAgICBb
c2VsZiBfZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpldmVudF07CiB9CiAKLS0g
KHZvaWQpX3dlYl9ncmFudERPTVBhc3RlQWNjZXNzCi17Ci0gICAgX2ltcGwtPmhhbmRsZURPTVBh
c3RlUmVxdWVzdFdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3Jh
bnRlZEZvckdlc3R1cmUpOwotfQotCiAtICh2b2lkKV90YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rp
b25JbnRlcm5hbDooaWQpc2VuZGVyCiB7CiAgICAgW3NlbGYgdGFrZUZpbmRTdHJpbmdGcm9tU2Vs
ZWN0aW9uOnNlbmRlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
UGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDZjM2UxYzk1NTA0MjA1NWIzMDE2ZTA0ZTRiYzljNDAw
YzVhNWM5MDUuLjgwNjk5M2NhNzNhOWNjZTM3NzUzZDgwNWE5YWI5ZjRjYjZiZDFhN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3Bw
CkBAIC00MTUsNyArNDE1LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6YmVnYW5FeGl0RnVsbFNj
cmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiAvKiBpbml0aWFsRnJhbWUKIAogI2VuZGlmIC8v
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERP
TVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNj
ZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1
cmUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdl
Q2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5oCmluZGV4IGNhMzAwMDBlMWEwNmI4NTg4NjcxNmM4ZDk5MWVmNDg1OTYzZmQ2MzUuLjdj
MDhhMTNlMTBjNzU2Nzc0NTJiNzRmNTJiZTJiNDQ3YTVlZGFhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTM2LDYgKzM2LDcg
QEAgY2xhc3MgVmlldzsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSA6IHVpbnQ4X3Q7CiB9CiAKQEAgLTE1OCw3ICsxNTksNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICAgICBJUEM6OkF0dGFjaG1lbnQgaG9zdEZpbGVEZXNjcmlwdG9yKCkgZmluYWw7Ci0g
ICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNv
bnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nl
c3NSZXNwb25zZSk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBj
b25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UpPiYmKSBmaW5hbDsKIAogICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbigpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCAzZjZkZDFm
MjQyZTdhMTE1ZWNmNzk4MzkwZjM0YjYzNWM2ZThkNmY5Li45MzQwOTQwMDIxNGI2YjY3YjIwODlm
N2QwZTM3ZWQwY2IxZWNiYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLmgKQEAgLTEzNSw4ICsxMzUsNiBAQCBzdHJ1Y3QgVHJhbnNsYXRpb25Db250ZXh0
TWVudUluZm87CiAtICh2b2lkKV93ZWJfZGlkUGVyZm9ybURyYWdPcGVyYXRpb246KEJPT0wpaGFu
ZGxlZDsKICNlbmRpZgogCi0tICh2b2lkKV93ZWJfZ3JhbnRET01QYXN0ZUFjY2VzczsKLQogQG9w
dGlvbmFsCiAtICh2b2lkKV93ZWJfZGlkQWRkTWVkaWFDb250cm9sc01hbmFnZXI6KGlkKWNvbnRy
b2xzTWFuYWdlcjsKIC0gKHZvaWQpX3dlYl9kaWRSZW1vdmVNZWRpYUNvbnRyb2xzTWFuYWdlcjsK
QEAgLTY1Miw5ICs2NTAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6
OkZvY3VzRGlyZWN0aW9uKTsKICAgICB2b2lkIGNsZWFyUHJvbWlzZWREcmFnSW1hZ2UoKTsKIAot
ICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpOwotICAgIHZvaWQgaGFuZGxlRE9NUGFz
dGVSZXF1ZXN0V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKTsKKyAg
ICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2UpPiYmKTsKKyAgICB2b2lkIGhhbmRsZURPTVBhc3RlUmVxdWVzdEZvckNhdGVnb3J5V2l0aFJl
c3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlKTsKICAgICBOU01lbnUgKmRvbVBhc3RlTWVudSgpIGNvbnN0IHsgcmV0dXJu
IG1fZG9tUGFzdGVNZW51LmdldCgpOyB9CisgICAgdm9pZCBoaWRlRE9NUGFzdGVNZW51V2l0aFJl
c3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKTsKIAogI2lmIEhBVkUoVFJBTlNM
QVRJT05fVUlfU0VSVklDRVMpICYmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIGJvb2wgY2Fu
SGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAzZDllODc3YjBjYjc1NjU0YjYzOTE2
Mzk1NTdmNTJiNjAzOTJjYWM5Li44OGM1ZGQ4OWMxNGY3OWI1ZjUwOGNlMmE1NDQ1YjdmNzUzMGI0
YjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpA
QCAtMTAwNywxOSArMTAwNywyMSBAQCAtIChOU1N0cmluZyAqKWF0dGFjaG1lbnRJZGVudGlmaWVy
CiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSA6IE5TT2JqZWN0PE5T
TWVudURlbGVnYXRlPgotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktp
dDo6V2ViVmlld0ltcGwmKWltcGw7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3SW1w
bDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbCBwYXN0ZUFjY2Vzc0NhdGVnb3J5OihXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5KWNhdGVnb3J5OwogQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSB7CiAgICAgV2Vha1B0cjxXZWJLaXQ6OldlYlZpZXdJ
bXBsPiBfaW1wbDsKKyAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IF9jYXRlZ29y
eTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktpdDo6V2Vi
Vmlld0ltcGwmKWltcGwKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXdJbXBsOihXZWJL
aXQ6OldlYlZpZXdJbXBsJilpbXBsIHBhc3RlQWNjZXNzQ2F0ZWdvcnk6KFdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzQ2F0ZWdvcnkpY2F0ZWdvcnkKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGlu
aXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIF9pbXBsID0gaW1wbDsKKyAgICBfY2F0
ZWdvcnkgPSBjYXRlZ29yeTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMTAyNyw3ICsxMDI5
LDcgQEAgLSAodm9pZCltZW51RGlkQ2xvc2U6KE5TTWVudSAqKW1lbnUKIHsKICAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW2ltcGwgPSBfaW1wbF0gewogICAgICAgICBpZiAoaW1wbCkKLSAg
ICAgICAgICAgIGltcGwtPmhhbmRsZURPTVBhc3RlUmVxdWVzdFdpdGhSZXN1bHQoV2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CisgICAgICAgICAgICBp
bXBsLT5oaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKICAgICB9KTsKIH0KIApAQCAtMTA0Myw2ICsxMDQ1
LDExIEBAIC0gKE5TUmVjdCljb25maW5lbWVudFJlY3RGb3JNZW51OihOU01lbnUgKiltZW51IG9u
U2NyZWVuOihOU1NjcmVlbiAqKXNjcmVlbgogICAgIHJldHVybiBjb25maW5lbWVudFJlY3Q7CiB9
CiAKKy0gKHZvaWQpX3dlYl9ncmFudERPTVBhc3RlQWNjZXNzCit7CisgICAgX2ltcGwtPmhhbmRs
ZURPTVBhc3RlUmVxdWVzdEZvckNhdGVnb3J5V2l0aFJlc3VsdChfY2F0ZWdvcnksIFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlKTsKK30KKwogQGVuZAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE2MDMsNyArMTYxMCw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OmhhbmRsZVByb2Nlc3NTd2FwT3JFeGl0KCkKIAogICAgIHVwZGF0ZVJlbW90ZUFjY2Vzc2li
aWxpdHlSZWdpc3RyYXRpb24oZmFsc2UpOwogCi0gICAgaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0
aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJl
KTsKKyAgICBoaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6cHJv
Y2Vzc1dpbGxTd2FwKCkKQEAgLTQ1NzgsMzQgKzQ1ODUsNTggQEAgTlNBcnJheSAqV2ViVmlld0lt
cGw6Om5hbWVzT2ZQcm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb24oTlNVUkwgKmRyb3BE
ZXN0aW4KICAgICByZXR1cm4gQFtbcGF0aCBsYXN0UGF0aENvbXBvbmVudF1dOwogfQogCi12b2lk
IFdlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uKQorc3RhdGlj
IE5TUGFzdGVib2FyZE5hbWUgcGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnkpCit7CisgICAgc3dp
dGNoIChwYXN0ZUFjY2Vzc0NhdGVnb3J5KSB7CisgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5OjpHZW5lcmFsOgorICAgICAgICByZXR1cm4gTlNQYXN0ZWJvYXJkTmFtZUdl
bmVyYWw7CisgICAgfQorfQorCitzdGF0aWMgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkRm9yQWNj
ZXNzQ2F0ZWdvcnkoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0Nh
dGVnb3J5KQoreworICAgIHN3aXRjaCAocGFzdGVBY2Nlc3NDYXRlZ29yeSkgeworICAgIGNhc2Ug
V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbDoKKyAgICAgICAgcmV0dXJu
IE5TUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZDsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVn
b3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbikKIHsKICAgICBBU1NFUlQoIW1f
ZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcik7Ci0gICAgaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJl
c3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsK
KyAgICBoaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIAotICAgIE5TRGF0YSAqZGF0YSA9IFtOU1Bhc3Rl
Ym9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2Fy
ZEZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2Vi
Q29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CiAgICAgYXV0byBidWZm
ZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsKICAgICBpZiAoV2ViQ29y
ZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoYnVmZmVyLmdldCgpKS5v
cmlnaW4oKSA9PSBvcmlnaW5JZGVudGlmaWVyKSB7Ci0gICAgICAgIG1fcGFnZS0+Z3JhbnRBY2Nl
c3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbCk7CisgICAg
ICAgIG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShwYXN0ZWJvYXJk
TmFtZUZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpKTsKICAgICAgICAgY29t
cGxldGlvbihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yR2VzdHVy
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2RvbVBhc3RlTWVudURlbGVnYXRl
ID0gYWRvcHROUyhbW1dLRE9NUGFzdGVNZW51RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoV2ViVmll
d0ltcGw6KnRoaXNdKTsKKyAgICBtX2RvbVBhc3RlTWVudURlbGVnYXRlID0gYWRvcHROUyhbW1dL
RE9NUGFzdGVNZW51RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoV2ViVmlld0ltcGw6KnRoaXMgcGFz
dGVBY2Nlc3NDYXRlZ29yeTpwYXN0ZUFjY2Vzc0NhdGVnb3J5XSk7CiAgICAgbV9kb21QYXN0ZVJl
cXVlc3RIYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uKTsKICAgICBtX2RvbVBhc3RlTWVudSA9
IGFkb3B0TlMoW1tOU01lbnUgYWxsb2NdIGluaXRXaXRoVGl0bGU6V2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnUGFzdGUoKV0pOwogCiAgICAgW21fZG9tUGFzdGVNZW51IHNldERlbGVnYXRlOm1f
ZG9tUGFzdGVNZW51RGVsZWdhdGUuZ2V0KCldOwogICAgIFttX2RvbVBhc3RlTWVudSBzZXRBbGxv
d3NDb250ZXh0TWVudVBsdWdJbnM6Tk9dOwotICAgIFttX2RvbVBhc3RlTWVudSBpbnNlcnRJdGVt
V2l0aFRpdGxlOldlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkgYWN0aW9uOkBzZWxl
Y3Rvcihfd2ViX2dyYW50RE9NUGFzdGVBY2Nlc3MpIGtleUVxdWl2YWxlbnQ6ZW1wdHlTdHJpbmco
KSBhdEluZGV4OjBdOworCisgICAgYXV0byBwYXN0ZU1lbnVJdGVtID0gUmV0YWluUHRyKFttX2Rv
bVBhc3RlTWVudSBpbnNlcnRJdGVtV2l0aFRpdGxlOldlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z1Bhc3RlKCkgYWN0aW9uOkBzZWxlY3Rvcihfd2ViX2dyYW50RE9NUGFzdGVBY2Nlc3MpIGtleUVx
dWl2YWxlbnQ6ZW1wdHlTdHJpbmcoKSBhdEluZGV4OjBdKTsKKyAgICBbcGFzdGVNZW51SXRlbSBz
ZXRUYXJnZXQ6bV9kb21QYXN0ZU1lbnVEZWxlZ2F0ZS5nZXQoKV07CisKICAgICBbTlNNZW51IHBv
cFVwQ29udGV4dE1lbnU6bV9kb21QYXN0ZU1lbnUuZ2V0KCkgd2l0aEV2ZW50Om1fbGFzdE1vdXNl
RG93bkV2ZW50LmdldCgpIGZvclZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpXTsKIH0KIAot
dm9pZCBXZWJWaWV3SW1wbDo6aGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdChXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKQordm9pZCBXZWJWaWV3SW1wbDo6aGFu
ZGxlRE9NUGFzdGVSZXF1ZXN0Rm9yQ2F0ZWdvcnlXaXRoUmVzdWx0KFdlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSwgV2ViQ29yZTo6RE9NUGFzdGVBY2Nl
c3NSZXNwb25zZSByZXNwb25zZSkKIHsKICAgICBpZiAocmVzcG9uc2UgPT0gV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckNvbW1hbmQgfHwgcmVzcG9uc2UgPT0gV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6R3JhbnRlZEZvckdlc3R1cmUpCi0gICAgICAg
IG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmRO
YW1lR2VuZXJhbCk7CisgICAgICAgIG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJv
YXJkRGF0YShwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdv
cnkpKTsKIAorICAgIGhpZGVET01QYXN0ZU1lbnVXaXRoUmVzdWx0KHJlc3BvbnNlKTsKK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6aGlkZURPTVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NSZXNwb25zZSByZXNwb25zZSkKK3sKICAgICBpZiAoYXV0byBoYW5kbGVyID0g
c3RkOjpleGNoYW5nZShtX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIsIHsgfSkpCiAgICAgICAgIGhh
bmRsZXIocmVzcG9uc2UpOwogICAgIFttX2RvbVBhc3RlTWVudSByZW1vdmVBbGxJdGVtc107CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggYzQ4NWM3ZmMzMTNlYTA4MzNmYzYw
NjI2NzE2OWQ2OTJhODI0MDkyOC4uMTk1YzNjODIyMDg4YTc3YmI5ZGYxNjc4NTAxMGY0MTU2YzZj
YzY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTEwLDYgKzExMCw3
IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3Mg
U2Nyb2xsYmFyU3R5bGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yTGlmZXRp
bWUgOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yRGlzbWlzc2FsQW5pbWF0aW9u
IDogdWludDhfdDsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSA6IHVpbnQ4X3Q7
CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51bSBjbGFz
cyBTY3JvbGxJc0FuaW1hdGVkIDogdWludDhfdDsKIApAQCAtNTk5LDcgKzYwMCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlRHJhZ0NhcmV0UmVjdChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBwcmV2aW91c0NhcmV0UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2Fy
ZXRSZWN0KSA9IDA7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RE9NUGFz
dGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikg
PSAwOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkSW5zZXJ0QXR0YWNobWVudChBUEk6OkF0dGFjaG1lbnQmLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhYTQ3
YjE3NDJhYjFmYjkxMmE0M2I1Y2IyZjExODVmODkwMTUxNmFjLi5iMzQxMTU5MDVhMjNkMWE2MjRh
ZTc0ZDhjODJlZTM3ZjQ3OTlmNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTI1MDgsMTUgKzI1MDgsMjAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVj
dEFsbCgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VsZWN0QWxsKCkpOwogfQogCi1z
dGF0aWMgYm9vbCBpc1Bhc3RlQ29tbWFuZE5hbWUoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkK
K3N0YXRpYyBzdGQ6Om9wdGlvbmFsPERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk+IHBhc3RlQWNjZXNz
Q2F0ZWdvcnlGb3JDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpCiB7Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+PiBwYXN0ZUNvbW1hbmROYW1lcyA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+IHsKLSAgICAgICAgIlBhc3RlIiwKLSAgICAgICAgIlBhc3RlQW5kTWF0Y2hTdHls
ZSIsCi0gICAgICAgICJQYXN0ZUFzUXVvdGF0aW9uIiwKLSAgICAgICAgIlBhc3RlQXNQbGFpblRl
eHQiCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U3RyaW5nLCBET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBwYXN0ZUNvbW1hbmROYW1l
cyA9IEhhc2hNYXA8U3RyaW5nLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+IHsKKyAgICAgICAgeyAiUGFzdGUiLCBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5
OjpHZW5lcmFsIH0sCisgICAgICAgIHsgIlBhc3RlQW5kTWF0Y2hTdHlsZSIsIERPTVBhc3RlQWNj
ZXNzQ2F0ZWdvcnk6OkdlbmVyYWwgfSwKKyAgICAgICAgeyAiUGFzdGVBc1F1b3RhdGlvbiIsIERP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWwgfSwKKyAgICAgICAgeyAiUGFzdGVBc1BsYWlu
VGV4dCIsIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWwgfSwKICAgICB9OwotICAgIHJl
dHVybiBwYXN0ZUNvbW1hbmROYW1lcy0+Y29udGFpbnMoY29tbWFuZE5hbWUpOworCisgICAgYXV0
byBpdCA9IHBhc3RlQ29tbWFuZE5hbWVzLT5maW5kKGNvbW1hbmROYW1lKTsKKyAgICBpZiAoaXQg
IT0gcGFzdGVDb21tYW5kTmFtZXMtPmVuZCgpKQorICAgICAgICByZXR1cm4gaXQtPnZhbHVlOwor
CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmV4ZWN1
dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFy
Z3VtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2tGdW5jdGlvbikKQEAg
LTI1MjYsOCArMjUzMSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRlRWRpdENvbW1hbmQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoaXNQYXN0ZUNvbW1hbmROYW1lKGNvbW1hbmROYW1lKSkKLSAg
ICAgICAgd2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQoKTsKKyAgICBpZiAoYXV0byBwYXN0ZUFjY2Vz
c0NhdGVnb3J5ID0gcGFzdGVBY2Nlc3NDYXRlZ29yeUZvckNvbW1hbmQoY29tbWFuZE5hbWUpKQor
ICAgICAgICB3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZCgqcGFzdGVBY2Nlc3NDYXRlZ29yeSk7CiAK
ICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkV4ZWN1dGVFZGl0Q29t
bWFuZFdpdGhDYWxsYmFjayhjb21tYW5kTmFtZSwgYXJndW1lbnQpLCBbY2FsbGJhY2tGdW5jdGlv
biA9IFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIGJhY2tncm91bmRBY3Rpdml0eSA9IG1fcHJv
Y2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5KCJXZWJQYWdlUHJveHk6OmV4ZWN1
dGVFZGl0Q29tbWFuZCJfcyldICgpIG11dGFibGUgewogICAgICAgICBjYWxsYmFja0Z1bmN0aW9u
KCk7CkBAIC0yNTQxLDggKzI1NDYsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVkaXRD
b21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYQogICAgIGlm
ICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzUGFz
dGVDb21tYW5kTmFtZShjb21tYW5kTmFtZSkpCi0gICAgICAgIHdpbGxQZXJmb3JtUGFzdGVDb21t
YW5kKCk7CisgICAgaWYgKGF1dG8gcGFzdGVBY2Nlc3NDYXRlZ29yeSA9IHBhc3RlQWNjZXNzQ2F0
ZWdvcnlGb3JDb21tYW5kKGNvbW1hbmROYW1lKSkKKyAgICAgICAgd2lsbFBlcmZvcm1QYXN0ZUNv
bW1hbmQoKnBhc3RlQWNjZXNzQ2F0ZWdvcnkpOwogCiAgICAgaWYgKGNvbW1hbmROYW1lID09IGln
bm9yZVNwZWxsaW5nQ29tbWFuZE5hbWUpCiAgICAgICAgICsrbV9wZW5kaW5nTGVhcm5Pcklnbm9y
ZVdvcmRNZXNzYWdlQ291bnQ7CkBAIC02NTg4LDkgKzY1OTMsOSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoYm9vbCBpc05ldmVyUmljaGx5
RWRpdGFibAogCiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RET01QYXN0ZUFj
Y2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3Rl
QWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBh
c3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgbV9wYWdlQ2xpZW50LT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoZWxlbWVudFJlY3QsIG9yaWdp
bklkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX3BhZ2VDbGll
bnQtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBlbGVtZW50UmVj
dCwgb3JpZ2luSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiAv
LyBCYWNrRm9yd2FyZExpc3QKQEAgLTEwNzkxLDcgKzEwNzk2LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnBsYXRmb3JtRGlkU2VsZWN0SXRlbUZyb21BY3RpdmVDb250ZXh0TWVudShjb25zdCBXZWJD
b250ZXh0TWUKIAogI2lmICFQTEFURk9STShDT0NPQSkKIAotdm9pZCBXZWJQYWdlUHJveHk6Ondp
bGxQZXJmb3JtUGFzdGVDb21tYW5kKCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBh
c3RlQ29tbWFuZChET01QYXN0ZUFjY2Vzc0NhdGVnb3J5KQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDVhODMyZTU1YWNiYTE4OWIzOWI5ZTg5N2NjMWNh
MThiN2I0ODQ1NTUuLjc3MTk0NzM5NTI3NWM4YzUzMGI5OWZiZGFkYTM5MmYwYjUwNDQ5NmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNjYsNiArMjY2LDcgQEAg
Y2xhc3MgVmFsaWRhdGlvbkJ1YmJsZTsKIAogZW51bSBjbGFzcyBBdXRvcGxheUV2ZW50IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgQ3JlYXRlTmV3R3JvdXBGb3JIaWdobGlnaHQgOiBib29sOworZW51
bSBjbGFzcyBET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9N
UGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIEV2ZW50TWFrZXNHYW1l
cGFkc1Zpc2libGUgOiBib29sOwogZW51bSBjbGFzcyBMb2NrQmFja0ZvcndhcmRMaXN0IDogYm9v
bDsKQEAgLTIyNTQsOCArMjI1NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRJc05ldmVyUmlj
aGx5RWRpdGFibGVGb3JUb3VjaEJhcihib29sKTsKICNlbmRpZgogCi0gICAgdm9pZCByZXF1ZXN0
RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYp
OwotICAgIHZvaWQgd2lsbFBlcmZvcm1QYXN0ZUNvbW1hbmQoKTsKKyAgICB2b2lkIHJlcXVlc3RE
T01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJik7CisgICAgdm9pZCB3aWxsUGVyZm9ybVBh
c3RlQ29tbWFuZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5KTsKIAogICAgIC8vIEJh
Y2svRm9yd2FyZCBsaXN0IG1hbmFnZW1lbnQKICAgICB2b2lkIGJhY2tGb3J3YXJkQWRkSXRlbShC
YWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMDg3NzhhZTY1NDQ4YmVjYTgwMGI0MGZk
MzI4MzhjZDIzZWQ3OGI5My4uZTNmZjBhMzVjZDNmZjQ5OWE3MTMzZjliZmYyZDMzMTQ0NDg5NGQz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjMyLDcgKzIzMiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
U2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoYm9vbCBpc05ldmVyUmljaGx5RWRp
dGFibGUpCiAjZW5kaWYKIAotICAgIFJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpJbnRS
ZWN0IGVsZW1lbnRSZWN0LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGVudW06dWludDhf
dCBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKSBTeW5jaHJvbm91cwor
ICAgIFJlcXVlc3RET01QYXN0ZUFjY2VzcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBXZWJDb3JlOjpJbnRSZWN0IGVsZW1l
bnRSZWN0LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4gKGVudW06dWludDhfdCBXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKSBTeW5jaHJvbm91cwogCiAgICAgIyBG
aW5kIG1lc3NhZ2VzCiAgICAgRGlkQ291bnRTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIHVp
bnQzMl90IG1hdGNoQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCmluZGV4IDU2MDczYmI4Mzc3YjA2YmM0MTVkNTZlMDY3OGMzMTZmNmM4
ZTJiYjMuLjNiMDRhODMzZGJlMGI2YjY2ZWUxNGQzYzMwMGYzMDY4NzE4YmYyY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0zOCw2
ICszOCw3IEBAIE9CSkNfQ0xBU1MgV0tDb250ZW50VmlldzsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JV
bmRvVGFyZ2V0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNj
ZXNzQ2F0ZWdvcnkgOiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
IDogdWludDhfdDsKIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvOwogfQpAQCAtMjY2LDcg
KzI2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tE
b2N1bWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3Qg
U3RyaW5nJik+JiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0
ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29uc3QgU3RyaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
KT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3Qs
IGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAg
ICB2b2lkIGRpZFBlcmZvcm1EcmFnT3BlcmF0aW9uKGJvb2wgaGFuZGxlZCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5k
ZXggMzJkMWY4OWMwNThiOWI0MGExOGU4ZjY3YmM3YmU5ZjBhMTAyNTA4Yi4uZmFjOWU3ZmI3OGJl
ZTBmNjI5NDU2NzJlM2JiNzRiOWUwNTIwZTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtOTUxLDkgKzk1MSw5IEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OnJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50KGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsCiB9CiAjZW5kaWYKIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVB
Y2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBlbGVtZW50UmVjdCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIFttX2NvbnRlbnRWaWV3IF9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NX
aXRoRWxlbWVudFJlY3Q6ZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRpZmllcjpvcmlnaW5JZGVudGlm
aWVyIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKKyAgICBb
bV9jb250ZW50VmlldyBfcmVxdWVzdERPTVBhc3RlQWNjZXNzRm9yQ2F0ZWdvcnk6cGFzdGVBY2Nl
c3NDYXRlZ29yeSBlbGVtZW50UmVjdDplbGVtZW50UmVjdCBvcmlnaW5JZGVudGlmaWVyOm9yaWdp
bklkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
OwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjYW5jZWxQb2ludGVyc0Zvckdlc3R1cmVSZWNv
Z25pemVyKFVJR2VzdHVyZVJlY29nbml6ZXIqIGdlc3R1cmVSZWNvZ25pemVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CmluZGV4IGIzZjhhMzJlZTQ2YjFmN2E5OTI0YTc1YmZkNGZkNDc0OTcxMmJkNzIuLmJjNTkxMTMy
ZDJhODFjYTU4MjliYzlmNWNjYzk3ZGQ4NDY3ZDNhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTkwLDYg
KzkwLDcgQEAgc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgUHJvbWlzZWRBdHRh
Y2htZW50SW5mbzsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogc3RydWN0IFRleHRS
ZWNvZ25pdGlvblJlc3VsdDsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwogZW51
bSBjbGFzcyBNb3VzZUV2ZW50UG9saWN5IDogdWludDhfdDsKIGVudW0gY2xhc3MgUm91dGVTaGFy
aW5nUG9saWN5IDogdWludDhfdDsKQEAgLTQ1NSw2ICs0NTYsNyBAQCB1c2luZyBJbWFnZUFuYWx5
c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlQW5hbHlzaXNSZXF1
ZXN0SWRlbgogICAgIE5TVUludGVnZXIgX2FjdGl2ZVRleHRJbnRlcmFjdGlvbkNvdW50OwogICAg
IE5TSW50ZWdlciBfc3VwcHJlc3NOb25FZGl0YWJsZVNpbmdsZVRhcFRleHRJbnRlcmFjdGlvbkNv
dW50OwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSk+IF9kb21QYXN0ZVJlcXVlc3RIYW5kbGVyOworICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeT4gX2RvbVBhc3RlUmVxdWVzdENhdGVnb3J5Owog
ICAgIEJsb2NrUHRyPHZvaWQoVUlXS0F1dG9jb3JyZWN0aW9uQ29udGV4dCAqKT4gX3BlbmRpbmdB
dXRvY29ycmVjdGlvbkNvbnRleHRIYW5kbGVyOwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4gX3BlbmRpbmdSdW5Nb2RhbEphdmFTY3JpcHREaWFsb2dDYWxsYmFjazsKIApAQCAtNjcxLDcg
KzY3Myw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9X
S0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRF
bGVtZW50U2VsZWN0ZWRJbmRleDoodWludDMyX3QpaW5kZXggYWxsb3dzTXVsdGlwbGVTZWxlY3Rp
b246KGJvb2wpYWxsb3dzTXVsdGlwbGVTZWxlY3Rpb247CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRF
bGVtZW50Rm9jdXNlZFdpdGhEYXRhTGlzdERyb3Bkb3duOihCT09MKXZhbHVlOwogCi0tICh2b2lk
KV9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKWVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6KGNvbnN0IFN0cmluZyYpb3JpZ2lu
SWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZv
aWQpX3JlcXVlc3RET01QYXN0ZUFjY2Vzc0ZvckNhdGVnb3J5OihXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5KXBhc3RlQWNjZXNzQ2F0ZWdvcnkgZWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKWVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6KGNvbnN0IFN0cmluZyYp
b3JpZ2luSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiljb21wbGV0aW9uSGFuZGxlcjsK
IAogLSAodm9pZClkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZToodm9pZCAoXikoV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikpYWN0aW9uIGZvclJlcXVlc3Q6
KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QpcmVxdWVzdDsKIC0gKEJPT0wp
ZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6KFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QpcmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDFhODFjY2U0NDU1
ZWIxYTcyYjEwZThmMjQ3M2M2MGEyOTFlYTU4YmEuLjA0MzkwMmUzMjY3NzA0NTU5YzgwYjZhYTcx
YzhiYjZjYzk4MTczZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDE0MywxMCArNDE0MywyOCBAQCAt
ICh2b2lkKV9hY2Nlc3NpYmlsaXR5Q2xlYXJTZWxlY3Rpb24KICAgICBfcGFnZS0+c3RvcmVTZWxl
Y3Rpb25Gb3JBY2Nlc3NpYmlsaXR5KGZhbHNlKTsKIH0KIAorc3RhdGljIFVJUGFzdGVib2FyZE5h
bWUgcGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnkpCit7CisgICAgc3dpdGNoIChwYXN0ZUFjY2Vz
c0NhdGVnb3J5KSB7CisgICAgY2FzZSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5OjpH
ZW5lcmFsOgorICAgICAgICByZXR1cm4gVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWw7CisgICAgfQor
fQorCitzdGF0aWMgVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkoV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjY2Vzc0NhdGVnb3J5KQoreworICAg
IHN3aXRjaCAocGFzdGVBY2Nlc3NDYXRlZ29yeSkgeworICAgIGNhc2UgV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NDYXRlZ29yeTo6R2VuZXJhbDoKKyAgICAgICAgcmV0dXJuIFVJUGFzdGVib2FyZC5n
ZW5lcmFsUGFzdGVib2FyZDsKKyAgICB9Cit9CisKIC0gKEJPT0wpX2hhbmRsZURPTVBhc3RlUmVx
dWVzdFdpdGhSZXN1bHQ6KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpcmVzcG9uc2UK
IHsKLSAgICBpZiAocmVzcG9uc2UgPT0gV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6
R3JhbnRlZEZvckNvbW1hbmQgfHwgcmVzcG9uc2UgPT0gV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZTo6R3JhbnRlZEZvckdlc3R1cmUpCi0gICAgICAgIF9wYWdlLT5ncmFudEFjY2Vzc1Rv
Q3VycmVudFBhc3RlYm9hcmREYXRhKFVJUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKKyAgICBpZiAo
YXV0byBwYXN0ZUFjY2Vzc0NhdGVnb3J5ID0gc3RkOjpleGNoYW5nZShfZG9tUGFzdGVSZXF1ZXN0
Q2F0ZWdvcnksIHN0ZDo6bnVsbG9wdCkpIHsKKyAgICAgICAgaWYgKHJlc3BvbnNlID09IFdlYkNv
cmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JDb21tYW5kIHx8IHJlc3BvbnNl
ID09IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JHZXN0dXJlKQor
ICAgICAgICAgICAgX3BhZ2UtPmdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEocGFz
dGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeSgqcGFzdGVBY2Nlc3NDYXRlZ29yeSkpOworICAg
IH0KIAogICAgIGlmIChhdXRvIHBhc3RlSGFuZGxlciA9IFdURk1vdmUoX2RvbVBhc3RlUmVxdWVz
dEhhbmRsZXIpKSB7CiAgICAgICAgIFtVSU1lbnVDb250cm9sbGVyLnNoYXJlZE1lbnVDb250cm9s
bGVyIGhpZGVNZW51RnJvbVZpZXc6c2VsZl07CkBAIC02NjA5LDE0ICs2NjI3LDE2IEBAIHN0YXRp
YyBCT09MIGFsbFBhc3RlYm9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZCAq
cGFzdGVib2FyZCwgY29uc3QKICAgICByZXR1cm4gZm91bmRBdExlYXN0T25lTWF0Y2hpbmdJZGVu
dGlmaWVyOwogfQogCi0tICh2b2lkKV9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJl
Y3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKWVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6
KGNvbnN0IFN0cmluZyYpb3JpZ2luSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiljb21w
bGV0aW9uSGFuZGxlcgorLSAodm9pZClfcmVxdWVzdERPTVBhc3RlQWNjZXNzRm9yQ2F0ZWdvcnk6
KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkpcGFzdGVBY2Nlc3NDYXRlZ29yeSBlbGVt
ZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRp
ZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYm
KWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgaWYgKGF1dG8gZXhpc3RpbmdDb21wbGV0aW9uSGFu
ZGxlciA9IHN0ZDo6ZXhjaGFuZ2UoX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgZXhpc3RpbmdDb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3Bv
bnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKICAgICB9CiAKLSAgICBpZiAoYWxsUGFzdGVib2FyZEl0
ZW1PcmlnaW5zTWF0Y2hPcmlnaW4oVUlQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkLCBvcmln
aW5JZGVudGlmaWVyKSkgeworICAgIF9kb21QYXN0ZVJlcXVlc3RDYXRlZ29yeSA9IHBhc3RlQWNj
ZXNzQ2F0ZWdvcnk7CisKKyAgICBpZiAoYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0Y2hPcmln
aW4ocGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpLCBvcmln
aW5JZGVudGlmaWVyKSkgewogICAgICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0
aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yQ29tbWFu
ZF07CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBmODBjODI0OWRhNDY3Yjk0MjAzNWU0NjA2ZTg5
OWJjYjY0ZWRiYzZjLi4wZGRmYzNlNjkxZjI5ZDc5YTJmOWIzYWE2YjFjMDU5YWYzN2MwMDBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAg
LTE1NDQsOSArMTU0NCwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNVc2VyRmFjaW5nQ2hhbmdl
ZChib29sIGlzVXNlckZhY2luZykKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6d2ls
bFBlcmZvcm1QYXN0ZUNvbW1hbmQoKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFz
dGVDb21tYW5kKERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSkKIHsK
LSAgICBncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmREYXRhKFVJUGFzdGVib2FyZE5hbWVH
ZW5lcmFsKTsKKyAgICBzd2l0Y2ggKHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIHsKKyAgICBjYXNlIERP
TVBhc3RlQWNjZXNzQ2F0ZWdvcnk6OkdlbmVyYWw6CisgICAgICAgIGdyYW50QWNjZXNzVG9DdXJy
ZW50UGFzdGVib2FyZERhdGEoVUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWwpOworICAgICAgICByZXR1
cm47CisgICAgfQogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0RGV2aWNlSGFzQUdYQ29tcGls
ZXJTZXJ2aWNlRm9yVGVzdGluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IGQyMjM4ZmRjOWQxNmY3N2Y4YzNkMzAyY2E5
OTc2ZmU4M2YxYjNmMzcuLjk2YmY0MjhiMTliNWJhOWQ3NDZhM2VhMTExNTFiZDNjYWZiMTZkZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5o
CkBAIC0yMjUsNyArMjI1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0
aW9uU25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCi0gICAgdm9p
ZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0
cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZSk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6
OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBT
dHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVz
cG9uc2UpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgbWFrZVZpZXdCbGFuayhib29sKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
CmluZGV4IGE0MTEyMTM1ZjJlZjE5MDE1YTUyZjFlMWIwM2FlMzBhMWYyMjNkMmEuLjYyOTBhODA5
MGUzNTliNjMwMjA4ZGI3MTI2OTI0MDc0ZDFjNWQ3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTEwMDAsOSArMTAwMCw5IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OnRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24pCiAgICAgbV9pbXBsLT50YWtlRm9jdXMoZGlyZWN0aW9uKTsKIH0KIAotdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGVsZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxl
dGlvbikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+
JiYgY29tcGxldGlvbikKIHsKLSAgICBtX2ltcGwtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhlbGVt
ZW50UmVjdCwgb3JpZ2luSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uKSk7CisgICAgbV9p
bXBsLT5yZXF1ZXN0RE9NUGFzdGVBY2Nlc3MocGFzdGVBY2Nlc3NDYXRlZ29yeSwgZWxlbWVudFJl
Y3QsIG9yaWdpbklkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IGUwM2Uw
ODBhZWUwODM4MGI0NmZmZTg5ZGQ4ZTYxYjY2YjU5OGRiNDYuLjU1MWEyYWYyM2ZlZTBiZmQyNDg3
ODYyMGE5Y2Q3OWYwNzM2MWM0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtNjUxLDkgKzY1MSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cGxhdGZvcm1EaWRTZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNv
bnRleHRNZQogCiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtUGFzdGVD
b21tYW5kKCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybVBhc3RlQ29tbWFuZChET01Q
YXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjZXNzQ2F0ZWdvcnkpCiB7Ci0gICAgZ3JhbnRBY2Nl
c3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShOU1Bhc3RlYm9hcmROYW1lR2VuZXJhbCk7CisgICAg
c3dpdGNoIChwYXN0ZUFjY2Vzc0NhdGVnb3J5KSB7CisgICAgY2FzZSBET01QYXN0ZUFjY2Vzc0Nh
dGVnb3J5OjpHZW5lcmFsOgorICAgICAgICBncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmRE
YXRhKE5TUGFzdGVib2FyZE5hbWVHZW5lcmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0K
IAogUGxhdGZvcm1WaWV3KiBXZWJQYWdlUHJveHk6OnBsYXRmb3JtVmlldygpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1w
bC5jcHAKaW5kZXggYTkyN2E0OThkOGE3OTNkOTJhYjQzYzY2ZGE4MDQ4MjkwOWI1NTI1Ni4uZGUw
ZDg2ZGNhM2VjNjU2MmRkY2EyMmEyMTMwNDZlMWY0ODBkN2E1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAt
MzE3LDcgKzMxNyw3IEBAIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gUGFn
ZUNsaWVudEltcGw6OnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3RpCiAgICAgcmV0dXJuIFdlYkNv
cmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246OkxUUjsKIH0KIAotdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBj
b25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6
cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2U6OkRlbmllZEZvckdlc3R1cmUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNjRjYjcwZjExZDc3ZmJjYWU5
MzQxNGNmZjIyZjE4OGQwNThmMmI2Yy4uNmIyNzRiZDkzMzIzODJmNWQyMjliMzZkMmUwMDhjYTc2
NDFlYjNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24v
UGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlv
bi9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xNDksNyArMTQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIFdl
YkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbigpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnks
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKSBvdmVycmlkZTsKIAog
ICAgIFBsYXlTdGF0aW9uV2ViVmlldyYgbV92aWV3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGM3OTcwNmExMjRiNDRjMmZmMTNi
NGQ2YTdmYmVjNjNhYWVhZGFiMzkuLjQzOTY3NGIzMjNhZWRiZDRiOWZjNGIyMTFjMDA4Mjg4MzYz
MjExNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBs
LmNwcApAQCAtMzczLDcgKzM3Myw3IEBAIEhXTkQgUGFnZUNsaWVudEltcGw6OnZpZXdXaWRnZXQo
KQogICAgIHJldHVybiBtX3ZpZXcud2luZG93KCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6
OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01QYXN0ZUFj
Y2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5LCBjb25zdCBJbnRSZWN0JiwgY29u
c3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vz
c1Jlc3BvbnNlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggM2Vh
NDkzZGYxZTY2ODc2ZjUwOWRmNmMzYzA5MTcyNDBiNzY0Y2JhNS4uODRmZTE2YWFkN2MyZmM5NzAx
OGNjZDA0ZTE2MTZkYmQ2MjNjNDc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2lu
L1BhZ2VDbGllbnRJbXBsLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0lu
dFNpemUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vz
c0NhdGVnb3J5IDogdWludDhfdDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6
IHVpbnQ4X3Q7CiB9CiAKQEAgLTE0OCw3ICsxNDksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29y
ZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbjo6TFRSOyB9CiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0
RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpIGZpbmFsOwogCiAgICAgLy8gTWVtYmVy
cyBvZiBQYWdlQ2xpZW50SW1wbCBjbGFzcwogICAgIERlZmF1bHRVbmRvQ29udHJvbGxlciBtX3Vu
ZG9Db250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCA4MWUzNzllMzNkMWE5YWNk
Yzg2ZWY1YzRiZTIxYTcyNjBkOTRkNDhlLi5kZjI3OGE3ODg0YmFjODlkNWQxNWY3ZGM2NDlkNjZk
ODA1MDRjMWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMzMyLDkgKzMzMiw5IEBAIHZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpyZWRvKCkKICAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVVbmRvUmVkbyhVbmRvT3JSZWRvOjpSZWRvKSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvOjpSZXBseSgpKTsKIH0KIAotV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RET01QYXN0
ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCitXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQogewotICAgIHJldHVybiBtX3BhZ2UtPnJlcXVlc3RE
T01QYXN0ZUFjY2VzcyhvcmlnaW5JZGVudGlmaWVyKTsKKyAgICByZXR1cm4gbV9wYWdlLT5yZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MocGFzdGVBY2Nlc3NDYXRlZ29yeSwgb3JpZ2luSWRlbnRpZmllcik7
CiB9CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoR0xJQikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAppbmRleCA1MDZkOWY1NDEzOGQzN2NiNGM2NGVkNDYwZjU5YTVjMjhmZTUyMmE2Li40YzQ4ODk3
NjAxMjJhZjc2ZjAzYjgwYzRmODY2MmExMjNmNGQ5MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkg
OiB1aW50OF90OwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIDogdWludDhfdDsK
IH0KIApAQCAtOTMsNyArOTQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3Rl
cChXZWJDb3JlOjpVbmRvU3RlcCYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJh
dGlvbnMoKSBmaW5hbDsKIAotICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVx
dWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikgZmluYWw7
CisgICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuQ29weUN1dChXZWJDb3JlOjpGcmFtZSos
IGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblBhc3RlKFdlYkNv
cmU6OkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiM2IwZmJjYzc2ZTYwZjY3
OGJmMWM2ZGU1MjEzMDU5OGNiMmQwMDg4Li4zZGZkNTgzNWY1MDJkMDZmZGZhZTc1ZDA1YjBlODM1
MGZlODUxODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNzE5Nyw3ICs3MTk3LDcgQEAgdm9pZCBXZWJQYWdlOjpzaG93Q29udGFjdFBpY2tl
cihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwKICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd0NvbnRhY3RQaWNr
ZXIocmVxdWVzdERhdGEpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLVdlYkNvcmU6OkRPTVBh
c3RlQWNjZXNzUmVzcG9uc2UgV2ViUGFnZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFN0
cmluZyYgb3JpZ2luSWRlbnRpZmllcikKK1dlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2Ug
V2ViUGFnZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnkgcGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
KQogewogICAgIGF1dG8gcmVzcG9uc2UgPSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNl
OjpEZW5pZWRGb3JHZXN0dXJlOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC03MjA3LDcg
KzcyMDcsNyBAQCBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdlYlBhZ2U6OnJlcXVl
c3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaQogICAgIC8vIHNob3VsZCBiZSByZW1v
dmVkIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzE2MjA3MDAyPiBpcyByZXNvbHZlZC4KICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dChhdXRv
Y29ycmVjdGlvbkNvbnRleHQoKSkpOwogI2VuZGlmCi0gICAgc2VuZFN5bmNXaXRoRGVsYXllZFJl
cGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RET01QYXN0ZUFjY2VzcyhyZWN0Rm9y
RWxlbWVudEF0SW50ZXJhY3Rpb25Mb2NhdGlvbigpLCBvcmlnaW5JZGVudGlmaWVyKSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdERPTVBhc3RlQWNjZXNzOjpSZXBseShyZXNwb25zZSkp
OworICAgIHNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MocGFzdGVBY2Nlc3NDYXRlZ29yeSwgcmVjdEZvckVsZW1lbnRB
dEludGVyYWN0aW9uTG9jYXRpb24oKSwgb3JpZ2luSWRlbnRpZmllciksIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJlcXVlc3RET01QYXN0ZUFjY2Vzczo6UmVwbHkocmVzcG9uc2UpKTsKICAgICBy
ZXR1cm4gcmVzcG9uc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCAzNWMyM2ZlNjAyZWI0ZjkwNDFhYmIwYTk4N2U3ZDJmMGNhMGY4YjNlLi41
MzNkMDhjNmIyNDllMWYyOGU0M2YzM2Q2ODc1OTFhZTE2OGE1YjcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMjQsNiArMjI0LDcgQEAgY2xhc3Mg
VmlzaWJsZVBvc2l0aW9uOwogZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CiBlbnVt
IGNsYXNzIENPRVBEaXNwb3NpdGlvbiA6IGJvb2w7CiBlbnVtIGNsYXNzIENyZWF0ZU5ld0dyb3Vw
Rm9ySGlnaGxpZ2h0IDogYm9vbDsKK2VudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90Owog
ZW51bSBjbGFzcyBEcmFnQXBwbGljYXRpb25GbGFncyA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIERy
YWdIYW5kbGluZ01ldGhvZCA6IHVpbnQ4X3Q7CkBAIC0xMzM5LDcgKzEzNDAsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBzZW5kU3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5
KSwgU2Vjb25kczo6aW5maW5pdHkoKSwgc2VuZFN5bmNPcHRpb25zKTsKICAgICB9CiAKLSAgICBX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpOworICAgIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNz
UmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnksIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CiAgICAgV2ViQ29yZTo6SW50
UmVjdCByZWN0Rm9yRWxlbWVudEF0SW50ZXJhY3Rpb25Mb2NhdGlvbigpIGNvbnN0OwogCiAgICAg
Y29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDb2xvcj4mIGJhY2tncm91bmRDb2xvcigpIGNv
bnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZENvbG9yOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDQ1
ZjdjMWY1Y2E3NDgyZDYwZDliYzc0ZWY2MTZjMzJmZDYyNjc2NDcuLjQyMDEwN2RhNjViNzZiNmQx
MmM0YzQ1ODEzOWYzMDgyNThkOTNmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC04Myw3ICs4Myw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRDbGllbnRQYXN0ZWJvYXJkRGF0YShjb25zdCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlNpbXBsZVJhbmdlPiYsIFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJv
YXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4mIHBhc3RlYm9h
cmREYXRhKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0SW5zZXJ0aW9uUGFzdGVib2FyZChjb25zdCBT
dHJpbmcmKSBmaW5hbDsKLSAgICBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlcXVl
c3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOyB9CisgICAgV2ViQ29yZTo6
RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NDYXRlZ29yeSwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZTsgfQogCiAjaWYgVVNF
KEFQUEtJVCkKICAgICB2b2lkIHVwcGVyY2FzZVdvcmQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
aW5kZXggYzE2N2NhMjkyMjNlZWE5OWU1MjhhOGVhNjEyOGMxZTFlNjllZTNmMS4uMDg3YjY5ZTdh
OGIwYjY4OGFjYmZlNDRlNGRhYjFiN2JkYTU0MWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEx
Nyw3ICsxMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb24mKSBmaW5hbCB7IH0KICAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpE
b2N1bWVudEZyYWdtZW50JiwgY29uc3QgV2ViQ29yZTo6U2ltcGxlUmFuZ2UmLCBib29sKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25z
ZSByZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gV2Vi
Q29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZTsgfQorICAgIFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgcmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNv
cmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnksIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJu
IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmU7IH0KIAog
ICAgIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIGZpbmFsIHsgcmV0
dXJuIHRoaXM7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>