<?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>203147</bug_id>
          
          <creation_ts>2019-10-18 02:25:57 -0700</creation_ts>
          <short_desc>[WebAuthn] Warn users when no credentials are found</short_desc>
          <delta_ts>2019-10-22 03:10:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581356</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-18 02:25:57 -0700</bug_when>
    <thetext>Warn users when no credentials are found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581357</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-18 02:26:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/55931123&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581517</commentid>
    <comment_count>2</comment_count>
      <attachid>381328</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-18 14:25:05 -0700</bug_when>
    <thetext>Created attachment 381328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581541</commentid>
    <comment_count>3</comment_count>
      <attachid>381334</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-18 14:48:49 -0700</bug_when>
    <thetext>Created attachment 381334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581589</commentid>
    <comment_count>4</comment_count>
      <attachid>381334</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-18 16:25:21 -0700</bug_when>
    <thetext>Comment on attachment 381334
Patch

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

r=me

&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:248
&gt; +    if (auto *panel = m_pendingRequestData.panel.get())

auto* panel
This isn&apos;t an Objective C file... but is this an ObjC data type?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:58
&gt; +        return;

This &apos;return&apos; isn&apos;t really needed.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:92
&gt; +    RetainPtr&lt;NSObject &lt;_WKWebAuthenticationPanelDelegate&gt;&gt; _delegate;

The whitespace between NSObject and &lt; is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581594</commentid>
    <comment_count>5</comment_count>
      <attachid>381334</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-18 16:34:50 -0700</bug_when>
    <thetext>Comment on attachment 381334
Patch

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

Thanks Brent for r+ this patch.

&gt;&gt; Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp:248
&gt;&gt; +    if (auto *panel = m_pendingRequestData.panel.get())
&gt; 
&gt; auto* panel
&gt; This isn&apos;t an Objective C file... but is this an ObjC data type?

Oops. Fixed.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:58
&gt;&gt; +        return;
&gt; 
&gt; This &apos;return&apos; isn&apos;t really needed.

Right. Fixed.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:92
&gt;&gt; +    RetainPtr&lt;NSObject &lt;_WKWebAuthenticationPanelDelegate&gt;&gt; _delegate;
&gt; 
&gt; The whitespace between NSObject and &lt; is not needed.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581598</commentid>
    <comment_count>6</comment_count>
      <attachid>381344</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-10-18 16:37:37 -0700</bug_when>
    <thetext>Created attachment 381344
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581653</commentid>
    <comment_count>7</comment_count>
      <attachid>381344</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-18 18:02:26 -0700</bug_when>
    <thetext>Comment on attachment 381344
Patch for landing

Clearing flags on attachment: 381344

Committed r251317: &lt;https://trac.webkit.org/changeset/251317&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381328</attachid>
            <date>2019-10-18 14:25:05 -0700</date>
            <delta_ts>2019-10-18 14:48:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203147-20191018142505.patch</filename>
            <type>text/plain</type>
            <size>44495</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4NmVhYWE0ODEyYjZlNDg2
MTk5NTlmN2VmNTAxZjcwODk0ZWViZWMuLmE2M2Y5NWVhYjAyYzVmNjg3OTYwNzVlNjUxODA0ZmMx
YWI1ZjRmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTktMTAtMTggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFdhcm4gdXNl
cnMgd2hlbiBubyBjcmVkZW50aWFscyBhcmUgZm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzE0NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU5MzExMjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCByZXR1cm5zIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0Ny
ZWRlbnRpYWxzRm91bmQgdG8gY2xpZW50IHZpYQorICAgICAgICAtW19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxEZWxlZ2F0ZSBwYW5lbDp1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOl0gd2hl
biBlaXRoZXIKKyAgICAgICAgQ3RhcEF1dGhlbnRpY2F0b3IgcmVjZWl2ZXMga0N0YXAyRXJyTm9D
cmVkZW50aWFscyBvciBVMmZBdXRoZW50aWNhdG9yIGV4aGF1c3RzIHRoZQorICAgICAgICBhbGxv
dyBsaXN0LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBlbmhhbmNlcyBDdGFwQXV0aGVudGlj
YXRvcjo6dHJ5RG93bmdyYWRlIHRvIGNoZWNrIGlmIHRoZSBDVEFQIGNvbW1hbmQKKyAgICAgICAg
Y2FuIGJlIGNvbnZlcnRlZCB0byBVMkYgY29tbWFuZHMgdG8gZW5zdXJlIGtDdGFwMkVyck5vQ3Jl
ZGVudGlhbHMgaXMgcmV0dXJuZWQgaWYgaXQKKyAgICAgICAgaXMgdGhlIGNhc2UuIE90aGVyd2lz
ZSwgYWZ0ZXIgZG93bmdyYWRpbmcsIFUyZkF1dGhlbnRpY2F0b3Igd2lsbCByZXR1cm4gTm90U3Vw
cG9ydGVkRXJyb3IKKyAgICAgICAgZ2l2ZW4gaXQgY2FuJ3QgY29udmVydCB0aGUgY29tbWFuZHMu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAgIChB
UEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OnVwZGF0ZVBhbmVsIGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9y
U3RhdHVzVXBkYXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVu
dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OndrV2ViQXV0aGVu
dGljYXRpb25QYW5lbFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQ6OnVwZGF0ZVBhbmVsIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25GbGFncy5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25Q
YW5lbEZsYWdzLmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9u
QWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0
b3I6OnRyeURvd25ncmFkZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L2ZpZG8vVTJmQXV0aGVudGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlUyZkF1dGhlbnRp
Y2F0b3I6Omlzc3VlU2lnbkNvbW1hbmQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE5LTEwLTE4ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBJbXBsZW1lbnQgQXV0aGVudGljYXRvckNhbmNl
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBkZGQ2ZTYy
MzU0OTEwYjZiMjY4YjRmOWIzNTY2NGVlYTIxZThiY2VhLi5kOTdkMzkxZGU4ZDhiMzUwZWVlZTJl
ZmM0NGY2N2MwZTY5MzNhYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaApAQCAtMzksNyArMzksNyBAQCBPQkpDX0NMQVNTIFVJVmlld0NvbnRyb2xsZXI7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0jaW5jbHVkZSAiV2ViQXV0aGVudGljYXRp
b25QYW5lbEZsYWdzLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25GbGFncy5oIgogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCmluZGV4
IDViNmE5YzdhNjM5NmE3Zjg4NjI0YWQ5NGJhYWExOWZhODRkOTFkOGEuLjU1NWI1NjE5ZmQ4MjVj
ZGM1YmJjMDQ1MGI3ODk4Mzc2NjJlZDI5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaApA
QCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKIG5hbWVzcGFjZSBXZWJL
aXQgeworZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblN0YXR1cyA6IGJvb2w7CiBlbnVtIGNs
YXNzIFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IDogYm9vbDsKIH0KIApAQCAtMzgsNiArMzksNyBA
QCBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50KCkgPSBkZWZhdWx0OwogCisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVBhbmVsKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25TdGF0dXMpIGNv
bnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzUGFuZWwoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdGlvblJlc3VsdCkgY29uc3QgeyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggY2Iw
MTExYTE3M2Q5ZTZjNTc0MjAzYzFjODExMzY0MmU5ZjM2Yjc0Yi4uZGNjODA5ZTZhZGRjYTQ3MWIy
MzM5MGIxY2FmYzFlMmM1M2JjZGMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaApAQCAtMjcsNiArMjcs
NyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0
aW9uRmxhZ3MuaCIKICNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdWJs
aWNLZXlDcmVkZW50aWFsRGF0YS5oPgpAQCAtNDUsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVz
cG9uZFJlY2VpdmVkKFJlc3BvbmQmJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZG93bmdy
YWRlKEF1dGhlbnRpY2F0b3IqIGlkLCBSZWY8QXV0aGVudGljYXRvcj4mJiBkb3duZ3JhZGVkQXV0
aGVudGljYXRvcikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgYXV0aGVudGljYXRvclN0YXR1
c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMpID0gMDsKICAgICB9OwogCiAgICAgdmly
dHVhbCB+QXV0aGVudGljYXRvcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmNwcAppbmRleCBkMDMyODgwOTk1NzIwNzM4YzM5YzBmNGIyNzZhNjc0MWZhOGEyNGU0
Li5jYTg5NDc4NjU3ZmQyOTVlOTg5MTZhOWIwMTk4NjkzZDA2ODlkYzUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBAIC0yNDMsNiArMjQzLDEyIEBAIHZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OmRvd25ncmFkZShBdXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRp
Y2F0b3I+JiYgZG93CiAgICAgYXV0aGVudGljYXRvckFkZGVkKFdURk1vdmUoZG93bmdyYWRlZEF1
dGhlbnRpY2F0b3IpKTsKIH0KIAordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0aGVudGlj
YXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMgc3RhdHVzKQoreworICAg
IGlmIChhdXRvICpwYW5lbCA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsLmdldCgpKQorICAg
ICAgICBwYW5lbC0+Y2xpZW50KCkudXBkYXRlUGFuZWwoc3RhdHVzKTsKK30KKwogVW5pcXVlUmVm
PEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3Jl
YXRlU2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHRyYW5zcG9ydCwgQXV0
aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikgY29uc3QKIHsK
ICAgICByZXR1cm4gQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OmNyZWF0ZSh0cmFuc3Bv
cnQsIG9ic2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCmluZGV4IDUwMjYy
Njc4YTBhODVhNGRiYTI3MDk5ZmUxNTgzYTYxNjNhOWViMDMuLjQ5NGE0NGRjMWQwYzE4MjdkMGVj
NWRjMDI0MWQwYzlmMGZiMmFiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaApA
QCAtNzcsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIC8vIEF1dGhlbnRpY2F0b3I6Ok9ic2VydmVy
CiAgICAgdm9pZCByZXNwb25kUmVjZWl2ZWQoUmVzcG9uZCYmKSBmaW5hbDsKICAgICB2b2lkIGRv
d25ncmFkZShBdXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRl
ZEF1dGhlbnRpY2F0b3IpIGZpbmFsOworICAgIHZvaWQgYXV0aGVudGljYXRvclN0YXR1c1VwZGF0
ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMpIGZpbmFsOwogCiAgICAgLy8gT3ZlcnJpZGVuIGJ5
IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci4KICAgICB2aXJ0dWFsIFVuaXF1ZVJlZjxBdXRoZW50
aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3JlYXRlU2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNh
dG9yVHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQuaAppbmRleCBjOWM4NTU4NWUzYzkxMmVkNDI5NDM5YzQ0MzUzMjg4ODJjN2MyMzdiLi4z
YjBjODkxNmRjMDkyMTA3NTg0ZGQ3MGJhMDEwMjQ5MDU3NDc0Y2M2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC0zOSw3ICsz
OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50IDogcHVibGljIEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+IHsKK2NsYXNz
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQgZmluYWwgOiBwdWJsaWMgQVBJOjpXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViQXV0aGVudGlj
YXRpb25QYW5lbENsaWVudD4gewogcHVibGljOgogICAgIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqLCBpZCA8X1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbERlbGVnYXRlPik7CiAKQEAgLTQ3LDEyICs0NywxNCBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgLy8gQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50CisgICAgdm9pZCB1
cGRhdGVQYW5lbChXZWJBdXRoZW50aWNhdGlvblN0YXR1cykgY29uc3QgZmluYWw7CiAgICAgdm9p
ZCBkaXNtaXNzUGFuZWwoV2ViQXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IGZpbmFsOwogCiAg
ICAgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqbV9wYW5lbDsKICAgICBXZWFrT2JqQ1B0cjxp
ZCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IG1fZGVsZWdhdGU7CiAKICAg
ICBzdHJ1Y3QgeworICAgICAgICBib29sIHBhbmVsVXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5l
bCA6IDE7CiAgICAgICAgIGJvb2wgcGFuZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdp
dGhSZXN1bHQgOiAxOwogICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0KaW5kZXggYzE4
NGU1ODEwZGJlMGY5ZTc3ZWEwM2VjNzIzY2U3NWI5NTY3OGMwNC4uM2E0MDMwM2E2ZGU3NjNjZGYw
YTJlNzI3MDY4YTgxYzJiZjk3YThkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9X
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoV0VCX0FVVEhOKQogCi0jaW1wb3J0ICJXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3Mu
aCIKKyNpbXBvcnQgIldlYkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCIKICNpbXBvcnQgIl9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zNyw2ICszNyw3
IEBAIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQoX1dLV2ViQXV0aGVudGljYXRpb25QCiAgICAgOiBtX3BhbmVsKHBhbmVsKQogICAgICwg
bV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKIHsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5wYW5lbFVwZGF0
ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihwYW5lbDp1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOildOwogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLnBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGFuZWw6ZGlzbWlzc1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OildOwogfQogCkBAIC00NSw2ICs0NiwyOCBA
QCBSZXRhaW5QdHI8aWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBXZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OgogICAgIHJldHVybiBtX2RlbGVnYXRlLmdldCgpOwog
fQogCitzdGF0aWMgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZSB3a1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGUoV2ViQXV0aGVudGljYXRpb25TdGF0dXMgc3RhdHVzKQoreworICAg
IGlmIChzdGF0dXMgPT0gV2ViQXV0aGVudGljYXRpb25TdGF0dXM6Ok11bHRpcGxlTkZDVGFnc1By
ZXNlbnQpCisgICAgICAgIHJldHVybiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTXVs
dGlwbGVORkNUYWdzUHJlc2VudDsKKyAgICBpZiAoc3RhdHVzID09IFdlYkF1dGhlbnRpY2F0aW9u
U3RhdHVzOjpOb0NyZWRlbnRpYWxzRm91bmQpCisgICAgICAgIHJldHVybiBfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTXVsdGlw
bGVORkNUYWdzUHJlc2VudDsKK30KKwordm9pZCBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50
Ojp1cGRhdGVQYW5lbChXZWJBdXRoZW50aWNhdGlvblN0YXR1cyBzdGF0dXMpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX2RlbGVnYXRlTWV0aG9kcy5wYW5lbFVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX2RlbGVnYXRlLmdl
dCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0
ZSBwYW5lbDptX3BhbmVsIHVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6d2tXZWJBdXRoZW50
aWNhdGlvblBhbmVsVXBkYXRlKHN0YXR1cyldOworfQorCiBzdGF0aWMgX1dLV2ViQXV0aGVudGlj
YXRpb25SZXN1bHQgd2tXZWJBdXRoZW50aWNhdGlvblJlc3VsdChXZWJBdXRoZW50aWNhdGlvblJl
c3VsdCByZXN1bHQpCiB7CiAgICAgc3dpdGNoIChyZXN1bHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uRmxh
Z3MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0aW9uRmxhZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDExNmQ0YjYxYjgxMzU2MzZmMzQzYzRlNzFm
YTc1MmZjM2VjZjcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25GbGFncy5oCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQgOiB1aW50OF90IHsKKyAgICBVbmF2YWlsYWJsZSwKKyAgICBQcmVzZW50ZWQsCisgICAg
RGlkTm90UHJlc2VudAorfTsKKworZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblJlc3VsdCA6
IGJvb2wgeworICAgIFN1Y2NlZWRlZCwKKyAgICBGYWlsZWQKK307CisKK2VudW0gY2xhc3MgV2Vi
QXV0aGVudGljYXRpb25TdGF0dXMgOiBib29sIHsKKyAgICBNdWx0aXBsZU5GQ1RhZ3NQcmVzZW50
LAorICAgIE5vQ3JlZGVudGlhbHNGb3VuZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dGlvblBhbmVsRmxhZ3MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQxNDZiMjBm
MTZhY2Y0ZWExZTFiZDg1ZjZiNDU1NDcxOTEyZGFmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaAorKysgL2Rldi9udWxsCkBAIC0x
LDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJf
QVVUSE4pCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQgOiB1aW50OF90IHsKLSAgICBVbmF2YWlsYWJsZSwKLSAgICBQcmVzZW50
ZWQsCi0gICAgRGlkTm90UHJlc2VudAotfTsKLQotZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlv
blJlc3VsdCA6IGJvb2wgewotICAgIFN1Y2NlZWRlZCwKLSAgICBGYWlsZWQKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0aW9uUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAppbmRleCA5Nzg2MDU0ZTBmMDA5
NzQ4N2Q5Y2RjNjQ4ZDRmODIwMjMyN2FlM2M0Li45OWFlMGZiNzI1NmU2ZjI3Mzk3YTM2YzhkMTIy
MWEyODNjZjZiZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0
RGF0YS5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAogI2luY2x1
ZGUgIkFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKLSNpbmNsdWRlICJXZWJBdXRoZW50aWNh
dGlvblBhbmVsRmxhZ3MuaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvbkZsYWdzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDZkZjhjYTc0
ZjNjZDAyMjY0N2JhYTI4YjBmMjJiZDJiOTdlNmIyZGEuLmE2ZDNiOTE5MDI2NTU2NTM3NTg0ODE5
ZWVmZWNlYjEwNmU0YmNiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9jYWxTZXJ2aWNlLmgiCi0jaW5jbHVk
ZSAiV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGlj
YXRpb25GbGFncy5oIgogI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKaW5kZXgg
YWNlNGMwYzczZjA0ZmMzMWY3MzE0OTQ3YjY1ZWJmYTUyZDY1NzZkMi4uNzU0Y2VkYjllYTUzNzRk
OWNmY2M0M2ZlZDRhNjZjZmU3N2M1OTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVu
dGljYXRvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJlc3BvbnNlQ29udmVy
dGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9VMmZDb21tYW5kQ29uc3RydWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCkBAIC05NCw2
ICs5NSw4IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0
ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OF90CiAgICAgICAgIGF1dG8gZXJyb3IgPSBn
ZXRSZXNwb25zZUNvZGUoZGF0YSk7CiAgICAgICAgIGlmIChlcnJvciAhPSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUiAmJiB0cnlEb3duZ3JhZGUoKSkKICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyck5vQ3JlZGVudGlhbHMgJiYgb2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIG9i
c2VydmVyKCktPmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3Rh
dHVzOjpOb0NyZWRlbnRpYWxzRm91bmQpOwogICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRp
b25EYXRhIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVycm9y
LiBFcnJvciBjb2RlOiAiLCBzdGF0aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTA0LDYgKzEwNyw4IEBAIGJvb2wgQ3RhcEF1dGhlbnRpY2F0
b3I6OnRyeURvd25ncmFkZSgpCiB7CiAgICAgaWYgKG1faW5mby52ZXJzaW9ucygpLmZpbmQoUHJv
dG9jb2xWZXJzaW9uOjprVTJmKSA9PSBtX2luZm8udmVyc2lvbnMoKS5lbmQoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICghaXNDb252ZXJ0aWJsZVRvVTJmU2lnbkNvbW1hbmQoV1RG
OjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9w
dGlvbnMpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghb2JzZXJ2ZXIoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZBdXRoZW50aWNhdG9yLmNw
cAppbmRleCBhYjQ2NTM2MmQzYjY2MWQ5MDA4NmQ1ZjljYTNkMjFlZmQ0Yjg3MTVlLi43OTM2YzVi
MmVjMmFiNWZlNjAyZTBkMjI4MjYyYzc1MTcyNGU5MmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkF1dGhlbnRpY2F0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJm
QXV0aGVudGljYXRvci5jcHAKQEAgLTk5LDYgKzk5LDggQEAgdm9pZCBVMmZBdXRoZW50aWNhdG9y
Ojppc3N1ZVNpZ25Db21tYW5kKHNpemVfdCBpbmRleCkKIHsKICAgICBhdXRvJiByZXF1ZXN0T3B0
aW9ucyA9IFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ocmVxdWVz
dERhdGEoKS5vcHRpb25zKTsKICAgICBpZiAoaW5kZXggPj0gcmVxdWVzdE9wdGlvbnMuYWxsb3dD
cmVkZW50aWFscy5zaXplKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gdGhpcy0+
b2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIG9ic2VydmVyLT5hdXRoZW50aWNhdG9yU3RhdHVzVXBk
YXRlZChXZWJBdXRoZW50aWNhdGlvblN0YXR1czo6Tm9DcmVkZW50aWFsc0ZvdW5kKTsKICAgICAg
ICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIk5vIGNy
ZWRlbnRpYWxzIGZyb20gdGhlIGFsbG93Q3JlZGVudGlhbHMgbGlzdCBpcyBmb3VuZCBpbiB0aGUg
YXV0aGVudGljYXRvci4iX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOGUxNTJkZTNi
YzM4ZjJlNDQ2MjNlZjY0OGZlNWYwY2I5Y2RiYjY5Li5jYTFiZjU0ZjBkNjg2MjlkZjk3NWI3OTk5
ODFjOTQwNjRkYWU2ZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEwNjAsNyArMTA2MCw3IEBACiAJCTU3QjgyNjQ4MjMwNTBDNTEw
MEI3MkVCMCAvKiBGaWRvU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTdCODI2NDYyMzA1MEM1MTAwQjcyRUIwIC8qIEZpZG9TZXJ2aWNlLmgg
Ki87IH07CiAJCTU3QjgyNjRDMjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCODI2NEEyMzA2
MDNDMTAwQjcyRUIwIC8qIE1vY2tOZmNTZXJ2aWNlLmggKi87IH07CiAJCTU3QkJFQTZEMjJCQzBC
RkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0JCRUE2QzIyQkMwQkZFMDAyNzM5OTUg
LyogU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oICovOyB9OwotCQk1N0M2MjQ0QjIzNDY3OUE0
MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcg
LyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggKi87IH07CisJCTU3QzYyNDRCMjM0Njc5
QTQwMDM4M0ZFNyAvKiBXZWJBdXRoZW50aWNhdGlvbkZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyog
V2ViQXV0aGVudGljYXRpb25GbGFncy5oICovOyB9OwogCQk1N0RDRUQ2RjIxNDJFRTYzMDAxNkI4
NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFRDZBMjE0MkVBRTIwMDE2Qjg0
NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovOyB9OwogCQk1N0RD
RUQ3MDIxNDJFRTY4MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdEQ0VENkMyMTQyRUFGOTAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTdEQ0VENzEyMTQyRUU2
QzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFRDZEMjE0
MkVBRkEwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2Vz
LmggKi87IH07CkBAIC0zNTQ4LDcgKzM1NDgsNyBAQAogCQk1N0I4RTNENTIzNTU4NjRBMDBENUM1
RDEgLyogRmlkb0F1dGhlbnRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlkb0F1dGhlbnRpY2F0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdCOEUzRDYyMzU1ODY0QTAwRDVD
NUQxIC8qIEZpZG9BdXRoZW50aWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpZG9BdXRo
ZW50aWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdCQkVBNkMyMkJD
MEJGRTAwMjczOTk1IC8qIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZs
YWdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2Vi
QXV0aGVudGljYXRpb25GbGFncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoZW50aWNhdGlvbkZs
YWdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFRDZBMjE0MkVBRTIwMDE2
Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
N0RDRUQ2QjIxNDJFQUUyMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTU3RENFRDZD
MjE0MkVBRjkwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAg
LTcwNzksNyArNzA3OSw3IEBACiAJCQkJNTdEQ0VEODQyMTQ3MzYzQTAwMTZCODQ3IC8qIEF1dGhl
bnRpY2F0b3JNYW5hZ2VyLmggKi8sCiAJCQkJNTdEQ0VEOTkyMTQ4OUY0RDAwMTZCODQ3IC8qIEF1
dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcCAqLywKIAkJCQk1N0RDRUQ4QTIxNDg1MzEz
MDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCAqLywKLQkJCQk1N0M2
MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggKi8s
CisJCQkJNTdDNjI0NEEyMzQ2NzlBNDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uRmxhZ3Mu
aCAqLywKIAkJCQk1N0RDRURBNjIxNDlGOURBMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRpb25S
ZXF1ZXN0RGF0YS5oICovLAogCQkJCTU3NjA4Mjk2MjAyQkQ4QkEwMDExNjY3OCAvKiBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgKi8sCiAJCQkJNTc2MDgyOTUyMDJCRDhCQTAw
MTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggKi8sCkBAIC05ODUw
LDggKzk4NTAsOCBAQAogCQkJCTFBRjRDRUYwMThCQzQ4MTgwMEJDMkQzNCAvKiBWaXNpdGVkTGlu
a1RhYmxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RTdEM0QxOEMxNTE0OTAw
NUE3MDJBIC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNFREExMkUzMTUyQ0QxQjMwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRD
bGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3QzYyNDRCMjM0Njc5QTQwMDM4M0ZFNyAvKiBX
ZWJBdXRoZW50aWNhdGlvbkZsYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzdGRjc4NTIzNDZF
Q0FBMDA0RURGQjkgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNTdDNjI0NEIyMzQ2NzlBNDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxGbGFncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQjIyMTRDNjA0QzAwMTZCODQ3IC8q
IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENF
RDZGMjE0MkVFNjMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQjMyMTRDNjA1MzAwMTZCODQ3IC8qIFdlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MzYzYTFhMWYzOGNkMDcx
NTg3ZTc4ZmM1MjcyMjIxYWFhZDMxNmI4Li5iYWEzNGMwOTRkZmZlZTE3ODQ0NDdiODdkY2YyZjQ3
YmJkYmZjMDYwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTAtMTggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFdhcm4gdXNlcnMgd2hlbiBubyBjcmVk
ZW50aWFscyBhcmUgZm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzE0NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU5MzExMjM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBuZXcgdGVz
dHMgZm9yIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgtW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsRGVsZWdhdGUgcGFuZWw6dXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDpdKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNh
bmNlbC5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMu
aHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sOiBBZGRlZC4K
KwogMjAxOS0xMC0xOCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXZWJBdXRobl0gSW1wbGVtZW50IEF1dGhlbnRpY2F0b3JDYW5jZWwKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMTQ4ODdiNzZhYzYyYjRmMmM5YTJiZDFkZmZkZjQzNjI1YjZiNmQ2Yy4u
YjgwZTgyNDQwZWRlNWFhNzNhYTJhODgzNTVjM2U5ZTcxNjJmMzdmOCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM0MSw2ICszNDEsOCBAQAogCQk1NzY2M0RFQzIzNEYxRjkzMDBFODVFMDkg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2NjNERUIyMzRGMUY4
MDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sICov
OyB9OwogCQk1NzY2M0RGMzIzNTdFNDg5MDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjYzREYyMjM1N0U0NUQwMEU4NUUwOSAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgKi87IH07CiAJCTU3
NjlDNTBCMUQ5QjAwMDIwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjlDNTBBMUQ5QjAw
MDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLzsgfTsKKwkJNTc3NDU0
RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3NzQ1NENGMjM1OUIzMzgwMDhFMUVENyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCAqLzsgfTsKKwkJ
NTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NzQ1NEQxMjM1OUJBRDUwMDhFMUVENyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMuaHRtbCAqLzsg
fTsKIAkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzc0QUE2NzIx
RkJCRjc4MDBBRjJBMUIgLyogVGVzdFNPQXV0aG9yaXphdGlvbi5tbSAqLzsgfTsKIAkJNTc3OEQw
NTYyMjExMEEyNjAwODk5RTNCIC8qIExvYWRXZWJBcmNoaXZlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3OEQwNTUyMjExMEEyNjAwODk5RTNCIC8q
IExvYWRXZWJBcmNoaXZlLm1tICovOyB9OwogCQk1NzhDQkQ2NzIwNEZCMkM4MDA4M0I5RjIgLyog
TG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzhDQkQ2NjIwNEZCMkM3MDA4M0I5RjIgLyogTG9jYWxB
dXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi87IH07CkBAIC0xMTIyLDcgKzExMjQsNiBAQAogCQkJ
ZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9
IDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk0MTY2MUM2NjIzNTVFODVFMDBEMzNDMjcgLyogZ2V0VXNl
ck1lZGlhLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkYy
MTgxMDIxQTAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQkxQTlFNTJDOTEzRTY1RUY0MDA2OTE3RjUgLyogMTgtY2hhcmFjdGVycy5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTU1QTgxODAwMjE4MTAyMjEwMDA0QTM5QSAvKiA0MDB4NDAw
LWdyZWVuLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTEyNTQsNiArMTI1NSw3IEBACiAJ
CQkJMjZGNTJFQjMxODI4OEYyNDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldp
dGhIaWdoQWNjdXJhY3kuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkwN0UxRjZBMjFG
RkM0NEZBMDA5NkM3RUMgLyogZ2V0RGlzcGxheU1lZGlhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJNDY3QzU2NTMyMUI1RUQxMzAwNTc1MTZEIC8qIEdldFNlc3Npb25Db29raWUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk0MTY2MUM2NjIzNTVFODVFMDBEMzNDMjcgLyog
Z2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMDc0
OTk0NDIxRUE1MDM0QjAwMERBNDRFIC8qIGdldFVzZXJNZWRpYS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTA3NDk5NDQyMUVBNTAzNEIwMDBEQTQ1RSAvKiBnZXRVc2VyTWVkaWFBdWRp
b1ZpZGVvQ2FwdHVyZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NkEwOTVCMUVE
OEE2RTYwMEQ0QUE1NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKQEAgLTE0NDUsOCArMTQ0NywxMCBAQAogCQkJCTJFQkQ5RDBBMjEzNDczMEQwMDJEQTc1
OCAvKiB2aWRlby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNENTc3Nzk5MjExQ0Uw
RTQwMDFCMzcxRSAvKiB3ZWItYXVkaW8tb25seS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTU3NjYzREYzMjM1N0U0ODkwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTc3NDU0
RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NjYzREVD
MjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RFQTIzNEVBNjZEMDBFODVFMDkg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCisJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFDMkI4MTg2
MUM4OTI1OUQwMEE1NTI5RiAvKiB3ZWJmb250Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJNTE3MTRFQjQxQ0Y4Qzc4QzAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0x
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xODY5LDYgKzE4NzMsOCBAQAogCQk1NzY2
M0RFQjIzNEYxRjgwMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY2M0RGMjIzNTdFNDVEMDBF
ODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNz
ZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlX
cmFwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Nzc0NTRDRjIzNTlCMzM4MDA4
RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRp
YWxzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1Nzc0NTREMTIzNTlCQUQ1MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNy
ZWRlbnRpYWxzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Nzc0QUE2NzIx
RkJCRjc4MDBBRjJBMUIgLyogVGVzdFNPQXV0aG9yaXphdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFRlc3RTT0F1dGhvcml6YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3NzhEMDU1MjIxMTBBMjYwMDg5OUUzQiAvKiBMb2FkV2ViQXJjaGl2ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IExvYWRXZWJBcmNoaXZlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzhDQkQ2NjIwNEZCMkM3MDA4M0I5RjIgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3Jr
OyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Mb2NhbEF1dGhlbnRpY2F0aW9uLmZy
YW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CkBAIC0zMzkxLDggKzMzOTcsMTAgQEAK
IAkJCQlDRDU3Nzc5QjIxMUNFNkNFMDAxQjM3MUUgLyogdmlkZW8td2l0aC1hdWRpby1hbmQtd2Vi
LWF1ZGlvLmh0bWwgKi8sCiAJCQkJQ0Q1Nzc3OTgyMTFDREU4RjAwMUIzNzFFIC8qIHdlYi1hdWRp
by1vbmx5Lmh0bWwgKi8sCiAJCQkJNTc2NjNERjIyMzU3RTQ1RDAwRTg1RTA5IC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCAqLywKKwkJCQk1Nzc0NTRD
RjIzNTlCMzM4MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
LW5vLWNyZWRlbnRpYWxzLmh0bWwgKi8sCiAJCQkJNTc2NjNERUIyMzRGMUY4MDAwRTg1RTA5IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sICovLAogCQkJCTU3NjYz
REU5MjM0RUE2MEIwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1u
ZmMuaHRtbCAqLywKKwkJCQk1Nzc0NTREMTIzNTlCQUQ1MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgKi8sCiAJCQkJNTdD
NjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
Lmh0bWwgKi8sCiAJCQkJNTE3MTRFQjIxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxs
SURCQ2xlYW51cC0xLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdl
YlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCkBAIC0zNzU2LDggKzM3NjQsOCBAQAog
CQkJCTI2RjUyRUFFMTgyODhDMDQwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdldEN1cnJlbnRQb3Np
dGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLywKIAkJCQkyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0
MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8sCiAJCQkJMjZGNTJFQjExODI4
OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3ku
aHRtbCAqLywKLQkJCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlhLmh0
bWwgKi8sCiAJCQkJNDE2NjFDNjUyMzU1RDk4QjAwRDMzQzI3IC8qIGdldFVzZXJNZWRpYS13ZWJh
dWRpby5odG1sICovLAorCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2VyTWVk
aWEuaHRtbCAqLywKIAkJCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQzUgLyogZ2V0VXNlck1lZGlh
QXVkaW9WaWRlb0NhcHR1cmUuaHRtbCAqLywKIAkJCQlCQ0JEMzcyRTEyNUFCQkU2MDBEMkMyOUYg
LyogaWNvbi5wbmcgKi8sCiAJCQkJQ0UzNTI0RjUxQjE0MkJCQjAwMjhBN0M1IC8qIGlucHV0LWZv
Y3VzLWJsdXIuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRl
eCBlN2JiNjA2NWRiMGNkYThiNGM5ZjgxYjNmMWRmZTg3MTE4ZjY5ZWFkLi43MDc2ZTczOTk4OGFl
OGYzZjgyZGJhYTE0YjlmZGEzNTk0YWViZmUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tCkBAIC00Miw2ICs0Miw3IEBACiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlv
blBhbmVsUmFuID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsRmFp
bGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsU3VjY2VkZWQg
PSBmYWxzZTsKK3N0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRl
bnRpYWxzRm91bmQgPSBmYWxzZTsKIHN0YXRpYyBSZXRhaW5QdHI8X1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbD4gZ1BhbmVsOwogCiBAaW50ZXJmYWNlIFRlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
RGVsZWdhdGUgOiBOU09iamVjdCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPgpA
QCAtNDksNiArNTAsMTUgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxEZWxlZ2F0ZQogCistICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsICopcGFuZWwgdXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbFVwZGF0ZSl1cGRhdGUKK3sKKyAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7
CisgICAgaWYgKHVwZGF0ZSA9PSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVk
ZW50aWFsc0ZvdW5kKSB7CisgICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0Ny
ZWRlbnRpYWxzRm91bmQgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCiAtICh2
b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgZGlzbWlzc1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OihfV0tXZWJBdXRoZW50aWNhdGlvblJlc3VsdCly
ZXN1bHQKIHsKICAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7CkBAIC00NTAsNiArNDYwLDQwIEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDYW5jZWwpCiAgICAgRVhQRUNU
X0ZBTFNFKHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxTdWNjZWRlZCk7CiB9CiAKK1RFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQoreworICAg
IHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFV0aWw6OnJ1bigm
d2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNh
dGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kKTsKK30KKworVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBQYW5lbFUyZkN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCit7CisgICAgcmVz
ZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJm
LW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxG
ZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJB
dXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRt
bAppbmRleCBjZjEyNDgxMWQ0OWI1ZDg2ZjIzMTNkZDFiYmJkMzMwMGQxMWZmMzk3Li4yY2I2NTk2
YjE2N2U3ZjJlNmQ2MjJjM2U0MWQwY2I3ZmYyNTUyMTFjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWhpZC1jYW5jZWwuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbApA
QCAtMSw3ICsxLDcgQEAKIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgogPHNjcmlwdD4K
ICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dl
YkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBleHBlY3RDYW5jZWw6IHRydWUg
fSB9KTsKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBoaWQ6IHsgZXhwZWN0Q2FuY2VsOiB0cnVlIH0g
fSk7CiAgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1
cygpOyB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRl
bnRpYWxzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFkYjIzNWNkMzE1N2RhMTM2ZTRkZmRhZjNlOWViYzk1ZDhlODg1YzMKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sCkBAIC0wLDAg
KzEsMTYgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBj
b25zdCB0ZXN0Q3RhcEVyck5vQ3JlZGVudGlhbHNSZXNwb25zZUJhc2U2NCA9ICJMZz09IjsKKyAg
ICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1
dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGhpZDogeyBz
dGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFsaWNpb3VzLXBheWxv
YWQiLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEN0YXBFcnJOb0NyZWRlbnRpYWxzUmVzcG9uc2VCYXNl
NjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1
dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBw
dWJsaWNLZXk6IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpCisg
ICAgICAgIH0KKyAgICB9OworCisgICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25z
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24taGlkLmh0bWwKaW5kZXggNjU1MTBkMTY5Y2ZiZjM4YWZhODlkYzRhZmRmZDg5OTVh
MDVmMTQ1NS4uMzI4Zjg0NmZkNzNhY2Y0YWU1ZDk1MzYxYjQ0M2E1ZDViOWYwZmU3ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1s
CkBAIC03LDcgKzcsNyBAQAogICAgICAgICAiNC9GMFZCN0RsVVZNMDlJSFBteGUxTXpIVXdSb0NS
WmJDQUlnR0tvdjZ4b0F4Mk1FZjYvNnFOczhPdXR6aFAyQyIgKwogICAgICAgICAiUW9KMUw3RmU2
NEc5dUJjPSI7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgaW50ZXJuYWxz
LnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgcGF5bG9hZEJh
c2U2NDogW3Rlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5h
bHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6
IHRydWUsIGhpZDogeyBwYXlsb2FkQmFzZTY0OiBbdGVzdEFzc2VydGlvbk1lc3NhZ2VCYXNlNjRd
IH0gfSk7CiAgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5m
b2N1cygpOyB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sCmluZGV4IDk0NWI2YjY1OTQyYjU2ZWQxYjJkZGNlOTZj
MzU2MmFlNDFlYjMwZmQuLmQwNWMzOWRmNmI4YzljNGVjZWFiNTNkZDlkYjFkZjQxNTVmODhmNWIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1u
ZmMuaHRtbApAQCAtMTEsNyArMTEsNyBAQAogICAgICAgICAiNC9GMFZCN0RsVVZNMDlJSFBteGUx
TXpIVXdSb0NSWmJDQUlnR0tvdjZ4b0F4Mk1FZjYvNnFOczhPdXR6aFAyQyIgKwogICAgICAgICAi
UW9KMUw3RmU2NEc5dUJlUUFBPT0iOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAg
ICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgbmZj
OiB7IHBheWxvYWRCYXNlNjQ6IFt0ZXN0TmZjQ3RhcFZlcnNpb25CYXNlNjQsIHRlc3RHZXRJbmZv
UmVzcG9uc2VBcGR1QmFzZTY0LCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUFwZHVCYXNlNjRdIH0gfSk7
CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9u
KHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgbmZjOiB7IHBheWxvYWRCYXNlNjQ6IFt0ZXN0TmZjQ3Rh
cFZlcnNpb25CYXNlNjQsIHRlc3RHZXRJbmZvUmVzcG9uc2VBcGR1QmFzZTY0LCB0ZXN0QXNzZXJ0
aW9uTWVzc2FnZUFwZHVCYXNlNjRdIH0gfSk7CiAgICAgICAgIGludGVybmFscy53aXRoVXNlckdl
c3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1u
by1jcmVkZW50aWFscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlN2UyMTg2NThkMjEzMTNjN2NlY2ViMzA5
NGMwZDY2M2UzNDEwY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1j
cmVkZW50aWFscy5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
aW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNw
b25zZUJhc2U2NCA9ICJhb0E9IjsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVu
dEZhaWx1cmU6IHRydWUsIGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIs
IGVycm9yOiAibWFsaWNpb3VzLXBheWxvYWQiLCBpc1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDog
W3Rlc3RVMmZBcGR1V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0XSB9IH0pOworICAgICAgICBp
bnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQuZm9jdXMoKTsgfSk7CisgICAg
fQorCisgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAg
ICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIGFsbG93Q3Jl
ZGVudGlhbHM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgaWQ6IG5ldyBVaW50OEFycmF5KDE2KSB9
XQorICAgICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0
aW9ucyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwODY3ODE2MWI3YjZhOWMxZDg5ZTQzZGY4ZTEyZmM1
ZmI5YTAyNWE2Li5kYzJmZmMyMGNmZmEyYzRhYTI5MzVkOWFmMmNmY2M5YTVkZDFkYzAwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMTAtMTggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFdhcm4gdXNlcnMgd2hlbiBubyBjcmVkZW50
aWFscyBhcmUgZm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzE0NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU5MzExMjM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBuZXcgdGVzdHMg
Zm9yIEN0YXBBdXRoZW50aWNhdG9yOjp0cnlEb3duZ3JhZGUgZW5oYW5jZW1lbnQuCisKKyAgICAg
ICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUt
aGlkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWw6CisKIDIwMTktMTAt
MTggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0
aG5dIEltcGxlbWVudCBBdXRoZW50aWNhdG9yQ2FuY2VsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlk
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IDYxYjNhZmFmMWYyY2ViYjY4MDJmMzlhM2QzNWE0MWNiMDFmYzZmODQuLjU0YmI1MDg2N2M5MjNj
ZGE2ZmE5N2I3YWNlN2UwMDRhYzg5NWNmMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0zLDUg
KzMsNiBAQCBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdGltZW91dCBp
biBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2dldF1dIHdpdGggbWFsaWNpb3VzIHBheWxvYWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9y
LiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCB1bnN1cHBvcnRlZCBv
cHRpb25zIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgZmFpbGVkIGluIGEg
bW9jayBoaWQgYXV0aGVudGljYXRvci4gCi1QQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dl
dF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgc3VjY2VlZGVkIGFuZCB0aGVuIFUyRiBm
YWlsZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIAorUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGF1dGhlbnRpY2F0b3IgZG93bmdyYWRlIGZhaWxlZCBpbiBh
IG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIDIgCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgc3VjY2VlZGVkIGFuZCB0aGVuIFUy
RiBmYWlsZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWls
dXJlLWhpZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy5odG1sCmluZGV4IDAwMjJlYTkw
YjA3NmFmZTJjNDY0YmY3NmYyNWQ0OWI1M2NhNDgxYjkuLjY4ZTNjZTIwYTc1MThlZTUyZDJlMTg5
ZmE3ZTI1YTI0YzU4OTVjMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0
LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKQEAgLTY0LDEzICs2NCwyNCBAQAogICAgIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CiAgICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKLSAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6IGFzY2lpVG9VaW50OEFy
cmF5KCIxMjM0NTYiKSwKLSAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7IGFwcGlkOiAiIiB9
CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IikK
ICAgICAgICAgICAgIH0KICAgICAgICAgfTsKIAogICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykKICAgICAgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1
cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6
ICJtYWxpY2lvdXMtcGF5bG9hZCIsIGNhbkRvd25ncmFkZTogdHJ1ZSwgcGF5bG9hZEJhc2U2NDog
W3Rlc3RDdGFwRXJySW52YWxpZENyZWRlbnRpYWxSZXNwb25zZUJhc2U2NF0gfSB9KTsKLSAgICAg
ICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJOb3RTdXBwb3J0ZWRFcnJvciIsIG5hdmlnYXRv
ci5jcmVkZW50aWFscy5nZXQob3B0aW9ucyksICJDYW5ub3QgY29udmVydCB0aGUgcmVxdWVzdCB0
byBVMkYgY29tbWFuZC4iKTsKLSAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0g
d2l0aCBhdXRoZW50aWNhdG9yIGRvd25ncmFkZSBzdWNjZWVkZWQgYW5kIHRoZW4gVTJGIGZhaWxl
ZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIDIiKTsKKyAgICAgICAgcmV0dXJuIHByb21p
c2VSZWplY3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9w
dGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogMzQiKTsKKyAgICB9
LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhdXRoZW50aWNhdG9yIGRvd25n
cmFkZSBmYWlsZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIik7CisKKyAgICBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAg
ICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IikKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0
YWdlOiAibXNnIiwgZXJyb3I6ICJtYWxpY2lvdXMtcGF5bG9hZCIsIGNhbkRvd25ncmFkZTogdHJ1
ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDdGFwRXJySW52YWxpZENyZWRlbnRpYWxSZXNwb25zZUJh
c2U2NCwgdGVzdFUyZkFwZHVOb0Vycm9yT25seVJlc3BvbnNlQmFzZTY0XSB9IH0pOworICAgICAg
ICByZXR1cm4gcHJvbWlzZVJlamVjdHModCwgIlVua25vd25FcnJvciIsIG5hdmlnYXRvci5jcmVk
ZW50aWFscy5nZXQob3B0aW9ucyksICJVbmtub3duIGludGVybmFsIGVycm9yLiBFcnJvciBjb2Rl
OiAzNCIpOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGF1dGhl
bnRpY2F0b3IgZG93bmdyYWRlIHN1Y2NlZWRlZCBhbmQgdGhlbiBVMkYgZmFpbGVkIGluIGEgbW9j
ayBoaWQgYXV0aGVudGljYXRvci4iKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381334</attachid>
            <date>2019-10-18 14:48:49 -0700</date>
            <delta_ts>2019-10-18 16:25:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203147-20191018144848.patch</filename>
            <type>text/plain</type>
            <size>49971</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4NmVhYWE0ODEyYjZlNDg2
MTk5NTlmN2VmNTAxZjcwODk0ZWViZWMuLmE2M2Y5NWVhYjAyYzVmNjg3OTYwNzVlNjUxODA0ZmMx
YWI1ZjRmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTktMTAtMTggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFdhcm4gdXNl
cnMgd2hlbiBubyBjcmVkZW50aWFscyBhcmUgZm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzE0NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU5MzExMjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCByZXR1cm5zIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0Ny
ZWRlbnRpYWxzRm91bmQgdG8gY2xpZW50IHZpYQorICAgICAgICAtW19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxEZWxlZ2F0ZSBwYW5lbDp1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOl0gd2hl
biBlaXRoZXIKKyAgICAgICAgQ3RhcEF1dGhlbnRpY2F0b3IgcmVjZWl2ZXMga0N0YXAyRXJyTm9D
cmVkZW50aWFscyBvciBVMmZBdXRoZW50aWNhdG9yIGV4aGF1c3RzIHRoZQorICAgICAgICBhbGxv
dyBsaXN0LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBlbmhhbmNlcyBDdGFwQXV0aGVudGlj
YXRvcjo6dHJ5RG93bmdyYWRlIHRvIGNoZWNrIGlmIHRoZSBDVEFQIGNvbW1hbmQKKyAgICAgICAg
Y2FuIGJlIGNvbnZlcnRlZCB0byBVMkYgY29tbWFuZHMgdG8gZW5zdXJlIGtDdGFwMkVyck5vQ3Jl
ZGVudGlhbHMgaXMgcmV0dXJuZWQgaWYgaXQKKyAgICAgICAgaXMgdGhlIGNhc2UuIE90aGVyd2lz
ZSwgYWZ0ZXIgZG93bmdyYWRpbmcsIFUyZkF1dGhlbnRpY2F0b3Igd2lsbCByZXR1cm4gTm90U3Vw
cG9ydGVkRXJyb3IKKyAgICAgICAgZ2l2ZW4gaXQgY2FuJ3QgY29udmVydCB0aGUgY29tbWFuZHMu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lmg6CisgICAgICAgIChB
UEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OnVwZGF0ZVBhbmVsIGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9y
U3RhdHVzVXBkYXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVu
dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6V2Vi
QXV0aGVudGljYXRpb25QYW5lbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OndrV2ViQXV0aGVu
dGljYXRpb25QYW5lbFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDbGllbnQ6OnVwZGF0ZVBhbmVsIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25GbGFncy5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25Q
YW5lbEZsYWdzLmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9u
QWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0
b3I6OnRyeURvd25ncmFkZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L2ZpZG8vVTJmQXV0aGVudGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlUyZkF1dGhlbnRp
Y2F0b3I6Omlzc3VlU2lnbkNvbW1hbmQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE5LTEwLTE4ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBJbXBsZW1lbnQgQXV0aGVudGljYXRvckNhbmNl
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBkZGQ2ZTYy
MzU0OTEwYjZiMjY4YjRmOWIzNTY2NGVlYTIxZThiY2VhLi5kOTdkMzkxZGU4ZDhiMzUwZWVlZTJl
ZmM0NGY2N2MwZTY5MzNhYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaApAQCAtMzksNyArMzksNyBAQCBPQkpDX0NMQVNTIFVJVmlld0NvbnRyb2xsZXI7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0jaW5jbHVkZSAiV2ViQXV0aGVudGljYXRp
b25QYW5lbEZsYWdzLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25GbGFncy5oIgogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCmluZGV4
IDViNmE5YzdhNjM5NmE3Zjg4NjI0YWQ5NGJhYWExOWZhODRkOTFkOGEuLjU1NWI1NjE5ZmQ4MjVj
ZGM1YmJjMDQ1MGI3ODk4Mzc2NjJlZDI5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaApA
QCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKIG5hbWVzcGFjZSBXZWJL
aXQgeworZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblN0YXR1cyA6IGJvb2w7CiBlbnVtIGNs
YXNzIFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IDogYm9vbDsKIH0KIApAQCAtMzgsNiArMzksNyBA
QCBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50KCkgPSBkZWZhdWx0OwogCisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVBhbmVsKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25TdGF0dXMpIGNv
bnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzUGFuZWwoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdGlvblJlc3VsdCkgY29uc3QgeyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggY2Iw
MTExYTE3M2Q5ZTZjNTc0MjAzYzFjODExMzY0MmU5ZjM2Yjc0Yi4uZGNjODA5ZTZhZGRjYTQ3MWIy
MzM5MGIxY2FmYzFlMmM1M2JjZGMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaApAQCAtMjcsNiArMjcs
NyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0
aW9uRmxhZ3MuaCIKICNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdWJs
aWNLZXlDcmVkZW50aWFsRGF0YS5oPgpAQCAtNDUsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVz
cG9uZFJlY2VpdmVkKFJlc3BvbmQmJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZG93bmdy
YWRlKEF1dGhlbnRpY2F0b3IqIGlkLCBSZWY8QXV0aGVudGljYXRvcj4mJiBkb3duZ3JhZGVkQXV0
aGVudGljYXRvcikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgYXV0aGVudGljYXRvclN0YXR1
c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMpID0gMDsKICAgICB9OwogCiAgICAgdmly
dHVhbCB+QXV0aGVudGljYXRvcigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmNwcAppbmRleCBkMDMyODgwOTk1NzIwNzM4YzM5YzBmNGIyNzZhNjc0MWZhOGEyNGU0
Li5jYTg5NDc4NjU3ZmQyOTVlOTg5MTZhOWIwMTk4NjkzZDA2ODlkYzUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBAIC0yNDMsNiArMjQzLDEyIEBAIHZvaWQgQXV0aGVu
dGljYXRvck1hbmFnZXI6OmRvd25ncmFkZShBdXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRp
Y2F0b3I+JiYgZG93CiAgICAgYXV0aGVudGljYXRvckFkZGVkKFdURk1vdmUoZG93bmdyYWRlZEF1
dGhlbnRpY2F0b3IpKTsKIH0KIAordm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6YXV0aGVudGlj
YXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMgc3RhdHVzKQoreworICAg
IGlmIChhdXRvICpwYW5lbCA9IG1fcGVuZGluZ1JlcXVlc3REYXRhLnBhbmVsLmdldCgpKQorICAg
ICAgICBwYW5lbC0+Y2xpZW50KCkudXBkYXRlUGFuZWwoc3RhdHVzKTsKK30KKwogVW5pcXVlUmVm
PEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3Jl
YXRlU2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHRyYW5zcG9ydCwgQXV0
aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikgY29uc3QKIHsK
ICAgICByZXR1cm4gQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OmNyZWF0ZSh0cmFuc3Bv
cnQsIG9ic2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCmluZGV4IDUwMjYy
Njc4YTBhODVhNGRiYTI3MDk5ZmUxNTgzYTYxNjNhOWViMDMuLjQ5NGE0NGRjMWQwYzE4MjdkMGVj
NWRjMDI0MWQwYzlmMGZiMmFiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaApA
QCAtNzcsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIC8vIEF1dGhlbnRpY2F0b3I6Ok9ic2VydmVy
CiAgICAgdm9pZCByZXNwb25kUmVjZWl2ZWQoUmVzcG9uZCYmKSBmaW5hbDsKICAgICB2b2lkIGRv
d25ncmFkZShBdXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRl
ZEF1dGhlbnRpY2F0b3IpIGZpbmFsOworICAgIHZvaWQgYXV0aGVudGljYXRvclN0YXR1c1VwZGF0
ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0dXMpIGZpbmFsOwogCiAgICAgLy8gT3ZlcnJpZGVuIGJ5
IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci4KICAgICB2aXJ0dWFsIFVuaXF1ZVJlZjxBdXRoZW50
aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3JlYXRlU2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNh
dG9yVHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQuaAppbmRleCBjOWM4NTU4NWUzYzkxMmVkNDI5NDM5YzQ0MzUzMjg4ODJjN2MyMzdiLi4z
YjBjODkxNmRjMDkyMTA3NTg0ZGQ3MGJhMDEwMjQ5MDU3NDc0Y2M2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBAIC0zOSw3ICsz
OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJBdXRoZW50aWNhdGlvblBh
bmVsQ2xpZW50IDogcHVibGljIEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ+IHsKK2NsYXNz
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQgZmluYWwgOiBwdWJsaWMgQVBJOjpXZWJBdXRo
ZW50aWNhdGlvblBhbmVsQ2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViQXV0aGVudGlj
YXRpb25QYW5lbENsaWVudD4gewogcHVibGljOgogICAgIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqLCBpZCA8X1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbERlbGVnYXRlPik7CiAKQEAgLTQ3LDEyICs0NywxNCBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgLy8gQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50CisgICAgdm9pZCB1
cGRhdGVQYW5lbChXZWJBdXRoZW50aWNhdGlvblN0YXR1cykgY29uc3QgZmluYWw7CiAgICAgdm9p
ZCBkaXNtaXNzUGFuZWwoV2ViQXV0aGVudGljYXRpb25SZXN1bHQpIGNvbnN0IGZpbmFsOwogCiAg
ICAgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqbV9wYW5lbDsKICAgICBXZWFrT2JqQ1B0cjxp
ZCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IG1fZGVsZWdhdGU7CiAKICAg
ICBzdHJ1Y3QgeworICAgICAgICBib29sIHBhbmVsVXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5l
bCA6IDE7CiAgICAgICAgIGJvb2wgcGFuZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdp
dGhSZXN1bHQgOiAxOwogICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRpb25QYW5lbENsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0KaW5kZXggYzE4
NGU1ODEwZGJlMGY5ZTc3ZWEwM2VjNzIzY2U3NWI5NTY3OGMwNC4uM2E0MDMwM2E2ZGU3NjNjZGYw
YTJlNzI3MDY4YTgxYzJiZjk3YThkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9X
ZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1tCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoV0VCX0FVVEhOKQogCi0jaW1wb3J0ICJXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3Mu
aCIKKyNpbXBvcnQgIldlYkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCIKICNpbXBvcnQgIl9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zNyw2ICszNyw3
IEBAIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxD
bGllbnQoX1dLV2ViQXV0aGVudGljYXRpb25QCiAgICAgOiBtX3BhbmVsKHBhbmVsKQogICAgICwg
bV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKIHsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5wYW5lbFVwZGF0
ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihwYW5lbDp1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOildOwogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLnBhbmVsRGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGFuZWw6ZGlzbWlzc1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OildOwogfQogCkBAIC00NSw2ICs0NiwyOCBA
QCBSZXRhaW5QdHI8aWQgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gPiBXZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OgogICAgIHJldHVybiBtX2RlbGVnYXRlLmdldCgpOwog
fQogCitzdGF0aWMgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZSB3a1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGUoV2ViQXV0aGVudGljYXRpb25TdGF0dXMgc3RhdHVzKQoreworICAg
IGlmIChzdGF0dXMgPT0gV2ViQXV0aGVudGljYXRpb25TdGF0dXM6Ok11bHRpcGxlTkZDVGFnc1By
ZXNlbnQpCisgICAgICAgIHJldHVybiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTXVs
dGlwbGVORkNUYWdzUHJlc2VudDsKKyAgICBpZiAoc3RhdHVzID09IFdlYkF1dGhlbnRpY2F0aW9u
U3RhdHVzOjpOb0NyZWRlbnRpYWxzRm91bmQpCisgICAgICAgIHJldHVybiBfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTXVsdGlw
bGVORkNUYWdzUHJlc2VudDsKK30KKwordm9pZCBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50
Ojp1cGRhdGVQYW5lbChXZWJBdXRoZW50aWNhdGlvblN0YXR1cyBzdGF0dXMpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX2RlbGVnYXRlTWV0aG9kcy5wYW5lbFVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBtX2RlbGVnYXRlLmdl
dCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0
ZSBwYW5lbDptX3BhbmVsIHVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6d2tXZWJBdXRoZW50
aWNhdGlvblBhbmVsVXBkYXRlKHN0YXR1cyldOworfQorCiBzdGF0aWMgX1dLV2ViQXV0aGVudGlj
YXRpb25SZXN1bHQgd2tXZWJBdXRoZW50aWNhdGlvblJlc3VsdChXZWJBdXRoZW50aWNhdGlvblJl
c3VsdCByZXN1bHQpCiB7CiAgICAgc3dpdGNoIChyZXN1bHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uRmxh
Z3MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0aW9uRmxhZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDExNmQ0YjYxYjgxMzU2MzZmMzQzYzRlNzFm
YTc1MmZjM2VjZjcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25GbGFncy5oCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQgOiB1aW50OF90IHsKKyAgICBVbmF2YWlsYWJsZSwKKyAgICBQcmVzZW50ZWQsCisgICAg
RGlkTm90UHJlc2VudAorfTsKKworZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlvblJlc3VsdCA6
IGJvb2wgeworICAgIFN1Y2NlZWRlZCwKKyAgICBGYWlsZWQKK307CisKK2VudW0gY2xhc3MgV2Vi
QXV0aGVudGljYXRpb25TdGF0dXMgOiBib29sIHsKKyAgICBNdWx0aXBsZU5GQ1RhZ3NQcmVzZW50
LAorICAgIE5vQ3JlZGVudGlhbHNGb3VuZAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dGlvblBhbmVsRmxhZ3MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQxNDZiMjBm
MTZhY2Y0ZWExZTFiZDg1ZjZiNDU1NDcxOTEyZGFmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaAorKysgL2Rldi9udWxsCkBAIC0x
LDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJf
QVVUSE4pCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQgOiB1aW50OF90IHsKLSAgICBVbmF2YWlsYWJsZSwKLSAgICBQcmVzZW50
ZWQsCi0gICAgRGlkTm90UHJlc2VudAotfTsKLQotZW51bSBjbGFzcyBXZWJBdXRoZW50aWNhdGlv
blJlc3VsdCA6IGJvb2wgewotICAgIFN1Y2NlZWRlZCwKLSAgICBGYWlsZWQKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0aW9uUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAppbmRleCA5Nzg2MDU0ZTBmMDA5
NzQ4N2Q5Y2RjNjQ4ZDRmODIwMjMyN2FlM2M0Li45OWFlMGZiNzI1NmU2ZjI3Mzk3YTM2YzhkMTIy
MWEyODNjZjZiZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0
RGF0YS5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAogI2luY2x1
ZGUgIkFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCIKLSNpbmNsdWRlICJXZWJBdXRoZW50aWNh
dGlvblBhbmVsRmxhZ3MuaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvbkZsYWdzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDZkZjhjYTc0
ZjNjZDAyMjY0N2JhYTI4YjBmMjJiZDJiOTdlNmIyZGEuLmE2ZDNiOTE5MDI2NTU2NTM3NTg0ODE5
ZWVmZWNlYjEwNmU0YmNiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9jYWxTZXJ2aWNlLmgiCi0jaW5jbHVk
ZSAiV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGlj
YXRpb25GbGFncy5oIgogI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKaW5kZXgg
YWNlNGMwYzczZjA0ZmMzMWY3MzE0OTQ3YjY1ZWJmYTUyZDY1NzZkMi4uNzU0Y2VkYjllYTUzNzRk
OWNmY2M0M2ZlZDRhNjZjZmU3N2M1OTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVu
dGljYXRvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RldmljZVJlc3BvbnNlQ29udmVy
dGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9VMmZDb21tYW5kQ29uc3RydWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCkBAIC05NCw2
ICs5NSw4IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0
ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OF90CiAgICAgICAgIGF1dG8gZXJyb3IgPSBn
ZXRSZXNwb25zZUNvZGUoZGF0YSk7CiAgICAgICAgIGlmIChlcnJvciAhPSBDdGFwRGV2aWNlUmVz
cG9uc2VDb2RlOjprQ3RhcDJFcnJJbnZhbGlkQ0JPUiAmJiB0cnlEb3duZ3JhZGUoKSkKICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNv
ZGU6OmtDdGFwMkVyck5vQ3JlZGVudGlhbHMgJiYgb2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIG9i
c2VydmVyKCktPmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRhdGVkKFdlYkF1dGhlbnRpY2F0aW9uU3Rh
dHVzOjpOb0NyZWRlbnRpYWxzRm91bmQpOwogICAgICAgICByZWNlaXZlUmVzcG9uZChFeGNlcHRp
b25EYXRhIHsgVW5rbm93bkVycm9yLCBtYWtlU3RyaW5nKCJVbmtub3duIGludGVybmFsIGVycm9y
LiBFcnJvciBjb2RlOiAiLCBzdGF0aWNfY2FzdDx1aW50OF90PihlcnJvcikpIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTA0LDYgKzEwNyw4IEBAIGJvb2wgQ3RhcEF1dGhlbnRpY2F0
b3I6OnRyeURvd25ncmFkZSgpCiB7CiAgICAgaWYgKG1faW5mby52ZXJzaW9ucygpLmZpbmQoUHJv
dG9jb2xWZXJzaW9uOjprVTJmKSA9PSBtX2luZm8udmVyc2lvbnMoKS5lbmQoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICghaXNDb252ZXJ0aWJsZVRvVTJmU2lnbkNvbW1hbmQoV1RG
OjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9w
dGlvbnMpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghb2JzZXJ2ZXIoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkF1dGhlbnRpY2F0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZBdXRoZW50aWNhdG9yLmNw
cAppbmRleCBhYjQ2NTM2MmQzYjY2MWQ5MDA4NmQ1ZjljYTNkMjFlZmQ0Yjg3MTVlLi43OTM2YzVi
MmVjMmFiNWZlNjAyZTBkMjI4MjYyYzc1MTcyNGU5MmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkF1dGhlbnRpY2F0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJm
QXV0aGVudGljYXRvci5jcHAKQEAgLTk5LDYgKzk5LDggQEAgdm9pZCBVMmZBdXRoZW50aWNhdG9y
Ojppc3N1ZVNpZ25Db21tYW5kKHNpemVfdCBpbmRleCkKIHsKICAgICBhdXRvJiByZXF1ZXN0T3B0
aW9ucyA9IFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ocmVxdWVz
dERhdGEoKS5vcHRpb25zKTsKICAgICBpZiAoaW5kZXggPj0gcmVxdWVzdE9wdGlvbnMuYWxsb3dD
cmVkZW50aWFscy5zaXplKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gdGhpcy0+
b2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIG9ic2VydmVyLT5hdXRoZW50aWNhdG9yU3RhdHVzVXBk
YXRlZChXZWJBdXRoZW50aWNhdGlvblN0YXR1czo6Tm9DcmVkZW50aWFsc0ZvdW5kKTsKICAgICAg
ICAgcmVjZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIk5vIGNy
ZWRlbnRpYWxzIGZyb20gdGhlIGFsbG93Q3JlZGVudGlhbHMgbGlzdCBpcyBmb3VuZCBpbiB0aGUg
YXV0aGVudGljYXRvci4iX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOGUxNTJkZTNi
YzM4ZjJlNDQ2MjNlZjY0OGZlNWYwY2I5Y2RiYjY5Li5jYTFiZjU0ZjBkNjg2MjlkZjk3NWI3OTk5
ODFjOTQwNjRkYWU2ZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEwNjAsNyArMTA2MCw3IEBACiAJCTU3QjgyNjQ4MjMwNTBDNTEw
MEI3MkVCMCAvKiBGaWRvU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTdCODI2NDYyMzA1MEM1MTAwQjcyRUIwIC8qIEZpZG9TZXJ2aWNlLmgg
Ki87IH07CiAJCTU3QjgyNjRDMjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdCODI2NEEyMzA2
MDNDMTAwQjcyRUIwIC8qIE1vY2tOZmNTZXJ2aWNlLmggKi87IH07CiAJCTU3QkJFQTZEMjJCQzBC
RkUwMDI3Mzk5NSAvKiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0JCRUE2QzIyQkMwQkZFMDAyNzM5OTUg
LyogU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oICovOyB9OwotCQk1N0M2MjQ0QjIzNDY3OUE0
MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcg
LyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggKi87IH07CisJCTU3QzYyNDRCMjM0Njc5
QTQwMDM4M0ZFNyAvKiBXZWJBdXRoZW50aWNhdGlvbkZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyog
V2ViQXV0aGVudGljYXRpb25GbGFncy5oICovOyB9OwogCQk1N0RDRUQ2RjIxNDJFRTYzMDAxNkI4
NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFRDZBMjE0MkVBRTIwMDE2Qjg0
NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovOyB9OwogCQk1N0RD
RUQ3MDIxNDJFRTY4MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTdEQ0VENkMyMTQyRUFGOTAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTdEQ0VENzEyMTQyRUU2
QzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFRDZEMjE0
MkVBRkEwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2Vz
LmggKi87IH07CkBAIC0zNTQ4LDcgKzM1NDgsNyBAQAogCQk1N0I4RTNENTIzNTU4NjRBMDBENUM1
RDEgLyogRmlkb0F1dGhlbnRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlkb0F1dGhlbnRpY2F0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdCOEUzRDYyMzU1ODY0QTAwRDVD
NUQxIC8qIEZpZG9BdXRoZW50aWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpZG9BdXRo
ZW50aWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdCQkVBNkMyMkJD
MEJGRTAwMjczOTk1IC8qIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZs
YWdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2Vi
QXV0aGVudGljYXRpb25GbGFncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoZW50aWNhdGlvbkZs
YWdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFRDZBMjE0MkVBRTIwMDE2
Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
N0RDRUQ2QjIxNDJFQUUyMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTU3RENFRDZD
MjE0MkVBRjkwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAg
LTcwNzksNyArNzA3OSw3IEBACiAJCQkJNTdEQ0VEODQyMTQ3MzYzQTAwMTZCODQ3IC8qIEF1dGhl
bnRpY2F0b3JNYW5hZ2VyLmggKi8sCiAJCQkJNTdEQ0VEOTkyMTQ4OUY0RDAwMTZCODQ3IC8qIEF1
dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcCAqLywKIAkJCQk1N0RDRUQ4QTIxNDg1MzEz
MDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCAqLywKLQkJCQk1N0M2
MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmggKi8s
CisJCQkJNTdDNjI0NEEyMzQ2NzlBNDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uRmxhZ3Mu
aCAqLywKIAkJCQk1N0RDRURBNjIxNDlGOURBMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRpb25S
ZXF1ZXN0RGF0YS5oICovLAogCQkJCTU3NjA4Mjk2MjAyQkQ4QkEwMDExNjY3OCAvKiBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgKi8sCiAJCQkJNTc2MDgyOTUyMDJCRDhCQTAw
MTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggKi8sCkBAIC05ODUw
LDggKzk4NTAsOCBAQAogCQkJCTFBRjRDRUYwMThCQzQ4MTgwMEJDMkQzNCAvKiBWaXNpdGVkTGlu
a1RhYmxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RTdEM0QxOEMxNTE0OTAw
NUE3MDJBIC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNFREExMkUzMTUyQ0QxQjMwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRD
bGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3QzYyNDRCMjM0Njc5QTQwMDM4M0ZFNyAvKiBX
ZWJBdXRoZW50aWNhdGlvbkZsYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzdGRjc4NTIzNDZF
Q0FBMDA0RURGQjkgLyogV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNTdDNjI0NEIyMzQ2NzlBNDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxGbGFncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQjIyMTRDNjA0QzAwMTZCODQ3IC8q
IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENF
RDZGMjE0MkVFNjMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQjMyMTRDNjA1MzAwMTZCODQ3IC8qIFdlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MzYzYTFhMWYzOGNkMDcx
NTg3ZTc4ZmM1MjcyMjIxYWFhZDMxNmI4Li5iYWEzNGMwOTRkZmZlZTE3ODQ0NDdiODdkY2YyZjQ3
YmJkYmZjMDYwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTAtMTggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFdhcm4gdXNlcnMgd2hlbiBubyBjcmVk
ZW50aWFscyBhcmUgZm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzE0NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU5MzExMjM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBuZXcgdGVz
dHMgZm9yIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgtW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsRGVsZWdhdGUgcGFuZWw6dXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDpdKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNh
bmNlbC5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMu
aHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sOiBBZGRlZC4K
KwogMjAxOS0xMC0xOCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXZWJBdXRobl0gSW1wbGVtZW50IEF1dGhlbnRpY2F0b3JDYW5jZWwKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMTQ4ODdiNzZhYzYyYjRmMmM5YTJiZDFkZmZkZjQzNjI1YjZiNmQ2Yy4u
YjgwZTgyNDQwZWRlNWFhNzNhYTJhODgzNTVjM2U5ZTcxNjJmMzdmOCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM0MSw2ICszNDEsOCBAQAogCQk1NzY2M0RFQzIzNEYxRjkzMDBFODVFMDkg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2NjNERUIyMzRGMUY4
MDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sICov
OyB9OwogCQk1NzY2M0RGMzIzNTdFNDg5MDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjYzREYyMjM1N0U0NUQwMEU4NUUwOSAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgKi87IH07CiAJCTU3
NjlDNTBCMUQ5QjAwMDIwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjlDNTBBMUQ5QjAw
MDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLzsgfTsKKwkJNTc3NDU0
RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3NzQ1NENGMjM1OUIzMzgwMDhFMUVENyAvKiB3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCAqLzsgfTsKKwkJ
NTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NzQ1NEQxMjM1OUJBRDUwMDhFMUVENyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMuaHRtbCAqLzsg
fTsKIAkJNTc3NEFBNjgyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzc0QUE2NzIx
RkJCRjc4MDBBRjJBMUIgLyogVGVzdFNPQXV0aG9yaXphdGlvbi5tbSAqLzsgfTsKIAkJNTc3OEQw
NTYyMjExMEEyNjAwODk5RTNCIC8qIExvYWRXZWJBcmNoaXZlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3OEQwNTUyMjExMEEyNjAwODk5RTNCIC8q
IExvYWRXZWJBcmNoaXZlLm1tICovOyB9OwogCQk1NzhDQkQ2NzIwNEZCMkM4MDA4M0I5RjIgLyog
TG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzhDQkQ2NjIwNEZCMkM3MDA4M0I5RjIgLyogTG9jYWxB
dXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi87IH07CkBAIC0xMTIyLDcgKzExMjQsNiBAQAogCQkJ
ZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9
IDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk0MTY2MUM2NjIzNTVFODVFMDBEMzNDMjcgLyogZ2V0VXNl
ck1lZGlhLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTVBODE3RkYy
MTgxMDIxQTAwMDRBMzlBIC8qIDEwMHgxMDAtcmVkLnRnYSBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQkxQTlFNTJDOTEzRTY1RUY0MDA2OTE3RjUgLyogMTgtY2hhcmFjdGVycy5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTU1QTgxODAwMjE4MTAyMjEwMDA0QTM5QSAvKiA0MDB4NDAw
LWdyZWVuLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTEyNTQsNiArMTI1NSw3IEBACiAJ
CQkJMjZGNTJFQjMxODI4OEYyNDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldp
dGhIaWdoQWNjdXJhY3kuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkwN0UxRjZBMjFG
RkM0NEZBMDA5NkM3RUMgLyogZ2V0RGlzcGxheU1lZGlhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJNDY3QzU2NTMyMUI1RUQxMzAwNTc1MTZEIC8qIEdldFNlc3Npb25Db29raWUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk0MTY2MUM2NjIzNTVFODVFMDBEMzNDMjcgLyog
Z2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMDc0
OTk0NDIxRUE1MDM0QjAwMERBNDRFIC8qIGdldFVzZXJNZWRpYS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTA3NDk5NDQyMUVBNTAzNEIwMDBEQTQ1RSAvKiBnZXRVc2VyTWVkaWFBdWRp
b1ZpZGVvQ2FwdHVyZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NkEwOTVCMUVE
OEE2RTYwMEQ0QUE1NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKQEAgLTE0NDUsOCArMTQ0NywxMCBAQAogCQkJCTJFQkQ5RDBBMjEzNDczMEQwMDJEQTc1
OCAvKiB2aWRlby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNENTc3Nzk5MjExQ0Uw
RTQwMDFCMzcxRSAvKiB3ZWItYXVkaW8tb25seS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTU3NjYzREYzMjM1N0U0ODkwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTc3NDU0
RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NjYzREVD
MjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RFQTIzNEVBNjZEMDBFODVFMDkg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCisJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFDMkI4MTg2
MUM4OTI1OUQwMEE1NTI5RiAvKiB3ZWJmb250Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJNTE3MTRFQjQxQ0Y4Qzc4QzAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0x
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xODY5LDYgKzE4NzMsOCBAQAogCQk1NzY2
M0RFQjIzNEYxRjgwMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY2M0RGMjIzNTdFNDVEMDBF
ODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNz
ZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlX
cmFwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Nzc0NTRDRjIzNTlCMzM4MDA4
RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRp
YWxzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1Nzc0NTREMTIzNTlCQUQ1MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNy
ZWRlbnRpYWxzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Nzc0QUE2NzIx
RkJCRjc4MDBBRjJBMUIgLyogVGVzdFNPQXV0aG9yaXphdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFRlc3RTT0F1dGhvcml6YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3NzhEMDU1MjIxMTBBMjYwMDg5OUUzQiAvKiBMb2FkV2ViQXJjaGl2ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IExvYWRXZWJBcmNoaXZlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzhDQkQ2NjIwNEZCMkM3MDA4M0I5RjIgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3Jr
OyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Mb2NhbEF1dGhlbnRpY2F0aW9uLmZy
YW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CkBAIC0zMzkxLDggKzMzOTcsMTAgQEAK
IAkJCQlDRDU3Nzc5QjIxMUNFNkNFMDAxQjM3MUUgLyogdmlkZW8td2l0aC1hdWRpby1hbmQtd2Vi
LWF1ZGlvLmh0bWwgKi8sCiAJCQkJQ0Q1Nzc3OTgyMTFDREU4RjAwMUIzNzFFIC8qIHdlYi1hdWRp
by1vbmx5Lmh0bWwgKi8sCiAJCQkJNTc2NjNERjIyMzU3RTQ1RDAwRTg1RTA5IC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCAqLywKKwkJCQk1Nzc0NTRD
RjIzNTlCMzM4MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
LW5vLWNyZWRlbnRpYWxzLmh0bWwgKi8sCiAJCQkJNTc2NjNERUIyMzRGMUY4MDAwRTg1RTA5IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sICovLAogCQkJCTU3NjYz
REU5MjM0RUE2MEIwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1u
ZmMuaHRtbCAqLywKKwkJCQk1Nzc0NTREMTIzNTlCQUQ1MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgKi8sCiAJCQkJNTdD
NjI0NEYyMzQ2QzFFQzAwMzgzRkU3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
Lmh0bWwgKi8sCiAJCQkJNTE3MTRFQjIxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxs
SURCQ2xlYW51cC0xLmh0bWwgKi8sCiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdl
YlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCkBAIC0zNzU2LDggKzM3NjQsOCBAQAog
CQkJCTI2RjUyRUFFMTgyODhDMDQwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbkdldEN1cnJlbnRQb3Np
dGlvbldpdGhIaWdoQWNjdXJhY3kuaHRtbCAqLywKIAkJCQkyNkY1MkVCMDE4Mjg4RjBGMDAyM0Q0
MTIgLyogZ2VvbG9jYXRpb25XYXRjaFBvc2l0aW9uLmh0bWwgKi8sCiAJCQkJMjZGNTJFQjExODI4
OEYwRjAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbldpdGhIaWdoQWNjdXJhY3ku
aHRtbCAqLywKLQkJCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlhLmh0
bWwgKi8sCiAJCQkJNDE2NjFDNjUyMzU1RDk4QjAwRDMzQzI3IC8qIGdldFVzZXJNZWRpYS13ZWJh
dWRpby5odG1sICovLAorCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNSAvKiBnZXRVc2VyTWVk
aWEuaHRtbCAqLywKIAkJCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQzUgLyogZ2V0VXNlck1lZGlh
QXVkaW9WaWRlb0NhcHR1cmUuaHRtbCAqLywKIAkJCQlCQ0JEMzcyRTEyNUFCQkU2MDBEMkMyOUYg
LyogaWNvbi5wbmcgKi8sCiAJCQkJQ0UzNTI0RjUxQjE0MkJCQjAwMjhBN0M1IC8qIGlucHV0LWZv
Y3VzLWJsdXIuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRl
eCBlN2JiNjA2NWRiMGNkYThiNGM5ZjgxYjNmMWRmZTg3MTE4ZjY5ZWFkLi42YmVlN2NhMmQ3ZDBj
NGJlMjcwNTk0ZGFjMTY4NmE0MTIyODg2ZmRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsLm1tCkBAIC00Miw2ICs0Miw3IEBACiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlv
blBhbmVsUmFuID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsRmFp
bGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsU3VjY2VkZWQg
PSBmYWxzZTsKK3N0YXRpYyBib29sIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRl
bnRpYWxzRm91bmQgPSBmYWxzZTsKIHN0YXRpYyBSZXRhaW5QdHI8X1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbD4gZ1BhbmVsOwogCiBAaW50ZXJmYWNlIFRlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
RGVsZWdhdGUgOiBOU09iamVjdCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPgpA
QCAtNDksNiArNTAsMTUgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxEZWxlZ2F0ZQogCistICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsICopcGFuZWwgdXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbFVwZGF0ZSl1cGRhdGUKK3sKKyAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7
CisgICAgaWYgKHVwZGF0ZSA9PSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVk
ZW50aWFsc0ZvdW5kKSB7CisgICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0Ny
ZWRlbnRpYWxzRm91bmQgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCiAtICh2
b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgZGlzbWlzc1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxXaXRoUmVzdWx0OihfV0tXZWJBdXRoZW50aWNhdGlvblJlc3VsdCly
ZXN1bHQKIHsKICAgICBBU1NFUlRfTkUocGFuZWwsIG5pbCk7CkBAIC02NCwxMyArNzQsMjIgQEAg
LSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIGRpc21pc3NX
ZWJBdXRoZW50aWNhdGlvblBhbmVsV2kKIAogQGVuZAogCitAaW50ZXJmYWNlIFRlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsRmFrZURlbGVnYXRlIDogTlNPYmplY3QgPF9XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsRmFrZURlbGVnYXRlCitAZW5kCisKIEBpbnRlcmZhY2UgVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
CiBAcHJvcGVydHkgYm9vbCBpc1JhY3k7CitAcHJvcGVydHkgYm9vbCBpc0Zha2U7CitAcHJvcGVy
dHkgYm9vbCBpc051bGw7CisKIC0gKGluc3RhbmNldHlwZSlpbml0OwogQGVuZAogCiBAaW1wbGVt
ZW50YXRpb24gVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIHsKLSAgICBSZXRh
aW5QdHI8VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4gX2RlbGVnYXRlOworICAg
IFJldGFpblB0cjxOU09iamVjdCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPj4g
X2RlbGVnYXRlOwogICAgIEJsb2NrUHRyPHZvaWQoX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFJl
c3VsdCk+IF9jYWxsYmFjazsKIH0KIApAQCAtODUsNyArMTA0LDEyIEBAIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDooX1dLV2Vi
QXV0aGVudGljCiB7CiAgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbiA9IHRydWU7CiAKLSAg
ICBfZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOworICAgIGlmICghX2lzTnVsbCkgeworICAgICAgICBpZiAoIV9pc0Zh
a2UpCisgICAgICAgICAgICBfZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBfZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWtlRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICB9CiAgICAgQVNTRVJUX05FKHBhbmVsLCBuaWwpOwog
ICAgIGdQYW5lbCA9IHBhbmVsOwogICAgIFtnUGFuZWwgc2V0RGVsZWdhdGU6X2RlbGVnYXRlLmdl
dCgpXTsKQEAgLTQ1MCw2ICs0NzQsMTEyIEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
UGFuZWxIaWRDYW5jZWwpCiAgICAgRVhQRUNUX0ZBTFNFKHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxT
dWNjZWRlZCk7CiB9CiAKK1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFw
Tm9DcmVkZW50aWFsc0ZvdW5kKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisK
KyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVS
TC5nZXQoKV1dOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7Cisg
ICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0Zv
dW5kKTsKK30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFUyZkN0YXBOb0Ny
ZWRlbnRpYWxzRm91bmQpCit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRl
c3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdl
dCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBV
dGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQp
OworfQorCitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQYW5lbEhpZFN1Y2Nlc3Mp
Cit7CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFtkZWxlZ2F0ZSBzZXRJc0Zha2U6dHJ1
ZV07CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwu
Z2V0KCldXTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4pOworICAg
IFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2VlZGVkISJdOworfQorCitURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQYW5lbEhpZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCit7
CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBl
cmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFtkZWxlZ2F0ZSBz
ZXRJc0Zha2U6dHJ1ZV07CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBVdGlsOjpydW4oJndlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxSYW4pOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiT3BlcmF0aW9uIHRpbWVkIG91
dC4iXTsKK30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRTdWNj
ZXNzKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbZGVsZWdhdGUgc2V0SXNOdWxs
OnRydWVdOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0
VVJMLmdldCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuKTsK
KyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEiXTsKK30KKworVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5k
KQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2Vi
QXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbZGVsZWdh
dGUgc2V0SXNOdWxsOnRydWVdOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUu
Z2V0KCldOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlv
blBhbmVsUmFuKTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIk9wZXJhdGlvbiB0aW1l
ZCBvdXQuIl07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwu
aHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sCmluZGV4IGNmMTI0ODExZDQ5YjVk
ODZmMjMxM2RkMWJiYmQzMzAwZDExZmYzOTcuLjJjYjY1OTZiMTY3ZTdmMmU2ZDYyMmMzZTQxZDBj
YjdmZjI1NTIxMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPGlucHV0
IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+CiA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7Ci0gICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1
cmF0aW9uKHsgaGlkOiB7IGV4cGVjdENhbmNlbDogdHJ1ZSB9IH0pOworICAgICAgICBpbnRlcm5h
bHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6
IHRydWUsIGhpZDogeyBleHBlY3RDYW5jZWw6IHRydWUgfSB9KTsKICAgICAgICAgaW50ZXJuYWxz
LndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBhNzA5MmJiZjUzMzll
ZTZhYjIzOTU2Njc1OWUyMDNiY2UzZDkyYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGlucHV0IHR5cGU9
InRleHQiIGlkPSJpbnB1dCI+Cis8c2NyaXB0PgorICAgIGNvbnN0IHRlc3RDdGFwRXJyTm9DcmVk
ZW50aWFsc1Jlc3BvbnNlQmFzZTY0ID0gIkxnPT0iOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0
YWdlOiAibXNnIiwgZXJyb3I6ICJtYWxpY2lvdXMtcGF5bG9hZCIsIHBheWxvYWRCYXNlNjQ6IFt0
ZXN0Q3RhcEVyck5vQ3JlZGVudGlhbHNSZXNwb25zZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50
ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAgIH0K
KworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAg
ICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICB0aW1lb3V0OiAx
MDAKKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9w
dGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNj
ZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAg
ICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7Cisg
ICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWhpZC5odG1sCmluZGV4IDY1NTEwZDE2OWNmYmYzOGFmYTg5ZGM0YWZkZmQ4
OTk1YTA1ZjE0NTUuLjMyOGY4NDZmZDczYWNmNGFlNWQ5NTM2MWI0NDNhNWQ1YjlmMGZlN2QgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQu
aHRtbApAQCAtNyw3ICs3LDcgQEAKICAgICAgICAgIjQvRjBWQjdEbFVWTTA5SUhQbXhlMU16SFV3
Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZxTnM4T3V0emhQMkMiICsKICAgICAgICAgIlFvSjFM
N0ZlNjRHOXVCYz0iOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIGludGVy
bmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHBheWxv
YWRCYXNlNjQ6IFt0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50
ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBzaWxlbnRGYWls
dXJlOiB0cnVlLCBoaWQ6IHsgcGF5bG9hZEJhc2U2NDogW3Rlc3RBc3NlcnRpb25NZXNzYWdlQmFz
ZTY0XSB9IH0pOwogICAgICAgICBpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5w
dXQuZm9jdXMoKTsgfSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbAppbmRleCA5NDViNmI2NTk0MmI1NmVkMWIyZGRj
ZTk2YzM1NjJhZTQxZWIzMGZkLi5kMDVjMzlkZjZiOGM5YzRlY2VhYjUzZGQ5ZGIxZGY0MTU1Zjg4
ZjViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbmZjLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICAgICAgIjQvRjBWQjdEbFVWTTA5SUhQ
bXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZxTnM4T3V0emhQMkMiICsKICAgICAg
ICAgIlFvSjFMN0ZlNjRHOXVCZVFBQT09IjsKICAgICBpZiAod2luZG93LmludGVybmFscykgewot
ICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7
IG5mYzogeyBwYXlsb2FkQmFzZTY0OiBbdGVzdE5mY0N0YXBWZXJzaW9uQmFzZTY0LCB0ZXN0R2V0
SW5mb1Jlc3BvbnNlQXBkdUJhc2U2NCwgdGVzdEFzc2VydGlvbk1lc3NhZ2VBcGR1QmFzZTY0XSB9
IH0pOworICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIG5mYzogeyBwYXlsb2FkQmFzZTY0OiBbdGVzdE5m
Y0N0YXBWZXJzaW9uQmFzZTY0LCB0ZXN0R2V0SW5mb1Jlc3BvbnNlQXBkdUJhc2U2NCwgdGVzdEFz
c2VydGlvbk1lc3NhZ2VBcGR1QmFzZTY0XSB9IH0pOwogICAgICAgICBpbnRlcm5hbHMud2l0aFVz
ZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQuZm9jdXMoKTsgfSk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11
MmYtbm8tY3JlZGVudGlhbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTdlMjE4NjU4ZDIxMzEzYzdjZWNl
YjMwOTRjMGQ2NjNlMzQxMGNjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYt
bm8tY3JlZGVudGlhbHMuaHRtbApAQCAtMCwwICsxLDE3IEBACis8aW5wdXQgdHlwZT0idGV4dCIg
aWQ9ImlucHV0Ij4KKzxzY3JpcHQ+CisgICAgY29uc3QgdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5
UmVzcG9uc2VCYXNlNjQgPSAiYW9BPSI7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBz
aWxlbnRGYWlsdXJlOiB0cnVlLCBoaWQ6IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJt
c2ciLCBlcnJvcjogIm1hbGljaW91cy1wYXlsb2FkIiwgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNl
NjQ6IFt0ZXN0VTJmQXBkdVdyb25nRGF0YU9ubHlSZXNwb25zZUJhc2U2NF0gfSB9KTsKKyAgICAg
ICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOwor
ICAgIH0KKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAg
ICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICBhbGxv
d0NyZWRlbnRpYWxzOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGlkOiBuZXcgVWludDhBcnJheSgx
NikgfV0KKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0
KG9wdGlvbnMpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDg2NzgxNjFiN2I2YTljMWQ4OWU0M2RmOGUx
MmZjNWZiOWEwMjVhNi4uZGMyZmZjMjBjZmZhMmM0YWEyOTM1ZDlhZjJjZmNjOWE1ZGQxZGMwMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTE4ICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBXYXJuIHVzZXJzIHdoZW4gbm8gY3Jl
ZGVudGlhbHMgYXJlIGZvdW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDMxNDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1OTMxMTIzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgbmV3IHRl
c3RzIGZvciBDdGFwQXV0aGVudGljYXRvcjo6dHJ5RG93bmdyYWRlIGVuaGFuY2VtZW50LgorCisg
ICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWls
dXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy5odG1sOgorCiAyMDE5
LTEwLTE4ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkF1dGhuXSBJbXBsZW1lbnQgQXV0aGVudGljYXRvckNhbmNlbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJl
LWhpZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCA2MWIzYWZhZjFmMmNlYmI2ODAyZjM5YTNkMzVhNDFjYjAxZmM2Zjg0Li41NGJiNTA4Njdj
OTIzY2RhNmZhOTdiN2FjZTdlMDA0YWM4OTVjZjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
Myw1ICszLDYgQEAgUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHRpbWVv
dXQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLgogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tnZXRdXSB3aXRoIG1hbGljaW91cyBwYXlsb2FkIGluIGEgbW9jayBoaWQgYXV0aGVudGlj
YXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggdW5zdXBwb3J0
ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGF1dGhlbnRpY2F0b3IgZG93bmdyYWRlIGZhaWxlZCBp
biBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAotUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tnZXRdXSB3aXRoIGF1dGhlbnRpY2F0b3IgZG93bmdyYWRlIHN1Y2NlZWRlZCBhbmQgdGhlbiBV
MkYgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiAKK1BBU1MgUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhdXRoZW50aWNhdG9yIGRvd25ncmFkZSBmYWlsZWQg
aW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFs
J3MgW1tnZXRdXSB3aXRoIGF1dGhlbnRpY2F0b3IgZG93bmdyYWRlIHN1Y2NlZWRlZCBhbmQgdGhl
biBVMkYgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQt
ZmFpbHVyZS1oaWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbAppbmRleCAwMDIy
ZWE5MGIwNzZhZmUyYzQ2NGJmNzZmMjVkNDliNTNjYTQ4MWI5Li42OGUzY2UyMGE3NTE4ZWU1MmQy
ZTE4OWZhN2UyNWEyNGM1ODk1YzBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWdldC1mYWlsdXJlLWhpZC5odHRwcy5odG1sCkBAIC02NCwxMyArNjQsMjQgQEAKICAgICBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICBjb25zdCBvcHRpb25zID0gewogICAgICAg
ICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAgICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWlu
dDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDog
IiIgfQorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1
NiIpCiAgICAgICAgICAgICB9CiAgICAgICAgIH07CiAKICAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCiAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVy
cm9yOiAibWFsaWNpb3VzLXBheWxvYWQiLCBjYW5Eb3duZ3JhZGU6IHRydWUsIHBheWxvYWRCYXNl
NjQ6IFt0ZXN0Q3RhcEVyckludmFsaWRDcmVkZW50aWFsUmVzcG9uc2VCYXNlNjRdIH0gfSk7Ci0g
ICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiTm90U3VwcG9ydGVkRXJyb3IiLCBuYXZp
Z2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiQ2Fubm90IGNvbnZlcnQgdGhlIHJlcXVl
c3QgdG8gVTJGIGNvbW1hbmQuIik7Ci0gICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dl
dF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgc3VjY2VlZGVkIGFuZCB0aGVuIFUyRiBm
YWlsZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAyIik7CisgICAgICAgIHJldHVybiBw
cm9taXNlUmVqZWN0cyh0LCAiVW5rbm93bkVycm9yIiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdl
dChvcHRpb25zKSwgIlVua25vd24gaW50ZXJuYWwgZXJyb3IuIEVycm9yIGNvZGU6IDM0Iik7Cisg
ICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRvciBk
b3duZ3JhZGUgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gMiIpOworCisgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlU
b1VpbnQ4QXJyYXkoIjEyMzQ1NiIpCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dl
YkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBz
dWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFsaWNpb3VzLXBheWxvYWQiLCBjYW5Eb3duZ3JhZGU6
IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcEVyckludmFsaWRDcmVkZW50aWFsUmVzcG9u
c2VCYXNlNjQsIHRlc3RVMmZBcGR1Tm9FcnJvck9ubHlSZXNwb25zZUJhc2U2NF0gfSB9KTsKKyAg
ICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQsICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3Iu
Y3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVW5rbm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3Ig
Y29kZTogMzQiKTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBh
dXRoZW50aWNhdG9yIGRvd25ncmFkZSBzdWNjZWVkZWQgYW5kIHRoZW4gVTJGIGZhaWxlZCBpbiBh
IG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CiA8L3NjcmlwdD4K
</data>
<flag name="review"
          id="397096"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381344</attachid>
            <date>2019-10-18 16:37:37 -0700</date>
            <delta_ts>2019-10-18 18:02:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-203147-20191018163736.patch</filename>
            <type>text/plain</type>
            <size>49941</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4NmVhYWE0ODEyYjZlNDg2
MTk5NTlmN2VmNTAxZjcwODk0ZWViZWMuLjIwZGQ2NjlkNTBiYjRlZmYzNTA1OTM0YTVkZDVhMzY0
YzQ2YjdlZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTktMTAtMTggIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFdhcm4gdXNl
cnMgd2hlbiBubyBjcmVkZW50aWFscyBhcmUgZm91bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzE0NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTU5MzExMjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJldHVybnMgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3Jl
ZGVudGlhbHNGb3VuZCB0byBjbGllbnQgdmlhCisgICAgICAgIC1bX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6XSB3aGVu
IGVpdGhlcgorICAgICAgICBDdGFwQXV0aGVudGljYXRvciByZWNlaXZlcyBrQ3RhcDJFcnJOb0Ny
ZWRlbnRpYWxzIG9yIFUyZkF1dGhlbnRpY2F0b3IgZXhoYXVzdHMgdGhlCisgICAgICAgIGFsbG93
IGxpc3QuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGVuaGFuY2VzIEN0YXBBdXRoZW50aWNh
dG9yOjp0cnlEb3duZ3JhZGUgdG8gY2hlY2sgaWYgdGhlIENUQVAgY29tbWFuZAorICAgICAgICBj
YW4gYmUgY29udmVydGVkIHRvIFUyRiBjb21tYW5kcyB0byBlbnN1cmUga0N0YXAyRXJyTm9DcmVk
ZW50aWFscyBpcyByZXR1cm5lZCBpZiBpdAorICAgICAgICBpcyB0aGUgY2FzZS4gT3RoZXJ3aXNl
LCBhZnRlciBkb3duZ3JhZGluZywgVTJmQXV0aGVudGljYXRvciB3aWxsIHJldHVybiBOb3RTdXBw
b3J0ZWRFcnJvcgorICAgICAgICBnaXZlbiBpdCBjYW4ndCBjb252ZXJ0IHRoZSBjb21tYW5kcy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaDoKKyAgICAgICAgKEFQ
STo6V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6dXBkYXRlUGFuZWwgY29uc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1hbmFnZXI6OmF1dGhlbnRpY2F0b3JT
dGF0dXNVcGRhdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRvck1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50OjpXZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6d2tXZWJBdXRoZW50
aWNhdGlvblBhbmVsVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbENsaWVudDo6dXBkYXRlUGFuZWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvbkZsYWdzLmg6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblBh
bmVsRmxhZ3MuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25B
ZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRv
cjo6dHJ5RG93bmdyYWRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Zmlkby9VMmZBdXRoZW50aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VTJmQXV0aGVudGlj
YXRvcjo6aXNzdWVTaWduQ29tbWFuZCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKIDIwMTktMTAtMTggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIEltcGxlbWVudCBBdXRoZW50aWNhdG9yQ2FuY2Vs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IGRkZDZlNjIz
NTQ5MTBiNmIyNjhiNGY5YjM1NjY0ZWVhMjFlOGJjZWEuLmQ5N2QzOTFkZThkOGIzNTBlZWVlMmVm
YzQ0ZjY3YzBlNjkzM2FhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIE9CSkNfQ0xBU1MgVUlWaWV3Q29udHJvbGxlcjsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKLSNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlv
blBhbmVsRmxhZ3MuaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50aWNhdGlvbkZsYWdzLmgiCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKaW5kZXgg
NWI2YTljN2E2Mzk2YTdmODg2MjRhZDk0YmFhYTE5ZmE4NGQ5MWQ4YS4uNTU1YjU2MTlmZDgyNWNk
YzViYmMwNDUwYjc4OTgzNzY2MmVkMjk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAogbmFtZXNwYWNlIFdlYktp
dCB7CitlbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIDogYm9vbDsKIGVudW0gY2xh
c3MgV2ViQXV0aGVudGljYXRpb25SZXN1bHQgOiBib29sOwogfQogCkBAIC0zOCw2ICszOSw3IEBA
IGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1
YWwgfldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQoKSA9IGRlZmF1bHQ7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlUGFuZWwoV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblN0YXR1cykgY29u
c3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NQYW5lbChXZWJLaXQ6OldlYkF1dGhlbnRp
Y2F0aW9uUmVzdWx0KSBjb25zdCB7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaAppbmRleCBjYjAx
MTFhMTczZDllNmM1NzQyMDNjMWM4MTEzNjQyZTlmMzZiNzRiLi5kY2M4MDllNmFkZGNhNDcxYjIz
MzkwYjFjYWZjMWUyYzUzYmNkYzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRp
b25GbGFncy5oIgogI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1Ymxp
Y0tleUNyZWRlbnRpYWxEYXRhLmg+CkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB+T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXNw
b25kUmVjZWl2ZWQoUmVzcG9uZCYmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkb3duZ3Jh
ZGUoQXV0aGVudGljYXRvciogaWQsIFJlZjxBdXRoZW50aWNhdG9yPiYmIGRvd25ncmFkZWRBdXRo
ZW50aWNhdG9yKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhdXRoZW50aWNhdG9yU3RhdHVz
VXBkYXRlZChXZWJBdXRoZW50aWNhdGlvblN0YXR1cykgPSAwOwogICAgIH07CiAKICAgICB2aXJ0
dWFsIH5BdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1h
bmFnZXIuY3BwCmluZGV4IGQwMzI4ODA5OTU3MjA3MzhjMzljMGY0YjI3NmE2NzQxZmE4YTI0ZTQu
LjRjODE5ZWFhYTExNTQ5NjFjYTE3ZWRmMjIwMDNjZGQ3NTI1YjVmZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTI0Myw2ICsyNDMsMTIgQEAgdm9pZCBBdXRoZW50
aWNhdG9yTWFuYWdlcjo6ZG93bmdyYWRlKEF1dGhlbnRpY2F0b3IqIGlkLCBSZWY8QXV0aGVudGlj
YXRvcj4mJiBkb3cKICAgICBhdXRoZW50aWNhdG9yQWRkZWQoV1RGTW92ZShkb3duZ3JhZGVkQXV0
aGVudGljYXRvcikpOwogfQogCit2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNh
dG9yU3RhdHVzVXBkYXRlZChXZWJBdXRoZW50aWNhdGlvblN0YXR1cyBzdGF0dXMpCit7CisgICAg
aWYgKGF1dG8qIHBhbmVsID0gbV9wZW5kaW5nUmVxdWVzdERhdGEucGFuZWwuZ2V0KCkpCisgICAg
ICAgIHBhbmVsLT5jbGllbnQoKS51cGRhdGVQYW5lbChzdGF0dXMpOworfQorCiBVbmlxdWVSZWY8
QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpjcmVh
dGVTZXJ2aWNlKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgdHJhbnNwb3J0LCBBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImIG9ic2VydmVyKSBjb25zdAogewog
ICAgIHJldHVybiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6Y3JlYXRlKHRyYW5zcG9y
dCwgb2JzZXJ2ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggNTAyNjI2
NzhhMGE4NWE0ZGJhMjcwOTlmZTE1ODNhNjE2M2E5ZWIwMy4uNDk0YTQ0ZGMxZDBjMTgyN2QwZWM1
ZGMwMjQxZDBjOWYwZmIyYWJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCkBA
IC03Nyw2ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gQXV0aGVudGljYXRvcjo6T2JzZXJ2ZXIK
ICAgICB2b2lkIHJlc3BvbmRSZWNlaXZlZChSZXNwb25kJiYpIGZpbmFsOwogICAgIHZvaWQgZG93
bmdyYWRlKEF1dGhlbnRpY2F0b3IqIGlkLCBSZWY8QXV0aGVudGljYXRvcj4mJiBkb3duZ3JhZGVk
QXV0aGVudGljYXRvcikgZmluYWw7CisgICAgdm9pZCBhdXRoZW50aWNhdG9yU3RhdHVzVXBkYXRl
ZChXZWJBdXRoZW50aWNhdGlvblN0YXR1cykgZmluYWw7CiAKICAgICAvLyBPdmVycmlkZW4gYnkg
TW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLgogICAgIHZpcnR1YWwgVW5pcXVlUmVmPEF1dGhlbnRp
Y2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBjcmVhdGVTZXJ2aWNlKFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQsIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZlciYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENs
aWVudC5oCmluZGV4IGM5Yzg1NTg1ZTNjOTEyZWQ0Mjk0MzljNDQzNTMyODg4MmM3YzIzN2IuLjNi
MGM4OTE2ZGMwOTIxMDc1ODRkZDcwYmEwMTAyNDkwNTc0NzRjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmgKQEAgLTM5LDcgKzM5
LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxDbGllbnQgOiBwdWJsaWMgQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudD4geworY2xhc3Mg
V2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudCBmaW5hbCA6IHB1YmxpYyBBUEk6OldlYkF1dGhl
bnRpY2F0aW9uUGFuZWxDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJBdXRoZW50aWNh
dGlvblBhbmVsQ2xpZW50PiB7CiBwdWJsaWM6CiAgICAgV2ViQXV0aGVudGljYXRpb25QYW5lbENs
aWVudChfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICosIGlkIDxfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsRGVsZWdhdGU+KTsKIApAQCAtNDcsMTIgKzQ3LDE0IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICAvLyBBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQKKyAgICB2b2lkIHVw
ZGF0ZVBhbmVsKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGRpc21pc3NQYW5lbChXZWJBdXRoZW50aWNhdGlvblJlc3VsdCkgY29uc3QgZmluYWw7CiAKICAg
ICBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICptX3BhbmVsOwogICAgIFdlYWtPYmpDUHRyPGlk
IDxfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGU+ID4gbV9kZWxlZ2F0ZTsKIAogICAg
IHN0cnVjdCB7CisgICAgICAgIGJvb2wgcGFuZWxVcGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVs
IDogMTsKICAgICAgICAgYm9vbCBwYW5lbERpc21pc3NXZWJBdXRoZW50aWNhdGlvblBhbmVsV2l0
aFJlc3VsdCA6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50
aWNhdGlvblBhbmVsQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudC5tbQppbmRleCBjMTg0
ZTU4MTBkYmUwZjllNzdlYTAzZWM3MjNjZTc1Yjk1Njc4YzA0Li4zYTQwMzAzYTZkZTc2M2NkZjBh
MmU3MjcwNjhhODFjMmJmOTdhOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQubW0KQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShXRUJfQVVUSE4pCiAKLSNpbXBvcnQgIldlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5o
IgorI2ltcG9ydCAiV2ViQXV0aGVudGljYXRpb25GbGFncy5oIgogI2ltcG9ydCAiX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM3LDYgKzM3LDcg
QEAgV2ViQXV0aGVudGljYXRpb25QYW5lbENsaWVudDo6V2ViQXV0aGVudGljYXRpb25QYW5lbENs
aWVudChfV0tXZWJBdXRoZW50aWNhdGlvblAKICAgICA6IG1fcGFuZWwocGFuZWwpCiAgICAgLCBt
X2RlbGVnYXRlKGRlbGVnYXRlKQogeworICAgIG1fZGVsZWdhdGVNZXRob2RzLnBhbmVsVXBkYXRl
V2ViQXV0aGVudGljYXRpb25QYW5lbCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6KV07CiAgICAgbV9kZWxl
Z2F0ZU1ldGhvZHMucGFuZWxEaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwYW5lbDpkaXNtaXNzV2Vi
QXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQ6KV07CiB9CiAKQEAgLTQ1LDYgKzQ2LDI4IEBA
IFJldGFpblB0cjxpZCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPiA+IFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6CiAgICAgcmV0dXJuIG1fZGVsZWdhdGUuZ2V0KCk7CiB9
CiAKK3N0YXRpYyBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlIHdrV2ViQXV0aGVudGlj
YXRpb25QYW5lbFVwZGF0ZShXZWJBdXRoZW50aWNhdGlvblN0YXR1cyBzdGF0dXMpCit7CisgICAg
aWYgKHN0YXR1cyA9PSBXZWJBdXRoZW50aWNhdGlvblN0YXR1czo6TXVsdGlwbGVORkNUYWdzUHJl
c2VudCkKKyAgICAgICAgcmV0dXJuIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVNdWx0
aXBsZU5GQ1RhZ3NQcmVzZW50OworICAgIGlmIChzdGF0dXMgPT0gV2ViQXV0aGVudGljYXRpb25T
dGF0dXM6Ok5vQ3JlZGVudGlhbHNGb3VuZCkKKyAgICAgICAgcmV0dXJuIF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGVOb0NyZWRlbnRpYWxzRm91bmQ7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGVNdWx0aXBs
ZU5GQ1RhZ3NQcmVzZW50OworfQorCit2b2lkIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxDbGllbnQ6
OnVwZGF0ZVBhbmVsKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIHN0YXR1cykgY29uc3QKK3sKKyAg
ICBpZiAoIW1fZGVsZWdhdGVNZXRob2RzLnBhbmVsVXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5l
bCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IG1fZGVsZWdhdGUuZ2V0
KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW2RlbGVnYXRl
IHBhbmVsOm1fcGFuZWwgdXBkYXRlV2ViQXV0aGVudGljYXRpb25QYW5lbDp3a1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGUoc3RhdHVzKV07Cit9CisKIHN0YXRpYyBfV0tXZWJBdXRoZW50aWNh
dGlvblJlc3VsdCB3a1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0KFdlYkF1dGhlbnRpY2F0aW9uUmVz
dWx0IHJlc3VsdCkKIHsKICAgICBzd2l0Y2ggKHJlc3VsdCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25GbGFn
cy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRpb25GbGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0MTE2ZDRiNjFiODEzNTYzNmYzNDNjNGU3MWZh
NzUyZmMzZWNmNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvbkZsYWdzLmgKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgV2ViQXV0aGVudGljYXRpb25QYW5lbFJl
c3VsdCA6IHVpbnQ4X3QgeworICAgIFVuYXZhaWxhYmxlLAorICAgIFByZXNlbnRlZCwKKyAgICBE
aWROb3RQcmVzZW50Cit9OworCitlbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9uUmVzdWx0IDog
Ym9vbCB7CisgICAgU3VjY2VlZGVkLAorICAgIEZhaWxlZAorfTsKKworZW51bSBjbGFzcyBXZWJB
dXRoZW50aWNhdGlvblN0YXR1cyA6IGJvb2wgeworICAgIE11bHRpcGxlTkZDVGFnc1ByZXNlbnQs
CisgICAgTm9DcmVkZW50aWFsc0ZvdW5kCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWxGbGFncy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDE0NmIyMGYx
NmFjZjRlYTFlMWJkODVmNmI0NTU0NzE5MTJkYWZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxGbGFncy5oCisrKyAvZGV2L251bGwKQEAgLTEs
NDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9B
VVRITikKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gY2xhc3MgV2ViQXV0aGVudGljYXRp
b25QYW5lbFJlc3VsdCA6IHVpbnQ4X3QgewotICAgIFVuYXZhaWxhYmxlLAotICAgIFByZXNlbnRl
ZCwKLSAgICBEaWROb3RQcmVzZW50Ci19OwotCi1lbnVtIGNsYXNzIFdlYkF1dGhlbnRpY2F0aW9u
UmVzdWx0IDogYm9vbCB7Ci0gICAgU3VjY2VlZGVkLAotICAgIEZhaWxlZAotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCmluZGV4IDk3ODYwNTRlMGYwMDk3
NDg3ZDljZGM2NDhkNGY4MjAyMzI3YWUzYzQuLjk5YWUwZmI3MjU2ZTZmMjczOTdhMzZjOGQxMjIx
YTI4M2NmNmJmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3RE
YXRhLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCiAjaW5jbHVk
ZSAiQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgotI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0
aW9uUGFuZWxGbGFncy5oIgorI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggNmRmOGNhNzRm
M2NkMDIyNjQ3YmFhMjhiMGYyMmJkMmI5N2U2YjJkYS4uYTZkM2I5MTkwMjY1NTY1Mzc1ODQ4MTll
ZWZlY2ViMTA2ZTRiY2JmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXV0
aGVudGljYXRvck1hbmFnZXIuaCIKICNpbmNsdWRlICJMb2NhbFNlcnZpY2UuaCIKLSNpbmNsdWRl
ICJXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaCIKKyNpbmNsdWRlICJXZWJBdXRoZW50aWNh
dGlvbkZsYWdzLmgiCiAjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcAppbmRleCBh
Y2U0YzBjNzNmMDRmYzMxZjczMTQ5NDdiNjVlYmZhNTJkNjU3NmQyLi43NTRjZWRiOWVhNTM3NGQ5
Y2ZjYzQzZmVkNGE2NmNmZTc3YzU5MmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50
aWNhdG9yLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlUmVx
dWVzdENvbnZlcnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlUmVzcG9uc2VDb252ZXJ0
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1UyZkNvbW1hbmRDb25zdHJ1Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKQEAgLTk0LDYg
Kzk1LDggQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRl
clJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3QKICAgICAgICAgYXV0byBlcnJvciA9IGdl
dFJlc3BvbnNlQ29kZShkYXRhKTsKICAgICAgICAgaWYgKGVycm9yICE9IEN0YXBEZXZpY2VSZXNw
b25zZUNvZGU6OmtDdGFwMkVyckludmFsaWRDQk9SICYmIHRyeURvd25ncmFkZSgpKQogICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZXJyb3IgPT0gQ3RhcERldmljZVJlc3BvbnNlQ29k
ZTo6a0N0YXAyRXJyTm9DcmVkZW50aWFscyAmJiBvYnNlcnZlcigpKQorICAgICAgICAgICAgb2Jz
ZXJ2ZXIoKS0+YXV0aGVudGljYXRvclN0YXR1c1VwZGF0ZWQoV2ViQXV0aGVudGljYXRpb25TdGF0
dXM6Ok5vQ3JlZGVudGlhbHNGb3VuZCk7CiAgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4Y2VwdGlv
bkRhdGEgeyBVbmtub3duRXJyb3IsIG1ha2VTdHJpbmcoIlVua25vd24gaW50ZXJuYWwgZXJyb3Iu
IEVycm9yIGNvZGU6ICIsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGVycm9yKSkgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xMDQsNiArMTA3LDggQEAgYm9vbCBDdGFwQXV0aGVudGljYXRv
cjo6dHJ5RG93bmdyYWRlKCkKIHsKICAgICBpZiAobV9pbmZvLnZlcnNpb25zKCkuZmluZChQcm90
b2NvbFZlcnNpb246OmtVMmYpID09IG1faW5mby52ZXJzaW9ucygpLmVuZCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFpc0NvbnZlcnRpYmxlVG9VMmZTaWduQ29tbWFuZChXVEY6
OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0
aW9ucykpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFvYnNlcnZlcigpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmQXV0aGVudGljYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkF1dGhlbnRpY2F0b3IuY3Bw
CmluZGV4IGFiNDY1MzYyZDNiNjYxZDkwMDg2ZDVmOWNhM2QyMWVmZDRiODcxNWUuLjc5MzZjNWIy
ZWMyYWI1ZmU2MDJlMGQyMjgyNjJjNzUxNzI0ZTkyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmQXV0aGVudGljYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZB
dXRoZW50aWNhdG9yLmNwcApAQCAtOTksNiArOTksOCBAQCB2b2lkIFUyZkF1dGhlbnRpY2F0b3I6
Omlzc3VlU2lnbkNvbW1hbmQoc2l6ZV90IGluZGV4KQogewogICAgIGF1dG8mIHJlcXVlc3RPcHRp
b25zID0gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihyZXF1ZXN0
RGF0YSgpLm9wdGlvbnMpOwogICAgIGlmIChpbmRleCA+PSByZXF1ZXN0T3B0aW9ucy5hbGxvd0Ny
ZWRlbnRpYWxzLnNpemUoKSkgeworICAgICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5v
YnNlcnZlcigpKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmF1dGhlbnRpY2F0b3JTdGF0dXNVcGRh
dGVkKFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzOjpOb0NyZWRlbnRpYWxzRm91bmQpOwogICAgICAg
ICByZWNlaXZlUmVzcG9uZChFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiTm8gY3Jl
ZGVudGlhbHMgZnJvbSB0aGUgYWxsb3dDcmVkZW50aWFscyBsaXN0IGlzIGZvdW5kIGluIHRoZSBh
dXRoZW50aWNhdG9yLiJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDA4ZTE1MmRlM2Jj
MzhmMmU0NDYyM2VmNjQ4ZmU1ZjBjYjljZGJiNjkuLmNhMWJmNTRmMGQ2ODYyOWRmOTc1Yjc5OTk4
MWM5NDA2NGRhZTZlZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTA2MCw3ICsxMDYwLDcgQEAKIAkJNTdCODI2NDgyMzA1MEM1MTAw
QjcyRUIwIC8qIEZpZG9TZXJ2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1N0I4MjY0NjIzMDUwQzUxMDBCNzJFQjAgLyogRmlkb1NlcnZpY2UuaCAq
LzsgfTsKIAkJNTdCODI2NEMyMzA2MDNDMTAwQjcyRUIwIC8qIE1vY2tOZmNTZXJ2aWNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0I4MjY0QTIzMDYw
M0MxMDBCNzJFQjAgLyogTW9ja05mY1NlcnZpY2UuaCAqLzsgfTsKIAkJNTdCQkVBNkQyMkJDMEJG
RTAwMjczOTk1IC8qIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QkJFQTZDMjJCQzBCRkUwMDI3Mzk5NSAv
KiBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmggKi87IH07Ci0JCTU3QzYyNDRCMjM0Njc5QTQw
MDM4M0ZFNyAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QzYyNDRBMjM0Njc5QTQwMDM4M0ZFNyAv
KiBXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaCAqLzsgfTsKKwkJNTdDNjI0NEIyMzQ2NzlB
NDAwMzgzRkU3IC8qIFdlYkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QzYyNDRBMjM0Njc5QTQwMDM4M0ZFNyAvKiBX
ZWJBdXRoZW50aWNhdGlvbkZsYWdzLmggKi87IH07CiAJCTU3RENFRDZGMjE0MkVFNjMwMDE2Qjg0
NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VENkEyMTQyRUFFMjAwMTZCODQ3
IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VzLmggKi87IH07CiAJCTU3RENF
RDcwMjE0MkVFNjgwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0RDRUQ2QzIxNDJFQUY5MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1N0RDRUQ3MTIxNDJFRTZD
MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VENkQyMTQy
RUFGQTAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZXMu
aCAqLzsgfTsKQEAgLTM1NDgsNyArMzU0OCw3IEBACiAJCTU3QjhFM0Q1MjM1NTg2NEEwMEQ1QzVE
MSAvKiBGaWRvQXV0aGVudGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWRvQXV0aGVudGljYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0I4RTNENjIzNTU4NjRBMDBENUM1
RDEgLyogRmlkb0F1dGhlbnRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlkb0F1dGhl
bnRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0JCRUE2QzIyQkMw
QkZFMDAyNzM5OTUgLyogU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTU3QzYyNDRBMjM0Njc5QTQwMDM4M0ZFNyAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxh
Z3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aGVudGljYXRpb25QYW5lbEZsYWdzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3QzYyNDRBMjM0Njc5QTQwMDM4M0ZFNyAvKiBXZWJB
dXRoZW50aWNhdGlvbkZsYWdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9uRmxh
Z3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEQ0VENkEyMTQyRUFFMjAwMTZC
ODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2Vz
Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTU3
RENFRDZCMjE0MkVBRTIwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2Vi
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTdEQ0VENkMy
MTQyRUFGOTAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAt
NzA3OSw3ICs3MDc5LDcgQEAKIAkJCQk1N0RDRUQ4NDIxNDczNjNBMDAxNkI4NDcgLyogQXV0aGVu
dGljYXRvck1hbmFnZXIuaCAqLywKIAkJCQk1N0RDRUQ5OTIxNDg5RjREMDAxNkI4NDcgLyogQXV0
aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3BwICovLAogCQkJCTU3RENFRDhBMjE0ODUzMTMw
MDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oICovLAotCQkJCTU3QzYy
NDRBMjM0Njc5QTQwMDM4M0ZFNyAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsRmxhZ3MuaCAqLywK
KwkJCQk1N0M2MjQ0QTIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25GbGFncy5o
ICovLAogCQkJCTU3RENFREE2MjE0OUY5REEwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdGlvblJl
cXVlc3REYXRhLmggKi8sCiAJCQkJNTc2MDgyOTYyMDJCRDhCQTAwMTE2Njc4IC8qIFdlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcCAqLywKIAkJCQk1NzYwODI5NTIwMkJEOEJBMDAx
MTY2NzggLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaCAqLywKQEAgLTk4NTAs
OCArOTg1MCw4IEBACiAJCQkJMUFGNENFRjAxOEJDNDgxODAwQkMyRDM0IC8qIFZpc2l0ZWRMaW5r
VGFibGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThFN0QzRDE4QzE1MTQ5MDA1
QTcwMkEgLyogVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0VEQTEyRTMxNTJDRDFCMzAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENs
aWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTdDNjI0NEIyMzQ2NzlBNDAwMzgzRkU3IC8qIFdl
YkF1dGhlbnRpY2F0aW9uRmxhZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3N0ZGNzg1MjM0NkVD
QUEwMDRFREZCOSAvKiBXZWJBdXRoZW50aWNhdGlvblBhbmVsQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKLQkJCQk1N0M2MjQ0QjIzNDY3OUE0MDAzODNGRTcgLyogV2ViQXV0aGVudGljYXRpb25QYW5l
bEZsYWdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURCMjIxNEM2MDRDMDAxNkI4NDcgLyog
V2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VE
NkYyMTQyRUU2MzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURCMzIxNEM2MDUzMDAxNkI4NDcgLyogV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDczNjNhMWExZjM4Y2QwNzE1
ODdlNzhmYzUyNzIyMjFhYWFkMzE2YjguLjIzYjE3NjcwNjAyOWNhNGJmMThkZDE2ODYyZTE4N2U3
NjdjOTlkMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMC0xOCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gV2FybiB1c2VycyB3aGVuIG5vIGNyZWRl
bnRpYWxzIGFyZSBmb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzMTQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTkzMTEyMz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIEFkZHMgbmV3IHRlc3Rz
IGZvciBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoLVtUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbERlbGVnYXRlIHBhbmVsOnVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6XSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5j
ZWwuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0
bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMuaHRtbDogQWRkZWQuCisK
IDIwMTktMTAtMTggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViQXV0aG5dIEltcGxlbWVudCBBdXRoZW50aWNhdG9yQ2FuY2VsCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDE0ODg3Yjc2YWM2MmI0ZjJjOWEyYmQxZGZmZGY0MzYyNWI2YjZkNmMuLmI4
MGU4MjQ0MGVkZTVhYTczYWEyYTg4MzU1YzNlOWU3MTYyZjM3ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0zNDEsNiArMzQxLDggQEAKIAkJNTc2NjNERUMyMzRGMUY5MzAwRTg1RTA5IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjYzREVCMjM0RjFGODAw
MEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCAqLzsg
fTsKIAkJNTc2NjNERjMyMzU3RTQ4OTAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY2M0RGMjIzNTdFNDVEMDBFODVFMDkgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sICovOyB9OwogCQk1NzY5
QzUwQjFEOUIwMDAyMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY5QzUwQTFEOUIwMDAx
MDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gKi87IH07CisJCTU3NzQ1NEQw
MjM1OUIzNzgwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQt
bm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1Nzc0NTRDRjIzNTlCMzM4MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWwgKi87IH07CisJCTU3
NzQ1NEQyMjM1OUJCMDEwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi11MmYtbm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzc0NTREMTIzNTlCQUQ1MDA4RTFFRDcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgKi87IH07
CiAJCTU3NzRBQTY4MjFGQkJGNzgwMEFGMkExQiAvKiBUZXN0U09BdXRob3JpemF0aW9uLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3NEFBNjcyMUZC
QkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24ubW0gKi87IH07CiAJCTU3NzhEMDU2
MjIxMTBBMjYwMDg5OUUzQiAvKiBMb2FkV2ViQXJjaGl2ZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NzhEMDU1MjIxMTBBMjYwMDg5OUUzQiAvKiBM
b2FkV2ViQXJjaGl2ZS5tbSAqLzsgfTsKIAkJNTc4Q0JENjcyMDRGQjJDODAwODNCOUYyIC8qIExv
Y2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc4Q0JENjYyMDRGQjJDNzAwODNCOUYyIC8qIExvY2FsQXV0
aGVudGljYXRpb24uZnJhbWV3b3JrICovOyB9OwpAQCAtMTEyMiw3ICsxMTI0LDYgQEAKIAkJCWRz
dFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3
OwogCQkJZmlsZXMgPSAoCi0JCQkJNDE2NjFDNjYyMzU1RTg1RTAwRDMzQzI3IC8qIGdldFVzZXJN
ZWRpYS13ZWJhdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU1QTgxN0ZGMjE4
MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNoYXJhY3RlcnMuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIxODEwMjIxMDAwNEEzOUEgLyogNDAweDQwMC1n
cmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMjU0LDYgKzEyNTUsNyBAQAogCQkJ
CTI2RjUyRUIzMTgyODhGMjQwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRo
SGlnaEFjY3VyYWN5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMDdFMUY2QTIxRkZD
NDRGQTAwOTZDN0VDIC8qIGdldERpc3BsYXlNZWRpYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTQ2N0M1NjUzMjFCNUVEMTMwMDU3NTE2RCAvKiBHZXRTZXNzaW9uQ29va2llLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNDE2NjFDNjYyMzU1RTg1RTAwRDMzQzI3IC8qIGdl
dFVzZXJNZWRpYS13ZWJhdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTA3NDk5
NDQyMUVBNTAzNEIwMDBEQTQ0RSAvKiBnZXRVc2VyTWVkaWEuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQkwNzQ5OTQ0MjFFQTUwMzRCMDAwREE0NUUgLyogZ2V0VXNlck1lZGlhQXVkaW9W
aWRlb0NhcHR1cmUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDZBMDk1QjFFRDhB
NkU2MDBENEFBNTUgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCkBAIC0xNDQ1LDggKzE0NDcsMTAgQEAKIAkJCQkyRUJEOUQwQTIxMzQ3MzBEMDAyREE3NTgg
LyogdmlkZW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRDU3Nzc5OTIxMUNFMEU0
MDAxQjM3MUUgLyogd2ViLWF1ZGlvLW9ubHkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQk1NzY2M0RGMzIzNTdFNDg5MDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLWNhbmNlbC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3NzQ1NEQw
MjM1OUIzNzgwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQt
bm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RFQzIz
NEYxRjkzMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc2NjNERUEyMzRFQTY2RDAwRTg1RTA5IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAorCQkJCTU3NzQ1NEQyMjM1OUJCMDEwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk1N0M2MjQ1MDIzNDZDMjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQzJCODE4NjFD
ODkyNTlEMDBBNTUyOUYgLyogd2ViZm9udC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTUxNzE0RUI0MUNGOEM3OEMwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTg2OSw2ICsxODczLDggQEAKIAkJNTc2NjNE
RUIyMzRGMUY4MDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2NjNERjIyMzU3RTQ1RDAwRTg1
RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1oaWQtY2FuY2VsLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY5
QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3Jh
cC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc3NDU0Q0YyMzU5QjMzODAwOEUx
RUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFs
cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTc3NDU0RDEyMzU5QkFENTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVk
ZW50aWFscy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc3NEFBNjcyMUZC
QkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBUZXN0U09BdXRob3JpemF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1Nzc4RDA1NTIyMTEwQTI2MDA4OTlFM0IgLyogTG9hZFdlYkFyY2hpdmUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBMb2FkV2ViQXJjaGl2ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc4Q0JENjYyMDRGQjJDNzAwODNCOUYyIC8qIExvY2FsQXV0aGVudGljYXRpb24uZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yazsg
cGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFt
ZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwpAQCAtMzM5MSw4ICszMzk3LDEwIEBACiAJ
CQkJQ0Q1Nzc3OUIyMTFDRTZDRTAwMUIzNzFFIC8qIHZpZGVvLXdpdGgtYXVkaW8tYW5kLXdlYi1h
dWRpby5odG1sICovLAogCQkJCUNENTc3Nzk4MjExQ0RFOEYwMDFCMzcxRSAvKiB3ZWItYXVkaW8t
b25seS5odG1sICovLAogCQkJCTU3NjYzREYyMjM1N0U0NUQwMEU4NUUwOSAvKiB3ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgKi8sCisJCQkJNTc3NDU0Q0Yy
MzU5QjMzODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1u
by1jcmVkZW50aWFscy5odG1sICovLAogCQkJCTU3NjYzREVCMjM0RjFGODAwMEU4NUUwOSAvKiB3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCAqLywKIAkJCQk1NzY2M0RF
OTIzNEVBNjBCMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZj
Lmh0bWwgKi8sCisJCQkJNTc3NDU0RDEyMzU5QkFENTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sICovLAogCQkJCTU3QzYy
NDRGMjM0NkMxRUMwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5o
dG1sICovLAogCQkJCTUxNzE0RUIyMUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElE
QkNsZWFudXAtMS5odG1sICovLAogCQkJCTUxNzE0RUIzMUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQ
cm9jZXNzS2lsbElEQkNsZWFudXAtMi5odG1sICovLApAQCAtMzc1Niw4ICszNzY0LDggQEAKIAkJ
CQkyNkY1MkVBRTE4Mjg4QzA0MDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRp
b25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgKi8sCiAJCQkJMjZGNTJFQjAxODI4OEYwRjAwMjNENDEy
IC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbi5odG1sICovLAogCQkJCTI2RjUyRUIxMTgyODhG
MEYwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0
bWwgKi8sCi0JCQkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1s
ICovLAogCQkJCTQxNjYxQzY1MjM1NUQ5OEIwMEQzM0MyNyAvKiBnZXRVc2VyTWVkaWEtd2ViYXVk
aW8uaHRtbCAqLywKKwkJCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlh
Lmh0bWwgKi8sCiAJCQkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUM1IC8qIGdldFVzZXJNZWRpYUF1
ZGlvVmlkZW9DYXB0dXJlLmh0bWwgKi8sCiAJCQkJQkNCRDM3MkUxMjVBQkJFNjAwRDJDMjlGIC8q
IGljb24ucG5nICovLAogCQkJCUNFMzUyNEY1MUIxNDJCQkIwMDI4QTdDNSAvKiBpbnB1dC1mb2N1
cy1ibHVyLmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXgg
ZTdiYjYwNjVkYjBjZGE4YjRjOWY4MWIzZjFkZmU4NzExOGY2OWVhZC4uNmY0MThhZTAxNDk0ZmYw
ODMxNzJlMmZhN2U3OWU0MzlkZDllZjdiZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5tbQpAQCAtNDIsNiArNDIsNyBAQAogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25Q
YW5lbFJhbiA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbEZhaWxl
ZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgd2ViQXV0aGVudGljYXRpb25QYW5lbFN1Y2NlZGVkID0g
ZmFsc2U7CitzdGF0aWMgYm9vbCB3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlTm9DcmVkZW50
aWFsc0ZvdW5kID0gZmFsc2U7CiBzdGF0aWMgUmV0YWluUHRyPF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWw+IGdQYW5lbDsKIAogQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERl
bGVnYXRlIDogTlNPYmplY3QgPF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4KQEAg
LTQ5LDYgKzUwLDEzIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFRlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsRGVsZWdhdGUKIAorLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbCAqKXBhbmVsIHVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9uUGFuZWw6KF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGUpdXBkYXRlCit7CisgICAgQVNTRVJUX05FKHBhbmVsLCBuaWwpOwor
ICAgIGlmICh1cGRhdGUgPT0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3JlZGVu
dGlhbHNGb3VuZCkKKyAgICAgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFVwZGF0ZU5vQ3JlZGVu
dGlhbHNGb3VuZCA9IHRydWU7Cit9CisKIC0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwgKilwYW5lbCBkaXNtaXNzV2ViQXV0aGVudGljYXRpb25QYW5lbFdpdGhSZXN1bHQ6
KF9XS1dlYkF1dGhlbnRpY2F0aW9uUmVzdWx0KXJlc3VsdAogewogICAgIEFTU0VSVF9ORShwYW5l
bCwgbmlsKTsKQEAgLTY0LDEzICs3MiwyMiBAQCAtICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsICopcGFuZWwgZGlzbWlzc1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxXaQogCiBA
ZW5kCiAKK0BpbnRlcmZhY2UgVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWtlRGVsZWdhdGUg
OiBOU09iamVjdCA8X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlPgorQGVuZAorCitA
aW1wbGVtZW50YXRpb24gVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxGYWtlRGVsZWdhdGUKK0Bl
bmQKKwogQGludGVyZmFjZSBUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgOiBO
U09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4KIEBwcm9wZXJ0eSBib29sIGlzUmFjeTsKK0Bw
cm9wZXJ0eSBib29sIGlzRmFrZTsKK0Bwcm9wZXJ0eSBib29sIGlzTnVsbDsKKwogLSAoaW5zdGFu
Y2V0eXBlKWluaXQ7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgewotICAgIFJldGFpblB0cjxUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbERlbGVnYXRlPiBfZGVsZWdhdGU7CisgICAgUmV0YWluUHRyPE5TT2JqZWN0PF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZT4+IF9kZWxlZ2F0ZTsKICAgICBCbG9ja1B0cjx2b2lk
KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQpPiBfY2FsbGJhY2s7CiB9CiAKQEAgLTg1
LDcgKzEwMiwxMiBAQCAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bldl
YkF1dGhlbnRpY2F0aW9uUGFuZWw6KF9XS1dlYkF1dGhlbnRpYwogewogICAgIHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSYW4gPSB0cnVlOwogCi0gICAgX2RlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBpZiAoIV9p
c051bGwpIHsKKyAgICAgICAgaWYgKCFfaXNGYWtlKQorICAgICAgICAgICAgX2RlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgX2RlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsRmFrZURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgfQog
ICAgIEFTU0VSVF9ORShwYW5lbCwgbmlsKTsKICAgICBnUGFuZWwgPSBwYW5lbDsKICAgICBbZ1Bh
bmVsIHNldERlbGVnYXRlOl9kZWxlZ2F0ZS5nZXQoKV07CkBAIC00NTAsNiArNDcyLDExMiBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2VsKQogICAgIEVYUEVDVF9G
QUxTRSh3ZWJBdXRoZW50aWNhdGlvblBhbmVsU3VjY2VkZWQpOwogfQogCitURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKK3sKKyAgICBy
ZXNldCgpOworICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtX
S1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNs
YXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JU
ZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxl
ZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxl
Z2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBVdGlsOjpydW4oJndl
YkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4pOworICAgIFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRp
b25QYW5lbFVwZGF0ZU5vQ3JlZGVudGlhbHNGb3VuZCk7Cit9CisKK1RFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgUGFuZWxVMmZDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQoreworICAgIHJlc2V0
KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1u
by1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllF
UyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFV0aWw6OnJ1bigmd2ViQXV0
aGVudGljYXRpb25QYW5lbFJhbik7CisgICAgVXRpbDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBh
bmVsVXBkYXRlTm9DcmVkZW50aWFsc0ZvdW5kKTsKK30KKworVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBGYWtlUGFuZWxIaWRTdWNjZXNzKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBh
dXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRl
cm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3Qg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
KyAgICBbZGVsZWdhdGUgc2V0SXNGYWtlOnRydWVdOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgVXRpbDo6cnVuKCZ3ZWJB
dXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1
Y2NlZWRlZCEiXTsKK30KKworVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBGYWtlUGFuZWxI
aWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CisgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKKyAgICBbZGVsZWdhdGUgc2V0SXNGYWtlOnRydWVdOworICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgVXRp
bDo6cnVuKCZ3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuKTsKKyAgICBbd2ViVmlldyB3YWl0Rm9y
TWVzc2FnZTpAIk9wZXJhdGlvbiB0aW1lZCBvdXQuIl07Cit9CisKK1RFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgTnVsbFBhbmVsSGlkU3VjY2VzcykKK3sKKyAgICByZXNldCgpOworICAgIFJl
dGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9S
ZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgW2RlbGVnYXRlIHNldElzTnVsbDp0cnVlXTsKKyAgICBbd2ViVmlldyBzZXRVSURl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFV0aWw6OnJ1bigm
d2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJTdWNjZWVkZWQhIl07Cit9CisKK1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTnVsbFBh
bmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKK3sKKyAgICByZXNldCgpOworICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMi
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107CisgICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CisgICAgW2RlbGVnYXRlIHNldElzTnVsbDp0cnVlXTsKKyAgICBbd2Vi
VmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAg
IFV0aWw6OnJ1bigmd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbik7CisgICAgW3dlYlZpZXcgd2Fp
dEZvck1lc3NhZ2U6QCJPcGVyYXRpb24gdGltZWQgb3V0LiJdOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5j
ZWwuaHRtbAppbmRleCBjZjEyNDgxMWQ0OWI1ZDg2ZjIzMTNkZDFiYmJkMzMwMGQxMWZmMzk3Li4y
Y2I2NTk2YjE2N2U3ZjJlNmQ2MjJjM2U0MWQwY2I3ZmYyNTUyMTFjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwu
aHRtbApAQCAtMSw3ICsxLDcgQEAKIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgogPHNj
cmlwdD4KICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICBpbnRlcm5hbHMuc2V0
TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBleHBlY3RDYW5jZWw6
IHRydWUgfSB9KTsKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBoaWQ6IHsgZXhwZWN0Q2FuY2VsOiB0
cnVlIH0gfSk7CiAgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1
dC5mb2N1cygpOyB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5v
LWNyZWRlbnRpYWxzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEwYTcwOTJiYmY1MzM5ZWU2YWIyMzk1NjY3NTllMjAzYmNlM2Q5MmMKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sCkBA
IC0wLDAgKzEsMjMgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4K
KyAgICBjb25zdCB0ZXN0Q3RhcEVyck5vQ3JlZGVudGlhbHNSZXNwb25zZUJhc2U2NCA9ICJMZz09
IjsKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBpbnRlcm5hbHMuc2V0TW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IHNpbGVudEZhaWx1cmU6IHRydWUsIGhp
ZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFsaWNpb3Vz
LXBheWxvYWQiLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEN0YXBFcnJOb0NyZWRlbnRpYWxzUmVzcG9u
c2VCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4g
eyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAg
ICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXko
MTYpLAorICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAgICAgIH0KKyAgICB9OworCisgICAg
bmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4gewor
ICAgICAgICAvLyBjb25zb2xlLmxvZygiU3VjY2VlZGVkISIpOworICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiU3VjY2VlZGVkISIp
OworICAgIH0sIGVycm9yID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coZXJyb3IubWVzc2Fn
ZSk7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBv
c3RNZXNzYWdlKGVycm9yLm1lc3NhZ2UpOworICAgIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbAppbmRleCA2
NTUxMGQxNjljZmJmMzhhZmE4OWRjNGFmZGZkODk5NWEwNWYxNDU1Li4zMjhmODQ2ZmQ3M2FjZjRh
ZTVkOTUzNjFiNDQzYTVkNWI5ZjBmZTdkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC5o
dG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgICAg
ICI0L0YwVkI3RGxVVk0wOUlIUG14ZTFNekhVd1JvQ1JaYkNBSWdHS292NnhvQXgyTUVmNi82cU5z
OE91dHpoUDJDIiArCiAgICAgICAgICJRb0oxTDdGZTY0Rzl1QmM9IjsKICAgICBpZiAod2luZG93
LmludGVybmFscykgewotICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbih7IGhpZDogeyBwYXlsb2FkQmFzZTY0OiBbdGVzdEFzc2VydGlvbk1lc3Nh
Z2VCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgaGlkOiB7IHBheWxvYWRCYXNl
NjQ6IFt0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKICAgICAgICAgaW50ZXJuYWxz
LndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVu
dGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwK
aW5kZXggOTQ1YjZiNjU5NDJiNTZlZDFiMmRkY2U5NmMzNTYyYWU0MWViMzBmZC4uZDA1YzM5ZGY2
YjhjOWM0ZWNlYWI1M2RkOWRiMWRmNDE1NWY4OGY1YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1uZmMuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sCkBAIC0xMSw3ICsxMSw3IEBA
CiAgICAgICAgICI0L0YwVkI3RGxVVk0wOUlIUG14ZTFNekhVd1JvQ1JaYkNBSWdHS292NnhvQXgy
TUVmNi82cU5zOE91dHpoUDJDIiArCiAgICAgICAgICJRb0oxTDdGZTY0Rzl1QmVRQUE9PSI7CiAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJB
dXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBuZmM6IHsgcGF5bG9hZEJhc2U2NDogW3Rlc3RO
ZmNDdGFwVmVyc2lvbkJhc2U2NCwgdGVzdEdldEluZm9SZXNwb25zZUFwZHVCYXNlNjQsIHRlc3RB
c3NlcnRpb25NZXNzYWdlQXBkdUJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50ZXJuYWxzLnNldE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBzaWxlbnRGYWlsdXJlOiB0cnVlLCBu
ZmM6IHsgcGF5bG9hZEJhc2U2NDogW3Rlc3ROZmNDdGFwVmVyc2lvbkJhc2U2NCwgdGVzdEdldElu
Zm9SZXNwb25zZUFwZHVCYXNlNjQsIHRlc3RBc3NlcnRpb25NZXNzYWdlQXBkdUJhc2U2NF0gfSB9
KTsKICAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3Vz
KCk7IH0pOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVu
dGlhbHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGU3ZTIxODY1OGQyMTMxM2M3Y2VjZWIzMDk0YzBkNjYzZTM0MTBjYwotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwKQEAgLTAsMCAr
MSwxNyBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+Cis8c2NyaXB0PgorICAgIGNv
bnN0IHRlc3RVMmZBcGR1V3JvbmdEYXRhT25seVJlc3BvbnNlQmFzZTY0ID0gImFvQT0iOworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgc2lsZW50RmFpbHVyZTogdHJ1ZSwgaGlkOiB7IHN0
YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6ICJtYWxpY2lvdXMtcGF5bG9h
ZCIsIGlzVTJmOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdFUyZkFwZHVXcm9uZ0RhdGFPbmx5
UmVzcG9uc2VCYXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUo
KCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0g
eworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4
QXJyYXkoMTYpLAorICAgICAgICAgICAgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogInB1Ymxp
Yy1rZXkiLCBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpIH1dCisgICAgICAgIH0KKyAgICB9OworCisg
ICAgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDA4Njc4MTYxYjdiNmE5YzFkODllNDNkZjhlMTJmYzVmYjlhMDI1YTYuLjFiMWQ4NTRlYmU1ZTcz
ZjRlYTM2ZWM0YTY2ZGRmOGI1MzBjYTg5M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0x
MC0xOCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJB
dXRobl0gV2FybiB1c2VycyB3aGVuIG5vIGNyZWRlbnRpYWxzIGFyZSBmb3VuZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTQ3CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81NTkzMTEyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxn
aGFtLgorCisgICAgICAgIEFkZHMgbmV3IHRlc3RzIGZvciBDdGFwQXV0aGVudGljYXRvcjo6dHJ5
RG93bmdyYWRlIGVuaGFuY2VtZW50LgorCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWls
dXJlLWhpZC5odHRwcy5odG1sOgorCiAyMDE5LTEwLTE4ICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBJbXBsZW1lbnQgQXV0aGVudGljYXRv
ckNhbmNlbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1
cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2MWIzYWZhZjFmMmNlYmI2ODAyZjM5YTNk
MzVhNDFjYjAxZmM2Zjg0Li41NGJiNTA4NjdjOTIzY2RhNmZhOTdiN2FjZTdlMDA0YWM4OTVjZjBl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtZ2V0LWZhaWx1cmUtaGlkLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUt
aGlkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMyw1ICszLDYgQEAgUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tnZXRdXSB3aXRoIHRpbWVvdXQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9y
LgogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIG1hbGljaW91cyBwYXls
b2FkIGluIGEgbW9jayBoaWQgYXV0aGVudGljYXRvci4gCiBQQVNTIFB1YmxpY0tleUNyZWRlbnRp
YWwncyBbW2dldF1dIHdpdGggdW5zdXBwb3J0ZWQgb3B0aW9ucyBpbiBhIG1vY2sgaGlkIGF1dGhl
bnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGF1dGhl
bnRpY2F0b3IgZG93bmdyYWRlIGZhaWxlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIAot
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGF1dGhlbnRpY2F0b3IgZG93
bmdyYWRlIHN1Y2NlZWRlZCBhbmQgdGhlbiBVMkYgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0aGVu
dGljYXRvci4gMiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhdXRo
ZW50aWNhdG9yIGRvd25ncmFkZSBmYWlsZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNhdG9yLiAy
IAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tnZXRdXSB3aXRoIGF1dGhlbnRpY2F0b3Ig
ZG93bmdyYWRlIHN1Y2NlZWRlZCBhbmQgdGhlbiBVMkYgZmFpbGVkIGluIGEgbW9jayBoaWQgYXV0
aGVudGljYXRvci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1oaWQuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVy
ZS1oaWQuaHR0cHMuaHRtbAppbmRleCAwMDIyZWE5MGIwNzZhZmUyYzQ2NGJmNzZmMjVkNDliNTNj
YTQ4MWI5Li42OGUzY2UyMGE3NTE4ZWU1MmQyZTE4OWZhN2UyNWEyNGM1ODk1YzBlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Z2V0LWZhaWx1cmUtaGlkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWhpZC5odHRwcy5odG1sCkBA
IC02NCwxMyArNjQsMjQgQEAKICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAg
ICBjb25zdCBvcHRpb25zID0gewogICAgICAgICAgICAgcHVibGljS2V5OiB7Ci0gICAgICAgICAg
ICAgICAgY2hhbGxlbmdlOiBhc2NpaVRvVWludDhBcnJheSgiMTIzNDU2IiksCi0gICAgICAgICAg
ICAgICAgZXh0ZW5zaW9uczogeyBhcHBpZDogIiIgfQorICAgICAgICAgICAgICAgIGNoYWxsZW5n
ZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpCiAgICAgICAgICAgICB9CiAgICAgICAgIH07
CiAKICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICBpbnRlcm5hbHMu
c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFnZTogInJl
cXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFsaWNpb3VzLXBheWxvYWQiLCBjYW5E
b3duZ3JhZGU6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3RhcEVyckludmFsaWRDcmVkZW50
aWFsUmVzcG9uc2VCYXNlNjRdIH0gfSk7Ci0gICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0
LCAiTm90U3VwcG9ydGVkRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMp
LCAiQ2Fubm90IGNvbnZlcnQgdGhlIHJlcXVlc3QgdG8gVTJGIGNvbW1hbmQuIik7Ci0gICAgfSwg
IlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3Jh
ZGUgc3VjY2VlZGVkIGFuZCB0aGVuIFUyRiBmYWlsZWQgaW4gYSBtb2NrIGhpZCBhdXRoZW50aWNh
dG9yLiAyIik7CisgICAgICAgIHJldHVybiBwcm9taXNlUmVqZWN0cyh0LCAiVW5rbm93bkVycm9y
IiwgbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldChvcHRpb25zKSwgIlVua25vd24gaW50ZXJuYWwg
ZXJyb3IuIEVycm9yIGNvZGU6IDM0Iik7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2dldF1dIHdpdGggYXV0aGVudGljYXRvciBkb3duZ3JhZGUgZmFpbGVkIGluIGEgbW9jayBoaWQg
YXV0aGVudGljYXRvci4gMiIpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAg
ICAgICAgICAgIGNoYWxsZW5nZTogYXNjaWlUb1VpbnQ4QXJyYXkoIjEyMzQ1NiIpCisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7
IGhpZDogeyBzdGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAibWFsaWNp
b3VzLXBheWxvYWQiLCBjYW5Eb3duZ3JhZGU6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0Q3Rh
cEVyckludmFsaWRDcmVkZW50aWFsUmVzcG9uc2VCYXNlNjQsIHRlc3RVMmZBcGR1Tm9FcnJvck9u
bHlSZXNwb25zZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VSZWplY3RzKHQs
ICJVbmtub3duRXJyb3IiLCBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLCAiVW5r
bm93biBpbnRlcm5hbCBlcnJvci4gRXJyb3IgY29kZTogMzQiKTsKKyAgICB9LCAiUHVibGljS2V5
Q3JlZGVudGlhbCdzIFtbZ2V0XV0gd2l0aCBhdXRoZW50aWNhdG9yIGRvd25ncmFkZSBzdWNjZWVk
ZWQgYW5kIHRoZW4gVTJGIGZhaWxlZCBpbiBhIG1vY2sgaGlkIGF1dGhlbnRpY2F0b3IuIik7CiA8
L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>