<?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>225724</bug_id>
          
          <creation_ts>2021-05-12 16:40:24 -0700</creation_ts>
          <short_desc>Remove as much of WKPageGroupRef as possible</short_desc>
          <delta_ts>2021-12-17 20:29:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=234272</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>clopez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759461</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-12 16:40:24 -0700</bug_when>
    <thetext>Remove as much of WKPageGroupRef as possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759467</commentid>
    <comment_count>1</comment_count>
      <attachid>428434</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-12 17:09:34 -0700</bug_when>
    <thetext>Created attachment 428434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759470</commentid>
    <comment_count>2</comment_count>
      <attachid>428435</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-12 17:13:42 -0700</bug_when>
    <thetext>Created attachment 428435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759477</commentid>
    <comment_count>3</comment_count>
      <attachid>428437</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-12 17:32:37 -0700</bug_when>
    <thetext>Created attachment 428437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759501</commentid>
    <comment_count>4</comment_count>
      <attachid>428448</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-12 19:28:00 -0700</bug_when>
    <thetext>Created attachment 428448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759701</commentid>
    <comment_count>5</comment_count>
      <attachid>428518</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-13 08:59:24 -0700</bug_when>
    <thetext>Created attachment 428518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759711</commentid>
    <comment_count>6</comment_count>
      <attachid>428521</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-13 09:20:40 -0700</bug_when>
    <thetext>Created attachment 428521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760954</commentid>
    <comment_count>7</comment_count>
      <attachid>428893</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-17 16:53:08 -0700</bug_when>
    <thetext>Created attachment 428893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761149</commentid>
    <comment_count>8</comment_count>
      <attachid>428893</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-18 07:49:00 -0700</bug_when>
    <thetext>Comment on attachment 428893
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:5594
&gt; +void WebViewImpl::handleContextMenuTranslation(const WebCore::TranslationContextMenuInfo&amp; info)

Wenson already applied this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761200</commentid>
    <comment_count>9</comment_count>
      <attachid>428953</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-18 10:25:29 -0700</bug_when>
    <thetext>Created attachment 428953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761770</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-19 16:41:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78231201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825190</commentid>
    <comment_count>11</comment_count>
      <attachid>447477</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-17 14:30:18 -0800</bug_when>
    <thetext>Created attachment 447477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825298</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2021-12-17 20:29:15 -0800</bug_when>
    <thetext>Seems the GTK EWS has detected lot of crashes here. This EWS is kind of new here, it has been promoted to production just two days ago.ç

However the failures it has detected (crashes) seem real. I can confirm.

And sorry because (since this is still something kind of new) the detailed info about crash info is still not there. This is a known problem and I plan to fix it ASAP (hopefully next Monday). See bug 234272

If you find this useful, I have tried locally on GTK to run the &quot;accessibility/&quot; tests with this patch &lt;https://bugs.webkit.org/attachment.cgi?id=447477&gt; and I can confirm this patch introduces lot of new crashes (430 actually) just on those &quot;accesibility/&quot; tests. Those crashes were not happening before this patch.

I have uploaded here the details of those crash logs: https://people.igalia.com/clopez/wkbug/225724/layout-test-results/results.html

And sorry for this manual intervention. Ideally the EWS bot itself should report the crash logs. We plan to have the crash log reports automated ASAP so we don&apos;t need to do any manual steps to get those logs.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428434</attachid>
            <date>2021-05-12 17:09:34 -0700</date>
            <delta_ts>2021-05-12 17:13:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20210512170933.patch</filename>
            <type>text/plain</type>
            <size>82657</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI4ODJhMGQ1ZjA2ZDE0Y2Nk
MzAzZjM1MTg5MGZhYjBhZmVhNDZhODMuLmRjOWZiMmVkMTJjYTI4MzA0OTdlYzliYjQ5ZWE5ZTVk
YjVlNDkwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMTIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwcm9qZWN0cyBzdGlsbCB1
c2luZyBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyIGFuZCBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzLgorICAgICAgICBUaGVyZSBpcyBvbmUgcHJvamVjdCBzdGlsbCB1c2luZyBXS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLgorICAgICAgICBJIGxlZnQgdGhlc2UgZGVwcmVjYXRlZCBidXQg
c3RpbGwgZnVuY3Rpb25hbCBhbmQgbm90ZWQgcmFkYXJzIGZvciB3aGVuIHRoZXkgY2FuIGFsc28g
YmUgcmVtb3ZlZC4KKworICAgICAgICBUaGUgcmVzdCBvZiB0aGUgQVBJIGlzIHJlbW92ZWQuICBT
b21lIG9mIGl0IHdhcyBtb3ZlZCB0byBhbiBpbnRlcm5hbC1vbmx5IGhlYWRlciB0byBsZWF2ZSBX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwIHVudG91Y2hlZC4KKyAgICAgICAgTG90cyBvZiB0ZXN0cyBh
cmUgdXBkYXRlZCB0byBzZXQgcHJlZmVyZW5jZXMgbGlrZSB0aGUgbW9kZXJuIEFQSSBkb2VzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VH
ZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHA6
CisgICAgICAgIChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0
VHlwZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250
cm9sbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3BhZ2VHcm91cF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF9zZXRQYWdlR3JvdXA6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1LTEwICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIElQQzo6U2VtYXBob3JlOjp3
YWl0IHJldHVybiBhIHN0YXRlIGJvb2xlYW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCmluZGV4IDYzYWYwNWNkZmE4MDRjNTgwNjA0ODdmMGRjYjAxN2I1OWUwZWQwMjUu
LjU3OTExNTM2MTkzMTU5ZDQyMGQ2YmQwOGYwYTFhNWY5ODViZWZjYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTUzLDExICsxNTMsNiBAQCBXS0NvbnRl
eHRSZWYgV0tQYWdlR2V0Q29udGV4dChXS1BhZ2VSZWYgcGFnZVJlZikKICAgICByZXR1cm4gdG9B
UEkoJnRvSW1wbChwYWdlUmVmKS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkpOwogfQogCi1XS1Bh
Z2VHcm91cFJlZiBXS1BhZ2VHZXRQYWdlR3JvdXAoV0tQYWdlUmVmIHBhZ2VSZWYpCi17Ci0gICAg
cmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZVJlZiktPnBhZ2VHcm91cCgpKTsKLX0KLQogV0tQYWdl
Q29uZmlndXJhdGlvblJlZiBXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24oV0tQYWdlUmVmIHBh
Z2VSZWYpCiB7CiAgICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZVJlZiktPmNvbmZpZ3VyYXRp
b24oKS5jb3B5KCkubGVha1JlZigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmgKaW5kZXggYzUxYjgxNjJjODk3MzRhYjE1MmJlZjBlOTkyMzM3ZDU1ZjJkZThhNi4uMjRlODc4
ZjMxMGJhY2FiMjliN2UwOTFlNTVmNmIzMTIyODUxYWY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmgKQEAgLTU4LDcgKzU4LDYgQEAgZXh0ZXJuICJDIiB7CiBXS19FWFBP
UlQgV0tUeXBlSUQgV0tQYWdlR2V0VHlwZUlEKHZvaWQpOwogCiBXS19FWFBPUlQgV0tDb250ZXh0
UmVmIFdLUGFnZUdldENvbnRleHQoV0tQYWdlUmVmIHBhZ2UpOwotV0tfRVhQT1JUIFdLUGFnZUdy
b3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91cChXS1BhZ2VSZWYgcGFnZSk7CiAKIFdLX0VYUE9SVCBX
S1BhZ2VDb25maWd1cmF0aW9uUmVmIFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihXS1BhZ2VS
ZWYgcGFnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUNvbmZpZ3VyYXRpb25SZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHAKaW5kZXggNzliZWQxZmQxZWNlODg4M2JiYjQ4NDU5
NGI2NzkxYzY4NTViMDFjYi4uYjUwNjI3ZTIxZjNlMzRlMDhkZDUzYWZkMzY5M2ZlZjM4YjNlMDky
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
Q29uZmlndXJhdGlvblJlZi5jcHAKQEAgLTU1LDE2ICs1NSw2IEBAIHZvaWQgV0tQYWdlQ29uZmln
dXJhdGlvblNldENvbnRleHQoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBX
S0NvbnRlCiAgICAgdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRQcm9jZXNzUG9vbCh0b0ltcGwo
Y29udGV4dCkpOwogfQogCi1XS1BhZ2VHcm91cFJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFn
ZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKLXsKLSAgICByZXR1
cm4gdG9BUEkodG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5wYWdlR3JvdXAoKSk7Ci19Ci0KLXZvaWQg
V0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNv
bmZpZ3VyYXRpb24sIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCkKLXsKLSAgICB0b0ltcGwoY29u
ZmlndXJhdGlvbiktPnNldFBhZ2VHcm91cCh0b0ltcGwocGFnZUdyb3VwKSk7Ci19Ci0KIFdLVXNl
ckNvbnRlbnRDb250cm9sbGVyUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENv
bnRyb2xsZXIoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQogewogICAgIHJl
dHVybiB0b0FQSSh0b0ltcGwoY29uZmlndXJhdGlvbiktPnVzZXJDb250ZW50Q29udHJvbGxlcigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZp
Z3VyYXRpb25SZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZp
Z3VyYXRpb25SZWYuaAppbmRleCAyNzdjMDY2MWYyNjMyYWQ4OTU5MjZmZjliYWQ0YjBhN2M1NjQx
ZTExLi43MDIwMzY4YTdkMTJjMzYzYTZkMjZjZDFjN2FmMWE1MzU0M2RhYjllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJl
Zi5oCkBAIC0zOSw5ICszOSw2IEBAIFdLX0VYUE9SVCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIFdL
UGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUodm9pZCk7CiBXS19FWFBPUlQgV0tDb250ZXh0UmVmIFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRDb250ZXh0KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmln
dXJhdGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChX
S1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLQ29udGV4dFJlZiBjb250ZXh0
KTsKIAotV0tfRVhQT1JUIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdl
R3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKLVdLX0VYUE9SVCB2
b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJl
ZiBjb25maWd1cmF0aW9uLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOwotCiBXS19FWFBPUlQg
V0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250
ZW50Q29udHJvbGxlcihXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwogV0tf
RVhQT1JUIHZvaWQgV0tQYWdlQ29uZmlndXJhdGlvblNldFVzZXJDb250ZW50Q29udHJvbGxlcihX
S1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLVXNlckNvbnRlbnRDb250cm9s
bGVyUmVmIHVzZXJDb250ZW50Q29udHJvbGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcAppbmRleCA2NTE0ZWU4NmRlM2E4NDE0NDgzN2RmNjJm
YzEwMTNkMjNjYWEzNWE5Li45ODBmM2ZjMGVlY2E2OGI3ZDY3MjQ1NGM1ZTA2MTVjZWZiNjljZTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldL
UGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV0tQYWdlR3JvdXBJbnRlcm5hbC5oIgogCiAjaW5jbHVk
ZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElDb250ZW50UnVsZUxpc3QuaCIKQEAgLTQwLDEx
ICs0MCw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLVdLVHlwZUlEIFdLUGFnZUdy
b3VwR2V0VHlwZUlEKCkKLXsKLSAgICByZXR1cm4gdG9BUEkoV2ViUGFnZUdyb3VwOjpBUElUeXBl
KTsKLX0KLQogV0tQYWdlR3JvdXBSZWYgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihX
S1N0cmluZ1JlZiBpZGVudGlmaWVyKQogewogICAgIGF1dG8gcGFnZUdyb3VwID0gV2ViUGFnZUdy
b3VwOjpjcmVhdGUodG9XVEZTdHJpbmcoaWRlbnRpZmllcikpOwpAQCAtNjEsMTEgKzU2LDYgQEAg
V0tQcmVmZXJlbmNlc1JlZiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVm
IHBhZ2VHcm91cFJlZikKICAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlR3JvdXBSZWYpLT5w
cmVmZXJlbmNlcygpKTsKIH0KIAotV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYgV0tQYWdlR3Jv
dXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQot
ewotICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VHcm91cFJlZiktPnVzZXJDb250ZW50Q29u
dHJvbGxlcigpKTsKLX0KLQogdm9pZCBXS1BhZ2VHcm91cEFkZFVzZXJTdHlsZVNoZWV0KFdLUGFn
ZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgV0tTdHJpbmdSZWYgc291cmNlUmVmLCBXS1VSTFJlZiBi
YXNlVVJMUmVmLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0ZXJucywgV0tBcnJheVJlZiBibG9j
a2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1l
cykKIHsKICAgICBhdXRvIHNvdXJjZSA9IHRvV1RGU3RyaW5nKHNvdXJjZVJlZik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaAppbmRleCA2M2ExM2Y3ZDc1MjE4
YmY3ZTJlYmQwM2VmYTA0NWI1NjlmMzgxMGUyLi5hNWEyYWRmMGZmNmQxYzk3ODJmNDBlOGQ3MTAw
YTU5OThiN2M0YjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdy
b3VwLmgKQEAgLTM0LDIwICszNCwxMCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotV0tfRVhQ
T1JUIFdLVHlwZUlEIFdLUGFnZUdyb3VwR2V0VHlwZUlEKHZvaWQpOworLy8gRklYTUU6IFJlbW92
ZSB0aGlzIGZpbGUgb25jZSByZGFyOi8vNzc5Mzk1OTcgYW5kIHJkYXI6Ly83NzkzOTg4MyBhcmUg
cmVzb2x2ZWQuCiAKLVdLX0VYUE9SVCBXS1BhZ2VHcm91cFJlZiBXS1BhZ2VHcm91cENyZWF0ZVdp
dGhJZGVudGlmaWVyKFdLU3RyaW5nUmVmIGlkZW50aWZpZXIpOwotCi1XS19FWFBPUlQgdm9pZCBX
S1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7Ci1XS19FWFBPUlQgV0tQcmVmZXJlbmNlc1JlZiBXS1Bh
Z2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KLVdLX0VY
UE9SVCBXS1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50
Q29udHJvbGxlcihXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOwotCi1XS19FWFBPUlQgdm9pZCBX
S1BhZ2VHcm91cEFkZFVzZXJTdHlsZVNoZWV0KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tT
dHJpbmdSZWYgc291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQ
YXR0ZXJucywgV0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmpl
Y3RlZEZyYW1lcyk7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VHcm91cFJlbW92ZUFsbFVzZXJTdHls
ZVNoZWV0cyhXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOwotICAgIAotV0tfRVhQT1JUIHZvaWQg
V0tQYWdlR3JvdXBBZGRVc2VyU2NyaXB0KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tTdHJp
bmdSZWYgc291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0
ZXJucywgV0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcywgX1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUpOwotV0tfRVhQT1JUIHZvaWQgV0tQ
YWdlR3JvdXBSZW1vdmVBbGxVc2VyU2NyaXB0cyhXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOwor
V0tfRVhQT1JUIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIo
V0tTdHJpbmdSZWYgaWRlbnRpZmllcikgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyk7CitXS19FWFBPUlQgV0tQcmVm
ZXJlbmNlc1JlZiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmIHBhZ2VH
cm91cCkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRQcmVmZXJlbmNlcyk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE2YTA5NjJiODY0MGNmMzVhYTA3MTdiNzFmYjE3NGQzMjhkZDYyZTQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cEludGVy
bmFsLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgor
CisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZmlsZSBvbmNlIHJkYXI6Ly83NDE0Mjk5NSBpcyByZXNv
bHZlZC4KKwordm9pZCBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmLCBX
S1ByZWZlcmVuY2VzUmVmKTsKK3ZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVldChXS1Bh
Z2VHcm91cFJlZiwgV0tTdHJpbmdSZWYgc291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5
UmVmIGFsbG93ZWRVUkxQYXR0ZXJucywgV0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdL
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyk7Cit2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNl
clN0eWxlU2hlZXRzKFdLUGFnZUdyb3VwUmVmKTsKK3ZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU2Ny
aXB0KFdLUGFnZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkws
IFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0
ZXJucywgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLCBfV0tVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSk7Cit2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNlclNjcmlwdHMoV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCmluZGV4IDY2OTIzMGY1Y2I2YTAzNTJj
OTAyNWY5MWRlNjY4ZTM2MGE4NTkzYjYuLmE2Y2RjNDFhNDEyZjdkYmRkYjNmZTg0MzNhNDFkN2Iw
ZWMzMjA0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaApAQCAtMjgsNiArMjgsOCBAQAogI2ltcG9y
dCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZS5oPgogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZmlsZSBvbmNlIHJkYXI6
Ly83NDE0Mjk5NSBpcyByZXNvbHZlZC4KKwogV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJXS1VzZXJDb250ZW50Q29udHJvbGxlciBhbmQgV0tQcmVmZXJlbmNlcyIsIG1hY29z
KDEwLjEwLCAxMC4xNC40KSwgaW9zKDguMCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdD
b250ZXh0R3JvdXAgOiBOU09iamVjdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLm1tCmluZGV4IDhmNDFi
MTIyNzQwNGRlMjY4MzkyZjI0OTg1YjBlMjU1ZTMzMWVkYjAuLjc5NGNmMWZhZjM4ZDI2MTU4ZWYy
Zjg5OWRiN2ViZjA1NjRhODkyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLm1tCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW1wb3J0ICJBUElTdHJpbmcuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2lt
cG9ydCAiV0tBcnJheS5oIgotI2ltcG9ydCAiV0tQYWdlR3JvdXAuaCIKKyNpbXBvcnQgIldLUGFn
ZUdyb3VwSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJlZmVyZW5jZXNSZWYuaCIKICNpbXBvcnQg
IldLUmV0YWluUHRyLmgiCiAjaW1wb3J0ICJXS1NoYXJlZEFQSUNhc3QuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDJiNmM2ZjhlY2Ji
MWU1MGUyMTE3ZDI2ZjFjMDgyYmNhMDhhMmQyNmMuLmJmMjY4Yjg3MzY4ODVmNGU1NGE0YTFlNTZh
YjBlMmY2ZDUwMTkxYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQpAQCAtNDU0LDE2ICs0NTQsOSBAQCBzdGF0aWMgdm9pZCBoYXJkd2FyZUtl
eWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVm
LAogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRXZWJzaXRlRGF0YVN0b3JlKFtfY29uZmlndXJh
dGlvbiB3ZWJzaXRlRGF0YVN0b3JlXS0+X3dlYnNpdGVEYXRhU3RvcmUuZ2V0KCkpOwogICAgIHBh
Z2VDb25maWd1cmF0aW9uLT5zZXREZWZhdWx0V2Vic2l0ZVBvbGljaWVzKFtfY29uZmlndXJhdGlv
biBkZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzXS0+X3dlYnNpdGVQb2xpY2llcy5nZXQoKSk7CiAK
LSNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKGF1dG8gcGFnZUdyb3VwID0gV2ViS2l0Ojp0b0lt
cGwoW19jb25maWd1cmF0aW9uIF9wYWdlR3JvdXBdKSkKLSAgICAgICAgcGFnZUNvbmZpZ3VyYXRp
b24tPnNldFBhZ2VHcm91cChwYWdlR3JvdXApOwotICAgIGVsc2UKLSNlbmRpZgotICAgIHsKLSAg
ICAgICAgTlNTdHJpbmcgKmdyb3VwSWRlbnRpZmllciA9IFtfY29uZmlndXJhdGlvbiBfZ3JvdXBJ
ZGVudGlmaWVyXTsKLSAgICAgICAgaWYgKGdyb3VwSWRlbnRpZmllci5sZW5ndGgpCi0gICAgICAg
ICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKFdlYktpdDo6V2ViUGFnZUdyb3Vw
OjpjcmVhdGUoZ3JvdXBJZGVudGlmaWVyKS5wdHIoKSk7Ci0gICAgfQorICAgIE5TU3RyaW5nICpn
cm91cElkZW50aWZpZXIgPSBbX2NvbmZpZ3VyYXRpb24gX2dyb3VwSWRlbnRpZmllcl07CisgICAg
aWYgKGdyb3VwSWRlbnRpZmllci5sZW5ndGgpCisgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5z
ZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQYWdlR3JvdXA6OmNyZWF0ZShncm91cElkZW50aWZpZXIp
LnB0cigpKTsKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRBZGRpdGlvbmFsU3VwcG9ydGVk
SW1hZ2VUeXBlcyhtYWtlVmVjdG9yPFN0cmluZz4oW19jb25maWd1cmF0aW9uIF9hZGRpdGlvbmFs
U3VwcG9ydGVkSW1hZ2VUeXBlc10pKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA0MDYy
OGRhZjQxMTE5ZjE3NGI5ZDM4OTMxNjAzMGMyMWMxNjA2OTNmLi41ODAyMmFiNDc2ZGY3YWI0MDc2
OGQ3OTNiMjU2YTg2M2RiZDM0NjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtMTU1LDcg
KzE1NSw2IEBAIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2Fk
aW5nUXVpY2tMb29rUHJldmlldygpCiAgICAgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92
ZXJyaWRlRW5hYmxlZDsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXS1JldGFpblB0cjxXS1Bh
Z2VHcm91cFJlZj4gX3BhZ2VHcm91cDsKICAgICBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBzOwog
ICAgIEJPT0wgX3NlcnZpY2VDb250cm9sc0VuYWJsZWQ7CiAgICAgQk9PTCBfcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjsKQEAgLTQyOSw3ICs0MjgsNiBAQCBzdGF0
aWMgYm9vbCBkZWZhdWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1By
ZXZpZXcoKQogICAgIGNvbmZpZ3VyYXRpb24tPl9zaG93c1VSTHNJblRvb2xUaXBzID0gc2VsZi0+
X3Nob3dzVVJMc0luVG9vbFRpcHM7CiAgICAgY29uZmlndXJhdGlvbi0+X3NlcnZpY2VDb250cm9s
c0VuYWJsZWQgPSBzZWxmLT5fc2VydmljZUNvbnRyb2xzRW5hYmxlZDsKICAgICBjb25maWd1cmF0
aW9uLT5fcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciA9IHNlbGYt
Pl9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOwotICAgIGNvbmZp
Z3VyYXRpb24tPl9wYWdlR3JvdXAgPSBzZWxmLl9wYWdlR3JvdXA7CiAjZW5kaWYKICNpZiBFTkFC
TEUoREFUQV9ERVRFQ1RJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgY29uZmlndXJh
dGlvbi0+X2RhdGFEZXRlY3RvclR5cGVzID0gc2VsZi0+X2RhdGFEZXRlY3RvclR5cGVzOwpAQCAt
MTExOCwxNiArMTExNiw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyID0gcmVxdWlyZXNV
c2VyQWN0aW9uOwogfQogCi0tIChXS1BhZ2VHcm91cFJlZilfcGFnZUdyb3VwCi17Ci0gICAgcmV0
dXJuIF9wYWdlR3JvdXAuZ2V0KCk7Ci19Ci0KLS0gKHZvaWQpX3NldFBhZ2VHcm91cDooV0tQYWdl
R3JvdXBSZWYpcGFnZUdyb3VwCi17Ci0gICAgX3BhZ2VHcm91cCA9IHBhZ2VHcm91cDsKLX0KLQog
LSAodm9pZClfc2V0Q1BVTGltaXQ6KGRvdWJsZSljcHVMaW1pdAogewogICAgIF9wYWdlQ29uZmln
dXJhdGlvbi0+c2V0Q1BVTGltaXQoY3B1TGltaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaAppbmRleCA5MDljOTk3NWUwNzMyNTMzZTkwZDgxYmE0M2U0NjlhNzlhYzdiN2MyLi43
OGFiMjQ1ZmEwYzBkYWE4MjBjZTg2NzJkZjdiZTNiOGFjNzBlMGM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaApAQCAtMTAwLDcgKzEwMCw2IEBAIHR5cGVkZWYgTlNfRU5VTShO
U1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVk
IFdLX0FQSV9ERVBSRUNBVEVEKCJJbWFnZSBjb250cm9scyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRl
ZCIsIG1hY29zKDEwLjEyLCBXS19NQUNfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2Vy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkd3JpdGUsIHNldHRlcj1fc2V0Q1BVTGltaXQ6KSBkb3VibGUgX2NwdUxpbWl0IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0
ZSwgc2V0dGVyPV9zZXRQYWdlR3JvdXA6KSBXS1BhZ2VHcm91cFJlZiBfcGFnZUdyb3VwIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcsIHNldHRlcj1fc2V0V2Vic2l0ZURhdGFTdG9yZTopIF9XS1dlYnNpdGVEYXRh
U3RvcmUgKl93ZWJzaXRlRGF0YVN0b3JlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIndlYnNpdGVEYXRhU3RvcmUiLCBtYWNvcygxMC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5LjAp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGQ2ODAxZmM1MTIxNzBjYmY5OWE2MjQ5NzEyNzAxZTRhMWYwOWIyMDguLjhiZTUxODMyMTFh
OWU0ZGU5ZjhkY2IzNTUzN2JhYjM1MDE1MTJjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI3Niw2ICsxMjc2LDcgQEAKIAkJNUM5
QTkxMTIyMjhGNjlDQzAwNUM1QjE3IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3OEZF
IC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OwogCQk1QzlBOTExMzIyOEY2OUNEMDA1QzVCMTcg
LyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2VydmljZU1haW4ubW0g
Ki87IH07CiAJCTVDOUE5MTE0MjI4RjY5Q0UwMDVDNUIxNyAvKiBYUENTZXJ2aWNlTWFpbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk2MTZC
NDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKKwkJNUM5REQzMjYyNjRD
N0Y3NDAwRTA3NDQyIC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUREMzI1MjY0QzdGNzQwMEUwNzQ0MiAvKiBX
S1BhZ2VHcm91cEludGVybmFsLmggKi87IH07CiAJCTVDOUU1NjgzMURGN0YxQjMwMEM5RUUzMyAv
KiBXS1dlYnNpdGVQb2xpY2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM5RTU2ODExREY3RjA1NTAwQzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUNB
MjZEODEyMTdBQkQ1QjAwRjk3QTM1IC8qIFdLU2FmZUJyb3dzaW5nV2FybmluZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNBMjZEODAyMTdBQkJCNjAw
Rjk3QTM1IC8qIFdLU2FmZUJyb3dzaW5nV2FybmluZy5oICovOyB9OwogCQk1Q0EyNkQ4MzIxN0FE
MUI4MDBGOTdBMzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNBMjZEN0YyMTdBQkJCNjAwRjk3QTM1IC8q
IFdLU2FmZUJyb3dzaW5nV2FybmluZy5tbSAqLzsgfTsKQEAgLTQ0OTcsNiArNDQ5OCw3IEBACiAJ
CTVDOEREMzgxMUZFNDU1Q0EwMEYyQTU1NiAvKiBXZWJzaXRlQXV0b3BsYXlRdWlyay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlQXV0b3BsYXlRdWlyay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlDNUMwMjI0MzA1MzU4MDBCQjY3NDAgLyogVXNl
ckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDOUM1QzAzMjQzMDUzNTgwMEJCNjc0MCAvKiBVc2VyQ29udGVudENv
bnRyb2xsZXJQYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1QzlERDMyNTI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VHcm91cEludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUU1NjgwMURGN0YwNTUwMEM5
RUUzMyAvKiBXS1dlYnNpdGVQb2xpY2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXS1dlYnNpdGVQb2xpY2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDOUU1NjgxMURGN0YwNTUwMEM5RUUzMyAvKiBXS1dlYnNpdGVQb2xpY2llcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYnNpdGVQb2xpY2llcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlFRjJFNzIxRjA1OEY5MDAzQkRDNTYgLyogTmV0
d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwMzExLDYgKzEwMzEzLDcgQEAKIAkJCQkxQUI4QTFFRjE4NDAwQjAwMDBF
OUFFNjkgLyogV0tQYWdlRm9ybUNsaWVudC5oICovLAogCQkJCUJDN0I2MzM2MTJBNDVBQkEwMEQx
NzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgKi8sCiAJCQkJQkM3QjYzMzUxMkE0NUFCQTAwRDE3NEE0
IC8qIFdLUGFnZUdyb3VwLmggKi8sCisJCQkJNUM5REQzMjUyNjRDN0Y3NDAwRTA3NDQyIC8qIFdL
UGFnZUdyb3VwSW50ZXJuYWwuaCAqLywKIAkJCQkyRDlFQTMwQzFBOTZDQjU5MDAyRDI4MDcgLyog
V0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLywKIAkJCQkxQUI4QTFFQjE4NDAwODA5MDBF
OUFFNjkgLyogV0tQYWdlTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJMkQ3MzAzNzgxQTdDMkI3NTAw
RjhGNDg3IC8qIFdLUGFnZU5hdmlnYXRpb25DbGllbnQuaCAqLywKQEAgLTEyODYxLDYgKzEyODY0
LDcgQEAKIAkJCQkxQUI4QTFGNjE4NDAwQjlEMDBFOUFFNjkgLyogV0tQYWdlRmluZE1hdGNoZXND
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjhBMUYwMTg0MDBCMDAwMEU5QUU2OSAvKiBX
S1BhZ2VGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdCNjMzNzEyQTQ1QUJBMDBE
MTc0QTQgLyogV0tQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDOUREMzI2MjY0QzdG
NzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91cEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQky
RDlFQTMwRDFBOTZDQjU5MDAyRDI4MDcgLyogV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQjhBMUVDMTg0MDA4MDkwMEU5QUU2OSAvKiBXS1BhZ2VMb2Fk
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkQwMjE5MTJBQzQyNkMwMEU3MzJBMyAv
KiBXS1BhZ2VMb2FkVHlwZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU5MTBiZTg5MTQ0Y2EyZTQyYTJmYzg2YmRh
YWNkMThiZDIzYjEwZjQuLmJjZTczZjU4NTRjMTRiNmI1YjEyZmUyOTVhOTRiMjFlOTZlNDc1YzMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAyMS0wNS0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBhcyBtdWNoIG9mIFdLUGFnZUdyb3VwUmVmIGFz
IHBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU3MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RP
TVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bk5vQ2FjaGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENy
YXNoLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9QYXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1By
aXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9sbFBp
bm5pbmdCZWhhdmlvcnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZpZ3VyYXRp
b24uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMv
RWRpdG9yQ29tbWFuZHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9u
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZTo6aW5pdGlhbGl6ZVZpZXcp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmll
dyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgorCiAyMDIx
LTA1LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQWRkIHVuaXQgdGVzdCBmb3IgcjI3NDEyOQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1X
ZWJWaWV3LmgKaW5kZXggNWU4NTAyNjg5ZjEzZThlZDExOWUzMWE3NmY1YmNlYzYwOThhY2U3NS4u
YWY1OWFiZWQ2OWQwODg5OTIwMDg3NGMzNWM0NzYzZGJlNGI3ODU2NiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1BsYXRmb3JtV2ViVmlldy5oCkBAIC03MywxMSArNzMsOCBAQCBjbGFzcyBQbGF0Zm9ybVdl
YlZpZXcgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBsYXRmb3JtV2ViVmlldyk7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYp
OwotICAgIGV4cGxpY2l0IFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3Vw
UmVmID0gMCk7CisgICAgZXhwbGljaXQgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZik7CiAg
ICAgZXhwbGljaXQgUGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSk7Ci0jaWYg
UExBVEZPUk0oTUFDKQotICAgIGV4cGxpY2l0IFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYs
IFdLUGFnZUdyb3VwUmVmLCBDbGFzcyB3a1ZpZXdTdWJjbGFzcyk7Ci0jZW5kaWYKICAgICB+UGxh
dGZvcm1XZWJWaWV3KCk7CiAKICAgICBXS1BhZ2VSZWYgcGFnZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBmY2RlYWI0ZjQ5ZDc3OTk3ZDBiMTNkYTgyYWRkY2NjMjllNzNjM2Iz
Li4xYWU2ZDAwMTliMzY5ZGY3ZjEyYjMwOTU0MTNkZTc0ODI5Mjc4M2U1IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNjc1LDcgKzY3NSw3IEBACiAJCTdDOUVEOThCMTdBMTlGNEIwMEU0REMz
MyAvKiBhdHRyaWJ1dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOUVEOThBMTdBMTlEMDYwMEU0
REMzMyAvKiBhdHRyaWJ1dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sICovOyB9OwogCQk3Q0Ix
ODRDNjFBQTNGMjEwMDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lvbnMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCMTg0QzQxQUEzRjIxMDAwNjZF
REZEIC8qIENvbnRlbnRFeHRlbnNpb25zLmNwcCAqLzsgfTsKIAkJN0NCRDVBMjMyMkRFNDJBNjAw
NEE5RTMyIC8qIFdURlN0cmluZ1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0JENUEyMjIyREU0MkE2MDA0QTlFMzIgLyogV1RGU3Ry
aW5nVXRpbGl0aWVzLmNwcCAqLzsgfTsKLQkJN0NDQjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBh
Z2VHcm91cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKKwkJN0ND
QjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQ0I0REE3MUM4M0FFNzMwMENDNjkxOCAvKiBQ
YWdlR3JvdXAubW0gKi87IH07CiAJCTdDQ0I5OTIxMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2VySW5p
dGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQjk5MjAxRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJ
bml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gKi87IH07CiAJCTdDQ0I5OTIzMUQz
QjRBNDYwMDM5MjJGNiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQ0I5OTIyMUQz
QjQ0RTcwMDM5MjJGNiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sICovOyB9Owog
CQk3Q0NFN0VBNTFBNDExQTA4MDA0NDdDNEMgLyogSmF2YVNjcmlwdFRlc3RNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMDgxMjI0MDEzRkMxNzI0
MDBEQzM5QUUgLyogSmF2YVNjcmlwdFRlc3RNYWMubW0gKi87IH07CkBAIC04NjgsOCArODY4LDgg
QEAKIAkJOTNGNTZEQTcxRTVGOTE3NDAwM0VERTg0IC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzgzRTAzMzFEMEE1
RjI3MDBGRUJDRjMgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKIAkJOTNGNTZEQTkxRTVGOTE5
RDAwM0VERTg0IC8qIFdLV2ViVmlld1NuYXBzaG90Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNTZEQTgxRTVGOTE4MTAwM0VERTg0IC8qIFdLV2Vi
Vmlld1NuYXBzaG90Lm1tICovOyB9OwogCQk5M0Y3RTg2RjE0REM4RTVDMDBDODRBOTkgLyogTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y3RTg2RTE0REM4RTVCMDBDODRB
OTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi87
IH07Ci0JCTk1MDk1RjIwMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwOTVGMUYy
NjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi87IH07CiAJCTkzRkNE
QjM0MjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZDREIzMzI2MzYzMTU2MDA0NkREN0Qg
LyogU29ydGVkQXJyYXlNYXAuY3BwICovOyB9OworCQk5NTA5NUYyMDI2MkZGRkE1MDAwMEQ5MjAg
LyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRv
cENvbG9yLm1tICovOyB9OwogCQk5NTBFNENDMTI1MkU3NTI0MDA3MTY1OUYgLyogaU9TU3R5bHVz
U3VwcG9ydC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovOyB9Owog
CQk5NTNBQkIzNTI1QzBENjgyMDA0QzhCNzMgLyogUGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9y
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUzQUJC
MzQyNUMwRDY4MTAwNEM4QjczIC8qIFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSAqLzsg
fTsKIAkJOTVBNTI0OTUyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUE1MjQ5NDI1
ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLzsgfTsKQEAgLTI0Njcs
NyArMjQ2Nyw3IEBACiAJCTdDQkJBMDc2MTlCQjhBOTEwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPU09iamVjdFB0ci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAv
KiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGU3RyaW5nVXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDM0UxRkExOTdFMjM0
MTAwQkU2MjUyIC8qIFVzZXJDb250ZW50Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJDb250ZW50Q29udHJvbGxlci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91
cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXAuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0NCNERBNzFDODNBRTczMDBDQzY5MTgg
LyogUGFnZUdyb3VwLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGFnZUdyb3VwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NCOTkyMDFEM0I0
MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJJbml0aWF0ZWRBY3Rp
b25Jbk5hdmlnYXRpb25BY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
Q0I5OTIyMUQzQjQ0RTcwMDM5MjJGNiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJs
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NFN0U4QzFBNDExNDRFMDA0
NDdDNEMgLyogbGliVGVzdFdlYktpdEFQSS5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBsaWJUZXN0V2ViS2l0QVBJLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CkBAIC0yNTY1LDggKzI1NjUsOCBAQAogCQk5M0Y1NkRBODFFNUY5MTgxMDAzRURFODQgLyogV0tX
ZWJWaWV3U25hcHNob3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1dlYlZpZXdTbmFwc2hvdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNG
N0U4NkIxNERDOEU0RDAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZy
YW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTUwOTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNh
bXBsZWRQYWdlVG9wQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBTYW1wbGVkUGFnZVRvcENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0ZDREIzMzI2MzYzMTU2MDA0NkREN0QgLyogU29ydGVkQXJyYXlNYXAuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU29ydGVkQXJyYXlNYXAuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxl
ZFBhZ2VUb3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFNhbXBsZWRQYWdlVG9wQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1
MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5bHVzU3VwcG9ydC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQyNUMwRDY4MTAwNEM4QjczIC8qIFBhZ2VF
eHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1l
Q29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZp
ZXdUaGVtZUNvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDMxOSw3ICs0
MzE5LDcgQEAKIAkJCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8sCiAJCQkJMEY1NjUxRjYxRkNFNERE
QjAwMzEwRkJDIC8qIE5vSGlzdG9yeUl0ZW1TY3JvbGxUb0ZyYWdtZW50Lm1tICovLAogCQkJCTFD
QjJGMjdCMjRGODgzNzkwMDBBNUJDMSAvKiBPcnRob2dvbmFsRmxvd0F2YWlsYWJsZVNpemUubW0g
Ki8sCi0JCQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8sCisJ
CQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLywKIAkJCQlCQzkw
OTc3OTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCiAJCQkJQkMyRDAw
NDgxMkE5RkRGQTAwRTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdl
Rm9yRnJhbWUuY3BwICovLAogCQkJCTI3MkE2OTBGMjJGMDEyQzcwMDBGREFCQiAvKiBQYWdlTG9h
ZFN0YXRlLmNwcCAqLywKQEAgLTU1NzksNyArNTU3OSw3IEBACiAJCQkJQzEwNEJDMUYyNTQ3MjM3
MTAwQzA3OEM5IC8qIE92ZXJyaWRlQXBwbGVMYW5ndWFnZXNQcmVmZXJlbmNlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkRBMjU4NkYyMjVDNjdEQzAwQjQ1QzFDIC8qIE92ZXJyaWRlVmlld3BvcnRB
cmd1bWVudHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5NTNBQkIzNTI1QzBENjgyMDA0QzhCNzMg
LyogUGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJN0ND
QjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdGMDcxQTQxMUFFNjAwNDQ3QzRDIC8qIFBhZ2VMb2FkQmFzaWMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdGMDgxQTQxMUFFNjAwNDQ3QzRDIC8qIFBhZ2VMb2FkRGlkQ2hh
bmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjcy
QTY5MTAyMkYwMTJEQTAwMEZEQUJCIC8qIFBhZ2VMb2FkU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5
bmNYSFJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNT
eW5jWEhSVGVzdC5tbQppbmRleCA0N2Y1ZTg4NWNkNmEwYzE0ZjM5YWZiNzE4YThiYzVkOTllOWY1
YzdkLi5hZDM5OTFkNTZmMjFlNTYyZTI0NWEyNDA3YjYzNjVjNDk4OGU2YWJkIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRl
c3QubW0KQEAgLTUyLDkgKzUyLDcgQEAgVEVTVChXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdCwg
U3luY1hIUikKICAgICBSZXRhaW5QdHI8V0tCcm93c2luZ0NvbnRleHRHcm91cD4gYnJvd3NpbmdD
b250ZXh0R3JvdXAgPSBhZG9wdE5TKFtbV0tCcm93c2luZ0NvbnRleHRHcm91cCBhbGxvY10gaW5p
dFdpdGhJZGVudGlmaWVyOkAiVGVzdElkZW50aWZpZXIiXSk7CiAKICAgICAvLyBBbGxvdyBmaWxl
IFVSTHMgdG8gbG9hZCBub24tZmlsZSByZXNvdXJjZXMKLSAgICBXS1JldGFpblB0cjxXS1ByZWZl
cmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChw
cmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhi
cm93c2luZ0NvbnRleHRHcm91cC5nZXQoKS5fcGFnZUdyb3VwUmVmLCBwcmVmZXJlbmNlcy5nZXQo
KSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93
ZWQoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhicm93c2luZ0NvbnRleHRHcm91cC5nZXQoKS5f
cGFnZUdyb3VwUmVmKSwgdHJ1ZSk7CiAKICAgICBSZXRhaW5QdHI8V0tWaWV3PiB3a1ZpZXcgPSBh
ZG9wdE5TKFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApIHByb2Nlc3NHcm91cDpwcm9jZXNzR3JvdXAuZ2V0KCkgYnJvd3NpbmdDb250ZXh0R3Jv
dXA6YnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCldKTsKICAgICAgUmV0YWluUHRyPFRlc3RCcm93
c2luZ0NvbnRleHRMb2FkRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RCcm93c2lu
Z0NvbnRleHRMb2FkRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQmxvY2tUb1J1bk9uTG9hZDpeKFdL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqc2VuZGVyKSB7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nsb3NlRnJvbVdpdGhpbkNyZWF0ZVBh
Z2UuY3BwCmluZGV4IDI4ODVmNTJiYTgxYTIzZTMwMTI3MzMxNDk0ZTdjYjIxN2MzYzU2N2MuLmQ2
NWQ0NTM1ODQwMzUyNGE1ZDc1ZWE5OGI0ZTc1Y2Y1Y2ZlYTlhNmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nsb3NlRnJvbVdpdGhpbkNy
ZWF0ZVBhZ2UuY3BwCkBAIC03NiwxMCArNzYsOCBAQCBURVNUKFdlYktpdCwgQ2xvc2VGcm9tV2l0
aGluQ3JlYXRlUGFnZSkKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCks
ICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIC8vIEFsbG93IGZpbGUgVVJMcyB0byBsb2FkIG5vbi1m
aWxlIHJlc291cmNlcwotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVu
Y2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUGFnZUdyb3VwUmVm
IHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7CisgICAgV0tS
ZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0
aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2Vi
Vmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vz
c0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFn
ZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJlbmNlcy5nZXQoKSk7CiAgICAg
CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJM
Rm9yUmVzb3VyY2UoImNsb3NlLWZyb20td2l0aGluLWNyZWF0ZS1wYWdlIiwgImh0bWwiKSk7CiAg
ICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKQEAgLTEyMSwxMCAr
MTE5LDggQEAgVEVTVChXZWJLaXQsIENyZWF0ZVBhZ2VUaGVuRG9jdW1lbnRPcGVuTUlNRVR5cGUp
CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFz
ZSk7CiAKICAgICAvLyBBbGxvdyBmaWxlIFVSTHMgdG8gbG9hZCBub24tZmlsZSByZXNvdXJjZXMK
LSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0so
V0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBX
S1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJl
ZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVu
Y2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSku
Z2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNB
bGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZl
cmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0KCkpOwogCiAgICAgdGVzdERvbmUgPSBm
YWxzZTsKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVh
dGVVUkxGb3JSZXNvdXJjZSgid2luZG93LW9wZW4tdGhlbi1kb2N1bWVudC1vcGVuIiwgImh0bWwi
KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5k
b3dFeHRlbnNpb25CYXNpYy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9E
T01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKaW5kZXggNTVhYTM3ZTEzMDJjMjZkMmU5NTAzZDA1
YTg4YmM3MTQ1Y2ZjNjUzOS4uZDAyZmYyM2EyM2RiZDU3OGI1MTcxZDI2NGI1OWJiMDg1YTBjYjI4
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93
RXh0ZW5zaW9uQmFzaWMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcApAQCAtODIsOSArODIsNyBAQCBzdGF0aWMgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3Ry
aW5nUmVmIG1lc3NhZwogCiBURVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9u
QmFzaWMpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFk
b3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiRE9NV2luZG93RXh0ZW5zaW9uQmFzaWNQYWdlR3JvdXAiKSkpOyAKLQotICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
Q29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMiLCBw
YWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljIikpOwogCiAgICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGll
bnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1zZXQoJmluamVjdGVkQnVuZGxlQ2xp
ZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQpKTsKQEAgLTk4LDcgKzk2LDcgQEAg
VEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljKQogICAgIC8vIG1v
ZGVsIHRoYXQgYWN0dWFsbHkgYWxsb3dzIGZvciBhIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBX
S0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQuZ2V0KCksIGtXS0NhY2hlTW9kZWxEb2N1bWVu
dEJyb3dzZXIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwg
cGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0Lmdl
dCgpKTsKICAgICAKICAgICAvLyBNYWtlIHN1cmUgdGhlIGV4dGVuc2lvbnMgZm9yIGVhY2ggZnJh
bWUgYXJlIGluc3RhbGxlZCBpbiBlYWNoIHdvcmxkLgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVm
PiB1cmwxID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFt
ZSIsICJodG1sIikpOwpAQCAtMTM3LDkgKzEzNSw3IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9E
T01XaW5kb3dFeHRlbnNpb25CYXNpYykKIAogVEVTVChXZWJLaXQsIERPTVdpbmRvd0V4dGVuc2lv
bkNyYXNoT25SZWxvYWQpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VH
cm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiRE9NV2luZG93RXh0ZW5zaW9uQmFzaWNQYWdlR3JvdXAiKSkp
OwotCi0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25C
YXNpYyIsIHBhZ2VHcm91cC5nZXQoKSkpOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4g
Y29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVz
dCgiRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMiKSk7CiAKICAgICBXS0NvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudFYwIGluamVjdGVkQnVuZGxlQ2xpZW50OwogICAgIG1lbXNldCgmaW5qZWN0ZWRC
dW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkpOwpAQCAtMTUzLDcg
KzE0OSw3IEBAIFRFU1QoV2ViS2l0LCBET01XaW5kb3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQog
ICAgIC8vIG1vZGVsIHRoYXQgYWN0dWFsbHkgYWxsb3dzIGZvciBhIGJhY2svZm9yd2FyZCBjYWNo
ZS4KICAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQuZ2V0KCksIGtXS0NhY2hlTW9k
ZWxEb2N1bWVudEJyb3dzZXIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9u
Tm9DYWNoZS5jcHAKaW5kZXggZTE2OTZkNWJkNjU2OTQ3Mjc4Zjk0NzQ4NTI1MzE3MmJjNDliN2Nh
Ny4uYzdkMGY4ZDA4ZWEyMjQyYWJjN2FkMzg2NTI0OWFhOGMyNTRmMjEwMyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNo
ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0
ZW5zaW9uTm9DYWNoZS5jcHAKQEAgLTgzLDkgKzgzLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNz
YWcKIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUpCiB7
Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQ
YWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZVBhZ2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFp
blB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRG
b3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUiLCBwYWdlR3Jv
dXAuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGUiKSk7CiAKICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudFYx
IGluamVjdGVkQnVuZGxlQ2xpZW50OwogICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQs
IDAsIHNpemVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkpOwpAQCAtOTgsNyArOTYsNyBAQCBURVNU
KFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZSkKICAgICAvLyBEaXNh
YmxlIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChj
b250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpOwogCi0gICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIC8vIE1ha2Ugc3Vy
ZSB0aGUgZXh0ZW5zaW9ucyBmb3IgZWFjaCBmcmFtZSBhcmUgaW5zdGFsbGVkIGluIGVhY2ggd29y
bGQuCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybDEgPSBhZG9wdFdLKFV0aWw6OmNyZWF0
ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1lIiwgImh0bWwiKSk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFs
ZXJ0Q3Jhc2guY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRT
dGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcAppbmRleCBkYTQ1NDQ3Y2FmMTAwNDExZWEyNzNl
YjVmYzUzMWRmNzEzYWUwMDRjLi5kNGEzNTEyMzQ1ZWQ1YzJhNDIzYTYzZjhiMDk2ZjZiY2UzN2Ji
NTlkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVu
dFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKQEAgLTQ4
LDEwICs0OCw4IEBAIHN0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmCiAKIFRFU1QoV2ViS2l0LCBEb2N1
bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdL
UGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElk
ZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRvY3VtZW50U3RhcnRVc2Vy
U2NyaXB0QWxlcnRDcmFzaFRlc3RQYWdlR3JvdXAiKSkpOyAKLQotICAgIFdLUmV0YWluUHRyPFdL
Q29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVj
dGVkQnVuZGxlVGVzdCgiRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCIsIHBh
Z2VHcm91cC5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0
KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250
ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJE
b2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hUZXN0IikpOworICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNs
aWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2
aWNlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVNZWRp
YURldmljZXMuY3BwCmluZGV4IGEzZDdiOWNkZDcwNDE4OGVmZWU3M2ZmYjBmMTBjNTgzMTcwNzkw
NDcuLmFiN2E2ZjI0NDc1ODM3Y2JiZDU1OWI4ZmI4ZDFmNmM1YjUyNzAzZWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFE
ZXZpY2VzLmNwcApAQCAtNTEsMTggKzUxLDE4IEBAIFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZp
Y2VzKQogewogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENv
bmZpZ3VyYXRpb24obnVsbHB0cikpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+
IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGls
Ojp0b1dLKCJFbnVtZXJhdGVEZXZpY2VzIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkp
OwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQo
cHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQogICAgIFdLUGFnZVVJ
Q2xpZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xp
ZW50KSk7CiAgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gNjsKICAgICB1aUNsaWVudC5jaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4gPSBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25D
YWxsYmFjazsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBh
Z2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJW
aWV3LnBhZ2UoKSkpLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NG
cm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxz
ZSk7CisKKwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xp
ZW50LmJhc2UpOwogCiAgICAgYXV0byB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJlbnVtZXJhdGVNZWRpYURldmljZXMiLCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVO
b0hpc3RvcnlDYWxsYmFjay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9F
cGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCmluZGV4IDY4NWY5
NDNhYjcyYmM2Yzc0ZWZmYjA5MzVhYjZmY2Q5YTMxZWZiNDUuLjA5MWJlMmMyYzlkODhjOGE1ZTMx
ZjUzMWM5NTMzY2Y4OWRiOTE3ZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1
c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcApAQCAtNzcsMTIgKzc3LDkgQEAgVEVTVChXZWJL
aXQsIEVwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjaykKIAogICAgIFdL
UGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmcGFnZUxvYWRlckNs
aWVudC5iYXNlKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVu
Y2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRyPFdL
UHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZl
cmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgp
KSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKIAotICAgIFdLUGFnZUdyb3VwUmVm
IHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQ
YWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKLQog
ICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJwdXNoLXN0YXRlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJW
aWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2
aW9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxl
RGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKaW5kZXggNmQ0ZjFiN2Y0NWIxMDE1
Zjk1YTBjNTYzZTJmZWYyZWU4ZmFiN2YyNi4uMWViY2Q0ZWU4ZWFmZTFiMjJlMGMzYTU5NTRhYmMx
MmQzMjkzM2M0YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVy
cmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwCkBAIC01MCwxMCArNTAsOCBAQCBzdGF0aWMgdm9pZCBy
dW5KYXZhU2NyaXB0QWxlcnRFbmFibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVy
dFRleHQsIFdLRgogCiBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVm
PiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJp
ZGVCdWlsdGluc0JlaGF2aW9yVGVzdFBhZ2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0Jl
aGF2aW9yVGVzdCIsIHBhZ2VHcm91cC5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tD
b250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0
ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhh
dmlvclRlc3QiKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQs
IDAsIHNpemVvZih1aUNsaWVudCkpOwpAQCAtODQsMTAgKzgyLDggQEAgc3RhdGljIHZvaWQgcnVu
SmF2YVNjcmlwdEFsZXJ0RGlzYWJsZWQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0
VGV4dCwgV0sKIAogVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvclRlc3QpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBh
Z2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWls
dGluc0JlaGF2aW9yVGVzdFBhZ2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1
bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRl
c3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxl
VGVzdCgiSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCIp
KTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdL
UGFnZVVJQ2xpZW50VjAgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9m
KHVpQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVu
LmNwcAppbmRleCBlOTA4YjFhODNjOGY4ZDkzZjc4Njk4MmFlMzI1NTgxZTQwNzQ5ZTMyLi42ZTU4
MDM0NjUyMGQ3YzJhYTY1MmY4ZjUyNGUwZjg4OThkYTQ0Nzc3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290
c09wZW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVk
QnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAKQEAgLTg1LDEwICs4NSw4IEBAIHN0YXRp
YyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxl
cnRUZXh0LCBXS0ZyYW1lUmVmCiAKIFRFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZU1ha2VBbGxT
aGFkb3dSb290T3BlblRlc3QpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBh
Z2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdE9w
ZW5UZXN0UGFnZUdyb3VwIikpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29u
dGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgi
SW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdE9wZW5UZXN0IiwgcGFnZUdyb3VwLmdldCgp
KSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3Vw
LmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxl
TWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVzdCIpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjAgdWlDbGllbnQ7CiAgICAg
bWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWVlOTA0MzI3NTI4YjNlODVhZWQyM2IyYzdkYzY3MzMyNmQyNDcxYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCA8V2ViS2l0L1dL
Rm91bmRhdGlvbi5oPgotCi0jaWYgV0tfSEFWRV9DX1NQSQotCi0jaW1wb3J0ICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgotI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCi0jaW1wb3J0ICJUZXN0Lmgi
Ci0jaW1wb3J0IDxXZWJLaXQvV0tQYWdlR3JvdXAuaD4KLSNpbXBvcnQgPFdlYktpdC9XS1VzZXJD
b250ZW50Q29udHJvbGxlclJlZi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLUGFnZUNvbmZpZ3VyYXRp
b25SZWYuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1URVNUKFBhZ2VHcm91cCwg
RGVmYXVsdFVzZXJDb250ZW50Q29udHJvbGxlcikKLXsKLSAgICBhdXRvIHBhZ2VDb25maWd1cmF0
aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwotICAgIGF1dG8gY29u
dGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikp
OwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpLCBjb250ZXh0LmdldCgpKTsKLSAgICBhdXRvIHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdl
R3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJUZXN0UGFnZUdyb3VwIikuZ2V0
KCkpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKHBhZ2VDb25maWd1cmF0
aW9uLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotCi0gICAgYXV0byBwYWdlR3JvdXBVc2VyQ29u
dGVudENvbnRyb2xsZXIgPSByZXRhaW5XSyhXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50Q29udHJv
bGxlcihwYWdlR3JvdXAuZ2V0KCkpKTsKLQotICAgIEVYUEVDVF9OVUxMKFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsK
LQotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VDb25maWd1cmF0aW9uLmdldCgpKTsK
LSAgICBhdXRvIGNvcGllZFBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb3B5UGFn
ZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKTsKLQotICAgIEFTU0VSVF9FUShwYWdlR3Jv
dXBVc2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCksIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2Vy
Q29udGVudENvbnRyb2xsZXIoY29waWVkUGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKLX0KLQot
VEVTVChQYWdlR3JvdXAsIEN1c3RvbVVzZXJDb250ZW50Q29udHJvbGxlcikKLXsKLSAgICBhdXRv
IHBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkp
OwotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3Vy
YXRpb24obnVsbHB0cikpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VD
b25maWd1cmF0aW9uLmdldCgpLCBjb250ZXh0LmdldCgpKTsKLSAgICBhdXRvIHBhZ2VHcm91cCA9
IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJUZXN0
UGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3Vw
KHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotICAgIGF1dG8gdXNl
ckNvbnRlbnRDb250cm9sbGVyID0gYWRvcHRXSyhXS1VzZXJDb250ZW50Q29udHJvbGxlckNyZWF0
ZSgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBh
Z2VDb25maWd1cmF0aW9uLmdldCgpLCB1c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCkpOwotCi0g
ICAgYXV0byBwYWdlR3JvdXBVc2VyQ29udGVudENvbnRyb2xsZXIgPSByZXRhaW5XSyhXS1BhZ2VH
cm91cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihwYWdlR3JvdXAuZ2V0KCkpKTsKLQotICAgIEVY
UEVDVF9FUSh1c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCksIFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKLQotICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VDb25maWd1cmF0aW9uLmdldCgpKTsKLSAgICBh
dXRvIGNvcGllZFBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZp
Z3VyYXRpb24od2ViVmlldy5wYWdlKCkpKTsKLQotICAgIEVYUEVDVF9FUSh1c2VyQ29udGVudENv
bnRyb2xsZXIuZ2V0KCksIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xs
ZXIoY29waWVkUGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1BhZ2VHcm91cC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWFjZDNhMGU3NWNmZjg3YzIyNGFmOTgxYTFk
MGIzZDJkYzk1NmZlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvUGFnZUdyb3VwLm1tCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisj
aWYgV0tfSEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9y
dCAiVGVzdC5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW1wb3J0IDxXZWJL
aXQvV0tSZXRhaW5QdHIuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQcml2YXRlLmg+CisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVT
VChQYWdlR3JvdXAsIFByZWZlcmVuY2VzKQoreworICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24g
PSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CisgICAgYXV0byBjb250ZXh0
ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7Cisg
ICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCks
IGNvbnRleHQuZ2V0KCkpOworICAgIGF1dG8gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91
cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIlRlc3RQYWdlR3JvdXAiKS5nZXQoKSkp
OworICAgIGF1dG8gd2tWaWV3ID0gYWRvcHROUyhbW1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RaZXJvIGNvbnRleHRSZWY6Y29udGV4dC5nZXQoKSBwYWdlR3JvdXBSZWY6cGFnZUdy
b3VwLmdldCgpXSk7CisgICAgRVhQRUNUX0VRKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJl
bmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3a1ZpZXcuZ2V0KCkucGFn
ZVJlZikpLmdldCgpKSwgV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmROb3RpZmljYXRp
b25zLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlm
aWNhdGlvbnMubW0KaW5kZXggMzY1YzJkZGI5YjkyZTVjNjZlNjI3OTYwYTVhMmJmYTllNGRhYTYx
YS4uZmY0MmY0MzI4N2ZmZjlhM2U3YjVjYWIyMDg4YzEzN2EwYjg0OGU3ZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlm
aWNhdGlvbnMubW0KQEAgLTY3LDEyICs2Nyw5IEBAIFRFU1QoV2ViS2l0LCBQYXN0ZWJvYXJkTm90
aWZpY2F0aW9ucykKIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkp
OwogCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9w
dFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNl
c1JlZj4gcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRv
cHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQocHJlZmVy
ZW5jZXMuZ2V0KCksIHRydWUpOwogCi0gICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gV0tQ
YWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZl
cmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0KCkpOwotCiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZXhl
Y0NvcHkiLCAiaHRtbCIpKS5nZXQoKSk7CiAgICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3Np
bmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAK
aW5kZXggNjM1MjUzZTBhNjZlZjgwZjZlZDM5NjVlNzdkMDY5Y2RiOTI0ODY3Ni4uZTMxMWJmMTFl
YzBhNTgwMWRmYzJlZWU0N2E1NDY4NWY4NDgxZGIxMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2Fs
bGJhY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVC
cm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcApAQCAtODAsMTIgKzgwLDkgQEAg
VEVTVChXZWJLaXQsIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrKQog
CiAgICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdlKCksICZwYWdl
TG9hZGVyQ2xpZW50LmJhc2UpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4g
cHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7CisgICAgV0tSZXRh
aW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9u
R2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmll
dy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zy
b21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwogCi0gICAgV0tQYWdl
R3JvdXBSZWYgcGFnZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsK
LSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0
KCkpOwotCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3Jl
YXRlVVJMRm9yUmVzb3VyY2UoInB1c2gtc3RhdGUiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2Fk
VVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVk
V2ViVmlldy5jcHAKaW5kZXggYTA4ODM4ZTc3ZWZhZjQ3YjRmMWY3ZGY1MzkzNjA4YTI3MzMzYWM0
Yi4uNmI4NjdmZWY2YmQ1ZTlmNGQ5NTRiNmYyOTNmMmFkOGMxOTRlM2M3YiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdl
YlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJl
dmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcApAQCAtNzUsOCArNzUsNyBAQCBURVNUKFdlYktpdCwg
UmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcpCiAKICAgICBXS1BhZ2VMaXN0ZW5Gb3JMYXlv
dXRNaWxlc3RvbmVzKHdlYlZpZXcucGFnZSgpLCBrV0tEaWRGaXJzdExheW91dEFmdGVyU3VwcHJl
c3NlZEluY3JlbWVudGFsUmVuZGVyaW5nKTsKIAotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cCA9ICBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOwotICAgIFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cCk7
CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3
LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0U3VwcHJlc3Nlc0luY3JlbWVu
dGFsUmVuZGVyaW5nKHByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIFdLUGFnZVNldFBhZ2luYXRp
b25Nb2RlKHdlYlZpZXcucGFnZSgpLCBrV0tQYWdpbmF0aW9uTW9kZVJpZ2h0VG9MZWZ0KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9sbFBpbm5pbmdC
ZWhhdmlvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2Nyb2xsUGlu
bmluZ0JlaGF2aW9ycy5jcHAKaW5kZXggODVmMjVhNjQ2ZmFiMmJhNDZkNzQxODZlMGZmNWYyNzZl
NjIyNmU5OS4uNGIxMzhlNDkwYzc0NjNkNWVlMDI5MmNmMWVhZDZkMDc2ODY0ZjI3NSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2Nyb2xsUGlubmluZ0JlaGF2
aW9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2Nyb2xsUGlu
bmluZ0JlaGF2aW9ycy5jcHAKQEAgLTczLDE1ICs3MywxNCBAQCBURVNUKFdlYktpdCwgU2Nyb2xs
UGlubmluZ0JlaGF2aW9ycykKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsK
IAorICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworCisgICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJl
bmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkp
LmdldCgpKTsKICAgICAvLyBUdXJuIG9mZiB0aHJlYWRlZCBzY3JvbGxpbmc7IHN5bmNocm9ub3Vz
bHkgd2FpdGluZyBmb3IgdGhlIG1haW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB0bwogICAgIC8v
IHVwZGF0ZSB1c2luZyBXS1BhZ2VGb3JjZVJlcGFpbnQgd291bGQgYmUgYmV0dGVyLCBidXQgZm9y
IHNvbWUgcmVhc29uIGRvZXNuJ3QgYmxvY2sgdW50aWwKICAgICAvLyBpdCdzIHVwZGF0ZWQgYWZ0
ZXIgdGhlIGluaXRpYWwgV0tQYWdlU2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yIGFib3ZlLgotICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdy
b3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1Bh
Z2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdL
UGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKICAgICBXS1ByZWZlcmVu
Y2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKLSAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkp
OwotCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1z
ZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHAK
aW5kZXggZDIzMTMzMWI5NTUyOGU0ZDUwMDZiMzQzNDNkNzViZWMwMDcxNDk2MS4uNzkxZjk0Mzcw
MmUxNmJmYTExMTYzNDBmZmI5Y2M0M2VmYzUzMGZjYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcApAQCAtNTMsMTQg
KzUzLDEzIEBAIFRFU1QoV2ViS2l0LCBTcGFjZWJhclNjcm9sbGluZykKIHsKICAgICBXS1JldGFp
blB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRX
aXRoSW5qZWN0ZWRCdW5kbGUoKSk7CiAKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29u
ZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0
aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOworCiAgICAgLy8gVHVybiBvZmYgdGhyZWFkZWQg
c2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3Jv
bGwgcG9zaXRpb24gdG8KICAgICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdv
dWxkIGJlIGJldHRlciwgYnV0IGZvciBzb21lIHJlYXNvbiB0aGUgdGVzdCBzdGlsbCBmYWlscyBv
Y2Nhc2lvbmFsbHkuCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9
IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJOb1Ro
cmVhZGVkU2Nyb2xsaW5nUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkp
OwogICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCks
IHBhZ2VHcm91cC5nZXQoKSk7Ci0KICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAgbG9hZGVy
Q2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50
KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJN
ZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3Bw
CmluZGV4IDU3NTE5NzNhNTg4Nzg5ZTRmZTlmODZlOTU1MzVlYjU1ZTJmZDdlMTMuLjBjYmM1MDBh
YjJmMzU0ZTBkYWI1MTU4OGU2ZDBjNWFiZjIyZWFlNmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcApAQCAtNzEsMjAgKzcxLDE4IEBAIFRFU1Qo
V2ViS2l0LCBVc2VyTWVkaWFCYXNpYykKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdL
Q29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWlu
UHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRl
V2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiR2V0VXNlck1lZGlhIikuZ2V0KCkpKTsKLSAgICBX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhw
YWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgm
dWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lv
biA9IDY7CiAgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QgPSBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNr
OwogICAgIHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiA9IGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNrOwogICAgIAotICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNv
cHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQ
cmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0
cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25u
ZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUGFnZVNldFBhZ2VV
SUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogCiAgICAgd2FzUHJvbXB0
ZWQgPSBmYWxzZTsKQEAgLTEwNywyMCArMTA1LDE4IEBAIFRFU1QoV2ViS2l0LCBPbkRldmljZUNo
YW5nZUNyYXNoKQogewogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRl
V2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3Jv
dXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmll
cihVdGlsOjp0b1dLKCJHZXRVc2VyTWVkaWEiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQo
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJl
cXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwotICAgIFdLUHJlZmVy
ZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQog
ICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwg
c2l6ZW9mKHVpQ2xpZW50KSk7CiAgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gNjsKICAgICB1
aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IGRlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2s7CiAgICAgdWlDbGll
bnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luID0gY2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uQ2FsbGJhY2s7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0Lmdl
dCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRl
eHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25m
aWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRp
b24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2
aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVm
ZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNl
cywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5w
YWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIC8vIExvYWQgYSBwYWdlIHJlZ2lzdGVyaW5n
IG9uZGV2aWNlY2hhbmdlIGhhbmRsZXIuCkBAIC0xNjcsMTMgKzE2Myw2IEBAIFRFU1QoV2ViS2l0
LCBFbnVtZXJhdGVEZXZpY2VzQ3Jhc2gpCiB7CiAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhX
S0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAKLSAgICBXS1JldGFp
blB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0
ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkdldFVzZXJNZWRpYSIpLmdldCgpKSk7Ci0gICAg
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMo
cGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0
TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5j
ZXMsIHRydWUpOwotCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsKICAgICAvLyBXZSB3
YW50IHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiB0byBiZSBudWxs
LgogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpAQCAtMTg0LDcg
KzE3MywxMyBAQCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlc0NyYXNoKQogICAgIGxvYWRl
ckNsaWVudC5iYXNlLnZlcnNpb24gPSAzOwogICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hOYXZp
Z2F0aW9uID0gZGlkRmluaXNoTmF2aWdhdGlvbjsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQ
YWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVm
ZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVl
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJl
RGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworCiAgICAgV0tQYWdlU2V0UGFnZVVJ
Q2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAgICAgV0tQYWdlU2V0UGFn
ZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdlKCksICZsb2FkZXJDbGllbnQuYmFzZSk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZp
Z3VyYXRpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29u
ZmlndXJhdGlvbi5jcHAKaW5kZXggZTU0MTAwYzhjNzk0NjcxNjUwOTAyYjMyM2ZlZmQxNTgyMWU0
MjdhYi4uMDVkOTVlNDk3NDE4MDU1MzA5NTlhMjZjMzQ4YzFlOGM5N2M3YWFlNSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlvbi5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29uZmlndXJh
dGlvbi5jcHAKQEAgLTQxLDcgKzQxLDYgQEAgVEVTVChXZWJLaXQsIFdLUGFnZUNvbmZpZ3VyYXRp
b25FbXB0eSkKIAogICAgIEFTU0VSVF9OVUxMKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRDb250ZXh0
KGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0
aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKLSAgICBB
U1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24u
Z2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5j
ZXMoY29uZmlndXJhdGlvbi5nZXQoKSkpOwogICAgIEFTU0VSVF9OVUxMKFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpKSk7CiB9CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRp
by5jcHAKaW5kZXggYzFlZjA5MTVjMjdlMjE1Yzc4YmM4NDMxYTFjYWNmNGY0ZDI1ODljMC4uNTY0
OWQ5MDQ0YzhlM2RiNDYwZTg5MWY2N2I1NTA1NTBkYTdlMWQ4ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1ZGlvLmNw
cApAQCAtMTE3LDEyICsxMTcsMTAgQEAgVEVTVChXZWJLaXQsIE1TRUlzUGxheWluZ0F1ZGlvKQog
ewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soV0tDb250
ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwogCi0gICAgV0tSZXRhaW5QdHI8
V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRo
SWRlbnRpZmllcihVdGlsOjp0b1dLKCJNU0VJc1BsYXlpbmdBdWRpb1BhZ2VHcm91cCIpLmdldCgp
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJl
ZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRp
YVNvdXJjZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KLSAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwog
ICAgIHNldFVwQ2xpZW50cyh3ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICBXS1JldGFpblB0cjxXS1VS
TFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZmlsZS13aXRo
LW1zZSIsICJodG1sIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJp
bmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tCmluZGV4IGI5MTIzZjc5ODNhODVjNDRmYzM4
OWM1NzZlY2MzZmJmNTFlMjY2YmUuLmNlNmE4MDY4ZDM4ODg1ZDI4MDg2M2MwNjc2OGQwOTFlZGZj
ZjAyMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9B
dHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclBy
b3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0KQEAgLTU4LDggKzU4LDcgQEAgc3RhdGljIHZvaWQgaW52
YWxpZE1lc3NhZ2VGdW5jdGlvbihXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSkKIFRFU1QoV2ViS2l0
LCBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZSkKIHsKICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBS
ZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihV
dGlsOjp0b1dLKCJBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZVBh
Z2VHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5n
ZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7
CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVu
dURvd25sb2FkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRl
eHRNZW51RG93bmxvYWQubW0KaW5kZXggNzU1NmY2MTJkNWUzYjliYTRmNGNkNmY1MjZjOTU4YzE3
ZjNmMWYyNi4uNjRkNjdhYjJlM2M3NWQ5ZjA5OTM0NjZmYTc2YmY2ZDZhNTA1Y2FhZCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51RG93
bmxvYWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRl
eHRNZW51RG93bmxvYWQubW0KQEAgLTkyLDggKzkyLDcgQEAgVEVTVChXZWJLaXQsIENvbnRleHRN
ZW51RG93bmxvYWRIVE1MRG93bmxvYWRBdHRyaWJ1dGUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tD
b250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVj
dGVkQnVuZGxlKCkpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91
cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJN
eUdyb3VwIikuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0Lmdl
dCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRl
eHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYzIGxvYWRlckNsaWVudDsK
ICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwpAQCAt
MTQzLDggKzE0Miw3IEBAIFRFU1QoV2ViS2l0LCBDb250ZXh0TWVudURvd25sb2FkSFRNTERvd25s
b2FkQXR0cmlidXRlV2l0aFNsYXNoZXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxl
KCkpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0
V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJNeUdyb3VwIiku
Z2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdl
R3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkp
OwogCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYzIGxvYWRlckNsaWVudDsKICAgICBtZW1z
ZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tCmlu
ZGV4IGY5YzBkMWZiZmM2MTcyNTUyM2JjNWY2MTM4NjE2NmQ2ZDI3M2ZiYTAuLjJhNWEyYmQ2ZGY4
ODVhNzUwYzdiYWJhMzllMGM3NzcyOWRjMmJhNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JDb21tYW5kcy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0KQEAgLTQ1LDE0ICs0
NSwxMyBAQCBURVNUKFdlYktpdCwgU2Nyb2xsQnlMaW5lQ29tbWFuZHMpCiB7CiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0
V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29u
dGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJh
dGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKwogICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVk
IHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Ny
b2xsIHBvc2l0aW9uIHRvCiAgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3
b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMg
b2NjYXNpb25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAg
PSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9U
aHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgp
KTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVu
Y2VzLCBmYWxzZSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgp
LCBwYWdlR3JvdXAuZ2V0KCkpOwotCisgICAgCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYw
IGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRl
ckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCmluZGV4IDY4N2M3Y2FlN2M4ZDU5ZmQw
Njc0NGE1NDA5MTFiMGUxMmZkNWM1ZjEuLmUxMTcwNzE2MWM3ODRiNDc0NDM1ZDE3MTFiNjlhNjEz
M2Q4OTAzZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCkBAIC0xMTgsMTEgKzExOCwxMCBAQCBU
RVNUKEZ1bGxzY3JlZW4sIERlbGVnYXRlKQogVEVTVChGdWxsc2NyZWVuLCBESVNBQkxFRF9XS1Zp
ZXdEZWxlZ2F0ZSkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBX
S1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91
cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkZ1bGxzY3JlZW5EZWxlZ2F0ZSIpLmdl
dCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNj
cmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdl
YlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZp
ZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29w
eVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOworICAgIFdLUHJlZmVy
ZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBSZXRh
aW5QdHI8RnVsbHNjcmVlbkRlbGVnYXRlTWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5T
KFtbRnVsbHNjcmVlbkRlbGVnYXRlTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBX
S1BhZ2VTZXRGdWxsc2NyZWVuRGVsZWdhdGUod2ViVmlldy5wYWdlKCksIGhhbmRsZXIuZ2V0KCkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0
dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1BpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbQppbmRleCA5MzljNTdiNGQ4YjI2NzY2
NGJjZDJhYjc2NGQ0ZDg4ZTY5NTljMjdhLi40NDVkYjc1NjZlMDYwN2Q5ODhhNThiNzg5Yjc5MGRi
ZGVkYzJjZDUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1BpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1BpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbQpAQCAtMjAxLDEz
ICsyMDEsMTIgQEAgVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBBdWRpb0Nhbm5vdFRvZ2dsZVBpY3R1
cmVJblBpY3R1cmUpCiBURVNUKFBpY3R1cmVJblBpY3R1cmUsIFdLUGFnZVVJQ2xpZW50KQogewog
ICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0
Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoVXRpbDo6dG9XSygiUGljdHVyZUluUGljdHVyZSIpLmdldCgpKSk7Ci0gICAgV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdy
b3VwLmdldCgpKTsKKyAgICAKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0Lmdl
dCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJh
dGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdl
YlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEFsbG93c1BpY3R1
cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICAKLSAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwot
ICAgIAorCiAgICAgV0tQYWdlVUlDbGllbnRWMTAgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNs
aWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CiAgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0g
MTA7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dl
YnNpdGVQb2xpY2llcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2Vic2l0ZVBvbGljaWVzLm1tCmluZGV4IDhlNzcwMDY4ZDMxMmU0MjQzYjEyMWFkNTM5NDlhYWNl
MGMxZTA0M2UuLjk4MWFmOTI3Njk0ODUwOGUzNDRlNTE2YWI3Yjc1NmE3OTYxNGVlYTMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGlj
aWVzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0
ZVBvbGljaWVzLm1tCkBAIC04MDAsOSArODAwLDcgQEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMs
IFdlYnNpdGVQb2xpY2llc0FyYml0cmFyeVVzZXJHZXN0dXJlUXVpcmspCiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tBdXRvcGxheVBvbGljaWVzRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCi0g
ICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdL
UHJlZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKLSAgICBXS1BhZ2VHcm91cFNldFBy
ZWZlcmVuY2VzKFdLUGFnZUdldFBhZ2VHcm91cChbd2ViVmlldyBfcGFnZUZvclRlc3RpbmddKSwg
cHJlZmVyZW5jZXMuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcygoX19icmlkZ2UgV0tQcmVmZXJlbmNlc1JlZil3ZWJWaWV3LmdldCgpLmNvbmZpZ3Vy
YXRpb24ucHJlZmVyZW5jZXMsIHRydWUpOwogCiAgICAgW2RlbGVnYXRlIHNldEFsbG93ZWRBdXRv
cGxheVF1aXJrc0ZvclVSTDpeX1dLV2Vic2l0ZUF1dG9wbGF5UXVpcmsoTlNVUkwgKnVybCkKICAg
ICB7CkBAIC04MzMsOSArODMxLDcgQEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQ
b2xpY2llc0F1dG9wbGF5UXVpcmtzKQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXV0
b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2
aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJl
ZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkp
OwotICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNl
cy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQ
YWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5nXSksIHByZWZlcmVuY2VzLmdldCgpKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKF9fYnJpZGdlIFdL
UHJlZmVyZW5jZXNSZWYpd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLCB0
cnVlKTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdFdpdGhBdWRpbyA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
ImF1dG9wbGF5LWNoZWNrIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAKQEAgLTg5MSw5ICs4ODcsNyBAQCBURVNUKFdlYnBh
Z2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVzUGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9y
UXVpcmtzKQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0Rl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHBy
ZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVy
ZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7
Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZp
ZXcgX3BhZ2VGb3JUZXN0aW5nXSksIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYp
d2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIHJl
Y2VpdmVkQXV0b3BsYXlFdmVudCA9IFdURjo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5n
UG9zaXRpb24ubW0KaW5kZXggNTNmY2M4OTllODA0ZDMyMmJhZjk4NzA5MmJiM2Y5NDdlZjc0MGI2
Ny4uMmY0MGE4MzQ4NjFjNWVjYjc2NmY1ZGYzMDVmYmQwNDUxMGI5NThkNyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3Np
dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRl
clNjcm9sbGluZ1Bvc2l0aW9uLm1tCkBAIC00NSwxOCArNDUsMTcgQEAgVEVTVChXZWJLaXQsIEZp
cnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24pCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVk
QnVuZGxlKCkpOwogCi0gICAgLy8gVHVybiBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5nOyBzeW5jaHJv
bm91c2x5IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRpb24gdG8KLSAg
ICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdvdWxkIGJlIGJldHRlciwgYnV0
IGZvciBzb21lIHJlYXNvbiB0aGUgdGVzdCBzdGlsbCBmYWlscyBvY2Nhc2lvbmFsbHkuCi0gICAg
V0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3Jv
dXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJOb1RocmVhZGVkU2Nyb2xsaW5nUGFn
ZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQ
YWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5j
ZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQogICAg
IFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApCiAgICAgICAgIHN0
eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZm
ZXJlZCBkZWZlcjpOT10pOwogICAgIFt3aW5kb3cuZ2V0KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6
bmlsXTsKICAgICBFWFBFQ1RfVFJVRShbd2luZG93LmdldCgpIGlzVmlzaWJsZV0pOwogCi0gICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsK
KyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2Vz
KGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0
KCkpOworCisgICAgLy8gVHVybiBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5
IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRpb24gdG8KKyAgICAvLyB1
cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdvdWxkIGJlIGJldHRlciwgYnV0IGZvciBz
b21lIHJlYXNvbiB0aGUgdGVzdCBzdGlsbCBmYWlscyBvY2Nhc2lvbmFsbHkuCisgICAgV0tQcmVm
ZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwog
CiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQo
JmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwpAQCAtODIsNyArODEsNyBA
QCBURVNUKFdlYktpdCwgRmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbikKIAogICAgIEVY
UEVDVF9KU19FUSh3ZWJWaWV3LnBhZ2UoKSwgIndpbmRvdy5zY3JvbGxZIiwgIjQwIik7CiAKLSAg
ICBQbGF0Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0
KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyBuZXdXZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogICAg
IFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KG5ld1dlYlZpZXcucGFnZSgpLCAmbG9hZGVy
Q2xpZW50LmJhc2UpOwogCiAgICAgW3dpbmRvdy5nZXQoKS5jb250ZW50VmlldyBhZGRTdWJ2aWV3
Om5ld1dlYlZpZXcucGxhdGZvcm1WaWV3KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbQppbmRleCA2
MDU1ZDhkMjMxMWZjZjg2YjQyOTQ5MzMxNzBlZDQxZTFkMWFhZTY2Li5mYjBhYTlhNzcwODliY2Ji
MGRlZjU3YTNiZDZmZmY4OTk1NTI0MjAxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbQpAQCAtMTIw
LDkgKzEyMCw4IEBAIHZvaWQgRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OmluaXRpYWxpemVW
aWV3KFdLVmlldyAqd2tWaWV3KQogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3a1ZpZXcucGFn
ZVJlZiwgJnVpQ2xpZW50LmJhc2UpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlk
ZW50aWZpZXIgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJGdWxsc2Ny
ZWVuWm9vbUluaXRpYWxGcmFtZVByZWZlcmVuY2VzIikpOwotICAgIFdLUmV0YWluUHRyPFdLUHJl
ZmVyZW5jZXNSZWY+IGN1c3RvbVByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3Jl
YXRlV2l0aElkZW50aWZpZXIoaWRlbnRpZmllci5nZXQoKSkpOworICAgIFdLUmV0YWluUHRyPFdL
UHJlZmVyZW5jZXNSZWY+IGN1c3RvbVByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdl
dFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdrVmlldy5w
YWdlUmVmKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChj
dXN0b21QcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJl
bmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAod2tWaWV3LnBhZ2VSZWYpLCBjdXN0b21QcmVmZXJlbmNl
cy5nZXQoKSk7CiB9CiAKIHZvaWQgRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OnRlYXJkb3du
VmlldyhXS1ZpZXcgKndrVmlldykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3Jt
V2ViVmlld01hYy5tbQppbmRleCA2MzY2ODkxOGFkMzJmNzEyZGU4N2FlM2VkMWI0MDExZjdhYjdi
OWUyLi5lNTFkZTc2OTBkNWRhNTViY2JlYWI1NmU5OTM2OWFjZGE5NmJmN2JlIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBAIC00OCwxMyArNDgs
MTIgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uKQogICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlvbiwgW1dLVmll
dyBjbGFzc10pOwogfQogCi1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQorUGxhdGZvcm1X
ZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAg
V0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9IGFkb3B0
V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKLSAgICAKKwogICAgIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAg
IFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFn
ZUdyb3VwUmVmKTsKLSAgICAKKwogICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSwg
W1dLVmlldyBjbGFzc10pOwogfQogCkBAIC02MywyMiArNjIsMTEgQEAgUGxhdGZvcm1XZWJWaWV3
OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKQogICAgIFdLUmV0YWluUHRy
PFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNv
bmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAgCiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENv
bnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgV0tQYWdlR2V0Q29udGV4dChyZWxhdGVkUGFnZSkp
OwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQo
KSwgV0tQYWdlR2V0UGFnZUdyb3VwKHJlbGF0ZWRQYWdlKSk7CiAgICAgV0tQYWdlQ29uZmlndXJh
dGlvblNldFJlbGF0ZWRQYWdlKGNvbmZpZ3VyYXRpb24uZ2V0KCksIHJlbGF0ZWRQYWdlKTsKIAog
ICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSwgW1dLVmlldyBjbGFzc10pOwogfQog
Ci1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBDbGFzcyB3a1ZpZXdTdWJjbGFzcykKLXsK
LSAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0g
YWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwotICAgIAotICAgIFdLUGFnZUNv
bmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwot
ICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwg
cGFnZUdyb3VwUmVmKTsKLSAgICAKLSAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCks
IHdrVmlld1N1YmNsYXNzKTsKLX0KLQogUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3
KCkKIHsKICAgICBbbV93aW5kb3cgY2xvc2VdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCA1ODdmZWUwYzg4NzQyNzNmMjRhZjQ4YTI2ZjE3Mzg4MWRmMmZi
MmI5Li4xMTU5YzFkODYxNWQ5ZDU4OGVjZDliMWRiOTdiZTRhMjA1ZGQwODg2IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNTQ5LDggKzU0OSw2IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3Zb
XSkKICAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6Omluc3RhbGxNb2NrR2FtZXBhZFByb3ZpZGVyKCk7
CiAjZW5kaWYKIAotICAgIG1fcGFnZUdyb3VwLmFkb3B0KFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElk
ZW50aWZpZXIodG9XSygiV2ViS2l0VGVzdFJ1bm5lclBhZ2VHcm91cCIpLmdldCgpKSk7Ci0KICAg
ICBtX2V2ZW50U2VuZGVyUHJveHkgPSBtYWtlVW5pcXVlPEV2ZW50U2VuZGVyUHJveHk+KHRoaXMp
OwogfQogCkBAIC02NzksNyArNjc3LDYgQEAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlv
blJlZj4gVGVzdENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oY28KIAogICAg
IGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVh
dGUoKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQocGFnZUNvbmZpZ3VyYXRp
b24uZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBh
Z2VHcm91cChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgbV9wYWdlR3JvdXAuZ2V0KCkpOwogICAg
IAogICAgIGlmIChvcHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24oKSkgewogICAgICAgICBhdXRv
IGVwaGVtZXJhbERhdGFTdG9yZSA9IGFkb3B0V0soV0tXZWJzaXRlRGF0YVN0b3JlQ3JlYXRlTm9u
UGVyc2lzdGVudERhdGFTdG9yZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAppbmRleCAzZmQyYTQ4MTMyMjhmZjU5NGEwNDlmMzhhM2RhZWQzOGUyNjRkZGIxLi44Yjc1
MDE5NTBiYzMyNTIxMjU0MWI1NDI5MDQ5N2ExZjY3NzU4ZDdjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC01NTMsNyArNTUzLDYgQEAgcHJpdmF0ZToKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdlYlZpZXc+IG1fbWFpbldlYlZpZXc7CiAgICAgV0tS
ZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdl
R3JvdXBSZWY+IG1fcGFnZUdyb3VwOwogICAgIFdLUmV0YWluUHRyPFdLVXNlckNvbnRlbnRDb250
cm9sbGVyUmVmPiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428435</attachid>
            <date>2021-05-12 17:13:42 -0700</date>
            <delta_ts>2021-05-12 18:06:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20210512171342.patch</filename>
            <type>text/plain</type>
            <size>80885</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmMjFlZGNhOWNhOWY1NjFk
ZTYwMGY5N2Y0MjY5ZTcwNDcyZWU2ZTMuLmU3MmEwMmYzNDkyNGE0N2U3NjEzZDdmYTQzYzNlMTU5
MGQ2NjQzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMTIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwcm9qZWN0cyBzdGlsbCB1
c2luZyBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyIGFuZCBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzLgorICAgICAgICBUaGVyZSBpcyBvbmUgcHJvamVjdCBzdGlsbCB1c2luZyBXS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLgorICAgICAgICBJIGxlZnQgdGhlc2UgZGVwcmVjYXRlZCBidXQg
c3RpbGwgZnVuY3Rpb25hbCBhbmQgbm90ZWQgcmFkYXJzIGZvciB3aGVuIHRoZXkgY2FuIGFsc28g
YmUgcmVtb3ZlZC4KKworICAgICAgICBUaGUgcmVzdCBvZiB0aGUgQVBJIGlzIHJlbW92ZWQuICBT
b21lIG9mIGl0IHdhcyBtb3ZlZCB0byBhbiBpbnRlcm5hbC1vbmx5IGhlYWRlciB0byBsZWF2ZSBX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwIHVudG91Y2hlZC4KKyAgICAgICAgTG90cyBvZiB0ZXN0cyBh
cmUgdXBkYXRlZCB0byBzZXQgcHJlZmVyZW5jZXMgbGlrZSB0aGUgbW9kZXJuIEFQSSBkb2VzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VH
ZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHA6
CisgICAgICAgIChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0
VHlwZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250
cm9sbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3BhZ2VHcm91cF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF9zZXRQYWdlR3JvdXA6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1LTEyICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2lsZW5jZSB1bmlu
dGVyZXN0aW5nIHNhbmRib3ggcmVwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggOTliNjU1ZmE0YjU4ZDg0OWQ5ZjczZjE4ODRhZDFkZmZlMzhkYjU3NS4u
MWQ4YTI3YmI0NWRiZmI2YWVlZTA2NDM0NzRhNGJiZDcxNzA1YWJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNjIsMTEgKzE2Miw2IEBAIFdLQ29udGV4
dFJlZiBXS1BhZ2VHZXRDb250ZXh0KFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0FQ
SSgmdG9JbXBsKHBhZ2VSZWYpLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSk7CiB9CiAKLVdLUGFn
ZUdyb3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91cChXS1BhZ2VSZWYgcGFnZVJlZikKLXsKLSAgICBy
ZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+cGFnZUdyb3VwKCkpOwotfQotCiBXS1BhZ2VD
b25maWd1cmF0aW9uUmVmIFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihXS1BhZ2VSZWYgcGFn
ZVJlZikKIHsKICAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+Y29uZmlndXJhdGlv
bigpLmNvcHkoKS5sZWFrUmVmKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aAppbmRleCBjNTFiODE2MmM4OTczNGFiMTUyYmVmMGU5OTIzMzdkNTVmMmRlOGE2Li4yNGU4Nzhm
MzEwYmFjYWIyOWI3ZTA5MWU1NWY2YjMxMjI4NTFhZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaApAQCAtNTgsNyArNTgsNiBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS1BhZ2VHZXRUeXBlSUQodm9pZCk7CiAKIFdLX0VYUE9SVCBXS0NvbnRleHRS
ZWYgV0tQYWdlR2V0Q29udGV4dChXS1BhZ2VSZWYgcGFnZSk7Ci1XS19FWFBPUlQgV0tQYWdlR3Jv
dXBSZWYgV0tQYWdlR2V0UGFnZUdyb3VwKFdLUGFnZVJlZiBwYWdlKTsKIAogV0tfRVhQT1JUIFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKFdLUGFnZVJl
ZiBwYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlQ29uZmlndXJhdGlvblJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcAppbmRleCA3OWJlZDFmZDFlY2U4ODgzYmJiNDg0NTk0
YjY3OTFjNjg1NWIwMWNiLi5iNTA2MjdlMjFmM2UzNGUwOGRkNTNhZmQzNjkzZmVmMzhiM2UwOTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1
cmF0aW9uUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VD
b25maWd1cmF0aW9uUmVmLmNwcApAQCAtNTUsMTYgKzU1LDYgQEAgdm9pZCBXS1BhZ2VDb25maWd1
cmF0aW9uU2V0Q29udGV4dChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdL
Q29udGUKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFByb2Nlc3NQb29sKHRvSW1wbChj
b250ZXh0KSk7CiB9CiAKLVdLUGFnZUdyb3VwUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdl
R3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQotewotICAgIHJldHVy
biB0b0FQSSh0b0ltcGwoY29uZmlndXJhdGlvbiktPnBhZ2VHcm91cCgpKTsKLX0KLQotdm9pZCBX
S1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKQotewotICAgIHRvSW1wbChjb25m
aWd1cmF0aW9uKS0+c2V0UGFnZUdyb3VwKHRvSW1wbChwYWdlR3JvdXApKTsKLX0KLQogV0tVc2Vy
Q29udGVudENvbnRyb2xsZXJSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29u
dHJvbGxlcihXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgcmV0
dXJuIHRvQVBJKHRvSW1wbChjb25maWd1cmF0aW9uKS0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oCmluZGV4IDI3N2MwNjYxZjI2MzJhZDg5NTkyNmZmOWJhZDRiMGE3YzU2NDFl
MTEuLjcwMjAzNjhhN2QxMmMzNjNhNmQyNmNkMWM3YWYxYTUzNTQzZGFiOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVm
LmgKQEAgLTM5LDkgKzM5LDYgQEAgV0tfRVhQT1JUIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkNyZWF0ZSh2b2lkKTsKIFdLX0VYUE9SVCBXS0NvbnRleHRSZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkdldENvbnRleHQoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1
cmF0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogCi1XS19FWFBPUlQgV0tQYWdlR3JvdXBSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VH
cm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KIFdLX0VYUE9SVCBX
S1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRl
bnRDb250cm9sbGVyKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgdXNlckNvbnRlbnRDb250cm9sbGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwCmluZGV4IDY1MTRlZTg2ZGUzYTg0MTQ0ODM3ZGY2MmZj
MTAxM2QyM2NhYTM1YTkuLjk4MGYzZmMwZWVjYTY4YjdkNjcyNDU0YzVlMDYxNWNlZmI2OWNlM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKQEAg
LTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQ
YWdlR3JvdXAuaCIKKyNpbmNsdWRlICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAKICNpbmNsdWRl
ICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdC5oIgpAQCAtNDAsMTEg
KzQwLDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotV0tUeXBlSUQgV0tQYWdlR3Jv
dXBHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b0FQSShXZWJQYWdlR3JvdXA6OkFQSVR5cGUp
OwotfQotCiBXS1BhZ2VHcm91cFJlZiBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdL
U3RyaW5nUmVmIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBwYWdlR3JvdXAgPSBXZWJQYWdlR3Jv
dXA6OmNyZWF0ZSh0b1dURlN0cmluZyhpZGVudGlmaWVyKSk7CkBAIC02MSwxMSArNTYsNiBAQCBX
S1ByZWZlcmVuY2VzUmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwUmVmKQogICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VHcm91cFJlZiktPnBy
ZWZlcmVuY2VzKCkpOwogfQogCi1XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VHcm91
cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi17
Ci0gICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZUdyb3VwUmVmKS0+dXNlckNvbnRlbnRDb250
cm9sbGVyKCkpOwotfQotCiB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdl
R3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2VSZWYsIFdLVVJMUmVmIGJh
c2VVUkxSZWYsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2Nr
ZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVz
KQogewogICAgIGF1dG8gc291cmNlID0gdG9XVEZTdHJpbmcoc291cmNlUmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCmluZGV4IDYzYTEzZjdkNzUyMThi
ZjdlMmViZDAzZWZhMDQ1YjU2OWYzODEwZTIuLmE1YTJhZGYwZmY2ZDFjOTc4MmY0MGU4ZDcxMDBh
NTk5OGI3YzRiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3Jv
dXAuaApAQCAtMzQsMjAgKzM0LDEwIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi1XS19FWFBP
UlQgV0tUeXBlSUQgV0tQYWdlR3JvdXBHZXRUeXBlSUQodm9pZCk7CisvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgZmlsZSBvbmNlIHJkYXI6Ly83NzkzOTU5NyBhbmQgcmRhcjovLzc3OTM5ODgzIGFyZSBy
ZXNvbHZlZC4KIAotV0tfRVhQT1JUIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUdyb3VwQ3JlYXRlV2l0
aElkZW50aWZpZXIoV0tTdHJpbmdSZWYgaWRlbnRpZmllcik7Ci0KLVdLX0VYUE9SVCB2b2lkIFdL
UGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwLCBXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzKTsKLVdLX0VYUE9SVCBXS1ByZWZlcmVuY2VzUmVmIFdLUGFn
ZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKLQotV0tfRVhQ
T1JUIFdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmIFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRD
b250cm9sbGVyKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KLVdLX0VYUE9SVCB2b2lkIFdL
UGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwLCBXS1N0
cmluZ1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkwsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBh
dHRlcm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNlclN0eWxl
U2hlZXRzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0gICAgCi1XS19FWFBPUlQgdm9pZCBX
S1BhZ2VHcm91cEFkZFVzZXJTY3JpcHQoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwLCBXS1N0cmlu
Z1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkwsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBhdHRl
cm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVjdGVk
RnJhbWVzLCBfV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7Ci1XS19FWFBPUlQgdm9pZCBXS1Bh
Z2VHcm91cFJlbW92ZUFsbFVzZXJTY3JpcHRzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7CitX
S19FWFBPUlQgV0tQYWdlR3JvdXBSZWYgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihX
S1N0cmluZ1JlZiBpZGVudGlmaWVyKSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKTsKK1dLX0VYUE9SVCBXS1ByZWZl
cmVuY2VzUmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYgcGFnZUdy
b3VwKSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdlQ29uZmlndXJh
dGlvbkdldFByZWZlcmVuY2VzKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cEludGVybmFsLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cEludGVybmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTZhMDk2MmI4NjQwY2YzNWFhMDcxN2I3MWZiMTc0ZDMyOGRkNjJlNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwSW50ZXJu
YWwuaApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisK
Ky8vIEZJWE1FOiBSZW1vdmUgdGhpcyBmaWxlIG9uY2UgcmRhcjovLzc0MTQyOTk1IGlzIHJlc29s
dmVkLgorCit2b2lkIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYsIFdL
UHJlZmVyZW5jZXNSZWYpOwordm9pZCBXS1BhZ2VHcm91cEFkZFVzZXJTdHlsZVNoZWV0KFdLUGFn
ZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkwsIFdLQXJyYXlS
ZWYgYWxsb3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0ZXJucywgV0tV
c2VyQ29udGVudEluamVjdGVkRnJhbWVzKTsKK3ZvaWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2Vy
U3R5bGVTaGVldHMoV0tQYWdlR3JvdXBSZWYpOwordm9pZCBXS1BhZ2VHcm91cEFkZFVzZXJTY3Jp
cHQoV0tQYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYgYmFzZVVSTCwg
V0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tlZFVSTFBhdHRl
cm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMsIF9XS1VzZXJTY3JpcHRJbmplY3Rpb25U
aW1lKTsKK3ZvaWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU2NyaXB0cyhXS1BhZ2VHcm91cFJl
ZiBwYWdlR3JvdXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgKaW5kZXggNjY5MjMwZjVjYjZhMDM1MmM5
MDI1ZjkxZGU2NjhlMzYwYTg1OTNiNi4uYTZjZGM0MWE0MTJmN2RiZGRiM2ZlODQzM2E0MWQ3YjBl
YzMyMDQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
QnJvd3NpbmdDb250ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCkBAIC0yOCw2ICsyOCw4IEBACiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1VzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lLmg+CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBmaWxlIG9uY2UgcmRhcjov
Lzc0MTQyOTk1IGlzIHJlc29sdmVkLgorCiBXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIldLVXNlckNvbnRlbnRDb250cm9sbGVyIGFuZCBXS1ByZWZlcmVuY2VzIiwgbWFjb3Mo
MTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tCcm93c2luZ0Nv
bnRleHRHcm91cCA6IE5TT2JqZWN0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0KaW5kZXggOGY0MWIx
MjI3NDA0ZGUyNjgzOTJmMjQ5ODViMGUyNTVlMzMxZWRiMC4uNzk0Y2YxZmFmMzhkMjYxNThlZjJm
ODk5ZGI3ZWJmMDU2NGE4OTI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0KQEAgLTMxLDcgKzMx
LDcgQEAKICNpbXBvcnQgIkFQSVN0cmluZy5oIgogI2ltcG9ydCAiV0tBUElDYXN0LmgiCiAjaW1w
b3J0ICJXS0FycmF5LmgiCi0jaW1wb3J0ICJXS1BhZ2VHcm91cC5oIgorI2ltcG9ydCAiV0tQYWdl
R3JvdXBJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tQcmVmZXJlbmNlc1JlZi5oIgogI2ltcG9ydCAi
V0tSZXRhaW5QdHIuaCIKICNpbXBvcnQgIldLU2hhcmVkQVBJQ2FzdC5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMGViNWIzMjI5ZjNh
ZWZkMTdiZjZiNTIyYzU0NDI2ZGJkZTEyOWU2Yi4uZWUyMGRlN2E4ZTMxZDJkZDU0NTQ5NTRiMjAw
NmQwOGJlZDVmZTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCkBAIC00NTcsMTYgKzQ1Nyw5IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5
Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYs
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFdlYnNpdGVEYXRhU3RvcmUoW19jb25maWd1cmF0
aW9uIHdlYnNpdGVEYXRhU3RvcmVdLT5fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKSk7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMoW19jb25maWd1cmF0aW9u
IGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vic2l0ZVBvbGljaWVzLmdldCgpKTsKIAot
I2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoYXV0byBwYWdlR3JvdXAgPSBXZWJLaXQ6OnRvSW1w
bChbX2NvbmZpZ3VyYXRpb24gX3BhZ2VHcm91cF0pKQotICAgICAgICBwYWdlQ29uZmlndXJhdGlv
bi0+c2V0UGFnZUdyb3VwKHBhZ2VHcm91cCk7Ci0gICAgZWxzZQotI2VuZGlmCi0gICAgewotICAg
ICAgICBOU1N0cmluZyAqZ3JvdXBJZGVudGlmaWVyID0gW19jb25maWd1cmF0aW9uIF9ncm91cElk
ZW50aWZpZXJdOwotICAgICAgICBpZiAoZ3JvdXBJZGVudGlmaWVyLmxlbmd0aCkKLSAgICAgICAg
ICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQYWdlR3JvdXA6
OmNyZWF0ZShncm91cElkZW50aWZpZXIpLnB0cigpKTsKLSAgICB9CisgICAgTlNTdHJpbmcgKmdy
b3VwSWRlbnRpZmllciA9IFtfY29uZmlndXJhdGlvbiBfZ3JvdXBJZGVudGlmaWVyXTsKKyAgICBp
ZiAoZ3JvdXBJZGVudGlmaWVyLmxlbmd0aCkKKyAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNl
dFBhZ2VHcm91cChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6Y3JlYXRlKGdyb3VwSWRlbnRpZmllciku
cHRyKCkpOwogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFkZGl0aW9uYWxTdXBwb3J0ZWRJ
bWFnZVR5cGVzKG1ha2VWZWN0b3I8U3RyaW5nPihbX2NvbmZpZ3VyYXRpb24gX2FkZGl0aW9uYWxT
dXBwb3J0ZWRJbWFnZVR5cGVzXSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IGNlNWI3
YmQ1YjAxYWJjODIxMDk1ZDA1NTk1YWFlOTY5YjY4Y2Y1ZmUuLjRlMTg5NDJiYWFiZWY2OTU0NjU4
N2EyNjNiYjAxZTkzMGM0YTc4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC0xNTUsNyAr
MTU1LDYgQEAgc3RhdGljIGJvb2wgZGVmYXVsdFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRp
bmdRdWlja0xvb2tQcmV2aWV3KCkKICAgICBCT09MIF9tYWluQ29udGVudFVzZXJHZXN0dXJlT3Zl
cnJpZGVFbmFibGVkOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBfcGFnZUdyb3VwOwogICAgIEJPT0wgX3Nob3dzVVJMc0luVG9vbFRpcHM7CiAg
ICAgQk9PTCBfc2VydmljZUNvbnRyb2xzRW5hYmxlZDsKICAgICBCT09MIF9yZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOwpAQCAtNDI5LDcgKzQyOCw2IEBAIHN0YXRp
YyBib29sIGRlZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJl
dmlldygpCiAgICAgY29uZmlndXJhdGlvbi0+X3Nob3dzVVJMc0luVG9vbFRpcHMgPSBzZWxmLT5f
c2hvd3NVUkxzSW5Ub29sVGlwczsKICAgICBjb25maWd1cmF0aW9uLT5fc2VydmljZUNvbnRyb2xz
RW5hYmxlZCA9IHNlbGYtPl9zZXJ2aWNlQ29udHJvbHNFbmFibGVkOwogICAgIGNvbmZpZ3VyYXRp
b24tPl9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyID0gc2VsZi0+
X3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI7Ci0gICAgY29uZmln
dXJhdGlvbi0+X3BhZ2VHcm91cCA9IHNlbGYuX3BhZ2VHcm91cDsKICNlbmRpZgogI2lmIEVOQUJM
RShEQVRBX0RFVEVDVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBjb25maWd1cmF0
aW9uLT5fZGF0YURldGVjdG9yVHlwZXMgPSBzZWxmLT5fZGF0YURldGVjdG9yVHlwZXM7CkBAIC0x
MTM5LDE2ICsxMTM3LDYgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
X3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIgPSByZXF1aXJlc1Vz
ZXJBY3Rpb247CiB9CiAKLS0gKFdLUGFnZUdyb3VwUmVmKV9wYWdlR3JvdXAKLXsKLSAgICByZXR1
cm4gX3BhZ2VHcm91cC5nZXQoKTsKLX0KLQotLSAodm9pZClfc2V0UGFnZUdyb3VwOihXS1BhZ2VH
cm91cFJlZilwYWdlR3JvdXAKLXsKLSAgICBfcGFnZUdyb3VwID0gcGFnZUdyb3VwOwotfQotCiAt
ICh2b2lkKV9zZXRDUFVMaW1pdDooZG91YmxlKWNwdUxpbWl0CiB7CiAgICAgX3BhZ2VDb25maWd1
cmF0aW9uLT5zZXRDUFVMaW1pdChjcHVMaW1pdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oCmluZGV4IDI0MjVlYzZmZmNhYzBiYzU2ZDY0YjhkMzc5NTI5NDMxZjU5YTAzNzguLjI0
MzhhY2RkZmU2MTdjMjcwMWM3ZmI4MjQ3YjM4NmEwYmIzN2FmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0xMDEsNyArMTAxLDYgQEAgdHlwZWRlZiBOU19FTlVNKE5T
VUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfaW1hZ2VDb250cm9sc0VuYWJsZWQg
V0tfQVBJX0RFUFJFQ0FURUQoIkltYWdlIGNvbnRyb2xzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVk
IiwgbWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
d3JpdGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFu
YWdlcjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWR3cml0ZSwgc2V0dGVyPV9zZXRDUFVMaW1pdDopIGRvdWJsZSBfY3B1TGltaXQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRl
LCBzZXR0ZXI9X3NldFBhZ2VHcm91cDopIFdLUGFnZUdyb3VwUmVmIF9wYWdlR3JvdXAgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAjZW5kaWYKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHN0cm9uZywgc2V0dGVyPV9zZXRXZWJzaXRlRGF0YVN0b3JlOikgX1dLV2Vic2l0ZURhdGFT
dG9yZSAqX3dlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgid2Vic2l0ZURhdGFTdG9yZSIsIG1hY29zKDEwLjEwLCAxMC4xMSksIGlvcyg4LjAsIDkuMCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZDY4MDFmYzUxMjE3MGNiZjk5YTYyNDk3MTI3MDFlNGExZjA5YjIwOC4uOGJlNTE4MzIxMWE5
ZTRkZTlmOGRjYjM1NTM3YmFiMzUwMTUxMmMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjc2LDYgKzEyNzYsNyBAQAogCQk1QzlB
OTExMjIyOEY2OUNDMDA1QzVCMTcgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUg
LyogWFBDU2VydmljZU1haW4ubW0gKi87IH07CiAJCTVDOUE5MTEzMjI4RjY5Q0QwMDVDNUIxNyAv
KiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAq
LzsgfTsKIAkJNUM5QTkxMTQyMjhGNjlDRTAwNUM1QjE3IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0
N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OworCQk1QzlERDMyNjI2NEM3
Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5REQzMjUyNjRDN0Y3NDAwRTA3NDQyIC8qIFdL
UGFnZUdyb3VwSW50ZXJuYWwuaCAqLzsgfTsKIAkJNUM5RTU2ODMxREY3RjFCMzAwQzlFRTMzIC8q
IFdLV2Vic2l0ZVBvbGljaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzlFNTY4MTFERjdGMDU1MDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Q0Ey
NkQ4MTIxN0FCRDVCMDBGOTdBMzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0EyNkQ4MDIxN0FCQkI2MDBG
OTdBMzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmggKi87IH07CiAJCTVDQTI2RDgzMjE3QUQx
QjgwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0EyNkQ3RjIxN0FCQkI2MDBGOTdBMzUgLyog
V0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tICovOyB9OwpAQCAtNDQ5Nyw2ICs0NDk4LDcgQEAKIAkJ
NUM4REQzODExRkU0NTVDQTAwRjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVF1aXJrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVBdXRvcGxheVF1aXJrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUM1QzAyMjQzMDUzNTgwMEJCNjc0MCAvKiBVc2Vy
Q29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUM5QzVDMDMyNDMwNTM1ODAwQkI2NzQwIC8qIFVzZXJDb250ZW50Q29u
dHJvbGxlclBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTVDOUREMzI1MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91cEludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUdyb3VwSW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5RTU2ODAxREY3RjA1NTAwQzlF
RTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdLV2Vic2l0ZVBvbGljaWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUM5RTU2ODExREY3RjA1NTAwQzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vic2l0ZVBvbGljaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUVGMkU3MjFGMDU4RjkwMDNCREM1NiAvKiBOZXR3
b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTAzMTEsNiArMTAzMTMsNyBAQAogCQkJCTFBQjhBMUVGMTg0MDBCMDAwMEU5
QUU2OSAvKiBXS1BhZ2VGb3JtQ2xpZW50LmggKi8sCiAJCQkJQkM3QjYzMzYxMkE0NUFCQTAwRDE3
NEE0IC8qIFdLUGFnZUdyb3VwLmNwcCAqLywKIAkJCQlCQzdCNjMzNTEyQTQ1QUJBMDBEMTc0QTQg
LyogV0tQYWdlR3JvdXAuaCAqLywKKwkJCQk1QzlERDMyNTI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQ
YWdlR3JvdXBJbnRlcm5hbC5oICovLAogCQkJCTJEOUVBMzBDMUE5NkNCNTkwMDJEMjgwNyAvKiBX
S1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovLAogCQkJCTFBQjhBMUVCMTg0MDA4MDkwMEU5
QUU2OSAvKiBXS1BhZ2VMb2FkZXJDbGllbnQuaCAqLywKIAkJCQkyRDczMDM3ODFBN0MyQjc1MDBG
OEY0ODcgLyogV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oICovLApAQCAtMTI4NjEsNiArMTI4NjQs
NyBAQAogCQkJCTFBQjhBMUY2MTg0MDBCOUQwMEU5QUU2OSAvKiBXS1BhZ2VGaW5kTWF0Y2hlc0Ns
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRjAxODQwMEIwMDAwRTlBRTY5IC8qIFdL
UGFnZUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0I2MzM3MTJBNDVBQkEwMEQx
NzRBNCAvKiBXS1BhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUM5REQzMjYyNjRDN0Y3
NDAwRTA3NDQyIC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
OUVBMzBEMUE5NkNCNTkwMDJEMjgwNyAvKiBXS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRUMxODQwMDgwOTAwRTlBRTY5IC8qIFdLUGFnZUxvYWRl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRDAyMTkxMkFDNDI2QzAwRTczMkEzIC8q
IFdLUGFnZUxvYWRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmNlYTFhYzBhOThkNGJhNDM4NDY2MDJmYzA1
YjUxYTY0M2MxODBkNS4uZGNhNGE2MmE0NmI1ZDFiNzg5MWI3ZmQyYzIzZDNjYTA0YzM1YWZlOCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY3IEBACisyMDIxLTA1LTEyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGFzIG11Y2ggb2YgV0tQYWdlR3JvdXBSZWYgYXMg
cG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNTcyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0Nsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9N
V2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9u
Tm9DYWNoZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2guY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmROb3RpZmljYXRpb25zLm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJp
dmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
UmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2Nyb2xsUGlu
bmluZ0JlaGF2aW9ycy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlv
bi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9F
ZGl0b3JDb21tYW5kcy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24u
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OkZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjppbml0aWFsaXplVmlldyk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbik6CisKIDIwMjEt
MDUtMTIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTW90aW9uTWFya10gVXBkYXRlIHBsYW4gZmlsZSBhZnRlciByMjc3NDA2CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA1ZTg1MDI2ODlmMTNlOGVkMTE5ZTMxYTc2ZjVi
Y2VjNjA5OGFjZTc1Li5hZjU5YWJlZDY5ZDA4ODk5MjAwODc0YzM1YzQ3NjNkYmU0Yjc4NTY2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTczLDExICs3Myw4IEBAIGNs
YXNzIFBsYXRmb3JtV2ViVmlldyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGxhdGZvcm1X
ZWJWaWV3KTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29u
ZmlndXJhdGlvblJlZik7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYgPSAwKTsKKyAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZpZXcoV0tD
b250ZXh0UmVmKTsKICAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHJlbGF0
ZWRQYWdlKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgZXhwbGljaXQgUGxhdGZvcm1XZWJWaWV3
KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIENsYXNzIHdrVmlld1N1YmNsYXNzKTsKLSNl
bmRpZgogICAgIH5QbGF0Zm9ybVdlYlZpZXcoKTsKIAogICAgIFdLUGFnZVJlZiBwYWdlKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyMGVmNzQ0YmZhZDcwZDhjNzM4ZGMwZDhh
ODFmMjg3Y2MxOTBlOWEuLjcyMDZjOWFhOWI0NzczNjc1N2JkMmMwMTYxMDkzMGI4ZWRmMGU4OTEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NzcsNyArNjc3LDcgQEAKIAkJN0M5RUQ5OEIx
N0ExOUY0QjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M5RUQ5
OEExN0ExOUQwNjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoLmh0bWwg
Ki87IH07CiAJCTdDQjE4NEM2MUFBM0YyMTAwMDY2RURGRCAvKiBDb250ZW50RXh0ZW5zaW9ucy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0IxODRD
NDFBQTNGMjEwMDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lvbnMuY3BwICovOyB9OwogCQk3Q0JE
NUEyMzIyREU0MkE2MDA0QTlFMzIgLyogV1RGU3RyaW5nVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkQ1QTIyMjJERTQyQTYwMDRB
OUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovOyB9OwotCQk3Q0NCNERBOTFDODNBRTcz
MDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDQ0I0REE3MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3Bw
ICovOyB9OworCQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQjREQTcxQzgzQUU3
MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLzsgfTsKIAkJN0NDQjk5MjExRDNCNDFGNjAwMzky
MkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0NCOTkyMDFEM0I0MUY2MDAz
OTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbSAqLzsgfTsK
IAkJN0NDQjk5MjMxRDNCNEE0NjAwMzkyMkY2IC8qIG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJs
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NDQjk5MjIxRDNCNDRFNzAwMzkyMkY2IC8qIG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJs
Lmh0bWwgKi87IH07CiAJCTdDQ0U3RUE1MUE0MTFBMDgwMDQ0N0M0QyAvKiBKYXZhU2NyaXB0VGVz
dE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMw
ODEyMjQwMTNGQzE3MjQwMERDMzlBRSAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSAqLzsgfTsKQEAg
LTI0NzQsNyArMjQ3NCw3IEBACiAJCTdDQkJBMDc2MTlCQjhBOTEwMEJCRjAyNSAvKiBPU09iamVj
dFB0ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPU09iamVjdFB0
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQkQ1QTIyMjJERTQyQTYwMDRB
OUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGU3Ry
aW5nVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDM0UxRkEx
OTdFMjM0MTAwQkU2MjUyIC8qIFVzZXJDb250ZW50Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJDb250ZW50Q29udHJvbGxlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBh
Z2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlR3Jv
dXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0NCNERBNzFDODNBRTczMDBD
QzY5MTggLyogUGFnZUdyb3VwLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUGFnZUdyb3VwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NCOTky
MDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJJbml0aWF0
ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdDQ0I5OTIyMUQzQjQ0RTcwMDM5MjJGNiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVy
bC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm9wZW4tbXVsdGlwbGUtZXh0ZXJu
YWwtdXJsLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NFN0U4QzFBNDEx
NDRFMDA0NDdDNEMgLyogbGliVGVzdFdlYktpdEFQSS5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBsaWJUZXN0V2ViS2l0QVBJLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CkBAIC0zNDgzLDggKzM0ODMsOCBAQAogCQkJCTYzNTE5OTI3MjIyNzVDNkEwMDg5MEFE
MyAvKiBOYXZpZ2F0aW9uQWN0aW9uLm1tICovLAogCQkJCTVDOEJDNzk4MjE4Q0YzRTkwMDgxMzg4
NiAvKiBOZXR3b3JrUHJvY2Vzcy5tbSAqLywKIAkJCQk1Q0FFNDYzNzIwMTkzN0NEMDA1MTYxMEYg
LyogTmV0d29ya1Byb2Nlc3NDcmFzaE5vblBlcnNpc3RlbnREYXRhU3RvcmUubW0gKi8sCi0JCQkJ
NDZBODBGMjUyNjRDMjlENDAwRUVGMjBEIC8qIE5vdGlmaWNhdGlvbkFQSS5tbSAqLywKIAkJCQlD
RENGRkVDMDIyRTI2OEQ1MDBERjQyMjMgLyogTm9QYXVzZVdoZW5Td2l0Y2hpbmdUYWJzLm1tICov
LAorCQkJCTQ2QTgwRjI1MjY0QzI5RDQwMEVFRjIwRCAvKiBOb3RpZmljYXRpb25BUEkubW0gKi8s
CiAJCQkJQ0QyRDBEMTkyMTM0NjU1NjAwMThDNzg0IC8qIE5vd1BsYXlpbmcubW0gKi8sCiAJCQkJ
MkVDRkY1NTQxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tICov
LAogCQkJCUExMEYwNDdDMUUzQUQyOUMwMEM5NUUxOSAvKiBOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1t
ICovLApAQCAtNDMzMSw3ICs0MzMxLDcgQEAKIAkJCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkg
LyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8sCiAJ
CQkJMEY1NjUxRjYxRkNFNEREQjAwMzEwRkJDIC8qIE5vSGlzdG9yeUl0ZW1TY3JvbGxUb0ZyYWdt
ZW50Lm1tICovLAogCQkJCTFDQjJGMjdCMjRGODgzNzkwMDBBNUJDMSAvKiBPcnRob2dvbmFsRmxv
d0F2YWlsYWJsZVNpemUubW0gKi8sCi0JCQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBh
Z2VHcm91cC5jcHAgKi8sCisJCQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91
cC5tbSAqLywKIAkJCQlCQzkwOTc3OTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5j
cHAgKi8sCiAJCQkJQkMyRDAwNDgxMkE5RkRGQTAwRTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdl
TG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwICovLAogCQkJCTI3MkE2OTBGMjJGMDEyQzcw
MDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLywKQEAgLTU0NTIsNyArNTQ1Miw2IEBACiAJ
CQkJQ0RCMjEzQkQyNEVGNTIyODAwRkRFMzAxIC8qIEZ1bGxzY3JlZW5Gb2N1cy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUNERTc3RDI1MjVBNjU5MUMwMEQ0MTE1RSAvKiBGdWxsc2NyZWVuUG9pbnRl
ckxlYXZlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0REQzdDNjkyNUZGRjZEMDAwMjI0Mjc4IC8q
IEZ1bGxzY3JlZW5SZW1vdmVOb2RlQmVmb3JlRW50ZXIubW0gaW4gU291cmNlcyAqLywKLQkJCQk0
NkE4MEYyNjI2NEMyOUQ0MDBFRUYyMEQgLyogTm90aWZpY2F0aW9uQVBJLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RCRkNDNDUxQTlGRjQ1MzAwQTdCNjkxIC8qIEZ1bGxzY3JlZW5ab29tSW5pdGlh
bEZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODNEQjc5NjkxRUY2M0IzQzAwQkZBNUU1IC8q
IEZ1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUY4MUE0MTFBRTYwMDQ0N0M0
QyAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU1ODMsNiArNTU4Miw3IEBA
CiAJCQkJN0NDRTdGMDUxQTQxMUFFNjAwNDQ3QzRDIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZyYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU2NTFGNzFGQ0U0RERDMDAz
MTBGQkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21lbnQubW0gaW4gU291cmNlcyAqLywK
IAkJCQk4M0YyMkM2NDIwQjM1NUY4MDAzNDI3N0UgLyogTm9Qb2xpY3lEZWxlZ2F0ZVJlc3BvbnNl
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDZBODBGMjYyNjRDMjlENDAwRUVGMjBEIC8qIE5vdGlm
aWNhdGlvbkFQSS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMkQwRDFBMjEzNDY1NTYwMDE4Qzc4
NCAvKiBOb3dQbGF5aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVDRkY1NTUxRDlCMTJGODAw
QjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTE1OUYyNjcyNjBENDNFMzAwQjJEQTNDIC8qIE5vd1BsYXlpbmdJbmZvVGVzdHMuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC01NTk3LDcgKzU1OTcsNyBAQAogCQkJCUMxMDRCQzFGMjU0NzIzNzEwMEMw
NzhDOSAvKiBPdmVycmlkZUFwcGxlTGFuZ3VhZ2VzUHJlZmVyZW5jZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTJEQTI1ODZGMjI1QzY3REMwMEI0NUMxQyAvKiBPdmVycmlkZVZpZXdwb3J0QXJndW1l
bnRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTUzQUJCMzUyNUMwRDY4MjAwNEM4QjczIC8qIFBh
Z2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovLAotCQkJCTdDQ0I0REE5
MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0ND
QjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RjA3MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZEJhc2ljLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RjA4MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZERpZENoYW5nZUxv
Y2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3MkE2OTEw
MjJGMDEyREEwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhS
VGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hI
UlRlc3QubW0KaW5kZXggNDdmNWU4ODVjZDZhMGMxNGYzOWFmYjcxOGE4YmM1ZDk5ZTlmNWM3ZC4u
YWQzOTkxZDU2ZjIxZTU2MmUyNDVhMjQwN2I2MzY1YzQ5ODhlNmFiZCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1t
CkBAIC01Miw5ICs1Miw3IEBAIFRFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIFN5bmNY
SFIpCiAgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0R3JvdXA+IGJyb3dzaW5nQ29udGV4
dEdyb3VwID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0R3JvdXAgYWxsb2NdIGluaXRXaXRo
SWRlbnRpZmllcjpAIlRlc3RJZGVudGlmaWVyIl0pOwogCiAgICAgLy8gQWxsb3cgZmlsZSBVUkxz
IHRvIGxvYWQgbm9uLWZpbGUgcmVzb3VyY2VzCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNl
c1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAg
V0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVy
ZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoYnJvd3Np
bmdDb250ZXh0R3JvdXAuZ2V0KCkuX3BhZ2VHcm91cFJlZiwgcHJlZmVyZW5jZXMuZ2V0KCkpOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKFdL
UGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoYnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCkuX3BhZ2VH
cm91cFJlZiksIHRydWUpOwogCiAgICAgUmV0YWluUHRyPFdLVmlldz4gd2tWaWV3ID0gYWRvcHRO
UyhbW1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBwcm9jZXNzR3JvdXA6cHJvY2Vzc0dyb3VwLmdldCgpIGJyb3dzaW5nQ29udGV4dEdyb3VwOmJy
b3dzaW5nQ29udGV4dEdyb3VwLmdldCgpXSk7CiAgICAgIFJldGFpblB0cjxUZXN0QnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0QnJvd3NpbmdDb250
ZXh0TG9hZERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEJsb2NrVG9SdW5PbkxvYWQ6XihXS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIgKnNlbmRlcikgewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNw
cAppbmRleCAyODg1ZjUyYmE4MWEyM2UzMDEyNzMzMTQ5NGU3Y2IyMTdjM2M1NjdjLi5kNjVkNDUz
NTg0MDM1MjRhNWQ3NWVhOThiNGU3NWNmNWNmZWE5YTZmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQ
YWdlLmNwcApAQCAtNzYsMTAgKzc2LDggQEAgVEVTVChXZWJLaXQsIENsb3NlRnJvbVdpdGhpbkNy
ZWF0ZVBhZ2UpCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlD
bGllbnQuYmFzZSk7CiAKICAgICAvLyBBbGxvdyBmaWxlIFVSTHMgdG8gbG9hZCBub24tZmlsZSBy
ZXNvdXJjZXMKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9
IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOworICAgIFdLUmV0YWlu
UHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdl
dFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcu
cGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKLSAgICBXS1BhZ2VHcm91
cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0KCkpOwogICAgIAogICAg
IFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJjbG9zZS1mcm9tLXdpdGhpbi1jcmVhdGUtcGFnZSIsICJodG1sIikpOwogICAgIFdL
UGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CkBAIC0xMjEsMTAgKzExOSw4
IEBAIFRFU1QoV2ViS2l0LCBDcmVhdGVQYWdlVGhlbkRvY3VtZW50T3Blbk1JTUVUeXBlKQogICAg
IFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwog
CiAgICAgLy8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZpbGUgcmVzb3VyY2VzCi0gICAg
V0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJl
ZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gV0tQYWdl
R2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVu
Y2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhh
ZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgp
KTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dl
ZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNl
cyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKIAogICAgIHRlc3REb25lID0gZmFsc2U7
CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJM
Rm9yUmVzb3VyY2UoIndpbmRvdy1vcGVuLXRoZW4tZG9jdW1lbnQtb3BlbiIsICJodG1sIikpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0
ZW5zaW9uQmFzaWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2lu
ZG93RXh0ZW5zaW9uQmFzaWMuY3BwCmluZGV4IDU1YWEzN2UxMzAyYzI2ZDJlOTUwM2QwNWE4OGJj
NzE0NWNmYzY1MzkuLmQwMmZmMjNhMjNkYmQ1NzhiNTE3MWQyNjRiNTliYjA4NWEwY2IyOGUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVu
c2lvbkJhc2ljLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01X
aW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKQEAgLTgyLDkgKzgyLDcgQEAgc3RhdGljIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0cmluZ1Jl
ZiBtZXNzYWcKIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbkJhc2lj
KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdL
KFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljUGFnZUdyb3VwIikpKTsgCi0KLSAgICBXS1Jl
dGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRl
eHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljIiwgcGFnZUdy
b3VwLmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRv
cHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dF
eHRlbnNpb25CYXNpYyIpKTsKIAogICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50VjAg
aW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiAgICAgbWVtc2V0KCZpbmplY3RlZEJ1bmRsZUNsaWVudCwg
MCwgc2l6ZW9mKGluamVjdGVkQnVuZGxlQ2xpZW50KSk7CkBAIC05OCw3ICs5Niw3IEBAIFRFU1Qo
V2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNpYykKICAgICAvLyBtb2RlbCB0
aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250
ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93
c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VH
cm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHRlbnNpb25zIGZvciBlYWNoIGZyYW1lIGFy
ZSBpbnN0YWxsZWQgaW4gZWFjaCB3b3JsZC4KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJs
MSA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZS1pZnJhbWUiLCAi
aHRtbCIpKTsKQEAgLTEzNyw5ICsxMzUsNyBAQCBURVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2lu
ZG93RXh0ZW5zaW9uQmFzaWMpCiAKIFRFU1QoV2ViS2l0LCBET01XaW5kb3dFeHRlbnNpb25DcmFz
aE9uUmVsb2FkKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAg
PSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljUGFnZUdyb3VwIikpKTsKLQot
ICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3Jl
YXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMi
LCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRP
TVdpbmRvd0V4dGVuc2lvbkJhc2ljIikpOwogCiAgICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVD
bGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1zZXQoJmluamVjdGVkQnVuZGxl
Q2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQpKTsKQEAgLTE1Myw3ICsxNDks
NyBAQCBURVNUKFdlYktpdCwgRE9NV2luZG93RXh0ZW5zaW9uQ3Jhc2hPblJlbG9hZCkKICAgICAv
LyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAg
ICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9j
dW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0
KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2Fj
aGUuY3BwCmluZGV4IGUxNjk2ZDViZDY1Njk0NzI3OGY5NDc0ODUyNTMxNzJiYzQ5YjdjYTcuLmM3
ZDBmOGQwOGVhMjI0MmFiYzdhZDM4NjUyNDlhYThjMjU0ZjIxMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bk5vQ2FjaGUuY3BwCkBAIC04Myw5ICs4Myw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnCiAK
IFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlKQogewotICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdy
b3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRP
TVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVQYWdlR3JvdXAiKSkpOwotCi0gICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5q
ZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlIiwgcGFnZUdyb3VwLmdl
dCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRlbnNp
b25Ob0NhY2hlIikpOwogCiAgICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMSBpbmpl
Y3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1zZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBz
aXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQpKTsKQEAgLTk4LDcgKzk2LDcgQEAgVEVTVChXZWJL
aXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUpCiAgICAgLy8gRGlzYWJsZSB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoY29udGV4
dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsKIAotICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICAvLyBNYWtlIHN1cmUgdGhl
IGV4dGVuc2lvbnMgZm9yIGVhY2ggZnJhbWUgYXJlIGluc3RhbGxlZCBpbiBlYWNoIHdvcmxkLgog
ICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwxID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxG
b3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENy
YXNoLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRV
c2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKaW5kZXggZGE0NTQ0N2NhZjEwMDQxMWVhMjczZWI1ZmM1
MzFkZjcxM2FlMDA0Yy4uZDRhMzUxMjM0NWVkNWMyYTQyM2E2M2Y4YjA5NmY2YmNlMzdiYjU5ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFy
dFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwCkBAIC00OCwxMCAr
NDgsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNUKFdlYktpdCwgRG9jdW1lbnRT
dGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VH
cm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlm
aWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEb2N1bWVudFN0YXJ0VXNlclNjcmlw
dEFsZXJ0Q3Jhc2hUZXN0UGFnZUdyb3VwIikpKTsgCi0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1
bmRsZVRlc3QoIkRvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaFRlc3QiLCBwYWdlR3Jv
dXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBw
YWdlR3JvdXAuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRG9jdW1l
bnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCIpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjAgdWlDbGllbnQ7
CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVNZWRpYURldmljZXMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZp
Y2VzLmNwcAppbmRleCBhM2Q3YjljZGQ3MDQxODhlZmVlNzNmZmIwZjEwYzU4MzE3MDc5MDQ3Li5h
YjdhNmYyNDQ3NTgzN2NiYmQ1NTliOGZiOGQxZjZjNWI1MjcwM2VjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVNZWRpYURldmljZXMuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNl
cy5jcHAKQEAgLTUxLDE4ICs1MSwxOCBAQCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlcykK
IHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1
cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdl
R3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9X
SygiRW51bWVyYXRlRGV2aWNlcyIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZl
cmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVu
dFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkp
OwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDY7CiAgICAgdWlDbGllbnQuY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luID0gY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJh
Y2s7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3Jv
dXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwor
ICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0
UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5w
YWdlKCkpKS5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQo
cHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1l
ZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwor
CisKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5i
YXNlKTsKIAogICAgIGF1dG8gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgiZW51bWVyYXRlTWVkaWFEZXZpY2VzIiwgImh0bWwiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0
b3J5Q2FsbGJhY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1l
cmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAppbmRleCA2ODVmOTQzYWI3
MmJjNmM3NGVmZmIwOTM1YWI2ZmNkOWEzMWVmYjQ1Li4wOTFiZTJjMmM5ZDg4YzhhNWUzMWY1MzFj
OTUzM2NmODlkYjkxN2Y2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3Rh
dGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKQEAgLTc3LDEyICs3Nyw5IEBAIFRFU1QoV2ViS2l0LCBF
cGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2spCiAKICAgICBXS1BhZ2VT
ZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnBhZ2VMb2FkZXJDbGllbnQu
YmFzZSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9
IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZl
cmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNl
cyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdl
dCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxs
b3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7CiAKLSAgICBXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOwotICAgIFdLUGFnZUdy
b3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJlbmNlcy5nZXQoKSk7Ci0KICAgICBX
S1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgicHVzaC1zdGF0ZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIHVybC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwCmluZGV4IDZkNGYxYjdmNDViMTAxNWY5NWEw
YzU2M2UyZmVmMmVlOGZhYjdmMjYuLjFlYmNkNGVlOGVhZmUxYjIyZTBjM2E1OTU0YWJjMTJkMzI5
MzNjNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVj
dGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVC
dWlsdGluc0JlaGF2aW9yLmNwcApAQCAtNTAsMTAgKzUwLDggQEAgc3RhdGljIHZvaWQgcnVuSmF2
YVNjcmlwdEFsZXJ0RW5hYmxlZChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0
LCBXS0YKIAogVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWls
dGluc0JlaGF2aW9yVGVzdCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFn
ZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRC
dW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
clRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4
dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVu
ZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JU
ZXN0IikpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAg
ICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBz
aXplb2YodWlDbGllbnQpKTsKQEAgLTg0LDEwICs4Miw4IEBAIHN0YXRpYyB2b2lkIHJ1bkphdmFT
Y3JpcHRBbGVydERpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQs
IFdLCiAKIFRFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3JUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3Jv
dXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVU
ZXN0KCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0Iiwg
cGFnZUdyb3VwLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5n
ZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNv
bnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3Qo
IkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiKSk7Cisg
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VV
SUNsaWVudFYwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNs
aWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5q
ZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAK
aW5kZXggZTkwOGIxYTgzYzhmOGQ5M2Y3ODY5ODJhZTMyNTU4MWU0MDc0OWUzMi4uNmU1ODAzNDY1
MjBkN2MyYWE2NTJmOGY1MjRlMGY4ODk4ZGE0NDc3NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVu
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRs
ZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCkBAIC04NSwxMCArODUsOCBAQCBzdGF0aWMgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4
dCwgV0tGcmFtZVJlZgogCiBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93
Um9vdE9wZW5UZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3Jv
dXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVz
dFBhZ2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkluamVj
dGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVzdCIsIHBhZ2VHcm91cC5nZXQoKSkpOwot
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQo
KSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZU1ha2VB
bGxTaGFkb3dSb290T3BlblRlc3QiKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29u
dGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xpZW50OwogICAgIG1lbXNl
dCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFlZTkwNDMyNzUyOGIzZTg1YWVkMjNiMmM3ZGM2NzMzMjZkMjQ3MWEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgPFdlYktpdC9XS0ZvdW5k
YXRpb24uaD4KLQotI2lmIFdLX0hBVkVfQ19TUEkKLQotI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKLSNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgotI2ltcG9ydCAiVGVzdC5oIgotI2lt
cG9ydCA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVu
dENvbnRyb2xsZXJSZWYuaD4KLSNpbXBvcnQgPFdlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uUmVm
Lmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotVEVTVChQYWdlR3JvdXAsIERlZmF1
bHRVc2VyQ29udGVudENvbnRyb2xsZXIpCi17Ci0gICAgYXV0byBwYWdlQ29uZmlndXJhdGlvbiA9
IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKLSAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwg
Y29udGV4dC5nZXQoKSk7Ci0gICAgYXV0byBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3Vw
Q3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiVGVzdFBhZ2VHcm91cCIpLmdldCgpKSk7
Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChwYWdlQ29uZmlndXJhdGlvbi5n
ZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQotICAgIGF1dG8gcGFnZUdyb3VwVXNlckNvbnRlbnRD
b250cm9sbGVyID0gcmV0YWluV0soV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIo
cGFnZUdyb3VwLmdldCgpKSk7Ci0KLSAgICBFWFBFQ1RfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9u
R2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpKSk7Ci0KLSAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSk7Ci0gICAg
YXV0byBjb3BpZWRQYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25m
aWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICBBU1NFUlRfRVEocGFnZUdyb3VwVXNl
ckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRl
bnRDb250cm9sbGVyKGNvcGllZFBhZ2VDb25maWd1cmF0aW9uLmdldCgpKSk7Ci19Ci0KLVRFU1Qo
UGFnZUdyb3VwLCBDdXN0b21Vc2VyQ29udGVudENvbnRyb2xsZXIpCi17Ci0gICAgYXV0byBwYWdl
Q29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKLSAg
ICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9u
KG51bGxwdHIpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29uZmln
dXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7Ci0gICAgYXV0byBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiVGVzdFBhZ2VH
cm91cCIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChwYWdl
Q29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLSAgICBhdXRvIHVzZXJDb250
ZW50Q29udHJvbGxlciA9IGFkb3B0V0soV0tVc2VyQ29udGVudENvbnRyb2xsZXJDcmVhdGUoKSk7
Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFVzZXJDb250ZW50Q29udHJvbGxlcihwYWdlQ29u
ZmlndXJhdGlvbi5nZXQoKSwgdXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpKTsKLQotICAgIGF1
dG8gcGFnZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyID0gcmV0YWluV0soV0tQYWdlR3JvdXBH
ZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUdyb3VwLmdldCgpKSk7Ci0KLSAgICBFWFBFQ1Rf
RVEodXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNl
ckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpKSk7Ci0KLSAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSk7Ci0gICAgYXV0byBj
b3BpZWRQYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0
aW9uKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICBFWFBFQ1RfRVEodXNlckNvbnRlbnRDb250cm9s
bGVyLmdldCgpLCBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKGNv
cGllZFBhZ2VDb25maWd1cmF0aW9uLmdldCgpKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9QYWdlR3JvdXAubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
YWdlR3JvdXAubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhY2QzYTBlNzVjZmY4N2MyMjRhZjk4MWExZDBiM2Qy
ZGM5NTZmZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1BhZ2VHcm91cC5tbQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdL
X0hBVkVfQ19TUEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRl
c3QuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
UmV0YWluUHRyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoUGFn
ZUdyb3VwLCBQcmVmZXJlbmNlcykKK3sKKyAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gYWRv
cHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOworICAgIGF1dG8gY29udGV4dCA9IGFk
b3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOworICAgIFdL
UGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBjb250
ZXh0LmdldCgpKTsKKyAgICBhdXRvIHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVh
dGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJUZXN0UGFnZUdyb3VwIikuZ2V0KCkpKTsKKyAg
ICBhdXRvIHdrVmlldyA9IGFkb3B0TlMoW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0WmVybyBjb250ZXh0UmVmOmNvbnRleHQuZ2V0KCkgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cC5n
ZXQoKV0pOworICAgIEVYUEVDVF9FUShXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMo
YWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2tWaWV3LmdldCgpLnBhZ2VSZWYp
KS5nZXQoKSksIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmROb3RpZmljYXRp
b25zLm1tCmluZGV4IDM2NWMyZGRiOWI5MmU1YzY2ZTYyNzk2MGE1YTJiZmE5ZTRkYWE2MWEuLmZm
NDJmNDMyODdmZmY5YTNlN2I1Y2FiMjA4OGMxMzdhMGI4NDhlN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmROb3RpZmljYXRpb25zLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmROb3RpZmljYXRp
b25zLm1tCkBAIC02NywxMiArNjcsOSBAQCBURVNUKFdlYktpdCwgUGFzdGVib2FyZE5vdGlmaWNh
dGlvbnMpCiAKICAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAot
ICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhX
S1ByZWZlcmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+
IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0so
V0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAg
IFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKHByZWZlcmVuY2Vz
LmdldCgpLCB0cnVlKTsKIAotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdl
dFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNl
cyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKLQogICAgIFdLUGFnZUxvYWRVUkwod2Vi
Vmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImV4ZWNDb3B5
IiwgImh0bWwiKSkuZ2V0KCkpOwogICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVz
aFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCmluZGV4
IDYzNTI1M2UwYTY2ZWY4MGY2ZWQzOTY1ZTc3ZDA2OWNkYjkyNDg2NzYuLmUzMTFiZjExZWMwYTU4
MDFkZmMyZWVlNDdhNTQ2ODVmODQ4MWRiMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNr
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3Np
bmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKQEAgLTgwLDEyICs4MCw5IEBAIFRFU1Qo
V2ViS2l0LCBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjaykKIAogICAg
IFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmcGFnZUxvYWRl
ckNsaWVudC5iYXNlKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZl
cmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFBy
ZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFn
ZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKIAotICAgIFdLUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAg
V0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsK
LQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVS
TEZvclJlc291cmNlKCJwdXNoLXN0YXRlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3
ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZp
ZXcuY3BwCmluZGV4IGEwODgzOGU3N2VmYWY0N2I0ZjFmN2RmNTM5MzYwOGEyNzMzM2FjNGIuLjZi
ODY3ZmVmNmJkNWU5ZjRkOTU0YjZmMjkzZjJhZDhjMTk0ZTNjN2IgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNl
UGFnaW5hdGVkV2ViVmlldy5jcHAKQEAgLTc1LDggKzc1LDcgQEAgVEVTVChXZWJLaXQsIFJlc2l6
ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3KQogCiAgICAgV0tQYWdlTGlzdGVuRm9yTGF5b3V0TWls
ZXN0b25lcyh3ZWJWaWV3LnBhZ2UoKSwga1dLRGlkRmlyc3RMYXlvdXRBZnRlclN1cHByZXNzZWRJ
bmNyZW1lbnRhbFJlbmRlcmluZyk7CiAKLSAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSAg
V0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXApOworICAg
IFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJl
ZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdl
KCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN1cHByZXNzZXNJbmNyZW1lbnRhbFJl
bmRlcmluZyhwcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBXS1BhZ2VTZXRQYWdpbmF0aW9uTW9k
ZSh3ZWJWaWV3LnBhZ2UoKSwga1dLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVmdCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZp
b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9sbFBpbm5pbmdC
ZWhhdmlvcnMuY3BwCmluZGV4IDg1ZjI1YTY0NmZhYjJiYTQ2ZDc0MTg2ZTBmZjVmMjc2ZTYyMjZl
OTkuLjRiMTM4ZTQ5MGM3NDYzZDVlZTAyOTJjZjFlYWQ2ZDA3Njg2NGYyNzUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9sbFBpbm5pbmdC
ZWhhdmlvcnMuY3BwCkBAIC03MywxNSArNzMsMTQgQEAgVEVTVChXZWJLaXQsIFNjcm9sbFBpbm5p
bmdCZWhhdmlvcnMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgIFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMo
YWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQo
KSk7CiAgICAgLy8gVHVybiBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5IHdh
aXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRpb24gdG8KICAgICAvLyB1cGRh
dGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdvdWxkIGJlIGJldHRlciwgYnV0IGZvciBzb21l
IHJlYXNvbiBkb2Vzbid0IGJsb2NrIHVudGlsCiAgICAgLy8gaXQncyB1cGRhdGVkIGFmdGVyIHRo
ZSBpbml0aWFsIFdLUGFnZVNldFNjcm9sbFBpbm5pbmdCZWhhdmlvciBhYm92ZS4KLSAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENy
ZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk5vVGhyZWFkZWRTY3JvbGxpbmdQYWdlR3Jv
dXAiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VH
cm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1Nl
dFRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogCi0gICAgUGxh
dGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQog
ICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZs
b2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcuY3BwCmluZGV4
IGQyMzEzMzFiOTU1MjhlNGQ1MDA2YjM0MzQzZDc1YmVjMDA3MTQ5NjEuLjc5MWY5NDM3MDJlMTZi
ZmExMTE2MzQwZmZiOWNjNDNlZmM1MzBmY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHAKQEAgLTUzLDE0ICs1Mywx
MyBAQCBURVNUKFdlYktpdCwgU3BhY2ViYXJTY3JvbGxpbmcpCiB7CiAgICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0V2l0aElu
amVjdGVkQnVuZGxlKCkpOwogCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5n
ZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3
ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKwogICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9s
bGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBv
c2l0aW9uIHRvCiAgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBi
ZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNp
b25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRl
ZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKICAg
ICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBm
YWxzZSk7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdl
R3JvdXAuZ2V0KCkpOwotCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVu
dDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcAppbmRl
eCA1NzUxOTczYTU4ODc4OWU0ZmU5Zjg2ZTk1NTM1ZWI1NWUyZmQ3ZTEzLi4wY2JjNTAwYWIyZjM1
NGUwZGFiNTE1ODhlNmQwYzVhYmYyMmVhZTZhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKQEAgLTcxLDIwICs3MSwxOCBAQCBURVNUKFdlYktp
dCwgVXNlck1lZGlhQmFzaWMpCiB7CiAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRl
eHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAKLSAgICBXS1JldGFpblB0cjxX
S1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJ
ZGVudGlmaWVyKFV0aWw6OnRvV0soIkdldFVzZXJNZWRpYSIpLmdldCgpKSk7Ci0gICAgV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdy
b3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVS
THNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFD
YXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0gICAg
V0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwotCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xp
ZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKICAgICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSA2
OwogICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFjazsKICAg
ICB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4gPSBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25DYWxsYmFjazsKICAgICAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMg
PSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFn
ZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVy
ZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
bihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURl
dmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIHdhc1Byb21wdGVkID0g
ZmFsc2U7CkBAIC0xMDcsMjAgKzEwNSwxOCBAQCBURVNUKFdlYktpdCwgT25EZXZpY2VDaGFuZ2VD
cmFzaCkKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhD
b25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVm
PiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiR2V0VXNlck1lZGlhIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwot
ICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVl
KTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2Vz
U2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBX
S1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVv
Zih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDY7CiAgICAgdWlDbGll
bnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrOwogICAgIHVpQ2xpZW50LmNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiA9IGNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkNhbGxiYWNrOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwg
cGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0Lmdl
dCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJh
dGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdl
YlZpZXcucGFnZSgpKSkuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNF
bmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZh
bHNlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgp
LCAmdWlDbGllbnQuYmFzZSk7CiAKICAgICAvLyBMb2FkIGEgcGFnZSByZWdpc3RlcmluZyBvbmRl
dmljZWNoYW5nZSBoYW5kbGVyLgpAQCAtMTY3LDEzICsxNjMsNiBAQCBURVNUKFdlYktpdCwgRW51
bWVyYXRlRGV2aWNlc0NyYXNoKQogewogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250
ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwogCi0gICAgV0tSZXRhaW5QdHI8
V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRo
SWRlbnRpZmllcihVdGlsOjp0b1dLKCJHZXRVc2VyTWVkaWEiKS5nZXQoKSkpOwotICAgIFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VH
cm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgLy8gV2Ugd2FudCB1
aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4gdG8gYmUgbnVsbC4KICAg
ICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKQEAgLTE4NCw3ICsxNzMs
MTMgQEAgVEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFzaCkKICAgICBsb2FkZXJDbGll
bnQuYmFzZS52ZXJzaW9uID0gMzsKICAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTmF2aWdhdGlv
biA9IGRpZEZpbmlzaE5hdmlnYXRpb247CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBX
S1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNv
bmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1Nl
dE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihw
cmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmlj
ZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogICAgIFdLUGFnZVNldFBhZ2VOYXZp
Z2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50LmJhc2UpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0
aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZpZ3Vy
YXRpb24uY3BwCmluZGV4IGU1NDEwMGM4Yzc5NDY3MTY1MDkwMmIzMjNmZWZkMTU4MjFlNDI3YWIu
LjA1ZDk1ZTQ5NzQxODA1NTMwOTU5YTI2YzM0OGMxZThjOTdjN2FhZTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwCkBAIC00MSw3ICs0MSw2IEBAIFRFU1QoV2ViS2l0LCBXS1BhZ2VDb25maWd1cmF0aW9uRW1w
dHkpCiAKICAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9uR2V0Q29udGV4dChjb25m
aWd1cmF0aW9uLmdldCgpKSk7CiAgICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlvbkdl
dFVzZXJDb250ZW50Q29udHJvbGxlcihjb25maWd1cmF0aW9uLmdldCgpKSk7Ci0gICAgQVNTRVJU
X05VTEwoV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cChjb25maWd1cmF0aW9uLmdldCgp
KSk7CiAgICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGNv
bmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9u
R2V0UmVsYXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSkpOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3Bw
CmluZGV4IGMxZWYwOTE1YzI3ZTIxNWM3OGJjODQzMWExY2FjZjRmNGQyNTg5YzAuLjU2NDlkOTA0
NGM4ZTNkYjQ2MGU4OTFmNjdiNTUwNTUwZGE3ZTFkOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1ZGlvLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHAKQEAg
LTExNywxMiArMTE3LDEwIEBAIFRFU1QoV2ViS2l0LCBNU0VJc1BsYXlpbmdBdWRpbykKIHsKICAg
ICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENy
ZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoVXRpbDo6dG9XSygiTVNFSXNQbGF5aW5nQXVkaW9QYWdlR3JvdXAiKS5nZXQoKSkpOwot
ICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVu
Y2VzKHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZp
Z3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlv
bih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFTb3Vy
Y2VFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFj
Y2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCi0gICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKICAgICBz
ZXRVcENsaWVudHMod2ViVmlldy5wYWdlKCkpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+
IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImZpbGUtd2l0aC1tc2Ui
LCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9y
UHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQppbmRleCBiOTEyM2Y3OTgzYTg1YzQ0ZmMzODljNTc2
ZWNjM2ZiZjUxZTI2NmJlLi5jZTZhODA2OGQzODg4NWQyODA4NjNjMDY3NjhkMDkxZWRmY2YwMjIz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQXR0cmli
dXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3Nl
ZFJhbmdlV2l0aEltYWdlLm1tCkBAIC01OCw4ICs1OCw3IEBAIHN0YXRpYyB2b2lkIGludmFsaWRN
ZXNzYWdlRnVuY3Rpb24oV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUpCiBURVNUKFdlYktpdCwgQXR0
cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UpCiB7CiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0
V2l0aEluamVjdGVkQnVuZGxlKCkpOwotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBw
YWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6
dG9XSygiQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2VQYWdlR3Jv
dXAiKS5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCks
IHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5n
ZXQoKSk7CiAKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAgbG9hZGVyQ2xpZW50OwogICAg
IG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVEb3du
bG9hZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVu
dURvd25sb2FkLm1tCmluZGV4IDc1NTZmNjEyZDVlM2I5YmE0ZjRjZDZmNTI2Yzk1OGMxN2YzZjFm
MjYuLjY0ZDY3YWIyZTNjNzVkOWYwOTkzNDY2ZmE3NmJmNmQ2YTUwNWNhYWQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudURvd25sb2Fk
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVu
dURvd25sb2FkLm1tCkBAIC05Miw4ICs5Miw3IEBAIFRFU1QoV2ViS2l0LCBDb250ZXh0TWVudURv
d25sb2FkSFRNTERvd25sb2FkQXR0cmlidXRlKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4
dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1
bmRsZSgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBh
ZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTXlHcm91
cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwg
cGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0Lmdl
dCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMyBsb2FkZXJDbGllbnQ7CiAgICAg
bWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKQEAgLTE0Myw4
ICsxNDIsNyBAQCBURVNUKFdlYktpdCwgQ29udGV4dE1lbnVEb3dubG9hZEhUTUxEb3dubG9hZEF0
dHJpYnV0ZVdpdGhTbGFzaGVzKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29u
dGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsK
IAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdL
UGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTXlHcm91cCIpLmdldCgp
KSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3Vw
LmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAog
ICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMyBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZs
b2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JDb21tYW5kcy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JDb21tYW5kcy5tbQppbmRleCBm
OWMwZDFmYmZjNjE3MjU1MjNiYzVmNjEzODYxNjZkNmQyNzNmYmEwLi4yYTVhMmJkNmRmODg1YTc1
MGM3YmFiYTM5ZTBjNzc3MjlkYzJiYTViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tCkBAIC00NSwxNCArNDUsMTMg
QEAgVEVTVChXZWJLaXQsIFNjcm9sbEJ5TGluZUNvbW1hbmRzKQogewogICAgIFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJ
bmplY3RlZEJ1bmRsZSgpKTsKIAorICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQu
Z2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1
cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24o
d2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisKICAgICAvLyBUdXJuIG9mZiB0aHJlYWRlZCBzY3Jv
bGxpbmc7IHN5bmNocm9ub3VzbHkgd2FpdGluZyBmb3IgdGhlIG1haW4gdGhyZWFkIHNjcm9sbCBw
b3NpdGlvbiB0bwogICAgIC8vIHVwZGF0ZSB1c2luZyBXS1BhZ2VGb3JjZVJlcGFpbnQgd291bGQg
YmUgYmV0dGVyLCBidXQgZm9yIHNvbWUgcmVhc29uIHRoZSB0ZXN0IHN0aWxsIGZhaWxzIG9jY2Fz
aW9uYWxseS4KLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRv
cHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk5vVGhyZWFk
ZWRTY3JvbGxpbmdQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZChwcmVmZXJlbmNlcywg
ZmFsc2UpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFn
ZUdyb3VwLmdldCgpKTsKLQorICAgIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2Fk
ZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGll
bnQpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9GdWxsc2NyZWVuRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQppbmRleCA2ODdjN2NhZTdjOGQ1OWZkMDY3NDRh
NTQwOTExYjBlMTJmZDVjNWYxLi5lMTE3MDcxNjFjNzg0YjQ3NDQzNWQxNzExYjY5YTYxMzNkODkw
M2QyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1
bGxzY3JlZW5EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQpAQCAtMTE4LDExICsxMTgsMTAgQEAgVEVTVChG
dWxsc2NyZWVuLCBEZWxlZ2F0ZSkKIFRFU1QoRnVsbHNjcmVlbiwgRElTQUJMRURfV0tWaWV3RGVs
ZWdhdGUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRX
SyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7Ci0gICAgV0tSZXRh
aW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVh
dGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJGdWxsc2NyZWVuRGVsZWdhdGUiKS5nZXQoKSkp
OwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZl
cmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5F
bmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3
KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdl
YlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9
IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdl
Q29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogCiAgICAgUmV0YWluUHRy
PEZ1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW0Z1
bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgV0tQYWdl
U2V0RnVsbHNjcmVlbkRlbGVnYXRlKHdlYlZpZXcucGFnZSgpLCBoYW5kbGVyLmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGljdHVyZUlu
UGljdHVyZURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KaW5kZXggOTM5YzU3YjRkOGIyNjc2NjRiY2Qy
YWI3NjRkNGQ4OGU2OTU5YzI3YS4uNDQ1ZGI3NTY2ZTA2MDdkOTg4YTU4Yjc4OWI3OTBkYmRlZGMy
Y2Q1MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
aWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KQEAgLTIwMSwxMyArMjAx
LDEyIEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgQXVkaW9DYW5ub3RUb2dnbGVQaWN0dXJlSW5Q
aWN0dXJlKQogVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1BhZ2VVSUNsaWVudCkKIHsKICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0
ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91
cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVy
KFV0aWw6OnRvV0soIlBpY3R1cmVJblBpY3R1cmUiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5n
ZXQoKSk7CisgICAgCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3
LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQo
cHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBbGxvd3NQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayhwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgCi0gICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLSAgICAK
KwogICAgIFdLUGFnZVVJQ2xpZW50VjEwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQs
IDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDEwOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRl
UG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNp
dGVQb2xpY2llcy5tbQppbmRleCA4ZTc3MDA2OGQzMTJlNDI0M2IxMjFhZDUzOTQ5YWFjZTBjMWUw
NDNlLi45ODFhZjkyNzY5NDg1MDhlMzQ0ZTUxNmFiN2I3NTZhNzk2MTRlZWEzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xp
Y2llcy5tbQpAQCAtODAwLDkgKzgwMCw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJz
aXRlUG9saWNpZXNBcmJpdHJhcnlVc2VyR2VzdHVyZVF1aXJrKQogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAotICAgIFdL
UmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZl
cmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJl
bmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5nXSksIHByZWZl
cmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9u
LnByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIFtkZWxlZ2F0ZSBzZXRBbGxvd2VkQXV0b3BsYXlR
dWlya3NGb3JVUkw6Xl9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKE5TVVJMICp1cmwpCiAgICAgewpA
QCAtODMzLDkgKzgzMSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNp
ZXNBdXRvcGxheVF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9wbGF5
UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVu
Y2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMuZ2V0
KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdy
b3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7CisgICAg
V0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1ByZWZl
cmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1ZSk7
CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3RXaXRoQXVkaW8gPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJhdXRv
cGxheS1jaGVjayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl1dOwogCkBAIC04OTEsOSArODg3LDcgQEAgVEVTVChXZWJwYWdlUHJl
ZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1BlckRvY3VtZW50QXV0b3BsYXlCZWhhdmlvclF1aXJr
cykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9wbGF5UG9saWNpZXNEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxl
Z2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJl
bmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBXS1ByZWZlcmVuY2Vz
U2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAg
IFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFt3ZWJWaWV3IF9w
YWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1Nl
dE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKXdlYlZp
ZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICByZWNlaXZl
ZEF1dG9wbGF5RXZlbnQgPSBXVEY6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0
aW9uLm1tCmluZGV4IDUzZmNjODk5ZTgwNGQzMjJiYWY5ODcwOTJiYjNmOTQ3ZWY3NDBiNjcuLjJm
NDBhODM0ODYxYzVlY2I3NjZmNWRmMzA1ZmJkMDQ1MTBiOTU4ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNwb25kZXJTY3Jv
bGxpbmdQb3NpdGlvbi5tbQpAQCAtNDUsMTggKzQ1LDE3IEBAIFRFU1QoV2ViS2l0LCBGaXJzdFJl
c3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRs
ZSgpKTsKIAotICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNs
eSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCi0gICAgLy8g
dXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Ig
c29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgotICAgIFdLUmV0
YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3Jl
YXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91
cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdy
b3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0
VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBSZXRh
aW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdp
dGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKQogICAgICAgICBzdHlsZU1h
c2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6Tk9dKTsKICAgICBbd2luZG93LmdldCgpIG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07
CiAgICAgRVhQRUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2libGVdKTsKIAotICAgIFBsYXRm
b3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9w
dFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsK
KworICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0
aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCisgICAgLy8gdXBkYXRl
IHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSBy
ZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgorICAgIFdLUHJlZmVyZW5j
ZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAogICAg
IFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2Fk
ZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKQEAgLTgyLDcgKzgxLDcgQEAgVEVT
VChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24pCiAKICAgICBFWFBFQ1Rf
SlNfRVEod2ViVmlldy5wYWdlKCksICJ3aW5kb3cuc2Nyb2xsWSIsICI0MCIpOwogCi0gICAgUGxh
dGZvcm1XZWJWaWV3IG5ld1dlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsK
KyAgICBQbGF0Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhjb250ZXh0LmdldCgpKTsKICAgICBXS1Bh
Z2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChuZXdXZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVu
dC5iYXNlKTsKIAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3VidmlldzpuZXdX
ZWJWaWV3LnBsYXRmb3JtVmlldygpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KaW5kZXggNjA1NWQ4
ZDIzMTFmY2Y4NmI0Mjk0OTMzMTcwZWQ0MWUxZDFhYWU2Ni4uZmIwYWE5YTc3MDg5YmNiYjBkZWY1
N2EzYmQ2ZmZmODk5NTUyNDIwMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KQEAgLTEyMCw5ICsx
MjAsOCBAQCB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjppbml0aWFsaXplVmlldyhX
S1ZpZXcgKndrVmlldykKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2tWaWV3LnBhZ2VSZWYs
ICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBpZGVudGlm
aWVyID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWVQcmVmZXJlbmNlcyIpKTsKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVu
Y2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZVdp
dGhJZGVudGlmaWVyKGlkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZl
cmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVm
ZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3a1ZpZXcucGFnZVJl
ZikpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQoY3VzdG9t
UHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMo
V0tQYWdlR2V0UGFnZUdyb3VwKHdrVmlldy5wYWdlUmVmKSwgY3VzdG9tUHJlZmVyZW5jZXMuZ2V0
KCkpOwogfQogCiB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjp0ZWFyZG93blZpZXco
V0tWaWV3ICp3a1ZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0
Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZp
ZXdNYWMubW0KaW5kZXggNjM2Njg5MThhZDMyZjcxMmRlODdhZTNlZDFiNDAxMWY3YWI3YjllMi4u
ZTUxZGU3NjkwZDVkYTU1YmNiZWFiNTZlOTkzNjlhY2RhOTZiZjdiZSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtNDgsMTMgKzQ4LDEyIEBA
IFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbikKICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24sIFtXS1ZpZXcgY2xh
c3NdKTsKIH0KIAotUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVm
IGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKK1BsYXRmb3JtV2ViVmll
dzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIFdLUmV0
YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdL
UGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7Ci0gICAgCisKICAgICBXS1BhZ2VDb25maWd1cmF0
aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBjb250ZXh0UmVmKTsKLSAgICBXS1Bh
Z2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0KCksIHBhZ2VHcm91
cFJlZik7Ci0gICAgCisKICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCksIFtXS1Zp
ZXcgY2xhc3NdKTsKIH0KIApAQCAtNjMsMjIgKzYyLDExIEBAIFBsYXRmb3JtV2ViVmlldzo6UGxh
dGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKICAgICBXS1JldGFpblB0cjxXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1
cmF0aW9uQ3JlYXRlKCkpOwogICAgIAogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVsYXRlZFBhZ2UpKTsKLSAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdL
UGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25T
ZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVkUGFnZSk7CiAKICAgICBp
bml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCksIFtXS1ZpZXcgY2xhc3NdKTsKIH0KIAotUGxh
dGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
UGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgQ2xhc3Mgd2tWaWV3U3ViY2xhc3MpCi17Ci0gICAg
V0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9IGFkb3B0
V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKLSAgICAKLSAgICBXS1BhZ2VDb25maWd1
cmF0aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBjb250ZXh0UmVmKTsKLSAgICBX
S1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0KCksIHBhZ2VH
cm91cFJlZik7Ci0gICAgCi0gICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdldCgpLCB3a1Zp
ZXdTdWJjbGFzcyk7Ci19Ci0KIFBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldygpCiB7
CiAgICAgW21fd2luZG93IGNsb3NlXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggZTA2NjcwMGYzY2U2YWFkYTlhYjIxYTM2NGIwYTJiYmNlNDI4YWU0OC4u
ZWU4MGI3Y2U2MjFhNmMzODdlNjQ4MzkzOTIwNmJiNGQ4OTQ0MGU1MyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTU0OSw4ICs1NDksNiBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAg
ICAgV2ViQ29yZVRlc3RTdXBwb3J0OjppbnN0YWxsTW9ja0dhbWVwYWRQcm92aWRlcigpOwogI2Vu
ZGlmCiAKLSAgICBtX3BhZ2VHcm91cC5hZG9wdChXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlm
aWVyKHRvV0soIldlYktpdFRlc3RSdW5uZXJQYWdlR3JvdXAiKS5nZXQoKSkpOwotCiAgICAgbV9l
dmVudFNlbmRlclByb3h5ID0gbWFrZVVuaXF1ZTxFdmVudFNlbmRlclByb3h5Pih0aGlzKTsKIH0K
IApAQCAtNjc5LDcgKzY3Nyw2IEBAIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+
IFRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvCiAKICAgICBhdXRv
IHBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkp
OwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpLCBtX2NvbnRleHQuZ2V0KCkpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3Jv
dXAocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIG1fcGFnZUdyb3VwLmdldCgpKTsKICAgICAKICAg
ICBpZiAob3B0aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uKCkpIHsKICAgICAgICAgYXV0byBlcGhl
bWVyYWxEYXRhU3RvcmUgPSBhZG9wdFdLKFdLV2Vic2l0ZURhdGFTdG9yZUNyZWF0ZU5vblBlcnNp
c3RlbnREYXRhU3RvcmUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
aW5kZXggYmRlNmIwZWQ3NzVkY2YyMzlkOGViMWQyY2I2ZjFiNzY3MmE2YTlhOS4uNzhkOTI4NGQ3
NWE3NTYxM2IyODQyYjI5YTNmMmZhOTA0MTVhOTZjMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaApAQCAtNTU1LDcgKzU1NSw2IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1XZWJWaWV3PiBtX21haW5XZWJWaWV3OwogICAgIFdLUmV0YWlu
UHRyPFdLQ29udGV4dFJlZj4gbV9jb250ZXh0OwotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3Vw
UmVmPiBtX3BhZ2VHcm91cDsKICAgICBXS1JldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJvbGxl
clJlZj4gbV91c2VyQ29udGVudENvbnRyb2xsZXI7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQo=
</data>
<flag name="commit-queue"
          id="449356"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428437</attachid>
            <date>2021-05-12 17:32:37 -0700</date>
            <delta_ts>2021-05-12 19:27:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20210512173236.patch</filename>
            <type>text/plain</type>
            <size>81923</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmMjFlZGNhOWNhOWY1NjFk
ZTYwMGY5N2Y0MjY5ZTcwNDcyZWU2ZTMuLmU3MmEwMmYzNDkyNGE0N2U3NjEzZDdmYTQzYzNlMTU5
MGQ2NjQzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMTIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwcm9qZWN0cyBzdGlsbCB1
c2luZyBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyIGFuZCBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzLgorICAgICAgICBUaGVyZSBpcyBvbmUgcHJvamVjdCBzdGlsbCB1c2luZyBXS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLgorICAgICAgICBJIGxlZnQgdGhlc2UgZGVwcmVjYXRlZCBidXQg
c3RpbGwgZnVuY3Rpb25hbCBhbmQgbm90ZWQgcmFkYXJzIGZvciB3aGVuIHRoZXkgY2FuIGFsc28g
YmUgcmVtb3ZlZC4KKworICAgICAgICBUaGUgcmVzdCBvZiB0aGUgQVBJIGlzIHJlbW92ZWQuICBT
b21lIG9mIGl0IHdhcyBtb3ZlZCB0byBhbiBpbnRlcm5hbC1vbmx5IGhlYWRlciB0byBsZWF2ZSBX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwIHVudG91Y2hlZC4KKyAgICAgICAgTG90cyBvZiB0ZXN0cyBh
cmUgdXBkYXRlZCB0byBzZXQgcHJlZmVyZW5jZXMgbGlrZSB0aGUgbW9kZXJuIEFQSSBkb2VzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VH
ZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHA6
CisgICAgICAgIChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0
VHlwZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250
cm9sbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3BhZ2VHcm91cF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF9zZXRQYWdlR3JvdXA6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1LTEyICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2lsZW5jZSB1bmlu
dGVyZXN0aW5nIHNhbmRib3ggcmVwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggOTliNjU1ZmE0YjU4ZDg0OWQ5ZjczZjE4ODRhZDFkZmZlMzhkYjU3NS4u
MWQ4YTI3YmI0NWRiZmI2YWVlZTA2NDM0NzRhNGJiZDcxNzA1YWJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNjIsMTEgKzE2Miw2IEBAIFdLQ29udGV4
dFJlZiBXS1BhZ2VHZXRDb250ZXh0KFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0FQ
SSgmdG9JbXBsKHBhZ2VSZWYpLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSk7CiB9CiAKLVdLUGFn
ZUdyb3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91cChXS1BhZ2VSZWYgcGFnZVJlZikKLXsKLSAgICBy
ZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+cGFnZUdyb3VwKCkpOwotfQotCiBXS1BhZ2VD
b25maWd1cmF0aW9uUmVmIFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihXS1BhZ2VSZWYgcGFn
ZVJlZikKIHsKICAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+Y29uZmlndXJhdGlv
bigpLmNvcHkoKS5sZWFrUmVmKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aAppbmRleCBjNTFiODE2MmM4OTczNGFiMTUyYmVmMGU5OTIzMzdkNTVmMmRlOGE2Li4yNGU4Nzhm
MzEwYmFjYWIyOWI3ZTA5MWU1NWY2YjMxMjI4NTFhZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaApAQCAtNTgsNyArNTgsNiBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS1BhZ2VHZXRUeXBlSUQodm9pZCk7CiAKIFdLX0VYUE9SVCBXS0NvbnRleHRS
ZWYgV0tQYWdlR2V0Q29udGV4dChXS1BhZ2VSZWYgcGFnZSk7Ci1XS19FWFBPUlQgV0tQYWdlR3Jv
dXBSZWYgV0tQYWdlR2V0UGFnZUdyb3VwKFdLUGFnZVJlZiBwYWdlKTsKIAogV0tfRVhQT1JUIFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKFdLUGFnZVJl
ZiBwYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlQ29uZmlndXJhdGlvblJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcAppbmRleCA3OWJlZDFmZDFlY2U4ODgzYmJiNDg0NTk0
YjY3OTFjNjg1NWIwMWNiLi5iNTA2MjdlMjFmM2UzNGUwOGRkNTNhZmQzNjkzZmVmMzhiM2UwOTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1
cmF0aW9uUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VD
b25maWd1cmF0aW9uUmVmLmNwcApAQCAtNTUsMTYgKzU1LDYgQEAgdm9pZCBXS1BhZ2VDb25maWd1
cmF0aW9uU2V0Q29udGV4dChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdL
Q29udGUKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFByb2Nlc3NQb29sKHRvSW1wbChj
b250ZXh0KSk7CiB9CiAKLVdLUGFnZUdyb3VwUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdl
R3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQotewotICAgIHJldHVy
biB0b0FQSSh0b0ltcGwoY29uZmlndXJhdGlvbiktPnBhZ2VHcm91cCgpKTsKLX0KLQotdm9pZCBX
S1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKQotewotICAgIHRvSW1wbChjb25m
aWd1cmF0aW9uKS0+c2V0UGFnZUdyb3VwKHRvSW1wbChwYWdlR3JvdXApKTsKLX0KLQogV0tVc2Vy
Q29udGVudENvbnRyb2xsZXJSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29u
dHJvbGxlcihXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgcmV0
dXJuIHRvQVBJKHRvSW1wbChjb25maWd1cmF0aW9uKS0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oCmluZGV4IDI3N2MwNjYxZjI2MzJhZDg5NTkyNmZmOWJhZDRiMGE3YzU2NDFl
MTEuLjcwMjAzNjhhN2QxMmMzNjNhNmQyNmNkMWM3YWYxYTUzNTQzZGFiOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVm
LmgKQEAgLTM5LDkgKzM5LDYgQEAgV0tfRVhQT1JUIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkNyZWF0ZSh2b2lkKTsKIFdLX0VYUE9SVCBXS0NvbnRleHRSZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkdldENvbnRleHQoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1
cmF0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogCi1XS19FWFBPUlQgV0tQYWdlR3JvdXBSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VH
cm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KIFdLX0VYUE9SVCBX
S1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRl
bnRDb250cm9sbGVyKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgdXNlckNvbnRlbnRDb250cm9sbGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwCmluZGV4IDY1MTRlZTg2ZGUzYTg0MTQ0ODM3ZGY2MmZj
MTAxM2QyM2NhYTM1YTkuLjk4MGYzZmMwZWVjYTY4YjdkNjcyNDU0YzVlMDYxNWNlZmI2OWNlM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKQEAg
LTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQ
YWdlR3JvdXAuaCIKKyNpbmNsdWRlICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAKICNpbmNsdWRl
ICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdC5oIgpAQCAtNDAsMTEg
KzQwLDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotV0tUeXBlSUQgV0tQYWdlR3Jv
dXBHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b0FQSShXZWJQYWdlR3JvdXA6OkFQSVR5cGUp
OwotfQotCiBXS1BhZ2VHcm91cFJlZiBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdL
U3RyaW5nUmVmIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBwYWdlR3JvdXAgPSBXZWJQYWdlR3Jv
dXA6OmNyZWF0ZSh0b1dURlN0cmluZyhpZGVudGlmaWVyKSk7CkBAIC02MSwxMSArNTYsNiBAQCBX
S1ByZWZlcmVuY2VzUmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwUmVmKQogICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VHcm91cFJlZiktPnBy
ZWZlcmVuY2VzKCkpOwogfQogCi1XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VHcm91
cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi17
Ci0gICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZUdyb3VwUmVmKS0+dXNlckNvbnRlbnRDb250
cm9sbGVyKCkpOwotfQotCiB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdl
R3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2VSZWYsIFdLVVJMUmVmIGJh
c2VVUkxSZWYsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2Nr
ZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVz
KQogewogICAgIGF1dG8gc291cmNlID0gdG9XVEZTdHJpbmcoc291cmNlUmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCmluZGV4IDYzYTEzZjdkNzUyMThi
ZjdlMmViZDAzZWZhMDQ1YjU2OWYzODEwZTIuLjA1NjNlZDc1ZTJkOWM0NjU2MGQ0YWMzNzNmOGYy
MmI5MjkwNTYzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3Jv
dXAuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXS1BhZ2VHcm91cF9oCiAKICNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaD4KICNpbmNsdWRlIDxX
ZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCkBAIC0zNCwyMCArMzUsMTAgQEAK
IGV4dGVybiAiQyIgewogI2VuZGlmCiAKLVdLX0VYUE9SVCBXS1R5cGVJRCBXS1BhZ2VHcm91cEdl
dFR5cGVJRCh2b2lkKTsKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBmaWxlIG9uY2UgcmRhcjovLzc3
OTM5NTk3IGFuZCByZGFyOi8vNzc5Mzk4ODMgYXJlIHJlc29sdmVkLgogCi1XS19FWFBPUlQgV0tQ
YWdlR3JvdXBSZWYgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ1JlZiBp
ZGVudGlmaWVyKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwot
V0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXApOwotCi1XS19FWFBPUlQgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVl
dChXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYg
YmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tl
ZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoV0tQYWdlR3JvdXBSZWYgcGFn
ZUdyb3VwKTsKLSAgICAKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclNjcmlwdChX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYgYmFz
ZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tlZFVS
TFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMsIF9XS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNlclNjcmlw
dHMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKK1dLX0VYUE9SVCBXS1BhZ2VHcm91cFJlZiBX
S1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nUmVmIGlkZW50aWZpZXIpIFdL
X0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VDb25maWd1cmF0aW9uR2V0
UHJlZmVyZW5jZXMpOworV0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApIFdLX0NfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMpOwogCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmEwOTYyYjg2NDBjZjM1YWEw
NzE3YjcxZmIxNzRkMzI4ZGQ2MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tQYWdlR3JvdXAuaD4KKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZp
bGUgb25jZSByZGFyOi8vNzQxNDI5OTUgaXMgcmVzb2x2ZWQuCisKK3ZvaWQgV0tQYWdlR3JvdXBT
ZXRQcmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiwgV0tQcmVmZXJlbmNlc1JlZik7Cit2b2lkIFdL
UGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNv
dXJjZSwgV0tVUkxSZWYgYmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdL
QXJyYXlSZWYgYmxvY2tlZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMp
Owordm9pZCBXS1BhZ2VHcm91cFJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhXS1BhZ2VHcm91cFJl
Zik7Cit2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclNjcmlwdChXS1BhZ2VHcm91cFJlZiwgV0tTdHJp
bmdSZWYgc291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0
ZXJucywgV0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcywgX1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUpOwordm9pZCBXS1BhZ2VHcm91cFJl
bW92ZUFsbFVzZXJTY3JpcHRzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91
cC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
R3JvdXAuaAppbmRleCA2NjkyMzBmNWNiNmEwMzUyYzkwMjVmOTFkZTY2OGUzNjBhODU5M2I2Li5h
NmNkYzQxYTQxMmY3ZGJkZGIzZmU4NDMzYTQxZDdiMGVjMzIwNDJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmgKQEAgLTI4LDYgKzI4LDggQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaD4KIAorLy8gRklY
TUU6IFJlbW92ZSB0aGlzIGZpbGUgb25jZSByZGFyOi8vNzQxNDI5OTUgaXMgcmVzb2x2ZWQuCisK
IFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVc2VyQ29udGVudENvbnRy
b2xsZXIgYW5kIFdLUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIDogTlNPYmplY3QKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0R3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5tbQppbmRleCA4ZjQxYjEyMjc0MDRkZTI2ODM5MmYyNDk4NWIwZTI1
NWUzMzFlZGIwLi43OTRjZjFmYWYzOGQyNjE1OGVmMmY4OTlkYjdlYmYwNTY0YTg5Mjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRHcm91cC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiQVBJU3RyaW5n
LmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLQXJyYXkuaCIKLSNpbXBvcnQg
IldLUGFnZUdyb3VwLmgiCisjaW1wb3J0ICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAjaW1wb3J0
ICJXS1ByZWZlcmVuY2VzUmVmLmgiCiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgogI2ltcG9ydCAi
V0tTaGFyZWRBUElDYXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCAwZWI1YjMyMjlmM2FlZmQxN2JmNmI1MjJjNTQ0MjZkYmRlMTI5
ZTZiLi5lZTIwZGU3YThlMzFkMmRkNTQ1NDk1NGIyMDA2ZDA4YmVkNWZlM2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1NywxNiAr
NDU3LDkgQEAgc3RhdGljIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRD
YWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0V2Vic2l0ZURhdGFTdG9yZShbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0tPl93
ZWJzaXRlRGF0YVN0b3JlLmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0RGVmYXVs
dFdlYnNpdGVQb2xpY2llcyhbX2NvbmZpZ3VyYXRpb24gZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNl
c10tPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlm
IChhdXRvIHBhZ2VHcm91cCA9IFdlYktpdDo6dG9JbXBsKFtfY29uZmlndXJhdGlvbiBfcGFnZUdy
b3VwXSkpCi0gICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAocGFnZUdyb3Vw
KTsKLSAgICBlbHNlCi0jZW5kaWYKLSAgICB7Ci0gICAgICAgIE5TU3RyaW5nICpncm91cElkZW50
aWZpZXIgPSBbX2NvbmZpZ3VyYXRpb24gX2dyb3VwSWRlbnRpZmllcl07Ci0gICAgICAgIGlmIChn
cm91cElkZW50aWZpZXIubGVuZ3RoKQotICAgICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNl
dFBhZ2VHcm91cChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6Y3JlYXRlKGdyb3VwSWRlbnRpZmllciku
cHRyKCkpOwotICAgIH0KKyAgICBOU1N0cmluZyAqZ3JvdXBJZGVudGlmaWVyID0gW19jb25maWd1
cmF0aW9uIF9ncm91cElkZW50aWZpZXJdOworICAgIGlmIChncm91cElkZW50aWZpZXIubGVuZ3Ro
KQorICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKFdlYktpdDo6V2ViUGFn
ZUdyb3VwOjpjcmVhdGUoZ3JvdXBJZGVudGlmaWVyKS5wdHIoKSk7CiAKICAgICBwYWdlQ29uZmln
dXJhdGlvbi0+c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMobWFrZVZlY3RvcjxTdHJp
bmc+KFtfY29uZmlndXJhdGlvbiBfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNdKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggY2U1YjdiZDViMDFhYmM4MjEwOTVkMDU1OTVhYWU5
NjliNjhjZjVmZS4uNGUxODk0MmJhYWJlZjY5NTQ2NTg3YTI2M2JiMDFlOTMwYzRhNzhmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTE1NSw3ICsxNTUsNiBAQCBzdGF0aWMgYm9vbCBkZWZh
dWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogICAg
IEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ7CiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IF9wYWdlR3JvdXA7CiAg
ICAgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlwczsKICAgICBCT09MIF9zZXJ2aWNlQ29udHJvbHNF
bmFibGVkOwogICAgIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXI7CkBAIC00MjksNyArNDI4LDYgQEAgc3RhdGljIGJvb2wgZGVmYXVsdFNob3VsZERlY2lk
ZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCkKICAgICBjb25maWd1cmF0aW9u
LT5fc2hvd3NVUkxzSW5Ub29sVGlwcyA9IHNlbGYtPl9zaG93c1VSTHNJblRvb2xUaXBzOwogICAg
IGNvbmZpZ3VyYXRpb24tPl9zZXJ2aWNlQ29udHJvbHNFbmFibGVkID0gc2VsZi0+X3NlcnZpY2VD
b250cm9sc0VuYWJsZWQ7CiAgICAgY29uZmlndXJhdGlvbi0+X3JlcXVpcmVzVXNlckFjdGlvbkZv
ckVkaXRpbmdDb250cm9sc01hbmFnZXIgPSBzZWxmLT5fcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlcjsKLSAgICBjb25maWd1cmF0aW9uLT5fcGFnZUdyb3VwID0gc2Vs
Zi5fcGFnZUdyb3VwOwogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIGNvbmZpZ3VyYXRpb24tPl9kYXRhRGV0ZWN0b3JUeXBlcyA9
IHNlbGYtPl9kYXRhRGV0ZWN0b3JUeXBlczsKQEAgLTExMzksMTYgKzExMzcsNiBAQCBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlciA9IHJlcXVpcmVzVXNlckFjdGlvbjsKIH0KIAotLSAoV0tQYWdl
R3JvdXBSZWYpX3BhZ2VHcm91cAotewotICAgIHJldHVybiBfcGFnZUdyb3VwLmdldCgpOwotfQot
Ci0tICh2b2lkKV9zZXRQYWdlR3JvdXA6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cAotewotICAg
IF9wYWdlR3JvdXAgPSBwYWdlR3JvdXA7Ci19Ci0KIC0gKHZvaWQpX3NldENQVUxpbWl0Oihkb3Vi
bGUpY3B1TGltaXQKIHsKICAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldENQVUxpbWl0KGNwdUxp
bWl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKaW5kZXggMjQyNWVjNmZmY2Fj
MGJjNTZkNjRiOGQzNzk1Mjk0MzFmNTlhMDM3OC4uMjQzOGFjZGRmZTYxN2MyNzAxYzdmYjgyNDdi
Mzg2YTBiYjM3YWZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTEw
MSw3ICsxMDEsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxh
eSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJs
ZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiSW1hZ2Ug
Y29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMiwgV0tfTUFDX1RC
QSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRSZXF1aXJl
c1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9PTCBfcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldENQVUxp
bWl0OikgZG91YmxlIF9jcHVMaW1pdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UGFnZUdyb3VwOikg
V0tQYWdlR3JvdXBSZWYgX3BhZ2VHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFdl
YnNpdGVEYXRhU3RvcmU6KSBfV0tXZWJzaXRlRGF0YVN0b3JlICpfd2Vic2l0ZURhdGFTdG9yZSBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJzaXRlRGF0YVN0b3JlIiwgbWFj
b3MoMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNjgwMWZjNTEyMTcwY2JmOTlhNjI0
OTcxMjcwMWU0YTFmMDliMjA4Li44YmU1MTgzMjExYTllNGRlOWY4ZGNiMzU1MzdiYWIzNTAxNTEy
YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEyNzYsNiArMTI3Niw3IEBACiAJCTVDOUE5MTEyMjI4RjY5Q0MwMDVDNUIxNyAvKiBY
UENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsg
fTsKIAkJNUM5QTkxMTMyMjhGNjlDRDAwNUM1QjE3IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VD
NDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OwogCQk1QzlBOTExNDIyOEY2OUNF
MDA1QzVCMTcgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2Vydmlj
ZU1haW4ubW0gKi87IH07CisJCTVDOUREMzI2MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91
cEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzlERDMyNTI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oICovOyB9
OwogCQk1QzlFNTY4MzFERjdGMUIzMDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1NjgxMURGN0Yw
NTUwMEM5RUUzMyAvKiBXS1dlYnNpdGVQb2xpY2llcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDQTI2RDgxMjE3QUJENUIwMEY5N0EzNSAvKiBX
S1NhZmVCcm93c2luZ1dhcm5pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDQTI2RDgwMjE3QUJCQjYwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dh
cm5pbmcuaCAqLzsgfTsKIAkJNUNBMjZEODMyMTdBRDFCODAwRjk3QTM1IC8qIFdLU2FmZUJyb3dz
aW5nV2FybmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDQTI2RDdGMjE3QUJCQjYwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcubW0g
Ki87IH07CkBAIC00NDk3LDYgKzQ0OTgsNyBAQAogCQk1QzhERDM4MTFGRTQ1NUNBMDBGMkE1NTYg
LyogV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM5QzVDMDIyNDMwNTM1ODAwQkI2NzQwIC8qIFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckNvbnRlbnRDb250cm9s
bGVyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlDNUMwMzI0
MzA1MzU4MDBCQjY3NDAgLyogVXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQ29udGVudENvbnRyb2xsZXJQ
YXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5REQzMjUyNjRD
N0Y3NDAwRTA3NDQyIC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tQYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzlFNTY4MDFERjdGMDU1MDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tXZWJzaXRlUG9saWNp
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlFNTY4MTFERjdGMDU1MDBD
OUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tXZWJzaXRlUG9saWNpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM5RUYyRTcyMUYwNThGOTAwM0JEQzU2IC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvblByb3ZpZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDMxMSw2ICsxMDMx
Myw3IEBACiAJCQkJMUFCOEExRUYxODQwMEIwMDAwRTlBRTY5IC8qIFdLUGFnZUZvcm1DbGllbnQu
aCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwICov
LAogCQkJCUJDN0I2MzM1MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5oICovLAorCQkJ
CTVDOUREMzI1MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91cEludGVybmFsLmggKi8sCiAJ
CQkJMkQ5RUEzMEMxQTk2Q0I1OTAwMkQyODA3IC8qIFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50
LmggKi8sCiAJCQkJMUFCOEExRUIxODQwMDgwOTAwRTlBRTY5IC8qIFdLUGFnZUxvYWRlckNsaWVu
dC5oICovLAogCQkJCTJENzMwMzc4MUE3QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50LmggKi8sCkBAIC0xMjg2MSw2ICsxMjg2NCw3IEBACiAJCQkJMUFCOEExRjYxODQwMEI5
RDAwRTlBRTY5IC8qIFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUI4QTFGMDE4NDAwQjAwMDBFOUFFNjkgLyogV0tQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM3QjYzMzcxMkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1QzlERDMyNjI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5RUEzMEQxQTk2Q0I1OTAwMkQyODA3IC8q
IFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI4QTFF
QzE4NDAwODA5MDBFOUFFNjkgLyogV0tQYWdlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzJEMDIxOTEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBmY2VhMWFjMGE5OGQ0YmE0Mzg0NjYwMmZjMDViNTFhNjQzYzE4MGQ1Li5kY2E0YTYyYTQ2
YjVkMWI3ODkxYjdmZDJjMjNkM2NhMDRjMzVhZmU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDUtMTIgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgYXMgbXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL0N1
c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGlu
Q3JlYXRlUGFnZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVt
ZXJhdGVNZWRpYURldmljZXMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hT
dGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1
bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5v
dGlmaWNhdGlvbnMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2Vi
Vmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFn
ZUlzUGxheWluZ0F1ZGlvLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5n
Rm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVu
dURvd25sb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1
cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVz
Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5a
b29tSW5pdGlhbEZyYW1lLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6RnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWU6OmluaXRpYWxpemVWaWV3KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQ
bGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpnZW5l
cmF0ZVBhZ2VDb25maWd1cmF0aW9uKToKKwogMjAyMS0wNS0xMiAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb3Rpb25NYXJrXSBVcGRhdGUgcGxh
biBmaWxlIGFmdGVyIHIyNzc0MDYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxh
dGZvcm1XZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCmlu
ZGV4IDVlODUwMjY4OWYxM2U4ZWQxMTllMzFhNzZmNWJjZWM2MDk4YWNlNzUuLmFmNTlhYmVkNjlk
MDg4OTkyMDA4NzRjMzVjNDc2M2RiZTRiNzg1NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bVdlYlZpZXcuaApAQCAtNzMsMTEgKzczLDggQEAgY2xhc3MgUGxhdGZvcm1XZWJWaWV3IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShQbGF0Zm9ybVdlYlZpZXcpOwogcHVibGljOgogICAgIGV4
cGxpY2l0IFBsYXRmb3JtV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmKTsKLSAgICBleHBs
aWNpdCBQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiA9IDApOwor
ICAgIGV4cGxpY2l0IFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYpOwogICAgIGV4cGxpY2l0
IFBsYXRmb3JtV2ViVmlldyhXS1BhZ2VSZWYgcmVsYXRlZFBhZ2UpOwotI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmLCBXS1BhZ2VHcm91
cFJlZiwgQ2xhc3Mgd2tWaWV3U3ViY2xhc3MpOwotI2VuZGlmCiAgICAgflBsYXRmb3JtV2ViVmll
dygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYTIwZWY3NDRiZmFkNzBkOGM3MzhkYzBkOGE4MWYyODdjYzE5MGU5YS4uNzIwNmM5YWE5
YjQ3NzM2NzU3YmQyYzAxNjEwOTMwYjhlZGYwZTg5MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTY3Nyw3ICs2NzcsNyBAQAogCQk3QzlFRDk4QjE3QTE5RjRCMDBFNERDMzMgLyogYXR0cmli
dXRlZFN0cmluZ1N0cmlrZXRocm91Z2guaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzlFRDk4QTE3QTE5RDA2MDBFNERDMzMgLyogYXR0
cmlidXRlZFN0cmluZ1N0cmlrZXRocm91Z2guaHRtbCAqLzsgfTsKIAkJN0NCMTg0QzYxQUEzRjIx
MDAwNjZFREZEIC8qIENvbnRlbnRFeHRlbnNpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQjE4NEM0MUFBM0YyMTAwMDY2RURGRCAvKiBDb250
ZW50RXh0ZW5zaW9ucy5jcHAgKi87IH07CiAJCTdDQkQ1QTIzMjJERTQyQTYwMDRBOUUzMiAvKiBX
VEZTdHJpbmdVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NCRDVBMjIyMkRFNDJBNjAwNEE5RTMyIC8qIFdURlN0cmluZ1V0aWxpdGll
cy5jcHAgKi87IH07Ci0JCTdDQ0I0REE5MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQjREQTcx
QzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi87IH07CisJCTdDQ0I0REE5MUM4M0FF
NzMwMENDNjkxOCAvKiBQYWdlR3JvdXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1t
ICovOyB9OwogCQk3Q0NCOTkyMTFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlv
bkluTmF2aWdhdGlvbkFjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDQ0I5OTIwMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2VySW5pdGlhdGVkQWN0
aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tICovOyB9OwogCQk3Q0NCOTkyMzFEM0I0QTQ2MDAzOTIy
RjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0NCOTkyMjFEM0I0NEU3MDAzOTIy
RjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCAqLzsgfTsKIAkJN0NDRTdFQTUx
QTQxMUEwODAwNDQ3QzRDIC8qIEphdmFTY3JpcHRUZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzA4MTIyNDAxM0ZDMTcyNDAwREMzOUFFIC8q
IEphdmFTY3JpcHRUZXN0TWFjLm1tICovOyB9OwpAQCAtMjQ3NCw3ICsyNDc0LDcgQEAKIAkJN0NC
QkEwNzYxOUJCOEE5MTAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9TT2JqZWN0UHRyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NCRDVBMjIyMkRFNDJBNjAwNEE5RTMyIC8qIFdURlN0cmluZ1V0aWxpdGll
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0MzRTFGQTE5N0UyMzQxMDBCRTYyNTIgLyogVXNlckNv
bnRlbnRDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gVXNlckNvbnRlbnRDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk3Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTdDQ0I0REE3MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYWdlR3JvdXAubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0I5OTIwMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2Vy
SW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlv
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDQjk5MjIxRDNCNDRFNzAwMzky
MkY2IC8qIG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAib3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDQ0U3RThDMUE0MTE0NEUwMDQ0N0M0QyAvKiBsaWJUZXN0V2Vi
S2l0QVBJLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9
IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYlRlc3RXZWJLaXRBUEku
YTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTM0ODMsOCArMzQ4Myw4
IEBACiAJCQkJNjM1MTk5MjcyMjI3NUM2QTAwODkwQUQzIC8qIE5hdmlnYXRpb25BY3Rpb24ubW0g
Ki8sCiAJCQkJNUM4QkM3OTgyMThDRjNFOTAwODEzODg2IC8qIE5ldHdvcmtQcm9jZXNzLm1tICov
LAogCQkJCTVDQUU0NjM3MjAxOTM3Q0QwMDUxNjEwRiAvKiBOZXR3b3JrUHJvY2Vzc0NyYXNoTm9u
UGVyc2lzdGVudERhdGFTdG9yZS5tbSAqLywKLQkJCQk0NkE4MEYyNTI2NEMyOUQ0MDBFRUYyMEQg
LyogTm90aWZpY2F0aW9uQVBJLm1tICovLAogCQkJCUNEQ0ZGRUMwMjJFMjY4RDUwMERGNDIyMyAv
KiBOb1BhdXNlV2hlblN3aXRjaGluZ1RhYnMubW0gKi8sCisJCQkJNDZBODBGMjUyNjRDMjlENDAw
RUVGMjBEIC8qIE5vdGlmaWNhdGlvbkFQSS5tbSAqLywKIAkJCQlDRDJEMEQxOTIxMzQ2NTU2MDAx
OEM3ODQgLyogTm93UGxheWluZy5tbSAqLywKIAkJCQkyRUNGRjU1NDFEOUIxMkY4MDBCNTUzOTQg
LyogTm93UGxheWluZ0NvbnRyb2xzVGVzdHMubW0gKi8sCiAJCQkJQTEwRjA0N0MxRTNBRDI5QzAw
Qzk1RTE5IC8qIE5TRmlsZU1hbmFnZXJFeHRyYXMubW0gKi8sCkBAIC00MzMxLDcgKzQzMzEsNyBA
QAogCQkJCTkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLywKIAkJCQkwRjU2NTFGNjFGQ0U0RERCMDAzMTBG
QkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21lbnQubW0gKi8sCiAJCQkJMUNCMkYyN0Iy
NEY4ODM3OTAwMEE1QkMxIC8qIE9ydGhvZ29uYWxGbG93QXZhaWxhYmxlU2l6ZS5tbSAqLywKLQkJ
CQk3Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCAqLywKKwkJCQk3Q0NC
NERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tICovLAogCQkJCUJDOTA5Nzc5MTI1
NTcxQUIwMDA4Mzc1NiAvKiBQYWdlTG9hZEJhc2ljLmNwcCAqLywKIAkJCQlCQzJEMDA0ODEyQTlG
REZBMDBFNzMyQTMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFt
ZS5jcHAgKi8sCiAJCQkJMjcyQTY5MEYyMkYwMTJDNzAwMEZEQUJCIC8qIFBhZ2VMb2FkU3RhdGUu
Y3BwICovLApAQCAtNTQ1Miw3ICs1NDUyLDYgQEAKIAkJCQlDREIyMTNCRDI0RUY1MjI4MDBGREUz
MDEgLyogRnVsbHNjcmVlbkZvY3VzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RFNzdEMjUyNUE2
NTkxQzAwRDQxMTVFIC8qIEZ1bGxzY3JlZW5Qb2ludGVyTGVhdmUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDRERDN0M2OTI1RkZGNkQwMDAyMjQyNzggLyogRnVsbHNjcmVlblJlbW92ZU5vZGVCZWZv
cmVFbnRlci5tbSBpbiBTb3VyY2VzICovLAotCQkJCTQ2QTgwRjI2MjY0QzI5RDQwMEVFRjIwRCAv
KiBOb3RpZmljYXRpb25BUEkubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREJGQ0M0NTFBOUZGNDUz
MDBBN0I2OTEgLyogRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0gaW4gU291cmNlcyAqLywK
IAkJCQk4M0RCNzk2OTFFRjYzQjNDMDBCRkE1RTUgLyogRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFRjgxQTQxMUFFNjAwNDQ3QzRDIC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtNTU4Myw2ICs1NTgyLDcgQEAKIAkJCQk3Q0NFN0YwNTFBNDExQUU2MDA0
NDdDNEMgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNTY1MUY3MUZDRTREREMwMDMxMEZCQyAvKiBOb0hpc3RvcnlJdGVtU2Ny
b2xsVG9GcmFnbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTgzRjIyQzY0MjBCMzU1RjgwMDM0
Mjc3RSAvKiBOb1BvbGljeURlbGVnYXRlUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLywKKwkJCQk0
NkE4MEYyNjI2NEMyOUQ0MDBFRUYyMEQgLyogTm90aWZpY2F0aW9uQVBJLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0QyRDBEMUEyMTM0NjU1NjAwMThDNzg0IC8qIE5vd1BsYXlpbmcubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyRUNGRjU1NTFEOUIxMkY4MDBCNTUzOTQgLyogTm93UGxheWluZ0NvbnRy
b2xzVGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTU5RjI2NzI2MEQ0M0UzMDBCMkRBM0Mg
LyogTm93UGxheWluZ0luZm9UZXN0cy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU1OTcsNyArNTU5
Nyw3IEBACiAJCQkJQzEwNEJDMUYyNTQ3MjM3MTAwQzA3OEM5IC8qIE92ZXJyaWRlQXBwbGVMYW5n
dWFnZXNQcmVmZXJlbmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRBMjU4NkYyMjVDNjdEQzAw
QjQ1QzFDIC8qIE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5NTNBQkIzNTI1QzBENjgyMDA0QzhCNzMgLyogUGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9y
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJN0NDQjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VH
cm91cC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyog
UGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDcxQTQxMUFFNjAwNDQ3QzRD
IC8qIFBhZ2VMb2FkQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDgxQTQxMUFF
NjAwNDQ3QzRDIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjcyQTY5MTAyMkYwMTJEQTAwMEZEQUJCIC8qIFBhZ2VM
b2FkU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbQppbmRleCA0N2Y1ZTg4NWNk
NmEwYzE0ZjM5YWZiNzE4YThiYzVkOTllOWY1YzdkLi5hZDM5OTFkNTZmMjFlNTYyZTI0NWEyNDA3
YjYzNjVjNDk4OGU2YWJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1
c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW0KQEAgLTUyLDkgKzUyLDcgQEAgVEVTVChX
ZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdCwgU3luY1hIUikKICAgICBSZXRhaW5QdHI8V0tCcm93
c2luZ0NvbnRleHRHcm91cD4gYnJvd3NpbmdDb250ZXh0R3JvdXAgPSBhZG9wdE5TKFtbV0tCcm93
c2luZ0NvbnRleHRHcm91cCBhbGxvY10gaW5pdFdpdGhJZGVudGlmaWVyOkAiVGVzdElkZW50aWZp
ZXIiXSk7CiAKICAgICAvLyBBbGxvdyBmaWxlIFVSTHMgdG8gbG9hZCBub24tZmlsZSByZXNvdXJj
ZXMKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0
V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAg
V0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhicm93c2luZ0NvbnRleHRHcm91cC5nZXQoKS5fcGFn
ZUdyb3VwUmVmLCBwcmVmZXJlbmNlcy5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFVuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhi
cm93c2luZ0NvbnRleHRHcm91cC5nZXQoKS5fcGFnZUdyb3VwUmVmKSwgdHJ1ZSk7CiAKICAgICBS
ZXRhaW5QdHI8V0tWaWV3PiB3a1ZpZXcgPSBhZG9wdE5TKFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIHByb2Nlc3NHcm91cDpwcm9jZXNzR3Jv
dXAuZ2V0KCkgYnJvd3NpbmdDb250ZXh0R3JvdXA6YnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCld
KTsKICAgICAgUmV0YWluUHRyPFRlc3RCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGU+IGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUgYWxsb2NdIGlu
aXRXaXRoQmxvY2tUb1J1bk9uTG9hZDpeKFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqc2Vu
ZGVyKSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9z
ZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0Nsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3BwCmluZGV4IDI4ODVmNTJiYTgxYTIzZTMw
MTI3MzMxNDk0ZTdjYjIxN2MzYzU2N2MuLmQ2NWQ0NTM1ODQwMzUyNGE1ZDc1ZWE5OGI0ZTc1Y2Y1
Y2ZlYTlhNmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Ns
b3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0Nsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3BwCkBAIC03NiwxMCArNzYsOCBA
QCBURVNUKFdlYktpdCwgQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZSkKICAgICBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIC8vIEFs
bG93IGZpbGUgVVJMcyB0byBsb2FkIG5vbi1maWxlIHJlc291cmNlcwotICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3Jl
YXRlKCkpOwotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91
cCh3ZWJWaWV3LnBhZ2UoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJl
ZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1Bh
Z2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQ
cmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5j
ZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3Vw
LCBwcmVmZXJlbmNlcy5nZXQoKSk7CiAgICAgCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVy
bCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImNsb3NlLWZyb20td2l0aGlu
LWNyZWF0ZS1wYWdlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2Uo
KSwgdXJsLmdldCgpKTsKQEAgLTEyMSwxMCArMTE5LDggQEAgVEVTVChXZWJLaXQsIENyZWF0ZVBh
Z2VUaGVuRG9jdW1lbnRPcGVuTUlNRVR5cGUpCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdl
YlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAKICAgICAvLyBBbGxvdyBmaWxlIFVSTHMg
dG8gbG9hZCBub24tZmlsZSByZXNvdXJjZXMKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2Vz
UmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdl
KCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25m
aWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRV
bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVl
KTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMu
Z2V0KCkpOwogCiAgICAgdGVzdERvbmUgPSBmYWxzZTsKICAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgid2luZG93LW9wZW4t
dGhlbi1kb2N1bWVudC1vcGVuIiwgImh0bWwiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKaW5k
ZXggNTVhYTM3ZTEzMDJjMjZkMmU5NTAzZDA1YTg4YmM3MTQ1Y2ZjNjUzOS4uZDAyZmYyM2EyM2Ri
ZDU3OGI1MTcxZDI2NGI1OWJiMDg1YTBjYjI4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcApA
QCAtODIsOSArODIsNyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZwogCiBURVNUKFdlYktpdCwg
RElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tQ
YWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRl
bnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRE9NV2luZG93RXh0ZW5zaW9u
QmFzaWNQYWdlR3JvdXAiKSkpOyAKLQotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29u
dGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgi
RE9NV2luZG93RXh0ZW5zaW9uQmFzaWMiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFp
blB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRG
b3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljIikpOwogCiAgICAg
V0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAg
ICBtZW1zZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVD
bGllbnQpKTsKQEAgLTk4LDcgKzk2LDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRv
d0V4dGVuc2lvbkJhc2ljKQogICAgIC8vIG1vZGVsIHRoYXQgYWN0dWFsbHkgYWxsb3dzIGZvciBh
IGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQu
Z2V0KCksIGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOwogCi0gICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKICAgICAKICAgICAvLyBNYWtlIHN1cmUg
dGhlIGV4dGVuc2lvbnMgZm9yIGVhY2ggZnJhbWUgYXJlIGluc3RhbGxlZCBpbiBlYWNoIHdvcmxk
LgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwxID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVV
UkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpOwpAQCAtMTM3LDkgKzEzNSw3
IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNpYykKIAogVEVT
VChXZWJLaXQsIERPTVdpbmRvd0V4dGVuc2lvbkNyYXNoT25SZWxvYWQpCiB7Ci0gICAgV0tSZXRh
aW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVh
dGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRE9NV2luZG93
RXh0ZW5zaW9uQmFzaWNQYWdlR3JvdXAiKSkpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5k
bGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25CYXNpYyIsIHBhZ2VHcm91cC5nZXQoKSkpOworICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
Q29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMiKSk7
CiAKICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudFYwIGluamVjdGVkQnVuZGxlQ2xp
ZW50OwogICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3Rl
ZEJ1bmRsZUNsaWVudCkpOwpAQCAtMTUzLDcgKzE0OSw3IEBAIFRFU1QoV2ViS2l0LCBET01XaW5k
b3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogICAgIC8vIG1vZGVsIHRoYXQgYWN0dWFsbHkgYWxs
b3dzIGZvciBhIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVs
KGNvbnRleHQuZ2V0KCksIGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOwogCi0gICAgUGxh
dGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIGZpbmlzaGVk
ID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKaW5kZXggZTE2OTZkNWJkNjU2
OTQ3Mjc4Zjk0NzQ4NTI1MzE3MmJjNDliN2NhNy4uYzdkMGY4ZDA4ZWEyMjQyYWJjN2FkMzg2NTI0
OWFhOGMyNTRmMjEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKQEAgLTgzLDkgKzgz
LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tD
b250ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWcKIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0RP
TVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBS
ZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZVBh
Z2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRv
d0V4dGVuc2lvbk5vQ2FjaGUiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUiKSk7CiAKICAgICBXS0Nv
bnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudFYxIGluamVjdGVkQnVuZGxlQ2xpZW50OwogICAgIG1l
bXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3RlZEJ1bmRsZUNsaWVu
dCkpOwpAQCAtOTgsNyArOTYsNyBAQCBURVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0
ZW5zaW9uTm9DYWNoZSkKICAgICAvLyBEaXNhYmxlIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAg
ICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9j
dW1lbnRWaWV3ZXIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0
LmdldCgpKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgZXh0ZW5zaW9ucyBmb3IgZWFjaCBmcmFt
ZSBhcmUgaW5zdGFsbGVkIGluIGVhY2ggd29ybGQuCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+
IHVybDEgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1l
IiwgImh0bWwiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcApp
bmRleCBkYTQ1NDQ3Y2FmMTAwNDExZWEyNzNlYjVmYzUzMWRmNzEzYWUwMDRjLi5kNGEzNTEyMzQ1
ZWQ1YzJhNDIzYTYzZjhiMDk2ZjZiY2UzN2JiNTlkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2Vy
U2NyaXB0QWxlcnRDcmFzaC5jcHAKQEAgLTQ4LDEwICs0OCw4IEBAIHN0YXRpYyB2b2lkIHJ1bkph
dmFTY3JpcHRBbGVydChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0Zy
YW1lUmVmCiAKIFRFU1QoV2ViS2l0LCBEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hU
ZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkRvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaFRlc3RQYWdlR3JvdXAi
KSkpOyAKLQotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0so
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoVGVzdCIsIHBhZ2VHcm91cC5nZXQoKSkpOwotICAgIFBsYXRmb3Jt
V2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgV0tS
ZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250
ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2hUZXN0IikpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwog
CiAgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAw
LCBzaXplb2YodWlDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVNZWRpYURldmljZXMuY3BwCmluZGV4IGEzZDdiOWNkZDcw
NDE4OGVmZWU3M2ZmYjBmMTBjNTgzMTcwNzkwNDcuLmFiN2E2ZjI0NDc1ODM3Y2JiZDU1OWI4ZmI4
ZDFmNmM1YjUyNzAzZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcApAQCAtNTEsMTggKzUxLDE4IEBA
IFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZpY2VzKQogewogICAgIGF1dG8gY29udGV4dCA9IGFk
b3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwogCi0gICAg
V0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3Jv
dXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJFbnVtZXJhdGVEZXZpY2VzIikuZ2V0
KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURl
dmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0Rmls
ZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJl
ZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0
KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CiAgICAgdWlDbGllbnQuYmFzZS52ZXJz
aW9uID0gNjsKICAgICB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4g
PSBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjazsKIAotICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1X
ZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFn
ZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKyAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAg
V0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisKKwogICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogCiAgICAgYXV0byB1cmwgPSBh
ZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJlbnVtZXJhdGVNZWRpYURldmljZXMi
LCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0
b3J5Q2FsbGJhY2suY3BwCmluZGV4IDY4NWY5NDNhYjcyYmM2Yzc0ZWZmYjA5MzVhYjZmY2Q5YTMx
ZWZiNDUuLjA5MWJlMmMyYzlkODhjOGE1ZTMxZjUzMWM5NTMzY2Y4OWRiOTE3ZjYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNo
U3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcApA
QCAtNzcsMTIgKzc3LDkgQEAgVEVTVChXZWJLaXQsIEVwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVO
b0hpc3RvcnlDYWxsYmFjaykKIAogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdl
YlZpZXcucGFnZSgpLCAmcGFnZUxvYWRlckNsaWVudC5iYXNlKTsKIAotICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3Jl
YXRlKCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0g
V0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VD
b25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0
cnVlKTsKIAotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91
cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3Jv
dXAsIHByZWZlcmVuY2VzLmdldCgpKTsKLQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJwdXNoLXN0YXRlIiwgImh0bWwi
KSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVE
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
ci5jcHAKaW5kZXggNmQ0ZjFiN2Y0NWIxMDE1Zjk1YTBjNTYzZTJmZWYyZWU4ZmFiN2YyNi4uMWVi
Y2Q0ZWU4ZWFmZTFiMjJlMGMzYTU5NTRhYmMxMmQzMjkzM2M0YiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVC
dWlsdGluc0JlaGF2aW9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwCkBAIC01
MCwxMCArNTAsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnRFbmFibGVkKFdLUGFn
ZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQsIFdLRgogCiBURVNUKFdlYktpdCwgSW5q
ZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQogewotICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdy
b3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklu
amVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdFBhZ2VHcm91
cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxl
Tm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCIsIHBhZ2VHcm91cC5nZXQoKSkp
OwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5n
ZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZU5v
RGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xp
ZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpAQCAtODQs
MTAgKzgyLDggQEAgc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0RGlzYWJsZWQoV0tQYWdl
UmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0sKIAogVEVTVChXZWJLaXQsIEluamVj
dGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QpCiB7Ci0gICAgV0tS
ZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBD
cmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5qZWN0
ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdFBhZ2VHcm91cCIpKSk7
Ci0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6
OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwor
ICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3Jl
YXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3Zl
cnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCIpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjAgdWlDbGllbnQ7CiAgICAg
bWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dS
b290c09wZW4uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRC
dW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcAppbmRleCBlOTA4YjFhODNjOGY4ZDkzZjc4
Njk4MmFlMzI1NTgxZTQwNzQ5ZTMyLi42ZTU4MDM0NjUyMGQ3YzJhYTY1MmY4ZjUyNGUwZjg4OThk
YTQ0Nzc3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Jbmpl
Y3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5j
cHAKQEAgLTg1LDEwICs4NSw4IEBAIHN0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXS1Bh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmCiAKIFRFU1QoV2Vi
S2l0LCBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290T3BlblRlc3QpCiB7Ci0gICAgV0tS
ZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBD
cmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5qZWN0
ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdE9wZW5UZXN0UGFnZUdyb3VwIikpKTsKLQotICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29u
dGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9v
dE9wZW5UZXN0IiwgcGFnZUdyb3VwLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVzdCIpKTsK
KyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFn
ZVVJQ2xpZW50VjAgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVp
Q2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
YWdlR3JvdXAuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3Vw
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWVlOTA0MzI3NTI4YjNlODVhZWQy
M2IyYzdkYzY3MzMyNmQyNDcxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNv
bmZpZy5oIgotI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tfSEFWRV9D
X1NQSQotCi0jaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2ltcG9ydCAiUGxhdGZvcm1X
ZWJWaWV3LmgiCi0jaW1wb3J0ICJUZXN0LmgiCi0jaW1wb3J0IDxXZWJLaXQvV0tQYWdlR3JvdXAu
aD4KLSNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oPgotI2ltcG9y
dCA8V2ViS2l0L1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewotCi1URVNUKFBhZ2VHcm91cCwgRGVmYXVsdFVzZXJDb250ZW50Q29udHJvbGxlcikK
LXsKLSAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0
aW9uQ3JlYXRlKCkpOwotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRl
V2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRD
b250ZXh0KHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBjb250ZXh0LmdldCgpKTsKLSAgICBhdXRv
IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGls
Ojp0b1dLKCJUZXN0UGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9u
U2V0UGFnZUdyb3VwKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwot
Ci0gICAgYXV0byBwYWdlR3JvdXBVc2VyQ29udGVudENvbnRyb2xsZXIgPSByZXRhaW5XSyhXS1Bh
Z2VHcm91cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihwYWdlR3JvdXAuZ2V0KCkpKTsKLQotICAg
IEVYUEVDVF9OVUxMKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIo
cGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKLQotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3
KHBhZ2VDb25maWd1cmF0aW9uLmdldCgpKTsKLSAgICBhdXRvIGNvcGllZFBhZ2VDb25maWd1cmF0
aW9uID0gYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkp
KTsKLQotICAgIEFTU0VSVF9FUShwYWdlR3JvdXBVc2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCks
IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIoY29waWVkUGFnZUNv
bmZpZ3VyYXRpb24uZ2V0KCkpKTsKLX0KLQotVEVTVChQYWdlR3JvdXAsIEN1c3RvbVVzZXJDb250
ZW50Q29udHJvbGxlcikKLXsKLSAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhX
S1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0so
V0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwotICAgIFdLUGFnZUNv
bmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBjb250ZXh0Lmdl
dCgpKTsKLSAgICBhdXRvIHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRo
SWRlbnRpZmllcihVdGlsOjp0b1dLKCJUZXN0UGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1Bh
Z2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBwYWdl
R3JvdXAuZ2V0KCkpOwotICAgIGF1dG8gdXNlckNvbnRlbnRDb250cm9sbGVyID0gYWRvcHRXSyhX
S1VzZXJDb250ZW50Q29udHJvbGxlckNyZWF0ZSgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9u
U2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCB1c2VyQ29u
dGVudENvbnRyb2xsZXIuZ2V0KCkpOwotCi0gICAgYXV0byBwYWdlR3JvdXBVc2VyQ29udGVudENv
bnRyb2xsZXIgPSByZXRhaW5XSyhXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihw
YWdlR3JvdXAuZ2V0KCkpKTsKLQotICAgIEVYUEVDVF9FUSh1c2VyQ29udGVudENvbnRyb2xsZXIu
Z2V0KCksIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUNv
bmZpZ3VyYXRpb24uZ2V0KCkpKTsKLQotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VD
b25maWd1cmF0aW9uLmdldCgpKTsKLSAgICBhdXRvIGNvcGllZFBhZ2VDb25maWd1cmF0aW9uID0g
YWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKTsKLQot
ICAgIEVYUEVDVF9FUSh1c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCksIFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIoY29waWVkUGFnZUNvbmZpZ3VyYXRpb24uZ2V0
KCkpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MWFjZDNhMGU3NWNmZjg3YzIyNGFmOTgxYTFkMGIzZDJkYzk1NmZlCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLm1tCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCA8
V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW1wb3J0ICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
UGFnZUdyb3VwLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbXBvcnQgPFdl
YktpdC9XS1ZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChQYWdlR3JvdXAsIFByZWZlcmVuY2VzKQorewor
ICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25D
cmVhdGUoKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRo
Q29uZmlndXJhdGlvbihudWxscHRyKSk7CisgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRl
eHQocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHQuZ2V0KCkpOworICAgIGF1dG8gcGFn
ZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRv
V0soIlRlc3RQYWdlR3JvdXAiKS5nZXQoKSkpOworICAgIGF1dG8gd2tWaWV3ID0gYWRvcHROUyhb
W1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbnRleHRSZWY6Y29udGV4
dC5nZXQoKSBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwLmdldCgpXSk7CisgICAgRVhQRUNUX0VRKFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29u
ZmlndXJhdGlvbih3a1ZpZXcuZ2V0KCkucGFnZVJlZikpLmdldCgpKSwgV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1Bhc3RlYm9hcmROb3RpZmljYXRpb25zLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW0KaW5kZXggMzY1YzJkZGI5Yjky
ZTVjNjZlNjI3OTYwYTVhMmJmYTllNGRhYTYxYS4uZmY0MmY0MzI4N2ZmZjlhM2U3YjVjYWIyMDg4
YzEzN2EwYjg0OGU3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW0KQEAgLTY3LDEyICs2Nyw5IEBA
IFRFU1QoV2ViS2l0LCBQYXN0ZWJvYXJkTm90aWZpY2F0aW9ucykKIAogICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJl
bmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7Cisg
ICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25m
aWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRp
b24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3Jp
cHRDYW5BY2Nlc3NDbGlwYm9hcmQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwogCi0gICAgV0tQ
YWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgp
KTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMu
Z2V0KCkpOwotCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZXhlY0NvcHkiLCAiaHRtbCIpKS5nZXQoKSk7CiAgICAg
VXRpbDo6cnVuKCZmaW5pc2hlZCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNo
U3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKaW5kZXggNjM1MjUzZTBhNjZlZjgwZjZlZDM5NjVl
NzdkMDY5Y2RiOTI0ODY3Ni4uZTMxMWJmMTFlYzBhNTgwMWRmYzJlZWU0N2E1NDY4NWY4NDgxZGIx
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJpdmF0ZUJy
b3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxi
YWNrLmNwcApAQCAtODAsMTIgKzgwLDkgQEAgVEVTVChXZWJLaXQsIFByaXZhdGVCcm93c2luZ1B1
c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrKQogCiAgICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25D
bGllbnQod2ViVmlldy5wYWdlKCksICZwYWdlTG9hZGVyQ2xpZW50LmJhc2UpOwogCi0gICAgV0tS
ZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVy
ZW5jZXNDcmVhdGUoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVy
ZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VD
b3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVm
ZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMu
Z2V0KCksIHRydWUpOwogCi0gICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gV0tQYWdlR2V0
UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2Vz
KHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0KCkpOwotCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxS
ZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInB1c2gtc3RhdGUi
LCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkp
OwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVS
ZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAKaW5kZXggYTA4ODM4ZTc3ZWZh
ZjQ3YjRmMWY3ZGY1MzkzNjA4YTI3MzMzYWM0Yi4uNmI4NjdmZWY2YmQ1ZTlmNGQ5NTRiNmYyOTNm
MmFkOGMxOTRlM2M3YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcApAQCAt
NzUsOCArNzUsNyBAQCBURVNUKFdlYktpdCwgUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcp
CiAKICAgICBXS1BhZ2VMaXN0ZW5Gb3JMYXlvdXRNaWxlc3RvbmVzKHdlYlZpZXcucGFnZSgpLCBr
V0tEaWRGaXJzdExheW91dEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nKTsKIAot
ICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9ICBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmll
dy5wYWdlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91
cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cCk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNv
cHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0U3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKHByZWZlcmVuY2VzLCB0cnVl
KTsKIAogICAgIFdLUGFnZVNldFBhZ2luYXRpb25Nb2RlKHdlYlZpZXcucGFnZSgpLCBrV0tQYWdp
bmF0aW9uTW9kZVJpZ2h0VG9MZWZ0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAKaW5kZXggODVmMjVh
NjQ2ZmFiMmJhNDZkNzQxODZlMGZmNWYyNzZlNjIyNmU5OS4uNGIxMzhlNDkwYzc0NjNkNWVlMDI5
MmNmMWVhZDZkMDc2ODY0ZjI3NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAKQEAgLTczLDE1ICs3
MywxNCBAQCBURVNUKFdlYktpdCwgU2Nyb2xsUGlubmluZ0JlaGF2aW9ycykKIHsKICAgICBXS1Jl
dGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdp
dGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAorICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3
KGNvbnRleHQuZ2V0KCkpOworCisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29u
ZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICAvLyBUdXJuIG9mZiB0aHJl
YWRlZCBzY3JvbGxpbmc7IHN5bmNocm9ub3VzbHkgd2FpdGluZyBmb3IgdGhlIG1haW4gdGhyZWFk
IHNjcm9sbCBwb3NpdGlvbiB0bwogICAgIC8vIHVwZGF0ZSB1c2luZyBXS1BhZ2VGb3JjZVJlcGFp
bnQgd291bGQgYmUgYmV0dGVyLCBidXQgZm9yIHNvbWUgcmVhc29uIGRvZXNuJ3QgYmxvY2sgdW50
aWwKICAgICAvLyBpdCdzIHVwZGF0ZWQgYWZ0ZXIgdGhlIGluaXRpYWwgV0tQYWdlU2V0U2Nyb2xs
UGlubmluZ0JlaGF2aW9yIGFib3ZlLgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBw
YWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6
dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdy
b3VwLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVk
KHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVu
dFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxv
YWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHAKaW5kZXggZDIzMTMzMWI5NTUyOGU0ZDUwMDZiMzQz
NDNkNzViZWMwMDcxNDk2MS4uNzkxZjk0MzcwMmUxNmJmYTExMTYzNDBmZmI5Y2M0M2VmYzUzMGZj
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNl
YmFyU2Nyb2xsaW5nLmNwcApAQCAtNTMsMTQgKzUzLDEzIEBAIFRFU1QoV2ViS2l0LCBTcGFjZWJh
clNjcm9sbGluZykKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7CiAKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0
V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwor
CiAgICAgLy8gVHVybiBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5IHdhaXRp
bmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRpb24gdG8KICAgICAvLyB1cGRhdGUg
dXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdvdWxkIGJlIGJldHRlciwgYnV0IGZvciBzb21lIHJl
YXNvbiB0aGUgdGVzdCBzdGlsbCBmYWlscyBvY2Nhc2lvbmFsbHkuCi0gICAgV0tSZXRhaW5QdHI8
V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRo
SWRlbnRpZmllcihVdGlsOjp0b1dLKCJOb1RocmVhZGVkU2Nyb2xsaW5nUGFnZUdyb3VwIikuZ2V0
KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRl
ZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAotICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Ci0KICAgICBXS1Bh
Z2VOYXZpZ2F0aW9uQ2xpZW50VjAgbG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xp
ZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCmluZGV4IDU3NTE5NzNhNTg4Nzg5ZTRmZTlmODZl
OTU1MzVlYjU1ZTJmZDdlMTMuLjBjYmM1MDBhYjJmMzU0ZTBkYWI1MTU4OGU2ZDBjNWFiZjIyZWFl
NmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRp
YS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNw
cApAQCAtNzEsMjAgKzcxLDE4IEBAIFRFU1QoV2ViS2l0LCBVc2VyTWVkaWFCYXNpYykKIHsKICAg
ICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9u
KG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAg
PSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiR2V0
VXNlck1lZGlhIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0g
V0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVy
ZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5l
Y3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1
cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVu
dFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkp
OwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDY7CiAgICAgdWlDbGllbnQuZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBkZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNrOwogICAgIHVpQ2xpZW50LmNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvck9yaWdpbiA9IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNrOwog
ICAgIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91
cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQ
cmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBh
Z2UoKSkpLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmls
ZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMs
IHRydWUpOwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xp
ZW50LmJhc2UpOwogCiAgICAgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKQEAgLTEwNywyMCArMTA1LDE4
IEBAIFRFU1QoV2ViS2l0LCBPbkRldmljZUNoYW5nZUNyYXNoKQogewogICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwog
Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQ
YWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJHZXRVc2VyTWVkaWEiKS5n
ZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdl
dFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlh
RGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJl
bmNlcywgZmFsc2UpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7
CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CiAgICAgdWlDbGll
bnQuYmFzZS52ZXJzaW9uID0gNjsKICAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCA9IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbEJhY2s7CiAgICAgdWlDbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luID0gY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJhY2s7CiAKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAg
IC8vIExvYWQgYSBwYWdlIHJlZ2lzdGVyaW5nIG9uZGV2aWNlY2hhbmdlIGhhbmRsZXIuCkBAIC0x
NjcsMTMgKzE2Myw2IEBAIFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZpY2VzQ3Jhc2gpCiB7CiAg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlv
bihudWxscHRyKSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3Vw
ID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkdl
dFVzZXJNZWRpYSIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9
IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZl
cmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0
cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25u
ZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQYWdlVUlDbGll
bnRWNiB1aUNsaWVudDsKICAgICAvLyBXZSB3YW50IHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvck9yaWdpbiB0byBiZSBudWxsLgogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNp
emVvZih1aUNsaWVudCkpOwpAQCAtMTg0LDcgKzE3MywxMyBAQCBURVNUKFdlYktpdCwgRW51bWVy
YXRlRGV2aWNlc0NyYXNoKQogICAgIGxvYWRlckNsaWVudC5iYXNlLnZlcnNpb24gPSAzOwogICAg
IGxvYWRlckNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmluaXNoTmF2aWdhdGlvbjsK
IAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5n
ZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAg
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVm
ZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2Uo
KSkpLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVS
THNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFD
YXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAg
V0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOworCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGll
bnQuYmFzZSk7CiAgICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdl
KCksICZsb2FkZXJDbGllbnQuYmFzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZTU0MTAwYzhj
Nzk0NjcxNjUwOTAyYjMyM2ZlZmQxNTgyMWU0MjdhYi4uMDVkOTVlNDk3NDE4MDU1MzA5NTlhMjZj
MzQ4YzFlOGM5N2M3YWFlNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTQxLDcgKzQxLDYgQEAgVEVT
VChXZWJLaXQsIFdLUGFnZUNvbmZpZ3VyYXRpb25FbXB0eSkKIAogICAgIEFTU0VSVF9OVUxMKFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBB
U1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKGNv
bmZpZ3VyYXRpb24uZ2V0KCkpKTsKLSAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9u
R2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChXS1Bh
Z2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoY29uZmlndXJhdGlvbi5nZXQoKSkpOwogICAg
IEFTU0VSVF9OVUxMKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRSZWxhdGVkUGFnZShjb25maWd1cmF0
aW9uLmdldCgpKSk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHAKaW5kZXggYzFlZjA5MTVjMjdlMjE1Yzc4
YmM4NDMxYTFjYWNmNGY0ZDI1ODljMC4uNTY0OWQ5MDQ0YzhlM2RiNDYwZTg5MWY2N2I1NTA1NTBk
YTdlMWQ4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQ
YWdlSXNQbGF5aW5nQXVkaW8uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1dLUGFnZUlzUGxheWluZ0F1ZGlvLmNwcApAQCAtMTE3LDEyICsxMTcsMTAgQEAgVEVTVChX
ZWJLaXQsIE1TRUlzUGxheWluZ0F1ZGlvKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVs
bHB0cikpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFk
b3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJNU0VJc1Bs
YXlpbmdBdWRpb1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFk
b3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkp
OwogICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVNvdXJjZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0
LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwogICAgIHNldFVwQ2xpZW50cyh3ZWJWaWV3LnBhZ2Uo
KSk7CiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVh
dGVVUkxGb3JSZXNvdXJjZSgiZmlsZS13aXRoLW1zZSIsICJodG1sIikpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdG
b3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1t
CmluZGV4IGI5MTIzZjc5ODNhODVjNDRmYzM4OWM1NzZlY2MzZmJmNTFlMjY2YmUuLmNlNmE4MDY4
ZDM4ODg1ZDI4MDg2M2MwNjc2OGQwOTFlZGZjZjAyMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRS
YW5nZVdpdGhJbWFnZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9t
YWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0KQEAgLTU4
LDggKzU4LDcgQEAgc3RhdGljIHZvaWQgaW52YWxpZE1lc3NhZ2VGdW5jdGlvbihXS1N0cmluZ1Jl
ZiBtZXNzYWdlTmFtZSkKIFRFU1QoV2ViS2l0LCBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9z
ZWRSYW5nZVdpdGhJbWFnZSkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7Ci0g
ICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdl
R3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJBdHRyaWJ1dGVkU3Vic3RyaW5n
Rm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZVBhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmln
YXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAs
IHNpemVvZihsb2FkZXJDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0KaW5kZXggNzU1NmY2
MTJkNWUzYjliYTRmNGNkNmY1MjZjOTU4YzE3ZjNmMWYyNi4uNjRkNjdhYjJlM2M3NWQ5ZjA5OTM0
NjZmYTc2YmY2ZDZhNTA1Y2FhZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0KQEAgLTkyLDggKzky
LDcgQEAgVEVTVChXZWJLaXQsIENvbnRleHRNZW51RG93bmxvYWRIVE1MRG93bmxvYWRBdHRyaWJ1
dGUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCi0gICAgV0tSZXRhaW5Q
dHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVX
aXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJNeUdyb3VwIikuZ2V0KCkpKTsKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlTmF2aWdh
dGlvbkNsaWVudFYzIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwg
c2l6ZW9mKGxvYWRlckNsaWVudCkpOwpAQCAtMTQzLDggKzE0Miw3IEBAIFRFU1QoV2ViS2l0LCBD
b250ZXh0TWVudURvd25sb2FkSFRNTERvd25sb2FkQXR0cmlidXRlV2l0aFNsYXNoZXMpCiB7CiAg
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVh
dGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdl
R3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRp
ZmllcihVdGlsOjp0b1dLKCJNeUdyb3VwIikuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVu
dFYzIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxv
YWRlckNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tCmluZGV4IGY5YzBkMWZiZmM2MTcyNTUyM2JjNWY2MTM4
NjE2NmQ2ZDI3M2ZiYTAuLjJhNWEyYmQ2ZGY4ODVhNzUwYzdiYWJhMzllMGM3NzcyOWRjMmJhNWIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JD
b21tYW5kcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRp
dG9yQ29tbWFuZHMubW0KQEAgLTQ1LDE0ICs0NSwxMyBAQCBURVNUKFdlYktpdCwgU2Nyb2xsQnlM
aW5lQ29tbWFuZHMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9w
dFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsK
KwogICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0
aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCiAgICAgLy8gdXBkYXRl
IHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSBy
ZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgotICAgIFdLUmV0YWluUHRy
PFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0
aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdl
dCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFk
ZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KLSAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotCisgICAgCiAg
ICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxv
YWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRl
Lm1tCmluZGV4IDY4N2M3Y2FlN2M4ZDU5ZmQwNjc0NGE1NDA5MTFiMGUxMmZkNWM1ZjEuLmUxMTcw
NzE2MWM3ODRiNDc0NDM1ZDE3MTFiNjlhNjEzM2Q4OTAzZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRl
Lm1tCkBAIC0xMTgsMTEgKzExOCwxMCBAQCBURVNUKEZ1bGxzY3JlZW4sIERlbGVnYXRlKQogVEVT
VChGdWxsc2NyZWVuLCBESVNBQkxFRF9XS1ZpZXdEZWxlZ2F0ZSkKIHsKICAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25m
aWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFn
ZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRv
V0soIkZ1bGxzY3JlZW5EZWxlZ2F0ZSIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3Vw
LmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAg
ICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFBy
ZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFn
ZSgpKSkuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBSZXRhaW5QdHI8RnVsbHNjcmVlbkRlbGVnYXRlTWVzc2Fn
ZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbRnVsbHNjcmVlbkRlbGVnYXRlTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBXS1BhZ2VTZXRGdWxsc2NyZWVuRGVsZWdhdGUod2Vi
Vmlldy5wYWdlKCksIGhhbmRsZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1cmVJblBpY3R1cmVEZWxlZ2F0
ZS5tbQppbmRleCA5MzljNTdiNGQ4YjI2NzY2NGJjZDJhYjc2NGQ0ZDg4ZTY5NTljMjdhLi40NDVk
Yjc1NjZlMDYwN2Q5ODhhNThiNzg5Yjc5MGRiZGVkYzJjZDUwIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1cmVJblBp
Y3R1cmVEZWxlZ2F0ZS5tbQpAQCAtMjAxLDEzICsyMDEsMTIgQEAgVEVTVChQaWN0dXJlSW5QaWN0
dXJlLCBBdWRpb0Nhbm5vdFRvZ2dsZVBpY3R1cmVJblBpY3R1cmUpCiBURVNUKFBpY3R1cmVJblBp
Y3R1cmUsIFdLUGFnZVVJQ2xpZW50KQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4g
Y29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0
cikpOwotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdL
KFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiUGljdHVyZUluUGlj
dHVyZSIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFn
ZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKKyAgICAKKyAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQ
YWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdL
UHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHByZWZl
cmVuY2VzLCB0cnVlKTsKLSAgICAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0
LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotICAgIAorCiAgICAgV0tQYWdlVUlDbGllbnRWMTAg
dWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CiAg
ICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gMTA7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCmluZGV4IDhlNzcw
MDY4ZDMxMmU0MjQzYjEyMWFkNTM5NDlhYWNlMGMxZTA0M2UuLjk4MWFmOTI3Njk0ODUwOGUzNDRl
NTE2YWI3Yjc1NmE3OTYxNGVlYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCkBAIC04MDAsOSArODAwLDcg
QEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc0FyYml0cmFyeVVzZXJH
ZXN0dXJlUXVpcmspCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tBdXRvcGxheVBvbGlj
aWVzRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1Jl
Zj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKHByZWZlcmVuY2VzLmdldCgpLCB0
cnVlKTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKFdLUGFnZUdldFBhZ2VHcm91cChb
d2ViVmlldyBfcGFnZUZvclRlc3RpbmddKSwgcHJlZmVyZW5jZXMuZ2V0KCkpOworICAgIFdLUHJl
ZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygoX19icmlkZ2UgV0tQcmVmZXJlbmNl
c1JlZil3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMsIHRydWUpOwogCiAg
ICAgW2RlbGVnYXRlIHNldEFsbG93ZWRBdXRvcGxheVF1aXJrc0ZvclVSTDpeX1dLV2Vic2l0ZUF1
dG9wbGF5UXVpcmsoTlNVUkwgKnVybCkKICAgICB7CkBAIC04MzMsOSArODMxLDcgQEAgVEVTVChX
ZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc0F1dG9wbGF5UXVpcmtzKQogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRv
cHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3Jv
dXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0
aW5nXSksIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5nZXQoKS5j
b25maWd1cmF0aW9uLnByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdFdpdGhBdWRpbyA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImF1dG9wbGF5LWNoZWNrIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAKQEAg
LTg5MSw5ICs4ODcsNyBAQCBURVNUKFdlYnBhZ2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVz
UGVyRG9jdW1lbnRBdXRvcGxheUJlaGF2aW9yUXVpcmtzKQogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dl
YlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAotICAgIFdLUmV0
YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVu
Y2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNl
cyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5nXSksIHByZWZlcmVu
Y2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnBy
ZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIHJlY2VpdmVkQXV0b3BsYXlFdmVudCA9IFdURjo6bnVs
bG9wdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RS
ZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW0KaW5kZXggNTNmY2M4OTllODA0
ZDMyMmJhZjk4NzA5MmJiM2Y5NDdlZjc0MGI2Ny4uMmY0MGE4MzQ4NjFjNWVjYjc2NmY1ZGYzMDVm
YmQwNDUxMGI5NThkNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tCkBAIC00NSwx
OCArNDUsMTcgQEAgVEVTVChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24p
CiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCi0gICAgLy8gVHVybiBvZmYg
dGhyZWFkZWQgc2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRo
cmVhZCBzY3JvbGwgcG9zaXRpb24gdG8KLSAgICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VS
ZXBhaW50IHdvdWxkIGJlIGJldHRlciwgYnV0IGZvciBzb21lIHJlYXNvbiB0aGUgdGVzdCBzdGls
bCBmYWlscyBvY2Nhc2lvbmFsbHkuCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBh
Z2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0
b1dLKCJOb1RocmVhZGVkU2Nyb2xsaW5nUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3Jv
dXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQo
cHJlZmVyZW5jZXMsIGZhbHNlKTsKLQogICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0g
YWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApCiAgICAgICAgIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNr
IGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOwogICAgIFt3aW5kb3cu
Z2V0KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKICAgICBFWFBFQ1RfVFJVRShbd2luZG93
LmdldCgpIGlzVmlzaWJsZV0pOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOworCisgICAgLy8gVHVybiBvZmYgdGhyZWFk
ZWQgc2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBz
Y3JvbGwgcG9zaXRpb24gdG8KKyAgICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50
IHdvdWxkIGJlIGJldHRlciwgYnV0IGZvciBzb21lIHJlYXNvbiB0aGUgdGVzdCBzdGlsbCBmYWls
cyBvY2Nhc2lvbmFsbHkuCisgICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5h
YmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYw
IGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRl
ckNsaWVudCkpOwpAQCAtODIsNyArODEsNyBAQCBURVNUKFdlYktpdCwgRmlyc3RSZXNwb25kZXJT
Y3JvbGxpbmdQb3NpdGlvbikKIAogICAgIEVYUEVDVF9KU19FUSh3ZWJWaWV3LnBhZ2UoKSwgIndp
bmRvdy5zY3JvbGxZIiwgIjQwIik7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhj
b250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyBuZXdX
ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50
KG5ld1dlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xpZW50LmJhc2UpOwogCiAgICAgW3dpbmRvdy5n
ZXQoKS5jb250ZW50VmlldyBhZGRTdWJ2aWV3Om5ld1dlYlZpZXcucGxhdGZvcm1WaWV3KCldOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21J
bml0aWFsRnJhbWUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVu
Wm9vbUluaXRpYWxGcmFtZS5tbQppbmRleCA2MDU1ZDhkMjMxMWZjZjg2YjQyOTQ5MzMxNzBlZDQx
ZTFkMWFhZTY2Li5mYjBhYTlhNzcwODliY2JiMGRlZjU3YTNiZDZmZmY4OTk1NTI0MjAxIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRp
YWxGcmFtZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVu
Wm9vbUluaXRpYWxGcmFtZS5tbQpAQCAtMTIwLDkgKzEyMCw4IEBAIHZvaWQgRnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWU6OmluaXRpYWxpemVWaWV3KFdLVmlldyAqd2tWaWV3KQogICAgIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudCh3a1ZpZXcucGFnZVJlZiwgJnVpQ2xpZW50LmJhc2UpOwogCiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlkZW50aWZpZXIgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZVByZWZlcmVuY2Vz
IikpOwotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IGN1c3RvbVByZWZlcmVuY2Vz
ID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlV2l0aElkZW50aWZpZXIoaWRlbnRpZmllci5n
ZXQoKSkpOworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IGN1c3RvbVByZWZlcmVu
Y2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29w
eVBhZ2VDb25maWd1cmF0aW9uKHdrVmlldy5wYWdlUmVmKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChjdXN0b21QcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7
Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAod2tWaWV3
LnBhZ2VSZWYpLCBjdXN0b21QcmVmZXJlbmNlcy5nZXQoKSk7CiB9CiAKIHZvaWQgRnVsbHNjcmVl
blpvb21Jbml0aWFsRnJhbWU6OnRlYXJkb3duVmlldyhXS1ZpZXcgKndrVmlldykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQppbmRleCA2MzY2ODkxOGFk
MzJmNzEyZGU4N2FlM2VkMWI0MDExZjdhYjdiOWUyLi5lNTFkZTc2OTBkNWRhNTViY2JlYWI1NmU5
OTM2OWFjZGE5NmJmN2JlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0
Zm9ybVdlYlZpZXdNYWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1X
ZWJWaWV3TWFjLm1tCkBAIC00OCwxMyArNDgsMTIgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9y
bVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQogICAgIGluaXRp
YWxpemUoY29uZmlndXJhdGlvbiwgW1dLVmlldyBjbGFzc10pOwogfQogCi1QbGF0Zm9ybVdlYlZp
ZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmKQorUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250
ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlv
blJlZj4gY29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgp
KTsKLSAgICAKKwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRp
b24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3Jv
dXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKLSAgICAKKwogICAgIGluaXRp
YWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSwgW1dLVmlldyBjbGFzc10pOwogfQogCkBAIC02Mywy
MiArNjIsMTEgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHJl
bGF0ZWRQYWdlKQogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZp
Z3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAgCiAg
ICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgV0tQ
YWdlR2V0Q29udGV4dChyZWxhdGVkUGFnZSkpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQ
YWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgV0tQYWdlR2V0UGFnZUdyb3VwKHJlbGF0ZWRQ
YWdlKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFJlbGF0ZWRQYWdlKGNvbmZpZ3VyYXRp
b24uZ2V0KCksIHJlbGF0ZWRQYWdlKTsKIAogICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5n
ZXQoKSwgW1dLVmlldyBjbGFzc10pOwogfQogCi1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2Vi
VmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVm
LCBDbGFzcyB3a1ZpZXdTdWJjbGFzcykKLXsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1
cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3Jl
YXRlKCkpOwotICAgIAotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdl
R3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKLSAgICAKLSAgICBpbml0
aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCksIHdrVmlld1N1YmNsYXNzKTsKLX0KLQogUGxhdGZv
cm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKIHsKICAgICBbbV93aW5kb3cgY2xvc2VdOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBlMDY2NzAwZjNj
ZTZhYWRhOWFiMjFhMzY0YjBhMmJiY2U0MjhhZTQ4Li5lZTgwYjdjZTYyMWE2YzM4N2U2NDgzOTM5
MjA2YmI0ZDg5NDQwZTUzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcApAQCAtNTQ5LDggKzU0OSw2IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUo
aW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6Omlu
c3RhbGxNb2NrR2FtZXBhZFByb3ZpZGVyKCk7CiAjZW5kaWYKIAotICAgIG1fcGFnZUdyb3VwLmFk
b3B0KFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIodG9XSygiV2ViS2l0VGVzdFJ1bm5l
clBhZ2VHcm91cCIpLmdldCgpKSk7Ci0KICAgICBtX2V2ZW50U2VuZGVyUHJveHkgPSBtYWtlVW5p
cXVlPEV2ZW50U2VuZGVyUHJveHk+KHRoaXMpOwogfQogCkBAIC02NzksNyArNjc3LDYgQEAgV0tS
ZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gVGVzdENvbnRyb2xsZXI6OmdlbmVyYXRl
UGFnZUNvbmZpZ3VyYXRpb24oY28KIAogICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9w
dFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlv
blNldENvbnRleHQocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIG1fY29udGV4dC5nZXQoKSk7Ci0g
ICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChwYWdlQ29uZmlndXJhdGlvbi5nZXQo
KSwgbV9wYWdlR3JvdXAuZ2V0KCkpOwogICAgIAogICAgIGlmIChvcHRpb25zLnVzZUVwaGVtZXJh
bFNlc3Npb24oKSkgewogICAgICAgICBhdXRvIGVwaGVtZXJhbERhdGFTdG9yZSA9IGFkb3B0V0so
V0tXZWJzaXRlRGF0YVN0b3JlQ3JlYXRlTm9uUGVyc2lzdGVudERhdGFTdG9yZSgpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBiZGU2YjBlZDc3NWRjZjIzOWQ4
ZWIxZDJjYjZmMWI3NjcyYTZhOWE5Li43OGQ5Mjg0ZDc1YTc1NjEzYjI4NDJiMjlhM2YyZmE5MDQx
NWE5NmMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC01NTUs
NyArNTU1LDYgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdlYlZp
ZXc+IG1fbWFpbldlYlZpZXc7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRl
eHQ7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IG1fcGFnZUdyb3VwOwogICAgIFdL
UmV0YWluUHRyPFdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmPiBtX3VzZXJDb250ZW50Q29udHJv
bGxlcjsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKaW5kZXggZjQ3YjBkZjk4NmQxNTYzN2Y0
MzAwYzhiMDcxNjNhOWU5NjMyYTQyNS4uMTA4Yjg2MDYxOTk0MjNiYTMxYTUwNTA3NDMzYjRkOGUx
ZjE5ZDc3ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRy
b2xsZXJXUEUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9s
bGVyV1BFLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlRlc3RDb250cm9sbGVyLmgiCiAKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNp
bmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CkBAIC00Nyw3ICs0OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAKIFdLUHJlZmVyZW5jZXNSZWYgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQogewotICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFByZWZl
cmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKKyAgICByZXR1cm4gV0tQYWdlQ29uZmlndXJhdGlv
bkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKG1fbWFp
bldlYlZpZXctPnBhZ2UoKSkpLmdldCgpKQogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybURlc3Ryb3koKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428448</attachid>
            <date>2021-05-12 19:28:00 -0700</date>
            <delta_ts>2021-05-13 08:59:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20210512192800.patch</filename>
            <type>text/plain</type>
            <size>85221</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmMjFlZGNhOWNhOWY1NjFk
ZTYwMGY5N2Y0MjY5ZTcwNDcyZWU2ZTMuLmU3MmEwMmYzNDkyNGE0N2U3NjEzZDdmYTQzYzNlMTU5
MGQ2NjQzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMTIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwcm9qZWN0cyBzdGlsbCB1
c2luZyBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyIGFuZCBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzLgorICAgICAgICBUaGVyZSBpcyBvbmUgcHJvamVjdCBzdGlsbCB1c2luZyBXS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLgorICAgICAgICBJIGxlZnQgdGhlc2UgZGVwcmVjYXRlZCBidXQg
c3RpbGwgZnVuY3Rpb25hbCBhbmQgbm90ZWQgcmFkYXJzIGZvciB3aGVuIHRoZXkgY2FuIGFsc28g
YmUgcmVtb3ZlZC4KKworICAgICAgICBUaGUgcmVzdCBvZiB0aGUgQVBJIGlzIHJlbW92ZWQuICBT
b21lIG9mIGl0IHdhcyBtb3ZlZCB0byBhbiBpbnRlcm5hbC1vbmx5IGhlYWRlciB0byBsZWF2ZSBX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwIHVudG91Y2hlZC4KKyAgICAgICAgTG90cyBvZiB0ZXN0cyBh
cmUgdXBkYXRlZCB0byBzZXQgcHJlZmVyZW5jZXMgbGlrZSB0aGUgbW9kZXJuIEFQSSBkb2VzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VH
ZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHA6
CisgICAgICAgIChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0
VHlwZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250
cm9sbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3BhZ2VHcm91cF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF9zZXRQYWdlR3JvdXA6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1LTEyICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2lsZW5jZSB1bmlu
dGVyZXN0aW5nIHNhbmRib3ggcmVwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggOTliNjU1ZmE0YjU4ZDg0OWQ5ZjczZjE4ODRhZDFkZmZlMzhkYjU3NS4u
MWQ4YTI3YmI0NWRiZmI2YWVlZTA2NDM0NzRhNGJiZDcxNzA1YWJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNjIsMTEgKzE2Miw2IEBAIFdLQ29udGV4
dFJlZiBXS1BhZ2VHZXRDb250ZXh0KFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0FQ
SSgmdG9JbXBsKHBhZ2VSZWYpLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSk7CiB9CiAKLVdLUGFn
ZUdyb3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91cChXS1BhZ2VSZWYgcGFnZVJlZikKLXsKLSAgICBy
ZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+cGFnZUdyb3VwKCkpOwotfQotCiBXS1BhZ2VD
b25maWd1cmF0aW9uUmVmIFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihXS1BhZ2VSZWYgcGFn
ZVJlZikKIHsKICAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+Y29uZmlndXJhdGlv
bigpLmNvcHkoKS5sZWFrUmVmKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aAppbmRleCBjNTFiODE2MmM4OTczNGFiMTUyYmVmMGU5OTIzMzdkNTVmMmRlOGE2Li4yNGU4Nzhm
MzEwYmFjYWIyOWI3ZTA5MWU1NWY2YjMxMjI4NTFhZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaApAQCAtNTgsNyArNTgsNiBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS1BhZ2VHZXRUeXBlSUQodm9pZCk7CiAKIFdLX0VYUE9SVCBXS0NvbnRleHRS
ZWYgV0tQYWdlR2V0Q29udGV4dChXS1BhZ2VSZWYgcGFnZSk7Ci1XS19FWFBPUlQgV0tQYWdlR3Jv
dXBSZWYgV0tQYWdlR2V0UGFnZUdyb3VwKFdLUGFnZVJlZiBwYWdlKTsKIAogV0tfRVhQT1JUIFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKFdLUGFnZVJl
ZiBwYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlQ29uZmlndXJhdGlvblJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcAppbmRleCA3OWJlZDFmZDFlY2U4ODgzYmJiNDg0NTk0
YjY3OTFjNjg1NWIwMWNiLi5iNTA2MjdlMjFmM2UzNGUwOGRkNTNhZmQzNjkzZmVmMzhiM2UwOTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1
cmF0aW9uUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VD
b25maWd1cmF0aW9uUmVmLmNwcApAQCAtNTUsMTYgKzU1LDYgQEAgdm9pZCBXS1BhZ2VDb25maWd1
cmF0aW9uU2V0Q29udGV4dChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdL
Q29udGUKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFByb2Nlc3NQb29sKHRvSW1wbChj
b250ZXh0KSk7CiB9CiAKLVdLUGFnZUdyb3VwUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdl
R3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQotewotICAgIHJldHVy
biB0b0FQSSh0b0ltcGwoY29uZmlndXJhdGlvbiktPnBhZ2VHcm91cCgpKTsKLX0KLQotdm9pZCBX
S1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKQotewotICAgIHRvSW1wbChjb25m
aWd1cmF0aW9uKS0+c2V0UGFnZUdyb3VwKHRvSW1wbChwYWdlR3JvdXApKTsKLX0KLQogV0tVc2Vy
Q29udGVudENvbnRyb2xsZXJSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29u
dHJvbGxlcihXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgcmV0
dXJuIHRvQVBJKHRvSW1wbChjb25maWd1cmF0aW9uKS0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oCmluZGV4IDI3N2MwNjYxZjI2MzJhZDg5NTkyNmZmOWJhZDRiMGE3YzU2NDFl
MTEuLjcwMjAzNjhhN2QxMmMzNjNhNmQyNmNkMWM3YWYxYTUzNTQzZGFiOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVm
LmgKQEAgLTM5LDkgKzM5LDYgQEAgV0tfRVhQT1JUIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkNyZWF0ZSh2b2lkKTsKIFdLX0VYUE9SVCBXS0NvbnRleHRSZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkdldENvbnRleHQoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1
cmF0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogCi1XS19FWFBPUlQgV0tQYWdlR3JvdXBSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VH
cm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KIFdLX0VYUE9SVCBX
S1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRl
bnRDb250cm9sbGVyKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgdXNlckNvbnRlbnRDb250cm9sbGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwCmluZGV4IDY1MTRlZTg2ZGUzYTg0MTQ0ODM3ZGY2MmZj
MTAxM2QyM2NhYTM1YTkuLjk4MGYzZmMwZWVjYTY4YjdkNjcyNDU0YzVlMDYxNWNlZmI2OWNlM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKQEAg
LTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQ
YWdlR3JvdXAuaCIKKyNpbmNsdWRlICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAKICNpbmNsdWRl
ICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdC5oIgpAQCAtNDAsMTEg
KzQwLDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotV0tUeXBlSUQgV0tQYWdlR3Jv
dXBHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b0FQSShXZWJQYWdlR3JvdXA6OkFQSVR5cGUp
OwotfQotCiBXS1BhZ2VHcm91cFJlZiBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdL
U3RyaW5nUmVmIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBwYWdlR3JvdXAgPSBXZWJQYWdlR3Jv
dXA6OmNyZWF0ZSh0b1dURlN0cmluZyhpZGVudGlmaWVyKSk7CkBAIC02MSwxMSArNTYsNiBAQCBX
S1ByZWZlcmVuY2VzUmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwUmVmKQogICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VHcm91cFJlZiktPnBy
ZWZlcmVuY2VzKCkpOwogfQogCi1XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VHcm91
cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi17
Ci0gICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZUdyb3VwUmVmKS0+dXNlckNvbnRlbnRDb250
cm9sbGVyKCkpOwotfQotCiB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdl
R3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2VSZWYsIFdLVVJMUmVmIGJh
c2VVUkxSZWYsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2Nr
ZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVz
KQogewogICAgIGF1dG8gc291cmNlID0gdG9XVEZTdHJpbmcoc291cmNlUmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCmluZGV4IDYzYTEzZjdkNzUyMThi
ZjdlMmViZDAzZWZhMDQ1YjU2OWYzODEwZTIuLjA1NjNlZDc1ZTJkOWM0NjU2MGQ0YWMzNzNmOGYy
MmI5MjkwNTYzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3Jv
dXAuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXS1BhZ2VHcm91cF9oCiAKICNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaD4KICNpbmNsdWRlIDxX
ZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCkBAIC0zNCwyMCArMzUsMTAgQEAK
IGV4dGVybiAiQyIgewogI2VuZGlmCiAKLVdLX0VYUE9SVCBXS1R5cGVJRCBXS1BhZ2VHcm91cEdl
dFR5cGVJRCh2b2lkKTsKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBmaWxlIG9uY2UgcmRhcjovLzc3
OTM5NTk3IGFuZCByZGFyOi8vNzc5Mzk4ODMgYXJlIHJlc29sdmVkLgogCi1XS19FWFBPUlQgV0tQ
YWdlR3JvdXBSZWYgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ1JlZiBp
ZGVudGlmaWVyKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwot
V0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXApOwotCi1XS19FWFBPUlQgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVl
dChXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYg
YmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tl
ZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoV0tQYWdlR3JvdXBSZWYgcGFn
ZUdyb3VwKTsKLSAgICAKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclNjcmlwdChX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYgYmFz
ZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tlZFVS
TFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMsIF9XS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNlclNjcmlw
dHMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKK1dLX0VYUE9SVCBXS1BhZ2VHcm91cFJlZiBX
S1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nUmVmIGlkZW50aWZpZXIpIFdL
X0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VDb25maWd1cmF0aW9uR2V0
UHJlZmVyZW5jZXMpOworV0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApIFdLX0NfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMpOwogCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmEwOTYyYjg2NDBjZjM1YWEw
NzE3YjcxZmIxNzRkMzI4ZGQ2MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tQYWdlR3JvdXAuaD4KKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZp
bGUgb25jZSByZGFyOi8vNzQxNDI5OTUgaXMgcmVzb2x2ZWQuCisKK3ZvaWQgV0tQYWdlR3JvdXBT
ZXRQcmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiwgV0tQcmVmZXJlbmNlc1JlZik7Cit2b2lkIFdL
UGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNv
dXJjZSwgV0tVUkxSZWYgYmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdL
QXJyYXlSZWYgYmxvY2tlZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMp
Owordm9pZCBXS1BhZ2VHcm91cFJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhXS1BhZ2VHcm91cFJl
Zik7Cit2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclNjcmlwdChXS1BhZ2VHcm91cFJlZiwgV0tTdHJp
bmdSZWYgc291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0
ZXJucywgV0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcywgX1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUpOwordm9pZCBXS1BhZ2VHcm91cFJl
bW92ZUFsbFVzZXJTY3JpcHRzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91
cC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
R3JvdXAuaAppbmRleCA2NjkyMzBmNWNiNmEwMzUyYzkwMjVmOTFkZTY2OGUzNjBhODU5M2I2Li5h
NmNkYzQxYTQxMmY3ZGJkZGIzZmU4NDMzYTQxZDdiMGVjMzIwNDJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmgKQEAgLTI4LDYgKzI4LDggQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaD4KIAorLy8gRklY
TUU6IFJlbW92ZSB0aGlzIGZpbGUgb25jZSByZGFyOi8vNzQxNDI5OTUgaXMgcmVzb2x2ZWQuCisK
IFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVc2VyQ29udGVudENvbnRy
b2xsZXIgYW5kIFdLUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIDogTlNPYmplY3QKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0R3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5tbQppbmRleCA4ZjQxYjEyMjc0MDRkZTI2ODM5MmYyNDk4NWIwZTI1
NWUzMzFlZGIwLi43OTRjZjFmYWYzOGQyNjE1OGVmMmY4OTlkYjdlYmYwNTY0YTg5Mjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRHcm91cC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiQVBJU3RyaW5n
LmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLQXJyYXkuaCIKLSNpbXBvcnQg
IldLUGFnZUdyb3VwLmgiCisjaW1wb3J0ICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAjaW1wb3J0
ICJXS1ByZWZlcmVuY2VzUmVmLmgiCiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgogI2ltcG9ydCAi
V0tTaGFyZWRBUElDYXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCAwZWI1YjMyMjlmM2FlZmQxN2JmNmI1MjJjNTQ0MjZkYmRlMTI5
ZTZiLi5lZTIwZGU3YThlMzFkMmRkNTQ1NDk1NGIyMDA2ZDA4YmVkNWZlM2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1NywxNiAr
NDU3LDkgQEAgc3RhdGljIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRD
YWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0V2Vic2l0ZURhdGFTdG9yZShbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0tPl93
ZWJzaXRlRGF0YVN0b3JlLmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0RGVmYXVs
dFdlYnNpdGVQb2xpY2llcyhbX2NvbmZpZ3VyYXRpb24gZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNl
c10tPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlm
IChhdXRvIHBhZ2VHcm91cCA9IFdlYktpdDo6dG9JbXBsKFtfY29uZmlndXJhdGlvbiBfcGFnZUdy
b3VwXSkpCi0gICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAocGFnZUdyb3Vw
KTsKLSAgICBlbHNlCi0jZW5kaWYKLSAgICB7Ci0gICAgICAgIE5TU3RyaW5nICpncm91cElkZW50
aWZpZXIgPSBbX2NvbmZpZ3VyYXRpb24gX2dyb3VwSWRlbnRpZmllcl07Ci0gICAgICAgIGlmIChn
cm91cElkZW50aWZpZXIubGVuZ3RoKQotICAgICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNl
dFBhZ2VHcm91cChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6Y3JlYXRlKGdyb3VwSWRlbnRpZmllciku
cHRyKCkpOwotICAgIH0KKyAgICBOU1N0cmluZyAqZ3JvdXBJZGVudGlmaWVyID0gW19jb25maWd1
cmF0aW9uIF9ncm91cElkZW50aWZpZXJdOworICAgIGlmIChncm91cElkZW50aWZpZXIubGVuZ3Ro
KQorICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKFdlYktpdDo6V2ViUGFn
ZUdyb3VwOjpjcmVhdGUoZ3JvdXBJZGVudGlmaWVyKS5wdHIoKSk7CiAKICAgICBwYWdlQ29uZmln
dXJhdGlvbi0+c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMobWFrZVZlY3RvcjxTdHJp
bmc+KFtfY29uZmlndXJhdGlvbiBfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNdKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggY2U1YjdiZDViMDFhYmM4MjEwOTVkMDU1OTVhYWU5
NjliNjhjZjVmZS4uNGUxODk0MmJhYWJlZjY5NTQ2NTg3YTI2M2JiMDFlOTMwYzRhNzhmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTE1NSw3ICsxNTUsNiBAQCBzdGF0aWMgYm9vbCBkZWZh
dWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogICAg
IEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ7CiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IF9wYWdlR3JvdXA7CiAg
ICAgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlwczsKICAgICBCT09MIF9zZXJ2aWNlQ29udHJvbHNF
bmFibGVkOwogICAgIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXI7CkBAIC00MjksNyArNDI4LDYgQEAgc3RhdGljIGJvb2wgZGVmYXVsdFNob3VsZERlY2lk
ZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCkKICAgICBjb25maWd1cmF0aW9u
LT5fc2hvd3NVUkxzSW5Ub29sVGlwcyA9IHNlbGYtPl9zaG93c1VSTHNJblRvb2xUaXBzOwogICAg
IGNvbmZpZ3VyYXRpb24tPl9zZXJ2aWNlQ29udHJvbHNFbmFibGVkID0gc2VsZi0+X3NlcnZpY2VD
b250cm9sc0VuYWJsZWQ7CiAgICAgY29uZmlndXJhdGlvbi0+X3JlcXVpcmVzVXNlckFjdGlvbkZv
ckVkaXRpbmdDb250cm9sc01hbmFnZXIgPSBzZWxmLT5fcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlcjsKLSAgICBjb25maWd1cmF0aW9uLT5fcGFnZUdyb3VwID0gc2Vs
Zi5fcGFnZUdyb3VwOwogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIGNvbmZpZ3VyYXRpb24tPl9kYXRhRGV0ZWN0b3JUeXBlcyA9
IHNlbGYtPl9kYXRhRGV0ZWN0b3JUeXBlczsKQEAgLTExMzksMTYgKzExMzcsNiBAQCBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlciA9IHJlcXVpcmVzVXNlckFjdGlvbjsKIH0KIAotLSAoV0tQYWdl
R3JvdXBSZWYpX3BhZ2VHcm91cAotewotICAgIHJldHVybiBfcGFnZUdyb3VwLmdldCgpOwotfQot
Ci0tICh2b2lkKV9zZXRQYWdlR3JvdXA6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cAotewotICAg
IF9wYWdlR3JvdXAgPSBwYWdlR3JvdXA7Ci19Ci0KIC0gKHZvaWQpX3NldENQVUxpbWl0Oihkb3Vi
bGUpY3B1TGltaXQKIHsKICAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldENQVUxpbWl0KGNwdUxp
bWl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKaW5kZXggMjQyNWVjNmZmY2Fj
MGJjNTZkNjRiOGQzNzk1Mjk0MzFmNTlhMDM3OC4uMjQzOGFjZGRmZTYxN2MyNzAxYzdmYjgyNDdi
Mzg2YTBiYjM3YWZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTEw
MSw3ICsxMDEsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxh
eSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJs
ZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiSW1hZ2Ug
Y29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMiwgV0tfTUFDX1RC
QSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRSZXF1aXJl
c1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9PTCBfcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldENQVUxp
bWl0OikgZG91YmxlIF9jcHVMaW1pdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UGFnZUdyb3VwOikg
V0tQYWdlR3JvdXBSZWYgX3BhZ2VHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFdl
YnNpdGVEYXRhU3RvcmU6KSBfV0tXZWJzaXRlRGF0YVN0b3JlICpfd2Vic2l0ZURhdGFTdG9yZSBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJzaXRlRGF0YVN0b3JlIiwgbWFj
b3MoMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNjgwMWZjNTEyMTcwY2JmOTlhNjI0
OTcxMjcwMWU0YTFmMDliMjA4Li44YmU1MTgzMjExYTllNGRlOWY4ZGNiMzU1MzdiYWIzNTAxNTEy
YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEyNzYsNiArMTI3Niw3IEBACiAJCTVDOUE5MTEyMjI4RjY5Q0MwMDVDNUIxNyAvKiBY
UENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsg
fTsKIAkJNUM5QTkxMTMyMjhGNjlDRDAwNUM1QjE3IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VD
NDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OwogCQk1QzlBOTExNDIyOEY2OUNF
MDA1QzVCMTcgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2Vydmlj
ZU1haW4ubW0gKi87IH07CisJCTVDOUREMzI2MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91
cEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzlERDMyNTI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oICovOyB9
OwogCQk1QzlFNTY4MzFERjdGMUIzMDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1NjgxMURGN0Yw
NTUwMEM5RUUzMyAvKiBXS1dlYnNpdGVQb2xpY2llcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDQTI2RDgxMjE3QUJENUIwMEY5N0EzNSAvKiBX
S1NhZmVCcm93c2luZ1dhcm5pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDQTI2RDgwMjE3QUJCQjYwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dh
cm5pbmcuaCAqLzsgfTsKIAkJNUNBMjZEODMyMTdBRDFCODAwRjk3QTM1IC8qIFdLU2FmZUJyb3dz
aW5nV2FybmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDQTI2RDdGMjE3QUJCQjYwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcubW0g
Ki87IH07CkBAIC00NDk3LDYgKzQ0OTgsNyBAQAogCQk1QzhERDM4MTFGRTQ1NUNBMDBGMkE1NTYg
LyogV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM5QzVDMDIyNDMwNTM1ODAwQkI2NzQwIC8qIFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckNvbnRlbnRDb250cm9s
bGVyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlDNUMwMzI0
MzA1MzU4MDBCQjY3NDAgLyogVXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQ29udGVudENvbnRyb2xsZXJQ
YXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5REQzMjUyNjRD
N0Y3NDAwRTA3NDQyIC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tQYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzlFNTY4MDFERjdGMDU1MDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tXZWJzaXRlUG9saWNp
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlFNTY4MTFERjdGMDU1MDBD
OUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tXZWJzaXRlUG9saWNpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM5RUYyRTcyMUYwNThGOTAwM0JEQzU2IC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvblByb3ZpZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDMxMSw2ICsxMDMx
Myw3IEBACiAJCQkJMUFCOEExRUYxODQwMEIwMDAwRTlBRTY5IC8qIFdLUGFnZUZvcm1DbGllbnQu
aCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwICov
LAogCQkJCUJDN0I2MzM1MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5oICovLAorCQkJ
CTVDOUREMzI1MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91cEludGVybmFsLmggKi8sCiAJ
CQkJMkQ5RUEzMEMxQTk2Q0I1OTAwMkQyODA3IC8qIFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50
LmggKi8sCiAJCQkJMUFCOEExRUIxODQwMDgwOTAwRTlBRTY5IC8qIFdLUGFnZUxvYWRlckNsaWVu
dC5oICovLAogCQkJCTJENzMwMzc4MUE3QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50LmggKi8sCkBAIC0xMjg2MSw2ICsxMjg2NCw3IEBACiAJCQkJMUFCOEExRjYxODQwMEI5
RDAwRTlBRTY5IC8qIFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUI4QTFGMDE4NDAwQjAwMDBFOUFFNjkgLyogV0tQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM3QjYzMzcxMkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1QzlERDMyNjI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5RUEzMEQxQTk2Q0I1OTAwMkQyODA3IC8q
IFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI4QTFF
QzE4NDAwODA5MDBFOUFFNjkgLyogV0tQYWdlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzJEMDIxOTEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBmY2VhMWFjMGE5OGQ0YmE0Mzg0NjYwMmZjMDViNTFhNjQzYzE4MGQ1Li5kY2E0YTYyYTQ2
YjVkMWI3ODkxYjdmZDJjMjNkM2NhMDRjMzVhZmU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDUtMTIgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgYXMgbXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL0N1
c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGlu
Q3JlYXRlUGFnZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVt
ZXJhdGVNZWRpYURldmljZXMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hT
dGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1
bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5v
dGlmaWNhdGlvbnMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2Vi
Vmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFn
ZUlzUGxheWluZ0F1ZGlvLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5n
Rm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVu
dURvd25sb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1
cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVz
Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5a
b29tSW5pdGlhbEZyYW1lLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6RnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWU6OmluaXRpYWxpemVWaWV3KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQ
bGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpnZW5l
cmF0ZVBhZ2VDb25maWd1cmF0aW9uKToKKwogMjAyMS0wNS0xMiAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb3Rpb25NYXJrXSBVcGRhdGUgcGxh
biBmaWxlIGFmdGVyIHIyNzc0MDYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9X
ZWJLaXRCcm93c2VyV2luZG93LmNwcCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93
c2VyV2luZG93LmNwcAppbmRleCA5MjQ1ZGZjN2Y4MWYzYTgwNDgwYTBkZGRjZTdmZmNjN2UwOWVk
NDA2Li43NjM0Yzg0MGQ2MTMxYjEwOWUwNmVjNzE4YjcwOWFiZjA1NTQyNmYwIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKKysrIGIvVG9v
bHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwCkBAIC0xMTEsMTcgKzEx
MSwxMiBAQCBSZWY8QnJvd3NlcldpbmRvdz4gV2ViS2l0QnJvd3NlcldpbmRvdzo6Y3JlYXRlKEJy
b3dzZXJXaW5kb3dDbGllbnQmIGNsaWVudCwgSFdORAogewogICAgIGF1dG8gY29uZiA9IGFkb3B0
V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKIAotICAgIGF1dG8gcHJlZnMgPSBhZG9w
dFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7CisgICAgYXV0byBwcmVmcyA9IFdLUGFnZUNvbmZp
Z3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25mLmdldCgpKTsKIAotICAgIGF1dG8gcGFnZUdyb3Vw
ID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKGNyZWF0ZVdLU3RyaW5n
KCJXaW5NaW5pQnJvd3NlciIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBh
Z2VHcm91cChjb25mLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUGFnZUdyb3VwU2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpLCBwcmVmcy5nZXQoKSk7CisgICAgV0tQcmVmZXJl
bmNlc1NldE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZChwcmVmcywgZmFsc2UpOworICAgIFdLUHJl
ZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZzLCB0cnVlKTsKIAotICAgIFdL
UHJlZmVyZW5jZXNTZXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJlZnMuZ2V0KCksIGZhbHNl
KTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmcy5nZXQo
KSwgdHJ1ZSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFByZWZlcmVuY2VzKGNvbmYuZ2V0
KCksIHByZWZzLmdldCgpKTsKLQotICAgIGF1dG8gY29udGV4dCA9YWRvcHRXSyhXS0NvbnRleHRD
cmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRv
cHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAgICAgV0tQ
YWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZi5nZXQoKSwgY29udGV4dC5nZXQoKSk7CiAK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRCcm93c2VyV2luZG93KGNsaWVudCwgY29u
Zi5nZXQoKSwgbWFpblduZCkpOwpAQCAtMjIzLDggKzIxOCw4IEBAIHZvaWQgV2ViS2l0QnJvd3Nl
cldpbmRvdzo6bmF2aWdhdGVUb0hpc3RvcnkoVUlOVCBtZW51SUQpCiB2b2lkIFdlYktpdEJyb3dz
ZXJXaW5kb3c6OnNldFByZWZlcmVuY2UoVUlOVCBtZW51SUQsIGJvb2wgZW5hYmxlKQogewogICAg
IGF1dG8gcGFnZSA9IFdLVmlld0dldFBhZ2UobV92aWV3LmdldCgpKTsKLSAgICBhdXRvIHBncm91
cCA9IFdLUGFnZUdldFBhZ2VHcm91cChwYWdlKTsKLSAgICBhdXRvIHByZWYgPSBXS1BhZ2VHcm91
cEdldFByZWZlcmVuY2VzKHBncm91cCk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24ocGFnZSkpOworICAgIGF1dG8gcHJlZiA9IFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25maWd1cmF0aW9uLmdldCgpKTsKICAg
ICBzd2l0Y2ggKG1lbnVJRCkgewogICAgIGNhc2UgSURNX0FDQ19DT01QT1NJVElORzoKICAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHByZWYsIGVu
YWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5o
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA1ZTg1MDI2ODlm
MTNlOGVkMTE5ZTMxYTc2ZjViY2VjNjA5OGFjZTc1Li5hZjU5YWJlZDY5ZDA4ODk5MjAwODc0YzM1
YzQ3NjNkYmU0Yjc4NTY2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
V2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAg
LTczLDExICs3Myw4IEBAIGNsYXNzIFBsYXRmb3JtV2ViVmlldyB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUGxhdGZvcm1XZWJWaWV3KTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQbGF0Zm9y
bVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1X
ZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgPSAwKTsKKyAgICBleHBsaWNpdCBQ
bGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmKTsKICAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZp
ZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgZXhwbGlj
aXQgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIENsYXNzIHdr
Vmlld1N1YmNsYXNzKTsKLSNlbmRpZgogICAgIH5QbGF0Zm9ybVdlYlZpZXcoKTsKIAogICAgIFdL
UGFnZVJlZiBwYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyMGVmNzQ0
YmZhZDcwZDhjNzM4ZGMwZDhhODFmMjg3Y2MxOTBlOWEuLjcyMDZjOWFhOWI0NzczNjc1N2JkMmMw
MTYxMDkzMGI4ZWRmMGU4OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NzcsNyArNjc3
LDcgQEAKIAkJN0M5RUQ5OEIxN0ExOUY0QjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdTdHJp
a2V0aHJvdWdoLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M5RUQ5OEExN0ExOUQwNjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdT
dHJpa2V0aHJvdWdoLmh0bWwgKi87IH07CiAJCTdDQjE4NEM2MUFBM0YyMTAwMDY2RURGRCAvKiBD
b250ZW50RXh0ZW5zaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0IxODRDNDFBQTNGMjEwMDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lvbnMu
Y3BwICovOyB9OwogCQk3Q0JENUEyMzIyREU0MkE2MDA0QTlFMzIgLyogV1RGU3RyaW5nVXRpbGl0
aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
QkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovOyB9Owot
CQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQ0I0REE3MUM4M0FFNzMwMENDNjkx
OCAvKiBQYWdlR3JvdXAuY3BwICovOyB9OworCQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyog
UGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLzsgfTsKIAkJN0ND
Qjk5MjExRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25B
Y3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlv
bkFjdGlvbi5tbSAqLzsgfTsKIAkJN0NDQjk5MjMxRDNCNEE0NjAwMzkyMkY2IC8qIG9wZW4tbXVs
dGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQjk5MjIxRDNCNDRFNzAwMzkyMkY2IC8qIG9wZW4tbXVs
dGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgKi87IH07CiAJCTdDQ0U3RUE1MUE0MTFBMDgwMDQ0N0M0
QyAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMwODEyMjQwMTNGQzE3MjQwMERDMzlBRSAvKiBKYXZhU2NyaXB0VGVz
dE1hYy5tbSAqLzsgfTsKQEAgLTI0NzQsNyArMjQ3NCw3IEBACiAJCTdDQkJBMDc2MTlCQjhBOTEw
MEJCRjAyNSAvKiBPU09iamVjdFB0ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBPU09iamVjdFB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
QkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV1RGU3RyaW5nVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NDM0UxRkExOTdFMjM0MTAwQkU2MjUyIC8qIFVzZXJDb250ZW50Q29udHJvbGxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJDb250ZW50
Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NDQjREQTcxQzgz
QUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYWdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZUdyb3VwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlv
bkluTmF2aWdhdGlvbkFjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0I5OTIyMUQzQjQ0RTcwMDM5MjJGNiAvKiBvcGVuLW11
bHRpcGxlLWV4dGVybmFsLXVybC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm9w
ZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Q0NFN0U4QzFBNDExNDRFMDA0NDdDNEMgLyogbGliVGVzdFdlYktpdEFQSS5hICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBp
bmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJUZXN0V2ViS2l0QVBJLmE7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0zNDgzLDggKzM0ODMsOCBAQAogCQkJCTYzNTE5
OTI3MjIyNzVDNkEwMDg5MEFEMyAvKiBOYXZpZ2F0aW9uQWN0aW9uLm1tICovLAogCQkJCTVDOEJD
Nzk4MjE4Q0YzRTkwMDgxMzg4NiAvKiBOZXR3b3JrUHJvY2Vzcy5tbSAqLywKIAkJCQk1Q0FFNDYz
NzIwMTkzN0NEMDA1MTYxMEYgLyogTmV0d29ya1Byb2Nlc3NDcmFzaE5vblBlcnNpc3RlbnREYXRh
U3RvcmUubW0gKi8sCi0JCQkJNDZBODBGMjUyNjRDMjlENDAwRUVGMjBEIC8qIE5vdGlmaWNhdGlv
bkFQSS5tbSAqLywKIAkJCQlDRENGRkVDMDIyRTI2OEQ1MDBERjQyMjMgLyogTm9QYXVzZVdoZW5T
d2l0Y2hpbmdUYWJzLm1tICovLAorCQkJCTQ2QTgwRjI1MjY0QzI5RDQwMEVFRjIwRCAvKiBOb3Rp
ZmljYXRpb25BUEkubW0gKi8sCiAJCQkJQ0QyRDBEMTkyMTM0NjU1NjAwMThDNzg0IC8qIE5vd1Bs
YXlpbmcubW0gKi8sCiAJCQkJMkVDRkY1NTQxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdD
b250cm9sc1Rlc3RzLm1tICovLAogCQkJCUExMEYwNDdDMUUzQUQyOUMwMEM5NUUxOSAvKiBOU0Zp
bGVNYW5hZ2VyRXh0cmFzLm1tICovLApAQCAtNDMzMSw3ICs0MzMxLDcgQEAKIAkJCQk5M0Y3RTg2
RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVz
X0J1bmRsZS5jcHAgKi8sCiAJCQkJMEY1NjUxRjYxRkNFNEREQjAwMzEwRkJDIC8qIE5vSGlzdG9y
eUl0ZW1TY3JvbGxUb0ZyYWdtZW50Lm1tICovLAogCQkJCTFDQjJGMjdCMjRGODgzNzkwMDBBNUJD
MSAvKiBPcnRob2dvbmFsRmxvd0F2YWlsYWJsZVNpemUubW0gKi8sCi0JCQkJN0NDQjREQTcxQzgz
QUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8sCisJCQkJN0NDQjREQTcxQzgzQUU3MzAw
Q0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLywKIAkJCQlCQzkwOTc3OTEyNTU3MUFCMDAwODM3NTYg
LyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCiAJCQkJQkMyRDAwNDgxMkE5RkRGQTAwRTczMkEzIC8q
IFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwICovLAogCQkJ
CTI3MkE2OTBGMjJGMDEyQzcwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLywKQEAgLTU0
NTIsNyArNTQ1Miw2IEBACiAJCQkJQ0RCMjEzQkQyNEVGNTIyODAwRkRFMzAxIC8qIEZ1bGxzY3Jl
ZW5Gb2N1cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNERTc3RDI1MjVBNjU5MUMwMEQ0MTE1RSAv
KiBGdWxsc2NyZWVuUG9pbnRlckxlYXZlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0REQzdDNjky
NUZGRjZEMDAwMjI0Mjc4IC8qIEZ1bGxzY3JlZW5SZW1vdmVOb2RlQmVmb3JlRW50ZXIubW0gaW4g
U291cmNlcyAqLywKLQkJCQk0NkE4MEYyNjI2NEMyOUQ0MDBFRUYyMEQgLyogTm90aWZpY2F0aW9u
QVBJLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCRkNDNDUxQTlGRjQ1MzAwQTdCNjkxIC8qIEZ1
bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODNEQjc5Njkx
RUY2M0IzQzAwQkZBNUU1IC8qIEZ1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUY4MUE0MTFBRTYwMDQ0N0M0QyAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTU1ODMsNiArNTU4Miw3IEBACiAJCQkJN0NDRTdGMDUxQTQxMUFFNjAwNDQ3QzRDIC8qIE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjU2NTFGNzFGQ0U0RERDMDAzMTBGQkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21lbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4M0YyMkM2NDIwQjM1NUY4MDAzNDI3N0UgLyogTm9Qb2xp
Y3lEZWxlZ2F0ZVJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDZBODBGMjYyNjRDMjlE
NDAwRUVGMjBEIC8qIE5vdGlmaWNhdGlvbkFQSS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMkQw
RDFBMjEzNDY1NTYwMDE4Qzc4NCAvKiBOb3dQbGF5aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkVDRkY1NTUxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE1OUYyNjcyNjBENDNFMzAwQjJEQTNDIC8qIE5vd1BsYXlpbmdJ
bmZvVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01NTk3LDcgKzU1OTcsNyBAQAogCQkJCUMx
MDRCQzFGMjU0NzIzNzEwMEMwNzhDOSAvKiBPdmVycmlkZUFwcGxlTGFuZ3VhZ2VzUHJlZmVyZW5j
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEQTI1ODZGMjI1QzY3REMwMEI0NUMxQyAvKiBPdmVy
cmlkZVZpZXdwb3J0QXJndW1lbnRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTUzQUJCMzUyNUMw
RDY4MjAwNEM4QjczIC8qIFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2Vz
ICovLAotCQkJCTdDQ0I0REE5MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJN0NDQjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjA3MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZEJh
c2ljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjA4MUE0MTFBRTYwMDQ0N0M0QyAvKiBQ
YWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI3MkE2OTEwMjJGMDEyREEwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0
b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvQ3Vz
dG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW0KaW5kZXggNDdmNWU4ODVjZDZhMGMxNGYzOWFmYjcx
OGE4YmM1ZDk5ZTlmNWM3ZC4uYWQzOTkxZDU2ZjIxZTU2MmUyNDVhMjQwN2I2MzY1YzQ5ODhlNmFi
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNT
eW5jWEhSVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3Rv
Y29sc1N5bmNYSFJUZXN0Lm1tCkBAIC01Miw5ICs1Miw3IEBAIFRFU1QoV2ViS2l0MkN1c3RvbVBy
b3RvY29sc1Rlc3QsIFN5bmNYSFIpCiAgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0R3Jv
dXA+IGJyb3dzaW5nQ29udGV4dEdyb3VwID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0R3Jv
dXAgYWxsb2NdIGluaXRXaXRoSWRlbnRpZmllcjpAIlRlc3RJZGVudGlmaWVyIl0pOwogCiAgICAg
Ly8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZpbGUgcmVzb3VyY2VzCi0gICAgV0tSZXRh
aW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5j
ZXNDcmVhdGUoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMc0FsbG93ZWQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0
UHJlZmVyZW5jZXMoYnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCkuX3BhZ2VHcm91cFJlZiwgcHJl
ZmVyZW5jZXMuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoYnJvd3NpbmdDb250ZXh0
R3JvdXAuZ2V0KCkuX3BhZ2VHcm91cFJlZiksIHRydWUpOwogCiAgICAgUmV0YWluUHRyPFdLVmll
dz4gd2tWaWV3ID0gYWRvcHROUyhbW1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBwcm9jZXNzR3JvdXA6cHJvY2Vzc0dyb3VwLmdldCgpIGJyb3dz
aW5nQ29udGV4dEdyb3VwOmJyb3dzaW5nQ29udGV4dEdyb3VwLmdldCgpXSk7CiAgICAgIFJldGFp
blB0cjxUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEJsb2NrVG9S
dW5PbkxvYWQ6XihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKnNlbmRlcikgewpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3Jl
YXRlUGFnZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21X
aXRoaW5DcmVhdGVQYWdlLmNwcAppbmRleCAyODg1ZjUyYmE4MWEyM2UzMDEyNzMzMTQ5NGU3Y2Iy
MTdjM2M1NjdjLi5kNjVkNDUzNTg0MDM1MjRhNWQ3NWVhOThiNGU3NWNmNWNmZWE5YTZmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5D
cmVhdGVQYWdlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9z
ZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcApAQCAtNzYsMTAgKzc2LDggQEAgVEVTVChXZWJLaXQs
IENsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UpCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdl
YlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAKICAgICAvLyBBbGxvdyBmaWxlIFVSTHMg
dG8gbG9hZCBub24tZmlsZSByZXNvdXJjZXMKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2Vz
UmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdl
KCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25m
aWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRV
bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVl
KTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMu
Z2V0KCkpOwogICAgIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJjbG9zZS1mcm9tLXdpdGhpbi1jcmVhdGUtcGFnZSIs
ICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7
CkBAIC0xMjEsMTAgKzExOSw4IEBAIFRFU1QoV2ViS2l0LCBDcmVhdGVQYWdlVGhlbkRvY3VtZW50
T3Blbk1JTUVUeXBlKQogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwg
JnVpQ2xpZW50LmJhc2UpOwogCiAgICAgLy8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZp
bGUgcmVzb3VyY2VzCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5j
ZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKKyAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJW
aWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNz
RnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdl
R3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKIAogICAg
IHRlc3REb25lID0gZmFsc2U7CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0
V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIndpbmRvdy1vcGVuLXRoZW4tZG9jdW1lbnQt
b3BlbiIsICJodG1sIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCmluZGV4IDU1YWEzN2UxMzAy
YzI2ZDJlOTUwM2QwNWE4OGJjNzE0NWNmYzY1MzkuLmQwMmZmMjNhMjNkYmQ1NzhiNTE3MWQyNjRi
NTliYjA4NWEwY2IyOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKQEAgLTgyLDkgKzgyLDcg
QEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250
ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWcKIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBw
YWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljUGFnZUdyb3Vw
IikpKTsgCi0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVu
c2lvbkJhc2ljIiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5k
bGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25CYXNpYyIpKTsKIAogICAgIFdLQ29udGV4dEluamVj
dGVkQnVuZGxlQ2xpZW50VjAgaW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiAgICAgbWVtc2V0KCZpbmpl
Y3RlZEJ1bmRsZUNsaWVudCwgMCwgc2l6ZW9mKGluamVjdGVkQnVuZGxlQ2xpZW50KSk7CkBAIC05
OCw3ICs5Niw3IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNp
YykKICAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNo
ZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHRlbnNpb25z
IGZvciBlYWNoIGZyYW1lIGFyZSBpbnN0YWxsZWQgaW4gZWFjaCB3b3JsZC4KICAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gdXJsMSA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
InNpbXBsZS1pZnJhbWUiLCAiaHRtbCIpKTsKQEAgLTEzNyw5ICsxMzUsNyBAQCBURVNUKFdlYktp
dCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMpCiAKIFRFU1QoV2ViS2l0LCBET01X
aW5kb3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdy
b3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZp
ZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2lj
UGFnZUdyb3VwIikpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2lu
ZG93RXh0ZW5zaW9uQmFzaWMiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljIikpOwogCiAgICAgV0tDb250
ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1z
ZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQp
KTsKQEAgLTE1Myw3ICsxNDksNyBAQCBURVNUKFdlYktpdCwgRE9NV2luZG93RXh0ZW5zaW9uQ3Jh
c2hPblJlbG9hZCkKICAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNr
L2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgp
LCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRl
bnNpb25Ob0NhY2hlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdp
bmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCmluZGV4IGUxNjk2ZDViZDY1Njk0NzI3OGY5NDc0ODUy
NTMxNzJiYzQ5YjdjYTcuLmM3ZDBmOGQwOGVhMjI0MmFiYzdhZDM4NjUyNDlhYThjMjU0ZjIxMDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCkBAIC04Myw5ICs4Myw3IEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tT
dHJpbmdSZWYgbWVzc2FnCiAKIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNp
b25Ob0NhY2hlKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAg
PSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVQYWdlR3JvdXAiKSkpOwot
Ci0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25Ob0Nh
Y2hlIiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0
KCJET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlIikpOwogCiAgICAgV0tDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnRWMSBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1zZXQoJmluamVjdGVk
QnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQpKTsKQEAgLTk4LDcg
Kzk2LDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUp
CiAgICAgLy8gRGlzYWJsZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNl
dENhY2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsK
IAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5n
ZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAg
ICAvLyBNYWtlIHN1cmUgdGhlIGV4dGVuc2lvbnMgZm9yIGVhY2ggZnJhbWUgYXJlIGluc3RhbGxl
ZCBpbiBlYWNoIHdvcmxkLgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwxID0gYWRvcHRX
SyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFy
dFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKaW5kZXggZGE0NTQ0N2Nh
ZjEwMDQxMWVhMjczZWI1ZmM1MzFkZjcxM2FlMDA0Yy4uZDRhMzUxMjM0NWVkNWMyYTQyM2E2M2Y4
YjA5NmY2YmNlMzdiYjU5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2guY3BwCkBAIC00OCwxMCArNDgsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNU
KFdlYktpdCwgRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCkKIHsKLSAgICBX
S1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91
cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEb2N1
bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hUZXN0UGFnZUdyb3VwIikpKTsgCi0KLSAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRD
cmFzaFRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVk
QnVuZGxlVGVzdCgiRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCIpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJ
Q2xpZW50VjAgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xp
ZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVt
ZXJhdGVNZWRpYURldmljZXMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
RW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcAppbmRleCBhM2Q3YjljZGQ3MDQxODhlZmVlNzNmZmIw
ZjEwYzU4MzE3MDc5MDQ3Li5hYjdhNmYyNDQ3NTgzN2NiYmQ1NTliOGZiOGQxZjZjNWI1MjcwM2Vj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVN
ZWRpYURldmljZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Vu
dW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAKQEAgLTUxLDE4ICs1MSwxOCBAQCBURVNUKFdlYktpdCwg
RW51bWVyYXRlRGV2aWNlcykKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4
dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWluUHRyPFdL
UGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElk
ZW50aWZpZXIoVXRpbDo6dG9XSygiRW51bWVyYXRlRGV2aWNlcyIpLmdldCgpKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmls
ZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0K
ICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAs
IHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDY7CiAgICAg
dWlDbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luID0gY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uQ2FsbGJhY2s7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3
KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1Bh
Z2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZp
Z3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1l
ZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAg
V0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVm
ZXJlbmNlcywgZmFsc2UpOworCisKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5w
YWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIGF1dG8gdXJsID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVVUkxGb3JSZXNvdXJjZSgiZW51bWVyYXRlTWVkaWFEZXZpY2VzIiwgImh0bWwiKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNz
aW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNw
cAppbmRleCA2ODVmOTQzYWI3MmJjNmM3NGVmZmIwOTM1YWI2ZmNkOWEzMWVmYjQ1Li4wOTFiZTJj
MmM5ZDg4YzhhNWUzMWY1MzFjOTUzM2NmODlkYjkxN2Y2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVt
ZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKQEAgLTc3LDEyICs3Nyw5
IEBAIFRFU1QoV2ViS2l0LCBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJh
Y2spCiAKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwg
JnBhZ2VMb2FkZXJDbGllbnQuYmFzZSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2Vz
UmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKKyAgICBX
S1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3
ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7CiAKLSAgICBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdl
KCkpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJlbmNl
cy5nZXQoKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgicHVzaC1zdGF0ZSIsICJodG1sIikpOwogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9J
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwCmluZGV4IDZk
NGYxYjdmNDViMTAxNWY5NWEwYzU2M2UyZmVmMmVlOGZhYjdmMjYuLjFlYmNkNGVlOGVhZmUxYjIy
ZTBjM2E1OTU0YWJjMTJkMzI5MzNjNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5k
bGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcApAQCAtNTAsMTAgKzUwLDggQEAg
c3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0RW5hYmxlZChXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgYWxlcnRUZXh0LCBXS0YKIAogVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlTm9E
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCkKIHsKLSAgICBXS1JldGFpblB0cjxX
S1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJ
ZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJbmplY3RlZEJ1bmRsZU5v
RGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCi0gICAg
V0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVD
b250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29u
dGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JUZXN0IikpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1z
ZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKQEAgLTg0LDEwICs4Miw4IEBAIHN0
YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydERpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBhbGVydFRleHQsIFdLCiAKIFRFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZURpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCi0gICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0
Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0
aW5zQmVoYXZpb3JUZXN0IiwgcGFnZUdyb3VwLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJ
bmplY3RlZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvclRlc3QiKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGll
bnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNo
YWRvd1Jvb3RzT3Blbi5jcHAKaW5kZXggZTkwOGIxYTgzYzhmOGQ5M2Y3ODY5ODJhZTMyNTU4MWU0
MDc0OWUzMi4uNmU1ODAzNDY1MjBkN2MyYWE2NTJmOGY1MjRlMGY4ODk4ZGE0NDc3NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtl
QWxsU2hhZG93Um9vdHNPcGVuLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCkBAIC04NSwxMCAr
ODUsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNUKFdlYktpdCwgSW5qZWN0ZWRC
dW5kbGVNYWtlQWxsU2hhZG93Um9vdE9wZW5UZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTWFrZUFs
bFNoYWRvd1Jvb3RPcGVuVGVzdFBhZ2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVzdCIsIHBh
Z2VHcm91cC5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0
KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250
ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJ
bmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290T3BlblRlc3QiKSk7CisgICAgUGxhdGZvcm1X
ZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVp
Q2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlZTkwNDMyNzUyOGIzZTg1YWVkMjNiMmM3ZGM2NzMzMjZk
MjQ3MWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBv
cnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0hBVkVfQ19TUEkKLQotI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgotI2lt
cG9ydCAiVGVzdC5oIgotI2ltcG9ydCA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+Ci0jaW1wb3J0IDxX
ZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaD4KLSNpbXBvcnQgPFdlYktpdC9XS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotVEVT
VChQYWdlR3JvdXAsIERlZmF1bHRVc2VyQ29udGVudENvbnRyb2xsZXIpCi17Ci0gICAgYXV0byBw
YWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsK
LSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0
aW9uKG51bGxwdHIpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29u
ZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7Ci0gICAgYXV0byBwYWdlR3JvdXAgPSBh
ZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiVGVzdFBh
Z2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChw
YWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQotICAgIGF1dG8gcGFn
ZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyID0gcmV0YWluV0soV0tQYWdlR3JvdXBHZXRVc2Vy
Q29udGVudENvbnRyb2xsZXIocGFnZUdyb3VwLmdldCgpKSk7Ci0KLSAgICBFWFBFQ1RfTlVMTChX
S1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0
aW9uLmdldCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlQ29uZmlndXJh
dGlvbi5nZXQoKSk7Ci0gICAgYXV0byBjb3BpZWRQYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0so
V0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICBBU1NF
UlRfRVEocGFnZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VDb25maWd1
cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKGNvcGllZFBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci19Ci0KLVRFU1QoUGFnZUdyb3VwLCBDdXN0b21Vc2VyQ29udGVudENvbnRyb2xsZXIp
Ci17Ci0gICAgYXV0byBwYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJh
dGlvbkNyZWF0ZSgpKTsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0
ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0
Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7Ci0gICAgYXV0
byBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiVGVzdFBhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlv
blNldFBhZ2VHcm91cChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsK
LSAgICBhdXRvIHVzZXJDb250ZW50Q29udHJvbGxlciA9IGFkb3B0V0soV0tVc2VyQ29udGVudENv
bnRyb2xsZXJDcmVhdGUoKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFVzZXJDb250ZW50
Q29udHJvbGxlcihwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgdXNlckNvbnRlbnRDb250cm9sbGVy
LmdldCgpKTsKLQotICAgIGF1dG8gcGFnZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyID0gcmV0
YWluV0soV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUdyb3VwLmdldCgp
KSk7Ci0KLSAgICBFWFBFQ1RfRVEodXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VD
b25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlQ29uZmlndXJhdGlvbi5n
ZXQoKSk7Ci0gICAgYXV0byBjb3BpZWRQYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdl
Q29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICBFWFBFQ1RfRVEo
dXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNv
bnRlbnRDb250cm9sbGVyKGNvcGllZFBhZ2VDb25maWd1cmF0aW9uLmdldCgpKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhY2QzYTBlNzVjZmY4
N2MyMjRhZjk4MWExZDBiM2QyZGM5NTZmZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5tbQpAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5k
YXRpb24uaD4KKworI2lmIFdLX0hBVkVfQ19TUEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tWaWV3UHJp
dmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CisKK1RFU1QoUGFnZUdyb3VwLCBQcmVmZXJlbmNlcykKK3sKKyAgICBhdXRvIHBhZ2VD
b25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOworICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24o
bnVsbHB0cikpOworICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VDb25maWd1
cmF0aW9uLmdldCgpLCBjb250ZXh0LmdldCgpKTsKKyAgICBhdXRvIHBhZ2VHcm91cCA9IGFkb3B0
V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJUZXN0UGFnZUdy
b3VwIikuZ2V0KCkpKTsKKyAgICBhdXRvIHdrVmlldyA9IGFkb3B0TlMoW1tXS1ZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb250ZXh0UmVmOmNvbnRleHQuZ2V0KCkgcGFnZUdy
b3VwUmVmOnBhZ2VHcm91cC5nZXQoKV0pOworICAgIEVYUEVDVF9FUShXS1BhZ2VDb25maWd1cmF0
aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2tW
aWV3LmdldCgpLnBhZ2VSZWYpKS5nZXQoKSksIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJv
YXJkTm90aWZpY2F0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bh
c3RlYm9hcmROb3RpZmljYXRpb25zLm1tCmluZGV4IDM2NWMyZGRiOWI5MmU1YzY2ZTYyNzk2MGE1
YTJiZmE5ZTRkYWE2MWEuLmZmNDJmNDMyODdmZmY5YTNlN2I1Y2FiMjA4OGMxMzdhMGI4NDhlN2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmRO
b3RpZmljYXRpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bh
c3RlYm9hcmROb3RpZmljYXRpb25zLm1tCkBAIC02NywxMiArNjcsOSBAQCBURVNUKFdlYktpdCwg
UGFzdGVib2FyZE5vdGlmaWNhdGlvbnMpCiAKICAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZl
cmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFBy
ZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFn
ZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xp
cGJvYXJkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKIAotICAgIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdl
R3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKLQogICAg
IFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9y
UmVzb3VyY2UoImV4ZWNDb3B5IiwgImh0bWwiKSkuZ2V0KCkpOwogICAgIFV0aWw6OnJ1bigmZmlu
aXNoZWQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
UHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwCmluZGV4IDYzNTI1M2UwYTY2ZWY4MGY2ZWQzOTY1ZTc3ZDA2OWNkYjkyNDg2
NzYuLmUzMTFiZjExZWMwYTU4MDFkZmMyZWVlNDdhNTQ2ODVmODQ4MWRiMTEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0
ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKQEAgLTgw
LDEyICs4MCw5IEBAIFRFU1QoV2ViS2l0LCBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3Rv
cnlDYWxsYmFjaykKIAogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcu
cGFnZSgpLCAmcGFnZUxvYWRlckNsaWVudC5iYXNlKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJl
ZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkp
OworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2
ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsK
IAotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJW
aWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHBy
ZWZlcmVuY2VzLmdldCgpKTsKLQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJwdXNoLXN0YXRlIiwgImh0bWwiKSk7CiAg
ICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRl
ZFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2
ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwCmluZGV4IGEwODgzOGU3N2VmYWY0N2I0ZjFmN2RmNTM5
MzYwOGEyNzMzM2FjNGIuLjZiODY3ZmVmNmJkNWU5ZjRkOTU0YjZmMjkzZjJhZDhjMTk0ZTNjN2Ig
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVy
c2VQYWdpbmF0ZWRXZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAKQEAgLTc1LDggKzc1LDcgQEAg
VEVTVChXZWJLaXQsIFJlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3KQogCiAgICAgV0tQYWdl
TGlzdGVuRm9yTGF5b3V0TWlsZXN0b25lcyh3ZWJWaWV3LnBhZ2UoKSwga1dLRGlkRmlyc3RMYXlv
dXRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyk7CiAKLSAgICBXS1BhZ2VHcm91
cFJlZiBwYWdlR3JvdXAgPSAgV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNl
cyhwYWdlR3JvdXApOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VD
b25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3Vy
YXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN1cHBy
ZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyhwcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBXS1Bh
Z2VTZXRQYWdpbmF0aW9uTW9kZSh3ZWJWaWV3LnBhZ2UoKSwga1dLUGFnaW5hdGlvbk1vZGVSaWdo
dFRvTGVmdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9T
Y3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwCmluZGV4IDg1ZjI1YTY0NmZhYjJiYTQ2ZDc0
MTg2ZTBmZjVmMjc2ZTYyMjZlOTkuLjRiMTM4ZTQ5MGM3NDYzZDVlZTAyOTJjZjFlYWQ2ZDA3Njg2
NGYyNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9s
bFBpbm5pbmdCZWhhdmlvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwCkBAIC03MywxNSArNzMsMTQgQEAgVEVTVChX
ZWJLaXQsIFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlv
bihudWxscHRyKSk7CiAKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgp
KTsKKworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0
aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2Vi
Vmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgLy8gVHVybiBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5n
OyBzeW5jaHJvbm91c2x5IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRp
b24gdG8KICAgICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdvdWxkIGJlIGJl
dHRlciwgYnV0IGZvciBzb21lIHJlYXNvbiBkb2Vzbid0IGJsb2NrIHVudGlsCiAgICAgLy8gaXQn
cyB1cGRhdGVkIGFmdGVyIHRoZSBpbml0aWFsIFdLUGFnZVNldFNjcm9sbFBpbm5pbmdCZWhhdmlv
ciBhYm92ZS4KLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRv
cHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk5vVGhyZWFk
ZWRTY3JvbGxpbmdQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZChwcmVmZXJlbmNlcywg
ZmFsc2UpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFn
ZUdyb3VwLmdldCgpKTsKLQogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGll
bnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwCmluZGV4IGQyMzEzMzFiOTU1MjhlNGQ1MDA2YjM0MzQzZDc1YmVjMDA3MTQ5
NjEuLjc5MWY5NDM3MDJlMTZiZmExMTE2MzQwZmZiOWNjNDNlZmM1MzBmY2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5j
cHAKQEAgLTUzLDE0ICs1MywxMyBAQCBURVNUKFdlYktpdCwgU3BhY2ViYXJTY3JvbGxpbmcpCiB7
CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQ
YWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKwogICAgIC8vIFR1cm4g
b2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFp
biB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCiAgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZv
cmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qg
c3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVm
PiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFi
bGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNs
aWVudFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9m
KGxvYWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Vc2VyTWVkaWEuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
VXNlck1lZGlhLmNwcAppbmRleCA1NzUxOTczYTU4ODc4OWU0ZmU5Zjg2ZTk1NTM1ZWI1NWUyZmQ3
ZTEzLi4wY2JjNTAwYWIyZjM1NGUwZGFiNTE1ODhlNmQwYzVhYmYyMmVhZTZhIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKQEAgLTcxLDIwICs3
MSwxOCBAQCBURVNUKFdlYktpdCwgVXNlck1lZGlhQmFzaWMpCiB7CiAgICAgYXV0byBjb250ZXh0
ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAK
LSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1Bh
Z2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkdldFVzZXJNZWRpYSIpLmdl
dCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFE
ZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZp
bGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVu
Y2VzLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsK
ICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKICAgICB1aUNsaWVu
dC5iYXNlLnZlcnNpb24gPSA2OwogICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RDYWxsQmFjazsKICAgICB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4gPSBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjazsKICAgICAKLSAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRv
cHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAog
ICAgIHdhc1Byb21wdGVkID0gZmFsc2U7CkBAIC0xMDcsMjAgKzEwNSwxOCBAQCBURVNUKFdlYktp
dCwgT25EZXZpY2VDaGFuZ2VDcmFzaCkKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdL
Q29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWlu
UHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRl
V2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiR2V0VXNlck1lZGlhIikuZ2V0KCkpKTsKLSAgICBX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhw
YWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgm
dWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lv
biA9IDY7CiAgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QgPSBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNr
OwogICAgIHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiA9IGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNrOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
ID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBh
Z2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAKICAgICAvLyBMb2FkIGEgcGFn
ZSByZWdpc3RlcmluZyBvbmRldmljZWNoYW5nZSBoYW5kbGVyLgpAQCAtMTY3LDEzICsxNjMsNiBA
QCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlc0NyYXNoKQogewogICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwog
Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQ
YWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJHZXRVc2VyTWVkaWEiKS5n
ZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdl
dFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlh
RGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJl
bmNlcywgZmFsc2UpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7
CiAgICAgLy8gV2Ugd2FudCB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4gdG8gYmUgbnVsbC4KICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQp
KTsKQEAgLTE4NCw3ICsxNzMsMTMgQEAgVEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFz
aCkKICAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMzsKICAgICBsb2FkZXJDbGllbnQu
ZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247CiAKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKwogICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogICAg
IFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xp
ZW50LmJhc2UpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGU1NDEwMGM4Yzc5NDY3MTY1MDkwMmIz
MjNmZWZkMTU4MjFlNDI3YWIuLjA1ZDk1ZTQ5NzQxODA1NTMwOTU5YTI2YzM0OGMxZThjOTdjN2Fh
ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dL
UGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC00MSw3ICs0MSw2IEBAIFRFU1QoV2ViS2l0LCBXS1Bh
Z2VDb25maWd1cmF0aW9uRW1wdHkpCiAKICAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0
aW9uR2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpKSk7CiAgICAgQVNTRVJUX05VTEwoV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihjb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci0gICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cChj
b25maWd1cmF0aW9uLmdldCgpKSk7CiAgICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlv
bkdldFByZWZlcmVuY2VzKGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChX
S1BhZ2VDb25maWd1cmF0aW9uR2V0UmVsYXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSkpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQ
bGF5aW5nQXVkaW8uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdl
SXNQbGF5aW5nQXVkaW8uY3BwCmluZGV4IGMxZWYwOTE1YzI3ZTIxNWM3OGJjODQzMWExY2FjZjRm
NGQyNTg5YzAuLjU2NDlkOTA0NGM4ZTNkYjQ2MGU4OTFmNjdiNTUwNTUwZGE3ZTFkOGUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1
ZGlvLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1Bs
YXlpbmdBdWRpby5jcHAKQEAgLTExNywxMiArMTE3LDEwIEBAIFRFU1QoV2ViS2l0LCBNU0VJc1Bs
YXlpbmdBdWRpbykKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdy
b3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTVNFSXNQbGF5aW5nQXVkaW9QYWdl
R3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1Bh
Z2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNv
cHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0TWVkaWFTb3VyY2VFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKICAgICBzZXRVcENsaWVudHMod2ViVmlldy5wYWdlKCkpOwogCiAgICAgV0tS
ZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoImZpbGUtd2l0aC1tc2UiLCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5n
ZVdpdGhJbWFnZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRy
aWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQppbmRleCBiOTEyM2Y3
OTgzYTg1YzQ0ZmMzODljNTc2ZWNjM2ZiZjUxZTI2NmJlLi5jZTZhODA2OGQzODg4NWQyODA4NjNj
MDY3NjhkMDkxZWRmY2YwMjIzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2Uu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRT
dWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tCkBAIC01OCw4ICs1OCw3IEBAIHN0
YXRpYyB2b2lkIGludmFsaWRNZXNzYWdlRnVuY3Rpb24oV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUp
CiBURVNUKFdlYktpdCwgQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1h
Z2UpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwotICAgIFdLUmV0YWluUHRy
PFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0
aElkZW50aWZpZXIoVXRpbDo6dG9XSygiQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFu
Z2VXaXRoSW1hZ2VQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAg
bG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVy
Q2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9t
YWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tCmluZGV4IDc1NTZmNjEyZDVlM2I5YmE0ZjRj
ZDZmNTI2Yzk1OGMxN2YzZjFmMjYuLjY0ZDY3YWIyZTNjNzVkOWYwOTkzNDY2ZmE3NmJmNmQ2YTUw
NWNhYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9D
b250ZXh0TWVudURvd25sb2FkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tCkBAIC05Miw4ICs5Miw3IEBAIFRFU1QoV2Vi
S2l0LCBDb250ZXh0TWVudURvd25sb2FkSFRNTERvd25sb2FkQXR0cmlidXRlKQogewogICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29u
dGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3Vw
UmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIo
VXRpbDo6dG9XSygiTXlHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMyBs
b2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJD
bGllbnQpKTsKQEAgLTE0Myw4ICsxNDIsNyBAQCBURVNUKFdlYktpdCwgQ29udGV4dE1lbnVEb3du
bG9hZEhUTUxEb3dubG9hZEF0dHJpYnV0ZVdpdGhTbGFzaGVzKQogewogICAgIFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJ
bmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdl
R3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9X
SygiTXlHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMyBsb2FkZXJDbGll
bnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JD
b21tYW5kcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JD
b21tYW5kcy5tbQppbmRleCBmOWMwZDFmYmZjNjE3MjU1MjNiYzVmNjEzODYxNjZkNmQyNzNmYmEw
Li4yYTVhMmJkNmRmODg1YTc1MGM3YmFiYTM5ZTBjNzc3MjlkYzJiYTViIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1t
CkBAIC00NSwxNCArNDUsMTMgQEAgVEVTVChXZWJLaXQsIFNjcm9sbEJ5TGluZUNvbW1hbmRzKQog
ewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAorICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5
UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisKICAgICAvLyBUdXJu
IG9mZiB0aHJlYWRlZCBzY3JvbGxpbmc7IHN5bmNocm9ub3VzbHkgd2FpdGluZyBmb3IgdGhlIG1h
aW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB0bwogICAgIC8vIHVwZGF0ZSB1c2luZyBXS1BhZ2VG
b3JjZVJlcGFpbnQgd291bGQgYmUgYmV0dGVyLCBidXQgZm9yIHNvbWUgcmVhc29uIHRoZSB0ZXN0
IHN0aWxsIGZhaWxzIG9jY2FzaW9uYWxseS4KLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJl
Zj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0
aWw6OnRvV0soIk5vVGhyZWFkZWRTY3JvbGxpbmdQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBh
Z2VHcm91cC5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5h
YmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQorICAgIAogICAgIFdLUGFnZU5hdmln
YXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAs
IHNpemVvZihsb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQppbmRleCA2ODdj
N2NhZTdjOGQ1OWZkMDY3NDRhNTQwOTExYjBlMTJmZDVjNWYxLi5lMTE3MDcxNjFjNzg0YjQ3NDQz
NWQxNzExYjY5YTYxMzNkODkwM2QyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQpAQCAtMTE4LDEx
ICsxMTgsMTAgQEAgVEVTVChGdWxsc2NyZWVuLCBEZWxlZ2F0ZSkKIFRFU1QoRnVsbHNjcmVlbiwg
RElTQUJMRURfV0tWaWV3RGVsZWdhdGUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxs
cHRyKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0
V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJGdWxsc2NyZWVu
RGVsZWdhdGUiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBX
S1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJl
bmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKIAotICAgIFBsYXRm
b3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9w
dFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OwogCiAgICAgUmV0YWluUHRyPEZ1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyPiBoYW5k
bGVyID0gYWRvcHROUyhbW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7CiAgICAgV0tQYWdlU2V0RnVsbHNjcmVlbkRlbGVnYXRlKHdlYlZpZXcucGFnZSgpLCBo
YW5kbGVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KaW5kZXggOTM5
YzU3YjRkOGIyNjc2NjRiY2QyYWI3NjRkNGQ4OGU2OTU5YzI3YS4uNDQ1ZGI3NTY2ZTA2MDdkOTg4
YTU4Yjc4OWI3OTBkYmRlZGMyY2Q1MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUu
bW0KQEAgLTIwMSwxMyArMjAxLDEyIEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgQXVkaW9DYW5u
b3RUb2dnbGVQaWN0dXJlSW5QaWN0dXJlKQogVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1BhZ2VV
SUNsaWVudCkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENy
ZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIlBpY3R1cmVJblBpY3R1cmUiKS5nZXQoKSkp
OwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZl
cmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CisgICAgCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29u
ZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayhwcmVmZXJlbmNlcywgdHJ1ZSk7
Ci0gICAgCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKLSAgICAKKwogICAgIFdLUGFnZVVJQ2xpZW50VjEwIHVpQ2xpZW50OwogICAg
IG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJh
c2UudmVyc2lvbiA9IDEwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQppbmRleCA4ZTc3MDA2OGQzMTJlNDI0M2Ix
MjFhZDUzOTQ5YWFjZTBjMWUwNDNlLi45ODFhZjkyNzY5NDg1MDhlMzQ0ZTUxNmFiN2I3NTZhNzk2
MTRlZWEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dlYnNpdGVQb2xpY2llcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQpAQCAtODAwLDkgKzgwMCw3IEBAIFRFU1QoV2VicGFn
ZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNpZXNBcmJpdHJhcnlVc2VyR2VzdHVyZVF1aXJrKQog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2Vz
ID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQ
YWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VG
b3JUZXN0aW5nXSksIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIFtkZWxlZ2F0ZSBz
ZXRBbGxvd2VkQXV0b3BsYXlRdWlya3NGb3JVUkw6Xl9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKE5T
VVJMICp1cmwpCiAgICAgewpAQCAtODMzLDkgKzgzMSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVu
Y2VzLCBXZWJzaXRlUG9saWNpZXNBdXRvcGxheVF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW0F1dG9wbGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJl
bmNlc0NyZWF0ZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5j
ZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJl
bmNlcy5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5w
cmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3RXaXRoQXVkaW8g
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJhdXRvcGxheS1jaGVjayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogCkBAIC04OTEsOSArODg3LDcg
QEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1BlckRvY3VtZW50QXV0
b3BsYXlCZWhhdmlvclF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9w
bGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmln
YXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZl
cmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMu
Z2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFn
ZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1By
ZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1
ZSk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBXVEY6Om51bGxvcHQ7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xs
aW5nUG9zaXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3Bv
bmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tCmluZGV4IDUzZmNjODk5ZTgwNGQzMjJiYWY5ODcwOTJi
YjNmOTQ3ZWY3NDBiNjcuLjJmNDBhODM0ODYxYzVlY2I3NjZmNWRmMzA1ZmJkMDQ1MTBiOTU4ZDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVy
U2Nyb2xsaW5nUG9zaXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbQpAQCAtNDUsMTggKzQ1LDE3IEBAIFRF
U1QoV2ViS2l0LCBGaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uKQogewogICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4
dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9s
bGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBv
c2l0aW9uIHRvCi0gICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBi
ZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNp
b25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRl
ZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBm
YWxzZSk7Ci0KICAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KQogICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbd2luZG93LmdldCgpIG1ha2VLZXlB
bmRPcmRlckZyb250Om5pbF07CiAgICAgRVhQRUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2li
bGVdKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VH
cm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3
LnBhZ2UoKSkpLmdldCgpKTsKKworICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsg
c3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9u
IHRvCisgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0
ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5
LgorICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7
CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKQEAg
LTgyLDcgKzgxLDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRp
b24pCiAKICAgICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJ3aW5kb3cuc2Nyb2xsWSIs
ICI0MCIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IG5ld1dlYlZpZXcoY29udGV4dC5nZXQoKSwg
cGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhjb250ZXh0
LmdldCgpKTsKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChuZXdXZWJWaWV3LnBh
Z2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKIAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZp
ZXcgYWRkU3VidmlldzpuZXdXZWJWaWV3LnBsYXRmb3JtVmlldygpXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJh
bWUubW0KaW5kZXggNjA1NWQ4ZDIzMTFmY2Y4NmI0Mjk0OTMzMTcwZWQ0MWUxZDFhYWU2Ni4uZmIw
YWE5YTc3MDg5YmNiYjBkZWY1N2EzYmQ2ZmZmODk5NTUyNDIwMSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJh
bWUubW0KQEAgLTEyMCw5ICsxMjAsOCBAQCB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1l
Ojppbml0aWFsaXplVmlldyhXS1ZpZXcgKndrVmlldykKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQod2tWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBpZGVudGlmaWVyID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWVQcmVmZXJlbmNlcyIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQ
cmVmZXJlbmNlc0NyZWF0ZVdpdGhJZGVudGlmaWVyKGlkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICBX
S1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJh
dGlvbih3a1ZpZXcucGFnZVJlZikpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNj
cmVlbkVuYWJsZWQoY3VzdG9tUHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdy
b3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHdrVmlldy5wYWdlUmVmKSwgY3Vz
dG9tUHJlZmVyZW5jZXMuZ2V0KCkpOwogfQogCiB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZy
YW1lOjp0ZWFyZG93blZpZXcoV0tWaWV3ICp3a1ZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggNjM2Njg5MThhZDMyZjcxMmRlODdhZTNl
ZDFiNDAxMWY3YWI3YjllMi4uZTUxZGU3NjkwZDVkYTU1YmNiZWFiNTZlOTkzNjlhY2RhOTZiZjdi
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpA
QCAtNDgsMTMgKzQ4LDEyIEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKICAgICBpbml0aWFsaXplKGNvbmZpZ3Vy
YXRpb24sIFtXS1ZpZXcgY2xhc3NdKTsKIH0KIAotUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdl
YlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJl
ZikKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0
UmVmKQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7Ci0gICAgCisKICAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBjb250
ZXh0UmVmKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRp
b24uZ2V0KCksIHBhZ2VHcm91cFJlZik7Ci0gICAgCisKICAgICBpbml0aWFsaXplKGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIFtXS1ZpZXcgY2xhc3NdKTsKIH0KIApAQCAtNjMsMjIgKzYyLDExIEBAIFBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKICAg
ICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRv
cHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIAogICAgIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQo
cmVsYXRlZFBhZ2UpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZp
Z3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdL
UGFnZUNvbmZpZ3VyYXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxh
dGVkUGFnZSk7CiAKICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCksIFtXS1ZpZXcg
Y2xhc3NdKTsKIH0KIAotUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgQ2xhc3Mgd2tWaWV3
U3ViY2xhc3MpCi17Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gY29u
ZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKLSAgICAK
LSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBj
b250ZXh0UmVmKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIHBhZ2VHcm91cFJlZik7Ci0gICAgCi0gICAgaW5pdGlhbGl6ZShjb25maWd1
cmF0aW9uLmdldCgpLCB3a1ZpZXdTdWJjbGFzcyk7Ci19Ci0KIFBsYXRmb3JtV2ViVmlldzo6flBs
YXRmb3JtV2ViVmlldygpCiB7CiAgICAgW21fd2luZG93IGNsb3NlXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZTA2NjcwMGYzY2U2YWFkYTlhYjIxYTM2
NGIwYTJiYmNlNDI4YWU0OC4uZWU4MGI3Y2U2MjFhNmMzODdlNjQ4MzkzOTIwNmJiNGQ4OTQ0MGU1
MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTU0OSw4
ICs1NDksNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25z
dCBjaGFyKiBhcmd2W10pCiAgICAgV2ViQ29yZVRlc3RTdXBwb3J0OjppbnN0YWxsTW9ja0dhbWVw
YWRQcm92aWRlcigpOwogI2VuZGlmCiAKLSAgICBtX3BhZ2VHcm91cC5hZG9wdChXS1BhZ2VHcm91
cENyZWF0ZVdpdGhJZGVudGlmaWVyKHRvV0soIldlYktpdFRlc3RSdW5uZXJQYWdlR3JvdXAiKS5n
ZXQoKSkpOwotCiAgICAgbV9ldmVudFNlbmRlclByb3h5ID0gbWFrZVVuaXF1ZTxFdmVudFNlbmRl
clByb3h5Pih0aGlzKTsKIH0KIApAQCAtNjc5LDcgKzY3Nyw2IEBAIFdLUmV0YWluUHRyPFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWY+IFRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBhZ2VDb25maWd1cmF0
aW9uKGNvCiAKICAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25m
aWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBh
Z2VDb25maWd1cmF0aW9uLmdldCgpLCBtX2NvbnRleHQuZ2V0KCkpOwotICAgIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRQYWdlR3JvdXAocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIG1fcGFnZUdyb3Vw
LmdldCgpKTsKICAgICAKICAgICBpZiAob3B0aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uKCkpIHsK
ICAgICAgICAgYXV0byBlcGhlbWVyYWxEYXRhU3RvcmUgPSBhZG9wdFdLKFdLV2Vic2l0ZURhdGFT
dG9yZUNyZWF0ZU5vblBlcnNpc3RlbnREYXRhU3RvcmUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKaW5kZXggYmRlNmIwZWQ3NzVkY2YyMzlkOGViMWQyY2I2ZjFiNzY3
MmE2YTlhOS4uNzhkOTI4NGQ3NWE3NTYxM2IyODQyYjI5YTNmMmZhOTA0MTVhOTZjMCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNTU1LDcgKzU1NSw2IEBAIHBy
aXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XZWJWaWV3PiBtX21haW5XZWJW
aWV3OwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250ZXh0OwotICAgIFdLUmV0
YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBtX3BhZ2VHcm91cDsKICAgICBXS1JldGFpblB0cjxXS1Vz
ZXJDb250ZW50Q29udHJvbGxlclJlZj4gbV91c2VyQ29udGVudENvbnRyb2xsZXI7CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9n
dGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVz
dENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDExNGM3YTgxMmQ3NmFiZDlhOGE4ZWQ1MTY4NDcxYzBi
NWZkNzExMjQuLmFiMGIyNDc0MDBmM2QxZjM4MjU2M2UwN2M1YTE2OGY3NzE2OTdhODMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkK
IAogV0tQcmVmZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygp
CiB7Ci0gICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0
KCkpOworICAgIHJldHVybiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24obV9tYWluV2ViVmlldy0+cGFnZSgpKSkuZ2V0
KCkpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IGNh
ZTEwNzU3YTg3NzUyYjBkNmU4ZWFmZTZiMzE1ZDZjNTQ2ZWE3NGMuLmE3MzM2N2Q1Y2IwMTE1OGM3
MWRiZGM4ZDU0YjZjYThiZDI3ZWYwMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogCiBXS1ByZWZlcmVuY2VzUmVmIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVByZWZlcmVuY2VzKCkKIHsKLSAgICByZXR1cm4gV0tQYWdlR3Jv
dXBHZXRQcmVmZXJlbmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7CisgICAgcmV0dXJuIFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJh
dGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCkpKS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKaW5kZXggZjQ3YjBkZjk4NmQxNTYzN2Y0MzAwYzhiMDcx
NjNhOWU5NjMyYTQyNS4uNTAxMTBjZDQ4NTM1NzJmNTc5YzE0MGNmMzhjOGM0N2Q4YTgwZjQ0MSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RD
b250cm9sbGVyLmgiCiAKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbmNsdWRlIDxn
bGliLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5p
cXVlUHRyLmg+CkBAIC00Nyw3ICs0OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
SW5pdGlhbGl6ZSgpCiAKIFdLUHJlZmVyZW5jZXNSZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
UHJlZmVyZW5jZXMoKQogewotICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKG1f
cGFnZUdyb3VwLmdldCgpKTsKKyAgICByZXR1cm4gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZl
cmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKG1fbWFpbldlYlZpZXct
PnBhZ2UoKSkpLmdldCgpKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0
cm95KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428518</attachid>
            <date>2021-05-13 08:59:24 -0700</date>
            <delta_ts>2021-05-13 10:29:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20210513085923.patch</filename>
            <type>text/plain</type>
            <size>89074</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmMjFlZGNhOWNhOWY1NjFk
ZTYwMGY5N2Y0MjY5ZTcwNDcyZWU2ZTMuLmU3MmEwMmYzNDkyNGE0N2U3NjEzZDdmYTQzYzNlMTU5
MGQ2NjQzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMTIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwcm9qZWN0cyBzdGlsbCB1
c2luZyBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyIGFuZCBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzLgorICAgICAgICBUaGVyZSBpcyBvbmUgcHJvamVjdCBzdGlsbCB1c2luZyBXS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLgorICAgICAgICBJIGxlZnQgdGhlc2UgZGVwcmVjYXRlZCBidXQg
c3RpbGwgZnVuY3Rpb25hbCBhbmQgbm90ZWQgcmFkYXJzIGZvciB3aGVuIHRoZXkgY2FuIGFsc28g
YmUgcmVtb3ZlZC4KKworICAgICAgICBUaGUgcmVzdCBvZiB0aGUgQVBJIGlzIHJlbW92ZWQuICBT
b21lIG9mIGl0IHdhcyBtb3ZlZCB0byBhbiBpbnRlcm5hbC1vbmx5IGhlYWRlciB0byBsZWF2ZSBX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwIHVudG91Y2hlZC4KKyAgICAgICAgTG90cyBvZiB0ZXN0cyBh
cmUgdXBkYXRlZCB0byBzZXQgcHJlZmVyZW5jZXMgbGlrZSB0aGUgbW9kZXJuIEFQSSBkb2VzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VH
ZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHA6
CisgICAgICAgIChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0
VHlwZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250
cm9sbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3BhZ2VHcm91cF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF9zZXRQYWdlR3JvdXA6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1LTEyICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2lsZW5jZSB1bmlu
dGVyZXN0aW5nIHNhbmRib3ggcmVwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggOTliNjU1ZmE0YjU4ZDg0OWQ5ZjczZjE4ODRhZDFkZmZlMzhkYjU3NS4u
MWQ4YTI3YmI0NWRiZmI2YWVlZTA2NDM0NzRhNGJiZDcxNzA1YWJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNjIsMTEgKzE2Miw2IEBAIFdLQ29udGV4
dFJlZiBXS1BhZ2VHZXRDb250ZXh0KFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0FQ
SSgmdG9JbXBsKHBhZ2VSZWYpLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSk7CiB9CiAKLVdLUGFn
ZUdyb3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91cChXS1BhZ2VSZWYgcGFnZVJlZikKLXsKLSAgICBy
ZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+cGFnZUdyb3VwKCkpOwotfQotCiBXS1BhZ2VD
b25maWd1cmF0aW9uUmVmIFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihXS1BhZ2VSZWYgcGFn
ZVJlZikKIHsKICAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+Y29uZmlndXJhdGlv
bigpLmNvcHkoKS5sZWFrUmVmKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aAppbmRleCBjNTFiODE2MmM4OTczNGFiMTUyYmVmMGU5OTIzMzdkNTVmMmRlOGE2Li4yNGU4Nzhm
MzEwYmFjYWIyOWI3ZTA5MWU1NWY2YjMxMjI4NTFhZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaApAQCAtNTgsNyArNTgsNiBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS1BhZ2VHZXRUeXBlSUQodm9pZCk7CiAKIFdLX0VYUE9SVCBXS0NvbnRleHRS
ZWYgV0tQYWdlR2V0Q29udGV4dChXS1BhZ2VSZWYgcGFnZSk7Ci1XS19FWFBPUlQgV0tQYWdlR3Jv
dXBSZWYgV0tQYWdlR2V0UGFnZUdyb3VwKFdLUGFnZVJlZiBwYWdlKTsKIAogV0tfRVhQT1JUIFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKFdLUGFnZVJl
ZiBwYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlQ29uZmlndXJhdGlvblJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcAppbmRleCA3OWJlZDFmZDFlY2U4ODgzYmJiNDg0NTk0
YjY3OTFjNjg1NWIwMWNiLi5iNTA2MjdlMjFmM2UzNGUwOGRkNTNhZmQzNjkzZmVmMzhiM2UwOTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1
cmF0aW9uUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VD
b25maWd1cmF0aW9uUmVmLmNwcApAQCAtNTUsMTYgKzU1LDYgQEAgdm9pZCBXS1BhZ2VDb25maWd1
cmF0aW9uU2V0Q29udGV4dChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdL
Q29udGUKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFByb2Nlc3NQb29sKHRvSW1wbChj
b250ZXh0KSk7CiB9CiAKLVdLUGFnZUdyb3VwUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdl
R3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQotewotICAgIHJldHVy
biB0b0FQSSh0b0ltcGwoY29uZmlndXJhdGlvbiktPnBhZ2VHcm91cCgpKTsKLX0KLQotdm9pZCBX
S1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKQotewotICAgIHRvSW1wbChjb25m
aWd1cmF0aW9uKS0+c2V0UGFnZUdyb3VwKHRvSW1wbChwYWdlR3JvdXApKTsKLX0KLQogV0tVc2Vy
Q29udGVudENvbnRyb2xsZXJSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29u
dHJvbGxlcihXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgcmV0
dXJuIHRvQVBJKHRvSW1wbChjb25maWd1cmF0aW9uKS0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oCmluZGV4IDI3N2MwNjYxZjI2MzJhZDg5NTkyNmZmOWJhZDRiMGE3YzU2NDFl
MTEuLjcwMjAzNjhhN2QxMmMzNjNhNmQyNmNkMWM3YWYxYTUzNTQzZGFiOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVm
LmgKQEAgLTM5LDkgKzM5LDYgQEAgV0tfRVhQT1JUIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkNyZWF0ZSh2b2lkKTsKIFdLX0VYUE9SVCBXS0NvbnRleHRSZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkdldENvbnRleHQoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1
cmF0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogCi1XS19FWFBPUlQgV0tQYWdlR3JvdXBSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VH
cm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KIFdLX0VYUE9SVCBX
S1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRl
bnRDb250cm9sbGVyKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgdXNlckNvbnRlbnRDb250cm9sbGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwCmluZGV4IDY1MTRlZTg2ZGUzYTg0MTQ0ODM3ZGY2MmZj
MTAxM2QyM2NhYTM1YTkuLjk4MGYzZmMwZWVjYTY4YjdkNjcyNDU0YzVlMDYxNWNlZmI2OWNlM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKQEAg
LTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQ
YWdlR3JvdXAuaCIKKyNpbmNsdWRlICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAKICNpbmNsdWRl
ICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdC5oIgpAQCAtNDAsMTEg
KzQwLDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotV0tUeXBlSUQgV0tQYWdlR3Jv
dXBHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b0FQSShXZWJQYWdlR3JvdXA6OkFQSVR5cGUp
OwotfQotCiBXS1BhZ2VHcm91cFJlZiBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdL
U3RyaW5nUmVmIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBwYWdlR3JvdXAgPSBXZWJQYWdlR3Jv
dXA6OmNyZWF0ZSh0b1dURlN0cmluZyhpZGVudGlmaWVyKSk7CkBAIC02MSwxMSArNTYsNiBAQCBX
S1ByZWZlcmVuY2VzUmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwUmVmKQogICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VHcm91cFJlZiktPnBy
ZWZlcmVuY2VzKCkpOwogfQogCi1XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VHcm91
cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi17
Ci0gICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZUdyb3VwUmVmKS0+dXNlckNvbnRlbnRDb250
cm9sbGVyKCkpOwotfQotCiB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdl
R3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2VSZWYsIFdLVVJMUmVmIGJh
c2VVUkxSZWYsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2Nr
ZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVz
KQogewogICAgIGF1dG8gc291cmNlID0gdG9XVEZTdHJpbmcoc291cmNlUmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCmluZGV4IDYzYTEzZjdkNzUyMThi
ZjdlMmViZDAzZWZhMDQ1YjU2OWYzODEwZTIuLjA1NjNlZDc1ZTJkOWM0NjU2MGQ0YWMzNzNmOGYy
MmI5MjkwNTYzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3Jv
dXAuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXS1BhZ2VHcm91cF9oCiAKICNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaD4KICNpbmNsdWRlIDxX
ZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCkBAIC0zNCwyMCArMzUsMTAgQEAK
IGV4dGVybiAiQyIgewogI2VuZGlmCiAKLVdLX0VYUE9SVCBXS1R5cGVJRCBXS1BhZ2VHcm91cEdl
dFR5cGVJRCh2b2lkKTsKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBmaWxlIG9uY2UgcmRhcjovLzc3
OTM5NTk3IGFuZCByZGFyOi8vNzc5Mzk4ODMgYXJlIHJlc29sdmVkLgogCi1XS19FWFBPUlQgV0tQ
YWdlR3JvdXBSZWYgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ1JlZiBp
ZGVudGlmaWVyKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwot
V0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXApOwotCi1XS19FWFBPUlQgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVl
dChXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYg
YmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tl
ZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoV0tQYWdlR3JvdXBSZWYgcGFn
ZUdyb3VwKTsKLSAgICAKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclNjcmlwdChX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYgYmFz
ZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tlZFVS
TFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMsIF9XS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNlclNjcmlw
dHMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKK1dLX0VYUE9SVCBXS1BhZ2VHcm91cFJlZiBX
S1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nUmVmIGlkZW50aWZpZXIpIFdL
X0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VDb25maWd1cmF0aW9uR2V0
UHJlZmVyZW5jZXMpOworV0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApIFdLX0NfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMpOwogCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmEwOTYyYjg2NDBjZjM1YWEw
NzE3YjcxZmIxNzRkMzI4ZGQ2MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tQYWdlR3JvdXAuaD4KKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZp
bGUgb25jZSByZGFyOi8vNzQxNDI5OTUgaXMgcmVzb2x2ZWQuCisKK3ZvaWQgV0tQYWdlR3JvdXBT
ZXRQcmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiwgV0tQcmVmZXJlbmNlc1JlZik7Cit2b2lkIFdL
UGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNv
dXJjZSwgV0tVUkxSZWYgYmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdL
QXJyYXlSZWYgYmxvY2tlZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMp
Owordm9pZCBXS1BhZ2VHcm91cFJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhXS1BhZ2VHcm91cFJl
Zik7Cit2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclNjcmlwdChXS1BhZ2VHcm91cFJlZiwgV0tTdHJp
bmdSZWYgc291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0
ZXJucywgV0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcywgX1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUpOwordm9pZCBXS1BhZ2VHcm91cFJl
bW92ZUFsbFVzZXJTY3JpcHRzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91
cC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
R3JvdXAuaAppbmRleCA2NjkyMzBmNWNiNmEwMzUyYzkwMjVmOTFkZTY2OGUzNjBhODU5M2I2Li5h
NmNkYzQxYTQxMmY3ZGJkZGIzZmU4NDMzYTQxZDdiMGVjMzIwNDJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmgKQEAgLTI4LDYgKzI4LDggQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaD4KIAorLy8gRklY
TUU6IFJlbW92ZSB0aGlzIGZpbGUgb25jZSByZGFyOi8vNzQxNDI5OTUgaXMgcmVzb2x2ZWQuCisK
IFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVc2VyQ29udGVudENvbnRy
b2xsZXIgYW5kIFdLUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIDogTlNPYmplY3QKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0R3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5tbQppbmRleCA4ZjQxYjEyMjc0MDRkZTI2ODM5MmYyNDk4NWIwZTI1
NWUzMzFlZGIwLi43OTRjZjFmYWYzOGQyNjE1OGVmMmY4OTlkYjdlYmYwNTY0YTg5Mjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRHcm91cC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiQVBJU3RyaW5n
LmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLQXJyYXkuaCIKLSNpbXBvcnQg
IldLUGFnZUdyb3VwLmgiCisjaW1wb3J0ICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAjaW1wb3J0
ICJXS1ByZWZlcmVuY2VzUmVmLmgiCiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgogI2ltcG9ydCAi
V0tTaGFyZWRBUElDYXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCAwZWI1YjMyMjlmM2FlZmQxN2JmNmI1MjJjNTQ0MjZkYmRlMTI5
ZTZiLi5lZTIwZGU3YThlMzFkMmRkNTQ1NDk1NGIyMDA2ZDA4YmVkNWZlM2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1NywxNiAr
NDU3LDkgQEAgc3RhdGljIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRD
YWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0V2Vic2l0ZURhdGFTdG9yZShbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0tPl93
ZWJzaXRlRGF0YVN0b3JlLmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0RGVmYXVs
dFdlYnNpdGVQb2xpY2llcyhbX2NvbmZpZ3VyYXRpb24gZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNl
c10tPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlm
IChhdXRvIHBhZ2VHcm91cCA9IFdlYktpdDo6dG9JbXBsKFtfY29uZmlndXJhdGlvbiBfcGFnZUdy
b3VwXSkpCi0gICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAocGFnZUdyb3Vw
KTsKLSAgICBlbHNlCi0jZW5kaWYKLSAgICB7Ci0gICAgICAgIE5TU3RyaW5nICpncm91cElkZW50
aWZpZXIgPSBbX2NvbmZpZ3VyYXRpb24gX2dyb3VwSWRlbnRpZmllcl07Ci0gICAgICAgIGlmIChn
cm91cElkZW50aWZpZXIubGVuZ3RoKQotICAgICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNl
dFBhZ2VHcm91cChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6Y3JlYXRlKGdyb3VwSWRlbnRpZmllciku
cHRyKCkpOwotICAgIH0KKyAgICBOU1N0cmluZyAqZ3JvdXBJZGVudGlmaWVyID0gW19jb25maWd1
cmF0aW9uIF9ncm91cElkZW50aWZpZXJdOworICAgIGlmIChncm91cElkZW50aWZpZXIubGVuZ3Ro
KQorICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKFdlYktpdDo6V2ViUGFn
ZUdyb3VwOjpjcmVhdGUoZ3JvdXBJZGVudGlmaWVyKS5wdHIoKSk7CiAKICAgICBwYWdlQ29uZmln
dXJhdGlvbi0+c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMobWFrZVZlY3RvcjxTdHJp
bmc+KFtfY29uZmlndXJhdGlvbiBfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNdKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggY2U1YjdiZDViMDFhYmM4MjEwOTVkMDU1OTVhYWU5
NjliNjhjZjVmZS4uNGUxODk0MmJhYWJlZjY5NTQ2NTg3YTI2M2JiMDFlOTMwYzRhNzhmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTE1NSw3ICsxNTUsNiBAQCBzdGF0aWMgYm9vbCBkZWZh
dWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogICAg
IEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ7CiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IF9wYWdlR3JvdXA7CiAg
ICAgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlwczsKICAgICBCT09MIF9zZXJ2aWNlQ29udHJvbHNF
bmFibGVkOwogICAgIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXI7CkBAIC00MjksNyArNDI4LDYgQEAgc3RhdGljIGJvb2wgZGVmYXVsdFNob3VsZERlY2lk
ZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCkKICAgICBjb25maWd1cmF0aW9u
LT5fc2hvd3NVUkxzSW5Ub29sVGlwcyA9IHNlbGYtPl9zaG93c1VSTHNJblRvb2xUaXBzOwogICAg
IGNvbmZpZ3VyYXRpb24tPl9zZXJ2aWNlQ29udHJvbHNFbmFibGVkID0gc2VsZi0+X3NlcnZpY2VD
b250cm9sc0VuYWJsZWQ7CiAgICAgY29uZmlndXJhdGlvbi0+X3JlcXVpcmVzVXNlckFjdGlvbkZv
ckVkaXRpbmdDb250cm9sc01hbmFnZXIgPSBzZWxmLT5fcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlcjsKLSAgICBjb25maWd1cmF0aW9uLT5fcGFnZUdyb3VwID0gc2Vs
Zi5fcGFnZUdyb3VwOwogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIGNvbmZpZ3VyYXRpb24tPl9kYXRhRGV0ZWN0b3JUeXBlcyA9
IHNlbGYtPl9kYXRhRGV0ZWN0b3JUeXBlczsKQEAgLTExMzksMTYgKzExMzcsNiBAQCBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlciA9IHJlcXVpcmVzVXNlckFjdGlvbjsKIH0KIAotLSAoV0tQYWdl
R3JvdXBSZWYpX3BhZ2VHcm91cAotewotICAgIHJldHVybiBfcGFnZUdyb3VwLmdldCgpOwotfQot
Ci0tICh2b2lkKV9zZXRQYWdlR3JvdXA6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cAotewotICAg
IF9wYWdlR3JvdXAgPSBwYWdlR3JvdXA7Ci19Ci0KIC0gKHZvaWQpX3NldENQVUxpbWl0Oihkb3Vi
bGUpY3B1TGltaXQKIHsKICAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldENQVUxpbWl0KGNwdUxp
bWl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKaW5kZXggMjQyNWVjNmZmY2Fj
MGJjNTZkNjRiOGQzNzk1Mjk0MzFmNTlhMDM3OC4uMjQzOGFjZGRmZTYxN2MyNzAxYzdmYjgyNDdi
Mzg2YTBiYjM3YWZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTEw
MSw3ICsxMDEsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxh
eSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJs
ZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiSW1hZ2Ug
Y29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMiwgV0tfTUFDX1RC
QSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRSZXF1aXJl
c1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9PTCBfcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldENQVUxp
bWl0OikgZG91YmxlIF9jcHVMaW1pdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UGFnZUdyb3VwOikg
V0tQYWdlR3JvdXBSZWYgX3BhZ2VHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFdl
YnNpdGVEYXRhU3RvcmU6KSBfV0tXZWJzaXRlRGF0YVN0b3JlICpfd2Vic2l0ZURhdGFTdG9yZSBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJzaXRlRGF0YVN0b3JlIiwgbWFj
b3MoMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNjgwMWZjNTEyMTcwY2JmOTlhNjI0
OTcxMjcwMWU0YTFmMDliMjA4Li44YmU1MTgzMjExYTllNGRlOWY4ZGNiMzU1MzdiYWIzNTAxNTEy
YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEyNzYsNiArMTI3Niw3IEBACiAJCTVDOUE5MTEyMjI4RjY5Q0MwMDVDNUIxNyAvKiBY
UENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsg
fTsKIAkJNUM5QTkxMTMyMjhGNjlDRDAwNUM1QjE3IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VD
NDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OwogCQk1QzlBOTExNDIyOEY2OUNF
MDA1QzVCMTcgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2Vydmlj
ZU1haW4ubW0gKi87IH07CisJCTVDOUREMzI2MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91
cEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzlERDMyNTI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oICovOyB9
OwogCQk1QzlFNTY4MzFERjdGMUIzMDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1NjgxMURGN0Yw
NTUwMEM5RUUzMyAvKiBXS1dlYnNpdGVQb2xpY2llcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDQTI2RDgxMjE3QUJENUIwMEY5N0EzNSAvKiBX
S1NhZmVCcm93c2luZ1dhcm5pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDQTI2RDgwMjE3QUJCQjYwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dh
cm5pbmcuaCAqLzsgfTsKIAkJNUNBMjZEODMyMTdBRDFCODAwRjk3QTM1IC8qIFdLU2FmZUJyb3dz
aW5nV2FybmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDQTI2RDdGMjE3QUJCQjYwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcubW0g
Ki87IH07CkBAIC00NDk3LDYgKzQ0OTgsNyBAQAogCQk1QzhERDM4MTFGRTQ1NUNBMDBGMkE1NTYg
LyogV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM5QzVDMDIyNDMwNTM1ODAwQkI2NzQwIC8qIFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckNvbnRlbnRDb250cm9s
bGVyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlDNUMwMzI0
MzA1MzU4MDBCQjY3NDAgLyogVXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQ29udGVudENvbnRyb2xsZXJQ
YXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5REQzMjUyNjRD
N0Y3NDAwRTA3NDQyIC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tQYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzlFNTY4MDFERjdGMDU1MDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tXZWJzaXRlUG9saWNp
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlFNTY4MTFERjdGMDU1MDBD
OUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tXZWJzaXRlUG9saWNpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM5RUYyRTcyMUYwNThGOTAwM0JEQzU2IC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvblByb3ZpZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDMxMSw2ICsxMDMx
Myw3IEBACiAJCQkJMUFCOEExRUYxODQwMEIwMDAwRTlBRTY5IC8qIFdLUGFnZUZvcm1DbGllbnQu
aCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwICov
LAogCQkJCUJDN0I2MzM1MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5oICovLAorCQkJ
CTVDOUREMzI1MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91cEludGVybmFsLmggKi8sCiAJ
CQkJMkQ5RUEzMEMxQTk2Q0I1OTAwMkQyODA3IC8qIFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50
LmggKi8sCiAJCQkJMUFCOEExRUIxODQwMDgwOTAwRTlBRTY5IC8qIFdLUGFnZUxvYWRlckNsaWVu
dC5oICovLAogCQkJCTJENzMwMzc4MUE3QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50LmggKi8sCkBAIC0xMjg2MSw2ICsxMjg2NCw3IEBACiAJCQkJMUFCOEExRjYxODQwMEI5
RDAwRTlBRTY5IC8qIFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUI4QTFGMDE4NDAwQjAwMDBFOUFFNjkgLyogV0tQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM3QjYzMzcxMkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1QzlERDMyNjI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5RUEzMEQxQTk2Q0I1OTAwMkQyODA3IC8q
IFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI4QTFF
QzE4NDAwODA5MDBFOUFFNjkgLyogV0tQYWdlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzJEMDIxOTEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBmY2VhMWFjMGE5OGQ0YmE0Mzg0NjYwMmZjMDViNTFhNjQzYzE4MGQ1Li5kY2E0YTYyYTQ2
YjVkMWI3ODkxYjdmZDJjMjNkM2NhMDRjMzVhZmU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDUtMTIgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgYXMgbXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL0N1
c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGlu
Q3JlYXRlUGFnZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVt
ZXJhdGVNZWRpYURldmljZXMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hT
dGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1
bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5v
dGlmaWNhdGlvbnMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2Vi
Vmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFn
ZUlzUGxheWluZ0F1ZGlvLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5n
Rm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVu
dURvd25sb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1
cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVz
Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5a
b29tSW5pdGlhbEZyYW1lLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6RnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWU6OmluaXRpYWxpemVWaWV3KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQ
bGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpnZW5l
cmF0ZVBhZ2VDb25maWd1cmF0aW9uKToKKwogMjAyMS0wNS0xMiAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb3Rpb25NYXJrXSBVcGRhdGUgcGxh
biBmaWxlIGFmdGVyIHIyNzc0MDYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9X
ZWJLaXRCcm93c2VyV2luZG93LmNwcCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93
c2VyV2luZG93LmNwcAppbmRleCA5MjQ1ZGZjN2Y4MWYzYTgwNDgwYTBkZGRjZTdmZmNjN2UwOWVk
NDA2Li43NjM0Yzg0MGQ2MTMxYjEwOWUwNmVjNzE4YjcwOWFiZjA1NTQyNmYwIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKKysrIGIvVG9v
bHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwCkBAIC0xMTEsMTcgKzEx
MSwxMiBAQCBSZWY8QnJvd3NlcldpbmRvdz4gV2ViS2l0QnJvd3NlcldpbmRvdzo6Y3JlYXRlKEJy
b3dzZXJXaW5kb3dDbGllbnQmIGNsaWVudCwgSFdORAogewogICAgIGF1dG8gY29uZiA9IGFkb3B0
V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKIAotICAgIGF1dG8gcHJlZnMgPSBhZG9w
dFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7CisgICAgYXV0byBwcmVmcyA9IFdLUGFnZUNvbmZp
Z3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25mLmdldCgpKTsKIAotICAgIGF1dG8gcGFnZUdyb3Vw
ID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKGNyZWF0ZVdLU3RyaW5n
KCJXaW5NaW5pQnJvd3NlciIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBh
Z2VHcm91cChjb25mLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUGFnZUdyb3VwU2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpLCBwcmVmcy5nZXQoKSk7CisgICAgV0tQcmVmZXJl
bmNlc1NldE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZChwcmVmcywgZmFsc2UpOworICAgIFdLUHJl
ZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZzLCB0cnVlKTsKIAotICAgIFdL
UHJlZmVyZW5jZXNTZXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJlZnMuZ2V0KCksIGZhbHNl
KTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmcy5nZXQo
KSwgdHJ1ZSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFByZWZlcmVuY2VzKGNvbmYuZ2V0
KCksIHByZWZzLmdldCgpKTsKLQotICAgIGF1dG8gY29udGV4dCA9YWRvcHRXSyhXS0NvbnRleHRD
cmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRv
cHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAgICAgV0tQ
YWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZi5nZXQoKSwgY29udGV4dC5nZXQoKSk7CiAK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRCcm93c2VyV2luZG93KGNsaWVudCwgY29u
Zi5nZXQoKSwgbWFpblduZCkpOwpAQCAtMjIzLDggKzIxOCw4IEBAIHZvaWQgV2ViS2l0QnJvd3Nl
cldpbmRvdzo6bmF2aWdhdGVUb0hpc3RvcnkoVUlOVCBtZW51SUQpCiB2b2lkIFdlYktpdEJyb3dz
ZXJXaW5kb3c6OnNldFByZWZlcmVuY2UoVUlOVCBtZW51SUQsIGJvb2wgZW5hYmxlKQogewogICAg
IGF1dG8gcGFnZSA9IFdLVmlld0dldFBhZ2UobV92aWV3LmdldCgpKTsKLSAgICBhdXRvIHBncm91
cCA9IFdLUGFnZUdldFBhZ2VHcm91cChwYWdlKTsKLSAgICBhdXRvIHByZWYgPSBXS1BhZ2VHcm91
cEdldFByZWZlcmVuY2VzKHBncm91cCk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24ocGFnZSkpOworICAgIGF1dG8gcHJlZiA9IFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25maWd1cmF0aW9uLmdldCgpKTsKICAg
ICBzd2l0Y2ggKG1lbnVJRCkgewogICAgIGNhc2UgSURNX0FDQ19DT01QT1NJVElORzoKICAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHByZWYsIGVu
YWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5o
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA1ZTg1MDI2ODlm
MTNlOGVkMTE5ZTMxYTc2ZjViY2VjNjA5OGFjZTc1Li5hZjU5YWJlZDY5ZDA4ODk5MjAwODc0YzM1
YzQ3NjNkYmU0Yjc4NTY2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
V2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAg
LTczLDExICs3Myw4IEBAIGNsYXNzIFBsYXRmb3JtV2ViVmlldyB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUGxhdGZvcm1XZWJWaWV3KTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQbGF0Zm9y
bVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1X
ZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgPSAwKTsKKyAgICBleHBsaWNpdCBQ
bGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmKTsKICAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZp
ZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgZXhwbGlj
aXQgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIENsYXNzIHdr
Vmlld1N1YmNsYXNzKTsKLSNlbmRpZgogICAgIH5QbGF0Zm9ybVdlYlZpZXcoKTsKIAogICAgIFdL
UGFnZVJlZiBwYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyMGVmNzQ0
YmZhZDcwZDhjNzM4ZGMwZDhhODFmMjg3Y2MxOTBlOWEuLjcyMDZjOWFhOWI0NzczNjc1N2JkMmMw
MTYxMDkzMGI4ZWRmMGU4OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NzcsNyArNjc3
LDcgQEAKIAkJN0M5RUQ5OEIxN0ExOUY0QjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdTdHJp
a2V0aHJvdWdoLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M5RUQ5OEExN0ExOUQwNjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdT
dHJpa2V0aHJvdWdoLmh0bWwgKi87IH07CiAJCTdDQjE4NEM2MUFBM0YyMTAwMDY2RURGRCAvKiBD
b250ZW50RXh0ZW5zaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0IxODRDNDFBQTNGMjEwMDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lvbnMu
Y3BwICovOyB9OwogCQk3Q0JENUEyMzIyREU0MkE2MDA0QTlFMzIgLyogV1RGU3RyaW5nVXRpbGl0
aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
QkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovOyB9Owot
CQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQ0I0REE3MUM4M0FFNzMwMENDNjkx
OCAvKiBQYWdlR3JvdXAuY3BwICovOyB9OworCQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyog
UGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLzsgfTsKIAkJN0ND
Qjk5MjExRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25B
Y3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlv
bkFjdGlvbi5tbSAqLzsgfTsKIAkJN0NDQjk5MjMxRDNCNEE0NjAwMzkyMkY2IC8qIG9wZW4tbXVs
dGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQjk5MjIxRDNCNDRFNzAwMzkyMkY2IC8qIG9wZW4tbXVs
dGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgKi87IH07CiAJCTdDQ0U3RUE1MUE0MTFBMDgwMDQ0N0M0
QyAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMwODEyMjQwMTNGQzE3MjQwMERDMzlBRSAvKiBKYXZhU2NyaXB0VGVz
dE1hYy5tbSAqLzsgfTsKQEAgLTI0NzQsNyArMjQ3NCw3IEBACiAJCTdDQkJBMDc2MTlCQjhBOTEw
MEJCRjAyNSAvKiBPU09iamVjdFB0ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBPU09iamVjdFB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
QkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV1RGU3RyaW5nVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NDM0UxRkExOTdFMjM0MTAwQkU2MjUyIC8qIFVzZXJDb250ZW50Q29udHJvbGxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJDb250ZW50
Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NDQjREQTcxQzgz
QUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYWdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZUdyb3VwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlv
bkluTmF2aWdhdGlvbkFjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0I5OTIyMUQzQjQ0RTcwMDM5MjJGNiAvKiBvcGVuLW11
bHRpcGxlLWV4dGVybmFsLXVybC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm9w
ZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Q0NFN0U4QzFBNDExNDRFMDA0NDdDNEMgLyogbGliVGVzdFdlYktpdEFQSS5hICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBp
bmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJUZXN0V2ViS2l0QVBJLmE7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0zNDgzLDggKzM0ODMsOCBAQAogCQkJCTYzNTE5
OTI3MjIyNzVDNkEwMDg5MEFEMyAvKiBOYXZpZ2F0aW9uQWN0aW9uLm1tICovLAogCQkJCTVDOEJD
Nzk4MjE4Q0YzRTkwMDgxMzg4NiAvKiBOZXR3b3JrUHJvY2Vzcy5tbSAqLywKIAkJCQk1Q0FFNDYz
NzIwMTkzN0NEMDA1MTYxMEYgLyogTmV0d29ya1Byb2Nlc3NDcmFzaE5vblBlcnNpc3RlbnREYXRh
U3RvcmUubW0gKi8sCi0JCQkJNDZBODBGMjUyNjRDMjlENDAwRUVGMjBEIC8qIE5vdGlmaWNhdGlv
bkFQSS5tbSAqLywKIAkJCQlDRENGRkVDMDIyRTI2OEQ1MDBERjQyMjMgLyogTm9QYXVzZVdoZW5T
d2l0Y2hpbmdUYWJzLm1tICovLAorCQkJCTQ2QTgwRjI1MjY0QzI5RDQwMEVFRjIwRCAvKiBOb3Rp
ZmljYXRpb25BUEkubW0gKi8sCiAJCQkJQ0QyRDBEMTkyMTM0NjU1NjAwMThDNzg0IC8qIE5vd1Bs
YXlpbmcubW0gKi8sCiAJCQkJMkVDRkY1NTQxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdD
b250cm9sc1Rlc3RzLm1tICovLAogCQkJCUExMEYwNDdDMUUzQUQyOUMwMEM5NUUxOSAvKiBOU0Zp
bGVNYW5hZ2VyRXh0cmFzLm1tICovLApAQCAtNDMzMSw3ICs0MzMxLDcgQEAKIAkJCQk5M0Y3RTg2
RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVz
X0J1bmRsZS5jcHAgKi8sCiAJCQkJMEY1NjUxRjYxRkNFNEREQjAwMzEwRkJDIC8qIE5vSGlzdG9y
eUl0ZW1TY3JvbGxUb0ZyYWdtZW50Lm1tICovLAogCQkJCTFDQjJGMjdCMjRGODgzNzkwMDBBNUJD
MSAvKiBPcnRob2dvbmFsRmxvd0F2YWlsYWJsZVNpemUubW0gKi8sCi0JCQkJN0NDQjREQTcxQzgz
QUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8sCisJCQkJN0NDQjREQTcxQzgzQUU3MzAw
Q0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLywKIAkJCQlCQzkwOTc3OTEyNTU3MUFCMDAwODM3NTYg
LyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCiAJCQkJQkMyRDAwNDgxMkE5RkRGQTAwRTczMkEzIC8q
IFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwICovLAogCQkJ
CTI3MkE2OTBGMjJGMDEyQzcwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLywKQEAgLTU0
NTIsNyArNTQ1Miw2IEBACiAJCQkJQ0RCMjEzQkQyNEVGNTIyODAwRkRFMzAxIC8qIEZ1bGxzY3Jl
ZW5Gb2N1cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNERTc3RDI1MjVBNjU5MUMwMEQ0MTE1RSAv
KiBGdWxsc2NyZWVuUG9pbnRlckxlYXZlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0REQzdDNjky
NUZGRjZEMDAwMjI0Mjc4IC8qIEZ1bGxzY3JlZW5SZW1vdmVOb2RlQmVmb3JlRW50ZXIubW0gaW4g
U291cmNlcyAqLywKLQkJCQk0NkE4MEYyNjI2NEMyOUQ0MDBFRUYyMEQgLyogTm90aWZpY2F0aW9u
QVBJLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCRkNDNDUxQTlGRjQ1MzAwQTdCNjkxIC8qIEZ1
bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODNEQjc5Njkx
RUY2M0IzQzAwQkZBNUU1IC8qIEZ1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUY4MUE0MTFBRTYwMDQ0N0M0QyAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTU1ODMsNiArNTU4Miw3IEBACiAJCQkJN0NDRTdGMDUxQTQxMUFFNjAwNDQ3QzRDIC8qIE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjU2NTFGNzFGQ0U0RERDMDAzMTBGQkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21lbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4M0YyMkM2NDIwQjM1NUY4MDAzNDI3N0UgLyogTm9Qb2xp
Y3lEZWxlZ2F0ZVJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDZBODBGMjYyNjRDMjlE
NDAwRUVGMjBEIC8qIE5vdGlmaWNhdGlvbkFQSS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMkQw
RDFBMjEzNDY1NTYwMDE4Qzc4NCAvKiBOb3dQbGF5aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkVDRkY1NTUxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE1OUYyNjcyNjBENDNFMzAwQjJEQTNDIC8qIE5vd1BsYXlpbmdJ
bmZvVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01NTk3LDcgKzU1OTcsNyBAQAogCQkJCUMx
MDRCQzFGMjU0NzIzNzEwMEMwNzhDOSAvKiBPdmVycmlkZUFwcGxlTGFuZ3VhZ2VzUHJlZmVyZW5j
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEQTI1ODZGMjI1QzY3REMwMEI0NUMxQyAvKiBPdmVy
cmlkZVZpZXdwb3J0QXJndW1lbnRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTUzQUJCMzUyNUMw
RDY4MjAwNEM4QjczIC8qIFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2Vz
ICovLAotCQkJCTdDQ0I0REE5MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJN0NDQjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjA3MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZEJh
c2ljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjA4MUE0MTFBRTYwMDQ0N0M0QyAvKiBQ
YWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI3MkE2OTEwMjJGMDEyREEwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0
b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvQ3Vz
dG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW0KaW5kZXggNDdmNWU4ODVjZDZhMGMxNGYzOWFmYjcx
OGE4YmM1ZDk5ZTlmNWM3ZC4uYWQzOTkxZDU2ZjIxZTU2MmUyNDVhMjQwN2I2MzY1YzQ5ODhlNmFi
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNT
eW5jWEhSVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3Rv
Y29sc1N5bmNYSFJUZXN0Lm1tCkBAIC01Miw5ICs1Miw3IEBAIFRFU1QoV2ViS2l0MkN1c3RvbVBy
b3RvY29sc1Rlc3QsIFN5bmNYSFIpCiAgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0R3Jv
dXA+IGJyb3dzaW5nQ29udGV4dEdyb3VwID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0R3Jv
dXAgYWxsb2NdIGluaXRXaXRoSWRlbnRpZmllcjpAIlRlc3RJZGVudGlmaWVyIl0pOwogCiAgICAg
Ly8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZpbGUgcmVzb3VyY2VzCi0gICAgV0tSZXRh
aW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5j
ZXNDcmVhdGUoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMc0FsbG93ZWQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0
UHJlZmVyZW5jZXMoYnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCkuX3BhZ2VHcm91cFJlZiwgcHJl
ZmVyZW5jZXMuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoYnJvd3NpbmdDb250ZXh0
R3JvdXAuZ2V0KCkuX3BhZ2VHcm91cFJlZiksIHRydWUpOwogCiAgICAgUmV0YWluUHRyPFdLVmll
dz4gd2tWaWV3ID0gYWRvcHROUyhbW1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBwcm9jZXNzR3JvdXA6cHJvY2Vzc0dyb3VwLmdldCgpIGJyb3dz
aW5nQ29udGV4dEdyb3VwOmJyb3dzaW5nQ29udGV4dEdyb3VwLmdldCgpXSk7CiAgICAgIFJldGFp
blB0cjxUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEJsb2NrVG9S
dW5PbkxvYWQ6XihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKnNlbmRlcikgewpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3Jl
YXRlUGFnZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21X
aXRoaW5DcmVhdGVQYWdlLmNwcAppbmRleCAyODg1ZjUyYmE4MWEyM2UzMDEyNzMzMTQ5NGU3Y2Iy
MTdjM2M1NjdjLi5kNjVkNDUzNTg0MDM1MjRhNWQ3NWVhOThiNGU3NWNmNWNmZWE5YTZmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5D
cmVhdGVQYWdlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9z
ZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcApAQCAtNzYsMTAgKzc2LDggQEAgVEVTVChXZWJLaXQs
IENsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UpCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdl
YlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAKICAgICAvLyBBbGxvdyBmaWxlIFVSTHMg
dG8gbG9hZCBub24tZmlsZSByZXNvdXJjZXMKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2Vz
UmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdl
KCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25m
aWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRV
bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVl
KTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMu
Z2V0KCkpOwogICAgIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJjbG9zZS1mcm9tLXdpdGhpbi1jcmVhdGUtcGFnZSIs
ICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7
CkBAIC0xMjEsMTAgKzExOSw4IEBAIFRFU1QoV2ViS2l0LCBDcmVhdGVQYWdlVGhlbkRvY3VtZW50
T3Blbk1JTUVUeXBlKQogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwg
JnVpQ2xpZW50LmJhc2UpOwogCiAgICAgLy8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZp
bGUgcmVzb3VyY2VzCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5j
ZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKKyAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJW
aWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNz
RnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdl
R3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKIAogICAg
IHRlc3REb25lID0gZmFsc2U7CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0
V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIndpbmRvdy1vcGVuLXRoZW4tZG9jdW1lbnQt
b3BlbiIsICJodG1sIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCmluZGV4IDU1YWEzN2UxMzAy
YzI2ZDJlOTUwM2QwNWE4OGJjNzE0NWNmYzY1MzkuLmQwMmZmMjNhMjNkYmQ1NzhiNTE3MWQyNjRi
NTliYjA4NWEwY2IyOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKQEAgLTgyLDkgKzgyLDcg
QEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250
ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWcKIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBw
YWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljUGFnZUdyb3Vw
IikpKTsgCi0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVu
c2lvbkJhc2ljIiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5k
bGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25CYXNpYyIpKTsKIAogICAgIFdLQ29udGV4dEluamVj
dGVkQnVuZGxlQ2xpZW50VjAgaW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiAgICAgbWVtc2V0KCZpbmpl
Y3RlZEJ1bmRsZUNsaWVudCwgMCwgc2l6ZW9mKGluamVjdGVkQnVuZGxlQ2xpZW50KSk7CkBAIC05
OCw3ICs5Niw3IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNp
YykKICAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNo
ZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHRlbnNpb25z
IGZvciBlYWNoIGZyYW1lIGFyZSBpbnN0YWxsZWQgaW4gZWFjaCB3b3JsZC4KICAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gdXJsMSA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
InNpbXBsZS1pZnJhbWUiLCAiaHRtbCIpKTsKQEAgLTEzNyw5ICsxMzUsNyBAQCBURVNUKFdlYktp
dCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMpCiAKIFRFU1QoV2ViS2l0LCBET01X
aW5kb3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdy
b3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZp
ZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2lj
UGFnZUdyb3VwIikpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2lu
ZG93RXh0ZW5zaW9uQmFzaWMiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljIikpOwogCiAgICAgV0tDb250
ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1z
ZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQp
KTsKQEAgLTE1Myw3ICsxNDksNyBAQCBURVNUKFdlYktpdCwgRE9NV2luZG93RXh0ZW5zaW9uQ3Jh
c2hPblJlbG9hZCkKICAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNr
L2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgp
LCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRl
bnNpb25Ob0NhY2hlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdp
bmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCmluZGV4IGUxNjk2ZDViZDY1Njk0NzI3OGY5NDc0ODUy
NTMxNzJiYzQ5YjdjYTcuLmM3ZDBmOGQwOGVhMjI0MmFiYzdhZDM4NjUyNDlhYThjMjU0ZjIxMDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCkBAIC04Myw5ICs4Myw3IEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tT
dHJpbmdSZWYgbWVzc2FnCiAKIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNp
b25Ob0NhY2hlKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAg
PSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVQYWdlR3JvdXAiKSkpOwot
Ci0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25Ob0Nh
Y2hlIiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0
KCJET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlIikpOwogCiAgICAgV0tDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnRWMSBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1zZXQoJmluamVjdGVk
QnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQpKTsKQEAgLTk4LDcg
Kzk2LDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUp
CiAgICAgLy8gRGlzYWJsZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNl
dENhY2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsK
IAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5n
ZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAg
ICAvLyBNYWtlIHN1cmUgdGhlIGV4dGVuc2lvbnMgZm9yIGVhY2ggZnJhbWUgYXJlIGluc3RhbGxl
ZCBpbiBlYWNoIHdvcmxkLgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwxID0gYWRvcHRX
SyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFy
dFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKaW5kZXggZGE0NTQ0N2Nh
ZjEwMDQxMWVhMjczZWI1ZmM1MzFkZjcxM2FlMDA0Yy4uZDRhMzUxMjM0NWVkNWMyYTQyM2E2M2Y4
YjA5NmY2YmNlMzdiYjU5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2guY3BwCkBAIC00OCwxMCArNDgsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNU
KFdlYktpdCwgRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCkKIHsKLSAgICBX
S1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91
cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEb2N1
bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hUZXN0UGFnZUdyb3VwIikpKTsgCi0KLSAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRD
cmFzaFRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVk
QnVuZGxlVGVzdCgiRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCIpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJ
Q2xpZW50VjAgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xp
ZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVt
ZXJhdGVNZWRpYURldmljZXMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
RW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcAppbmRleCBhM2Q3YjljZGQ3MDQxODhlZmVlNzNmZmIw
ZjEwYzU4MzE3MDc5MDQ3Li5hYjdhNmYyNDQ3NTgzN2NiYmQ1NTliOGZiOGQxZjZjNWI1MjcwM2Vj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVN
ZWRpYURldmljZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Vu
dW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAKQEAgLTUxLDE4ICs1MSwxOCBAQCBURVNUKFdlYktpdCwg
RW51bWVyYXRlRGV2aWNlcykKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4
dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWluUHRyPFdL
UGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElk
ZW50aWZpZXIoVXRpbDo6dG9XSygiRW51bWVyYXRlRGV2aWNlcyIpLmdldCgpKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmls
ZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0K
ICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAs
IHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDY7CiAgICAg
dWlDbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luID0gY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uQ2FsbGJhY2s7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3
KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1Bh
Z2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZp
Z3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1l
ZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAg
V0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVm
ZXJlbmNlcywgZmFsc2UpOworCisKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5w
YWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIGF1dG8gdXJsID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVVUkxGb3JSZXNvdXJjZSgiZW51bWVyYXRlTWVkaWFEZXZpY2VzIiwgImh0bWwiKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNz
aW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNw
cAppbmRleCA2ODVmOTQzYWI3MmJjNmM3NGVmZmIwOTM1YWI2ZmNkOWEzMWVmYjQ1Li4wOTFiZTJj
MmM5ZDg4YzhhNWUzMWY1MzFjOTUzM2NmODlkYjkxN2Y2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVt
ZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKQEAgLTc3LDEyICs3Nyw5
IEBAIFRFU1QoV2ViS2l0LCBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJh
Y2spCiAKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwg
JnBhZ2VMb2FkZXJDbGllbnQuYmFzZSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2Vz
UmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKKyAgICBX
S1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3
ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7CiAKLSAgICBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdl
KCkpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJlbmNl
cy5nZXQoKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgicHVzaC1zdGF0ZSIsICJodG1sIikpOwogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9J
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwCmluZGV4IDZk
NGYxYjdmNDViMTAxNWY5NWEwYzU2M2UyZmVmMmVlOGZhYjdmMjYuLjFlYmNkNGVlOGVhZmUxYjIy
ZTBjM2E1OTU0YWJjMTJkMzI5MzNjNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5k
bGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcApAQCAtNTAsMTAgKzUwLDggQEAg
c3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0RW5hYmxlZChXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgYWxlcnRUZXh0LCBXS0YKIAogVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlTm9E
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCkKIHsKLSAgICBXS1JldGFpblB0cjxX
S1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJ
ZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJbmplY3RlZEJ1bmRsZU5v
RGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCi0gICAg
V0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVD
b250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29u
dGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JUZXN0IikpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1z
ZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKQEAgLTg0LDEwICs4Miw4IEBAIHN0
YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydERpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBhbGVydFRleHQsIFdLCiAKIFRFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZURpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCi0gICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0
Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0
aW5zQmVoYXZpb3JUZXN0IiwgcGFnZUdyb3VwLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJ
bmplY3RlZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvclRlc3QiKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGll
bnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNo
YWRvd1Jvb3RzT3Blbi5jcHAKaW5kZXggZTkwOGIxYTgzYzhmOGQ5M2Y3ODY5ODJhZTMyNTU4MWU0
MDc0OWUzMi4uNmU1ODAzNDY1MjBkN2MyYWE2NTJmOGY1MjRlMGY4ODk4ZGE0NDc3NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtl
QWxsU2hhZG93Um9vdHNPcGVuLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCkBAIC04NSwxMCAr
ODUsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNUKFdlYktpdCwgSW5qZWN0ZWRC
dW5kbGVNYWtlQWxsU2hhZG93Um9vdE9wZW5UZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTWFrZUFs
bFNoYWRvd1Jvb3RPcGVuVGVzdFBhZ2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVzdCIsIHBh
Z2VHcm91cC5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0
KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250
ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJ
bmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290T3BlblRlc3QiKSk7CisgICAgUGxhdGZvcm1X
ZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVp
Q2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlZTkwNDMyNzUyOGIzZTg1YWVkMjNiMmM3ZGM2NzMzMjZk
MjQ3MWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBv
cnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0hBVkVfQ19TUEkKLQotI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgotI2lt
cG9ydCAiVGVzdC5oIgotI2ltcG9ydCA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+Ci0jaW1wb3J0IDxX
ZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaD4KLSNpbXBvcnQgPFdlYktpdC9XS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotVEVT
VChQYWdlR3JvdXAsIERlZmF1bHRVc2VyQ29udGVudENvbnRyb2xsZXIpCi17Ci0gICAgYXV0byBw
YWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsK
LSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0
aW9uKG51bGxwdHIpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29u
ZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7Ci0gICAgYXV0byBwYWdlR3JvdXAgPSBh
ZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiVGVzdFBh
Z2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChw
YWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQotICAgIGF1dG8gcGFn
ZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyID0gcmV0YWluV0soV0tQYWdlR3JvdXBHZXRVc2Vy
Q29udGVudENvbnRyb2xsZXIocGFnZUdyb3VwLmdldCgpKSk7Ci0KLSAgICBFWFBFQ1RfTlVMTChX
S1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0
aW9uLmdldCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlQ29uZmlndXJh
dGlvbi5nZXQoKSk7Ci0gICAgYXV0byBjb3BpZWRQYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0so
V0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICBBU1NF
UlRfRVEocGFnZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VDb25maWd1
cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKGNvcGllZFBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci19Ci0KLVRFU1QoUGFnZUdyb3VwLCBDdXN0b21Vc2VyQ29udGVudENvbnRyb2xsZXIp
Ci17Ci0gICAgYXV0byBwYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJh
dGlvbkNyZWF0ZSgpKTsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0
ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0
Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7Ci0gICAgYXV0
byBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiVGVzdFBhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlv
blNldFBhZ2VHcm91cChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsK
LSAgICBhdXRvIHVzZXJDb250ZW50Q29udHJvbGxlciA9IGFkb3B0V0soV0tVc2VyQ29udGVudENv
bnRyb2xsZXJDcmVhdGUoKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFVzZXJDb250ZW50
Q29udHJvbGxlcihwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgdXNlckNvbnRlbnRDb250cm9sbGVy
LmdldCgpKTsKLQotICAgIGF1dG8gcGFnZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyID0gcmV0
YWluV0soV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUdyb3VwLmdldCgp
KSk7Ci0KLSAgICBFWFBFQ1RfRVEodXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VD
b25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlQ29uZmlndXJhdGlvbi5n
ZXQoKSk7Ci0gICAgYXV0byBjb3BpZWRQYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdl
Q29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICBFWFBFQ1RfRVEo
dXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNv
bnRlbnRDb250cm9sbGVyKGNvcGllZFBhZ2VDb25maWd1cmF0aW9uLmdldCgpKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhY2QzYTBlNzVjZmY4
N2MyMjRhZjk4MWExZDBiM2QyZGM5NTZmZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5tbQpAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5k
YXRpb24uaD4KKworI2lmIFdLX0hBVkVfQ19TUEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tWaWV3UHJp
dmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CisKK1RFU1QoUGFnZUdyb3VwLCBQcmVmZXJlbmNlcykKK3sKKyAgICBhdXRvIHBhZ2VD
b25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOworICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24o
bnVsbHB0cikpOworICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VDb25maWd1
cmF0aW9uLmdldCgpLCBjb250ZXh0LmdldCgpKTsKKyAgICBhdXRvIHBhZ2VHcm91cCA9IGFkb3B0
V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJUZXN0UGFnZUdy
b3VwIikuZ2V0KCkpKTsKKyAgICBhdXRvIHdrVmlldyA9IGFkb3B0TlMoW1tXS1ZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb250ZXh0UmVmOmNvbnRleHQuZ2V0KCkgcGFnZUdy
b3VwUmVmOnBhZ2VHcm91cC5nZXQoKV0pOworICAgIEVYUEVDVF9FUShXS1BhZ2VDb25maWd1cmF0
aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2tW
aWV3LmdldCgpLnBhZ2VSZWYpKS5nZXQoKSksIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJv
YXJkTm90aWZpY2F0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bh
c3RlYm9hcmROb3RpZmljYXRpb25zLm1tCmluZGV4IDM2NWMyZGRiOWI5MmU1YzY2ZTYyNzk2MGE1
YTJiZmE5ZTRkYWE2MWEuLmZmNDJmNDMyODdmZmY5YTNlN2I1Y2FiMjA4OGMxMzdhMGI4NDhlN2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmRO
b3RpZmljYXRpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bh
c3RlYm9hcmROb3RpZmljYXRpb25zLm1tCkBAIC02NywxMiArNjcsOSBAQCBURVNUKFdlYktpdCwg
UGFzdGVib2FyZE5vdGlmaWNhdGlvbnMpCiAKICAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZl
cmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFBy
ZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFn
ZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xp
cGJvYXJkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKIAotICAgIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdl
R3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKLQogICAg
IFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9y
UmVzb3VyY2UoImV4ZWNDb3B5IiwgImh0bWwiKSkuZ2V0KCkpOwogICAgIFV0aWw6OnJ1bigmZmlu
aXNoZWQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
UHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwCmluZGV4IDYzNTI1M2UwYTY2ZWY4MGY2ZWQzOTY1ZTc3ZDA2OWNkYjkyNDg2
NzYuLmUzMTFiZjExZWMwYTU4MDFkZmMyZWVlNDdhNTQ2ODVmODQ4MWRiMTEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0
ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKQEAgLTgw
LDEyICs4MCw5IEBAIFRFU1QoV2ViS2l0LCBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3Rv
cnlDYWxsYmFjaykKIAogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcu
cGFnZSgpLCAmcGFnZUxvYWRlckNsaWVudC5iYXNlKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJl
ZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkp
OworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2
ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsK
IAotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJW
aWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHBy
ZWZlcmVuY2VzLmdldCgpKTsKLQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJwdXNoLXN0YXRlIiwgImh0bWwiKSk7CiAg
ICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRl
ZFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2
ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwCmluZGV4IGEwODgzOGU3N2VmYWY0N2I0ZjFmN2RmNTM5
MzYwOGEyNzMzM2FjNGIuLjZiODY3ZmVmNmJkNWU5ZjRkOTU0YjZmMjkzZjJhZDhjMTk0ZTNjN2Ig
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVy
c2VQYWdpbmF0ZWRXZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAKQEAgLTc1LDggKzc1LDcgQEAg
VEVTVChXZWJLaXQsIFJlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3KQogCiAgICAgV0tQYWdl
TGlzdGVuRm9yTGF5b3V0TWlsZXN0b25lcyh3ZWJWaWV3LnBhZ2UoKSwga1dLRGlkRmlyc3RMYXlv
dXRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyk7CiAKLSAgICBXS1BhZ2VHcm91
cFJlZiBwYWdlR3JvdXAgPSAgV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNl
cyhwYWdlR3JvdXApOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VD
b25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3Vy
YXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN1cHBy
ZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyhwcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBXS1Bh
Z2VTZXRQYWdpbmF0aW9uTW9kZSh3ZWJWaWV3LnBhZ2UoKSwga1dLUGFnaW5hdGlvbk1vZGVSaWdo
dFRvTGVmdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9T
Y3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwCmluZGV4IDg1ZjI1YTY0NmZhYjJiYTQ2ZDc0
MTg2ZTBmZjVmMjc2ZTYyMjZlOTkuLjRiMTM4ZTQ5MGM3NDYzZDVlZTAyOTJjZjFlYWQ2ZDA3Njg2
NGYyNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9s
bFBpbm5pbmdCZWhhdmlvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwCkBAIC03MywxNSArNzMsMTQgQEAgVEVTVChX
ZWJLaXQsIFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlv
bihudWxscHRyKSk7CiAKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgp
KTsKKworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0
aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2Vi
Vmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgLy8gVHVybiBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5n
OyBzeW5jaHJvbm91c2x5IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRp
b24gdG8KICAgICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdvdWxkIGJlIGJl
dHRlciwgYnV0IGZvciBzb21lIHJlYXNvbiBkb2Vzbid0IGJsb2NrIHVudGlsCiAgICAgLy8gaXQn
cyB1cGRhdGVkIGFmdGVyIHRoZSBpbml0aWFsIFdLUGFnZVNldFNjcm9sbFBpbm5pbmdCZWhhdmlv
ciBhYm92ZS4KLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRv
cHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk5vVGhyZWFk
ZWRTY3JvbGxpbmdQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZChwcmVmZXJlbmNlcywg
ZmFsc2UpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFn
ZUdyb3VwLmdldCgpKTsKLQogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGll
bnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwCmluZGV4IGQyMzEzMzFiOTU1MjhlNGQ1MDA2YjM0MzQzZDc1YmVjMDA3MTQ5
NjEuLjc5MWY5NDM3MDJlMTZiZmExMTE2MzQwZmZiOWNjNDNlZmM1MzBmY2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5j
cHAKQEAgLTUzLDE0ICs1MywxMyBAQCBURVNUKFdlYktpdCwgU3BhY2ViYXJTY3JvbGxpbmcpCiB7
CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQ
YWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKwogICAgIC8vIFR1cm4g
b2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFp
biB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCiAgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZv
cmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qg
c3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVm
PiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFi
bGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNs
aWVudFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9m
KGxvYWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Vc2VyTWVkaWEuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
VXNlck1lZGlhLmNwcAppbmRleCA1NzUxOTczYTU4ODc4OWU0ZmU5Zjg2ZTk1NTM1ZWI1NWUyZmQ3
ZTEzLi4wY2JjNTAwYWIyZjM1NGUwZGFiNTE1ODhlNmQwYzVhYmYyMmVhZTZhIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKQEAgLTcxLDIwICs3
MSwxOCBAQCBURVNUKFdlYktpdCwgVXNlck1lZGlhQmFzaWMpCiB7CiAgICAgYXV0byBjb250ZXh0
ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAK
LSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1Bh
Z2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkdldFVzZXJNZWRpYSIpLmdl
dCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFE
ZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZp
bGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVu
Y2VzLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsK
ICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKICAgICB1aUNsaWVu
dC5iYXNlLnZlcnNpb24gPSA2OwogICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RDYWxsQmFjazsKICAgICB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4gPSBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjazsKICAgICAKLSAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRv
cHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAog
ICAgIHdhc1Byb21wdGVkID0gZmFsc2U7CkBAIC0xMDcsMjAgKzEwNSwxOCBAQCBURVNUKFdlYktp
dCwgT25EZXZpY2VDaGFuZ2VDcmFzaCkKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdL
Q29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWlu
UHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRl
V2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiR2V0VXNlck1lZGlhIikuZ2V0KCkpKTsKLSAgICBX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhw
YWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgm
dWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lv
biA9IDY7CiAgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QgPSBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNr
OwogICAgIHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiA9IGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNrOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
ID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBh
Z2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAKICAgICAvLyBMb2FkIGEgcGFn
ZSByZWdpc3RlcmluZyBvbmRldmljZWNoYW5nZSBoYW5kbGVyLgpAQCAtMTY3LDEzICsxNjMsNiBA
QCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlc0NyYXNoKQogewogICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwog
Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQ
YWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJHZXRVc2VyTWVkaWEiKS5n
ZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdl
dFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlh
RGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJl
bmNlcywgZmFsc2UpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7
CiAgICAgLy8gV2Ugd2FudCB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4gdG8gYmUgbnVsbC4KICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQp
KTsKQEAgLTE4NCw3ICsxNzMsMTMgQEAgVEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFz
aCkKICAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMzsKICAgICBsb2FkZXJDbGllbnQu
ZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247CiAKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKwogICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogICAg
IFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xp
ZW50LmJhc2UpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGU1NDEwMGM4Yzc5NDY3MTY1MDkwMmIz
MjNmZWZkMTU4MjFlNDI3YWIuLjA1ZDk1ZTQ5NzQxODA1NTMwOTU5YTI2YzM0OGMxZThjOTdjN2Fh
ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dL
UGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC00MSw3ICs0MSw2IEBAIFRFU1QoV2ViS2l0LCBXS1Bh
Z2VDb25maWd1cmF0aW9uRW1wdHkpCiAKICAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0
aW9uR2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpKSk7CiAgICAgQVNTRVJUX05VTEwoV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihjb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci0gICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cChj
b25maWd1cmF0aW9uLmdldCgpKSk7CiAgICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlv
bkdldFByZWZlcmVuY2VzKGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChX
S1BhZ2VDb25maWd1cmF0aW9uR2V0UmVsYXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSkpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQ
bGF5aW5nQXVkaW8uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdl
SXNQbGF5aW5nQXVkaW8uY3BwCmluZGV4IGMxZWYwOTE1YzI3ZTIxNWM3OGJjODQzMWExY2FjZjRm
NGQyNTg5YzAuLjU2NDlkOTA0NGM4ZTNkYjQ2MGU4OTFmNjdiNTUwNTUwZGE3ZTFkOGUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1
ZGlvLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1Bs
YXlpbmdBdWRpby5jcHAKQEAgLTExNywxMiArMTE3LDEwIEBAIFRFU1QoV2ViS2l0LCBNU0VJc1Bs
YXlpbmdBdWRpbykKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdy
b3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTVNFSXNQbGF5aW5nQXVkaW9QYWdl
R3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1Bh
Z2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNv
cHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0TWVkaWFTb3VyY2VFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKICAgICBzZXRVcENsaWVudHMod2ViVmlldy5wYWdlKCkpOwogCiAgICAgV0tS
ZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoImZpbGUtd2l0aC1tc2UiLCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5n
ZVdpdGhJbWFnZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRy
aWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQppbmRleCBiOTEyM2Y3
OTgzYTg1YzQ0ZmMzODljNTc2ZWNjM2ZiZjUxZTI2NmJlLi5jZTZhODA2OGQzODg4NWQyODA4NjNj
MDY3NjhkMDkxZWRmY2YwMjIzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2Uu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRT
dWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tCkBAIC01OCw4ICs1OCw3IEBAIHN0
YXRpYyB2b2lkIGludmFsaWRNZXNzYWdlRnVuY3Rpb24oV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUp
CiBURVNUKFdlYktpdCwgQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1h
Z2UpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwotICAgIFdLUmV0YWluUHRy
PFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0
aElkZW50aWZpZXIoVXRpbDo6dG9XSygiQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFu
Z2VXaXRoSW1hZ2VQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAg
bG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVy
Q2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9t
YWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tCmluZGV4IDc1NTZmNjEyZDVlM2I5YmE0ZjRj
ZDZmNTI2Yzk1OGMxN2YzZjFmMjYuLjY0ZDY3YWIyZTNjNzVkOWYwOTkzNDY2ZmE3NmJmNmQ2YTUw
NWNhYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9D
b250ZXh0TWVudURvd25sb2FkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tCkBAIC05Miw4ICs5Miw3IEBAIFRFU1QoV2Vi
S2l0LCBDb250ZXh0TWVudURvd25sb2FkSFRNTERvd25sb2FkQXR0cmlidXRlKQogewogICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29u
dGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3Vw
UmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIo
VXRpbDo6dG9XSygiTXlHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMyBs
b2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJD
bGllbnQpKTsKQEAgLTE0Myw4ICsxNDIsNyBAQCBURVNUKFdlYktpdCwgQ29udGV4dE1lbnVEb3du
bG9hZEhUTUxEb3dubG9hZEF0dHJpYnV0ZVdpdGhTbGFzaGVzKQogewogICAgIFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJ
bmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdl
R3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9X
SygiTXlHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMyBsb2FkZXJDbGll
bnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JD
b21tYW5kcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JD
b21tYW5kcy5tbQppbmRleCBmOWMwZDFmYmZjNjE3MjU1MjNiYzVmNjEzODYxNjZkNmQyNzNmYmEw
Li4yYTVhMmJkNmRmODg1YTc1MGM3YmFiYTM5ZTBjNzc3MjlkYzJiYTViIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1t
CkBAIC00NSwxNCArNDUsMTMgQEAgVEVTVChXZWJLaXQsIFNjcm9sbEJ5TGluZUNvbW1hbmRzKQog
ewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAorICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5
UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisKICAgICAvLyBUdXJu
IG9mZiB0aHJlYWRlZCBzY3JvbGxpbmc7IHN5bmNocm9ub3VzbHkgd2FpdGluZyBmb3IgdGhlIG1h
aW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB0bwogICAgIC8vIHVwZGF0ZSB1c2luZyBXS1BhZ2VG
b3JjZVJlcGFpbnQgd291bGQgYmUgYmV0dGVyLCBidXQgZm9yIHNvbWUgcmVhc29uIHRoZSB0ZXN0
IHN0aWxsIGZhaWxzIG9jY2FzaW9uYWxseS4KLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJl
Zj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0
aWw6OnRvV0soIk5vVGhyZWFkZWRTY3JvbGxpbmdQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBh
Z2VHcm91cC5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5h
YmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQorICAgIAogICAgIFdLUGFnZU5hdmln
YXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAs
IHNpemVvZihsb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQppbmRleCA2ODdj
N2NhZTdjOGQ1OWZkMDY3NDRhNTQwOTExYjBlMTJmZDVjNWYxLi5lMTE3MDcxNjFjNzg0YjQ3NDQz
NWQxNzExYjY5YTYxMzNkODkwM2QyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQpAQCAtMTE4LDEx
ICsxMTgsMTAgQEAgVEVTVChGdWxsc2NyZWVuLCBEZWxlZ2F0ZSkKIFRFU1QoRnVsbHNjcmVlbiwg
RElTQUJMRURfV0tWaWV3RGVsZWdhdGUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxs
cHRyKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0
V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJGdWxsc2NyZWVu
RGVsZWdhdGUiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBX
S1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJl
bmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKIAotICAgIFBsYXRm
b3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9w
dFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OwogCiAgICAgUmV0YWluUHRyPEZ1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyPiBoYW5k
bGVyID0gYWRvcHROUyhbW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7CiAgICAgV0tQYWdlU2V0RnVsbHNjcmVlbkRlbGVnYXRlKHdlYlZpZXcucGFnZSgpLCBo
YW5kbGVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KaW5kZXggOTM5
YzU3YjRkOGIyNjc2NjRiY2QyYWI3NjRkNGQ4OGU2OTU5YzI3YS4uNDQ1ZGI3NTY2ZTA2MDdkOTg4
YTU4Yjc4OWI3OTBkYmRlZGMyY2Q1MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUu
bW0KQEAgLTIwMSwxMyArMjAxLDEyIEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgQXVkaW9DYW5u
b3RUb2dnbGVQaWN0dXJlSW5QaWN0dXJlKQogVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1BhZ2VV
SUNsaWVudCkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENy
ZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIlBpY3R1cmVJblBpY3R1cmUiKS5nZXQoKSkp
OwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZl
cmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CisgICAgCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29u
ZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayhwcmVmZXJlbmNlcywgdHJ1ZSk7
Ci0gICAgCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKLSAgICAKKwogICAgIFdLUGFnZVVJQ2xpZW50VjEwIHVpQ2xpZW50OwogICAg
IG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJh
c2UudmVyc2lvbiA9IDEwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQppbmRleCA4ZTc3MDA2OGQzMTJlNDI0M2Ix
MjFhZDUzOTQ5YWFjZTBjMWUwNDNlLi45ODFhZjkyNzY5NDg1MDhlMzQ0ZTUxNmFiN2I3NTZhNzk2
MTRlZWEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dlYnNpdGVQb2xpY2llcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQpAQCAtODAwLDkgKzgwMCw3IEBAIFRFU1QoV2VicGFn
ZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNpZXNBcmJpdHJhcnlVc2VyR2VzdHVyZVF1aXJrKQog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2Vz
ID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQ
YWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VG
b3JUZXN0aW5nXSksIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIFtkZWxlZ2F0ZSBz
ZXRBbGxvd2VkQXV0b3BsYXlRdWlya3NGb3JVUkw6Xl9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKE5T
VVJMICp1cmwpCiAgICAgewpAQCAtODMzLDkgKzgzMSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVu
Y2VzLCBXZWJzaXRlUG9saWNpZXNBdXRvcGxheVF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW0F1dG9wbGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJl
bmNlc0NyZWF0ZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5j
ZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJl
bmNlcy5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5w
cmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3RXaXRoQXVkaW8g
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJhdXRvcGxheS1jaGVjayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogCkBAIC04OTEsOSArODg3LDcg
QEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1BlckRvY3VtZW50QXV0
b3BsYXlCZWhhdmlvclF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9w
bGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmln
YXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZl
cmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMu
Z2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFn
ZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1By
ZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1
ZSk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBXVEY6Om51bGxvcHQ7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xs
aW5nUG9zaXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3Bv
bmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tCmluZGV4IDUzZmNjODk5ZTgwNGQzMjJiYWY5ODcwOTJi
YjNmOTQ3ZWY3NDBiNjcuLjJmNDBhODM0ODYxYzVlY2I3NjZmNWRmMzA1ZmJkMDQ1MTBiOTU4ZDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVy
U2Nyb2xsaW5nUG9zaXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbQpAQCAtNDUsMTggKzQ1LDE3IEBAIFRF
U1QoV2ViS2l0LCBGaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uKQogewogICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4
dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9s
bGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBv
c2l0aW9uIHRvCi0gICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBi
ZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNp
b25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRl
ZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBm
YWxzZSk7Ci0KICAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KQogICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbd2luZG93LmdldCgpIG1ha2VLZXlB
bmRPcmRlckZyb250Om5pbF07CiAgICAgRVhQRUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2li
bGVdKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VH
cm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3
LnBhZ2UoKSkpLmdldCgpKTsKKworICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsg
c3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9u
IHRvCisgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0
ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5
LgorICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7
CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKQEAg
LTgyLDcgKzgxLDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRp
b24pCiAKICAgICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJ3aW5kb3cuc2Nyb2xsWSIs
ICI0MCIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IG5ld1dlYlZpZXcoY29udGV4dC5nZXQoKSwg
cGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhjb250ZXh0
LmdldCgpKTsKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChuZXdXZWJWaWV3LnBh
Z2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKIAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZp
ZXcgYWRkU3VidmlldzpuZXdXZWJWaWV3LnBsYXRmb3JtVmlldygpXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJh
bWUubW0KaW5kZXggNjA1NWQ4ZDIzMTFmY2Y4NmI0Mjk0OTMzMTcwZWQ0MWUxZDFhYWU2Ni4uZmIw
YWE5YTc3MDg5YmNiYjBkZWY1N2EzYmQ2ZmZmODk5NTUyNDIwMSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJh
bWUubW0KQEAgLTEyMCw5ICsxMjAsOCBAQCB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1l
Ojppbml0aWFsaXplVmlldyhXS1ZpZXcgKndrVmlldykKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQod2tWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBpZGVudGlmaWVyID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWVQcmVmZXJlbmNlcyIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQ
cmVmZXJlbmNlc0NyZWF0ZVdpdGhJZGVudGlmaWVyKGlkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICBX
S1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJh
dGlvbih3a1ZpZXcucGFnZVJlZikpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNj
cmVlbkVuYWJsZWQoY3VzdG9tUHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdy
b3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHdrVmlldy5wYWdlUmVmKSwgY3Vz
dG9tUHJlZmVyZW5jZXMuZ2V0KCkpOwogfQogCiB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZy
YW1lOjp0ZWFyZG93blZpZXcoV0tWaWV3ICp3a1ZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAppbmRleCAzMGNjODQ1MTRjM2JlZjU0YThlMmNj
Njk5ZDg5MGJhOTMzNmFhY2UzLi41NzM5ZmFmZTNkZmQ5M2RhNzgyOWY0YmIyOGJjODNkZTYxYjA0
Y2FmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdH
dGsuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5j
cHAKQEAgLTM2LDExICszNiwxMCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLVBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2Vi
VmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VD
b25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0
aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdl
R3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAgIGluaXRpYWxp
emUoY29uZmlndXJhdGlvbi5nZXQoKSk7CiB9CkBAIC01NCw3ICs1Myw2IEBAIFBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsKICAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhX
S1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRD
b250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVsYXRlZFBhZ2Up
KTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0
KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVkUGFnZSk7CiAK
ICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IDYzNjY4OTE4YWQzMmY3MTJkZTg3
YWUzZWQxYjQwMTFmN2FiN2I5ZTIuLmU1MWRlNzY5MGQ1ZGE1NWJjYmVhYjU2ZTk5MzY5YWNkYTk2
YmY3YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmll
d01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMu
bW0KQEAgLTQ4LDEzICs0OCwxMiBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiAgICAgaW5pdGlhbGl6ZShjb25m
aWd1cmF0aW9uLCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZv
cm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
dXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29u
dGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25m
aWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwotICAgIAor
CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwg
Y29udGV4dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1
cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBSZWYpOwotICAgIAorCiAgICAgaW5pdGlhbGl6ZShjb25m
aWd1cmF0aW9uLmdldCgpLCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKQEAgLTYzLDIyICs2MiwxMSBA
QCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VSZWYgcmVsYXRlZFBhZ2Up
CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9
IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAgICAKICAgICBXS1BhZ2VD
b25maWd1cmF0aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VHZXRDb250
ZXh0KHJlbGF0ZWRQYWdlKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChj
b25maWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VHZXRQYWdlR3JvdXAocmVsYXRlZFBhZ2UpKTsKICAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UmVsYXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSwg
cmVsYXRlZFBhZ2UpOwogCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdldCgpLCBbV0tW
aWV3IGNsYXNzXSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIENsYXNzIHdr
Vmlld1N1YmNsYXNzKQotewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7Ci0g
ICAgCi0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQo
KSwgY29udGV4dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25m
aWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBSZWYpOwotICAgIAotICAgIGluaXRpYWxpemUoY29u
ZmlndXJhdGlvbi5nZXQoKSwgd2tWaWV3U3ViY2xhc3MpOwotfQotCiBQbGF0Zm9ybVdlYlZpZXc6
On5QbGF0Zm9ybVdlYlZpZXcoKQogewogICAgIFttX3dpbmRvdyBjbG9zZV07CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcAppbmRleCBmYmQ3YzA5M2Jh
MTUzMDQzNjQzZGRmMzQ4YTRkYmEzN2M3ZmE1M2I0Li4xNTA5ZjI4YWQyZDI1ZjlhODQ3ODFiYTJk
NDQ1YTkzZWVmYjQ2M2MxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0
Zm9ybVdlYlZpZXdXaW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3Jt
V2ViVmlld1dpbi5jcHAKQEAgLTU3LDExICs1NywxMCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6
cmVnaXN0ZXJXaW5kb3dDbGFzcygpCiAgICAgOjpSZWdpc3RlckNsYXNzRXhXKCZ3bmRDbGFzcyk7
CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0
cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VD
b25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRp
b25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAg
IGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSk7CiB9CkBAIC03NSw3ICs3NCw2IEBAIFBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsK
ICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0g
YWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVs
YXRlZFBhZ2UpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFn
ZUNvbmZpZ3VyYXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVk
UGFnZSk7CiAKICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKaW5kZXggOGNjM2I3MWE3
MzIxODIzM2Y0MDRhOTQxNjJmZTA1ODVhODY3MjBmMi4uMjc5ZDllNmViOWY3YWEwMjQ0NDUyNWQy
ZWMxNmNkM2U4YmM5NWUzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxh
dGZvcm1XZWJWaWV3V1BFLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9y
bVdlYlZpZXdXUEUuY3BwCkBAIC0zMiwxMiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogCi1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYg
Y29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQorUGxhdGZvcm1XZWJWaWV3
OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiAgICAgOiBtX3dpbmRv
dyhudWxscHRyKQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNv
bmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAg
V0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4
dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9u
LmdldCgpLCBwYWdlR3JvdXBSZWYpOwogCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdl
dCgpKTsKIH0KQEAgLTUzLDcgKzUyLDYgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZp
ZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25D
cmVhdGUoKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlv
bi5nZXQoKSwgV0tQYWdlR2V0Q29udGV4dChyZWxhdGVkUGFnZSkpOwotICAgIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgV0tQYWdlR2V0UGFnZUdy
b3VwKHJlbGF0ZWRQYWdlKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFJlbGF0ZWRQYWdl
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIHJlbGF0ZWRQYWdlKTsKIAogICAgIGluaXRpYWxpemUoY29u
ZmlndXJhdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGUwNjY3MDBmM2NlNmFhZGE5YWIyMWEzNjRiMGEyYmJjZTQyOGFlNDguLmVlODBi
N2NlNjIxYTZjMzg3ZTY0ODM5MzkyMDZiYjRkODk0NDBlNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC01NDksOCArNTQ5LDYgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIFdl
YkNvcmVUZXN0U3VwcG9ydDo6aW5zdGFsbE1vY2tHYW1lcGFkUHJvdmlkZXIoKTsKICNlbmRpZgog
Ci0gICAgbV9wYWdlR3JvdXAuYWRvcHQoV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcih0
b1dLKCJXZWJLaXRUZXN0UnVubmVyUGFnZUdyb3VwIikuZ2V0KCkpKTsKLQogICAgIG1fZXZlbnRT
ZW5kZXJQcm94eSA9IG1ha2VVbmlxdWU8RXZlbnRTZW5kZXJQcm94eT4odGhpcyk7CiB9CiAKQEAg
LTY3OSw3ICs2NzcsNiBAQCBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0
Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjbwogCiAgICAgYXV0byBwYWdl
Q29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwg
bV9jb250ZXh0LmdldCgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKHBh
Z2VDb25maWd1cmF0aW9uLmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSk7CiAgICAgCiAgICAgaWYg
KG9wdGlvbnMudXNlRXBoZW1lcmFsU2Vzc2lvbigpKSB7CiAgICAgICAgIGF1dG8gZXBoZW1lcmFs
RGF0YVN0b3JlID0gYWRvcHRXSyhXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0ZW50
RGF0YVN0b3JlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4
IGJkZTZiMGVkNzc1ZGNmMjM5ZDhlYjFkMmNiNmYxYjc2NzJhNmE5YTkuLjc4ZDkyODRkNzVhNzU2
MTNiMjg0MmIyOWEzZjJmYTkwNDE1YTk2YzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKQEAgLTU1NSw3ICs1NTUsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmlldzsKICAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IG1fY29udGV4dDsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4g
bV9wYWdlR3JvdXA7CiAgICAgV0tSZXRhaW5QdHI8V0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWY+
IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAppbmRl
eCAxMTRjN2E4MTJkNzZhYmQ5YThhOGVkNTE2ODQ3MWMwYjVmZDcxMTI0Li5hYjBiMjQ3NDAwZjNk
MWYzODI1NjNlMDdjNWExNjhmNzcxNjk3YTgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAKIFdLUHJlZmVyZW5jZXNSZWYgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQogewotICAgIHJldHVybiBXS1BhZ2VH
cm91cEdldFByZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKKyAgICByZXR1cm4gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2UoKSkpLmdldCgpKTsKIH0KIAogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBjYWUxMDc1N2E4Nzc1MmIwZDZlOGVhZmU2
YjMxNWQ2YzU0NmVhNzRjLi5hNzMzNjdkNWNiMDExNThjNzFkYmRjOGQ1NGI2Y2E4YmQyN2VmMDBl
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldp
bi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4u
Y3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0
aWFsaXplKCkKIAogV0tQcmVmZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVm
ZXJlbmNlcygpCiB7Ci0gICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdl
R3JvdXAuZ2V0KCkpOworICAgIHJldHVybiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5j
ZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24obV9tYWluV2ViVmlldy0+cGFn
ZSgpKSkuZ2V0KCkpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3ko
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJX
UEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3Bw
CmluZGV4IGY0N2IwZGY5ODZkMTU2MzdmNDMwMGM4YjA3MTYzYTllOTYzMmE0MjUuLjUwMTEwY2Q0
ODUzNTcyZjU3OWMxNDBjZjM4YzhjNDdkOGE4MGY0NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogCisjaW5jbHVk
ZSAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgpAQCAtNDcsNyArNDgs
NyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogCiBXS1ByZWZl
cmVuY2VzUmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVByZWZlcmVuY2VzKCkKIHsKLSAgICBy
ZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7CisgICAg
cmV0dXJuIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNv
cHlQYWdlQ29uZmlndXJhdGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCkpKS5nZXQoKSk7CiB9CiAK
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCg==
</data>
<flag name="commit-queue"
          id="449452"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428521</attachid>
            <date>2021-05-13 09:20:40 -0700</date>
            <delta_ts>2021-05-17 16:53:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20210513092039.patch</filename>
            <type>text/plain</type>
            <size>89407</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZmMjFlZGNhOWNhOWY1NjFk
ZTYwMGY5N2Y0MjY5ZTcwNDcyZWU2ZTMuLmMwNjNiMGRiNjNjZWE2OTA4ODMwN2UxMmJiNDdmOWMw
Mzc5ZGNkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMTMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBwcm9qZWN0cyBzdGlsbCB1
c2luZyBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyIGFuZCBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzLgorICAgICAgICBUaGVyZSBpcyBvbmUgcHJvamVjdCBzdGlsbCB1c2luZyBXS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLgorICAgICAgICBJIGxlZnQgdGhlc2UgZGVwcmVjYXRlZCBidXQg
c3RpbGwgZnVuY3Rpb25hbCBhbmQgbm90ZWQgcmFkYXJzIGZvciB3aGVuIHRoZXkgY2FuIGFsc28g
YmUgcmVtb3ZlZC4KKworICAgICAgICBUaGUgcmVzdCBvZiB0aGUgQVBJIGlzIHJlbW92ZWQuICBT
b21lIG9mIGl0IHdhcyBtb3ZlZCB0byBhbiBpbnRlcm5hbC1vbmx5IGhlYWRlciB0byBsZWF2ZSBX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwIHVudG91Y2hlZC4KKyAgICAgICAgTG90cyBvZiB0ZXN0cyBh
cmUgdXBkYXRlZCB0byBzZXQgcHJlZmVyZW5jZXMgbGlrZSB0aGUgbW9kZXJuIEFQSSBkb2VzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VH
ZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHA6
CisgICAgICAgIChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXApOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0
VHlwZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250
cm9sbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBjb3B5V2l0aFpvbmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3BhZ2VHcm91cF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF9zZXRQYWdlR3JvdXA6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1LTEyICBCcmVudCBGdWxn
aGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2lsZW5jZSB1bmlu
dGVyZXN0aW5nIHNhbmRib3ggcmVwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggOTliNjU1ZmE0YjU4ZDg0OWQ5ZjczZjE4ODRhZDFkZmZlMzhkYjU3NS4u
MWQ4YTI3YmI0NWRiZmI2YWVlZTA2NDM0NzRhNGJiZDcxNzA1YWJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNjIsMTEgKzE2Miw2IEBAIFdLQ29udGV4
dFJlZiBXS1BhZ2VHZXRDb250ZXh0KFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0FQ
SSgmdG9JbXBsKHBhZ2VSZWYpLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSk7CiB9CiAKLVdLUGFn
ZUdyb3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91cChXS1BhZ2VSZWYgcGFnZVJlZikKLXsKLSAgICBy
ZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+cGFnZUdyb3VwKCkpOwotfQotCiBXS1BhZ2VD
b25maWd1cmF0aW9uUmVmIFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihXS1BhZ2VSZWYgcGFn
ZVJlZikKIHsKICAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+Y29uZmlndXJhdGlv
bigpLmNvcHkoKS5sZWFrUmVmKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aAppbmRleCBjNTFiODE2MmM4OTczNGFiMTUyYmVmMGU5OTIzMzdkNTVmMmRlOGE2Li4yNGU4Nzhm
MzEwYmFjYWIyOWI3ZTA5MWU1NWY2YjMxMjI4NTFhZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaApAQCAtNTgsNyArNTgsNiBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9S
VCBXS1R5cGVJRCBXS1BhZ2VHZXRUeXBlSUQodm9pZCk7CiAKIFdLX0VYUE9SVCBXS0NvbnRleHRS
ZWYgV0tQYWdlR2V0Q29udGV4dChXS1BhZ2VSZWYgcGFnZSk7Ci1XS19FWFBPUlQgV0tQYWdlR3Jv
dXBSZWYgV0tQYWdlR2V0UGFnZUdyb3VwKFdLUGFnZVJlZiBwYWdlKTsKIAogV0tfRVhQT1JUIFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKFdLUGFnZVJl
ZiBwYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlQ29uZmlndXJhdGlvblJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcAppbmRleCA3OWJlZDFmZDFlY2U4ODgzYmJiNDg0NTk0
YjY3OTFjNjg1NWIwMWNiLi5iNTA2MjdlMjFmM2UzNGUwOGRkNTNhZmQzNjkzZmVmMzhiM2UwOTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1
cmF0aW9uUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VD
b25maWd1cmF0aW9uUmVmLmNwcApAQCAtNTUsMTYgKzU1LDYgQEAgdm9pZCBXS1BhZ2VDb25maWd1
cmF0aW9uU2V0Q29udGV4dChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdL
Q29udGUKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFByb2Nlc3NQb29sKHRvSW1wbChj
b250ZXh0KSk7CiB9CiAKLVdLUGFnZUdyb3VwUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdl
R3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKQotewotICAgIHJldHVy
biB0b0FQSSh0b0ltcGwoY29uZmlndXJhdGlvbiktPnBhZ2VHcm91cCgpKTsKLX0KLQotdm9pZCBX
S1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKQotewotICAgIHRvSW1wbChjb25m
aWd1cmF0aW9uKS0+c2V0UGFnZUdyb3VwKHRvSW1wbChwYWdlR3JvdXApKTsKLX0KLQogV0tVc2Vy
Q29udGVudENvbnRyb2xsZXJSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29u
dHJvbGxlcihXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgcmV0
dXJuIHRvQVBJKHRvSW1wbChjb25maWd1cmF0aW9uKS0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oCmluZGV4IDI3N2MwNjYxZjI2MzJhZDg5NTkyNmZmOWJhZDRiMGE3YzU2NDFl
MTEuLjcwMjAzNjhhN2QxMmMzNjNhNmQyNmNkMWM3YWYxYTUzNTQzZGFiOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVm
LmgKQEAgLTM5LDkgKzM5LDYgQEAgV0tfRVhQT1JUIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkNyZWF0ZSh2b2lkKTsKIFdLX0VYUE9SVCBXS0NvbnRleHRSZWYgV0tQ
YWdlQ29uZmlndXJhdGlvbkdldENvbnRleHQoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1
cmF0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogCi1XS19FWFBPUlQgV0tQYWdlR3JvdXBSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VH
cm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KIFdLX0VYUE9SVCBX
S1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRl
bnRDb250cm9sbGVyKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CiBXS19F
WFBPUlQgdm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgdXNlckNvbnRlbnRDb250cm9sbGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwCmluZGV4IDY1MTRlZTg2ZGUzYTg0MTQ0ODM3ZGY2MmZj
MTAxM2QyM2NhYTM1YTkuLjk4MGYzZmMwZWVjYTY4YjdkNjcyNDU0YzVlMDYxNWNlZmI2OWNlM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKQEAg
LTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV0tQ
YWdlR3JvdXAuaCIKKyNpbmNsdWRlICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAKICNpbmNsdWRl
ICJBUElBcnJheS5oIgogI2luY2x1ZGUgIkFQSUNvbnRlbnRSdWxlTGlzdC5oIgpAQCAtNDAsMTEg
KzQwLDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotV0tUeXBlSUQgV0tQYWdlR3Jv
dXBHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b0FQSShXZWJQYWdlR3JvdXA6OkFQSVR5cGUp
OwotfQotCiBXS1BhZ2VHcm91cFJlZiBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdL
U3RyaW5nUmVmIGlkZW50aWZpZXIpCiB7CiAgICAgYXV0byBwYWdlR3JvdXAgPSBXZWJQYWdlR3Jv
dXA6OmNyZWF0ZSh0b1dURlN0cmluZyhpZGVudGlmaWVyKSk7CkBAIC02MSwxMSArNTYsNiBAQCBX
S1ByZWZlcmVuY2VzUmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwUmVmKQogICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VHcm91cFJlZiktPnBy
ZWZlcmVuY2VzKCkpOwogfQogCi1XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VHcm91
cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi17
Ci0gICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZUdyb3VwUmVmKS0+dXNlckNvbnRlbnRDb250
cm9sbGVyKCkpOwotfQotCiB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdl
R3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2VSZWYsIFdLVVJMUmVmIGJh
c2VVUkxSZWYsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2Nr
ZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVz
KQogewogICAgIGF1dG8gc291cmNlID0gdG9XVEZTdHJpbmcoc291cmNlUmVmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCmluZGV4IDYzYTEzZjdkNzUyMThi
ZjdlMmViZDAzZWZhMDQ1YjU2OWYzODEwZTIuLjA1NjNlZDc1ZTJkOWM0NjU2MGQ0YWMzNzNmOGYy
MmI5MjkwNTYzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3Jv
dXAuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXS1BhZ2VHcm91cF9oCiAKICNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaD4KICNpbmNsdWRlIDxX
ZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCkBAIC0zNCwyMCArMzUsMTAgQEAK
IGV4dGVybiAiQyIgewogI2VuZGlmCiAKLVdLX0VYUE9SVCBXS1R5cGVJRCBXS1BhZ2VHcm91cEdl
dFR5cGVJRCh2b2lkKTsKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBmaWxlIG9uY2UgcmRhcjovLzc3
OTM5NTk3IGFuZCByZGFyOi8vNzc5Mzk4ODMgYXJlIHJlc29sdmVkLgogCi1XS19FWFBPUlQgV0tQ
YWdlR3JvdXBSZWYgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ1JlZiBp
ZGVudGlmaWVyKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwot
V0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXApOwotCi1XS19FWFBPUlQgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYgV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIoV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVl
dChXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYg
YmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tl
ZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOwotV0tfRVhQT1JUIHZv
aWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoV0tQYWdlR3JvdXBSZWYgcGFn
ZUdyb3VwKTsKLSAgICAKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclNjcmlwdChX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYgYmFz
ZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tlZFVS
TFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMsIF9XS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNlclNjcmlw
dHMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKK1dLX0VYUE9SVCBXS1BhZ2VHcm91cFJlZiBX
S1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nUmVmIGlkZW50aWZpZXIpIFdL
X0NfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VDb25maWd1cmF0aW9uR2V0
UHJlZmVyZW5jZXMpOworV0tfRVhQT1JUIFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApIFdLX0NfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMpOwogCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmEwOTYyYjg2NDBjZjM1YWEw
NzE3YjcxZmIxNzRkMzI4ZGQ2MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tQYWdlR3JvdXAuaD4KKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZp
bGUgb25jZSByZGFyOi8vNzQxNDI5OTUgaXMgcmVzb2x2ZWQuCisKK3ZvaWQgV0tQYWdlR3JvdXBT
ZXRQcmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJlZiwgV0tQcmVmZXJlbmNlc1JlZik7Cit2b2lkIFdL
UGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNv
dXJjZSwgV0tVUkxSZWYgYmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdL
QXJyYXlSZWYgYmxvY2tlZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMp
Owordm9pZCBXS1BhZ2VHcm91cFJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhXS1BhZ2VHcm91cFJl
Zik7Cit2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclNjcmlwdChXS1BhZ2VHcm91cFJlZiwgV0tTdHJp
bmdSZWYgc291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0
ZXJucywgV0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcywgX1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUpOwordm9pZCBXS1BhZ2VHcm91cFJl
bW92ZUFsbFVzZXJTY3JpcHRzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91
cC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
R3JvdXAuaAppbmRleCA2NjkyMzBmNWNiNmEwMzUyYzkwMjVmOTFkZTY2OGUzNjBhODU5M2I2Li5h
NmNkYzQxYTQxMmY3ZGJkZGIzZmU4NDMzYTQxZDdiMGVjMzIwNDJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmgKQEAgLTI4LDYgKzI4LDggQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaD4KIAorLy8gRklY
TUU6IFJlbW92ZSB0aGlzIGZpbGUgb25jZSByZGFyOi8vNzQxNDI5OTUgaXMgcmVzb2x2ZWQuCisK
IFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tVc2VyQ29udGVudENvbnRy
b2xsZXIgYW5kIFdLUHJlZmVyZW5jZXMiLCBtYWNvcygxMC4xMCwgMTAuMTQuNCksIGlvcyg4LjAs
IDEyLjIpKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIDogTlNPYmplY3QKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0R3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5tbQppbmRleCA4ZjQxYjEyMjc0MDRkZTI2ODM5MmYyNDk4NWIwZTI1
NWUzMzFlZGIwLi43OTRjZjFmYWYzOGQyNjE1OGVmMmY4OTlkYjdlYmYwNTY0YTg5Mjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRHcm91cC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiQVBJU3RyaW5n
LmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLQXJyYXkuaCIKLSNpbXBvcnQg
IldLUGFnZUdyb3VwLmgiCisjaW1wb3J0ICJXS1BhZ2VHcm91cEludGVybmFsLmgiCiAjaW1wb3J0
ICJXS1ByZWZlcmVuY2VzUmVmLmgiCiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgogI2ltcG9ydCAi
V0tTaGFyZWRBUElDYXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCAwZWI1YjMyMjlmM2FlZmQxN2JmNmI1MjJjNTQ0MjZkYmRlMTI5
ZTZiLi5lZTIwZGU3YThlMzFkMmRkNTQ1NDk1NGIyMDA2ZDA4YmVkNWZlM2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1NywxNiAr
NDU3LDkgQEAgc3RhdGljIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRD
YWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0V2Vic2l0ZURhdGFTdG9yZShbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0tPl93
ZWJzaXRlRGF0YVN0b3JlLmdldCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0RGVmYXVs
dFdlYnNpdGVQb2xpY2llcyhbX2NvbmZpZ3VyYXRpb24gZGVmYXVsdFdlYnBhZ2VQcmVmZXJlbmNl
c10tPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCkpOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlm
IChhdXRvIHBhZ2VHcm91cCA9IFdlYktpdDo6dG9JbXBsKFtfY29uZmlndXJhdGlvbiBfcGFnZUdy
b3VwXSkpCi0gICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAocGFnZUdyb3Vw
KTsKLSAgICBlbHNlCi0jZW5kaWYKLSAgICB7Ci0gICAgICAgIE5TU3RyaW5nICpncm91cElkZW50
aWZpZXIgPSBbX2NvbmZpZ3VyYXRpb24gX2dyb3VwSWRlbnRpZmllcl07Ci0gICAgICAgIGlmIChn
cm91cElkZW50aWZpZXIubGVuZ3RoKQotICAgICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNl
dFBhZ2VHcm91cChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6Y3JlYXRlKGdyb3VwSWRlbnRpZmllciku
cHRyKCkpOwotICAgIH0KKyAgICBOU1N0cmluZyAqZ3JvdXBJZGVudGlmaWVyID0gW19jb25maWd1
cmF0aW9uIF9ncm91cElkZW50aWZpZXJdOworICAgIGlmIChncm91cElkZW50aWZpZXIubGVuZ3Ro
KQorICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKFdlYktpdDo6V2ViUGFn
ZUdyb3VwOjpjcmVhdGUoZ3JvdXBJZGVudGlmaWVyKS5wdHIoKSk7CiAKICAgICBwYWdlQ29uZmln
dXJhdGlvbi0+c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMobWFrZVZlY3RvcjxTdHJp
bmc+KFtfY29uZmlndXJhdGlvbiBfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNdKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggY2U1YjdiZDViMDFhYmM4MjEwOTVkMDU1OTVhYWU5
NjliNjhjZjVmZS4uNGUxODk0MmJhYWJlZjY5NTQ2NTg3YTI2M2JiMDFlOTMwYzRhNzhmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTE1NSw3ICsxNTUsNiBAQCBzdGF0aWMgYm9vbCBkZWZh
dWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogICAg
IEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ7CiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IF9wYWdlR3JvdXA7CiAg
ICAgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlwczsKICAgICBCT09MIF9zZXJ2aWNlQ29udHJvbHNF
bmFibGVkOwogICAgIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXI7CkBAIC00MjksNyArNDI4LDYgQEAgc3RhdGljIGJvb2wgZGVmYXVsdFNob3VsZERlY2lk
ZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCkKICAgICBjb25maWd1cmF0aW9u
LT5fc2hvd3NVUkxzSW5Ub29sVGlwcyA9IHNlbGYtPl9zaG93c1VSTHNJblRvb2xUaXBzOwogICAg
IGNvbmZpZ3VyYXRpb24tPl9zZXJ2aWNlQ29udHJvbHNFbmFibGVkID0gc2VsZi0+X3NlcnZpY2VD
b250cm9sc0VuYWJsZWQ7CiAgICAgY29uZmlndXJhdGlvbi0+X3JlcXVpcmVzVXNlckFjdGlvbkZv
ckVkaXRpbmdDb250cm9sc01hbmFnZXIgPSBzZWxmLT5fcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlcjsKLSAgICBjb25maWd1cmF0aW9uLT5fcGFnZUdyb3VwID0gc2Vs
Zi5fcGFnZUdyb3VwOwogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIGNvbmZpZ3VyYXRpb24tPl9kYXRhRGV0ZWN0b3JUeXBlcyA9
IHNlbGYtPl9kYXRhRGV0ZWN0b3JUeXBlczsKQEAgLTExMzksMTYgKzExMzcsNiBAQCBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRp
dGluZ0NvbnRyb2xzTWFuYWdlciA9IHJlcXVpcmVzVXNlckFjdGlvbjsKIH0KIAotLSAoV0tQYWdl
R3JvdXBSZWYpX3BhZ2VHcm91cAotewotICAgIHJldHVybiBfcGFnZUdyb3VwLmdldCgpOwotfQot
Ci0tICh2b2lkKV9zZXRQYWdlR3JvdXA6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cAotewotICAg
IF9wYWdlR3JvdXAgPSBwYWdlR3JvdXA7Ci19Ci0KIC0gKHZvaWQpX3NldENQVUxpbWl0Oihkb3Vi
bGUpY3B1TGltaXQKIHsKICAgICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldENQVUxpbWl0KGNwdUxp
bWl0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKaW5kZXggMjQyNWVjNmZmY2Fj
MGJjNTZkNjRiOGQzNzk1Mjk0MzFmNTlhMDM3OC4uMjQzOGFjZGRmZTYxN2MyNzAxYzdmYjgyNDdi
Mzg2YTBiYjM3YWZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTEw
MSw3ICsxMDEsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxh
eSkgewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJs
ZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiSW1hZ2Ug
Y29udHJvbHMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMiwgV0tfTUFDX1RC
QSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRSZXF1aXJl
c1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9PTCBfcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldENQVUxp
bWl0OikgZG91YmxlIF9jcHVMaW1pdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UGFnZUdyb3VwOikg
V0tQYWdlR3JvdXBSZWYgX3BhZ2VHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFdl
YnNpdGVEYXRhU3RvcmU6KSBfV0tXZWJzaXRlRGF0YVN0b3JlICpfd2Vic2l0ZURhdGFTdG9yZSBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJzaXRlRGF0YVN0b3JlIiwgbWFj
b3MoMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNjgwMWZjNTEyMTcwY2JmOTlhNjI0
OTcxMjcwMWU0YTFmMDliMjA4Li44YmU1MTgzMjExYTllNGRlOWY4ZGNiMzU1MzdiYWIzNTAxNTEy
YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEyNzYsNiArMTI3Niw3IEBACiAJCTVDOUE5MTEyMjI4RjY5Q0MwMDVDNUIxNyAvKiBY
UENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsg
fTsKIAkJNUM5QTkxMTMyMjhGNjlDRDAwNUM1QjE3IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VD
NDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OwogCQk1QzlBOTExNDIyOEY2OUNF
MDA1QzVCMTcgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2Vydmlj
ZU1haW4ubW0gKi87IH07CisJCTVDOUREMzI2MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91
cEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzlERDMyNTI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oICovOyB9
OwogCQk1QzlFNTY4MzFERjdGMUIzMDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUU1NjgxMURGN0Yw
NTUwMEM5RUUzMyAvKiBXS1dlYnNpdGVQb2xpY2llcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDQTI2RDgxMjE3QUJENUIwMEY5N0EzNSAvKiBX
S1NhZmVCcm93c2luZ1dhcm5pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDQTI2RDgwMjE3QUJCQjYwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dh
cm5pbmcuaCAqLzsgfTsKIAkJNUNBMjZEODMyMTdBRDFCODAwRjk3QTM1IC8qIFdLU2FmZUJyb3dz
aW5nV2FybmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDQTI2RDdGMjE3QUJCQjYwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcubW0g
Ki87IH07CkBAIC00NDk3LDYgKzQ0OTgsNyBAQAogCQk1QzhERDM4MTFGRTQ1NUNBMDBGMkE1NTYg
LyogV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2Vic2l0ZUF1dG9wbGF5UXVpcmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM5QzVDMDIyNDMwNTM1ODAwQkI2NzQwIC8qIFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckNvbnRlbnRDb250cm9s
bGVyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlDNUMwMzI0
MzA1MzU4MDBCQjY3NDAgLyogVXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQ29udGVudENvbnRyb2xsZXJQ
YXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5REQzMjUyNjRD
N0Y3NDAwRTA3NDQyIC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tQYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzlFNTY4MDFERjdGMDU1MDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tXZWJzaXRlUG9saWNp
ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlFNTY4MTFERjdGMDU1MDBD
OUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tXZWJzaXRlUG9saWNpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM5RUYyRTcyMUYwNThGOTAwM0JEQzU2IC8qIE5ldHdvcmtTdG9yYWdlU2Vzc2lvblByb3ZpZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDMxMSw2ICsxMDMx
Myw3IEBACiAJCQkJMUFCOEExRUYxODQwMEIwMDAwRTlBRTY5IC8qIFdLUGFnZUZvcm1DbGllbnQu
aCAqLywKIAkJCQlCQzdCNjMzNjEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwICov
LAogCQkJCUJDN0I2MzM1MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5oICovLAorCQkJ
CTVDOUREMzI1MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91cEludGVybmFsLmggKi8sCiAJ
CQkJMkQ5RUEzMEMxQTk2Q0I1OTAwMkQyODA3IC8qIFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50
LmggKi8sCiAJCQkJMUFCOEExRUIxODQwMDgwOTAwRTlBRTY5IC8qIFdLUGFnZUxvYWRlckNsaWVu
dC5oICovLAogCQkJCTJENzMwMzc4MUE3QzJCNzUwMEY4RjQ4NyAvKiBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50LmggKi8sCkBAIC0xMjg2MSw2ICsxMjg2NCw3IEBACiAJCQkJMUFCOEExRjYxODQwMEI5
RDAwRTlBRTY5IC8qIFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUI4QTFGMDE4NDAwQjAwMDBFOUFFNjkgLyogV0tQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM3QjYzMzcxMkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1QzlERDMyNjI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ5RUEzMEQxQTk2Q0I1OTAwMkQyODA3IC8q
IFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI4QTFF
QzE4NDAwODA5MDBFOUFFNjkgLyogV0tQYWdlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzJEMDIxOTEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBmY2VhMWFjMGE5OGQ0YmE0Mzg0NjYwMmZjMDViNTFhNjQzYzE4MGQ1Li5lM2NhMDQ2YTMw
ZGY0YjFmYTJjNGMxZmRjOGJjNzRlZWJhNTE1MTc5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDUtMTMgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgYXMgbXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL0N1
c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGlu
Q3JlYXRlUGFnZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVt
ZXJhdGVNZWRpYURldmljZXMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hT
dGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1
bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5v
dGlmaWNhdGlvbnMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2Vi
Vmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFn
ZUlzUGxheWluZ0F1ZGlvLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5n
Rm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVu
dURvd25sb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1
cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVz
Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5a
b29tSW5pdGlhbEZyYW1lLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6RnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWU6OmluaXRpYWxpemVWaWV3KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQ
bGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpnZW5l
cmF0ZVBhZ2VDb25maWd1cmF0aW9uKToKKwogMjAyMS0wNS0xMiAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb3Rpb25NYXJrXSBVcGRhdGUgcGxh
biBmaWxlIGFmdGVyIHIyNzc0MDYKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9X
ZWJLaXRCcm93c2VyV2luZG93LmNwcCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93
c2VyV2luZG93LmNwcAppbmRleCA5MjQ1ZGZjN2Y4MWYzYTgwNDgwYTBkZGRjZTdmZmNjN2UwOWVk
NDA2Li43NjM0Yzg0MGQ2MTMxYjEwOWUwNmVjNzE4YjcwOWFiZjA1NTQyNmYwIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKKysrIGIvVG9v
bHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwCkBAIC0xMTEsMTcgKzEx
MSwxMiBAQCBSZWY8QnJvd3NlcldpbmRvdz4gV2ViS2l0QnJvd3NlcldpbmRvdzo6Y3JlYXRlKEJy
b3dzZXJXaW5kb3dDbGllbnQmIGNsaWVudCwgSFdORAogewogICAgIGF1dG8gY29uZiA9IGFkb3B0
V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKIAotICAgIGF1dG8gcHJlZnMgPSBhZG9w
dFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7CisgICAgYXV0byBwcmVmcyA9IFdLUGFnZUNvbmZp
Z3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25mLmdldCgpKTsKIAotICAgIGF1dG8gcGFnZUdyb3Vw
ID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKGNyZWF0ZVdLU3RyaW5n
KCJXaW5NaW5pQnJvd3NlciIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBh
Z2VHcm91cChjb25mLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUGFnZUdyb3VwU2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpLCBwcmVmcy5nZXQoKSk7CisgICAgV0tQcmVmZXJl
bmNlc1NldE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZChwcmVmcywgZmFsc2UpOworICAgIFdLUHJl
ZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZzLCB0cnVlKTsKIAotICAgIFdL
UHJlZmVyZW5jZXNTZXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJlZnMuZ2V0KCksIGZhbHNl
KTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmcy5nZXQo
KSwgdHJ1ZSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFByZWZlcmVuY2VzKGNvbmYuZ2V0
KCksIHByZWZzLmdldCgpKTsKLQotICAgIGF1dG8gY29udGV4dCA9YWRvcHRXSyhXS0NvbnRleHRD
cmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRv
cHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAgICAgV0tQ
YWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZi5nZXQoKSwgY29udGV4dC5nZXQoKSk7CiAK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRCcm93c2VyV2luZG93KGNsaWVudCwgY29u
Zi5nZXQoKSwgbWFpblduZCkpOwpAQCAtMjIzLDggKzIxOCw4IEBAIHZvaWQgV2ViS2l0QnJvd3Nl
cldpbmRvdzo6bmF2aWdhdGVUb0hpc3RvcnkoVUlOVCBtZW51SUQpCiB2b2lkIFdlYktpdEJyb3dz
ZXJXaW5kb3c6OnNldFByZWZlcmVuY2UoVUlOVCBtZW51SUQsIGJvb2wgZW5hYmxlKQogewogICAg
IGF1dG8gcGFnZSA9IFdLVmlld0dldFBhZ2UobV92aWV3LmdldCgpKTsKLSAgICBhdXRvIHBncm91
cCA9IFdLUGFnZUdldFBhZ2VHcm91cChwYWdlKTsKLSAgICBhdXRvIHByZWYgPSBXS1BhZ2VHcm91
cEdldFByZWZlcmVuY2VzKHBncm91cCk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24ocGFnZSkpOworICAgIGF1dG8gcHJlZiA9IFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25maWd1cmF0aW9uLmdldCgpKTsKICAg
ICBzd2l0Y2ggKG1lbnVJRCkgewogICAgIGNhc2UgSURNX0FDQ19DT01QT1NJVElORzoKICAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHByZWYsIGVu
YWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5o
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA1ZTg1MDI2ODlm
MTNlOGVkMTE5ZTMxYTc2ZjViY2VjNjA5OGFjZTc1Li5hZjU5YWJlZDY5ZDA4ODk5MjAwODc0YzM1
YzQ3NjNkYmU0Yjc4NTY2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
V2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAg
LTczLDExICs3Myw4IEBAIGNsYXNzIFBsYXRmb3JtV2ViVmlldyB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUGxhdGZvcm1XZWJWaWV3KTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQbGF0Zm9y
bVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1X
ZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgPSAwKTsKKyAgICBleHBsaWNpdCBQ
bGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmKTsKICAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZp
ZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgZXhwbGlj
aXQgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIENsYXNzIHdr
Vmlld1N1YmNsYXNzKTsKLSNlbmRpZgogICAgIH5QbGF0Zm9ybVdlYlZpZXcoKTsKIAogICAgIFdL
UGFnZVJlZiBwYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyMGVmNzQ0
YmZhZDcwZDhjNzM4ZGMwZDhhODFmMjg3Y2MxOTBlOWEuLjcyMDZjOWFhOWI0NzczNjc1N2JkMmMw
MTYxMDkzMGI4ZWRmMGU4OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NzcsNyArNjc3
LDcgQEAKIAkJN0M5RUQ5OEIxN0ExOUY0QjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdTdHJp
a2V0aHJvdWdoLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M5RUQ5OEExN0ExOUQwNjAwRTREQzMzIC8qIGF0dHJpYnV0ZWRTdHJpbmdT
dHJpa2V0aHJvdWdoLmh0bWwgKi87IH07CiAJCTdDQjE4NEM2MUFBM0YyMTAwMDY2RURGRCAvKiBD
b250ZW50RXh0ZW5zaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0IxODRDNDFBQTNGMjEwMDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lvbnMu
Y3BwICovOyB9OwogCQk3Q0JENUEyMzIyREU0MkE2MDA0QTlFMzIgLyogV1RGU3RyaW5nVXRpbGl0
aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
QkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovOyB9Owot
CQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQ0I0REE3MUM4M0FFNzMwMENDNjkx
OCAvKiBQYWdlR3JvdXAuY3BwICovOyB9OworCQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyog
UGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLzsgfTsKIAkJN0ND
Qjk5MjExRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25B
Y3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlv
bkFjdGlvbi5tbSAqLzsgfTsKIAkJN0NDQjk5MjMxRDNCNEE0NjAwMzkyMkY2IC8qIG9wZW4tbXVs
dGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQjk5MjIxRDNCNDRFNzAwMzkyMkY2IC8qIG9wZW4tbXVs
dGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgKi87IH07CiAJCTdDQ0U3RUE1MUE0MTFBMDgwMDQ0N0M0
QyAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMwODEyMjQwMTNGQzE3MjQwMERDMzlBRSAvKiBKYXZhU2NyaXB0VGVz
dE1hYy5tbSAqLzsgfTsKQEAgLTI0NzQsNyArMjQ3NCw3IEBACiAJCTdDQkJBMDc2MTlCQjhBOTEw
MEJCRjAyNSAvKiBPU09iamVjdFB0ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBPU09iamVjdFB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
QkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV1RGU3RyaW5nVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NDM0UxRkExOTdFMjM0MTAwQkU2MjUyIC8qIFVzZXJDb250ZW50Q29udHJvbGxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJDb250ZW50
Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0NDQjREQTcxQzgz
QUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYWdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZUdyb3VwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlv
bkluTmF2aWdhdGlvbkFjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0I5OTIyMUQzQjQ0RTcwMDM5MjJGNiAvKiBvcGVuLW11
bHRpcGxlLWV4dGVybmFsLXVybC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm9w
ZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Q0NFN0U4QzFBNDExNDRFMDA0NDdDNEMgLyogbGliVGVzdFdlYktpdEFQSS5hICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBp
bmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJUZXN0V2ViS2l0QVBJLmE7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0zNDgzLDggKzM0ODMsOCBAQAogCQkJCTYzNTE5
OTI3MjIyNzVDNkEwMDg5MEFEMyAvKiBOYXZpZ2F0aW9uQWN0aW9uLm1tICovLAogCQkJCTVDOEJD
Nzk4MjE4Q0YzRTkwMDgxMzg4NiAvKiBOZXR3b3JrUHJvY2Vzcy5tbSAqLywKIAkJCQk1Q0FFNDYz
NzIwMTkzN0NEMDA1MTYxMEYgLyogTmV0d29ya1Byb2Nlc3NDcmFzaE5vblBlcnNpc3RlbnREYXRh
U3RvcmUubW0gKi8sCi0JCQkJNDZBODBGMjUyNjRDMjlENDAwRUVGMjBEIC8qIE5vdGlmaWNhdGlv
bkFQSS5tbSAqLywKIAkJCQlDRENGRkVDMDIyRTI2OEQ1MDBERjQyMjMgLyogTm9QYXVzZVdoZW5T
d2l0Y2hpbmdUYWJzLm1tICovLAorCQkJCTQ2QTgwRjI1MjY0QzI5RDQwMEVFRjIwRCAvKiBOb3Rp
ZmljYXRpb25BUEkubW0gKi8sCiAJCQkJQ0QyRDBEMTkyMTM0NjU1NjAwMThDNzg0IC8qIE5vd1Bs
YXlpbmcubW0gKi8sCiAJCQkJMkVDRkY1NTQxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdD
b250cm9sc1Rlc3RzLm1tICovLAogCQkJCUExMEYwNDdDMUUzQUQyOUMwMEM5NUUxOSAvKiBOU0Zp
bGVNYW5hZ2VyRXh0cmFzLm1tICovLApAQCAtNDMzMSw3ICs0MzMxLDcgQEAKIAkJCQk5M0Y3RTg2
RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVz
X0J1bmRsZS5jcHAgKi8sCiAJCQkJMEY1NjUxRjYxRkNFNEREQjAwMzEwRkJDIC8qIE5vSGlzdG9y
eUl0ZW1TY3JvbGxUb0ZyYWdtZW50Lm1tICovLAogCQkJCTFDQjJGMjdCMjRGODgzNzkwMDBBNUJD
MSAvKiBPcnRob2dvbmFsRmxvd0F2YWlsYWJsZVNpemUubW0gKi8sCi0JCQkJN0NDQjREQTcxQzgz
QUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8sCisJCQkJN0NDQjREQTcxQzgzQUU3MzAw
Q0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLywKIAkJCQlCQzkwOTc3OTEyNTU3MUFCMDAwODM3NTYg
LyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCiAJCQkJQkMyRDAwNDgxMkE5RkRGQTAwRTczMkEzIC8q
IFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwICovLAogCQkJ
CTI3MkE2OTBGMjJGMDEyQzcwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLywKQEAgLTU0
NTIsNyArNTQ1Miw2IEBACiAJCQkJQ0RCMjEzQkQyNEVGNTIyODAwRkRFMzAxIC8qIEZ1bGxzY3Jl
ZW5Gb2N1cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNERTc3RDI1MjVBNjU5MUMwMEQ0MTE1RSAv
KiBGdWxsc2NyZWVuUG9pbnRlckxlYXZlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0REQzdDNjky
NUZGRjZEMDAwMjI0Mjc4IC8qIEZ1bGxzY3JlZW5SZW1vdmVOb2RlQmVmb3JlRW50ZXIubW0gaW4g
U291cmNlcyAqLywKLQkJCQk0NkE4MEYyNjI2NEMyOUQ0MDBFRUYyMEQgLyogTm90aWZpY2F0aW9u
QVBJLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCRkNDNDUxQTlGRjQ1MzAwQTdCNjkxIC8qIEZ1
bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODNEQjc5Njkx
RUY2M0IzQzAwQkZBNUU1IC8qIEZ1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUY4MUE0MTFBRTYwMDQ0N0M0QyAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTU1ODMsNiArNTU4Miw3IEBACiAJCQkJN0NDRTdGMDUxQTQxMUFFNjAwNDQ3QzRDIC8qIE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjU2NTFGNzFGQ0U0RERDMDAzMTBGQkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21lbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4M0YyMkM2NDIwQjM1NUY4MDAzNDI3N0UgLyogTm9Qb2xp
Y3lEZWxlZ2F0ZVJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDZBODBGMjYyNjRDMjlE
NDAwRUVGMjBEIC8qIE5vdGlmaWNhdGlvbkFQSS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEMkQw
RDFBMjEzNDY1NTYwMDE4Qzc4NCAvKiBOb3dQbGF5aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkVDRkY1NTUxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE1OUYyNjcyNjBENDNFMzAwQjJEQTNDIC8qIE5vd1BsYXlpbmdJ
bmZvVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC01NTk3LDcgKzU1OTcsNyBAQAogCQkJCUMx
MDRCQzFGMjU0NzIzNzEwMEMwNzhDOSAvKiBPdmVycmlkZUFwcGxlTGFuZ3VhZ2VzUHJlZmVyZW5j
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEQTI1ODZGMjI1QzY3REMwMEI0NUMxQyAvKiBPdmVy
cmlkZVZpZXdwb3J0QXJndW1lbnRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTUzQUJCMzUyNUMw
RDY4MjAwNEM4QjczIC8qIFBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2Vz
ICovLAotCQkJCTdDQ0I0REE5MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJN0NDQjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjA3MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZEJh
c2ljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjA4MUE0MTFBRTYwMDQ0N0M0QyAvKiBQ
YWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI3MkE2OTEwMjJGMDEyREEwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0
b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvQ3Vz
dG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW0KaW5kZXggNDdmNWU4ODVjZDZhMGMxNGYzOWFmYjcx
OGE4YmM1ZDk5ZTlmNWM3ZC4uYWQzOTkxZDU2ZjIxZTU2MmUyNDVhMjQwN2I2MzY1YzQ5ODhlNmFi
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNT
eW5jWEhSVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3Rv
Y29sc1N5bmNYSFJUZXN0Lm1tCkBAIC01Miw5ICs1Miw3IEBAIFRFU1QoV2ViS2l0MkN1c3RvbVBy
b3RvY29sc1Rlc3QsIFN5bmNYSFIpCiAgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0R3Jv
dXA+IGJyb3dzaW5nQ29udGV4dEdyb3VwID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0R3Jv
dXAgYWxsb2NdIGluaXRXaXRoSWRlbnRpZmllcjpAIlRlc3RJZGVudGlmaWVyIl0pOwogCiAgICAg
Ly8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZpbGUgcmVzb3VyY2VzCi0gICAgV0tSZXRh
aW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5j
ZXNDcmVhdGUoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMc0FsbG93ZWQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0
UHJlZmVyZW5jZXMoYnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCkuX3BhZ2VHcm91cFJlZiwgcHJl
ZmVyZW5jZXMuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoYnJvd3NpbmdDb250ZXh0
R3JvdXAuZ2V0KCkuX3BhZ2VHcm91cFJlZiksIHRydWUpOwogCiAgICAgUmV0YWluUHRyPFdLVmll
dz4gd2tWaWV3ID0gYWRvcHROUyhbW1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBwcm9jZXNzR3JvdXA6cHJvY2Vzc0dyb3VwLmdldCgpIGJyb3dz
aW5nQ29udGV4dEdyb3VwOmJyb3dzaW5nQ29udGV4dEdyb3VwLmdldCgpXSk7CiAgICAgIFJldGFp
blB0cjxUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEJsb2NrVG9S
dW5PbkxvYWQ6XihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKnNlbmRlcikgewpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3Jl
YXRlUGFnZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21X
aXRoaW5DcmVhdGVQYWdlLmNwcAppbmRleCAyODg1ZjUyYmE4MWEyM2UzMDEyNzMzMTQ5NGU3Y2Iy
MTdjM2M1NjdjLi5kNjVkNDUzNTg0MDM1MjRhNWQ3NWVhOThiNGU3NWNmNWNmZWE5YTZmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5D
cmVhdGVQYWdlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9z
ZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcApAQCAtNzYsMTAgKzc2LDggQEAgVEVTVChXZWJLaXQs
IENsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UpCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdl
YlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAKICAgICAvLyBBbGxvdyBmaWxlIFVSTHMg
dG8gbG9hZCBub24tZmlsZSByZXNvdXJjZXMKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2Vz
UmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdl
KCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25m
aWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRV
bml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVl
KTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMu
Z2V0KCkpOwogICAgIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJjbG9zZS1mcm9tLXdpdGhpbi1jcmVhdGUtcGFnZSIs
ICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7
CkBAIC0xMjEsMTAgKzExOSw4IEBAIFRFU1QoV2ViS2l0LCBDcmVhdGVQYWdlVGhlbkRvY3VtZW50
T3Blbk1JTUVUeXBlKQogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwg
JnVpQ2xpZW50LmJhc2UpOwogCiAgICAgLy8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZp
bGUgcmVzb3VyY2VzCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5j
ZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKKyAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJW
aWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNz
RnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdl
R3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKIAogICAg
IHRlc3REb25lID0gZmFsc2U7CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0
V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIndpbmRvdy1vcGVuLXRoZW4tZG9jdW1lbnQt
b3BlbiIsICJodG1sIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCmluZGV4IDU1YWEzN2UxMzAy
YzI2ZDJlOTUwM2QwNWE4OGJjNzE0NWNmYzY1MzkuLmQwMmZmMjNhMjNkYmQ1NzhiNTE3MWQyNjRi
NTliYjA4NWEwY2IyOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKQEAgLTgyLDkgKzgyLDcg
QEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250
ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWcKIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBw
YWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljUGFnZUdyb3Vw
IikpKTsgCi0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVu
c2lvbkJhc2ljIiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5k
bGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25CYXNpYyIpKTsKIAogICAgIFdLQ29udGV4dEluamVj
dGVkQnVuZGxlQ2xpZW50VjAgaW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiAgICAgbWVtc2V0KCZpbmpl
Y3RlZEJ1bmRsZUNsaWVudCwgMCwgc2l6ZW9mKGluamVjdGVkQnVuZGxlQ2xpZW50KSk7CkBAIC05
OCw3ICs5Niw3IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNp
YykKICAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNo
ZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHRlbnNpb25z
IGZvciBlYWNoIGZyYW1lIGFyZSBpbnN0YWxsZWQgaW4gZWFjaCB3b3JsZC4KICAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gdXJsMSA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
InNpbXBsZS1pZnJhbWUiLCAiaHRtbCIpKTsKQEAgLTEzNyw5ICsxMzUsNyBAQCBURVNUKFdlYktp
dCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMpCiAKIFRFU1QoV2ViS2l0LCBET01X
aW5kb3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdy
b3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZp
ZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2lj
UGFnZUdyb3VwIikpKTsKLQotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2lu
ZG93RXh0ZW5zaW9uQmFzaWMiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljIikpOwogCiAgICAgV0tDb250
ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1z
ZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQp
KTsKQEAgLTE1Myw3ICsxNDksNyBAQCBURVNUKFdlYktpdCwgRE9NV2luZG93RXh0ZW5zaW9uQ3Jh
c2hPblJlbG9hZCkKICAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNr
L2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgp
LCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRl
bnNpb25Ob0NhY2hlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdp
bmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCmluZGV4IGUxNjk2ZDViZDY1Njk0NzI3OGY5NDc0ODUy
NTMxNzJiYzQ5YjdjYTcuLmM3ZDBmOGQwOGVhMjI0MmFiYzdhZDM4NjUyNDlhYThjMjU0ZjIxMDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCkBAIC04Myw5ICs4Myw3IEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tT
dHJpbmdSZWYgbWVzc2FnCiAKIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNp
b25Ob0NhY2hlKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAg
PSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVQYWdlR3JvdXAiKSkpOwot
Ci0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25Ob0Nh
Y2hlIiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0
KCJET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlIikpOwogCiAgICAgV0tDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnRWMSBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1zZXQoJmluamVjdGVk
QnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQpKTsKQEAgLTk4LDcg
Kzk2LDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUp
CiAgICAgLy8gRGlzYWJsZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNl
dENhY2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsK
IAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5n
ZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAg
ICAvLyBNYWtlIHN1cmUgdGhlIGV4dGVuc2lvbnMgZm9yIGVhY2ggZnJhbWUgYXJlIGluc3RhbGxl
ZCBpbiBlYWNoIHdvcmxkLgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwxID0gYWRvcHRX
SyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFy
dFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKaW5kZXggZGE0NTQ0N2Nh
ZjEwMDQxMWVhMjczZWI1ZmM1MzFkZjcxM2FlMDA0Yy4uZDRhMzUxMjM0NWVkNWMyYTQyM2E2M2Y4
YjA5NmY2YmNlMzdiYjU5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2guY3BwCkBAIC00OCwxMCArNDgsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNU
KFdlYktpdCwgRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCkKIHsKLSAgICBX
S1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91
cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEb2N1
bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hUZXN0UGFnZUdyb3VwIikpKTsgCi0KLSAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRD
cmFzaFRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVk
QnVuZGxlVGVzdCgiRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCIpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJ
Q2xpZW50VjAgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xp
ZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVt
ZXJhdGVNZWRpYURldmljZXMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
RW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcAppbmRleCBhM2Q3YjljZGQ3MDQxODhlZmVlNzNmZmIw
ZjEwYzU4MzE3MDc5MDQ3Li5hYjdhNmYyNDQ3NTgzN2NiYmQ1NTliOGZiOGQxZjZjNWI1MjcwM2Vj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVN
ZWRpYURldmljZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Vu
dW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAKQEAgLTUxLDE4ICs1MSwxOCBAQCBURVNUKFdlYktpdCwg
RW51bWVyYXRlRGV2aWNlcykKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4
dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWluUHRyPFdL
UGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElk
ZW50aWZpZXIoVXRpbDo6dG9XSygiRW51bWVyYXRlRGV2aWNlcyIpLmdldCgpKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmls
ZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVk
aWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0K
ICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAs
IHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDY7CiAgICAg
dWlDbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luID0gY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uQ2FsbGJhY2s7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3
KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1Bh
Z2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZp
Z3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1l
ZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAg
V0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVm
ZXJlbmNlcywgZmFsc2UpOworCisKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5w
YWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIGF1dG8gdXJsID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVVUkxGb3JSZXNvdXJjZSgiZW51bWVyYXRlTWVkaWFEZXZpY2VzIiwgImh0bWwiKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNz
aW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNw
cAppbmRleCA2ODVmOTQzYWI3MmJjNmM3NGVmZmIwOTM1YWI2ZmNkOWEzMWVmYjQ1Li4wOTFiZTJj
MmM5ZDg4YzhhNWUzMWY1MzFjOTUzM2NmODlkYjkxN2Y2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVt
ZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKQEAgLTc3LDEyICs3Nyw5
IEBAIFRFU1QoV2ViS2l0LCBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJh
Y2spCiAKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwg
JnBhZ2VMb2FkZXJDbGllbnQuYmFzZSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2Vz
UmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKKyAgICBX
S1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3
ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7CiAKLSAgICBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdl
KCkpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJlbmNl
cy5nZXQoKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgicHVzaC1zdGF0ZSIsICJodG1sIikpOwogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9J
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwCmluZGV4IDZk
NGYxYjdmNDViMTAxNWY5NWEwYzU2M2UyZmVmMmVlOGZhYjdmMjYuLjFlYmNkNGVlOGVhZmUxYjIy
ZTBjM2E1OTU0YWJjMTJkMzI5MzNjNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5k
bGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcApAQCAtNTAsMTAgKzUwLDggQEAg
c3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0RW5hYmxlZChXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgYWxlcnRUZXh0LCBXS0YKIAogVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlTm9E
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCkKIHsKLSAgICBXS1JldGFpblB0cjxX
S1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJ
ZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJbmplY3RlZEJ1bmRsZU5v
RGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCi0gICAg
V0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVD
b250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29u
dGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JUZXN0IikpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1z
ZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKQEAgLTg0LDEwICs4Miw4IEBAIHN0
YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydERpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBhbGVydFRleHQsIFdLCiAKIFRFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZURpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCi0gICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0
Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0
aW5zQmVoYXZpb3JUZXN0IiwgcGFnZUdyb3VwLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJ
bmplY3RlZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvclRlc3QiKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGll
bnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNo
YWRvd1Jvb3RzT3Blbi5jcHAKaW5kZXggZTkwOGIxYTgzYzhmOGQ5M2Y3ODY5ODJhZTMyNTU4MWU0
MDc0OWUzMi4uNmU1ODAzNDY1MjBkN2MyYWE2NTJmOGY1MjRlMGY4ODk4ZGE0NDc3NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtl
QWxsU2hhZG93Um9vdHNPcGVuLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCkBAIC04NSwxMCAr
ODUsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNUKFdlYktpdCwgSW5qZWN0ZWRC
dW5kbGVNYWtlQWxsU2hhZG93Um9vdE9wZW5UZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTWFrZUFs
bFNoYWRvd1Jvb3RPcGVuVGVzdFBhZ2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVzdCIsIHBh
Z2VHcm91cC5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0
KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250
ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJ
bmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290T3BlblRlc3QiKSk7CisgICAgUGxhdGZvcm1X
ZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVp
Q2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlZTkwNDMyNzUyOGIzZTg1YWVkMjNiMmM3ZGM2NzMzMjZk
MjQ3MWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBv
cnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQotI2lmIFdLX0hBVkVfQ19TUEkKLQotI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgotI2lt
cG9ydCAiVGVzdC5oIgotI2ltcG9ydCA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+Ci0jaW1wb3J0IDxX
ZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaD4KLSNpbXBvcnQgPFdlYktpdC9XS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotVEVT
VChQYWdlR3JvdXAsIERlZmF1bHRVc2VyQ29udGVudENvbnRyb2xsZXIpCi17Ci0gICAgYXV0byBw
YWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsK
LSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0
aW9uKG51bGxwdHIpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29u
ZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7Ci0gICAgYXV0byBwYWdlR3JvdXAgPSBh
ZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiVGVzdFBh
Z2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChw
YWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQotICAgIGF1dG8gcGFn
ZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyID0gcmV0YWluV0soV0tQYWdlR3JvdXBHZXRVc2Vy
Q29udGVudENvbnRyb2xsZXIocGFnZUdyb3VwLmdldCgpKSk7Ci0KLSAgICBFWFBFQ1RfTlVMTChX
S1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0
aW9uLmdldCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlQ29uZmlndXJh
dGlvbi5nZXQoKSk7Ci0gICAgYXV0byBjb3BpZWRQYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0so
V0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICBBU1NF
UlRfRVEocGFnZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VDb25maWd1
cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKGNvcGllZFBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci19Ci0KLVRFU1QoUGFnZUdyb3VwLCBDdXN0b21Vc2VyQ29udGVudENvbnRyb2xsZXIp
Ci17Ci0gICAgYXV0byBwYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJh
dGlvbkNyZWF0ZSgpKTsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0
ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0
Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7Ci0gICAgYXV0
byBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiVGVzdFBhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlv
blNldFBhZ2VHcm91cChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsK
LSAgICBhdXRvIHVzZXJDb250ZW50Q29udHJvbGxlciA9IGFkb3B0V0soV0tVc2VyQ29udGVudENv
bnRyb2xsZXJDcmVhdGUoKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFVzZXJDb250ZW50
Q29udHJvbGxlcihwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgdXNlckNvbnRlbnRDb250cm9sbGVy
LmdldCgpKTsKLQotICAgIGF1dG8gcGFnZUdyb3VwVXNlckNvbnRlbnRDb250cm9sbGVyID0gcmV0
YWluV0soV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUdyb3VwLmdldCgp
KSk7Ci0KLSAgICBFWFBFQ1RfRVEodXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VD
b25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlQ29uZmlndXJhdGlvbi5n
ZXQoKSk7Ci0gICAgYXV0byBjb3BpZWRQYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdl
Q29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSk7Ci0KLSAgICBFWFBFQ1RfRVEo
dXNlckNvbnRlbnRDb250cm9sbGVyLmdldCgpLCBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNv
bnRlbnRDb250cm9sbGVyKGNvcGllZFBhZ2VDb25maWd1cmF0aW9uLmdldCgpKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhY2QzYTBlNzVjZmY4
N2MyMjRhZjk4MWExZDBiM2QyZGM5NTZmZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5tbQpAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5k
YXRpb24uaD4KKworI2lmIFdLX0hBVkVfQ19TUEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tWaWV3UHJp
dmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CisKK1RFU1QoUGFnZUdyb3VwLCBQcmVmZXJlbmNlcykKK3sKKyAgICBhdXRvIHBhZ2VD
b25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOworICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24o
bnVsbHB0cikpOworICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VDb25maWd1
cmF0aW9uLmdldCgpLCBjb250ZXh0LmdldCgpKTsKKyAgICBhdXRvIHBhZ2VHcm91cCA9IGFkb3B0
V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJUZXN0UGFnZUdy
b3VwIikuZ2V0KCkpKTsKKyAgICBhdXRvIHdrVmlldyA9IGFkb3B0TlMoW1tXS1ZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb250ZXh0UmVmOmNvbnRleHQuZ2V0KCkgcGFnZUdy
b3VwUmVmOnBhZ2VHcm91cC5nZXQoKV0pOworICAgIEVYUEVDVF9FUShXS1BhZ2VDb25maWd1cmF0
aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2tW
aWV3LmdldCgpLnBhZ2VSZWYpKS5nZXQoKSksIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJv
YXJkTm90aWZpY2F0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bh
c3RlYm9hcmROb3RpZmljYXRpb25zLm1tCmluZGV4IDM2NWMyZGRiOWI5MmU1YzY2ZTYyNzk2MGE1
YTJiZmE5ZTRkYWE2MWEuLmZmNDJmNDMyODdmZmY5YTNlN2I1Y2FiMjA4OGMxMzdhMGI4NDhlN2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmRO
b3RpZmljYXRpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bh
c3RlYm9hcmROb3RpZmljYXRpb25zLm1tCkBAIC02NywxMiArNjcsOSBAQCBURVNUKFdlYktpdCwg
UGFzdGVib2FyZE5vdGlmaWNhdGlvbnMpCiAKICAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZl
cmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFBy
ZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFn
ZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xp
cGJvYXJkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKIAotICAgIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdl
R3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKLQogICAg
IFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9y
UmVzb3VyY2UoImV4ZWNDb3B5IiwgImh0bWwiKSkuZ2V0KCkpOwogICAgIFV0aWw6OnJ1bigmZmlu
aXNoZWQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
UHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwCmluZGV4IDYzNTI1M2UwYTY2ZWY4MGY2ZWQzOTY1ZTc3ZDA2OWNkYjkyNDg2
NzYuLmUzMTFiZjExZWMwYTU4MDFkZmMyZWVlNDdhNTQ2ODVmODQ4MWRiMTEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0
ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKQEAgLTgw
LDEyICs4MCw5IEBAIFRFU1QoV2ViS2l0LCBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3Rv
cnlDYWxsYmFjaykKIAogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcu
cGFnZSgpLCAmcGFnZUxvYWRlckNsaWVudC5iYXNlKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJl
ZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkp
OworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2
ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsK
IAotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJW
aWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHBy
ZWZlcmVuY2VzLmdldCgpKTsKLQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJwdXNoLXN0YXRlIiwgImh0bWwiKSk7CiAg
ICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRl
ZFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2
ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwCmluZGV4IGEwODgzOGU3N2VmYWY0N2I0ZjFmN2RmNTM5
MzYwOGEyNzMzM2FjNGIuLjZiODY3ZmVmNmJkNWU5ZjRkOTU0YjZmMjkzZjJhZDhjMTk0ZTNjN2Ig
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVy
c2VQYWdpbmF0ZWRXZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAKQEAgLTc1LDggKzc1LDcgQEAg
VEVTVChXZWJLaXQsIFJlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3KQogCiAgICAgV0tQYWdl
TGlzdGVuRm9yTGF5b3V0TWlsZXN0b25lcyh3ZWJWaWV3LnBhZ2UoKSwga1dLRGlkRmlyc3RMYXlv
dXRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyk7CiAKLSAgICBXS1BhZ2VHcm91
cFJlZiBwYWdlR3JvdXAgPSAgV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNl
cyhwYWdlR3JvdXApOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VD
b25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3Vy
YXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFN1cHBy
ZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyhwcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBXS1Bh
Z2VTZXRQYWdpbmF0aW9uTW9kZSh3ZWJWaWV3LnBhZ2UoKSwga1dLUGFnaW5hdGlvbk1vZGVSaWdo
dFRvTGVmdCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9T
Y3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwCmluZGV4IDg1ZjI1YTY0NmZhYjJiYTQ2ZDc0
MTg2ZTBmZjVmMjc2ZTYyMjZlOTkuLjRiMTM4ZTQ5MGM3NDYzZDVlZTAyOTJjZjFlYWQ2ZDA3Njg2
NGYyNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9s
bFBpbm5pbmdCZWhhdmlvcnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwCkBAIC03MywxNSArNzMsMTQgQEAgVEVTVChX
ZWJLaXQsIFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlv
bihudWxscHRyKSk7CiAKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgp
KTsKKworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0
aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2Vi
Vmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgLy8gVHVybiBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5n
OyBzeW5jaHJvbm91c2x5IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRp
b24gdG8KICAgICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdvdWxkIGJlIGJl
dHRlciwgYnV0IGZvciBzb21lIHJlYXNvbiBkb2Vzbid0IGJsb2NrIHVudGlsCiAgICAgLy8gaXQn
cyB1cGRhdGVkIGFmdGVyIHRoZSBpbml0aWFsIFdLUGFnZVNldFNjcm9sbFBpbm5pbmdCZWhhdmlv
ciBhYm92ZS4KLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRv
cHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk5vVGhyZWFk
ZWRTY3JvbGxpbmdQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZChwcmVmZXJlbmNlcywg
ZmFsc2UpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFn
ZUdyb3VwLmdldCgpKTsKLQogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGll
bnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwCmluZGV4IGQyMzEzMzFiOTU1MjhlNGQ1MDA2YjM0MzQzZDc1YmVjMDA3MTQ5
NjEuLjc5MWY5NDM3MDJlMTZiZmExMTE2MzQwZmZiOWNjNDNlZmM1MzBmY2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5j
cHAKQEAgLTUzLDE0ICs1MywxMyBAQCBURVNUKFdlYktpdCwgU3BhY2ViYXJTY3JvbGxpbmcpCiB7
CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQ
YWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKwogICAgIC8vIFR1cm4g
b2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFp
biB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCiAgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZv
cmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qg
c3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVm
PiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFi
bGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNs
aWVudFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9m
KGxvYWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Vc2VyTWVkaWEuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
VXNlck1lZGlhLmNwcAppbmRleCA1NzUxOTczYTU4ODc4OWU0ZmU5Zjg2ZTk1NTM1ZWI1NWUyZmQ3
ZTEzLi4wY2JjNTAwYWIyZjM1NGUwZGFiNTE1ODhlNmQwYzVhYmYyMmVhZTZhIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKQEAgLTcxLDIwICs3
MSwxOCBAQCBURVNUKFdlYktpdCwgVXNlck1lZGlhQmFzaWMpCiB7CiAgICAgYXV0byBjb250ZXh0
ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAK
LSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1Bh
Z2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkdldFVzZXJNZWRpYSIpLmdl
dCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFE
ZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZp
bGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVu
Y2VzLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsK
ICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKICAgICB1aUNsaWVu
dC5iYXNlLnZlcnNpb24gPSA2OwogICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RDYWxsQmFjazsKICAgICB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4gPSBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjazsKICAgICAKLSAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRv
cHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVp
cmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAog
ICAgIHdhc1Byb21wdGVkID0gZmFsc2U7CkBAIC0xMDcsMjAgKzEwNSwxOCBAQCBURVNUKFdlYktp
dCwgT25EZXZpY2VDaGFuZ2VDcmFzaCkKIHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdL
Q29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWlu
UHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRl
V2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiR2V0VXNlck1lZGlhIikuZ2V0KCkpKTsKLSAgICBX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhw
YWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAgIG1lbXNldCgm
dWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lv
biA9IDY7CiAgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QgPSBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxCYWNr
OwogICAgIHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiA9IGNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNrOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
ID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBh
Z2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5j
ZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAKICAgICAvLyBMb2FkIGEgcGFn
ZSByZWdpc3RlcmluZyBvbmRldmljZWNoYW5nZSBoYW5kbGVyLgpAQCAtMTY3LDEzICsxNjMsNiBA
QCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlc0NyYXNoKQogewogICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwog
Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQ
YWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJHZXRVc2VyTWVkaWEiKS5n
ZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdl
dFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlh
RGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJl
bmNlcywgZmFsc2UpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7
CiAgICAgLy8gV2Ugd2FudCB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmln
aW4gdG8gYmUgbnVsbC4KICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQp
KTsKQEAgLTE4NCw3ICsxNzMsMTMgQEAgVEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFz
aCkKICAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9uID0gMzsKICAgICBsb2FkZXJDbGllbnQu
ZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247CiAKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKwogICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogICAg
IFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbG9hZGVyQ2xp
ZW50LmJhc2UpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGU1NDEwMGM4Yzc5NDY3MTY1MDkwMmIz
MjNmZWZkMTU4MjFlNDI3YWIuLjA1ZDk1ZTQ5NzQxODA1NTMwOTU5YTI2YzM0OGMxZThjOTdjN2Fh
ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dL
UGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC00MSw3ICs0MSw2IEBAIFRFU1QoV2ViS2l0LCBXS1Bh
Z2VDb25maWd1cmF0aW9uRW1wdHkpCiAKICAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0
aW9uR2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpKSk7CiAgICAgQVNTRVJUX05VTEwoV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihjb25maWd1cmF0aW9uLmdl
dCgpKSk7Ci0gICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cChj
b25maWd1cmF0aW9uLmdldCgpKSk7CiAgICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlv
bkdldFByZWZlcmVuY2VzKGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChX
S1BhZ2VDb25maWd1cmF0aW9uR2V0UmVsYXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSkpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQ
bGF5aW5nQXVkaW8uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdl
SXNQbGF5aW5nQXVkaW8uY3BwCmluZGV4IGMxZWYwOTE1YzI3ZTIxNWM3OGJjODQzMWExY2FjZjRm
NGQyNTg5YzAuLjU2NDlkOTA0NGM4ZTNkYjQ2MGU4OTFmNjdiNTUwNTUwZGE3ZTFkOGUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1
ZGlvLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1Bs
YXlpbmdBdWRpby5jcHAKQEAgLTExNywxMiArMTE3LDEwIEBAIFRFU1QoV2ViS2l0LCBNU0VJc1Bs
YXlpbmdBdWRpbykKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBh
ZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdy
b3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTVNFSXNQbGF5aW5nQXVkaW9QYWdl
R3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1Bh
Z2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNv
cHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0TWVkaWFTb3VyY2VFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1By
ZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKICAgICBzZXRVcENsaWVudHMod2ViVmlldy5wYWdlKCkpOwogCiAgICAgV0tS
ZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoImZpbGUtd2l0aC1tc2UiLCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5n
ZVdpdGhJbWFnZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRy
aWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQppbmRleCBiOTEyM2Y3
OTgzYTg1YzQ0ZmMzODljNTc2ZWNjM2ZiZjUxZTI2NmJlLi5jZTZhODA2OGQzODg4NWQyODA4NjNj
MDY3NjhkMDkxZWRmY2YwMjIzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2Uu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRT
dWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tCkBAIC01OCw4ICs1OCw3IEBAIHN0
YXRpYyB2b2lkIGludmFsaWRNZXNzYWdlRnVuY3Rpb24oV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUp
CiBURVNUKFdlYktpdCwgQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1h
Z2UpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwotICAgIFdLUmV0YWluUHRy
PFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0
aElkZW50aWZpZXIoVXRpbDo6dG9XSygiQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFu
Z2VXaXRoSW1hZ2VQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAg
bG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVy
Q2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9t
YWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tCmluZGV4IDc1NTZmNjEyZDVlM2I5YmE0ZjRj
ZDZmNTI2Yzk1OGMxN2YzZjFmMjYuLjY0ZDY3YWIyZTNjNzVkOWYwOTkzNDY2ZmE3NmJmNmQ2YTUw
NWNhYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9D
b250ZXh0TWVudURvd25sb2FkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tCkBAIC05Miw4ICs5Miw3IEBAIFRFU1QoV2Vi
S2l0LCBDb250ZXh0TWVudURvd25sb2FkSFRNTERvd25sb2FkQXR0cmlidXRlKQogewogICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29u
dGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3Vw
UmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIo
VXRpbDo6dG9XSygiTXlHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMyBs
b2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJD
bGllbnQpKTsKQEAgLTE0Myw4ICsxNDIsNyBAQCBURVNUKFdlYktpdCwgQ29udGV4dE1lbnVEb3du
bG9hZEhUTUxEb3dubG9hZEF0dHJpYnV0ZVdpdGhTbGFzaGVzKQogewogICAgIFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJ
bmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdl
R3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9X
SygiTXlHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMyBsb2FkZXJDbGll
bnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JD
b21tYW5kcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JD
b21tYW5kcy5tbQppbmRleCBmOWMwZDFmYmZjNjE3MjU1MjNiYzVmNjEzODYxNjZkNmQyNzNmYmEw
Li4yYTVhMmJkNmRmODg1YTc1MGM3YmFiYTM5ZTBjNzc3MjlkYzJiYTViIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1t
CkBAIC00NSwxNCArNDUsMTMgQEAgVEVTVChXZWJLaXQsIFNjcm9sbEJ5TGluZUNvbW1hbmRzKQog
ewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAorICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5
UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisKICAgICAvLyBUdXJu
IG9mZiB0aHJlYWRlZCBzY3JvbGxpbmc7IHN5bmNocm9ub3VzbHkgd2FpdGluZyBmb3IgdGhlIG1h
aW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB0bwogICAgIC8vIHVwZGF0ZSB1c2luZyBXS1BhZ2VG
b3JjZVJlcGFpbnQgd291bGQgYmUgYmV0dGVyLCBidXQgZm9yIHNvbWUgcmVhc29uIHRoZSB0ZXN0
IHN0aWxsIGZhaWxzIG9jY2FzaW9uYWxseS4KLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJl
Zj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0
aWw6OnRvV0soIk5vVGhyZWFkZWRTY3JvbGxpbmdQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBh
Z2VHcm91cC5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5h
YmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQorICAgIAogICAgIFdLUGFnZU5hdmln
YXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAs
IHNpemVvZihsb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQppbmRleCA2ODdj
N2NhZTdjOGQ1OWZkMDY3NDRhNTQwOTExYjBlMTJmZDVjNWYxLi5lMTE3MDcxNjFjNzg0YjQ3NDQz
NWQxNzExYjY5YTYxMzNkODkwM2QyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQpAQCAtMTE4LDEx
ICsxMTgsMTAgQEAgVEVTVChGdWxsc2NyZWVuLCBEZWxlZ2F0ZSkKIFRFU1QoRnVsbHNjcmVlbiwg
RElTQUJMRURfV0tWaWV3RGVsZWdhdGUpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxs
cHRyKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0
V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJGdWxsc2NyZWVu
RGVsZWdhdGUiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBX
S1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJl
bmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKIAotICAgIFBsYXRm
b3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9w
dFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OwogCiAgICAgUmV0YWluUHRyPEZ1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyPiBoYW5k
bGVyID0gYWRvcHROUyhbW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7CiAgICAgV0tQYWdlU2V0RnVsbHNjcmVlbkRlbGVnYXRlKHdlYlZpZXcucGFnZSgpLCBo
YW5kbGVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KaW5kZXggOTM5
YzU3YjRkOGIyNjc2NjRiY2QyYWI3NjRkNGQ4OGU2OTU5YzI3YS4uNDQ1ZGI3NTY2ZTA2MDdkOTg4
YTU4Yjc4OWI3OTBkYmRlZGMyY2Q1MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUu
bW0KQEAgLTIwMSwxMyArMjAxLDEyIEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgQXVkaW9DYW5u
b3RUb2dnbGVQaWN0dXJlSW5QaWN0dXJlKQogVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1BhZ2VV
SUNsaWVudCkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENy
ZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIlBpY3R1cmVJblBpY3R1cmUiKS5nZXQoKSkp
OwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZl
cmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CisgICAgCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29u
ZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayhwcmVmZXJlbmNlcywgdHJ1ZSk7
Ci0gICAgCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKLSAgICAKKwogICAgIFdLUGFnZVVJQ2xpZW50VjEwIHVpQ2xpZW50OwogICAg
IG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJh
c2UudmVyc2lvbiA9IDEwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQppbmRleCA4ZTc3MDA2OGQzMTJlNDI0M2Ix
MjFhZDUzOTQ5YWFjZTBjMWUwNDNlLi45ODFhZjkyNzY5NDg1MDhlMzQ0ZTUxNmFiN2I3NTZhNzk2
MTRlZWEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dlYnNpdGVQb2xpY2llcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQpAQCAtODAwLDkgKzgwMCw3IEBAIFRFU1QoV2VicGFn
ZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNpZXNBcmJpdHJhcnlVc2VyR2VzdHVyZVF1aXJrKQog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2Vz
ID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQ
YWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VG
b3JUZXN0aW5nXSksIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIFtkZWxlZ2F0ZSBz
ZXRBbGxvd2VkQXV0b3BsYXlRdWlya3NGb3JVUkw6Xl9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKE5T
VVJMICp1cmwpCiAgICAgewpAQCAtODMzLDkgKzgzMSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVu
Y2VzLCBXZWJzaXRlUG9saWNpZXNBdXRvcGxheVF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW0F1dG9wbGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJl
bmNlc0NyZWF0ZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5j
ZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJl
bmNlcy5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5w
cmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3RXaXRoQXVkaW8g
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJhdXRvcGxheS1jaGVjayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogCkBAIC04OTEsOSArODg3LDcg
QEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1BlckRvY3VtZW50QXV0
b3BsYXlCZWhhdmlvclF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9w
bGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmln
YXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZl
cmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMu
Z2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFn
ZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1By
ZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1
ZSk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBXVEY6Om51bGxvcHQ7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xs
aW5nUG9zaXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3Bv
bmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tCmluZGV4IDUzZmNjODk5ZTgwNGQzMjJiYWY5ODcwOTJi
YjNmOTQ3ZWY3NDBiNjcuLjJmNDBhODM0ODYxYzVlY2I3NjZmNWRmMzA1ZmJkMDQ1MTBiOTU4ZDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVy
U2Nyb2xsaW5nUG9zaXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbQpAQCAtNDUsMTggKzQ1LDE3IEBAIFRF
U1QoV2ViS2l0LCBGaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uKQogewogICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4
dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9s
bGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBv
c2l0aW9uIHRvCi0gICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBi
ZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNp
b25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRl
ZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBm
YWxzZSk7Ci0KICAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KQogICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbd2luZG93LmdldCgpIG1ha2VLZXlB
bmRPcmRlckZyb250Om5pbF07CiAgICAgRVhQRUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2li
bGVdKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VH
cm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3
LnBhZ2UoKSkpLmdldCgpKTsKKworICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsg
c3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9u
IHRvCisgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0
ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5
LgorICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7
CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKQEAg
LTgyLDcgKzgxLDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRp
b24pCiAKICAgICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJ3aW5kb3cuc2Nyb2xsWSIs
ICI0MCIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IG5ld1dlYlZpZXcoY29udGV4dC5nZXQoKSwg
cGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhjb250ZXh0
LmdldCgpKTsKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChuZXdXZWJWaWV3LnBh
Z2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKIAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZp
ZXcgYWRkU3VidmlldzpuZXdXZWJWaWV3LnBsYXRmb3JtVmlldygpXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJh
bWUubW0KaW5kZXggNjA1NWQ4ZDIzMTFmY2Y4NmI0Mjk0OTMzMTcwZWQ0MWUxZDFhYWU2Ni4uZmIw
YWE5YTc3MDg5YmNiYjBkZWY1N2EzYmQ2ZmZmODk5NTUyNDIwMSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJh
bWUubW0KQEAgLTEyMCw5ICsxMjAsOCBAQCB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1l
Ojppbml0aWFsaXplVmlldyhXS1ZpZXcgKndrVmlldykKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQod2tWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBpZGVudGlmaWVyID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWVQcmVmZXJlbmNlcyIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQ
cmVmZXJlbmNlc0NyZWF0ZVdpdGhJZGVudGlmaWVyKGlkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICBX
S1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJh
dGlvbih3a1ZpZXcucGFnZVJlZikpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNj
cmVlbkVuYWJsZWQoY3VzdG9tUHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdy
b3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHdrVmlldy5wYWdlUmVmKSwgY3Vz
dG9tUHJlZmVyZW5jZXMuZ2V0KCkpOwogfQogCiB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZy
YW1lOjp0ZWFyZG93blZpZXcoV0tWaWV3ICp3a1ZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAppbmRleCAzMGNjODQ1MTRjM2JlZjU0YThlMmNj
Njk5ZDg5MGJhOTMzNmFhY2UzLi41NzM5ZmFmZTNkZmQ5M2RhNzgyOWY0YmIyOGJjODNkZTYxYjA0
Y2FmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdH
dGsuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5j
cHAKQEAgLTM2LDExICszNiwxMCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLVBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2Vi
VmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VD
b25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0
aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdl
R3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAgIGluaXRpYWxp
emUoY29uZmlndXJhdGlvbi5nZXQoKSk7CiB9CkBAIC01NCw3ICs1Myw2IEBAIFBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsKICAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhX
S1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRD
b250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVsYXRlZFBhZ2Up
KTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0
KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVkUGFnZSk7CiAK
ICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IDYzNjY4OTE4YWQzMmY3MTJkZTg3
YWUzZWQxYjQwMTFmN2FiN2I5ZTIuLmU1MWRlNzY5MGQ1ZGE1NWJjYmVhYjU2ZTk5MzY5YWNkYTk2
YmY3YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmll
d01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMu
bW0KQEAgLTQ4LDEzICs0OCwxMiBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiAgICAgaW5pdGlhbGl6ZShjb25m
aWd1cmF0aW9uLCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZv
cm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
dXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29u
dGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25m
aWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwotICAgIAor
CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwg
Y29udGV4dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1
cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBSZWYpOwotICAgIAorCiAgICAgaW5pdGlhbGl6ZShjb25m
aWd1cmF0aW9uLmdldCgpLCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKQEAgLTYzLDIyICs2MiwxMSBA
QCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VSZWYgcmVsYXRlZFBhZ2Up
CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9
IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAgICAKICAgICBXS1BhZ2VD
b25maWd1cmF0aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VHZXRDb250
ZXh0KHJlbGF0ZWRQYWdlKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChj
b25maWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VHZXRQYWdlR3JvdXAocmVsYXRlZFBhZ2UpKTsKICAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UmVsYXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSwg
cmVsYXRlZFBhZ2UpOwogCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdldCgpLCBbV0tW
aWV3IGNsYXNzXSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIENsYXNzIHdr
Vmlld1N1YmNsYXNzKQotewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7Ci0g
ICAgCi0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQo
KSwgY29udGV4dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25m
aWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBSZWYpOwotICAgIAotICAgIGluaXRpYWxpemUoY29u
ZmlndXJhdGlvbi5nZXQoKSwgd2tWaWV3U3ViY2xhc3MpOwotfQotCiBQbGF0Zm9ybVdlYlZpZXc6
On5QbGF0Zm9ybVdlYlZpZXcoKQogewogICAgIFttX3dpbmRvdyBjbG9zZV07CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcAppbmRleCBmYmQ3YzA5M2Jh
MTUzMDQzNjQzZGRmMzQ4YTRkYmEzN2M3ZmE1M2I0Li4xNTA5ZjI4YWQyZDI1ZjlhODQ3ODFiYTJk
NDQ1YTkzZWVmYjQ2M2MxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0
Zm9ybVdlYlZpZXdXaW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3Jt
V2ViVmlld1dpbi5jcHAKQEAgLTU3LDExICs1NywxMCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6
cmVnaXN0ZXJXaW5kb3dDbGFzcygpCiAgICAgOjpSZWdpc3RlckNsYXNzRXhXKCZ3bmRDbGFzcyk7
CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0
cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VD
b25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRp
b25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAg
IGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSk7CiB9CkBAIC03NSw3ICs3NCw2IEBAIFBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsK
ICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0g
YWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVs
YXRlZFBhZ2UpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFn
ZUNvbmZpZ3VyYXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVk
UGFnZSk7CiAKICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKaW5kZXggOGNjM2I3MWE3
MzIxODIzM2Y0MDRhOTQxNjJmZTA1ODVhODY3MjBmMi4uMjc5ZDllNmViOWY3YWEwMjQ0NDUyNWQy
ZWMxNmNkM2U4YmM5NWUzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxh
dGZvcm1XZWJWaWV3V1BFLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9y
bVdlYlZpZXdXUEUuY3BwCkBAIC0zMiwxMiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogCi1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYg
Y29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQorUGxhdGZvcm1XZWJWaWV3
OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiAgICAgOiBtX3dpbmRv
dyhudWxscHRyKQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNv
bmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAg
V0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4
dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9u
LmdldCgpLCBwYWdlR3JvdXBSZWYpOwogCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdl
dCgpKTsKIH0KQEAgLTUzLDcgKzUyLDYgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZp
ZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25D
cmVhdGUoKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlv
bi5nZXQoKSwgV0tQYWdlR2V0Q29udGV4dChyZWxhdGVkUGFnZSkpOwotICAgIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgV0tQYWdlR2V0UGFnZUdy
b3VwKHJlbGF0ZWRQYWdlKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFJlbGF0ZWRQYWdl
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIHJlbGF0ZWRQYWdlKTsKIAogICAgIGluaXRpYWxpemUoY29u
ZmlndXJhdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGUwNjY3MDBmM2NlNmFhZGE5YWIyMWEzNjRiMGEyYmJjZTQyOGFlNDguLmVlODBi
N2NlNjIxYTZjMzg3ZTY0ODM5MzkyMDZiYjRkODk0NDBlNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC01NDksOCArNTQ5LDYgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIFdl
YkNvcmVUZXN0U3VwcG9ydDo6aW5zdGFsbE1vY2tHYW1lcGFkUHJvdmlkZXIoKTsKICNlbmRpZgog
Ci0gICAgbV9wYWdlR3JvdXAuYWRvcHQoV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcih0
b1dLKCJXZWJLaXRUZXN0UnVubmVyUGFnZUdyb3VwIikuZ2V0KCkpKTsKLQogICAgIG1fZXZlbnRT
ZW5kZXJQcm94eSA9IG1ha2VVbmlxdWU8RXZlbnRTZW5kZXJQcm94eT4odGhpcyk7CiB9CiAKQEAg
LTY3OSw3ICs2NzcsNiBAQCBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0
Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjbwogCiAgICAgYXV0byBwYWdl
Q29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwg
bV9jb250ZXh0LmdldCgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKHBh
Z2VDb25maWd1cmF0aW9uLmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSk7CiAgICAgCiAgICAgaWYg
KG9wdGlvbnMudXNlRXBoZW1lcmFsU2Vzc2lvbigpKSB7CiAgICAgICAgIGF1dG8gZXBoZW1lcmFs
RGF0YVN0b3JlID0gYWRvcHRXSyhXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0ZW50
RGF0YVN0b3JlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4
IGJkZTZiMGVkNzc1ZGNmMjM5ZDhlYjFkMmNiNmYxYjc2NzJhNmE5YTkuLjc4ZDkyODRkNzVhNzU2
MTNiMjg0MmIyOWEzZjJmYTkwNDE1YTk2YzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKQEAgLTU1NSw3ICs1NTUsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmlldzsKICAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IG1fY29udGV4dDsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4g
bV9wYWdlR3JvdXA7CiAgICAgV0tSZXRhaW5QdHI8V0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWY+
IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAppbmRl
eCAxMTRjN2E4MTJkNzZhYmQ5YThhOGVkNTE2ODQ3MWMwYjVmZDcxMTI0Li5hYjBiMjQ3NDAwZjNk
MWYzODI1NjNlMDdjNWExNjhmNzcxNjk3YTgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAKIFdLUHJlZmVyZW5jZXNSZWYgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQogewotICAgIHJldHVybiBXS1BhZ2VH
cm91cEdldFByZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKKyAgICByZXR1cm4gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2UoKSkpLmdldCgpKTsKIH0KIAogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBjYWUxMDc1N2E4Nzc1MmIwZDZlOGVhZmU2
YjMxNWQ2YzU0NmVhNzRjLi5lYjc4NjhmNDVhNTM1ZGZiYzYyNDM0OWU4NGNiZGZhNjBkNDEyODk4
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldp
bi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4u
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVz
dENvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXaW5CYXNlLmg+CiAjaW5jbHVk
ZSA8ZmNudGwuaD4KQEAgLTM2LDcgKzM3LDYgQEAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KIAotCiAjZGVmaW5lIElOSkVDVEVEX0JVTkRMRV9ETExfTkFN
RSAiVGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmRsbCIKIAogbmFtZXNwYWNlIFdUUiB7CkBAIC0x
MjEsNyArMTIxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkK
IAogV0tQcmVmZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygp
CiB7Ci0gICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0
KCkpOworICAgIHJldHVybiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24obV9tYWluV2ViVmlldy0+cGFnZSgpKSkuZ2V0
KCkpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCmluZGV4IGY0
N2IwZGY5ODZkMTU2MzdmNDMwMGM4YjA3MTYzYTllOTYzMmE0MjUuLjUwMTEwY2Q0ODUzNTcyZjU3
OWMxNDBjZjM4YzhjNDdkOGE4MGY0NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiUGxhdGZv
cm1XZWJWaWV3LmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgpAQCAtNDcsNyArNDgsNyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogCiBXS1ByZWZlcmVuY2VzUmVm
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVByZWZlcmVuY2VzKCkKIHsKLSAgICByZXR1cm4gV0tQ
YWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7CisgICAgcmV0dXJuIFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29u
ZmlndXJhdGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCkpKS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428893</attachid>
            <date>2021-05-17 16:53:08 -0700</date>
            <delta_ts>2021-05-18 10:25:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20210517165308.patch</filename>
            <type>text/plain</type>
            <size>87754</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQyMDljN2E3NzUxZWM0NzBi
MjQ3MDIwYTcxMGQxNmMzOGU2MjY5MjguLjMzNWQ5NWU5ZTFkZDYwNTg1MTJhNzgyMDkyNmY0OTkw
ZTUxYWQ5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgIFRoZXJlIGFyZSB0d28gcHJvamVjdHMgc3RpbGwgdXNp
bmcgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllciBhbmQgV0tQYWdlR3JvdXBHZXRQcmVm
ZXJlbmNlcy4KKyAgICAgICAgVGhlcmUgaXMgb25lIHByb2plY3Qgc3RpbGwgdXNpbmcgV0tCcm93
c2luZ0NvbnRleHRHcm91cC4KKyAgICAgICAgSSBsZWZ0IHRoZXNlIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGZ1bmN0aW9uYWwgYW5kIG5vdGVkIHJhZGFycyBmb3Igd2hlbiB0aGV5IGNhbiBhbHNvIGJl
IHJlbW92ZWQuCisKKyAgICAgICAgVGhlIHJlc3Qgb2YgdGhlIEFQSSBpcyByZW1vdmVkLiAgU29t
ZSBvZiBpdCB3YXMgbW92ZWQgdG8gYW4gaW50ZXJuYWwtb25seSBoZWFkZXIgdG8gbGVhdmUgV0tC
cm93c2luZ0NvbnRleHRHcm91cCB1bnRvdWNoZWQuCisgICAgICAgIExvdHMgb2YgdGVzdHMgYXJl
IHVwZGF0ZWQgdG8gc2V0IHByZWZlcmVuY2VzIGxpa2UgdGhlIG1vZGVybiBBUEkgZG9lcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlR2V0
UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuY3BwOgor
ICAgICAgICAoV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cCk6IERlbGV0ZWQuCisgICAg
ICAgIChXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHA6CisgICAgICAgIChXS1BhZ2VHcm91cEdldFR5
cGVJRCk6IERlbGV0ZWQuCisgICAgICAgIChXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50Q29udHJv
bGxlcik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW06CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF9wYWdlR3JvdXBdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfc2V0UGFnZUdyb3VwOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNS0xNyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBBUEk6Ok9i
amVjdDo6VHlwZTo6QnVuZGxlUGFnZUdyb3VwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAppbmRleCA3YzBiYTMwMTUyYWMzYmFjY2EyYjhiNjYwNmM2NDg2ODg2MmQwY2Rh
Li5jYTZmMGE4NjdiZTY1NjJhNWI2NmYyMDk2ZDVlMmNkYTIwNTVhNmQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE2MywxMSArMTYzLDYgQEAgV0tDb250
ZXh0UmVmIFdLUGFnZUdldENvbnRleHQoV0tQYWdlUmVmIHBhZ2VSZWYpCiAgICAgcmV0dXJuIHRv
QVBJKCZ0b0ltcGwocGFnZVJlZiktPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpKTsKIH0KIAotV0tQ
YWdlR3JvdXBSZWYgV0tQYWdlR2V0UGFnZUdyb3VwKFdLUGFnZVJlZiBwYWdlUmVmKQotewotICAg
IHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VSZWYpLT5wYWdlR3JvdXAoKSk7Ci19Ci0KIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYgV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKFdLUGFnZVJlZiBw
YWdlUmVmKQogewogICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VSZWYpLT5jb25maWd1cmF0
aW9uKCkuY29weSgpLmxlYWtSZWYoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oCmluZGV4IGM1MWI4MTYyYzg5NzM0YWIxNTJiZWYwZTk5MjMzN2Q1NWYyZGU4YTYuLjI0ZTg3
OGYzMTBiYWNhYjI5YjdlMDkxZTU1ZjZiMzEyMjg1MWFmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC01OCw3ICs1OCw2IEBAIGV4dGVybiAiQyIgewogV0tfRVhQ
T1JUIFdLVHlwZUlEIFdLUGFnZUdldFR5cGVJRCh2b2lkKTsKIAogV0tfRVhQT1JUIFdLQ29udGV4
dFJlZiBXS1BhZ2VHZXRDb250ZXh0KFdLUGFnZVJlZiBwYWdlKTsKLVdLX0VYUE9SVCBXS1BhZ2VH
cm91cFJlZiBXS1BhZ2VHZXRQYWdlR3JvdXAoV0tQYWdlUmVmIHBhZ2UpOwogCiBXS19FWFBPUlQg
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24oV0tQYWdl
UmVmIHBhZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuY3BwCmluZGV4IDc5YmVkMWZkMWVjZTg4ODNiYmI0ODQ1
OTRiNjc5MWM2ODU1YjAxY2IuLmI1MDYyN2UyMWYzZTM0ZTA4ZGQ1M2FmZDM2OTNmZWYzOGIzZTA5
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZp
Z3VyYXRpb25SZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYuY3BwCkBAIC01NSwxNiArNTUsNiBAQCB2b2lkIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRDb250ZXh0KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwg
V0tDb250ZQogICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0UHJvY2Vzc1Bvb2wodG9JbXBs
KGNvbnRleHQpKTsKIH0KIAotV0tQYWdlR3JvdXBSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFBh
Z2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCi17Ci0gICAgcmV0
dXJuIHRvQVBJKHRvSW1wbChjb25maWd1cmF0aW9uKS0+cGFnZUdyb3VwKCkpOwotfQotCi12b2lk
IFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBj
b25maWd1cmF0aW9uLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApCi17Ci0gICAgdG9JbXBsKGNv
bmZpZ3VyYXRpb24pLT5zZXRQYWdlR3JvdXAodG9JbXBsKHBhZ2VHcm91cCkpOwotfQotCiBXS1Vz
ZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRD
b250cm9sbGVyKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKIHsKICAgICBy
ZXR1cm4gdG9BUEkodG9JbXBsKGNvbmZpZ3VyYXRpb24pLT51c2VyQ29udGVudENvbnRyb2xsZXIo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25m
aWd1cmF0aW9uUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25m
aWd1cmF0aW9uUmVmLmgKaW5kZXggMjc3YzA2NjFmMjYzMmFkODk1OTI2ZmY5YmFkNGIwYTdjNTY0
MWUxMS4uNzAyMDM2OGE3ZDEyYzM2M2E2ZDI2Y2QxYzdhZjFhNTM1NDNkYWI5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25S
ZWYuaApAQCAtMzksOSArMzksNiBAQCBXS19FWFBPUlQgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBX
S1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKHZvaWQpOwogV0tfRVhQT1JUIFdLQ29udGV4dFJlZiBX
S1BhZ2VDb25maWd1cmF0aW9uR2V0Q29udGV4dChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZp
Z3VyYXRpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQo
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0NvbnRleHRSZWYgY29udGV4
dCk7CiAKLVdLX0VYUE9SVCBXS1BhZ2VHcm91cFJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFn
ZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7Ci1XS19FWFBPUlQg
dm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKLQogV0tfRVhQT1JU
IFdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29u
dGVudENvbnRyb2xsZXIoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRVc2VyQ29udGVudENvbnRyb2xsZXIo
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1VzZXJDb250ZW50Q29udHJv
bGxlclJlZiB1c2VyQ29udGVudENvbnRyb2xsZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKaW5kZXggNjUxNGVlODZkZTNhODQxNDQ4MzdkZjYy
ZmMxMDEzZDIzY2FhMzVhOS4uOTgwZjNmYzBlZWNhNjhiN2Q2NzI0NTRjNWUwNjE1Y2VmYjY5Y2Uz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcApA
QCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
S1BhZ2VHcm91cC5oIgorI2luY2x1ZGUgIldLUGFnZUdyb3VwSW50ZXJuYWwuaCIKIAogI2luY2x1
ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJQ29udGVudFJ1bGVMaXN0LmgiCkBAIC00MCwx
MSArNDAsNiBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1XS1R5cGVJRCBXS1BhZ2VH
cm91cEdldFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvQVBJKFdlYlBhZ2VHcm91cDo6QVBJVHlw
ZSk7Ci19Ci0KIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIo
V0tTdHJpbmdSZWYgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIHBhZ2VHcm91cCA9IFdlYlBhZ2VH
cm91cDo6Y3JlYXRlKHRvV1RGU3RyaW5nKGlkZW50aWZpZXIpKTsKQEAgLTYxLDExICs1Niw2IEBA
IFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJl
ZiBwYWdlR3JvdXBSZWYpCiAgICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZUdyb3VwUmVmKS0+
cHJlZmVyZW5jZXMoKSk7CiB9CiAKLVdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmIFdLUGFnZUdy
b3VwR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikK
LXsKLSAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlR3JvdXBSZWYpLT51c2VyQ29udGVudENv
bnRyb2xsZXIoKSk7Ci19Ci0KIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVldChXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNvdXJjZVJlZiwgV0tVUkxSZWYg
YmFzZVVSTFJlZiwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxv
Y2tlZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFt
ZXMpCiB7CiAgICAgYXV0byBzb3VyY2UgPSB0b1dURlN0cmluZyhzb3VyY2VSZWYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmgKaW5kZXggNjNhMTNmN2Q3NTIx
OGJmN2UyZWJkMDNlZmEwNDViNTY5ZjM4MTBlMi4uMDU2M2VkNzVlMmQ5YzQ2NTYwZDRhYzM3M2Y4
ZjIyYjkyOTA1NjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VH
cm91cC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdLUGFnZUdyb3VwX2gKIAogI2luY2x1
ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNhdGVkLmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CiAKQEAgLTM0LDIwICszNSwxMCBA
QAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotV0tfRVhQT1JUIFdLVHlwZUlEIFdLUGFnZUdyb3Vw
R2V0VHlwZUlEKHZvaWQpOworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZpbGUgb25jZSByZGFyOi8v
Nzc5Mzk1OTcgYW5kIHJkYXI6Ly83NzkzOTg4MyBhcmUgcmVzb2x2ZWQuCiAKLVdLX0VYUE9SVCBX
S1BhZ2VHcm91cFJlZiBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nUmVm
IGlkZW50aWZpZXIpOwotCi1XS19FWFBPUlQgdm9pZCBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2Vz
KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7
Ci1XS19FWFBPUlQgV0tQcmVmZXJlbmNlc1JlZiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdL
UGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KLVdLX0VYUE9SVCBXS1VzZXJDb250ZW50Q29udHJv
bGxlclJlZiBXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VHcm91cFJl
ZiBwYWdlR3JvdXApOwotCi1XS19FWFBPUlQgdm9pZCBXS1BhZ2VHcm91cEFkZFVzZXJTdHlsZVNo
ZWV0KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tTdHJpbmdSZWYgc291cmNlLCBXS1VSTFJl
ZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0ZXJucywgV0tBcnJheVJlZiBibG9j
a2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyk7Ci1XS19FWFBPUlQg
dm9pZCBXS1BhZ2VHcm91cFJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXApOwotICAgIAotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU2NyaXB0
KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tTdHJpbmdSZWYgc291cmNlLCBXS1VSTFJlZiBi
YXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0ZXJucywgV0tBcnJheVJlZiBibG9ja2Vk
VVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcywgX1dLVXNlclNjcmlwdElu
amVjdGlvblRpbWUpOwotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU2Ny
aXB0cyhXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOworV0tfRVhQT1JUIFdLUGFnZUdyb3VwUmVm
IFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdSZWYgaWRlbnRpZmllcikg
V0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyk7CitXS19FWFBPUlQgV0tQcmVmZXJlbmNlc1JlZiBXS1BhZ2VHcm91cEdl
dFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCkgV0tfQ19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyk7CiAK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YTA5NjJiODY0MGNmMzVh
YTA3MTdiNzFmYjE3NGQzMjhkZDYyZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cEludGVybmFsLmgKQEAgLTAsMCArMSwzNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
ZmlsZSBvbmNlIHJkYXI6Ly83NDE0Mjk5NSBpcyByZXNvbHZlZC4KKwordm9pZCBXS1BhZ2VHcm91
cFNldFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmLCBXS1ByZWZlcmVuY2VzUmVmKTsKK3ZvaWQg
V0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVldChXS1BhZ2VHcm91cFJlZiwgV0tTdHJpbmdSZWYg
c291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0ZXJucywg
V0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cyk7Cit2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKFdLUGFnZUdyb3Vw
UmVmKTsKK3ZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU2NyaXB0KFdLUGFnZUdyb3VwUmVmLCBXS1N0
cmluZ1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkwsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBh
dHRlcm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzLCBfV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7Cit2b2lkIFdLUGFnZUdyb3Vw
UmVtb3ZlQWxsVXNlclNjcmlwdHMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRHcm91cC5oCmluZGV4IDY2OTIzMGY1Y2I2YTAzNTJjOTAyNWY5MWRlNjY4ZTM2MGE4NTkzYjYu
LmE2Y2RjNDFhNDEyZjdkYmRkYjNmZTg0MzNhNDFkN2IwZWMzMjA0MmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
R3JvdXAuaApAQCAtMjgsNiArMjgsOCBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCisvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgZmlsZSBvbmNlIHJkYXI6Ly83NDE0Mjk5NSBpcyByZXNvbHZlZC4K
KwogV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VzZXJDb250ZW50Q29u
dHJvbGxlciBhbmQgV0tQcmVmZXJlbmNlcyIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDgu
MCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0R3JvdXAgOiBOU09iamVjdAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRHcm91cC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLm1tCmluZGV4IDhmNDFiMTIyNzQwNGRlMjY4MzkyZjI0OTg1YjBl
MjU1ZTMzMWVkYjAuLjc5NGNmMWZhZjM4ZDI2MTU4ZWYyZjg5OWRiN2ViZjA1NjRhODkyNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0ICJBUElTdHJp
bmcuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tBcnJheS5oIgotI2ltcG9y
dCAiV0tQYWdlR3JvdXAuaCIKKyNpbXBvcnQgIldLUGFnZUdyb3VwSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldLUHJlZmVyZW5jZXNSZWYuaCIKICNpbXBvcnQgIldLUmV0YWluUHRyLmgiCiAjaW1wb3J0
ICJXS1NoYXJlZEFQSUNhc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IDUyZDkyZTQ2YjU5NGJjMTNkOTcyNmI1NzQwZDUwMGZjNTRh
NDZiZmIuLjdjNjJkNGZhMTA5ZGUyOTY5NmQ5OTI3Zjg5MDQ4M2IzZmVmYmFmN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDU2LDE2
ICs0NTYsOSBAQCBzdGF0aWMgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdl
ZENhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLAogICAgIHBhZ2VDb25maWd1cmF0aW9u
LT5zZXRXZWJzaXRlRGF0YVN0b3JlKFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXS0+
X3dlYnNpdGVEYXRhU3RvcmUuZ2V0KCkpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXREZWZh
dWx0V2Vic2l0ZVBvbGljaWVzKFtfY29uZmlndXJhdGlvbiBkZWZhdWx0V2VicGFnZVByZWZlcmVu
Y2VzXS0+X3dlYnNpdGVQb2xpY2llcy5nZXQoKSk7CiAKLSNpZiBQTEFURk9STShNQUMpCi0gICAg
aWYgKGF1dG8gcGFnZUdyb3VwID0gV2ViS2l0Ojp0b0ltcGwoW19jb25maWd1cmF0aW9uIF9wYWdl
R3JvdXBdKSkKLSAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFBhZ2VHcm91cChwYWdlR3Jv
dXApOwotICAgIGVsc2UKLSNlbmRpZgotICAgIHsKLSAgICAgICAgTlNTdHJpbmcgKmdyb3VwSWRl
bnRpZmllciA9IFtfY29uZmlndXJhdGlvbiBfZ3JvdXBJZGVudGlmaWVyXTsKLSAgICAgICAgaWYg
KGdyb3VwSWRlbnRpZmllci5sZW5ndGgpCi0gICAgICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0UGFnZUdyb3VwKFdlYktpdDo6V2ViUGFnZUdyb3VwOjpjcmVhdGUoZ3JvdXBJZGVudGlmaWVy
KS5wdHIoKSk7Ci0gICAgfQorICAgIE5TU3RyaW5nICpncm91cElkZW50aWZpZXIgPSBbX2NvbmZp
Z3VyYXRpb24gX2dyb3VwSWRlbnRpZmllcl07CisgICAgaWYgKGdyb3VwSWRlbnRpZmllci5sZW5n
dGgpCisgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQ
YWdlR3JvdXA6OmNyZWF0ZShncm91cElkZW50aWZpZXIpLnB0cigpKTsKIAogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLT5zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyhtYWtlVmVjdG9yPFN0
cmluZz4oW19jb25maWd1cmF0aW9uIF9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc10pKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCBjZTViN2JkNWIwMWFiYzgyMTA5NWQwNTU5NWFh
ZTk2OWI2OGNmNWZlLi40ZTE4OTQyYmFhYmVmNjk1NDY1ODdhMjYzYmIwMWU5MzBjNGE3OGY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtMTU1LDcgKzE1NSw2IEBAIHN0YXRpYyBib29sIGRl
ZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiAg
ICAgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDsKIAogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gX3BhZ2VHcm91cDsK
ICAgICBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBzOwogICAgIEJPT0wgX3NlcnZpY2VDb250cm9s
c0VuYWJsZWQ7CiAgICAgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xz
TWFuYWdlcjsKQEAgLTQyOSw3ICs0MjgsNiBAQCBzdGF0aWMgYm9vbCBkZWZhdWx0U2hvdWxkRGVj
aWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogICAgIGNvbmZpZ3VyYXRp
b24tPl9zaG93c1VSTHNJblRvb2xUaXBzID0gc2VsZi0+X3Nob3dzVVJMc0luVG9vbFRpcHM7CiAg
ICAgY29uZmlndXJhdGlvbi0+X3NlcnZpY2VDb250cm9sc0VuYWJsZWQgPSBzZWxmLT5fc2Vydmlj
ZUNvbnRyb2xzRW5hYmxlZDsKICAgICBjb25maWd1cmF0aW9uLT5fcmVxdWlyZXNVc2VyQWN0aW9u
Rm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciA9IHNlbGYtPl9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JF
ZGl0aW5nQ29udHJvbHNNYW5hZ2VyOwotICAgIGNvbmZpZ3VyYXRpb24tPl9wYWdlR3JvdXAgPSBz
ZWxmLl9wYWdlR3JvdXA7CiAjZW5kaWYKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pICYmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgY29uZmlndXJhdGlvbi0+X2RhdGFEZXRlY3RvclR5cGVz
ID0gc2VsZi0+X2RhdGFEZXRlY3RvclR5cGVzOwpAQCAtMTEzOSwxNiArMTEzNyw2IEBAIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JF
ZGl0aW5nQ29udHJvbHNNYW5hZ2VyID0gcmVxdWlyZXNVc2VyQWN0aW9uOwogfQogCi0tIChXS1Bh
Z2VHcm91cFJlZilfcGFnZUdyb3VwCi17Ci0gICAgcmV0dXJuIF9wYWdlR3JvdXAuZ2V0KCk7Ci19
Ci0KLS0gKHZvaWQpX3NldFBhZ2VHcm91cDooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwCi17Ci0g
ICAgX3BhZ2VHcm91cCA9IHBhZ2VHcm91cDsKLX0KLQogLSAodm9pZClfc2V0Q1BVTGltaXQ6KGRv
dWJsZSljcHVMaW1pdAogewogICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0Q1BVTGltaXQoY3B1
TGltaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAppbmRleCAyNDI1ZWM2ZmZj
YWMwYmM1NmQ2NGI4ZDM3OTUyOTQzMWY1OWEwMzc4Li4yNDM4YWNkZGZlNjE3YzI3MDFjN2ZiODI0
N2IzODZhMGJiMzdhZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApAQCAt
MTAxLDcgKzEwMSw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERl
bGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbWFnZUNvbnRyb2xzRW5h
YmxlZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJJbWFn
ZSBjb250cm9scyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEyLCBXS19NQUNf
VEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVp
cmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1Vz
ZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0Q1BV
TGltaXQ6KSBkb3VibGUgX2NwdUxpbWl0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRQYWdlR3JvdXA6
KSBXS1BhZ2VHcm91cFJlZiBfcGFnZUdyb3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCkpOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0
V2Vic2l0ZURhdGFTdG9yZTopIF9XS1dlYnNpdGVEYXRhU3RvcmUgKl93ZWJzaXRlRGF0YVN0b3Jl
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYnNpdGVEYXRhU3RvcmUiLCBt
YWNvcygxMC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggY2IzZjhhZTg3Yjk3OTM0NWUzNGUxZDhl
NmY3MTBmOWE1MGFiOTczYy4uMDMzMjgxMGU1YTExN2NmYTk1NmIyMjAwYTdhNWRjZmQ5ZDI5YWU5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAg
LTU1OTEsNyArNTU5MSw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmNhbkhhbmRsZUNvbnRleHRNZW51
VHJhbnNsYXRpb24oKSBjb25zdAogICAgIHJldHVybiBUcmFuc2xhdGlvblVJU2VydmljZXNMaWJy
YXJ5KCkgJiYgW2dldExUVUlUcmFuc2xhdGlvblZpZXdDb250cm9sbGVyQ2xhc3MoKSBpc0F2YWls
YWJsZV07CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZUNvbnRleHRNZW51VHJhbnNsYXRp
b24oY29uc3QgVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8mIGluZm8pCit2b2lkIFdlYlZpZXdJ
bXBsOjpoYW5kbGVDb250ZXh0TWVudVRyYW5zbGF0aW9uKGNvbnN0IFdlYkNvcmU6OlRyYW5zbGF0
aW9uQ29udGV4dE1lbnVJbmZvJiBpbmZvKQogewogICAgIGlmICghY2FuSGFuZGxlQ29udGV4dE1l
bnVUcmFuc2xhdGlvbigpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2I5YWEx
YWFkYWRmOGZlNDJlNmUzYzJlZTRmNmQwY2Y3YzdlNDdlMi4uODJlMTk2ZGVjYTJlZjdiOGYzNWI2
YThlMmY3MzJkMmRhOTU5ODk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjc0LDYgKzEyNzQsNyBAQAogCQk1QzlBOTExMjIyOEY2
OUNDMDA1QzVCMTcgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2Vy
dmljZU1haW4ubW0gKi87IH07CiAJCTVDOUE5MTEzMjI4RjY5Q0QwMDVDNUIxNyAvKiBYUENTZXJ2
aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKIAkJ
NUM5QTkxMTQyMjhGNjlDRTAwNUM1QjE3IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3
OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OworCQk1QzlERDMyNjI2NEM3Rjc0MDBFMDc0
NDIgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUM5REQzMjUyNjRDN0Y3NDAwRTA3NDQyIC8qIFdLUGFnZUdyb3Vw
SW50ZXJuYWwuaCAqLzsgfTsKIAkJNUM5RTU2ODMxREY3RjFCMzAwQzlFRTMzIC8qIFdLV2Vic2l0
ZVBvbGljaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzlFNTY4MTFERjdGMDU1MDBDOUVFMzMgLyogV0tXZWJzaXRlUG9saWNpZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Q0EyNkQ4MTIxN0FC
RDVCMDBGOTdBMzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0EyNkQ4MDIxN0FCQkI2MDBGOTdBMzUgLyog
V0tTYWZlQnJvd3NpbmdXYXJuaW5nLmggKi87IH07CiAJCTVDQTI2RDgzMjE3QUQxQjgwMEY5N0Ez
NSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0EyNkQ3RjIxN0FCQkI2MDBGOTdBMzUgLyogV0tTYWZlQnJv
d3NpbmdXYXJuaW5nLm1tICovOyB9OwpAQCAtNDQ4Miw2ICs0NDgzLDcgQEAKIAkJNUM4REQzODEx
RkU0NTVDQTAwRjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVF1aXJrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVBdXRvcGxheVF1aXJrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDOUM1QzAyMjQzMDUzNTgwMEJCNjc0MCAvKiBVc2VyQ29udGVudENv
bnRyb2xsZXJQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVz
ZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUM5QzVDMDMyNDMwNTM1ODAwQkI2NzQwIC8qIFVzZXJDb250ZW50Q29udHJvbGxlclBh
cmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlckNv
bnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTVDOUREMzI1MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VHcm91cEludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUdyb3VwSW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5RTU2ODAxREY3RjA1NTAwQzlFRTMzIC8qIFdL
V2Vic2l0ZVBvbGljaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdLV2Vic2l0ZVBvbGljaWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5
RTU2ODExREY3RjA1NTAwQzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vic2l0ZVBvbGljaWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDOUVGMkU3MjFGMDU4RjkwMDNCREM1NiAvKiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3
b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTAyNzEsNiArMTAyNzMsNyBAQAogCQkJCTFBQjhBMUVGMTg0MDBCMDAwMEU5QUU2OSAvKiBX
S1BhZ2VGb3JtQ2xpZW50LmggKi8sCiAJCQkJQkM3QjYzMzYxMkE0NUFCQTAwRDE3NEE0IC8qIFdL
UGFnZUdyb3VwLmNwcCAqLywKIAkJCQlCQzdCNjMzNTEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdl
R3JvdXAuaCAqLywKKwkJCQk1QzlERDMyNTI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJ
bnRlcm5hbC5oICovLAogCQkJCTJEOUVBMzBDMUE5NkNCNTkwMDJEMjgwNyAvKiBXS1BhZ2VJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5oICovLAogCQkJCTFBQjhBMUVCMTg0MDA4MDkwMEU5QUU2OSAvKiBX
S1BhZ2VMb2FkZXJDbGllbnQuaCAqLywKIAkJCQkyRDczMDM3ODFBN0MyQjc1MDBGOEY0ODcgLyog
V0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oICovLApAQCAtMTI4MTAsNiArMTI4MTMsNyBAQAogCQkJ
CTFBQjhBMUY2MTg0MDBCOUQwMEU5QUU2OSAvKiBXS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRjAxODQwMEIwMDAwRTlBRTY5IC8qIFdLUGFnZUZvcm1D
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0I2MzM3MTJBNDVBQkEwMEQxNzRBNCAvKiBX
S1BhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUM5REQzMjYyNjRDN0Y3NDAwRTA3NDQy
IC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOUVBMzBEMUE5
NkNCNTkwMDJEMjgwNyAvKiBXS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFCOEExRUMxODQwMDgwOTAwRTlBRTY5IC8qIFdLUGFnZUxvYWRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRDAyMTkxMkFDNDI2QzAwRTczMkEzIC8qIFdLUGFnZUxv
YWRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYWY0OGEyM2U0MjA1NzQ4YmU2NDFjNzBlMWE1NDU3OGQyYmIw
MmNlMS4uNGMzZWVhMGMzYmJkNGFmMmJjYjJhZTAyMDE2YWRhYmQwNDhhZjc5MyAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBA
CisyMDIxLTA1LTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmVtb3ZlIGFzIG11Y2ggb2YgV0tQYWdlR3JvdXBSZWYgYXMgcG9zc2libGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9D
bG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVu
c2lvbkJhc2ljLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVy
YWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5q
ZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9QYXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2lu
Z1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVy
c2VQYWdpbmF0ZWRXZWJWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlv
cnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
VXNlck1lZGlhLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
bWFjL0NvbnRleHRNZW51RG93bmxvYWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9yQ29tbWFu
ZHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
ZWJzaXRlUG9saWNpZXMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZTo6aW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgorCiAyMDIxLTA1LTE3ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3Zl
IEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVQYWdlR3JvdXAKZGlmZiAtLWdpdCBhL1Rvb2xzL01p
bmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcCBiL1Rvb2xzL01pbmlCcm93c2Vy
L3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcAppbmRleCA5MjQ1ZGZjN2Y4MWYzYTgwNDgwYTBk
ZGRjZTdmZmNjN2UwOWVkNDA2Li43NjM0Yzg0MGQ2MTMxYjEwOWUwNmVjNzE4YjcwOWFiZjA1NTQy
NmYwIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRv
dy5jcHAKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3Bw
CkBAIC0xMTEsMTcgKzExMSwxMiBAQCBSZWY8QnJvd3NlcldpbmRvdz4gV2ViS2l0QnJvd3Nlcldp
bmRvdzo6Y3JlYXRlKEJyb3dzZXJXaW5kb3dDbGllbnQmIGNsaWVudCwgSFdORAogewogICAgIGF1
dG8gY29uZiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKIAotICAgIGF1
dG8gcHJlZnMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7CisgICAgYXV0byBwcmVm
cyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25mLmdldCgpKTsKIAotICAg
IGF1dG8gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVy
KGNyZWF0ZVdLU3RyaW5nKCJXaW5NaW5pQnJvd3NlciIpLmdldCgpKSk7Ci0gICAgV0tQYWdlQ29u
ZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25mLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotICAg
IFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpLCBwcmVmcy5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZChwcmVmcywgZmFs
c2UpOworICAgIFdLUHJlZmVyZW5jZXNTZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHByZWZzLCB0
cnVlKTsKIAotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJl
ZnMuZ2V0KCksIGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZChwcmVmcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFByZWZl
cmVuY2VzKGNvbmYuZ2V0KCksIHByZWZzLmdldCgpKTsKLQotICAgIGF1dG8gY29udGV4dCA9YWRv
cHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CisgICAgYXV0
byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxs
cHRyKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZi5nZXQoKSwgY29u
dGV4dC5nZXQoKSk7CiAKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJLaXRCcm93c2VyV2lu
ZG93KGNsaWVudCwgY29uZi5nZXQoKSwgbWFpblduZCkpOwpAQCAtMjIzLDggKzIxOCw4IEBAIHZv
aWQgV2ViS2l0QnJvd3NlcldpbmRvdzo6bmF2aWdhdGVUb0hpc3RvcnkoVUlOVCBtZW51SUQpCiB2
b2lkIFdlYktpdEJyb3dzZXJXaW5kb3c6OnNldFByZWZlcmVuY2UoVUlOVCBtZW51SUQsIGJvb2wg
ZW5hYmxlKQogewogICAgIGF1dG8gcGFnZSA9IFdLVmlld0dldFBhZ2UobV92aWV3LmdldCgpKTsK
LSAgICBhdXRvIHBncm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cChwYWdlKTsKLSAgICBhdXRvIHBy
ZWYgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBncm91cCk7CisgICAgYXV0byBjb25maWd1
cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24ocGFnZSkpOworICAg
IGF1dG8gcHJlZiA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25maWd1cmF0
aW9uLmdldCgpKTsKICAgICBzd2l0Y2ggKG1lbnVJRCkgewogICAgIGNhc2UgSURNX0FDQ19DT01Q
T1NJVElORzoKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKHByZWYsIGVuYWJsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaApp
bmRleCA1ZTg1MDI2ODlmMTNlOGVkMTE5ZTMxYTc2ZjViY2VjNjA5OGFjZTc1Li5hZjU5YWJlZDY5
ZDA4ODk5MjAwODc0YzM1YzQ3NjNkYmU0Yjc4NTY2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZv
cm1XZWJWaWV3LmgKQEAgLTczLDExICs3Myw4IEBAIGNsYXNzIFBsYXRmb3JtV2ViVmlldyB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGxhdGZvcm1XZWJWaWV3KTsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7Ci0gICAgZXhw
bGljaXQgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgPSAwKTsK
KyAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmKTsKICAgICBleHBsaWNp
dCBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKTsKLSNpZiBQTEFURk9STShN
QUMpCi0gICAgZXhwbGljaXQgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3Jv
dXBSZWYsIENsYXNzIHdrVmlld1N1YmNsYXNzKTsKLSNlbmRpZgogICAgIH5QbGF0Zm9ybVdlYlZp
ZXcoKTsKIAogICAgIFdLUGFnZVJlZiBwYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGU5ZmI3YmM3NjkyZjMwYWQ3NTE0MTM4M2Q1NjliMDU5ZjkwYTU4MTcuLmM2M2E1ZWU3
MTJjNTJhODY1Yjg1ZDQyOTExM2IwMzdlYjZlYzA2Y2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02NzcsNyArNjc3LDcgQEAKIAkJN0M5RUQ5OEIxN0ExOUY0QjAwRTREQzMzIC8qIGF0dHJp
YnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M5RUQ5OEExN0ExOUQwNjAwRTREQzMzIC8qIGF0
dHJpYnV0ZWRTdHJpbmdTdHJpa2V0aHJvdWdoLmh0bWwgKi87IH07CiAJCTdDQjE4NEM2MUFBM0Yy
MTAwMDY2RURGRCAvKiBDb250ZW50RXh0ZW5zaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0IxODRDNDFBQTNGMjEwMDA2NkVERkQgLyogQ29u
dGVudEV4dGVuc2lvbnMuY3BwICovOyB9OwogCQk3Q0JENUEyMzIyREU0MkE2MDA0QTlFMzIgLyog
V1RGU3RyaW5nVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDQkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRp
ZXMuY3BwICovOyB9OwotCQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQ0I0REE3
MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwICovOyB9OworCQk3Q0NCNERBOTFDODNB
RTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5t
bSAqLzsgfTsKIAkJN0NDQjk5MjExRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rp
b25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFj
dGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbSAqLzsgfTsKIAkJN0NDQjk5MjMxRDNCNEE0NjAwMzky
MkY2IC8qIG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQjk5MjIxRDNCNDRFNzAwMzky
MkY2IC8qIG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgKi87IH07CiAJCTdDQ0U3RUE1
MUE0MTFBMDgwMDQ0N0M0QyAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwODEyMjQwMTNGQzE3MjQwMERDMzlBRSAv
KiBKYXZhU2NyaXB0VGVzdE1hYy5tbSAqLzsgfTsKQEAgLTI0NzMsNyArMjQ3Myw3IEBACiAJCTdD
QkJBMDc2MTlCQjhBOTEwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPU09iamVjdFB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDQkQ1QTIyMjJERTQyQTYwMDRBOUUzMiAvKiBXVEZTdHJpbmdVdGlsaXRp
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGU3RyaW5nVXRpbGl0aWVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDM0UxRkExOTdFMjM0MTAwQkU2MjUyIC8qIFVzZXJD
b250ZW50Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFVzZXJDb250ZW50Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZUdyb3VwLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNl
ckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0I5OTIyMUQzQjQ0RTcwMDM5
MjJGNiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIm9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3Q0NFN0U4QzFBNDExNDRFMDA0NDdDNEMgLyogbGliVGVzdFdl
YktpdEFQSS5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJUZXN0V2ViS2l0QVBJ
LmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC00MzI4LDcgKzQzMjgs
NyBAQAogCQkJCTkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLywKIAkJCQkwRjU2NTFGNjFGQ0U0RERCMDAz
MTBGQkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21lbnQubW0gKi8sCiAJCQkJMUNCMkYy
N0IyNEY4ODM3OTAwMEE1QkMxIC8qIE9ydGhvZ29uYWxGbG93QXZhaWxhYmxlU2l6ZS5tbSAqLywK
LQkJCQk3Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCAqLywKKwkJCQk3
Q0NCNERBNzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLm1tICovLAogCQkJCUJDOTA5Nzc5
MTI1NTcxQUIwMDA4Mzc1NiAvKiBQYWdlTG9hZEJhc2ljLmNwcCAqLywKIAkJCQlCQzJEMDA0ODEy
QTlGREZBMDBFNzMyQTMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JG
cmFtZS5jcHAgKi8sCiAJCQkJMjcyQTY5MEYyMkYwMTJDNzAwMEZEQUJCIC8qIFBhZ2VMb2FkU3Rh
dGUuY3BwICovLApAQCAtNTU5Miw3ICs1NTkyLDcgQEAKIAkJCQkwRjM0MDc3NjIzMDM3RkRDMDA2
MEExQTAgLyogT3ZlcmZsb3dTY3JvbGxWaWV3VGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlD
MTA0QkMxRjI1NDcyMzcxMDBDMDc4QzkgLyogT3ZlcnJpZGVBcHBsZUxhbmd1YWdlc1ByZWZlcmVu
Y2UubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREEyNTg2RjIyNUM2N0RDMDBCNDVDMUMgLyogT3Zl
cnJpZGVWaWV3cG9ydEFyZ3VtZW50cy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTdDQ0I0REE5MUM4
M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0NDQjRE
QTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdD
Q0U3RjA3MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZEJhc2ljLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RjA4MUE0MTFBRTYwMDQ0N0M0QyAvKiBQYWdlTG9hZERpZENoYW5nZUxvY2F0
aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3MkE2OTEwMjJG
MDEyREEwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhSVGVz
dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRl
c3QubW0KaW5kZXggNDdmNWU4ODVjZDZhMGMxNGYzOWFmYjcxOGE4YmM1ZDk5ZTlmNWM3ZC4uYWQz
OTkxZDU2ZjIxZTU2MmUyNDVhMjQwN2I2MzY1YzQ5ODhlNmFiZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tCkBA
IC01Miw5ICs1Miw3IEBAIFRFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIFN5bmNYSFIp
CiAgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0R3JvdXA+IGJyb3dzaW5nQ29udGV4dEdy
b3VwID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0R3JvdXAgYWxsb2NdIGluaXRXaXRoSWRl
bnRpZmllcjpAIlRlc3RJZGVudGlmaWVyIl0pOwogCiAgICAgLy8gQWxsb3cgZmlsZSBVUkxzIHRv
IGxvYWQgbm9uLWZpbGUgcmVzb3VyY2VzCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1Jl
Zj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5j
ZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoYnJvd3NpbmdD
b250ZXh0R3JvdXAuZ2V0KCkuX3BhZ2VHcm91cFJlZiwgcHJlZmVyZW5jZXMuZ2V0KCkpOworICAg
IFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKFdLUGFn
ZUdyb3VwR2V0UHJlZmVyZW5jZXMoYnJvd3NpbmdDb250ZXh0R3JvdXAuZ2V0KCkuX3BhZ2VHcm91
cFJlZiksIHRydWUpOwogCiAgICAgUmV0YWluUHRyPFdLVmlldz4gd2tWaWV3ID0gYWRvcHROUyhb
W1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBw
cm9jZXNzR3JvdXA6cHJvY2Vzc0dyb3VwLmdldCgpIGJyb3dzaW5nQ29udGV4dEdyb3VwOmJyb3dz
aW5nQ29udGV4dEdyb3VwLmdldCgpXSk7CiAgICAgIFJldGFpblB0cjxUZXN0QnJvd3NpbmdDb250
ZXh0TG9hZERlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0QnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEJsb2NrVG9SdW5PbkxvYWQ6XihXS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIgKnNlbmRlcikgewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcApp
bmRleCAyODg1ZjUyYmE4MWEyM2UzMDEyNzMzMTQ5NGU3Y2IyMTdjM2M1NjdjLi5kNjVkNDUzNTg0
MDM1MjRhNWQ3NWVhOThiNGU3NWNmNWNmZWE5YTZmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdl
LmNwcApAQCAtNzYsMTAgKzc2LDggQEAgVEVTVChXZWJLaXQsIENsb3NlRnJvbVdpdGhpbkNyZWF0
ZVBhZ2UpCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGll
bnQuYmFzZSk7CiAKICAgICAvLyBBbGxvdyBmaWxlIFVSTHMgdG8gbG9hZCBub24tZmlsZSByZXNv
dXJjZXMKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFk
b3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
dXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOworICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFBy
ZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFn
ZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKLSAgICBXS1BhZ2VHcm91cFNl
dFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0KCkpOwogICAgIAogICAgIFdL
UmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJjbG9zZS1mcm9tLXdpdGhpbi1jcmVhdGUtcGFnZSIsICJodG1sIikpOwogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CkBAIC0xMjEsMTAgKzExOSw4IEBA
IFRFU1QoV2ViS2l0LCBDcmVhdGVQYWdlVGhlbkRvY3VtZW50T3Blbk1JTUVUeXBlKQogICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogCiAg
ICAgLy8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZpbGUgcmVzb3VyY2VzCi0gICAgV0tS
ZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVy
ZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gV0tQYWdlR2V0
UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2Vz
UmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9w
dFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsK
ICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChw
cmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhw
YWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKIAogICAgIHRlc3REb25lID0gZmFsc2U7CiAg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9y
UmVzb3VyY2UoIndpbmRvdy1vcGVuLXRoZW4tZG9jdW1lbnQtb3BlbiIsICJodG1sIikpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5z
aW9uQmFzaWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93
RXh0ZW5zaW9uQmFzaWMuY3BwCmluZGV4IGY0ZmM3MDEwYTk1MjYxZmJiYWViNjUyZmIxY2E3YjFm
OWI5OTRlODguLmQwMmZmMjNhMjNkYmQ1NzhiNTE3MWQyNjRiNTliYjA4NWEwY2IyOGUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bkJhc2ljLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5k
b3dFeHRlbnNpb25CYXNpYy5jcHAKQEAgLTgyLDkgKzgyLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBt
ZXNzYWcKIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljKQog
ewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdL
UGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljUGFnZUdyb3VwIikpKTsgCi0KLSAgICBXS1JldGFp
blB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRG
b3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljIiwgcGFnZUdyb3Vw
LmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRX
SyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRl
bnNpb25CYXNpYyIpKTsKIAogICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50VjAgaW5q
ZWN0ZWRCdW5kbGVDbGllbnQ7CiAgICAgbWVtc2V0KCZpbmplY3RlZEJ1bmRsZUNsaWVudCwgMCwg
c2l6ZW9mKGluamVjdGVkQnVuZGxlQ2xpZW50KSk7CkBAIC05OCw3ICs5Niw3IEBAIFRFU1QoV2Vi
S2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNpYykKICAgICAvLyBtb2RlbCB0aGF0
IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0
U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2Vy
KTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91
cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAg
ICAgCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHRlbnNpb25zIGZvciBlYWNoIGZyYW1lIGFyZSBp
bnN0YWxsZWQgaW4gZWFjaCB3b3JsZC4KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsMSA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZS1pZnJhbWUiLCAiaHRt
bCIpKTsKQEAgLTEzNyw4ICsxMzUsNiBAQCBURVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93
RXh0ZW5zaW9uQmFzaWMpCiAKIFRFU1QoV2ViS2l0LCBET01XaW5kb3dFeHRlbnNpb25DcmFzaE9u
UmVsb2FkKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBh
ZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljUGFnZUdyb3VwIikpKTsKLQogICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
Q29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMiKSk7
CiAKICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudFYwIGluamVjdGVkQnVuZGxlQ2xp
ZW50OwpAQCAtMTUzLDcgKzE0OSw3IEBAIFRFU1QoV2ViS2l0LCBET01XaW5kb3dFeHRlbnNpb25D
cmFzaE9uUmVsb2FkKQogICAgIC8vIG1vZGVsIHRoYXQgYWN0dWFsbHkgYWxsb3dzIGZvciBhIGJh
Y2svZm9yd2FyZCBjYWNoZS4KICAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQuZ2V0
KCksIGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9N
V2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKaW5kZXggZTE2OTZkNWJkNjU2OTQ3Mjc4Zjk0NzQ4
NTI1MzE3MmJjNDliN2NhNy4uYzdkMGY4ZDA4ZWEyMjQyYWJjN2FkMzg2NTI0OWFhOGMyNTRmMjEw
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93
RXh0ZW5zaW9uTm9DYWNoZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKQEAgLTgzLDkgKzgzLDcgQEAgc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBX
S1N0cmluZ1JlZiBtZXNzYWcKIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVu
c2lvbk5vQ2FjaGUpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91
cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZVBhZ2VHcm91cCIpKSk7
Ci0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6
OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbk5v
Q2FjaGUiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRl
c3QoIkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUiKSk7CiAKICAgICBXS0NvbnRleHRJbmplY3Rl
ZEJ1bmRsZUNsaWVudFYxIGluamVjdGVkQnVuZGxlQ2xpZW50OwogICAgIG1lbXNldCgmaW5qZWN0
ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkpOwpAQCAtOTgs
NyArOTYsNyBAQCBURVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNo
ZSkKICAgICAvLyBEaXNhYmxlIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0
U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIp
OwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3Vw
LmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAog
ICAgIC8vIE1ha2Ugc3VyZSB0aGUgZXh0ZW5zaW9ucyBmb3IgZWFjaCBmcmFtZSBhcmUgaW5zdGFs
bGVkIGluIGVhY2ggd29ybGQuCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybDEgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1lIiwgImh0bWwiKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0
YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcAppbmRleCBhNzc1NDRl
NTJmMGZjOGJmM2MzMjI1MTc0ZGMyMzM3ZmI4Zjg3NzBhLi5kNGEzNTEyMzQ1ZWQ1YzJhNDIzYTYz
ZjhiMDk2ZjZiY2UzN2JiNTlkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRD
cmFzaC5jcHAKQEAgLTQ4LDEwICs0OCw4IEBAIHN0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVy
dChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmCiAKIFRF
U1QoV2ViS2l0LCBEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hUZXN0KQogewotICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdy
b3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRv
Y3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaFRlc3RQYWdlR3JvdXAiKSkpOyAKLQogICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
Q29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVy
dENyYXNoVGVzdCIpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgp
LCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQu
Z2V0KCkpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVp
Q2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVNZWRpYURldmljZXMuY3BwCmluZGV4IGEz
ZDdiOWNkZDcwNDE4OGVmZWU3M2ZmYjBmMTBjNTgzMTcwNzkwNDcuLmFiN2E2ZjI0NDc1ODM3Y2Ji
ZDU1OWI4ZmI4ZDFmNmM1YjUyNzAzZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcApAQCAtNTEsMTgg
KzUxLDE4IEBAIFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZpY2VzKQogewogICAgIGF1dG8gY29u
dGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikp
OwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0so
V0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJFbnVtZXJhdGVEZXZp
Y2VzIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdl
R3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNT
ZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVu
Y2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwot
ICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24o
cHJlZmVyZW5jZXMsIGZhbHNlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAg
ICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CiAgICAgdWlDbGllbnQu
YmFzZS52ZXJzaW9uID0gNjsKICAgICB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25G
b3JPcmlnaW4gPSBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjazsKIAotICAgIFBsYXRm
b3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9w
dFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHBy
ZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisKKwogICAgIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogCiAgICAgYXV0
byB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJlbnVtZXJhdGVNZWRp
YURldmljZXMiLCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0
YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCmluZGV4IDY4NWY5NDNhYjcyYmM2Yzc0ZWZmYjA5MzVh
YjZmY2Q5YTMxZWZiNDUuLjA5MWJlMmMyYzlkODhjOGE1ZTMxZjUzMWM5NTMzY2Y4OWRiOTE3ZjYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNl
c3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxi
YWNrLmNwcApAQCAtNzcsMTIgKzc3LDkgQEAgVEVTVChXZWJLaXQsIEVwaGVtZXJhbFNlc3Npb25Q
dXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjaykKIAogICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9u
Q2xpZW50KHdlYlZpZXcucGFnZSgpLCAmcGFnZUxvYWRlckNsaWVudC5iYXNlKTsKIAotICAgIFdL
UmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZl
cmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZl
cmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdl
Q29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2Vz
LmdldCgpLCB0cnVlKTsKIAotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdl
dFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNl
cyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKLQogICAgIFdLUmV0YWluUHRyPFdLVVJM
UmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJwdXNoLXN0YXRl
IiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgp
KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0
ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvci5jcHAKaW5kZXggODVjNzY4NmE2ODAzMThmM2Y3MzQ2YmY5Y2I4NGIxMzIxNmQx
ZDVhZi4uMWViY2Q0ZWU4ZWFmZTFiMjJlMGMzYTU5NTRhYmMxMmQzMjkzM2M0YiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3Iu
Y3BwCkBAIC01MCwxMCArNTAsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnRFbmFi
bGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQsIFdLRgogCiBURVNUKFdl
YktpdCwgSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0
KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdL
KFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIkluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVz
dFBhZ2VHcm91cCIpKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkluamVj
dGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCIpKTsKLSAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwor
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdl
VUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlD
bGllbnQpKTsKQEAgLTg0LDEwICs4Miw4IEBAIHN0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVy
dERpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQsIFdLCiAKIFRF
U1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JU
ZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRl
c3RQYWdlR3JvdXAiKSkpOwotCiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0
ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmpl
Y3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0IikpOwotICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Cisg
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VV
SUNsaWVudFYwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNs
aWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5q
ZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAK
aW5kZXggZDJiMWQ1NzM4N2I0OTFlYjM3ZDRmODc5MzYzOWQ3N2Q3MGEwMmZhZS4uNmU1ODAzNDY1
MjBkN2MyYWE2NTJmOGY1MjRlMGY4ODk4ZGE0NDc3NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVu
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRs
ZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCkBAIC04NSwxMCArODUsOCBAQCBzdGF0aWMgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4
dCwgV0tGcmFtZVJlZgogCiBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93
Um9vdE9wZW5UZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3Jv
dXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVz
dFBhZ2VHcm91cCIpKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkluamVj
dGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVzdCIpKTsKLSAgICBQbGF0Zm9ybVdlYlZp
ZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3Jt
V2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMCB1
aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWU5MDQzMjc1MjhiM2U4NWFlZDIzYjJjN2RjNjczMzI2
ZDI0NzFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1w
b3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19IQVZFX0NfU1BJCi0KLSNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKLSNp
bXBvcnQgIlRlc3QuaCIKLSNpbXBvcnQgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgotI2ltcG9ydCA8
V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tQ
YWdlQ29uZmlndXJhdGlvblJlZi5oPgotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLVRF
U1QoUGFnZUdyb3VwLCBEZWZhdWx0VXNlckNvbnRlbnRDb250cm9sbGVyKQotewotICAgIGF1dG8g
cGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7
Ci0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJh
dGlvbihudWxscHRyKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQocGFnZUNv
bmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHQuZ2V0KCkpOwotICAgIGF1dG8gcGFnZUdyb3VwID0g
YWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIlRlc3RQ
YWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAo
cGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Ci0KLSAgICBhdXRvIHBh
Z2VHcm91cFVzZXJDb250ZW50Q29udHJvbGxlciA9IHJldGFpbldLKFdLUGFnZUdyb3VwR2V0VXNl
ckNvbnRlbnRDb250cm9sbGVyKHBhZ2VHcm91cC5nZXQoKSkpOwotCi0gICAgRVhQRUNUX05VTEwo
V0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihwYWdlQ29uZmlndXJh
dGlvbi5nZXQoKSkpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcocGFnZUNvbmZpZ3Vy
YXRpb24uZ2V0KCkpOwotICAgIGF1dG8gY29waWVkUGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9wdFdL
KFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpOwotCi0gICAgQVNT
RVJUX0VRKHBhZ2VHcm91cFVzZXJDb250ZW50Q29udHJvbGxlci5nZXQoKSwgV0tQYWdlQ29uZmln
dXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihjb3BpZWRQYWdlQ29uZmlndXJhdGlvbi5n
ZXQoKSkpOwotfQotCi1URVNUKFBhZ2VHcm91cCwgQ3VzdG9tVXNlckNvbnRlbnRDb250cm9sbGVy
KQotewotICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3Vy
YXRpb25DcmVhdGUoKSk7Ci0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVh
dGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNl
dENvbnRleHQocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHQuZ2V0KCkpOwotICAgIGF1
dG8gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0
aWw6OnRvV0soIlRlc3RQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRp
b25TZXRQYWdlR3JvdXAocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7
Ci0gICAgYXV0byB1c2VyQ29udGVudENvbnRyb2xsZXIgPSBhZG9wdFdLKFdLVXNlckNvbnRlbnRD
b250cm9sbGVyQ3JlYXRlKCkpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRVc2VyQ29udGVu
dENvbnRyb2xsZXIocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIHVzZXJDb250ZW50Q29udHJvbGxl
ci5nZXQoKSk7Ci0KLSAgICBhdXRvIHBhZ2VHcm91cFVzZXJDb250ZW50Q29udHJvbGxlciA9IHJl
dGFpbldLKFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VHcm91cC5nZXQo
KSkpOwotCi0gICAgRVhQRUNUX0VRKHVzZXJDb250ZW50Q29udHJvbGxlci5nZXQoKSwgV0tQYWdl
Q29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihwYWdlQ29uZmlndXJhdGlvbi5n
ZXQoKSkpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcocGFnZUNvbmZpZ3VyYXRpb24u
Z2V0KCkpOwotICAgIGF1dG8gY29waWVkUGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFn
ZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpOwotCi0gICAgRVhQRUNUX0VR
KHVzZXJDb250ZW50Q29udHJvbGxlci5nZXQoKSwgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJD
b250ZW50Q29udHJvbGxlcihjb3BpZWRQYWdlQ29uZmlndXJhdGlvbi5nZXQoKSkpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYWNkM2EwZTc1Y2Zm
ODdjMjI0YWY5ODFhMWQwYjNkMmRjOTU2ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAubW0KQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tGb3Vu
ZGF0aW9uLmg+CisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0
aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQYWdlR3JvdXAuaD4K
KyNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgorI2ltcG9ydCA8V2ViS2l0L1dLVmlld1By
aXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworCitURVNUKFBhZ2VHcm91cCwgUHJlZmVyZW5jZXMpCit7CisgICAgYXV0byBwYWdl
Q29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKKyAg
ICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9u
KG51bGxwdHIpKTsKKyAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29uZmln
dXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7CisgICAgYXV0byBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiVGVzdFBhZ2VH
cm91cCIpLmdldCgpKSk7CisgICAgYXV0byB3a1ZpZXcgPSBhZG9wdE5TKFtbV0tWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29udGV4dFJlZjpjb250ZXh0LmdldCgpIHBhZ2VH
cm91cFJlZjpwYWdlR3JvdXAuZ2V0KCldKTsKKyAgICBFWFBFQ1RfRVEoV0tQYWdlQ29uZmlndXJh
dGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdr
Vmlldy5nZXQoKS5wYWdlUmVmKSkuZ2V0KCkpLCBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBh
Z2VHcm91cC5nZXQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVi
b2FyZE5vdGlmaWNhdGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
YXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5tbQppbmRleCAzNjVjMmRkYjliOTJlNWM2NmU2Mjc5NjBh
NWEyYmZhOWU0ZGFhNjFhLi5mZjQyZjQzMjg3ZmZmOWEzZTdiNWNhYjIwODhjMTM3YTBiODQ4ZTdk
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJvYXJk
Tm90aWZpY2F0aW9ucy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
YXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5tbQpAQCAtNjcsMTIgKzY3LDkgQEAgVEVTVChXZWJLaXQs
IFBhc3RlYm9hcmROb3RpZmljYXRpb25zKQogCiAgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVm
ZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKKyAgICBXS1JldGFpblB0
cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQ
cmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBh
Z2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7CiAKLSAgICBXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOwotICAgIFdLUGFn
ZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJlbmNlcy5nZXQoKSk7Ci0KICAg
ICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJleGVjQ29weSIsICJodG1sIikpLmdldCgpKTsKICAgICBVdGlsOjpydW4oJmZp
bmlzaGVkKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9y
eUNhbGxiYWNrLmNwcAppbmRleCA2MzUyNTNlMGE2NmVmODBmNmVkMzk2NWU3N2QwNjljZGI5MjQ4
Njc2Li5lMzExYmYxMWVjMGE1ODAxZGZjMmVlZTQ3YTU0Njg1Zjg0ODFkYjExIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3Rh
dGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCkBAIC04
MCwxMiArODAsOSBAQCBURVNUKFdlYktpdCwgUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0
b3J5Q2FsbGJhY2spCiAKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3
LnBhZ2UoKSwgJnBhZ2VMb2FkZXJDbGllbnQuYmFzZSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1By
ZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgp
KTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFn
ZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmln
dXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5p
dmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7
CiAKLSAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2Vi
Vmlldy5wYWdlKCkpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBw
cmVmZXJlbmNlcy5nZXQoKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgicHVzaC1zdGF0ZSIsICJodG1sIikpOwog
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0
ZWRXZWJWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJl
dmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcAppbmRleCAyMDI0NTE2MzE3ODFiZDc4ZjYxNjQwNWIy
MzViNmNjZGIyZmRmOGIxLi5kZmU1Y2I1OWMxYmVmZjNhMzQ5ZDY1NGU5YzkwN2FmMWMzZTA2YTE0
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZl
cnNlUGFnaW5hdGVkV2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwCkBAIC03NCw4ICs3NCw3IEBA
IFRFU1QoV2ViS2l0LCBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldykKIAogICAgIFdLUGFn
ZUxpc3RlbkZvckxheW91dE1pbGVzdG9uZXMod2ViVmlldy5wYWdlKCksIGtXS0RpZEZpcnN0TGF5
b3V0QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcpOwogCi0gICAgV0tQYWdlR3Jv
dXBSZWYgcGFnZUdyb3VwID0gIFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0g
ICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5j
ZXMocGFnZUdyb3VwKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRTdXBw
cmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcocHJlZmVyZW5jZXMsIHRydWUpOwogCiAgICAgV0tQ
YWdlU2V0UGFnaW5hdGlvbk1vZGUod2ViVmlldy5wYWdlKCksIGtXS1BhZ2luYXRpb25Nb2RlUmln
aHRUb0xlZnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
U2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcAppbmRleCA4NWYyNWE2NDZmYWIyYmE0NmQ3
NDE4NmUwZmY1ZjI3NmU2MjI2ZTk5Li40YjEzOGU0OTBjNzQ2M2Q1ZWUwMjkyY2YxZWFkNmQwNzY4
NjRmMjc1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3Jv
bGxQaW5uaW5nQmVoYXZpb3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcApAQCAtNzMsMTUgKzczLDE0IEBAIFRFU1Qo
V2ViS2l0LCBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRp
b24obnVsbHB0cikpOwogCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSk7CisKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJh
dGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdl
YlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGlu
Zzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0
aW9uIHRvCiAgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBi
ZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gZG9lc24ndCBibG9jayB1bnRpbAogICAgIC8vIGl0
J3MgdXBkYXRlZCBhZnRlciB0aGUgaW5pdGlhbCBXS1BhZ2VTZXRTY3JvbGxQaW5uaW5nQmVoYXZp
b3IgYWJvdmUuCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFk
b3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJOb1RocmVh
ZGVkU2Nyb2xsaW5nUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5jZXMs
IGZhbHNlKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBh
Z2VHcm91cC5nZXQoKSk7Ci0KICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAgbG9hZGVyQ2xp
ZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFy
U2Nyb2xsaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFy
U2Nyb2xsaW5nLmNwcAppbmRleCBkMjMxMzMxYjk1NTI4ZTRkNTAwNmIzNDM0M2Q3NWJlYzAwNzE0
OTYxLi43OTFmOTQzNzAyZTE2YmZhMTExNjM0MGZmYjljYzQzZWZjNTMwZmNhIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcu
Y3BwCkBAIC01MywxNCArNTMsMTMgQEAgVEVTVChXZWJLaXQsIFNwYWNlYmFyU2Nyb2xsaW5nKQog
ewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAorICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5
UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisKICAgICAvLyBUdXJu
IG9mZiB0aHJlYWRlZCBzY3JvbGxpbmc7IHN5bmNocm9ub3VzbHkgd2FpdGluZyBmb3IgdGhlIG1h
aW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB0bwogICAgIC8vIHVwZGF0ZSB1c2luZyBXS1BhZ2VG
b3JjZVJlcGFpbnQgd291bGQgYmUgYmV0dGVyLCBidXQgZm9yIHNvbWUgcmVhc29uIHRoZSB0ZXN0
IHN0aWxsIGZhaWxzIG9jY2FzaW9uYWxseS4KLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJl
Zj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0
aWw6OnRvV0soIk5vVGhyZWFkZWRTY3JvbGxpbmdQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBh
Z2VHcm91cC5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5h
YmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQogICAgIFdLUGFnZU5hdmlnYXRpb25D
bGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVv
Zihsb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvVXNlck1lZGlhLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1VzZXJNZWRpYS5jcHAKaW5kZXggNTc1MTk3M2E1ODg3ODllNGZlOWY4NmU5NTUzNWViNTVlMmZk
N2UxMy4uMGNiYzUwMGFiMmYzNTRlMGRhYjUxNTg4ZTZkMGM1YWJmMjJlYWU2YSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCkBAIC03MSwyMCAr
NzEsMTggQEAgVEVTVChXZWJLaXQsIFVzZXJNZWRpYUJhc2ljKQogewogICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwog
Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQ
YWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJHZXRVc2VyTWVkaWEiKS5n
ZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdl
dFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlh
RGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJl
bmNlcywgZmFsc2UpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7
CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CiAgICAgdWlDbGll
bnQuYmFzZS52ZXJzaW9uID0gNjsKICAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdCA9IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0Q2FsbEJhY2s7CiAgICAgdWlDbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luID0gY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJhY2s7CiAgICAgCi0gICAgUGxh
dGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFk
b3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0
cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQo
cHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAg
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAK
ICAgICB3YXNQcm9tcHRlZCA9IGZhbHNlOwpAQCAtMTA3LDIwICsxMDUsMTggQEAgVEVTVChXZWJL
aXQsIE9uRGV2aWNlQ2hhbmdlQ3Jhc2gpCiB7CiAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhX
S0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAKLSAgICBXS1JldGFp
blB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0
ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkdldFVzZXJNZWRpYSIpLmdldCgpKSk7Ci0gICAg
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMo
cGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0
TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7
Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5j
ZXMsIHRydWUpOwotCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsKICAgICBtZW1zZXQo
JnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKICAgICB1aUNsaWVudC5iYXNlLnZlcnNp
b24gPSA2OwogICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsQmFj
azsKICAgICB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4gPSBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjazsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQ
YWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVm
ZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVl
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJl
RGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogCiAgICAgLy8gTG9hZCBhIHBh
Z2UgcmVnaXN0ZXJpbmcgb25kZXZpY2VjaGFuZ2UgaGFuZGxlci4KQEAgLTE2NywxMyArMTYzLDYg
QEAgVEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFzaCkKIHsKICAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsK
IAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdL
UGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiR2V0VXNlck1lZGlhIiku
Z2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBH
ZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRp
YURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdL
UHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVy
ZW5jZXMsIGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5h
YmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50
OwogICAgIC8vIFdlIHdhbnQgdWlDbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3Jp
Z2luIHRvIGJlIG51bGwuCiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50
KSk7CkBAIC0xODQsNyArMTczLDEzIEBAIFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZpY2VzQ3Jh
c2gpCiAgICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDM7CiAgICAgbG9hZGVyQ2xpZW50
LmRpZEZpbmlzaE5hdmlnYXRpb24gPSBkaWRGaW5pc2hOYXZpZ2F0aW9uOwogCi0gICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0
V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVl
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJl
ZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKKyAgICBXS1ByZWZlcmVuY2Vz
U2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisKICAgICBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKICAg
ICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNs
aWVudC5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBlNTQxMDBjOGM3OTQ2NzE2NTA5MDJi
MzIzZmVmZDE1ODIxZTQyN2FiLi4wNWQ5NWU0OTc0MTgwNTUzMDk1OWEyNmMzNDhjMWU4Yzk3Yzdh
YWU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VD
b25maWd1cmF0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9X
S1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNDEsNyArNDEsNiBAQCBURVNUKFdlYktpdCwgV0tQ
YWdlQ29uZmlndXJhdGlvbkVtcHR5KQogCiAgICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJh
dGlvbkdldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSkpOwogICAgIEFTU0VSVF9OVUxMKFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIoY29uZmlndXJhdGlvbi5n
ZXQoKSkpOwotICAgIEFTU0VSVF9OVUxMKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdlR3JvdXAo
Y29uZmlndXJhdGlvbi5nZXQoKSkpOwogICAgIEFTU0VSVF9OVUxMKFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRQcmVmZXJlbmNlcyhjb25maWd1cmF0aW9uLmdldCgpKSk7CiAgICAgQVNTRVJUX05VTEwo
V0tQYWdlQ29uZmlndXJhdGlvbkdldFJlbGF0ZWRQYWdlKGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlz
UGxheWluZ0F1ZGlvLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFn
ZUlzUGxheWluZ0F1ZGlvLmNwcAppbmRleCBjMWVmMDkxNWMyN2UyMTVjNzhiYzg0MzFhMWNhY2Y0
ZjRkMjU4OWMwLi41NjQ5ZDkwNDRjOGUzZGI0NjBlODkxZjY3YjU1MDU1MGRhN2UxZDhlIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdB
dWRpby5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQ
bGF5aW5nQXVkaW8uY3BwCkBAIC0xMTcsMTIgKzExNywxMCBAQCBURVNUKFdlYktpdCwgTVNFSXNQ
bGF5aW5nQXVkaW8pCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAKLSAg
ICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VH
cm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk1TRUlzUGxheWluZ0F1ZGlvUGFn
ZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQ
YWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VD
b3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVm
ZXJlbmNlc1NldE1lZGlhU291cmNlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQ
cmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0
cnVlKTsKLQotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VH
cm91cC5nZXQoKSk7CiAgICAgc2V0VXBDbGllbnRzKHdlYlZpZXcucGFnZSgpKTsKIAogICAgIFdL
UmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJmaWxlLXdpdGgtbXNlIiwgImh0bWwiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFu
Z2VXaXRoSW1hZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQXR0
cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0KaW5kZXggYjkxMjNm
Nzk4M2E4NWM0NGZjMzg5YzU3NmVjYzNmYmY1MWUyNjZiZS4uY2U2YTgwNjhkMzg4ODVkMjgwODYz
YzA2NzY4ZDA5MWVkZmNmMDIyMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdl
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVk
U3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQpAQCAtNTgsOCArNTgsNyBAQCBz
dGF0aWMgdm9pZCBpbnZhbGlkTWVzc2FnZUZ1bmN0aW9uKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1l
KQogVEVTVChXZWJLaXQsIEF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aElt
YWdlKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0so
VXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKLSAgICBXS1JldGFpblB0
cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdp
dGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJh
bmdlV2l0aEltYWdlUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2Vi
Vmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYw
IGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRl
ckNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
bWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQppbmRleCA3NTU2ZjYxMmQ1ZTNiOWJhNGY0
Y2Q2ZjUyNmM5NThjMTdmM2YxZjI2Li42NGQ2N2FiMmUzYzc1ZDlmMDk5MzQ2NmZhNzZiZjZkNmE1
MDVjYWFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMv
Q29udGV4dE1lbnVEb3dubG9hZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQpAQCAtOTIsOCArOTIsNyBAQCBURVNUKFdl
YktpdCwgQ29udGV4dE1lbnVEb3dubG9hZEhUTUxEb3dubG9hZEF0dHJpYnV0ZSkKIHsKICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91
cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVy
KFV0aWw6OnRvV0soIk15R3JvdXAiKS5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjMg
bG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVy
Q2xpZW50KSk7CkBAIC0xNDMsOCArMTQyLDcgQEAgVEVTVChXZWJLaXQsIENvbnRleHRNZW51RG93
bmxvYWRIVE1MRG93bmxvYWRBdHRyaWJ1dGVXaXRoU2xhc2hlcykKIHsKICAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRXaXRo
SW5qZWN0ZWRCdW5kbGUoKSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFn
ZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRv
V0soIk15R3JvdXAiKS5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRl
eHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjMgbG9hZGVyQ2xp
ZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9y
Q29tbWFuZHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9y
Q29tbWFuZHMubW0KaW5kZXggZjljMGQxZmJmYzYxNzI1NTIzYmM1ZjYxMzg2MTY2ZDZkMjczZmJh
MC4uMmE1YTJiZDZkZjg4NWE3NTBjN2JhYmEzOWUwYzc3NzI5ZGMyYmE1YiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JDb21tYW5kcy5t
bQpAQCAtNDUsMTQgKzQ1LDEzIEBAIFRFU1QoV2ViS2l0LCBTY3JvbGxCeUxpbmVDb21tYW5kcykK
IHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6
OmNyZWF0ZUNvbnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7CiAKKyAgICBQbGF0Zm9ybVdlYlZp
ZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29w
eVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOworCiAgICAgLy8gVHVy
biBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5IHdhaXRpbmcgZm9yIHRoZSBt
YWluIHRocmVhZCBzY3JvbGwgcG9zaXRpb24gdG8KICAgICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdl
Rm9yY2VSZXBhaW50IHdvdWxkIGJlIGJldHRlciwgYnV0IGZvciBzb21lIHJlYXNvbiB0aGUgdGVz
dCBzdGlsbCBmYWlscyBvY2Nhc2lvbmFsbHkuCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBS
ZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihV
dGlsOjp0b1dLKCJOb1RocmVhZGVkU2Nyb2xsaW5nUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhw
YWdlR3JvdXAuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0Vu
YWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3
KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Ci0KKyAgICAKICAgICBXS1BhZ2VOYXZp
Z2F0aW9uQ2xpZW50VjAgbG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAw
LCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KaW5kZXggMjE1
MDUxMGQ2NTM4YTJmMzA5YjBkM2JlZGM5MTViODBmYjgxOTdjZi4uZWVmZGRmYjYxZjBmMzhmOTYx
NWNmMWE5ZWQzMTkzNmZjYWE2M2M5OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KQEAgLTExNywx
MyArMTE3LDExIEBAIFRFU1QoRnVsbHNjcmVlbiwgRGVsZWdhdGUpCiBURVNUKEZ1bGxzY3JlZW4s
IFdLVmlld0RlbGVnYXRlKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4
dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwot
ICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFn
ZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiRnVsbHNjcmVlbkRlbGVnYXRl
IikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3Jv
dXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRG
dWxsU2NyZWVuRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBXS1JldGFpblB0cjxX
S1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25m
aWd1cmF0aW9uQ3JlYXRlKCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBX
S1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoY29uZmlndXJhdGlvbi5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsK
ICAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBj
b250ZXh0LmdldCgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZp
Z3VyYXRpb24uZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CiAKICAgICBOU1JlY3QgcmVjdCA9IE5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb25maWd1cmF0aW9uUmVmOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KaW5kZXggOTM5
YzU3YjRkOGIyNjc2NjRiY2QyYWI3NjRkNGQ4OGU2OTU5YzI3YS4uNDQ1ZGI3NTY2ZTA2MDdkOTg4
YTU4Yjc4OWI3OTBkYmRlZGMyY2Q1MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUu
bW0KQEAgLTIwMSwxMyArMjAxLDEyIEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgQXVkaW9DYW5u
b3RUb2dnbGVQaWN0dXJlSW5QaWN0dXJlKQogVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1BhZ2VV
SUNsaWVudCkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENy
ZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIlBpY3R1cmVJblBpY3R1cmUiKS5nZXQoKSkp
OwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZl
cmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CisgICAgCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29u
ZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0
RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayhwcmVmZXJlbmNlcywgdHJ1ZSk7
Ci0gICAgCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKLSAgICAKKwogICAgIFdLUGFnZVVJQ2xpZW50VjEwIHVpQ2xpZW50OwogICAg
IG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJh
c2UudmVyc2lvbiA9IDEwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQppbmRleCAyNjNhODU1Njk3NWVjNGZjZTMy
M2QyNTc5YjBkMGM2ZWVkNjBiZDk5Li4zZDRjZDk1N2EyMWJhNWU3NTkwNDhjMWMwY2UyZjNlNGJh
YzdiYzQ4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dlYnNpdGVQb2xpY2llcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQpAQCAtNzc5LDkgKzc3OSw3IEBAIFRFU1QoV2VicGFn
ZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNpZXNBcmJpdHJhcnlVc2VyR2VzdHVyZVF1aXJrKQog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2Vz
ID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQ
YWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VG
b3JUZXN0aW5nXSksIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5n
ZXQoKS5jb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIFtkZWxlZ2F0ZSBz
ZXRBbGxvd2VkQXV0b3BsYXlRdWlya3NGb3JVUkw6Xl9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKE5T
VVJMICp1cmwpCiAgICAgewpAQCAtODEyLDkgKzgxMCw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVu
Y2VzLCBXZWJzaXRlUG9saWNpZXNBdXRvcGxheVF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW0F1dG9wbGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJl
bmNlc0NyZWF0ZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5j
ZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJl
bmNlcy5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5w
cmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3RXaXRoQXVkaW8g
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJhdXRvcGxheS1jaGVjayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogCkBAIC04NzAsOSArODY2LDcg
QEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1BlckRvY3VtZW50QXV0
b3BsYXlCZWhhdmlvclF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9w
bGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmln
YXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZl
cmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMu
Z2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFn
ZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1By
ZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1
ZSk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBXVEY6Om51bGxvcHQ7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xs
aW5nUG9zaXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3Bv
bmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tCmluZGV4IDUzZmNjODk5ZTgwNGQzMjJiYWY5ODcwOTJi
YjNmOTQ3ZWY3NDBiNjcuLjJmNDBhODM0ODYxYzVlY2I3NjZmNWRmMzA1ZmJkMDQ1MTBiOTU4ZDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVy
U2Nyb2xsaW5nUG9zaXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbQpAQCAtNDUsMTggKzQ1LDE3IEBAIFRF
U1QoV2ViS2l0LCBGaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uKQogewogICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4
dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAotICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9s
bGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBv
c2l0aW9uIHRvCi0gICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBi
ZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNp
b25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRl
ZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBm
YWxzZSk7Ci0KICAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dp
bmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KQogICAgICAgICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbd2luZG93LmdldCgpIG1ha2VLZXlB
bmRPcmRlckZyb250Om5pbF07CiAgICAgRVhQRUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2li
bGVdKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VH
cm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3
LnBhZ2UoKSkpLmdldCgpKTsKKworICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsg
c3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9u
IHRvCisgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0
ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5
LgorICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7
CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKQEAg
LTgyLDcgKzgxLDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRp
b24pCiAKICAgICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJ3aW5kb3cuc2Nyb2xsWSIs
ICI0MCIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IG5ld1dlYlZpZXcoY29udGV4dC5nZXQoKSwg
cGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhjb250ZXh0
LmdldCgpKTsKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChuZXdXZWJWaWV3LnBh
Z2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKIAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZp
ZXcgYWRkU3VidmlldzpuZXdXZWJWaWV3LnBsYXRmb3JtVmlldygpXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJh
bWUubW0KaW5kZXggNjA1NWQ4ZDIzMTFmY2Y4NmI0Mjk0OTMzMTcwZWQ0MWUxZDFhYWU2Ni4uZmIw
YWE5YTc3MDg5YmNiYjBkZWY1N2EzYmQ2ZmZmODk5NTUyNDIwMSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJh
bWUubW0KQEAgLTEyMCw5ICsxMjAsOCBAQCB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1l
Ojppbml0aWFsaXplVmlldyhXS1ZpZXcgKndrVmlldykKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQod2tWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBpZGVudGlmaWVyID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWVQcmVmZXJlbmNlcyIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQ
cmVmZXJlbmNlc0NyZWF0ZVdpdGhJZGVudGlmaWVyKGlkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICBX
S1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJh
dGlvbih3a1ZpZXcucGFnZVJlZikpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNj
cmVlbkVuYWJsZWQoY3VzdG9tUHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdy
b3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHdrVmlldy5wYWdlUmVmKSwgY3Vz
dG9tUHJlZmVyZW5jZXMuZ2V0KCkpOwogfQogCiB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZy
YW1lOjp0ZWFyZG93blZpZXcoV0tWaWV3ICp3a1ZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAppbmRleCAzMGNjODQ1MTRjM2JlZjU0YThlMmNj
Njk5ZDg5MGJhOTMzNmFhY2UzLi41NzM5ZmFmZTNkZmQ5M2RhNzgyOWY0YmIyOGJjODNkZTYxYjA0
Y2FmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdH
dGsuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5j
cHAKQEAgLTM2LDExICszNiwxMCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLVBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2Vi
VmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VD
b25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0
aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdl
R3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAgIGluaXRpYWxp
emUoY29uZmlndXJhdGlvbi5nZXQoKSk7CiB9CkBAIC01NCw3ICs1Myw2IEBAIFBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsKICAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhX
S1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRD
b250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVsYXRlZFBhZ2Up
KTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0
KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVkUGFnZSk7CiAK
ICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IDYzNjY4OTE4YWQzMmY3MTJkZTg3
YWUzZWQxYjQwMTFmN2FiN2I5ZTIuLmU1MWRlNzY5MGQ1ZGE1NWJjYmVhYjU2ZTk5MzY5YWNkYTk2
YmY3YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmll
d01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMu
bW0KQEAgLTQ4LDEzICs0OCwxMiBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiAgICAgaW5pdGlhbGl6ZShjb25m
aWd1cmF0aW9uLCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZv
cm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
dXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29u
dGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25m
aWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwotICAgIAor
CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwg
Y29udGV4dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1
cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBSZWYpOwotICAgIAorCiAgICAgaW5pdGlhbGl6ZShjb25m
aWd1cmF0aW9uLmdldCgpLCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKQEAgLTYzLDIyICs2MiwxMSBA
QCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VSZWYgcmVsYXRlZFBhZ2Up
CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9
IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAgICAKICAgICBXS1BhZ2VD
b25maWd1cmF0aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VHZXRDb250
ZXh0KHJlbGF0ZWRQYWdlKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChj
b25maWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VHZXRQYWdlR3JvdXAocmVsYXRlZFBhZ2UpKTsKICAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UmVsYXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSwg
cmVsYXRlZFBhZ2UpOwogCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdldCgpLCBbV0tW
aWV3IGNsYXNzXSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIENsYXNzIHdr
Vmlld1N1YmNsYXNzKQotewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7Ci0g
ICAgCi0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQo
KSwgY29udGV4dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25m
aWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBSZWYpOwotICAgIAotICAgIGluaXRpYWxpemUoY29u
ZmlndXJhdGlvbi5nZXQoKSwgd2tWaWV3U3ViY2xhc3MpOwotfQotCiBQbGF0Zm9ybVdlYlZpZXc6
On5QbGF0Zm9ybVdlYlZpZXcoKQogewogICAgIFttX3dpbmRvdyBjbG9zZV07CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcAppbmRleCBmYmQ3YzA5M2Jh
MTUzMDQzNjQzZGRmMzQ4YTRkYmEzN2M3ZmE1M2I0Li4xNTA5ZjI4YWQyZDI1ZjlhODQ3ODFiYTJk
NDQ1YTkzZWVmYjQ2M2MxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0
Zm9ybVdlYlZpZXdXaW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3Jt
V2ViVmlld1dpbi5jcHAKQEAgLTU3LDExICs1NywxMCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6
cmVnaXN0ZXJXaW5kb3dDbGFzcygpCiAgICAgOjpSZWdpc3RlckNsYXNzRXhXKCZ3bmRDbGFzcyk7
CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0
cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VD
b25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRp
b25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAg
IGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSk7CiB9CkBAIC03NSw3ICs3NCw2IEBAIFBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsK
ICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0g
YWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVs
YXRlZFBhZ2UpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFn
ZUNvbmZpZ3VyYXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVk
UGFnZSk7CiAKICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKaW5kZXggOGNjM2I3MWE3
MzIxODIzM2Y0MDRhOTQxNjJmZTA1ODVhODY3MjBmMi4uMjc5ZDllNmViOWY3YWEwMjQ0NDUyNWQy
ZWMxNmNkM2U4YmM5NWUzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxh
dGZvcm1XZWJWaWV3V1BFLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9y
bVdlYlZpZXdXUEUuY3BwCkBAIC0zMiwxMiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogCi1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYg
Y29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQorUGxhdGZvcm1XZWJWaWV3
OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiAgICAgOiBtX3dpbmRv
dyhudWxscHRyKQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNv
bmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAg
V0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4
dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9u
LmdldCgpLCBwYWdlR3JvdXBSZWYpOwogCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdl
dCgpKTsKIH0KQEAgLTUzLDcgKzUyLDYgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZp
ZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25D
cmVhdGUoKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlv
bi5nZXQoKSwgV0tQYWdlR2V0Q29udGV4dChyZWxhdGVkUGFnZSkpOwotICAgIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgV0tQYWdlR2V0UGFnZUdy
b3VwKHJlbGF0ZWRQYWdlKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFJlbGF0ZWRQYWdl
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIHJlbGF0ZWRQYWdlKTsKIAogICAgIGluaXRpYWxpemUoY29u
ZmlndXJhdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGE1NWZhMGUyNGM3YzcwOWViNGRhMmFmMWFkMTlkZjZhMWUyMDAwY2UuLmJhZTAy
Yjc2MWZjYTZjMWJiYTIzMTc1OWEwMGFiYTVkNDc5YjA0MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC01NDksOCArNTQ5LDYgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIFdl
YkNvcmVUZXN0U3VwcG9ydDo6aW5zdGFsbE1vY2tHYW1lcGFkUHJvdmlkZXIoKTsKICNlbmRpZgog
Ci0gICAgbV9wYWdlR3JvdXAuYWRvcHQoV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcih0
b1dLKCJXZWJLaXRUZXN0UnVubmVyUGFnZUdyb3VwIikuZ2V0KCkpKTsKLQogICAgIG1fZXZlbnRT
ZW5kZXJQcm94eSA9IG1ha2VVbmlxdWU8RXZlbnRTZW5kZXJQcm94eT4odGhpcyk7CiB9CiAKQEAg
LTY3OCw3ICs2NzYsNiBAQCBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0
Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjbwogCiAgICAgYXV0byBwYWdl
Q29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAg
ICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwg
bV9jb250ZXh0LmdldCgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKHBh
Z2VDb25maWd1cmF0aW9uLmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSk7CiAgICAgCiAgICAgaWYg
KG9wdGlvbnMudXNlRXBoZW1lcmFsU2Vzc2lvbigpKSB7CiAgICAgICAgIGF1dG8gZXBoZW1lcmFs
RGF0YVN0b3JlID0gYWRvcHRXSyhXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0ZW50
RGF0YVN0b3JlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4
IGMxNDk1YTIwMGJmYjg3ZjRkNjFlN2NlYzM5ZDkzYWYxMTJhZTFjMGMuLjlhNjZiZDQ5MjFlZGQy
ZmQzMzAxNjNmNDAwMGEwMjI2Y2FkMDA0ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKQEAgLTU1NSw3ICs1NTUsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmlldzsKICAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IG1fY29udGV4dDsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4g
bV9wYWdlR3JvdXA7CiAgICAgV0tSZXRhaW5QdHI8V0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWY+
IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAppbmRl
eCAxMTRjN2E4MTJkNzZhYmQ5YThhOGVkNTE2ODQ3MWMwYjVmZDcxMTI0Li5hYjBiMjQ3NDAwZjNk
MWYzODI1NjNlMDdjNWExNjhmNzcxNjk3YTgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAKIFdLUHJlZmVyZW5jZXNSZWYgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQogewotICAgIHJldHVybiBXS1BhZ2VH
cm91cEdldFByZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKKyAgICByZXR1cm4gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1
cmF0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2UoKSkpLmdldCgpKTsKIH0KIAogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCAwMjczN2JkYTc5NTA0ODIwOTJjOWE5OWEx
NjlmOTk4ZDExYzYxNjkwLi5hYzcyNDdkZTUzNTUxNzhiNWNhYmNmMDIyNmM2NjYyNGYyOWVkNzRi
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldp
bi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4u
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVz
dENvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXaW5CYXNlLmg+CiAjaW5jbHVk
ZSA8ZmNudGwuaD4KQEAgLTM2LDcgKzM3LDYgQEAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KIAotCiAjZGVmaW5lIElOSkVDVEVEX0JVTkRMRV9ETExfTkFN
RSAiVGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmRsbCIKIAogbmFtZXNwYWNlIFdUUiB7CkBAIC0x
MjEsNyArMTIxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkK
IAogV0tQcmVmZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygp
CiB7Ci0gICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0
KCkpOworICAgIHJldHVybiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24obV9tYWluV2ViVmlldy0+cGFnZSgpKSkuZ2V0
KCkpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCmluZGV4IGY0
N2IwZGY5ODZkMTU2MzdmNDMwMGM4YjA3MTYzYTllOTYzMmE0MjUuLjUwMTEwY2Q0ODUzNTcyZjU3
OWMxNDBjZjM4YzhjNDdkOGE4MGY0NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiUGxhdGZv
cm1XZWJWaWV3LmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgpAQCAtNDcsNyArNDgsNyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogCiBXS1ByZWZlcmVuY2VzUmVm
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVByZWZlcmVuY2VzKCkKIHsKLSAgICByZXR1cm4gV0tQ
YWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7CisgICAgcmV0dXJuIFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29u
ZmlndXJhdGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCkpKS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428953</attachid>
            <date>2021-05-18 10:25:29 -0700</date>
            <delta_ts>2021-12-17 14:30:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20210518102528.patch</filename>
            <type>text/plain</type>
            <size>87118</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVlNjJkOGQyNWJjMWZkMTE3
NTZkZTlhMWM5OGI0ZjhjZThlYTQ2ZjYuLmM0ZGZkNDY5MDI5ZDE0ZmRiMjM0NWVkYTg1N2I5ODk4
ZWZhZGUzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMTggIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgIFRoZXJlIGFyZSB0d28gcHJvamVjdHMgc3RpbGwgdXNp
bmcgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllciBhbmQgV0tQYWdlR3JvdXBHZXRQcmVm
ZXJlbmNlcy4KKyAgICAgICAgVGhlcmUgaXMgb25lIHByb2plY3Qgc3RpbGwgdXNpbmcgV0tCcm93
c2luZ0NvbnRleHRHcm91cC4KKyAgICAgICAgSSBsZWZ0IHRoZXNlIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGZ1bmN0aW9uYWwgYW5kIG5vdGVkIHJhZGFycyBmb3Igd2hlbiB0aGV5IGNhbiBhbHNvIGJl
IHJlbW92ZWQuCisKKyAgICAgICAgVGhlIHJlc3Qgb2YgdGhlIEFQSSBpcyByZW1vdmVkLiAgU29t
ZSBvZiBpdCB3YXMgbW92ZWQgdG8gYW4gaW50ZXJuYWwtb25seSBoZWFkZXIgdG8gbGVhdmUgV0tC
cm93c2luZ0NvbnRleHRHcm91cCB1bnRvdWNoZWQuCisgICAgICAgIExvdHMgb2YgdGVzdHMgYXJl
IHVwZGF0ZWQgdG8gc2V0IHByZWZlcmVuY2VzIGxpa2UgdGhlIG1vZGVybiBBUEkgZG9lcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlR2V0
UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuY3BwOgor
ICAgICAgICAoV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cCk6IERlbGV0ZWQuCisgICAg
ICAgIChXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHA6CisgICAgICAgIChXS1BhZ2VHcm91cEdldFR5
cGVJRCk6IERlbGV0ZWQuCisgICAgICAgIChXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50Q29udHJv
bGxlcik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW06CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF9wYWdlR3JvdXBdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfc2V0UGFnZUdyb3VwOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNS0xOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2U6OnVwZGF0ZUZyYW1lQm91bmRzKCkgc2hvdWxkIHZhbGlkYXRlIGJvdW5kc0J1ZmZlclNp
emUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDdjMGJhMzAx
NTJhYzNiYWNjYTJiOGI2NjA2YzY0ODY4ODYyZDBjZGEuLmNhNmYwYTg2N2JlNjU2MmE1YjY2ZjIw
OTZkNWUyY2RhMjA1NWE2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcApAQCAtMTYzLDExICsxNjMsNiBAQCBXS0NvbnRleHRSZWYgV0tQYWdlR2V0Q29udGV4dChX
S1BhZ2VSZWYgcGFnZVJlZikKICAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlUmVmKS0+cHJv
Y2VzcygpLnByb2Nlc3NQb29sKCkpOwogfQogCi1XS1BhZ2VHcm91cFJlZiBXS1BhZ2VHZXRQYWdl
R3JvdXAoV0tQYWdlUmVmIHBhZ2VSZWYpCi17Ci0gICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFn
ZVJlZiktPnBhZ2VHcm91cCgpKTsKLX0KLQogV0tQYWdlQ29uZmlndXJhdGlvblJlZiBXS1BhZ2VD
b3B5UGFnZUNvbmZpZ3VyYXRpb24oV0tQYWdlUmVmIHBhZ2VSZWYpCiB7CiAgICAgcmV0dXJuIHRv
QVBJKCZ0b0ltcGwocGFnZVJlZiktPmNvbmZpZ3VyYXRpb24oKS5jb3B5KCkubGVha1JlZigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXggYzUxYjgxNjJjODk3MzRh
YjE1MmJlZjBlOTkyMzM3ZDU1ZjJkZThhNi4uMjRlODc4ZjMxMGJhY2FiMjliN2UwOTFlNTVmNmIz
MTIyODUxYWY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTU4
LDcgKzU4LDYgQEAgZXh0ZXJuICJDIiB7CiBXS19FWFBPUlQgV0tUeXBlSUQgV0tQYWdlR2V0VHlw
ZUlEKHZvaWQpOwogCiBXS19FWFBPUlQgV0tDb250ZXh0UmVmIFdLUGFnZUdldENvbnRleHQoV0tQ
YWdlUmVmIHBhZ2UpOwotV0tfRVhQT1JUIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91
cChXS1BhZ2VSZWYgcGFnZSk7CiAKIFdLX0VYUE9SVCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIFdL
UGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihXS1BhZ2VSZWYgcGFnZSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5j
cHAKaW5kZXggNzliZWQxZmQxZWNlODg4M2JiYjQ4NDU5NGI2NzkxYzY4NTViMDFjYi4uYjUwNjI3
ZTIxZjNlMzRlMDhkZDUzYWZkMzY5M2ZlZjM4YjNlMDkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5jcHAKQEAg
LTU1LDE2ICs1NSw2IEBAIHZvaWQgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoV0tQYWdl
Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0NvbnRlCiAgICAgdG9JbXBsKGNvbmZp
Z3VyYXRpb24pLT5zZXRQcm9jZXNzUG9vbCh0b0ltcGwoY29udGV4dCkpOwogfQogCi1XS1BhZ2VH
cm91cFJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWYgY29uZmlndXJhdGlvbikKLXsKLSAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbmZpZ3Vy
YXRpb24pLT5wYWdlR3JvdXAoKSk7Ci19Ci0KLXZvaWQgV0tQYWdlQ29uZmlndXJhdGlvblNldFBh
Z2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cCkKLXsKLSAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFBhZ2VHcm91
cCh0b0ltcGwocGFnZUdyb3VwKSk7Ci19Ci0KIFdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmIFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIoV0tQYWdlQ29uZmlndXJh
dGlvblJlZiBjb25maWd1cmF0aW9uKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29uZmln
dXJhdGlvbiktPnVzZXJDb250ZW50Q29udHJvbGxlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaAppbmRleCAyNzdj
MDY2MWYyNjMyYWQ4OTU5MjZmZjliYWQ0YjBhN2M1NjQxZTExLi43MDIwMzY4YTdkMTJjMzYzYTZk
MjZjZDFjN2FmMWE1MzU0M2RhYjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oCkBAIC0zOSw5ICszOSw2IEBAIFdL
X0VYUE9SVCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUo
dm9pZCk7CiBXS19FWFBPUlQgV0tDb250ZXh0UmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRDb250
ZXh0KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CiBXS19FWFBPUlQgdm9p
ZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNv
bmZpZ3VyYXRpb24sIFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAotV0tfRVhQT1JUIFdLUGFnZUdy
b3VwUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdlR3JvdXAoV0tQYWdlQ29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25T
ZXRQYWdlR3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1BhZ2VH
cm91cFJlZiBwYWdlR3JvdXApOwotCiBXS19FWFBPUlQgV0tVc2VyQ29udGVudENvbnRyb2xsZXJS
ZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ29uZmln
dXJhdGlvblNldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNv
bmZpZ3VyYXRpb24sIFdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmIHVzZXJDb250ZW50Q29udHJv
bGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNw
cAppbmRleCA2NTE0ZWU4NmRlM2E4NDE0NDgzN2RmNjJmYzEwMTNkMjNjYWEzNWE5Li45ODBmM2Zj
MGVlY2E2OGI3ZDY3MjQ1NGM1ZTA2MTVjZWZiNjljZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldLUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAi
V0tQYWdlR3JvdXBJbnRlcm5hbC5oIgogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRl
ICJBUElDb250ZW50UnVsZUxpc3QuaCIKQEAgLTQwLDExICs0MCw2IEBACiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKLVdLVHlwZUlEIFdLUGFnZUdyb3VwR2V0VHlwZUlEKCkKLXsKLSAgICBy
ZXR1cm4gdG9BUEkoV2ViUGFnZUdyb3VwOjpBUElUeXBlKTsKLX0KLQogV0tQYWdlR3JvdXBSZWYg
V0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ1JlZiBpZGVudGlmaWVyKQog
ewogICAgIGF1dG8gcGFnZUdyb3VwID0gV2ViUGFnZUdyb3VwOjpjcmVhdGUodG9XVEZTdHJpbmco
aWRlbnRpZmllcikpOwpAQCAtNjEsMTEgKzU2LDYgQEAgV0tQcmVmZXJlbmNlc1JlZiBXS1BhZ2VH
cm91cEdldFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKICAgICByZXR1
cm4gdG9BUEkoJnRvSW1wbChwYWdlR3JvdXBSZWYpLT5wcmVmZXJlbmNlcygpKTsKIH0KIAotV0tV
c2VyQ29udGVudENvbnRyb2xsZXJSZWYgV0tQYWdlR3JvdXBHZXRVc2VyQ29udGVudENvbnRyb2xs
ZXIoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQotewotICAgIHJldHVybiB0b0FQSSgmdG9J
bXBsKHBhZ2VHcm91cFJlZiktPnVzZXJDb250ZW50Q29udHJvbGxlcigpKTsKLX0KLQogdm9pZCBX
S1BhZ2VHcm91cEFkZFVzZXJTdHlsZVNoZWV0KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwg
V0tTdHJpbmdSZWYgc291cmNlUmVmLCBXS1VSTFJlZiBiYXNlVVJMUmVmLCBXS0FycmF5UmVmIGFs
bG93ZWRVUkxQYXR0ZXJucywgV0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKIHsKICAgICBhdXRvIHNvdXJjZSA9
IHRvV1RGU3RyaW5nKHNvdXJjZVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlR3JvdXAuaAppbmRleCA2M2ExM2Y3ZDc1MjE4YmY3ZTJlYmQwM2VmYTA0NWI1NjlmMzgx
MGUyLi4wNTYzZWQ3NWUyZDljNDY1NjBkNGFjMzczZjhmMjJiOTI5MDU2M2FmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmgKQEAgLTI3LDYgKzI3LDcgQEAK
ICNkZWZpbmUgV0tQYWdlR3JvdXBfaAogCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0RlcHJlY2F0ZWQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVj
dGlvblRpbWUuaD4KIApAQCAtMzQsMjAgKzM1LDEwIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgog
Ci1XS19FWFBPUlQgV0tUeXBlSUQgV0tQYWdlR3JvdXBHZXRUeXBlSUQodm9pZCk7CisvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgZmlsZSBvbmNlIHJkYXI6Ly83NzkzOTU5NyBhbmQgcmRhcjovLzc3OTM5
ODgzIGFyZSByZXNvbHZlZC4KIAotV0tfRVhQT1JUIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUdyb3Vw
Q3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdSZWYgaWRlbnRpZmllcik7Ci0KLVdLX0VYUE9S
VCB2b2lkIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
LCBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzKTsKLVdLX0VYUE9SVCBXS1ByZWZlcmVuY2Vz
UmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsK
LQotV0tfRVhQT1JUIFdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmIFdLUGFnZUdyb3VwR2V0VXNl
ckNvbnRlbnRDb250cm9sbGVyKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KLVdLX0VYUE9S
VCB2b2lkIFdLUGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdlR3JvdXBSZWYgcGFnZUdy
b3VwLCBXS1N0cmluZ1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkwsIFdLQXJyYXlSZWYgYWxs
b3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzKTsKLVdLX0VYUE9SVCB2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxs
VXNlclN0eWxlU2hlZXRzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0gICAgCi1XS19FWFBP
UlQgdm9pZCBXS1BhZ2VHcm91cEFkZFVzZXJTY3JpcHQoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
LCBXS1N0cmluZ1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkwsIFdLQXJyYXlSZWYgYWxsb3dl
ZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzLCBfV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7Ci1XS19FWFBPUlQg
dm9pZCBXS1BhZ2VHcm91cFJlbW92ZUFsbFVzZXJTY3JpcHRzKFdLUGFnZUdyb3VwUmVmIHBhZ2VH
cm91cCk7CitXS19FWFBPUlQgV0tQYWdlR3JvdXBSZWYgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRl
bnRpZmllcihXS1N0cmluZ1JlZiBpZGVudGlmaWVyKSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKTsKK1dLX0VYUE9S
VCBXS1ByZWZlcmVuY2VzUmVmIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwKSBXS19DX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoV0tQYWdl
Q29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cEludGVy
bmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cEludGVybmFs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTZhMDk2MmI4NjQwY2YzNWFhMDcxN2I3MWZiMTc0ZDMyOGRkNjJlNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdy
b3VwSW50ZXJuYWwuaApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdy
b3VwLmg+CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBmaWxlIG9uY2UgcmRhcjovLzc0MTQyOTk1
IGlzIHJlc29sdmVkLgorCit2b2lkIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR3Jv
dXBSZWYsIFdLUHJlZmVyZW5jZXNSZWYpOwordm9pZCBXS1BhZ2VHcm91cEFkZFVzZXJTdHlsZVNo
ZWV0KFdLUGFnZUdyb3VwUmVmLCBXS1N0cmluZ1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkws
IFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBhdHRlcm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0
ZXJucywgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKTsKK3ZvaWQgV0tQYWdlR3JvdXBSZW1v
dmVBbGxVc2VyU3R5bGVTaGVldHMoV0tQYWdlR3JvdXBSZWYpOwordm9pZCBXS1BhZ2VHcm91cEFk
ZFVzZXJTY3JpcHQoV0tQYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVUkxSZWYg
YmFzZVVSTCwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxvY2tl
ZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMsIF9XS1VzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lKTsKK3ZvaWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU2NyaXB0cyhXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgKaW5kZXggNjY5MjMwZjVj
YjZhMDM1MmM5MDI1ZjkxZGU2NjhlMzYwYTg1OTNiNi4uYTZjZGM0MWE0MTJmN2RiZGRiM2ZlODQz
M2E0MWQ3YjBlYzMyMDQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCkBAIC0yOCw2ICsyOCw4IEBA
CiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1Vz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBmaWxlIG9u
Y2UgcmRhcjovLzc0MTQyOTk1IGlzIHJlc29sdmVkLgorCiBXS19DTEFTU19ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIldLVXNlckNvbnRlbnRDb250cm9sbGVyIGFuZCBXS1ByZWZlcmVuY2Vz
IiwgbWFjb3MoMTAuMTAsIDEwLjE0LjQpLCBpb3MoOC4wLCAxMi4yKSkKIEBpbnRlcmZhY2UgV0tC
cm93c2luZ0NvbnRleHRHcm91cCA6IE5TT2JqZWN0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0KaW5k
ZXggOGY0MWIxMjI3NDA0ZGUyNjgzOTJmMjQ5ODViMGUyNTVlMzMxZWRiMC4uNzk0Y2YxZmFmMzhk
MjYxNThlZjJmODk5ZGI3ZWJmMDU2NGE4OTI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW0KQEAg
LTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIkFQSVN0cmluZy5oIgogI2ltcG9ydCAiV0tBUElDYXN0
LmgiCiAjaW1wb3J0ICJXS0FycmF5LmgiCi0jaW1wb3J0ICJXS1BhZ2VHcm91cC5oIgorI2ltcG9y
dCAiV0tQYWdlR3JvdXBJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tQcmVmZXJlbmNlc1JlZi5oIgog
I2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKICNpbXBvcnQgIldLU2hhcmVkQVBJQ2FzdC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZjdm
ZjgzOGM1MjVhYWEyOGEwNjY5NDFjYzVlNzk3ZTlkNGZjM2JmYS4uYzNhNjBlMzAzYzMwOWU4YWU1
YjRkZTExYjYzZTAzN2RjOTRkYjk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00NTYsMTYgKzQ1Niw5IEBAIHN0YXRpYyB2b2lkIGhh
cmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25D
ZW50ZXJSZWYsCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFdlYnNpdGVEYXRhU3RvcmUoW19j
b25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdLT5fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKSk7
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldERlZmF1bHRXZWJzaXRlUG9saWNpZXMoW19jb25m
aWd1cmF0aW9uIGRlZmF1bHRXZWJwYWdlUHJlZmVyZW5jZXNdLT5fd2Vic2l0ZVBvbGljaWVzLmdl
dCgpKTsKIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoYXV0byBwYWdlR3JvdXAgPSBXZWJL
aXQ6OnRvSW1wbChbX2NvbmZpZ3VyYXRpb24gX3BhZ2VHcm91cF0pKQotICAgICAgICBwYWdlQ29u
ZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKHBhZ2VHcm91cCk7Ci0gICAgZWxzZQotI2VuZGlmCi0g
ICAgewotICAgICAgICBOU1N0cmluZyAqZ3JvdXBJZGVudGlmaWVyID0gW19jb25maWd1cmF0aW9u
IF9ncm91cElkZW50aWZpZXJdOwotICAgICAgICBpZiAoZ3JvdXBJZGVudGlmaWVyLmxlbmd0aCkK
LSAgICAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQ
YWdlR3JvdXA6OmNyZWF0ZShncm91cElkZW50aWZpZXIpLnB0cigpKTsKLSAgICB9CisgICAgTlNT
dHJpbmcgKmdyb3VwSWRlbnRpZmllciA9IFtfY29uZmlndXJhdGlvbiBfZ3JvdXBJZGVudGlmaWVy
XTsKKyAgICBpZiAoZ3JvdXBJZGVudGlmaWVyLmxlbmd0aCkKKyAgICAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnNldFBhZ2VHcm91cChXZWJLaXQ6OldlYlBhZ2VHcm91cDo6Y3JlYXRlKGdyb3VwSWRl
bnRpZmllcikucHRyKCkpOwogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFkZGl0aW9uYWxT
dXBwb3J0ZWRJbWFnZVR5cGVzKG1ha2VWZWN0b3I8U3RyaW5nPihbX2NvbmZpZ3VyYXRpb24gX2Fk
ZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzXSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmlu
ZGV4IGNlNWI3YmQ1YjAxYWJjODIxMDk1ZDA1NTk1YWFlOTY5YjY4Y2Y1ZmUuLjRlMTg5NDJiYWFi
ZWY2OTU0NjU4N2EyNjNiYjAxZTkzMGM0YTc4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBA
IC0xNTUsNyArMTU1LDYgQEAgc3RhdGljIGJvb2wgZGVmYXVsdFNob3VsZERlY2lkZVBvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCkKICAgICBCT09MIF9tYWluQ29udGVudFVzZXJH
ZXN0dXJlT3ZlcnJpZGVFbmFibGVkOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdLUmV0YWlu
UHRyPFdLUGFnZUdyb3VwUmVmPiBfcGFnZUdyb3VwOwogICAgIEJPT0wgX3Nob3dzVVJMc0luVG9v
bFRpcHM7CiAgICAgQk9PTCBfc2VydmljZUNvbnRyb2xzRW5hYmxlZDsKICAgICBCT09MIF9yZXF1
aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOwpAQCAtNDI5LDcgKzQyOCw2
IEBAIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVp
Y2tMb29rUHJldmlldygpCiAgICAgY29uZmlndXJhdGlvbi0+X3Nob3dzVVJMc0luVG9vbFRpcHMg
PSBzZWxmLT5fc2hvd3NVUkxzSW5Ub29sVGlwczsKICAgICBjb25maWd1cmF0aW9uLT5fc2Vydmlj
ZUNvbnRyb2xzRW5hYmxlZCA9IHNlbGYtPl9zZXJ2aWNlQ29udHJvbHNFbmFibGVkOwogICAgIGNv
bmZpZ3VyYXRpb24tPl9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2Vy
ID0gc2VsZi0+X3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI7Ci0g
ICAgY29uZmlndXJhdGlvbi0+X3BhZ2VHcm91cCA9IHNlbGYuX3BhZ2VHcm91cDsKICNlbmRpZgog
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBj
b25maWd1cmF0aW9uLT5fZGF0YURldGVjdG9yVHlwZXMgPSBzZWxmLT5fZGF0YURldGVjdG9yVHlw
ZXM7CkBAIC0xMTM5LDE2ICsxMTM3LDYgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIgPSBy
ZXF1aXJlc1VzZXJBY3Rpb247CiB9CiAKLS0gKFdLUGFnZUdyb3VwUmVmKV9wYWdlR3JvdXAKLXsK
LSAgICByZXR1cm4gX3BhZ2VHcm91cC5nZXQoKTsKLX0KLQotLSAodm9pZClfc2V0UGFnZUdyb3Vw
OihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXAKLXsKLSAgICBfcGFnZUdyb3VwID0gcGFnZUdyb3Vw
OwotfQotCiAtICh2b2lkKV9zZXRDUFVMaW1pdDooZG91YmxlKWNwdUxpbWl0CiB7CiAgICAgX3Bh
Z2VDb25maWd1cmF0aW9uLT5zZXRDUFVMaW1pdChjcHVMaW1pdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDI0MjVlYzZmZmNhYzBiYzU2ZDY0YjhkMzc5NTI5NDMxZjU5
YTAzNzguLjI0MzhhY2RkZmU2MTdjMjcwMWM3ZmI4MjQ3YjM4NmEwYmIzN2FmZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0xMDEsNyArMTAxLDYgQEAgdHlwZWRlZiBO
U19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfaW1hZ2VDb250cm9s
c0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIkltYWdlIGNvbnRyb2xzIGFyZSBubyBsb25nZXIg
c3VwcG9ydGVkIiwgbWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0Nv
bnRyb2xzTWFuYWdlcjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9s
c01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRDUFVMaW1pdDopIGRvdWJsZSBfY3B1TGltaXQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZHdyaXRlLCBzZXR0ZXI9X3NldFBhZ2VHcm91cDopIFdLUGFnZUdyb3VwUmVmIF9wYWdlR3Jv
dXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAjZW5kaWYKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRXZWJzaXRlRGF0YVN0b3JlOikgX1dLV2Vi
c2l0ZURhdGFTdG9yZSAqX3dlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgid2Vic2l0ZURhdGFTdG9yZSIsIG1hY29zKDEwLjEwLCAxMC4xMSksIGlvcyg4
LjAsIDkuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMDg3MjdkOWJjOGQ0OGJhZjVkMmY3MjlhZDEzM2M3ODNmYWUzM2ZiNC4uM2Zk
YzIwY2Q0ZGJiNTdjNGVlYTVjYjM5NzVhMGZiNzA2M2U3NzBkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjc0LDYgKzEyNzQsNyBA
QAogCQk1QzlBOTExMjIyOEY2OUNDMDA1QzVCMTcgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0
MDBBMjc4RkUgLyogWFBDU2VydmljZU1haW4ubW0gKi87IH07CiAJCTVDOUE5MTEzMjI4RjY5Q0Qw
MDVDNUIxNyAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNl
TWFpbi5tbSAqLzsgfTsKIAkJNUM5QTkxMTQyMjhGNjlDRTAwNUM1QjE3IC8qIFhQQ1NlcnZpY2VN
YWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4
MjgzOTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OworCQk1QzlE
RDMyNjI2NEM3Rjc0MDBFMDc0NDIgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5REQzMjUyNjRDN0Y3NDAwRTA3
NDQyIC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCAqLzsgfTsKIAkJNUM5RTU2ODMxREY3RjFCMzAw
QzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlFNTY4MTFERjdGMDU1MDBDOUVFMzMgLyogV0tXZWJzaXRl
UG9saWNpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1Q0EyNkQ4MTIxN0FCRDVCMDBGOTdBMzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0EyNkQ4MDIx
N0FCQkI2MDBGOTdBMzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLmggKi87IH07CiAJCTVDQTI2
RDgzMjE3QUQxQjgwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0EyNkQ3RjIxN0FCQkI2MDBG
OTdBMzUgLyogV0tTYWZlQnJvd3NpbmdXYXJuaW5nLm1tICovOyB9OwpAQCAtNDQ4OCw2ICs0NDg5
LDcgQEAKIAkJNUM4REQzODExRkU0NTVDQTAwRjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVF1aXJr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVBdXRvcGxheVF1aXJr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUM1QzAyMjQzMDUzNTgwMEJCNjc0
MCAvKiBVc2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5QzVDMDMyNDMwNTM1ODAwQkI2NzQwIC8qIFVzZXJD
b250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUREMzI1MjY0QzdGNzQwMEUwNzQ0MiAvKiBXS1BhZ2VH
cm91cEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUdy
b3VwSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM5RTU2ODAxREY3
RjA1NTAwQzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGljaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLV2Vic2l0ZVBvbGljaWVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUM5RTU2ODExREY3RjA1NTAwQzlFRTMzIC8qIFdLV2Vic2l0ZVBvbGlj
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2Vic2l0ZVBvbGljaWVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDOUVGMkU3MjFGMDU4RjkwMDNCREM1
NiAvKiBOZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOZXR3b3JrU3RvcmFnZVNlc3Npb25Qcm92aWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTAyOTMsNiArMTAyOTUsNyBAQAogCQkJCTFBQjhBMUVGMTg0
MDBCMDAwMEU5QUU2OSAvKiBXS1BhZ2VGb3JtQ2xpZW50LmggKi8sCiAJCQkJQkM3QjYzMzYxMkE0
NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmNwcCAqLywKIAkJCQlCQzdCNjMzNTEyQTQ1QUJB
MDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuaCAqLywKKwkJCQk1QzlERDMyNTI2NEM3Rjc0MDBFMDc0
NDIgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oICovLAogCQkJCTJEOUVBMzBDMUE5NkNCNTkwMDJE
MjgwNyAvKiBXS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovLAogCQkJCTFBQjhBMUVCMTg0
MDA4MDkwMEU5QUU2OSAvKiBXS1BhZ2VMb2FkZXJDbGllbnQuaCAqLywKIAkJCQkyRDczMDM3ODFB
N0MyQjc1MDBGOEY0ODcgLyogV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oICovLApAQCAtMTI4Mzgs
NiArMTI4NDEsNyBAQAogCQkJCTFBQjhBMUY2MTg0MDBCOUQwMEU5QUU2OSAvKiBXS1BhZ2VGaW5k
TWF0Y2hlc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRjAxODQwMEIwMDAwRTlB
RTY5IC8qIFdLUGFnZUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0I2MzM3MTJB
NDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUM5REQz
MjYyNjRDN0Y3NDAwRTA3NDQyIC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJEOUVBMzBEMUE5NkNCNTkwMDJEMjgwNyAvKiBXS1BhZ2VJbmplY3RlZEJ1bmRsZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRUMxODQwMDgwOTAwRTlBRTY5IC8qIFdL
UGFnZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRDAyMTkxMkFDNDI2QzAw
RTczMkEzIC8qIFdLUGFnZUxvYWRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzdiNWU1ZTcxNmNkYzc4YWEy
YmQ3NzFlMzYwMDhlM2RmNjRjYjU2NC4uNDhhNDExMDMyMzc1MWU2Y2MzNmJiYzZiZDU3ZWFiZTE5
YWYxNTMyNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDY3IEBACisyMDIxLTA1LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGFzIG11Y2ggb2YgV0tQYWdlR3Jv
dXBSZWYgYXMgcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNTcyNAorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3Qu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRB
bGVydENyYXNoLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2
aW9yLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Bl
bi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Nj
cm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZp
Z3VyYXRpb24uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdl
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9tYWMvRWRpdG9yQ29tbWFuZHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxl
Z2F0ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW06CisgICAgICAgIChURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bv
c2l0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZTo6aW5pdGlhbGl6
ZVZpZXcpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJW
aWV3KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3Jt
V2ViVmlldyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgor
CiAyMDIxLTA1LTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtHUFUgUHJvY2Vzc10gT2JqZWN0IGlkZW50aWZpZXJzIHdpdGggdGhlIGRlbGV0ZWQg
dmFsdWUgc2hvdWxkIGNhdXNlIE1FU1NBR0VfQ0hFQ0tzCmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAgYi9Ub29scy9NaW5pQnJvd3Nlci93
aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKaW5kZXggOTI0NWRmYzdmODFmM2E4MDQ4MGEwZGRk
Y2U3ZmZjYzdlMDllZDQwNi4uNzYzNGM4NDBkNjEzMWIxMDllMDZlYzcxOGI3MDlhYmYwNTU0MjZm
MCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cu
Y3BwCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcApA
QCAtMTExLDE3ICsxMTEsMTIgQEAgUmVmPEJyb3dzZXJXaW5kb3c+IFdlYktpdEJyb3dzZXJXaW5k
b3c6OmNyZWF0ZShCcm93c2VyV2luZG93Q2xpZW50JiBjbGllbnQsIEhXTkQKIHsKICAgICBhdXRv
IGNvbmYgPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAKLSAgICBhdXRv
IHByZWZzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOworICAgIGF1dG8gcHJlZnMg
PSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoY29uZi5nZXQoKSk7CiAKLSAgICBh
dXRvIHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihj
cmVhdGVXS1N0cmluZygiV2luTWluaUJyb3dzZXIiKS5nZXQoKSkpOwotICAgIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZi5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLSAgICBX
S1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSwgcHJlZnMuZ2V0KCkpOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQocHJlZnMsIGZhbHNl
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChwcmVmcywgdHJ1
ZSk7CiAKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXBhYmlsaXRpZXNFbmFibGVkKHByZWZz
LmdldCgpLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldERldmVsb3BlckV4dHJhc0VuYWJs
ZWQocHJlZnMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQcmVmZXJl
bmNlcyhjb25mLmdldCgpLCBwcmVmcy5nZXQoKSk7Ci0KLSAgICBhdXRvIGNvbnRleHQgPWFkb3B0
V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOworICAgIGF1dG8g
Y29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0
cikpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmYuZ2V0KCksIGNvbnRl
eHQuZ2V0KCkpOwogCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViS2l0QnJvd3NlcldpbmRv
dyhjbGllbnQsIGNvbmYuZ2V0KCksIG1haW5XbmQpKTsKQEAgLTIyMyw4ICsyMTgsOCBAQCB2b2lk
IFdlYktpdEJyb3dzZXJXaW5kb3c6Om5hdmlnYXRlVG9IaXN0b3J5KFVJTlQgbWVudUlEKQogdm9p
ZCBXZWJLaXRCcm93c2VyV2luZG93OjpzZXRQcmVmZXJlbmNlKFVJTlQgbWVudUlELCBib29sIGVu
YWJsZSkKIHsKICAgICBhdXRvIHBhZ2UgPSBXS1ZpZXdHZXRQYWdlKG1fdmlldy5nZXQoKSk7Ci0g
ICAgYXV0byBwZ3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAocGFnZSk7Ci0gICAgYXV0byBwcmVm
ID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwZ3JvdXApOworICAgIGF1dG8gY29uZmlndXJh
dGlvbiA9IGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHBhZ2UpKTsKKyAgICBh
dXRvIHByZWYgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoY29uZmlndXJhdGlv
bi5nZXQoKSk7CiAgICAgc3dpdGNoIChtZW51SUQpIHsKICAgICBjYXNlIElETV9BQ0NfQ09NUE9T
SVRJTkc6CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZChwcmVmLCBlbmFibGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKaW5k
ZXggNWU4NTAyNjg5ZjEzZThlZDExOWUzMWE3NmY1YmNlYzYwOThhY2U3NS4uYWY1OWFiZWQ2OWQw
ODg5OTIwMDg3NGMzNWM0NzYzZGJlNGI3ODU2NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
V2ViVmlldy5oCkBAIC03MywxMSArNzMsOCBAQCBjbGFzcyBQbGF0Zm9ybVdlYlZpZXcgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFBsYXRmb3JtV2ViVmlldyk7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgUGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpOwotICAgIGV4cGxp
Y2l0IFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmID0gMCk7Cisg
ICAgZXhwbGljaXQgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZik7CiAgICAgZXhwbGljaXQg
UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSk7Ci0jaWYgUExBVEZPUk0oTUFD
KQotICAgIGV4cGxpY2l0IFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3Vw
UmVmLCBDbGFzcyB3a1ZpZXdTdWJjbGFzcyk7Ci0jZW5kaWYKICAgICB+UGxhdGZvcm1XZWJWaWV3
KCk7CiAKICAgICBXS1BhZ2VSZWYgcGFnZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAyZTdmYTQ0NTQ4NzYwYWFlZjk0Y2FjYTNmODIwZDIyYmM4NDlkZWY1Li42N2RlNzZiNGYy
YmM2MjI1NzczMWE4NGE5NTdhY2IzNmY2M2YxMjU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNjc4LDcgKzY3OCw3IEBACiAJCTdDOUVEOThCMTdBMTlGNEIwMEU0REMzMyAvKiBhdHRyaWJ1
dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOUVEOThBMTdBMTlEMDYwMEU0REMzMyAvKiBhdHRy
aWJ1dGVkU3RyaW5nU3RyaWtldGhyb3VnaC5odG1sICovOyB9OwogCQk3Q0IxODRDNjFBQTNGMjEw
MDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCMTg0QzQxQUEzRjIxMDAwNjZFREZEIC8qIENvbnRl
bnRFeHRlbnNpb25zLmNwcCAqLzsgfTsKIAkJN0NCRDVBMjMyMkRFNDJBNjAwNEE5RTMyIC8qIFdU
RlN0cmluZ1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3Q0JENUEyMjIyREU0MkE2MDA0QTlFMzIgLyogV1RGU3RyaW5nVXRpbGl0aWVz
LmNwcCAqLzsgfTsKLQkJN0NDQjREQTkxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0NCNERBNzFD
ODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKKwkJN0NDQjREQTkxQzgzQUU3
MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDQ0I0REE3MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAubW0g
Ki87IH07CiAJCTdDQ0I5OTIxMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2VySW5pdGlhdGVkQWN0aW9u
SW5OYXZpZ2F0aW9uQWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0NDQjk5MjAxRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rp
b25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gKi87IH07CiAJCTdDQ0I5OTIzMUQzQjRBNDYwMDM5MjJG
NiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQ0I5OTIyMUQzQjQ0RTcwMDM5MjJG
NiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sICovOyB9OwogCQk3Q0NFN0VBNTFB
NDExQTA4MDA0NDdDNEMgLyogSmF2YVNjcmlwdFRlc3RNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMDgxMjI0MDEzRkMxNzI0MDBEQzM5QUUgLyog
SmF2YVNjcmlwdFRlc3RNYWMubW0gKi87IH07CkBAIC0yNDc2LDcgKzI0NzYsNyBAQAogCQk3Q0JC
QTA3NjE5QkI4QTkxMDBCQkYwMjUgLyogT1NPYmplY3RQdHIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gT1NPYmplY3RQdHIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0JENUEyMjIyREU0MkE2MDA0QTlFMzIgLyogV1RGU3RyaW5nVXRpbGl0aWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdURlN0cmluZ1V0aWxpdGllcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzNFMUZBMTk3RTIzNDEwMEJFNjI1MiAvKiBVc2VyQ29u
dGVudENvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBVc2VyQ29udGVudENvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTdDQ0I0REE3MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VHcm91cC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDQjk5MjAxRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJ
bml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBVc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9u
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NCOTkyMjFEM0I0NEU3MDAzOTIy
RjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0NDRTdFOEMxQTQxMTQ0RTAwNDQ3QzRDIC8qIGxpYlRlc3RXZWJL
aXRBUEkuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0g
YXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliVGVzdFdlYktpdEFQSS5h
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDMzNCw3ICs0MzM0LDcg
QEAKIAkJCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8sCiAJCQkJMEY1NjUxRjYxRkNFNEREQjAwMzEw
RkJDIC8qIE5vSGlzdG9yeUl0ZW1TY3JvbGxUb0ZyYWdtZW50Lm1tICovLAogCQkJCTFDQjJGMjdC
MjRGODgzNzkwMDBBNUJDMSAvKiBPcnRob2dvbmFsRmxvd0F2YWlsYWJsZVNpemUubW0gKi8sCi0J
CQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAgKi8sCisJCQkJN0ND
QjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLywKIAkJCQlCQzkwOTc3OTEy
NTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCiAJCQkJQkMyRDAwNDgxMkE5
RkRGQTAwRTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJh
bWUuY3BwICovLAogCQkJCTI3MkE2OTBGMjJGMDEyQzcwMDBGREFCQiAvKiBQYWdlTG9hZFN0YXRl
LmNwcCAqLywKQEAgLTU1OTksNyArNTU5OSw3IEBACiAJCQkJMEYzNDA3NzYyMzAzN0ZEQzAwNjBB
MUEwIC8qIE92ZXJmbG93U2Nyb2xsVmlld1Rlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzEw
NEJDMUYyNTQ3MjM3MTAwQzA3OEM5IC8qIE92ZXJyaWRlQXBwbGVMYW5ndWFnZXNQcmVmZXJlbmNl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRBMjU4NkYyMjVDNjdEQzAwQjQ1QzFDIC8qIE92ZXJy
aWRlVmlld3BvcnRBcmd1bWVudHMubW0gaW4gU291cmNlcyAqLywKLQkJCQk3Q0NCNERBOTFDODNB
RTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdDQ0I0REE5
MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NF
N0YwNzFBNDExQUU2MDA0NDdDNEMgLyogUGFnZUxvYWRCYXNpYy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3Q0NFN0YwODFBNDExQUU2MDA0NDdDNEMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlv
bldpdGhpblBhZ2VGb3JGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNzJBNjkxMDIyRjAx
MkRBMDAwRkRBQkIgLyogUGFnZUxvYWRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3Qu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0
Lm1tCmluZGV4IDQ3ZjVlODg1Y2Q2YTBjMTRmMzlhZmI3MThhOGJjNWQ5OWU5ZjVjN2QuLmFkMzk5
MWQ1NmYyMWU1NjJlMjQ1YTI0MDdiNjM2NWM0OTg4ZTZhYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbQpAQCAt
NTIsOSArNTIsNyBAQCBURVNUKFdlYktpdDJDdXN0b21Qcm90b2NvbHNUZXN0LCBTeW5jWEhSKQog
ICAgIFJldGFpblB0cjxXS0Jyb3dzaW5nQ29udGV4dEdyb3VwPiBicm93c2luZ0NvbnRleHRHcm91
cCA9IGFkb3B0TlMoW1tXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIGFsbG9jXSBpbml0V2l0aElkZW50
aWZpZXI6QCJUZXN0SWRlbnRpZmllciJdKTsKIAogICAgIC8vIEFsbG93IGZpbGUgVVJMcyB0byBs
b2FkIG5vbi1maWxlIHJlc291cmNlcwotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+
IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJl
ZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2Vz
LmdldCgpLCB0cnVlKTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKGJyb3dzaW5nQ29u
dGV4dEdyb3VwLmdldCgpLl9wYWdlR3JvdXBSZWYsIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBX
S1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChXS1BhZ2VH
cm91cEdldFByZWZlcmVuY2VzKGJyb3dzaW5nQ29udGV4dEdyb3VwLmdldCgpLl9wYWdlR3JvdXBS
ZWYpLCB0cnVlKTsKIAogICAgIFJldGFpblB0cjxXS1ZpZXc+IHdrVmlldyA9IGFkb3B0TlMoW1tX
S1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgcHJv
Y2Vzc0dyb3VwOnByb2Nlc3NHcm91cC5nZXQoKSBicm93c2luZ0NvbnRleHRHcm91cDpicm93c2lu
Z0NvbnRleHRHcm91cC5nZXQoKV0pOwogICAgICBSZXRhaW5QdHI8VGVzdEJyb3dzaW5nQ29udGV4
dExvYWREZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdEJyb3dzaW5nQ29udGV4dExv
YWREZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhCbG9ja1RvUnVuT25Mb2FkOl4oV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyICpzZW5kZXIpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0Nsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAKaW5k
ZXggMjg4NWY1MmJhODFhMjNlMzAxMjczMzE0OTRlN2NiMjE3YzNjNTY3Yy4uZDY1ZDQ1MzU4NDAz
NTI0YTVkNzVlYTk4YjRlNzVjZjVjZmVhOWE2ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5j
cHAKQEAgLTc2LDEwICs3Niw4IEBAIFRFU1QoV2ViS2l0LCBDbG9zZUZyb21XaXRoaW5DcmVhdGVQ
YWdlKQogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50
LmJhc2UpOwogCiAgICAgLy8gQWxsb3cgZmlsZSBVUkxzIHRvIGxvYWQgbm9uLWZpbGUgcmVzb3Vy
Y2VzCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9w
dFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7Ci0gICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
ID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKKyAgICBXS1JldGFpblB0cjxX
S1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVm
ZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2Uo
KSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQ
cmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKICAgICAKICAgICBXS1Jl
dGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgiY2xvc2UtZnJvbS13aXRoaW4tY3JlYXRlLXBhZ2UiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VM
b2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwpAQCAtMTIxLDEwICsxMTksOCBAQCBU
RVNUKFdlYktpdCwgQ3JlYXRlUGFnZVRoZW5Eb2N1bWVudE9wZW5NSU1FVHlwZSkKICAgICBXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAg
IC8vIEFsbG93IGZpbGUgVVJMcyB0byBsb2FkIG5vbi1maWxlIHJlc291cmNlcwotICAgIFdLUmV0
YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVu
Y2VzQ3JlYXRlKCkpOwotICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdldFBh
Z2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1Jl
Zj4gcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAg
ICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJl
ZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLCBwcmVmZXJlbmNlcy5nZXQoKSk7CiAKICAgICB0ZXN0RG9uZSA9IGZhbHNlOwogICAg
IFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJ3aW5kb3ctb3Blbi10aGVuLWRvY3VtZW50LW9wZW4iLCAiaHRtbCIpKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bkJhc2ljLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbkJhc2ljLmNwcAppbmRleCBmNGZjNzAxMGE5NTI2MWZiYmFlYjY1MmZiMWNhN2IxZjli
OTk0ZTg4Li5kMDJmZjIzYTIzZGJkNTc4YjUxNzFkMjY0YjU5YmIwODVhMGNiMjhlIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25C
YXNpYy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93
RXh0ZW5zaW9uQmFzaWMuY3BwCkBAIC04Miw5ICs4Miw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVz
c2FnCiAKIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNpYykKIHsK
LSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1Bh
Z2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJET01XaW5kb3dFeHRlbnNpb25CYXNpY1BhZ2VHcm91cCIpKSk7IAotCi0gICAgV0tSZXRhaW5Q
dHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9y
SW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25CYXNpYyIsIHBhZ2VHcm91cC5n
ZXQoKSkpOworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0so
VXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2luZG93RXh0ZW5z
aW9uQmFzaWMiKSk7CiAKICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudFYwIGluamVj
dGVkQnVuZGxlQ2xpZW50OwogICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNp
emVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkpOwpAQCAtOTgsNyArOTYsNyBAQCBURVNUKFdlYktp
dCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMpCiAgICAgLy8gbW9kZWwgdGhhdCBh
Y3R1YWxseSBhbGxvd3MgZm9yIGEgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNl
dENhY2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7
CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAu
Z2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogICAg
IAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgZXh0ZW5zaW9ucyBmb3IgZWFjaCBmcmFtZSBhcmUgaW5z
dGFsbGVkIGluIGVhY2ggd29ybGQuCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybDEgPSBh
ZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1lIiwgImh0bWwi
KSk7CkBAIC0xMzcsOCArMTM1LDYgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4
dGVuc2lvbkJhc2ljKQogCiBURVNUKFdlYktpdCwgRE9NV2luZG93RXh0ZW5zaW9uQ3Jhc2hPblJl
bG9hZCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRv
cHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJET01XaW5kb3dFeHRlbnNpb25CYXNpY1BhZ2VHcm91cCIpKSk7Ci0KICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljIikpOwog
CiAgICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVu
dDsKQEAgLTE1Myw3ICsxNDksNyBAQCBURVNUKFdlYktpdCwgRE9NV2luZG93RXh0ZW5zaW9uQ3Jh
c2hPblJlbG9hZCkKICAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNr
L2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgp
LCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJW
aWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRl
bnNpb25Ob0NhY2hlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdp
bmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCmluZGV4IGUxNjk2ZDViZDY1Njk0NzI3OGY5NDc0ODUy
NTMxNzJiYzQ5YjdjYTcuLmM3ZDBmOGQwOGVhMjI0MmFiYzdhZDM4NjUyNDlhYThjMjU0ZjIxMDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCkBAIC04Myw5ICs4Myw3IEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tT
dHJpbmdSZWYgbWVzc2FnCiAKIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNp
b25Ob0NhY2hlKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAg
PSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVQYWdlR3JvdXAiKSkpOwot
Ci0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJET01XaW5kb3dFeHRlbnNpb25Ob0Nh
Y2hlIiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0
KCJET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlIikpOwogCiAgICAgV0tDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnRWMSBpbmplY3RlZEJ1bmRsZUNsaWVudDsKICAgICBtZW1zZXQoJmluamVjdGVk
QnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5kbGVDbGllbnQpKTsKQEAgLTk4LDcg
Kzk2LDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUp
CiAgICAgLy8gRGlzYWJsZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNl
dENhY2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsK
IAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5n
ZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAg
ICAvLyBNYWtlIHN1cmUgdGhlIGV4dGVuc2lvbnMgZm9yIGVhY2ggZnJhbWUgYXJlIGluc3RhbGxl
ZCBpbiBlYWNoIHdvcmxkLgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwxID0gYWRvcHRX
SyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFy
dFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKaW5kZXggYTc3NTQ0ZTUy
ZjBmYzhiZjNjMzIyNTE3NGRjMjMzN2ZiOGY4NzcwYS4uZDRhMzUxMjM0NWVkNWMyYTQyM2E2M2Y4
YjA5NmY2YmNlMzdiYjU5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2guY3BwCkBAIC00OCwxMCArNDgsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNU
KFdlYktpdCwgRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCkKIHsKLSAgICBX
S1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91
cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEb2N1
bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hUZXN0UGFnZUdyb3VwIikpKTsgCi0KICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRD
cmFzaFRlc3QiKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwg
cGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0Lmdl
dCgpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjAgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNs
aWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVNZWRpYURldmljZXMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcAppbmRleCBhM2Q3
YjljZGQ3MDQxODhlZmVlNzNmZmIwZjEwYzU4MzE3MDc5MDQ3Li5hYjdhNmYyNDQ3NTgzN2NiYmQ1
NTliOGZiOGQxZjZjNWI1MjcwM2VjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9FbnVtZXJhdGVNZWRpYURldmljZXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAKQEAgLTUxLDE4ICs1
MSwxOCBAQCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlcykKIHsKICAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsK
IAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdL
UGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiRW51bWVyYXRlRGV2aWNl
cyIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdy
b3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0
TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNl
c1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHBy
ZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50OwogICAg
IG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJh
c2UudmVyc2lvbiA9IDY7CiAgICAgdWlDbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
T3JpZ2luID0gY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJhY2s7CiAKLSAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRX
SyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7Cisg
ICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUp
OworICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVm
ZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOworCisKICAgICBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIGF1dG8g
dXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZW51bWVyYXRlTWVkaWFE
ZXZpY2VzIiwgImh0bWwiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0
ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAppbmRleCA2ODVmOTQzYWI3MmJjNmM3NGVmZmIwOTM1YWI2
ZmNkOWEzMWVmYjQ1Li4wOTFiZTJjMmM5ZDg4YzhhNWUzMWY1MzFjOTUzM2NmODlkYjkxN2Y2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNz
aW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFj
ay5jcHAKQEAgLTc3LDEyICs3Nyw5IEBAIFRFU1QoV2ViS2l0LCBFcGhlbWVyYWxTZXNzaW9uUHVz
aFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2spCiAKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNs
aWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnBhZ2VMb2FkZXJDbGllbnQuYmFzZSk7CiAKLSAgICBXS1Jl
dGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJl
bmNlc0NyZWF0ZSgpKTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJl
bmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNv
cHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5n
ZXQoKSwgdHJ1ZSk7CiAKLSAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQ
YWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMo
cGFnZUdyb3VwLCBwcmVmZXJlbmNlcy5nZXQoKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgicHVzaC1zdGF0ZSIs
ICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVk
QnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3IuY3BwCmluZGV4IDg1Yzc2ODZhNjgwMzE4ZjNmNzM0NmJmOWNiODRiMTMyMTZkMWQ1
YWYuLjFlYmNkNGVlOGVhZmUxYjIyZTBjM2E1OTU0YWJjMTJkMzI5MzNjNGIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNw
cApAQCAtNTAsMTAgKzUwLDggQEAgc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0RW5hYmxl
ZChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0YKIAogVEVTVChXZWJL
aXQsIEluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCkK
IHsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhX
S1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3RQ
YWdlR3JvdXAiKSkpOwotCiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3Rl
ZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiKSk7Ci0gICAgUGxh
dGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJ
Q2xpZW50VjAgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xp
ZW50KSk7CkBAIC04NCwxMCArODIsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnRE
aXNhYmxlZChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXSwogCiBURVNU
KFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVz
dCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRX
SyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0
UGFnZUdyb3VwIikpKTsKLQogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW5qZWN0
ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCIpKTsKLSAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlVUlD
bGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGll
bnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVj
dGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCmlu
ZGV4IGQyYjFkNTczODdiNDkxZWIzN2Q0Zjg3OTM2MzlkNzdkNzBhMDJmYWUuLjZlNTgwMzQ2NTIw
ZDdjMmFhNjUyZjhmNTI0ZTBmODg5OGRhNDQ3NzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVN
YWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcApAQCAtODUsMTAgKzg1LDggQEAgc3RhdGljIHZvaWQg
cnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQs
IFdLRnJhbWVSZWYKIAogVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jv
b3RPcGVuVGVzdCkKIHsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3Vw
ID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290T3BlblRlc3RQ
YWdlR3JvdXAiKSkpOwotCiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3Rl
ZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290T3BlblRlc3QiKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjAgdWlD
bGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWVlOTA0MzI3NTI4YjNlODVhZWQyM2IyYzdkYzY3MzMyNmQy
NDcxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9y
dCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgotCi0jaWYgV0tfSEFWRV9DX1NQSQotCi0jaW1wb3J0
ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCi0jaW1w
b3J0ICJUZXN0LmgiCi0jaW1wb3J0IDxXZWJLaXQvV0tQYWdlR3JvdXAuaD4KLSNpbXBvcnQgPFdl
YktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1URVNU
KFBhZ2VHcm91cCwgRGVmYXVsdFVzZXJDb250ZW50Q29udHJvbGxlcikKLXsKLSAgICBhdXRvIHBh
Z2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwot
ICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRp
b24obnVsbHB0cikpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KHBhZ2VDb25m
aWd1cmF0aW9uLmdldCgpLCBjb250ZXh0LmdldCgpKTsKLSAgICBhdXRvIHBhZ2VHcm91cCA9IGFk
b3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJUZXN0UGFn
ZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKHBh
Z2VDb25maWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotCi0gICAgYXV0byBwYWdl
R3JvdXBVc2VyQ29udGVudENvbnRyb2xsZXIgPSByZXRhaW5XSyhXS1BhZ2VHcm91cEdldFVzZXJD
b250ZW50Q29udHJvbGxlcihwYWdlR3JvdXAuZ2V0KCkpKTsKLQotICAgIEVYUEVDVF9OVUxMKFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUNvbmZpZ3VyYXRp
b24uZ2V0KCkpKTsKLQotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VDb25maWd1cmF0
aW9uLmdldCgpKTsKLSAgICBhdXRvIGNvcGllZFBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhX
S1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKTsKLQotICAgIEFTU0VS
VF9FUShwYWdlR3JvdXBVc2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCksIFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIoY29waWVkUGFnZUNvbmZpZ3VyYXRpb24uZ2V0
KCkpKTsKLX0KLQotVEVTVChQYWdlR3JvdXAsIEN1c3RvbVVzZXJDb250ZW50Q29udHJvbGxlcikK
LXsKLSAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0
aW9uQ3JlYXRlKCkpOwotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRl
V2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRD
b250ZXh0KHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBjb250ZXh0LmdldCgpKTsKLSAgICBhdXRv
IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGls
Ojp0b1dLKCJUZXN0UGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9u
U2V0UGFnZUdyb3VwKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwot
ICAgIGF1dG8gdXNlckNvbnRlbnRDb250cm9sbGVyID0gYWRvcHRXSyhXS1VzZXJDb250ZW50Q29u
dHJvbGxlckNyZWF0ZSgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0VXNlckNvbnRlbnRD
b250cm9sbGVyKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCB1c2VyQ29udGVudENvbnRyb2xsZXIu
Z2V0KCkpOwotCi0gICAgYXV0byBwYWdlR3JvdXBVc2VyQ29udGVudENvbnRyb2xsZXIgPSByZXRh
aW5XSyhXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihwYWdlR3JvdXAuZ2V0KCkp
KTsKLQotICAgIEVYUEVDVF9FUSh1c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCksIFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUNvbmZpZ3VyYXRpb24uZ2V0
KCkpKTsKLQotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VDb25maWd1cmF0aW9uLmdl
dCgpKTsKLSAgICBhdXRvIGNvcGllZFBhZ2VDb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VD
b3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKTsKLQotICAgIEVYUEVDVF9FUSh1
c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCksIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29u
dGVudENvbnRyb2xsZXIoY29waWVkUGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91cC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWFjZDNhMGU3NWNmZjg3
YzIyNGFmOTgxYTFkMGIzZDJkYzk1NmZlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLm1tCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRh
dGlvbi5oPgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQcml2
YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKKworVEVTVChQYWdlR3JvdXAsIFByZWZlcmVuY2VzKQoreworICAgIGF1dG8gcGFnZUNv
bmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CisgICAg
YXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihu
dWxscHRyKSk7CisgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQocGFnZUNvbmZpZ3Vy
YXRpb24uZ2V0KCksIGNvbnRleHQuZ2V0KCkpOworICAgIGF1dG8gcGFnZUdyb3VwID0gYWRvcHRX
SyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIlRlc3RQYWdlR3Jv
dXAiKS5nZXQoKSkpOworICAgIGF1dG8gd2tWaWV3ID0gYWRvcHROUyhbW1dLVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbnRleHRSZWY6Y29udGV4dC5nZXQoKSBwYWdlR3Jv
dXBSZWY6cGFnZUdyb3VwLmdldCgpXSk7CisgICAgRVhQRUNUX0VRKFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3a1Zp
ZXcuZ2V0KCkucGFnZVJlZikpLmdldCgpKSwgV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdl
R3JvdXAuZ2V0KCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9h
cmROb3RpZmljYXRpb25zLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFz
dGVib2FyZE5vdGlmaWNhdGlvbnMubW0KaW5kZXggMzY1YzJkZGI5YjkyZTVjNjZlNjI3OTYwYTVh
MmJmYTllNGRhYTYxYS4uZmY0MmY0MzI4N2ZmZjlhM2U3YjVjYWIyMDg4YzEzN2EwYjg0OGU3ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5v
dGlmaWNhdGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFz
dGVib2FyZE5vdGlmaWNhdGlvbnMubW0KQEAgLTY3LDEyICs2Nyw5IEBAIFRFU1QoV2ViS2l0LCBQ
YXN0ZWJvYXJkTm90aWZpY2F0aW9ucykKIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCkpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVy
ZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7CisgICAgV0tSZXRhaW5QdHI8
V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJl
ZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdl
KCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwogCi0gICAgV0tQYWdlR3JvdXBSZWYgcGFn
ZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZpZXcucGFnZSgpKTsKLSAgICBXS1BhZ2VH
cm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0KCkpOwotCiAgICAg
V0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JS
ZXNvdXJjZSgiZXhlY0NvcHkiLCAiaHRtbCIpKS5nZXQoKSk7CiAgICAgVXRpbDo6cnVuKCZmaW5p
c2hlZCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
cml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlD
YWxsYmFjay5jcHAKaW5kZXggNjM1MjUzZTBhNjZlZjgwZjZlZDM5NjVlNzdkMDY5Y2RiOTI0ODY3
Ni4uZTMxMWJmMTFlYzBhNTgwMWRmYzJlZWU0N2E1NDY4NWY4NDgxZGIxMSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRl
Tm9IaXN0b3J5Q2FsbGJhY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcApAQCAtODAs
MTIgKzgwLDkgQEAgVEVTVChXZWJLaXQsIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9y
eUNhbGxiYWNrKQogCiAgICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5w
YWdlKCksICZwYWdlTG9hZGVyQ2xpZW50LmJhc2UpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVm
ZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7
CisgICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBXS1BhZ2VD
b25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3Vy
YXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFVuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwog
Ci0gICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZp
ZXcucGFnZSgpKTsKLSAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJl
ZmVyZW5jZXMuZ2V0KCkpOwotCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0
V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInB1c2gtc3RhdGUiLCAiaHRtbCIpKTsKICAg
ICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVk
V2ViVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZl
cnNlUGFnaW5hdGVkV2ViVmlldy5jcHAKaW5kZXggMjAyNDUxNjMxNzgxYmQ3OGY2MTY0MDViMjM1
YjZjY2RiMmZkZjhiMS4uZGZlNWNiNTljMWJlZmYzYTM0OWQ2NTRlOWM5MDdhZjFjM2UwNmExNCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2ZXJz
ZVBhZ2luYXRlZFdlYlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcApAQCAtNzQsOCArNzQsNyBAQCBU
RVNUKFdlYktpdCwgUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcpCiAKICAgICBXS1BhZ2VM
aXN0ZW5Gb3JMYXlvdXRNaWxlc3RvbmVzKHdlYlZpZXcucGFnZSgpLCBrV0tEaWRGaXJzdExheW91
dEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nKTsKIAotICAgIFdLUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cCA9ICBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOwotICAg
IFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2Vz
KHBhZ2VHcm91cCk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJh
dGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0U3VwcHJl
c3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nKHByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIFdLUGFn
ZVNldFBhZ2luYXRpb25Nb2RlKHdlYlZpZXcucGFnZSgpLCBrV0tQYWdpbmF0aW9uTW9kZVJpZ2h0
VG9MZWZ0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Nj
cm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAKaW5kZXggODVmMjVhNjQ2ZmFiMmJhNDZkNzQx
ODZlMGZmNWYyNzZlNjIyNmU5OS4uNGIxMzhlNDkwYzc0NjNkNWVlMDI5MmNmMWVhZDZkMDc2ODY0
ZjI3NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2Nyb2xs
UGlubmluZ0JlaGF2aW9ycy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAKQEAgLTczLDE1ICs3MywxNCBAQCBURVNUKFdl
YktpdCwgU2Nyb2xsUGlubmluZ0JlaGF2aW9ycykKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9u
KG51bGxwdHIpKTsKIAorICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkp
OworCisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJW
aWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICAvLyBUdXJuIG9mZiB0aHJlYWRlZCBzY3JvbGxpbmc7
IHN5bmNocm9ub3VzbHkgd2FpdGluZyBmb3IgdGhlIG1haW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlv
biB0bwogICAgIC8vIHVwZGF0ZSB1c2luZyBXS1BhZ2VGb3JjZVJlcGFpbnQgd291bGQgYmUgYmV0
dGVyLCBidXQgZm9yIHNvbWUgcmVhc29uIGRvZXNuJ3QgYmxvY2sgdW50aWwKICAgICAvLyBpdCdz
IHVwZGF0ZWQgYWZ0ZXIgdGhlIGluaXRpYWwgV0tQYWdlU2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9y
IGFib3ZlLgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9w
dFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRl
ZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKICAg
ICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBm
YWxzZSk7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdl
R3JvdXAuZ2V0KCkpOwotCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVu
dDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNj
cm9sbGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNj
cm9sbGluZy5jcHAKaW5kZXggZDIzMTMzMWI5NTUyOGU0ZDUwMDZiMzQzNDNkNzViZWMwMDcxNDk2
MS4uNzkxZjk0MzcwMmUxNmJmYTExMTYzNDBmZmI5Y2M0M2VmYzUzMGZjYSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNw
cApAQCAtNTMsMTQgKzUzLDEzIEBAIFRFU1QoV2ViS2l0LCBTcGFjZWJhclNjcm9sbGluZykKIHsK
ICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNy
ZWF0ZUNvbnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7CiAKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
ID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBh
Z2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOworCiAgICAgLy8gVHVybiBv
ZmYgdGhyZWFkZWQgc2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5IHdhaXRpbmcgZm9yIHRoZSBtYWlu
IHRocmVhZCBzY3JvbGwgcG9zaXRpb24gdG8KICAgICAvLyB1cGRhdGUgdXNpbmcgV0tQYWdlRm9y
Y2VSZXBhaW50IHdvdWxkIGJlIGJldHRlciwgYnV0IGZvciBzb21lIHJlYXNvbiB0aGUgdGVzdCBz
dGlsbCBmYWlscyBvY2Nhc2lvbmFsbHkuCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+
IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGls
Ojp0b1dLKCJOb1RocmVhZGVkU2Nyb2xsaW5nUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdl
R3JvdXAuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJs
ZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Ci0KICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xp
ZW50VjAgbG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2Yo
bG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1VzZXJNZWRpYS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9V
c2VyTWVkaWEuY3BwCmluZGV4IDU3NTE5NzNhNTg4Nzg5ZTRmZTlmODZlOTU1MzVlYjU1ZTJmZDdl
MTMuLjBjYmM1MDBhYjJmMzU0ZTBkYWI1MTU4OGU2ZDBjNWFiZjIyZWFlNmEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcApAQCAtNzEsMjAgKzcx
LDE4IEBAIFRFU1QoV2ViS2l0LCBVc2VyTWVkaWFCYXNpYykKIHsKICAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKIAot
ICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFn
ZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiR2V0VXNlck1lZGlhIikuZ2V0
KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQ
cmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURl
dmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0Rmls
ZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJl
ZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5j
ZXMsIGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBXS1BhZ2VVSUNsaWVudFY2IHVpQ2xpZW50Owog
ICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50
LmJhc2UudmVyc2lvbiA9IDY7CiAgICAgdWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3QgPSBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdENhbGxCYWNrOwogICAgIHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbiA9IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkNhbGxiYWNrOwogICAgIAotICAgIFBsYXRm
b3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9w
dFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHBy
ZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAgV0tQcmVmZXJlbmNl
c1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogCiAg
ICAgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKQEAgLTEwNywyMCArMTA1LDE4IEBAIFRFU1QoV2ViS2l0
LCBPbkRldmljZUNoYW5nZUNyYXNoKQogewogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tD
b250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwogCi0gICAgV0tSZXRhaW5Q
dHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVX
aXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJHZXRVc2VyTWVkaWEiKS5nZXQoKSkpOwotICAgIFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBh
Z2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQo
cHJlZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1l
ZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwot
ICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2Vz
LCB0cnVlKTsKLQogICAgIFdLUGFnZVVJQ2xpZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1
aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CiAgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9u
ID0gNjsKICAgICB1aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdCA9IGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2s7
CiAgICAgdWlDbGllbnQuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luID0gY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJhY2s7CiAKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMg
PSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFn
ZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNl
c1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVy
ZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
bihwcmVmZXJlbmNlcywgZmFsc2UpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNb2NrQ2FwdHVyZURl
dmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIC8vIExvYWQgYSBwYWdl
IHJlZ2lzdGVyaW5nIG9uZGV2aWNlY2hhbmdlIGhhbmRsZXIuCkBAIC0xNjcsMTMgKzE2Myw2IEBA
IFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZpY2VzQ3Jhc2gpCiB7CiAgICAgYXV0byBjb250ZXh0
ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CiAK
LSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1Bh
Z2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkdldFVzZXJNZWRpYSIpLmdl
dCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFE
ZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEZp
bGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVu
Y2VzLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNsaWVudDsK
ICAgICAvLyBXZSB3YW50IHVpQ2xpZW50LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdp
biB0byBiZSBudWxsLgogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkp
OwpAQCAtMTg0LDcgKzE3MywxMyBAQCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlc0NyYXNo
KQogICAgIGxvYWRlckNsaWVudC5iYXNlLnZlcnNpb24gPSAzOwogICAgIGxvYWRlckNsaWVudC5k
aWRGaW5pc2hOYXZpZ2F0aW9uID0gZGlkRmluaXNoTmF2aWdhdGlvbjsKIAotICAgIFBsYXRmb3Jt
V2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxh
dGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdL
KFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKyAg
ICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZl
cmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAgV0tQcmVmZXJlbmNlc1Nl
dE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOworCiAgICAgV0tQ
YWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAgICAg
V0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdlKCksICZsb2FkZXJDbGll
bnQuYmFzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZTU0MTAwYzhjNzk0NjcxNjUwOTAyYjMy
M2ZlZmQxNTgyMWU0MjdhYi4uMDVkOTVlNDk3NDE4MDU1MzA5NTlhMjZjMzQ4YzFlOGM5N2M3YWFl
NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29u
ZmlndXJhdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQ
YWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTQxLDcgKzQxLDYgQEAgVEVTVChXZWJLaXQsIFdLUGFn
ZUNvbmZpZ3VyYXRpb25FbXB0eSkKIAogICAgIEFTU0VSVF9OVUxMKFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChXS1Bh
Z2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKGNvbmZpZ3VyYXRpb24uZ2V0
KCkpKTsKLSAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFnZUdyb3VwKGNv
bmZpZ3VyYXRpb24uZ2V0KCkpKTsKICAgICBBU1NFUlRfTlVMTChXS1BhZ2VDb25maWd1cmF0aW9u
R2V0UHJlZmVyZW5jZXMoY29uZmlndXJhdGlvbi5nZXQoKSkpOwogICAgIEFTU0VSVF9OVUxMKFdL
UGFnZUNvbmZpZ3VyYXRpb25HZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpKSk7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1Bs
YXlpbmdBdWRpby5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJ
c1BsYXlpbmdBdWRpby5jcHAKaW5kZXggYzFlZjA5MTVjMjdlMjE1Yzc4YmM4NDMxYTFjYWNmNGY0
ZDI1ODljMC4uNTY0OWQ5MDQ0YzhlM2RiNDYwZTg5MWY2N2I1NTA1NTBkYTdlMWQ4ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVk
aW8uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxh
eWluZ0F1ZGlvLmNwcApAQCAtMTE3LDEyICsxMTcsMTAgQEAgVEVTVChXZWJLaXQsIE1TRUlzUGxh
eWluZ0F1ZGlvKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFk
b3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwogCi0gICAg
V0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3Jv
dXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJNU0VJc1BsYXlpbmdBdWRpb1BhZ2VH
cm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFn
ZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZp
ZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29w
eVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRNZWRpYVNvdXJjZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcywgdHJ1
ZSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3Jv
dXAuZ2V0KCkpOwogICAgIHNldFVwQ2xpZW50cyh3ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICBXS1Jl
dGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgiZmlsZS13aXRoLW1zZSIsICJodG1sIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdl
V2l0aEltYWdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tCmluZGV4IGI5MTIzZjc5
ODNhODVjNDRmYzM4OWM1NzZlY2MzZmJmNTFlMjY2YmUuLmNlNmE4MDY4ZDM4ODg1ZDI4MDg2M2Mw
Njc2OGQwOTFlZGZjZjAyMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQXR0cmlidXRlZFN1
YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0KQEAgLTU4LDggKzU4LDcgQEAgc3Rh
dGljIHZvaWQgaW52YWxpZE1lc3NhZ2VGdW5jdGlvbihXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSkK
IFRFU1QoV2ViS2l0LCBBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFn
ZSkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZUNvbnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7Ci0gICAgV0tSZXRhaW5QdHI8
V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRo
SWRlbnRpZmllcihVdGlsOjp0b1dLKCJBdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5n
ZVdpdGhJbWFnZVBhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBs
b2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJD
bGllbnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21h
Yy9Db250ZXh0TWVudURvd25sb2FkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0KaW5kZXggNzU1NmY2MTJkNWUzYjliYTRmNGNk
NmY1MjZjOTU4YzE3ZjNmMWYyNi4uNjRkNjdhYjJlM2M3NWQ5ZjA5OTM0NjZmYTc2YmY2ZDZhNTA1
Y2FhZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0Nv
bnRleHRNZW51RG93bmxvYWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0KQEAgLTkyLDggKzkyLDcgQEAgVEVTVChXZWJL
aXQsIENvbnRleHRNZW51RG93bmxvYWRIVE1MRG93bmxvYWRBdHRyaWJ1dGUpCiB7CiAgICAgV0tS
ZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250
ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBS
ZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihV
dGlsOjp0b1dLKCJNeUdyb3VwIikuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYzIGxv
YWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNs
aWVudCkpOwpAQCAtMTQzLDggKzE0Miw3IEBAIFRFU1QoV2ViS2l0LCBDb250ZXh0TWVudURvd25s
b2FkSFRNTERvd25sb2FkQXR0cmlidXRlV2l0aFNsYXNoZXMpCiB7CiAgICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0V2l0aElu
amVjdGVkQnVuZGxlKCkpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VH
cm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dL
KCJNeUdyb3VwIikuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0
LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYzIGxvYWRlckNsaWVu
dDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNv
bW1hbmRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNv
bW1hbmRzLm1tCmluZGV4IGY5YzBkMWZiZmM2MTcyNTUyM2JjNWY2MTM4NjE2NmQ2ZDI3M2ZiYTAu
LjJhNWEyYmQ2ZGY4ODVhNzUwYzdiYWJhMzllMGM3NzcyOWRjMmJhNWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0b3JDb21tYW5kcy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0K
QEAgLTQ1LDE0ICs0NSwxMyBAQCBURVNUKFdlYktpdCwgU2Nyb2xsQnlMaW5lQ29tbWFuZHMpCiB7
CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVDb250ZXh0V2l0aEluamVjdGVkQnVuZGxlKCkpOwogCisgICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQ
YWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKwogICAgIC8vIFR1cm4g
b2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFp
biB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCiAgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZv
cmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qg
c3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVm
PiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFi
bGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwotCisgICAgCiAgICAgV0tQYWdlTmF2aWdh
dGlvbkNsaWVudFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwg
c2l6ZW9mKGxvYWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCmluZGV4IDIxNTA1
MTBkNjUzOGEyZjMwOWIwZDNiZWRjOTE1YjgwZmI4MTk3Y2YuLmVhNzRlYTkzY2JmYzQzYjM2YjNj
YTc5Zjg4ZWMxYzgwODY0MGYzNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCkBAIC0xMTcsMTMg
KzExNywxMiBAQCBURVNUKEZ1bGxzY3JlZW4sIERlbGVnYXRlKQogVEVTVChGdWxsc2NyZWVuLCBX
S1ZpZXdEZWxlZ2F0ZSkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQg
PSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAg
ICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VH
cm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkZ1bGxzY3JlZW5EZWxlZ2F0ZSIp
LmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3Vw
R2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RnVs
bFNjcmVlbkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tQ
YWdlQ29uZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmln
dXJhdGlvbkNyZWF0ZSgpKTsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZl
cmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZChw
cmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7CisgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFByZWZl
cmVuY2VzKGNvbmZpZ3VyYXRpb24uZ2V0KCksIHByZWZlcmVuY2VzLmdldCgpKTsKICAgICBXS1Bh
Z2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBjb250ZXh0Lmdl
dCgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24u
Z2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CiAKICAgICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1ZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb25maWd1cmF0aW9uUmVmOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KaW5kZXggOTM5YzU3YjRkOGIy
Njc2NjRiY2QyYWI3NjRkNGQ4OGU2OTU5YzI3YS4uNDQ1ZGI3NTY2ZTA2MDdkOTg4YTU4Yjc4OWI3
OTBkYmRlZGMyY2Q1MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KQEAgLTIw
MSwxMyArMjAxLDEyIEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgQXVkaW9DYW5ub3RUb2dnbGVQ
aWN0dXJlSW5QaWN0dXJlKQogVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1BhZ2VVSUNsaWVudCkK
IHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29u
dGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1JldGFpblB0cjxX
S1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJ
ZGVudGlmaWVyKFV0aWw6OnRvV0soIlBpY3R1cmVJblBpY3R1cmUiKS5nZXQoKSkpOwotICAgIFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBh
Z2VHcm91cC5nZXQoKSk7CisgICAgCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZp
Z3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlv
bih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVl
bkVuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayhwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgCi0g
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgp
KTsKLSAgICAKKwogICAgIFdLUGFnZVVJQ2xpZW50VjEwIHVpQ2xpZW50OwogICAgIG1lbXNldCgm
dWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lv
biA9IDEwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XZWJzaXRlUG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYnNpdGVQb2xpY2llcy5tbQppbmRleCAyOTMyMTQwZDYzZjcxZGMwNzQ5MTM2ZTQ3MjM5
MDNmM2FkYjNmYjEwLi5kNzQxNDY2Y2Y4YTc5NzJiMjRjZWZkM2UwZGViN2FkODgyMGQ1MGMzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQ
b2xpY2llcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dl
YnNpdGVQb2xpY2llcy5tbQpAQCAtNzc5LDkgKzc3OSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVu
Y2VzLCBXZWJzaXRlUG9saWNpZXNBcmJpdHJhcnlVc2VyR2VzdHVyZVF1aXJrKQogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
IAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRX
SyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcyhwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBT
ZXRQcmVmZXJlbmNlcyhXS1BhZ2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5n
XSksIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5nZXQoKS5jb25m
aWd1cmF0aW9uLnByZWZlcmVuY2VzLCB0cnVlKTsKIAogICAgIFtkZWxlZ2F0ZSBzZXRBbGxvd2Vk
QXV0b3BsYXlRdWlya3NGb3JVUkw6Xl9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKE5TVVJMICp1cmwp
CiAgICAgewpAQCAtODEyLDkgKzgxMCw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJz
aXRlUG9saWNpZXNBdXRvcGxheVF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W0F1dG9wbGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNl
dE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxX
S1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0
ZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVy
ZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdl
R2V0UGFnZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQo
KSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRn
ZSBXS1ByZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNl
cywgdHJ1ZSk7CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3RXaXRoQXVkaW8gPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJhdXRvcGxheS1jaGVjayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogCkBAIC04NzAsOSArODY2LDcgQEAgVEVTVChX
ZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1BlckRvY3VtZW50QXV0b3BsYXlCZWhh
dmlvclF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9wbGF5UG9saWNp
ZXNEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxl
Z2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVm
PiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBXS1By
ZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMuZ2V0KCksIHRy
dWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFt3
ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7CisgICAgV0tQcmVm
ZXJlbmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1ByZWZlcmVuY2Vz
UmVmKXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAg
ICByZWNlaXZlZEF1dG9wbGF5RXZlbnQgPSBXVEY6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRp
b24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNjcm9s
bGluZ1Bvc2l0aW9uLm1tCmluZGV4IDUzZmNjODk5ZTgwNGQzMjJiYWY5ODcwOTJiYjNmOTQ3ZWY3
NDBiNjcuLjJmNDBhODM0ODYxYzVlY2I3NjZmNWRmMzA1ZmJkMDQ1MTBiOTU4ZDcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5n
UG9zaXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNw
b25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbQpAQCAtNDUsMTggKzQ1LDE3IEBAIFRFU1QoV2ViS2l0
LCBGaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uKQogewogICAgIFdLUmV0YWluUHRyPFdL
Q29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmpl
Y3RlZEJ1bmRsZSgpKTsKIAotICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3lu
Y2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRv
Ci0gICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIs
IGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5Lgot
ICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFn
ZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGlu
Z1BhZ2VHcm91cCIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9
IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZl
cmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0K
ICAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKQogICAgICAg
ICBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3Jl
QnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBbd2luZG93LmdldCgpIG1ha2VLZXlBbmRPcmRlckZy
b250Om5pbF07CiAgICAgRVhQRUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2libGVdKTsKIAot
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQo
KSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJl
bmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkp
LmdldCgpKTsKKworICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25v
dXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCisgICAg
Ly8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBm
b3Igc29tZSByZWFzb24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgorICAgIFdL
UHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNl
KTsKIAogICAgIFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVt
c2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKQEAgLTgyLDcgKzgx
LDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24pCiAKICAg
ICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJ3aW5kb3cuc2Nyb2xsWSIsICI0MCIpOwog
Ci0gICAgUGxhdGZvcm1XZWJWaWV3IG5ld1dlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3Vw
LmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhjb250ZXh0LmdldCgpKTsK
ICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChuZXdXZWJWaWV3LnBhZ2UoKSwgJmxv
YWRlckNsaWVudC5iYXNlKTsKIAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3Vi
dmlldzpuZXdXZWJWaWV3LnBsYXRmb3JtVmlldygpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KaW5k
ZXggNjA1NWQ4ZDIzMTFmY2Y4NmI0Mjk0OTMzMTcwZWQ0MWUxZDFhYWU2Ni4uZmIwYWE5YTc3MDg5
YmNiYjBkZWY1N2EzYmQ2ZmZmODk5NTUyNDIwMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KQEAg
LTEyMCw5ICsxMjAsOCBAQCB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjppbml0aWFs
aXplVmlldyhXS1ZpZXcgKndrVmlldykKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2tWaWV3
LnBhZ2VSZWYsICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBpZGVudGlmaWVyID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRnVs
bHNjcmVlblpvb21Jbml0aWFsRnJhbWVQcmVmZXJlbmNlcyIpKTsKLSAgICBXS1JldGFpblB0cjxX
S1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNl
c0NyZWF0ZVdpdGhJZGVudGlmaWVyKGlkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0
cjxXS1ByZWZlcmVuY2VzUmVmPiBjdXN0b21QcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRp
b25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3a1Zp
ZXcucGFnZVJlZikpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJs
ZWQoY3VzdG9tUHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJl
ZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHdrVmlldy5wYWdlUmVmKSwgY3VzdG9tUHJlZmVy
ZW5jZXMuZ2V0KCkpOwogfQogCiB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjp0ZWFy
ZG93blZpZXcoV0tWaWV3ICp3a1ZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxh
dGZvcm1XZWJWaWV3R3RrLmNwcAppbmRleCAzMGNjODQ1MTRjM2JlZjU0YThlMmNjNjk5ZDg5MGJh
OTMzNmFhY2UzLi41NzM5ZmFmZTNkZmQ5M2RhNzgyOWY0YmIyOGJjODNkZTYxYjA0Y2FmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKQEAgLTM2
LDExICszNiwxMCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLVBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91
cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0Nv
bnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0
aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRl
KCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0
KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoY29u
ZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAgIGluaXRpYWxpemUoY29uZmln
dXJhdGlvbi5nZXQoKSk7CiB9CkBAIC01NCw3ICs1Myw2IEBAIFBsYXRmb3JtV2ViVmlldzo6UGxh
dGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsKICAgICBXS1JldGFpblB0cjxX
S1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25m
aWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNv
bmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVsYXRlZFBhZ2UpKTsKLSAgICBX
S1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFn
ZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRS
ZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVkUGFnZSk7CiAKICAgICBpbml0
aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMv
UGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IDYzNjY4OTE4YWQzMmY3MTJkZTg3YWUzZWQxYjQw
MTFmN2FiN2I5ZTIuLmU1MWRlNzY5MGQ1ZGE1NWJjYmVhYjU2ZTk5MzY5YWNkYTk2YmY3YmUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTQ4
LDEzICs0OCwxMiBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9u
LCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQ
bGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikK
IHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9u
ID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwotICAgIAorCiAgICAgV0tQ
YWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dFJl
Zik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9uLmdl
dCgpLCBwYWdlR3JvdXBSZWYpOwotICAgIAorCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9u
LmdldCgpLCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKQEAgLTYzLDIyICs2MiwxMSBAQCBQbGF0Zm9y
bVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VSZWYgcmVsYXRlZFBhZ2UpCiAgICAgV0tS
ZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9IGFkb3B0V0so
V0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAgICAKICAgICBXS1BhZ2VDb25maWd1cmF0
aW9uU2V0Q29udGV4dChjb25maWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VHZXRDb250ZXh0KHJlbGF0
ZWRQYWdlKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0
aW9uLmdldCgpLCBXS1BhZ2VHZXRQYWdlR3JvdXAocmVsYXRlZFBhZ2UpKTsKICAgICBXS1BhZ2VD
b25maWd1cmF0aW9uU2V0UmVsYXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSwgcmVsYXRlZFBh
Z2UpOwogCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdldCgpLCBbV0tWaWV3IGNsYXNz
XSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIENsYXNzIHdrVmlld1N1YmNs
YXNzKQotewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7Ci0gICAgCi0gICAg
V0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4
dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9u
LmdldCgpLCBwYWdlR3JvdXBSZWYpOwotICAgIAotICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlv
bi5nZXQoKSwgd2tWaWV3U3ViY2xhc3MpOwotfQotCiBQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9y
bVdlYlZpZXcoKQogewogICAgIFttX3dpbmRvdyBjbG9zZV07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcAppbmRleCBmYmQ3YzA5M2JhMTUzMDQzNjQz
ZGRmMzQ4YTRkYmEzN2M3ZmE1M2I0Li4xNTA5ZjI4YWQyZDI1ZjlhODQ3ODFiYTJkNDQ1YTkzZWVm
YjQ2M2MxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZp
ZXdXaW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3JtV2ViVmlld1dp
bi5jcHAKQEAgLTU3LDExICs1NywxMCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVnaXN0ZXJX
aW5kb3dDbGFzcygpCiAgICAgOjpSZWdpc3RlckNsYXNzRXhXKCZ3bmRDbGFzcyk7CiB9CiAKLVBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2Vi
VmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VD
b25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0
aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdl
R3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAgIGluaXRpYWxp
emUoY29uZmlndXJhdGlvbi5nZXQoKSk7CiB9CkBAIC03NSw3ICs3NCw2IEBAIFBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsKICAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhX
S1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRD
b250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVsYXRlZFBhZ2Up
KTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0
KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVkUGFnZSk7CiAK
ICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKaW5kZXggOGNjM2I3MWE3MzIxODIzM2Y0
MDRhOTQxNjJmZTA1ODVhODY3MjBmMi4uMjc5ZDllNmViOWY3YWEwMjQ0NDUyNWQyZWMxNmNkM2U4
YmM5NWUzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJW
aWV3V1BFLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVdlYlZpZXdX
UEUuY3BwCkBAIC0zMiwxMiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewog
Ci1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQorUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9y
bVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiAgICAgOiBtX3dpbmRvdyhudWxscHRy
KQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRp
b24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAgV0tQYWdlQ29u
ZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dFJlZik7Ci0g
ICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9uLmdldCgpLCBw
YWdlR3JvdXBSZWYpOwogCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdldCgpKTsKIH0K
QEAgLTUzLDcgKzUyLDYgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdl
UmVmIHJlbGF0ZWRQYWdlKQogewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25S
ZWY+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7
CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwg
V0tQYWdlR2V0Q29udGV4dChyZWxhdGVkUGFnZSkpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25T
ZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwgV0tQYWdlR2V0UGFnZUdyb3VwKHJlbGF0
ZWRQYWdlKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFJlbGF0ZWRQYWdlKGNvbmZpZ3Vy
YXRpb24uZ2V0KCksIHJlbGF0ZWRQYWdlKTsKIAogICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlv
bi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IGE1NWZhMGUyNGM3YzcwOWViNGRhMmFmMWFkMTlkZjZhMWUyMDAwY2UuLmJhZTAyYjc2MWZjYTZj
MWJiYTIzMTc1OWEwMGFiYTVkNDc5YjA0MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC01NDksOCArNTQ5LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIFdlYkNvcmVUZXN0
U3VwcG9ydDo6aW5zdGFsbE1vY2tHYW1lcGFkUHJvdmlkZXIoKTsKICNlbmRpZgogCi0gICAgbV9w
YWdlR3JvdXAuYWRvcHQoV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcih0b1dLKCJXZWJL
aXRUZXN0UnVubmVyUGFnZUdyb3VwIikuZ2V0KCkpKTsKLQogICAgIG1fZXZlbnRTZW5kZXJQcm94
eSA9IG1ha2VVbmlxdWU8RXZlbnRTZW5kZXJQcm94eT4odGhpcyk7CiB9CiAKQEAgLTY3OCw3ICs2
NzYsNiBAQCBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0Q29udHJvbGxl
cjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjbwogCiAgICAgYXV0byBwYWdlQ29uZmlndXJh
dGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAgICBXS1BhZ2VD
b25maWd1cmF0aW9uU2V0Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgbV9jb250ZXh0
LmdldCgpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKHBhZ2VDb25maWd1
cmF0aW9uLmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSk7CiAgICAgCiAgICAgaWYgKG9wdGlvbnMu
dXNlRXBoZW1lcmFsU2Vzc2lvbigpKSB7CiAgICAgICAgIGF1dG8gZXBoZW1lcmFsRGF0YVN0b3Jl
ID0gYWRvcHRXSyhXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0b3Jl
KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGMxNDk1YTIw
MGJmYjg3ZjRkNjFlN2NlYzM5ZDkzYWYxMTJhZTFjMGMuLjlhNjZiZDQ5MjFlZGQyZmQzMzAxNjNm
NDAwMGEwMjI2Y2FkMDA0ZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKQEAgLTU1NSw3ICs1NTUsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmlldzsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRS
ZWY+IG1fY29udGV4dDsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gbV9wYWdlR3Jv
dXA7CiAgICAgV0tSZXRhaW5QdHI8V0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWY+IG1fdXNlckNv
bnRlbnRDb250cm9sbGVyOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCAxMTRjN2E4
MTJkNzZhYmQ5YThhOGVkNTE2ODQ3MWMwYjVmZDcxMTI0Li5hYjBiMjQ3NDAwZjNkMWYzODI1NjNl
MDdjNWExNjhmNzcxNjk3YTgzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0
ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsv
VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAKIFdLUHJlZmVyZW5jZXNSZWYgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQogewotICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKKyAgICByZXR1cm4gV0tQYWdlQ29uZmlndXJh
dGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKG1f
bWFpbldlYlZpZXctPnBhZ2UoKSkpLmdldCgpKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1EZXN0cm95KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2lu
L1Rlc3RDb250cm9sbGVyV2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RD
b250cm9sbGVyV2luLmNwcAppbmRleCAwMjczN2JkYTc5NTA0ODIwOTJjOWE5OWExNjlmOTk4ZDEx
YzYxNjkwLi5hYzcyNDdkZTUzNTUxNzhiNWNhYmNmMDIyNmM2NjYyNGYyOWVkNzRiIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdENvbnRyb2xs
ZXIuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXaW5CYXNlLmg+CiAjaW5jbHVkZSA8ZmNudGwu
aD4KQEAgLTM2LDcgKzM3LDYgQEAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KIAotCiAjZGVmaW5lIElOSkVDVEVEX0JVTkRMRV9ETExfTkFNRSAiVGVzdFJ1
bm5lckluamVjdGVkQnVuZGxlLmRsbCIKIAogbmFtZXNwYWNlIFdUUiB7CkBAIC0xMjEsNyArMTIx
LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIAogV0tQcmVm
ZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygpCiB7Ci0gICAg
cmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0KCkpOworICAg
IHJldHVybiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VD
b3B5UGFnZUNvbmZpZ3VyYXRpb24obV9tYWluV2ViVmlldy0+cGFnZSgpKSkuZ2V0KCkpOwogfQog
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCmluZGV4IGY0N2IwZGY5ODZk
MTU2MzdmNDMwMGM4YjA3MTYzYTllOTYzMmE0MjUuLjUwMTEwY2Q0ODUzNTcyZjU3OWMxNDBjZjM4
YzhjNDdkOGE4MGY0NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rl
c3RDb250cm9sbGVyV1BFLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0
Q29udHJvbGxlcldQRS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3
LmgiCiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgpAQCAtNDcsNyArNDgsNyBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogCiBXS1ByZWZlcmVuY2VzUmVmIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVByZWZlcmVuY2VzKCkKIHsKLSAgICByZXR1cm4gV0tQYWdlR3JvdXBH
ZXRQcmVmZXJlbmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7CisgICAgcmV0dXJuIFdLUGFnZUNvbmZp
Z3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlv
bihtX21haW5XZWJWaWV3LT5wYWdlKCkpKS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtRGVzdHJveSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447477</attachid>
            <date>2021-12-17 14:30:18 -0800</date>
            <delta_ts>2021-12-17 20:29:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225724-20211217143017.patch</filename>
            <type>text/plain</type>
            <size>81907</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkNzU5NWY2OTBmZWZhYjQz
YmM0MDMxZWUwYzhjMTU2YzdkZGY5MDcuLjY1NThmMWRhY2IyYWJmMGYyODg3MmM2OGUwMmQxNzQx
ODMxZGVhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMTItMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYXMg
bXVjaCBvZiBXS1BhZ2VHcm91cFJlZiBhcyBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgIFRoZXJlIGFyZSB0d28gcHJvamVjdHMgc3RpbGwgdXNp
bmcgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllciBhbmQgV0tQYWdlR3JvdXBHZXRQcmVm
ZXJlbmNlcy4KKyAgICAgICAgVGhlcmUgaXMgb25lIHByb2plY3Qgc3RpbGwgdXNpbmcgV0tCcm93
c2luZ0NvbnRleHRHcm91cC4KKyAgICAgICAgSSBsZWZ0IHRoZXNlIGRlcHJlY2F0ZWQgYnV0IHN0
aWxsIGZ1bmN0aW9uYWwgYW5kIG5vdGVkIHJhZGFycyBmb3Igd2hlbiB0aGV5IGNhbiBhbHNvIGJl
IHJlbW92ZWQuCisKKyAgICAgICAgVGhlIHJlc3Qgb2YgdGhlIEFQSSBpcyByZW1vdmVkLiAgU29t
ZSBvZiBpdCB3YXMgbW92ZWQgdG8gYW4gaW50ZXJuYWwtb25seSBoZWFkZXIgdG8gbGVhdmUgV0tC
cm93c2luZ0NvbnRleHRHcm91cCB1bnRvdWNoZWQuCisgICAgICAgIExvdHMgb2YgdGVzdHMgYXJl
IHVwZGF0ZWQgdG8gc2V0IHByZWZlcmVuY2VzIGxpa2UgdGhlIG1vZGVybiBBUEkgZG9lcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlR2V0
UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuY3BwOgor
ICAgICAgICAoV0tQYWdlQ29uZmlndXJhdGlvbkdldFBhZ2VHcm91cCk6IERlbGV0ZWQuCisgICAg
ICAgIChXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHA6CisgICAgICAgIChXS1BhZ2VHcm91cEdldFR5
cGVJRCk6IERlbGV0ZWQuCisgICAgICAgIChXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50Q29udHJv
bGxlcik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwSW50ZXJuYWwuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAubW06CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF9wYWdlR3JvdXBdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfc2V0UGFnZUdyb3VwOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0xMi0xNyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBBUEk6Ok9i
amVjdDo6VHlwZTo6QnVuZGxlUGFnZUdyb3VwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAppbmRleCBiZmQ1ZjMwMTEzYmJiNjg4YjcwMzA1ZDk4NjJiMjExYWIyYWUwNzMz
Li4yM2ZkYWE1ZDljMGFhZjAwYTM3ZDE0ODM0M2ZlODQ3NGNkYzNlYWU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE2MiwxMSArMTYyLDYgQEAgV0tDb250
ZXh0UmVmIFdLUGFnZUdldENvbnRleHQoV0tQYWdlUmVmIHBhZ2VSZWYpCiAgICAgcmV0dXJuIHRv
QVBJKCZ0b0ltcGwocGFnZVJlZiktPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpKTsKIH0KIAotV0tQ
YWdlR3JvdXBSZWYgV0tQYWdlR2V0UGFnZUdyb3VwKFdLUGFnZVJlZiBwYWdlUmVmKQotewotICAg
IHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VSZWYpLT5wYWdlR3JvdXAoKSk7Ci19Ci0KIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYgV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKFdLUGFnZVJlZiBw
YWdlUmVmKQogewogICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHBhZ2VSZWYpLT5jb25maWd1cmF0
aW9uKCkuY29weSgpLmxlYWtSZWYoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oCmluZGV4IGM1MWI4MTYyYzg5NzM0YWIxNTJiZWYwZTk5MjMzN2Q1NWYyZGU4YTYuLjI0ZTg3
OGYzMTBiYWNhYjI5YjdlMDkxZTU1ZjZiMzEyMjg1MWFmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC01OCw3ICs1OCw2IEBAIGV4dGVybiAiQyIgewogV0tfRVhQ
T1JUIFdLVHlwZUlEIFdLUGFnZUdldFR5cGVJRCh2b2lkKTsKIAogV0tfRVhQT1JUIFdLQ29udGV4
dFJlZiBXS1BhZ2VHZXRDb250ZXh0KFdLUGFnZVJlZiBwYWdlKTsKLVdLX0VYUE9SVCBXS1BhZ2VH
cm91cFJlZiBXS1BhZ2VHZXRQYWdlR3JvdXAoV0tQYWdlUmVmIHBhZ2UpOwogCiBXS19FWFBPUlQg
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24oV0tQYWdl
UmVmIHBhZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuY3BwCmluZGV4IDc5YmVkMWZkMWVjZTg4ODNiYmI0ODQ1
OTRiNjc5MWM2ODU1YjAxY2IuLmI1MDYyN2UyMWYzZTM0ZTA4ZGQ1M2FmZDM2OTNmZWYzOGIzZTA5
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZp
Z3VyYXRpb25SZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYuY3BwCkBAIC01NSwxNiArNTUsNiBAQCB2b2lkIFdLUGFnZUNvbmZp
Z3VyYXRpb25TZXRDb250ZXh0KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwg
V0tDb250ZQogICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0UHJvY2Vzc1Bvb2wodG9JbXBs
KGNvbnRleHQpKTsKIH0KIAotV0tQYWdlR3JvdXBSZWYgV0tQYWdlQ29uZmlndXJhdGlvbkdldFBh
Z2VHcm91cChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCi17Ci0gICAgcmV0
dXJuIHRvQVBJKHRvSW1wbChjb25maWd1cmF0aW9uKS0+cGFnZUdyb3VwKCkpOwotfQotCi12b2lk
IFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBj
b25maWd1cmF0aW9uLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApCi17Ci0gICAgdG9JbXBsKGNv
bmZpZ3VyYXRpb24pLT5zZXRQYWdlR3JvdXAodG9JbXBsKHBhZ2VHcm91cCkpOwotfQotCiBXS1Vz
ZXJDb250ZW50Q29udHJvbGxlclJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0VXNlckNvbnRlbnRD
b250cm9sbGVyKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKIHsKICAgICBy
ZXR1cm4gdG9BUEkodG9JbXBsKGNvbmZpZ3VyYXRpb24pLT51c2VyQ29udGVudENvbnRyb2xsZXIo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25m
aWd1cmF0aW9uUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25m
aWd1cmF0aW9uUmVmLmgKaW5kZXggMjc3YzA2NjFmMjYzMmFkODk1OTI2ZmY5YmFkNGIwYTdjNTY0
MWUxMS4uNzAyMDM2OGE3ZDEyYzM2M2E2ZDI2Y2QxYzdhZjFhNTM1NDNkYWI5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25S
ZWYuaApAQCAtMzksOSArMzksNiBAQCBXS19FWFBPUlQgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBX
S1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKHZvaWQpOwogV0tfRVhQT1JUIFdLQ29udGV4dFJlZiBX
S1BhZ2VDb25maWd1cmF0aW9uR2V0Q29udGV4dChXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZp
Z3VyYXRpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRleHQo
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS0NvbnRleHRSZWYgY29udGV4
dCk7CiAKLVdLX0VYUE9SVCBXS1BhZ2VHcm91cFJlZiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UGFn
ZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7Ci1XS19FWFBPUlQg
dm9pZCBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKFdLUGFnZUNvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKLQogV0tfRVhQT1JU
IFdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29u
dGVudENvbnRyb2xsZXIoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRVc2VyQ29udGVudENvbnRyb2xsZXIo
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1VzZXJDb250ZW50Q29udHJv
bGxlclJlZiB1c2VyQ29udGVudENvbnRyb2xsZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKaW5kZXggNjUxNGVlODZkZTNhODQxNDQ4MzdkZjYy
ZmMxMDEzZDIzY2FhMzVhOS4uOTgwZjNmYzBlZWNhNjhiN2Q2NzI0NTRjNWUwNjE1Y2VmYjY5Y2Uz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcApA
QCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
S1BhZ2VHcm91cC5oIgorI2luY2x1ZGUgIldLUGFnZUdyb3VwSW50ZXJuYWwuaCIKIAogI2luY2x1
ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJQ29udGVudFJ1bGVMaXN0LmgiCkBAIC00MCwx
MSArNDAsNiBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1XS1R5cGVJRCBXS1BhZ2VH
cm91cEdldFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvQVBJKFdlYlBhZ2VHcm91cDo6QVBJVHlw
ZSk7Ci19Ci0KIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIo
V0tTdHJpbmdSZWYgaWRlbnRpZmllcikKIHsKICAgICBhdXRvIHBhZ2VHcm91cCA9IFdlYlBhZ2VH
cm91cDo6Y3JlYXRlKHRvV1RGU3RyaW5nKGlkZW50aWZpZXIpKTsKQEAgLTYxLDExICs1Niw2IEBA
IFdLUHJlZmVyZW5jZXNSZWYgV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhXS1BhZ2VHcm91cFJl
ZiBwYWdlR3JvdXBSZWYpCiAgICAgcmV0dXJuIHRvQVBJKCZ0b0ltcGwocGFnZUdyb3VwUmVmKS0+
cHJlZmVyZW5jZXMoKSk7CiB9CiAKLVdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmIFdLUGFnZUdy
b3VwR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikK
LXsKLSAgICByZXR1cm4gdG9BUEkoJnRvSW1wbChwYWdlR3JvdXBSZWYpLT51c2VyQ29udGVudENv
bnRyb2xsZXIoKSk7Ci19Ci0KIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVldChXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFdLU3RyaW5nUmVmIHNvdXJjZVJlZiwgV0tVUkxSZWYg
YmFzZVVSTFJlZiwgV0tBcnJheVJlZiBhbGxvd2VkVVJMUGF0dGVybnMsIFdLQXJyYXlSZWYgYmxv
Y2tlZFVSTFBhdHRlcm5zLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFt
ZXMpCiB7CiAgICAgYXV0byBzb3VyY2UgPSB0b1dURlN0cmluZyhzb3VyY2VSZWYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmgKaW5kZXggNjNhMTNmN2Q3NTIx
OGJmN2UyZWJkMDNlZmEwNDViNTY5ZjM4MTBlMi4uMDU2M2VkNzVlMmQ5YzQ2NTYwZDRhYzM3M2Y4
ZjIyYjkyOTA1NjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VH
cm91cC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdLUGFnZUdyb3VwX2gKIAogI2luY2x1
ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNhdGVkLmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CiAKQEAgLTM0LDIwICszNSwxMCBA
QAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotV0tfRVhQT1JUIFdLVHlwZUlEIFdLUGFnZUdyb3Vw
R2V0VHlwZUlEKHZvaWQpOworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGZpbGUgb25jZSByZGFyOi8v
Nzc5Mzk1OTcgYW5kIHJkYXI6Ly83NzkzOTg4MyBhcmUgcmVzb2x2ZWQuCiAKLVdLX0VYUE9SVCBX
S1BhZ2VHcm91cFJlZiBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nUmVm
IGlkZW50aWZpZXIpOwotCi1XS19FWFBPUlQgdm9pZCBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2Vz
KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7
Ci1XS19FWFBPUlQgV0tQcmVmZXJlbmNlc1JlZiBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKFdL
UGFnZUdyb3VwUmVmIHBhZ2VHcm91cCk7Ci0KLVdLX0VYUE9SVCBXS1VzZXJDb250ZW50Q29udHJv
bGxlclJlZiBXS1BhZ2VHcm91cEdldFVzZXJDb250ZW50Q29udHJvbGxlcihXS1BhZ2VHcm91cFJl
ZiBwYWdlR3JvdXApOwotCi1XS19FWFBPUlQgdm9pZCBXS1BhZ2VHcm91cEFkZFVzZXJTdHlsZVNo
ZWV0KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tTdHJpbmdSZWYgc291cmNlLCBXS1VSTFJl
ZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0ZXJucywgV0tBcnJheVJlZiBibG9j
a2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyk7Ci1XS19FWFBPUlQg
dm9pZCBXS1BhZ2VHcm91cFJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXApOwotICAgIAotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU2NyaXB0
KFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgV0tTdHJpbmdSZWYgc291cmNlLCBXS1VSTFJlZiBi
YXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0ZXJucywgV0tBcnJheVJlZiBibG9ja2Vk
VVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcywgX1dLVXNlclNjcmlwdElu
amVjdGlvblRpbWUpOwotV0tfRVhQT1JUIHZvaWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU2Ny
aXB0cyhXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXApOworV0tfRVhQT1JUIFdLUGFnZUdyb3VwUmVm
IFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdSZWYgaWRlbnRpZmllcikg
V0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyk7CitXS19FWFBPUlQgV0tQcmVmZXJlbmNlc1JlZiBXS1BhZ2VHcm91cEdl
dFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCkgV0tfQ19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyk7CiAK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlR3JvdXBJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YTA5NjJiODY0MGNmMzVh
YTA3MTdiNzFmYjE3NGQzMjhkZDYyZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cEludGVybmFsLmgKQEAgLTAsMCArMSwzNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
ZmlsZSBvbmNlIHJkYXI6Ly83NDE0Mjk5NSBpcyByZXNvbHZlZC4KKwordm9pZCBXS1BhZ2VHcm91
cFNldFByZWZlcmVuY2VzKFdLUGFnZUdyb3VwUmVmLCBXS1ByZWZlcmVuY2VzUmVmKTsKK3ZvaWQg
V0tQYWdlR3JvdXBBZGRVc2VyU3R5bGVTaGVldChXS1BhZ2VHcm91cFJlZiwgV0tTdHJpbmdSZWYg
c291cmNlLCBXS1VSTFJlZiBiYXNlVVJMLCBXS0FycmF5UmVmIGFsbG93ZWRVUkxQYXR0ZXJucywg
V0tBcnJheVJlZiBibG9ja2VkVVJMUGF0dGVybnMsIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cyk7Cit2b2lkIFdLUGFnZUdyb3VwUmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKFdLUGFnZUdyb3Vw
UmVmKTsKK3ZvaWQgV0tQYWdlR3JvdXBBZGRVc2VyU2NyaXB0KFdLUGFnZUdyb3VwUmVmLCBXS1N0
cmluZ1JlZiBzb3VyY2UsIFdLVVJMUmVmIGJhc2VVUkwsIFdLQXJyYXlSZWYgYWxsb3dlZFVSTFBh
dHRlcm5zLCBXS0FycmF5UmVmIGJsb2NrZWRVUkxQYXR0ZXJucywgV0tVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzLCBfV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7Cit2b2lkIFdLUGFnZUdyb3Vw
UmVtb3ZlQWxsVXNlclNjcmlwdHMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRHcm91cC5oCmluZGV4IDY2OTIzMGY1Y2I2YTAzNTJjOTAyNWY5MWRlNjY4ZTM2MGE4NTkzYjYu
LmE2Y2RjNDFhNDEyZjdkYmRkYjNmZTg0MzNhNDFkN2IwZWMzMjA0MmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
R3JvdXAuaApAQCAtMjgsNiArMjgsOCBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCisvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgZmlsZSBvbmNlIHJkYXI6Ly83NDE0Mjk5NSBpcyByZXNvbHZlZC4K
KwogV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1VzZXJDb250ZW50Q29u
dHJvbGxlciBhbmQgV0tQcmVmZXJlbmNlcyIsIG1hY29zKDEwLjEwLCAxMC4xNC40KSwgaW9zKDgu
MCwgMTIuMikpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0R3JvdXAgOiBOU09iamVjdAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRHcm91cC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLm1tCmluZGV4IDhmNDFiMTIyNzQwNGRlMjY4MzkyZjI0OTg1YjBl
MjU1ZTMzMWVkYjAuLjc5NGNmMWZhZjM4ZDI2MTU4ZWYyZjg5OWRiN2ViZjA1NjRhODkyNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dEdyb3VwLm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0ICJBUElTdHJp
bmcuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tBcnJheS5oIgotI2ltcG9y
dCAiV0tQYWdlR3JvdXAuaCIKKyNpbXBvcnQgIldLUGFnZUdyb3VwSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldLUHJlZmVyZW5jZXNSZWYuaCIKICNpbXBvcnQgIldLUmV0YWluUHRyLmgiCiAjaW1wb3J0
ICJXS1NoYXJlZEFQSUNhc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IGNlOTYzZjFkM2I4ZDAzOWQ4YzQ0OTZiYzUwMThmMmQ1ODc0
ZDM2ZmEuLjExYzg0MDg0ZWQ0Y2RmZTYwMmE3ZWExMjhjMjc1NGE3ZjM0ZTllMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDU3LDE2
ICs0NTcsOSBAQCBzdGF0aWMgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdl
ZENhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLAogICAgIHBhZ2VDb25maWd1cmF0aW9u
LT5zZXRXZWJzaXRlRGF0YVN0b3JlKFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXS0+
X3dlYnNpdGVEYXRhU3RvcmUuZ2V0KCkpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXREZWZh
dWx0V2Vic2l0ZVBvbGljaWVzKFtfY29uZmlndXJhdGlvbiBkZWZhdWx0V2VicGFnZVByZWZlcmVu
Y2VzXS0+X3dlYnNpdGVQb2xpY2llcy5nZXQoKSk7CiAKLSNpZiBQTEFURk9STShNQUMpCi0gICAg
aWYgKGF1dG8gcGFnZUdyb3VwID0gV2ViS2l0Ojp0b0ltcGwoW19jb25maWd1cmF0aW9uIF9wYWdl
R3JvdXBdKSkKLSAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFBhZ2VHcm91cChwYWdlR3Jv
dXApOwotICAgIGVsc2UKLSNlbmRpZgotICAgIHsKLSAgICAgICAgTlNTdHJpbmcgKmdyb3VwSWRl
bnRpZmllciA9IFtfY29uZmlndXJhdGlvbiBfZ3JvdXBJZGVudGlmaWVyXTsKLSAgICAgICAgaWYg
KGdyb3VwSWRlbnRpZmllci5sZW5ndGgpCi0gICAgICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0UGFnZUdyb3VwKFdlYktpdDo6V2ViUGFnZUdyb3VwOjpjcmVhdGUoZ3JvdXBJZGVudGlmaWVy
KS5wdHIoKSk7Ci0gICAgfQorICAgIE5TU3RyaW5nICpncm91cElkZW50aWZpZXIgPSBbX2NvbmZp
Z3VyYXRpb24gX2dyb3VwSWRlbnRpZmllcl07CisgICAgaWYgKGdyb3VwSWRlbnRpZmllci5sZW5n
dGgpCisgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQ
YWdlR3JvdXA6OmNyZWF0ZShncm91cElkZW50aWZpZXIpLnB0cigpKTsKIAogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLT5zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyhtYWtlVmVjdG9yPFN0
cmluZz4oW19jb25maWd1cmF0aW9uIF9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlc10pKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA1OTc0YTljOTc2YjBmNTI1MDQ4YzBmODdiMWRl
MDc5NmE2MGVlMmRjLi4xMDUwYzM4YTZkMmQ1NDU3YTFkZWQ3ZDU1YjZhMTlkMWY1Yzk4MWQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtMTU0LDcgKzE1NCw2IEBAIHN0YXRpYyBib29sIGRl
ZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiAg
ICAgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDsKIAogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gX3BhZ2VHcm91cDsK
ICAgICBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBzOwogICAgIEJPT0wgX3NlcnZpY2VDb250cm9s
c0VuYWJsZWQ7CiAgICAgQk9PTCBfaW1hZ2VDb250cm9sc0VuYWJsZWQ7CkBAIC00MjgsNyArNDI3
LDYgQEAgc3RhdGljIGJvb2wgZGVmYXVsdFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdR
dWlja0xvb2tQcmV2aWV3KCkKICAgICBjb25maWd1cmF0aW9uLT5fc2hvd3NVUkxzSW5Ub29sVGlw
cyA9IHNlbGYtPl9zaG93c1VSTHNJblRvb2xUaXBzOwogICAgIGNvbmZpZ3VyYXRpb24tPl9zZXJ2
aWNlQ29udHJvbHNFbmFibGVkID0gc2VsZi0+X3NlcnZpY2VDb250cm9sc0VuYWJsZWQ7CiAgICAg
Y29uZmlndXJhdGlvbi0+X2ltYWdlQ29udHJvbHNFbmFibGVkID0gc2VsZi0+X2ltYWdlQ29udHJv
bHNFbmFibGVkOwotICAgIGNvbmZpZ3VyYXRpb24tPl9wYWdlR3JvdXAgPSBzZWxmLl9wYWdlR3Jv
dXA7CiAjZW5kaWYKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgY29uZmlndXJhdGlvbi0+X2RhdGFEZXRlY3RvclR5cGVzID0gc2VsZi0+X2Rh
dGFEZXRlY3RvclR5cGVzOwpAQCAtMTE2NiwxNiArMTE2NCw2IEBAIHN0YXRpYyBXZWJLaXQ6OkF0
dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nIHRvQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcoX1dL
QXR0cmliCiAgICAgX3BhZ2VDb25maWd1cmF0aW9uLT5zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JF
ZGl0aW5nQ29udHJvbHNNYW5hZ2VyKHJlcXVpcmVzVXNlckFjdGlvbik7CiB9CiAKLS0gKFdLUGFn
ZUdyb3VwUmVmKV9wYWdlR3JvdXAKLXsKLSAgICByZXR1cm4gX3BhZ2VHcm91cC5nZXQoKTsKLX0K
LQotLSAodm9pZClfc2V0UGFnZUdyb3VwOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXAKLXsKLSAg
ICBfcGFnZUdyb3VwID0gcGFnZUdyb3VwOwotfQotCiAtICh2b2lkKV9zZXRDUFVMaW1pdDooZG91
YmxlKWNwdUxpbWl0CiB7CiAgICAgX3BhZ2VDb25maWd1cmF0aW9uLT5zZXRDUFVMaW1pdChjcHVM
aW1pdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDgxMzY1NTdjMWZh
YTU2NDA5YzkwZThjNGFjZTVmMTIyMjJjNTI4YmIuLmQyMmNiNjBjNzFlYzFmZWYwNzVhMTgzMzVk
MjIzYjJiOTQ0NmFjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0x
MDgsNyArMTA4LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0F0dHJpYnV0aW9u
T3ZlcnJpZGVUZXN0aW5nKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbWFn
ZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0
ZSwgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2Vy
OikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdy
aXRlLCBzZXR0ZXI9X3NldENQVUxpbWl0OikgZG91YmxlIF9jcHVMaW1pdCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNl
dHRlcj1fc2V0UGFnZUdyb3VwOikgV0tQYWdlR3JvdXBSZWYgX3BhZ2VHcm91cCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c3Ryb25nLCBzZXR0ZXI9X3NldFdlYnNpdGVEYXRhU3RvcmU6KSBfV0tXZWJzaXRlRGF0YVN0b3Jl
ICpfd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3
ZWJzaXRlRGF0YVN0b3JlIiwgbWFjb3MoMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4wKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBm
Yjg2OGFkNDBhMGRkNWY2YjMxZGE0MzM5YTVjMzVlMDE4MDRjNDQzLi5iNGEwMjg0M2YwYmE2YWFm
MDg4NTQ1YzRlYThiNGU5MTYyZGFjZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMjcsNiArMTIyNyw3IEBACiAJCTVDNkU3RDg4
MjMyMzYyMDUwMEMyMTU5RCAvKiBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzZFN0Q4NjIz
MjM2MUU3MDBDMjE1OUQgLyogV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDNzk1RDcw
MjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTBDMzY5MjI5RjJENEEwMDM2
OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTVDNzk1RDcxMjI5RjM3NTcwMDNGRjFDNCAvKiBX
S0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0UwQzM2QTIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTVDN0RGNERCMjc2RDM5MjcwMDhFNTUzNCAvKiBXS1BhZ2VH
cm91cEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzdERjREQTI3NkQzOTI2MDA4RTU1MzQgLyogV0tQYWdlR3JvdXBJbnRlcm5hbC5oICov
OyB9OwogCQk1QzdGQjQ3MDIxRTk3REM1MDA5RTMyNDEgLyogV2ViQ29va2llSmFyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdGQjQ2RjIxRTk3QzBD
MDA5RTMyNDEgLyogV2ViQ29va2llSmFyLmggKi87IH07CiAJCTVDODI2RDZCMjZENDgyRUYwMDhB
RUM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzgyNkQ2ODI2RDQ2QjQ0MDA4QUVDOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oICovOyB9OwogCQk1QzgyNkQ2QzI2RDQ4MkYy
MDA4QUVDOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM4MjZENjkyNkQ0ODJFQTAwOEFF
QzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuaCAqLzsgfTsKQEAgLTQ4MzAs
NiArNDgzMSw3IEBACiAJCTVDNzQzMDBGMjE1MDA0OTIwMDRCRkExNyAvKiBXS1dlYlByb2Nlc3Mu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3NzA2NzMxRDExMUQ4QjAwMTI3MDBG
IC8qIFdlYlNvY2tldFByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFdlYlNvY2tldFByb3ZpZGVyLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0UHJv
dmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDODhEQzFEMEY0MUEw
MDA5RDJGNkQgLyogV2ViU29ja2V0UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViU29ja2V0UHJvdmlkZXIuaDsgcGF0aCA9IE5ldHdvcmsvV2ViU29ja2V0UHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM3REY0REEyNzZEMzkyNjAw
OEU1NTM0IC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tQYWdlR3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1QzdGQjQ2RTIxRTk3QzBCMDA5RTMyNDEgLyogV2ViQ29va2llSmFyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZUphci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDN0ZCNDZGMjFFOTdDMEMwMDlFMzI0MSAvKiBXZWJDb29r
aWVKYXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29va2llSmFyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDODBCM0RCMjM2OTBEOEQwMDg2RTZERSAv
KiBTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMTgwLDYgKzExMTgyLDcgQEAKIAkJCQkxQUI4QTFFRjE4
NDAwQjAwMDBFOUFFNjkgLyogV0tQYWdlRm9ybUNsaWVudC5oICovLAogCQkJCUJDN0I2MzM2MTJB
NDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgKi8sCiAJCQkJQkM3QjYzMzUxMkE0NUFC
QTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmggKi8sCisJCQkJNUM3REY0REEyNzZEMzkyNjAwOEU1
NTM0IC8qIFdLUGFnZUdyb3VwSW50ZXJuYWwuaCAqLywKIAkJCQkyRDlFQTMwQzFBOTZDQjU5MDAy
RDI4MDcgLyogV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLywKIAkJCQkxQUI4QTFFQjE4
NDAwODA5MDBFOUFFNjkgLyogV0tQYWdlTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJMkQ3MzAzNzgx
QTdDMkI3NTAwRjhGNDg3IC8qIFdLUGFnZU5hdmlnYXRpb25DbGllbnQuaCAqLywKQEAgLTEzODMw
LDYgKzEzODMzLDcgQEAKIAkJCQkxQUI4QTFGNjE4NDAwQjlEMDBFOUFFNjkgLyogV0tQYWdlRmlu
ZE1hdGNoZXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjhBMUYwMTg0MDBCMDAwMEU5
QUU2OSAvKiBXS1BhZ2VGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdCNjMzNzEy
QTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDN0RG
NERCMjc2RDM5MjcwMDhFNTUzNCAvKiBXS1BhZ2VHcm91cEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDlFQTMwRDFBOTZDQjU5MDAyRDI4MDcgLyogV0tQYWdlSW5qZWN0ZWRCdW5kbGVD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjhBMUVDMTg0MDA4MDkwMEU5QUU2OSAvKiBX
S1BhZ2VMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkQwMjE5MTJBQzQyNkMw
MEU3MzJBMyAvKiBXS1BhZ2VMb2FkVHlwZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFiNDM4OGNjN2U3YzQ2M2Qx
OTRjY2Y1YmM5NmM1MWEzNGFmN2FhZWQuLjdkMWUxOGI3YjEwODFhOGI0NWYwMmJjYTU3OGExZGI3
N2ExM2M0OTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0xMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBhcyBtdWNoIG9mIFdLUGFnZUdy
b3VwUmVmIGFzIHBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjU3MjQKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dF
eHRlbnNpb25Ob0NhY2hlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0
QWxlcnRDcmFzaC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVNZWRpYURldmljZXMuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhh
dmlvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09w
ZW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9T
Y3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5n
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25m
aWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1ZGlvLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFn
ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVs
ZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1cmVJblBpY3R1cmVEZWxlZ2F0ZS5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQ
b3NpdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6RnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OmluaXRpYWxp
emVWaWV3KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2Vi
Vmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9y
bVdlYlZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKToK
KwogMjAyMS0xMi0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtKU0NdIEZpeCBydW5zY3JpcHQncyBzdGFuZGFsb25lIGFiaWxpdHkgdG8gcnVuCmRpZmYg
LS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAgYi9U
b29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0QnJvd3NlcldpbmRvdy5jcHAKaW5kZXggZTdkMzUx
NzE1ZDVmOTFhNjEyMDQxNjMzYzJlMzRiYTNjMjhkOGIzYS4uYjQ3OGU3YjRlZmIzMWM5YTZhNmE0
MzA5NDI2ZjE5N2QyZWJjNTMzZiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dl
YktpdEJyb3dzZXJXaW5kb3cuY3BwCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRC
cm93c2VyV2luZG93LmNwcApAQCAtMjM4LDggKzIzOCw4IEBAIHZvaWQgV2ViS2l0QnJvd3Nlcldp
bmRvdzo6bmF2aWdhdGVUb0hpc3RvcnkoVUlOVCBtZW51SUQpCiB2b2lkIFdlYktpdEJyb3dzZXJX
aW5kb3c6OnNldFByZWZlcmVuY2UoVUlOVCBtZW51SUQsIGJvb2wgZW5hYmxlKQogewogICAgIGF1
dG8gcGFnZSA9IFdLVmlld0dldFBhZ2UobV92aWV3LmdldCgpKTsKLSAgICBhdXRvIHBncm91cCA9
IFdLUGFnZUdldFBhZ2VHcm91cChwYWdlKTsKLSAgICBhdXRvIHByZWYgPSBXS1BhZ2VHcm91cEdl
dFByZWZlcmVuY2VzKHBncm91cCk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhX
S1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24ocGFnZSkpOworICAgIGF1dG8gcHJlZiA9IFdLUGFn
ZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICBz
d2l0Y2ggKG1lbnVJRCkgewogICAgIGNhc2UgSURNX0FDQ19DT01QT1NJVElORzoKICAgICAgICAg
V0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHByZWYsIGVuYWJs
ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA1ZTg1MDI2ODlmMTNl
OGVkMTE5ZTMxYTc2ZjViY2VjNjA5OGFjZTc1Li5hZjU5YWJlZDY5ZDA4ODk5MjAwODc0YzM1YzQ3
NjNkYmU0Yjc4NTY2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2Vi
Vmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTcz
LDExICs3Myw4IEBAIGNsYXNzIFBsYXRmb3JtV2ViVmlldyB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUGxhdGZvcm1XZWJWaWV3KTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQbGF0Zm9ybVdl
YlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1XZWJW
aWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgPSAwKTsKKyAgICBleHBsaWNpdCBQbGF0
Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmKTsKICAgICBleHBsaWNpdCBQbGF0Zm9ybVdlYlZpZXco
V0tQYWdlUmVmIHJlbGF0ZWRQYWdlKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgZXhwbGljaXQg
UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYsIENsYXNzIHdrVmll
d1N1YmNsYXNzKTsKLSNlbmRpZgogICAgIH5QbGF0Zm9ybVdlYlZpZXcoKTsKIAogICAgIFdLUGFn
ZVJlZiBwYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJmZmViNGQwZmUz
NGI5YmI5Njg0MGIzNzZjYjE5MTcxYmIzMjAxNmYuLjZjZjVmZWI1ODA4MTdjNzc2ZjdkNGQzNGU2
MzA0OGQyM2M5YTU3MDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDEyLDcgKzI0MTIs
NyBAQAogCQk3Q0JCQTA3NjE5QkI4QTkxMDBCQkYwMjUgLyogT1NPYmplY3RQdHIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT1NPYmplY3RQdHIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0JENUEyMjIyREU0MkE2MDA0QTlFMzIgLyogV1RGU3Ry
aW5nVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdURlN0cmluZ1V0aWxpdGllcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQzNFMUZBMTk3RTIzNDEwMEJFNjI1
MiAvKiBVc2VyQ29udGVudENvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBVc2VyQ29udGVudENvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTdDQ0I0REE3MUM4M0FFNzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VH
cm91cC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VHcm91
cC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDQjk5MjAxRDNCNDFGNjAwMzky
MkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZp
Z2F0aW9uQWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NCOTkyMjFE
M0I0NEU3MDAzOTIyRjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDRTdFOEMxQTQxMTQ0RTAwNDQ3QzRDIC8q
IGxpYlRlc3RXZWJLaXRBUEkuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliVGVz
dFdlYktpdEFQSS5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDQw
NSw3ICs0NDA1LDcgQEAKIAkJCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8sCiAJCQkJMEY1NjUxRjYx
RkNFNEREQjAwMzEwRkJDIC8qIE5vSGlzdG9yeUl0ZW1TY3JvbGxUb0ZyYWdtZW50Lm1tICovLAog
CQkJCTFDQjJGMjdCMjRGODgzNzkwMDBBNUJDMSAvKiBPcnRob2dvbmFsRmxvd0F2YWlsYWJsZVNp
emUubW0gKi8sCi0JCQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5jcHAg
Ki8sCisJCQkJN0NDQjREQTcxQzgzQUU3MzAwQ0M2OTE4IC8qIFBhZ2VHcm91cC5tbSAqLywKIAkJ
CQlCQzkwOTc3OTEyNTU3MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCiAJCQkJ
QkMyRDAwNDgxMkE5RkRGQTAwRTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRo
aW5QYWdlRm9yRnJhbWUuY3BwICovLAogCQkJCTI3MkE2OTBGMjJGMDEyQzcwMDBGREFCQiAvKiBQ
YWdlTG9hZFN0YXRlLmNwcCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvQ3VzdG9tUHJvdG9jb2xzU3luY1hIUlRlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tCmluZGV4IDQ3ZjVlODg1Y2Q2YTBjMTRm
MzlhZmI3MThhOGJjNWQ5OWU5ZjVjN2QuLmFkMzk5MWQ1NmYyMWU1NjJlMjQ1YTI0MDdiNjM2NWM0
OTg4ZTZhYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvQ3VzdG9tUHJv
dG9jb2xzU3luY1hIUlRlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0
b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbQpAQCAtNTIsOSArNTIsNyBAQCBURVNUKFdlYktpdDJD
dXN0b21Qcm90b2NvbHNUZXN0LCBTeW5jWEhSKQogICAgIFJldGFpblB0cjxXS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwPiBicm93c2luZ0NvbnRleHRHcm91cCA9IGFkb3B0TlMoW1tXS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwIGFsbG9jXSBpbml0V2l0aElkZW50aWZpZXI6QCJUZXN0SWRlbnRpZmllciJdKTsK
IAogICAgIC8vIEFsbG93IGZpbGUgVVJMcyB0byBsb2FkIG5vbi1maWxlIHJlc291cmNlcwotICAg
IFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1By
ZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NG
cm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKLSAgICBXS1BhZ2VH
cm91cFNldFByZWZlcmVuY2VzKGJyb3dzaW5nQ29udGV4dEdyb3VwLmdldCgpLl9wYWdlR3JvdXBS
ZWYsIHByZWZlcmVuY2VzLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKGJyb3dzaW5n
Q29udGV4dEdyb3VwLmdldCgpLl9wYWdlR3JvdXBSZWYpLCB0cnVlKTsKIAogICAgIFJldGFpblB0
cjxXS1ZpZXc+IHdrVmlldyA9IGFkb3B0TlMoW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgcHJvY2Vzc0dyb3VwOnByb2Nlc3NHcm91cC5nZXQo
KSBicm93c2luZ0NvbnRleHRHcm91cDpicm93c2luZ0NvbnRleHRHcm91cC5nZXQoKV0pOwogICAg
ICBSZXRhaW5QdHI8VGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZT4gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhC
bG9ja1RvUnVuT25Mb2FkOl4oV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpzZW5kZXIpIHsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nsb3NlRnJvbVdp
dGhpbkNyZWF0ZVBhZ2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xv
c2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAKaW5kZXggMjg4NWY1MmJhODFhMjNlMzAxMjczMzE0
OTRlN2NiMjE3YzNjNTY3Yy4uZDY1ZDQ1MzU4NDAzNTI0YTVkNzVlYTk4YjRlNzVjZjVjZmVhOWE2
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9t
V2l0aGluQ3JlYXRlUGFnZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAKQEAgLTc2LDEwICs3Niw4IEBAIFRFU1Qo
V2ViS2l0LCBDbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlKQogICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogCiAgICAgLy8gQWxsb3cgZmls
ZSBVUkxzIHRvIGxvYWQgbm9uLWZpbGUgcmVzb3VyY2VzCi0gICAgV0tSZXRhaW5QdHI8V0tQcmVm
ZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBhZG9wdFdLKFdLUHJlZmVyZW5jZXNDcmVhdGUoKSk7
Ci0gICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdlYlZp
ZXcucGFnZSgpKTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNl
cyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQ
YWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVu
Y2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNlcy5nZXQo
KSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZl
cmVuY2VzLmdldCgpKTsKICAgICAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiY2xvc2UtZnJvbS13aXRoaW4tY3JlYXRl
LXBhZ2UiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwu
Z2V0KCkpOwpAQCAtMTIxLDEwICsxMTksOCBAQCBURVNUKFdlYktpdCwgQ3JlYXRlUGFnZVRoZW5E
b2N1bWVudE9wZW5NSU1FVHlwZSkKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5w
YWdlKCksICZ1aUNsaWVudC5iYXNlKTsKIAogICAgIC8vIEFsbG93IGZpbGUgVVJMcyB0byBsb2Fk
IG5vbi1maWxlIHJlc291cmNlcwotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHBy
ZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOwotICAgIFdLUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Cisg
ICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25m
aWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRp
b24od2ViVmlldy5wYWdlKCkpKS5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFVuaXZlcnNh
bEFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAg
IFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJlbmNlcy5nZXQoKSk7
CiAKICAgICB0ZXN0RG9uZSA9IGZhbHNlOwogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJ3aW5kb3ctb3Blbi10aGVuLWRv
Y3VtZW50LW9wZW4iLCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcAppbmRleCA4N2Zk
MjhiY2JhNmYzNjc4OTFjN2M4Zjk0ZDBiNmYxOTE3YjNmOGMwLi5lMGViZmVjMmJlNmUxOGIyYzBh
ZjI3YTE1ODRhMGNmNGVhMjM4ZDNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCkBAIC05OCw3
ICs5OCw3IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNpYykK
ICAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2Fj
aGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1v
ZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRl
eHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSk7CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHRlbnNpb25zIGZv
ciBlYWNoIGZyYW1lIGFyZSBpbnN0YWxsZWQgaW4gZWFjaCB3b3JsZC4KICAgICBXS1JldGFpblB0
cjxXS1VSTFJlZj4gdXJsMSA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNp
bXBsZS1pZnJhbWUiLCAiaHRtbCIpKTsKQEAgLTEzNyw4ICsxMzcsNiBAQCBURVNUKFdlYktpdCwg
RElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMpCiAKIFRFU1QoV2ViS2l0LCBET01XaW5k
b3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3Vw
UmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIo
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRPTVdpbmRvd0V4dGVuc2lvbkJhc2ljUGFn
ZUdyb3VwIikpKTsKLQogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFk
b3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRE9NV2luZG93
RXh0ZW5zaW9uQmFzaWMiKSk7CiAKICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudFYw
IGluamVjdGVkQnVuZGxlQ2xpZW50OwpAQCAtMTUzLDcgKzE1MSw3IEBAIFRFU1QoV2ViS2l0LCBE
T01XaW5kb3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogICAgIC8vIG1vZGVsIHRoYXQgYWN0dWFs
bHkgYWxsb3dzIGZvciBhIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBXS0NvbnRleHRTZXRDYWNo
ZU1vZGVsKGNvbnRleHQuZ2V0KCksIGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOwogCi0g
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgp
KTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIGZp
bmlzaGVkID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKaW5kZXggZTE2OTZk
NWJkNjU2OTQ3Mjc4Zjk0NzQ4NTI1MzE3MmJjNDliN2NhNy4uYzdkMGY4ZDA4ZWEyMjQyYWJjN2Fk
Mzg2NTI0OWFhOGMyNTRmMjEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKQEAgLTgz
LDkgKzgzLDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWcKIAogVEVTVChXZWJLaXQsIERJU0FC
TEVEX0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUpCiB7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdl
R3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRp
ZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRE9NV2luZG93RXh0ZW5zaW9uTm9D
YWNoZVBhZ2VHcm91cCIpKSk7Ci0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRP
TVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBXS1JldGFp
blB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRG
b3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUiKSk7CiAKICAg
ICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudFYxIGluamVjdGVkQnVuZGxlQ2xpZW50Owog
ICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3RlZEJ1bmRs
ZUNsaWVudCkpOwpAQCAtOTgsNyArOTYsNyBAQCBURVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2lu
ZG93RXh0ZW5zaW9uTm9DYWNoZSkKICAgICAvLyBEaXNhYmxlIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1v
ZGVsRG9jdW1lbnRWaWV3ZXIpOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgZXh0ZW5zaW9ucyBmb3IgZWFj
aCBmcmFtZSBhcmUgaW5zdGFsbGVkIGluIGVhY2ggd29ybGQuCiAgICAgV0tSZXRhaW5QdHI8V0tV
UkxSZWY+IHVybDEgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUt
aWZyYW1lIiwgImh0bWwiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNo
LmNwcAppbmRleCBhNzc1NDRlNTJmMGZjOGJmM2MzMjI1MTc0ZGMyMzM3ZmI4Zjg3NzBhLi5kNGEz
NTEyMzQ1ZWQ1YzJhNDIzYTYzZjhiMDk2ZjZiY2UzN2JiNTlkIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2guY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3Rh
cnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAKQEAgLTQ4LDEwICs0OCw4IEBAIHN0YXRpYyB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0
LCBXS0ZyYW1lUmVmCiAKIFRFU1QoV2ViS2l0LCBEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0
Q3Jhc2hUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAg
PSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkRvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaFRlc3RQYWdl
R3JvdXAiKSkpOyAKLQogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFk
b3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRG9jdW1lbnRT
dGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCIpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2Vi
Vmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVu
dDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNl
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FbnVtZXJhdGVNZWRpYURl
dmljZXMuY3BwCmluZGV4IGEzZDdiOWNkZDcwNDE4OGVmZWU3M2ZmYjBmMTBjNTgzMTcwNzkwNDcu
LmFiN2E2ZjI0NDc1ODM3Y2JiZDU1OWI4ZmI4ZDFmNmM1YjUyNzAzZWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZp
Y2VzLmNwcApAQCAtNTEsMTggKzUxLDE4IEBAIFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZpY2Vz
KQogewogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZp
Z3VyYXRpb24obnVsbHB0cikpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBh
Z2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0
b1dLKCJFbnVtZXJhdGVEZXZpY2VzIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwot
ICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVl
KTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJl
ZmVyZW5jZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJl
c1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQogICAgIFdLUGFnZVVJQ2xp
ZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50
KSk7CiAgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gNjsKICAgICB1aUNsaWVudC5jaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4gPSBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxs
YmFjazsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VH
cm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25H
ZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3
LnBhZ2UoKSkpLmdldCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxl
ZChwcmVmZXJlbmNlcywgdHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0
TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7
CisKKwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50
LmJhc2UpOwogCiAgICAgYXV0byB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJlbnVtZXJhdGVNZWRpYURldmljZXMiLCAiaHRtbCIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhl
bWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCmluZGV4IDY4NWY5NDNh
YjcyYmM2Yzc0ZWZmYjA5MzVhYjZmY2Q5YTMxZWZiNDUuLjA5MWJlMmMyYzlkODhjOGE1ZTMxZjUz
MWM5NTMzY2Y4OWRiOTE3ZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXBoZW1lcmFsU2Vzc2lvblB1c2hT
dGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcApAQCAtNzcsMTIgKzc3LDkgQEAgVEVTVChXZWJLaXQs
IEVwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjaykKIAogICAgIFdLUGFn
ZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmcGFnZUxvYWRlckNsaWVu
dC5iYXNlKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2Vz
ID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3JlYXRlKCkpOworICAgIFdLUmV0YWluUHRyPFdLUHJl
ZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVu
Y2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSku
Z2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNB
bGxvd2VkKHByZWZlcmVuY2VzLmdldCgpLCB0cnVlKTsKIAotICAgIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cCA9IFdLUGFnZUdldFBhZ2VHcm91cCh3ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQYWdl
R3JvdXBTZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAsIHByZWZlcmVuY2VzLmdldCgpKTsKLQogICAg
IFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJwdXNoLXN0YXRlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3
LnBhZ2UoKSwgdXJsLmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9y
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKaW5kZXggODVjNzY4NmE2ODAzMThmM2Y3
MzQ2YmY5Y2I4NGIxMzIxNmQxZDVhZi4uMWViY2Q0ZWU4ZWFmZTFiMjJlMGMzYTU5NTRhYmMxMmQz
MjkzM2M0YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5q
ZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3IuY3BwCkBAIC01MCwxMCArNTAsOCBAQCBzdGF0aWMgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnRFbmFibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRl
eHQsIFdLRgogCiBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1
aWx0aW5zQmVoYXZpb3JUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBw
YWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVC
dWlsdGluc0JlaGF2aW9yVGVzdFBhZ2VHcm91cCIpKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2
aW9yVGVzdCIpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBw
YWdlR3JvdXAuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0
KCkpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xp
ZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKQEAgLTg0LDEwICs4Miw4IEBAIHN0YXRpYyB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydERpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBh
bGVydFRleHQsIFdLCiAKIFRFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVm
PiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOwotCiAgICAgV0tSZXRhaW5QdHI8V0tD
b250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0
ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3JUZXN0IikpOwotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBh
Z2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSk7CiAKICAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGll
bnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNo
YWRvd1Jvb3RzT3Blbi5jcHAKaW5kZXggZDJiMWQ1NzM4N2I0OTFlYjM3ZDRmODc5MzYzOWQ3N2Q3
MGEwMmZhZS4uNmU1ODAzNDY1MjBkN2MyYWE2NTJmOGY1MjRlMGY4ODk4ZGE0NDc3NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVNYWtl
QWxsU2hhZG93Um9vdHNPcGVuLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCkBAIC04NSwxMCAr
ODUsOCBAQCBzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZgogCiBURVNUKFdlYktpdCwgSW5qZWN0ZWRC
dW5kbGVNYWtlQWxsU2hhZG93Um9vdE9wZW5UZXN0KQogewotICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50
aWZpZXIoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTWFrZUFs
bFNoYWRvd1Jvb3RPcGVuVGVzdFBhZ2VHcm91cCIpKSk7Ci0KICAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuVGVzdCIpKTsK
LSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0
KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAg
V0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXpl
b2YodWlDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1BhZ2VHcm91cC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdl
R3JvdXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWU5MDQzMjc1MjhiM2U4
NWFlZDIzYjJjN2RjNjczMzI2ZDI0NzFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VHcm91
cC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9y
dCAiY29uZmlnLmgiCi0jaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+Ci0KLSNpZiBXS19I
QVZFX0NfU1BJCi0KLSNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJQbGF0
Zm9ybVdlYlZpZXcuaCIKLSNpbXBvcnQgIlRlc3QuaCIKLSNpbXBvcnQgPFdlYktpdC9XS1BhZ2VH
cm91cC5oPgotI2ltcG9ydCA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmLmg+Ci0j
aW1wb3J0IDxXZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oPgotCi1uYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7Ci0KLVRFU1QoUGFnZUdyb3VwLCBEZWZhdWx0VXNlckNvbnRlbnRDb250cm9s
bGVyKQotewotICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZp
Z3VyYXRpb25DcmVhdGUoKSk7Ci0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRD
cmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7Ci0gICAgV0tQYWdlQ29uZmlndXJhdGlv
blNldENvbnRleHQocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHQuZ2V0KCkpOwotICAg
IGF1dG8gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVy
KFV0aWw6OnRvV0soIlRlc3RQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRQYWdlR3JvdXAocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIHBhZ2VHcm91cC5nZXQo
KSk7Ci0KLSAgICBhdXRvIHBhZ2VHcm91cFVzZXJDb250ZW50Q29udHJvbGxlciA9IHJldGFpbldL
KFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250cm9sbGVyKHBhZ2VHcm91cC5nZXQoKSkpOwot
Ci0gICAgRVhQRUNUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJv
bGxlcihwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSkpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdl
YlZpZXcocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCkpOwotICAgIGF1dG8gY29waWVkUGFnZUNvbmZp
Z3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBh
Z2UoKSkpOwotCi0gICAgQVNTRVJUX0VRKHBhZ2VHcm91cFVzZXJDb250ZW50Q29udHJvbGxlci5n
ZXQoKSwgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihjb3BpZWRQ
YWdlQ29uZmlndXJhdGlvbi5nZXQoKSkpOwotfQotCi1URVNUKFBhZ2VHcm91cCwgQ3VzdG9tVXNl
ckNvbnRlbnRDb250cm9sbGVyKQotewotICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBhZG9w
dFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7Ci0gICAgYXV0byBjb250ZXh0ID0gYWRv
cHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7Ci0gICAgV0tQ
YWdlQ29uZmlndXJhdGlvblNldENvbnRleHQocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRl
eHQuZ2V0KCkpOwotICAgIGF1dG8gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0
ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIlRlc3RQYWdlR3JvdXAiKS5nZXQoKSkpOwotICAg
IFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCks
IHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgYXV0byB1c2VyQ29udGVudENvbnRyb2xsZXIgPSBhZG9w
dFdLKFdLVXNlckNvbnRlbnRDb250cm9sbGVyQ3JlYXRlKCkpOwotICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRVc2VyQ29udGVudENvbnRyb2xsZXIocGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCksIHVz
ZXJDb250ZW50Q29udHJvbGxlci5nZXQoKSk7Ci0KLSAgICBhdXRvIHBhZ2VHcm91cFVzZXJDb250
ZW50Q29udHJvbGxlciA9IHJldGFpbldLKFdLUGFnZUdyb3VwR2V0VXNlckNvbnRlbnRDb250cm9s
bGVyKHBhZ2VHcm91cC5nZXQoKSkpOwotCi0gICAgRVhQRUNUX0VRKHVzZXJDb250ZW50Q29udHJv
bGxlci5nZXQoKSwgV0tQYWdlQ29uZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihw
YWdlQ29uZmlndXJhdGlvbi5nZXQoKSkpOwotCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
cGFnZUNvbmZpZ3VyYXRpb24uZ2V0KCkpOwotICAgIGF1dG8gY29waWVkUGFnZUNvbmZpZ3VyYXRp
b24gPSBhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkp
OwotCi0gICAgRVhQRUNUX0VRKHVzZXJDb250ZW50Q29udHJvbGxlci5nZXQoKSwgV0tQYWdlQ29u
ZmlndXJhdGlvbkdldFVzZXJDb250ZW50Q29udHJvbGxlcihjb3BpZWRQYWdlQ29uZmlndXJhdGlv
bi5nZXQoKSkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFnZUdyb3VwLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjExYWNkM2EwZTc1Y2ZmODdjMjI0YWY5ODFhMWQwYjNkMmRjOTU2ZmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlR3JvdXAubW0KQEAg
LTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDxXZWJL
aXQvV0tQYWdlR3JvdXAuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1JldGFpblB0ci5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFBhZ2VHcm91cCwgUHJlZmVyZW5jZXMp
Cit7CisgICAgYXV0byBwYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJh
dGlvbkNyZWF0ZSgpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0
ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKKyAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0
Q29udGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dC5nZXQoKSk7CisgICAgYXV0
byBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRp
bDo6dG9XSygiVGVzdFBhZ2VHcm91cCIpLmdldCgpKSk7CisgICAgYXV0byB3a1ZpZXcgPSBhZG9w
dE5TKFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29udGV4dFJlZjpj
b250ZXh0LmdldCgpIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXAuZ2V0KCldKTsKKyAgICBFWFBFQ1Rf
RVEoV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBh
Z2VDb25maWd1cmF0aW9uKHdrVmlldy5nZXQoKS5wYWdlUmVmKSkuZ2V0KCkpLCBXS1BhZ2VHcm91
cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5tbQppbmRleCAzNjVjMmRk
YjliOTJlNWM2NmU2Mjc5NjBhNWEyYmZhOWU0ZGFhNjFhLi5mZjQyZjQzMjg3ZmZmOWEzZTdiNWNh
YjIwODhjMTM3YTBiODQ4ZTdkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9QYXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJvYXJkTm90aWZpY2F0aW9ucy5tbQpAQCAtNjcsMTIgKzY3
LDkgQEAgVEVTVChXZWJLaXQsIFBhc3RlYm9hcmROb3RpZmljYXRpb25zKQogCiAgICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1By
ZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgp
KTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IFdLUGFn
ZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmln
dXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0SmF2
YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChwcmVmZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7CiAKLSAg
ICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2ViVmlldy5w
YWdlKCkpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJl
bmNlcy5nZXQoKSk7Ci0KICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdL
KFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJleGVjQ29weSIsICJodG1sIikpLmdldCgpKTsK
ICAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxi
YWNrLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2lu
Z1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAppbmRleCA2MzUyNTNlMGE2NmVmODBmNmVk
Mzk2NWU3N2QwNjljZGI5MjQ4Njc2Li5lMzExYmYxMWVjMGE1ODAxZGZjMmVlZTQ3YTU0Njg1Zjg0
ODFkYjExIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2
YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwCkBAIC04MCwxMiArODAsOSBAQCBURVNUKFdlYktpdCwgUHJpdmF0ZUJyb3dz
aW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2spCiAKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdh
dGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnBhZ2VMb2FkZXJDbGllbnQuYmFzZSk7CiAKLSAg
ICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQ
cmVmZXJlbmNlc0NyZWF0ZSgpKTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBw
cmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdL
UGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKICAgICBX
S1ByZWZlcmVuY2VzU2V0VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJl
bmNlcy5nZXQoKSwgdHJ1ZSk7CiAKLSAgICBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBXS1Bh
Z2VHZXRQYWdlR3JvdXAod2ViVmlldy5wYWdlKCkpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVy
ZW5jZXMocGFnZUdyb3VwLCBwcmVmZXJlbmNlcy5nZXQoKSk7Ci0KICAgICBXS1JldGFpblB0cjxX
S1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgicHVzaC1z
dGF0ZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5n
ZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jl
c2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcAppbmRleCAyMDI0NTE2
MzE3ODFiZDc4ZjYxNjQwNWIyMzViNmNjZGIyZmRmOGIxLi5kZmU1Y2I1OWMxYmVmZjNhMzQ5ZDY1
NGU5YzkwN2FmMWMzZTA2YTE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3Bw
CkBAIC03NCw4ICs3NCw3IEBAIFRFU1QoV2ViS2l0LCBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2Vi
VmlldykKIAogICAgIFdLUGFnZUxpc3RlbkZvckxheW91dE1pbGVzdG9uZXMod2ViVmlldy5wYWdl
KCksIGtXS0RpZEZpcnN0TGF5b3V0QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcp
OwogCi0gICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gIFdLUGFnZUdldFBhZ2VHcm91cCh3
ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFn
ZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwKTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQ
YWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIFdL
UHJlZmVyZW5jZXNTZXRTdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcocHJlZmVyZW5jZXMs
IHRydWUpOwogCiAgICAgV0tQYWdlU2V0UGFnaW5hdGlvbk1vZGUod2ViVmlldy5wYWdlKCksIGtX
S1BhZ2luYXRpb25Nb2RlUmlnaHRUb0xlZnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcAppbmRleCA4
NWYyNWE2NDZmYWIyYmE0NmQ3NDE4NmUwZmY1ZjI3NmU2MjI2ZTk5Li40YjEzOGU0OTBjNzQ2M2Q1
ZWUwMjkyY2YxZWFkNmQwNzY4NjRmMjc1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcApAQCAtNzMs
MTUgKzczLDE0IEBAIFRFU1QoV2ViS2l0LCBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzKQogewogICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3Jl
YXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwogCisgICAgUGxhdGZvcm1XZWJWaWV3IHdl
YlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
ID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBh
Z2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0KCkpOwogICAgIC8vIFR1cm4gb2Zm
IHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0aGUgbWFpbiB0
aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCiAgICAgLy8gdXBkYXRlIHVzaW5nIFdLUGFnZUZvcmNl
UmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gZG9lc24ndCBibG9j
ayB1bnRpbAogICAgIC8vIGl0J3MgdXBkYXRlZCBhZnRlciB0aGUgaW5pdGlhbCBXS1BhZ2VTZXRT
Y3JvbGxQaW5uaW5nQmVoYXZpb3IgYWJvdmUuCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBS
ZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihV
dGlsOjp0b1dLKCJOb1RocmVhZGVkU2Nyb2xsaW5nUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhw
YWdlR3JvdXAuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0Vu
YWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3
KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Ci0KICAgICBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50VjAgbG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXpl
b2YobG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAppbmRleCBkMjMxMzMxYjk1NTI4ZTRkNTAw
NmIzNDM0M2Q3NWJlYzAwNzE0OTYxLi43OTFmOTQzNzAyZTE2YmZhMTExNjM0MGZmYjljYzQzZWZj
NTMwZmNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFj
ZWJhclNjcm9sbGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
U3BhY2ViYXJTY3JvbGxpbmcuY3BwCkBAIC01MywxNCArNTMsMTMgQEAgVEVTVChXZWJLaXQsIFNw
YWNlYmFyU2Nyb2xsaW5nKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4
dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAor
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5jZXMo
YWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5nZXQo
KSk7CisKICAgICAvLyBUdXJuIG9mZiB0aHJlYWRlZCBzY3JvbGxpbmc7IHN5bmNocm9ub3VzbHkg
d2FpdGluZyBmb3IgdGhlIG1haW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB0bwogICAgIC8vIHVw
ZGF0ZSB1c2luZyBXS1BhZ2VGb3JjZVJlcGFpbnQgd291bGQgYmUgYmV0dGVyLCBidXQgZm9yIHNv
bWUgcmVhc29uIHRoZSB0ZXN0IHN0aWxsIGZhaWxzIG9jY2FzaW9uYWxseS4KLSAgICBXS1JldGFp
blB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0
ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk5vVGhyZWFkZWRTY3JvbGxpbmdQYWdlR3JvdXAi
KS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91
cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFRo
cmVhZGVkU2Nyb2xsaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogCi0gICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLQogICAg
IFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2Fk
ZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKaW5kZXggNTc1MTk3M2E1ODg3ODllNGZl
OWY4NmU5NTUzNWViNTVlMmZkN2UxMy4uMGNiYzUwMGFiMmYzNTRlMGRhYjUxNTg4ZTZkMGM1YWJm
MjJlYWU2YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNl
ck1lZGlhLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVk
aWEuY3BwCkBAIC03MSwyMCArNzEsMTggQEAgVEVTVChXZWJLaXQsIFVzZXJNZWRpYUJhc2ljKQog
ewogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3Vy
YXRpb24obnVsbHB0cikpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VH
cm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dL
KCJHZXRVc2VyTWVkaWEiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Ci0gICAgV0tQ
cmVmZXJlbmNlc1NldE1lZGlhRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXRGaWxlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJl
Q29ubmVjdGlvbihwcmVmZXJlbmNlcywgZmFsc2UpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNb2Nr
Q2FwdHVyZURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQogICAgIFdLUGFnZVVJ
Q2xpZW50VjYgdWlDbGllbnQ7CiAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xp
ZW50KSk7CiAgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gNjsKICAgICB1aUNsaWVudC5kZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IGRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbEJhY2s7CiAgICAgdWlDbGllbnQuY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luID0gY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJh
Y2s7CiAgICAgCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFn
ZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgp
KTsKKyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlv
bkdldFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZp
ZXcucGFnZSgpKSkuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFi
bGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNT
ZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNl
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJl
bmNlcywgdHJ1ZSk7CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAm
dWlDbGllbnQuYmFzZSk7CiAKICAgICB3YXNQcm9tcHRlZCA9IGZhbHNlOwpAQCAtMTA3LDIwICsx
MDUsMTggQEAgVEVTVChXZWJLaXQsIE9uRGV2aWNlQ2hhbmdlQ3Jhc2gpCiB7CiAgICAgYXV0byBj
b250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRy
KSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRX
SyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkdldFVzZXJNZWRp
YSIpLmdldCgpKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdy
b3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0
TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgV0tQcmVmZXJlbmNl
c1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHBy
ZWZlcmVuY2VzLCBmYWxzZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldE1vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwotCiAgICAgV0tQYWdlVUlDbGllbnRWNiB1aUNs
aWVudDsKICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKICAgICB1
aUNsaWVudC5iYXNlLnZlcnNpb24gPSA2OwogICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0ID0gZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RDYWxsQmFjazsKICAgICB1aUNsaWVudC5jaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JPcmlnaW4gPSBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjazsKIAotICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Cisg
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhh
ZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgp
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywg
dHJ1ZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2Vk
KHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TWVkaWFDYXB0dXJlUmVx
dWlyZXNTZWN1cmVDb25uZWN0aW9uKHByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAgV0tQcmVmZXJl
bmNlc1NldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQocHJlZmVyZW5jZXMsIHRydWUpOwogICAg
IFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwog
CiAgICAgLy8gTG9hZCBhIHBhZ2UgcmVnaXN0ZXJpbmcgb25kZXZpY2VjaGFuZ2UgaGFuZGxlci4K
QEAgLTE2NywxMyArMTYzLDYgQEAgVEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFzaCkK
IHsKICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1
cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdl
R3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoVXRpbDo6dG9X
SygiR2V0VXNlck1lZGlhIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdL
UHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKLSAg
ICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQocHJlZmVyZW5j
ZXMsIHRydWUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3Vy
ZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0KICAgICBXS1BhZ2VV
SUNsaWVudFY2IHVpQ2xpZW50OwogICAgIC8vIFdlIHdhbnQgdWlDbGllbnQuY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yT3JpZ2luIHRvIGJlIG51bGwuCiAgICAgbWVtc2V0KCZ1aUNsaWVudCwg
MCwgc2l6ZW9mKHVpQ2xpZW50KSk7CkBAIC0xODQsNyArMTczLDEzIEBAIFRFU1QoV2ViS2l0LCBF
bnVtZXJhdGVEZXZpY2VzQ3Jhc2gpCiAgICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDM7
CiAgICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaE5hdmlnYXRpb24gPSBkaWRGaW5pc2hOYXZpZ2F0
aW9uOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsK
KyAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdl
dFByZWZlcmVuY2VzKGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcu
cGFnZSgpKSkuZ2V0KCkpOworICAgIFdLUHJlZmVyZW5jZXNTZXRNZWRpYURldmljZXNFbmFibGVk
KHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMc0FsbG93ZWQocHJlZmVyZW5jZXMsIHRydWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24ocHJlZmVyZW5jZXMsIGZhbHNlKTsK
KyAgICBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7CisKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1
aUNsaWVudC5iYXNlKTsKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3
LnBhZ2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBlNTQx
MDBjOGM3OTQ2NzE2NTA5MDJiMzIzZmVmZDE1ODIxZTQyN2FiLi4wNWQ5NWU0OTc0MTgwNTUzMDk1
OWEyNmMzNDhjMWU4Yzk3YzdhYWU1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtNDEsNyArNDEsNiBA
QCBURVNUKFdlYktpdCwgV0tQYWdlQ29uZmlndXJhdGlvbkVtcHR5KQogCiAgICAgQVNTRVJUX05V
TEwoV0tQYWdlQ29uZmlndXJhdGlvbkdldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSkpOwog
ICAgIEFTU0VSVF9OVUxMKFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRVc2VyQ29udGVudENvbnRyb2xs
ZXIoY29uZmlndXJhdGlvbi5nZXQoKSkpOwotICAgIEFTU0VSVF9OVUxMKFdLUGFnZUNvbmZpZ3Vy
YXRpb25HZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSkpOwogICAgIEFTU0VSVF9OVUxM
KFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhjb25maWd1cmF0aW9uLmdldCgpKSk7
CiAgICAgQVNTRVJUX05VTEwoV0tQYWdlQ29uZmlndXJhdGlvbkdldFJlbGF0ZWRQYWdlKGNvbmZp
Z3VyYXRpb24uZ2V0KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1ZGlvLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1ZGlvLmNwcAppbmRleCBjMWVmMDkxNWMyN2Uy
MTVjNzhiYzg0MzFhMWNhY2Y0ZjRkMjU4OWMwLi41NjQ5ZDkwNDRjOGUzZGI0NjBlODkxZjY3YjU1
MDU1MGRhN2UxZDhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3BwCkBAIC0xMTcsMTIgKzExNywxMCBAQCBU
RVNUKFdlYktpdCwgTVNFSXNQbGF5aW5nQXVkaW8pCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlv
bihudWxscHRyKSk7CiAKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3Vw
ID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk1T
RUlzUGxheWluZ0F1ZGlvUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzID0gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkp
OworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworICAgIFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5j
ZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24od2ViVmlldy5wYWdlKCkpKS5n
ZXQoKSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE1lZGlhU291cmNlRW5hYmxlZChwcmVmZXJlbmNl
cywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNBbGxv
d2VkKHByZWZlcmVuY2VzLCB0cnVlKTsKLQotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNv
bnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CiAgICAgc2V0VXBDbGllbnRzKHdlYlZpZXcu
cGFnZSgpKTsKIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6
OmNyZWF0ZVVSTEZvclJlc291cmNlKCJmaWxlLXdpdGgtbXNlIiwgImh0bWwiKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQXR0cmlidXRlZFN1YnN0
cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1h
Z2UubW0KaW5kZXggYjkxMjNmNzk4M2E4NWM0NGZjMzg5YzU3NmVjYzNmYmY1MWUyNjZiZS4uY2U2
YTgwNjhkMzg4ODVkMjgwODYzYzA2NzY4ZDA5MWVkZmNmMDIyMyAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9w
b3NlZFJhbmdlV2l0aEltYWdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQpA
QCAtNTgsOCArNTgsNyBAQCBzdGF0aWMgdm9pZCBpbnZhbGlkTWVzc2FnZUZ1bmN0aW9uKFdLU3Ry
aW5nUmVmIG1lc3NhZ2VOYW1lKQogVEVTVChXZWJLaXQsIEF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQ
cm9wb3NlZFJhbmdlV2l0aEltYWdlKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4g
Y29udGV4dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgp
KTsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhX
S1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIkF0dHJpYnV0ZWRTdWJz
dHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlUGFnZUdyb3VwIikuZ2V0KCkpKTsKLSAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwor
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdl
TmF2aWdhdGlvbkNsaWVudFYwIGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVu
dCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQppbmRleCA3
NTU2ZjYxMmQ1ZTNiOWJhNGY0Y2Q2ZjUyNmM5NThjMTdmM2YxZjI2Li42NGQ2N2FiMmUzYzc1ZDlm
MDk5MzQ2NmZhNzZiZjZkNmE1MDVjYWFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQpAQCAtOTIs
OCArOTIsNyBAQCBURVNUKFdlYktpdCwgQ29udGV4dE1lbnVEb3dubG9hZEhUTUxEb3dubG9hZEF0
dHJpYnV0ZSkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7CiAKLSAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENy
ZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRvV0soIk15R3JvdXAiKS5nZXQoKSkpOwotICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Cisg
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VO
YXZpZ2F0aW9uQ2xpZW50VjMgbG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50
LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CkBAIC0xNDMsOCArMTQyLDcgQEAgVEVTVChXZWJL
aXQsIENvbnRleHRNZW51RG93bmxvYWRIVE1MRG93bmxvYWRBdHRyaWJ1dGVXaXRoU2xhc2hlcykK
IHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6
OmNyZWF0ZUNvbnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7CiAKLSAgICBXS1JldGFpblB0cjxX
S1BhZ2VHcm91cFJlZj4gcGFnZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJ
ZGVudGlmaWVyKFV0aWw6OnRvV0soIk15R3JvdXAiKS5nZXQoKSkpOwotICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50VjMgbG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXpl
b2YobG9hZGVyQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0KaW5kZXggZjljMGQxZmJmYzYxNzI1NTIzYmM1
ZjYxMzg2MTY2ZDZkMjczZmJhMC4uMmE1YTJiZDZkZjg4NWE3NTBjN2JhYmEzOWUwYzc3NzI5ZGMy
YmE1YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0Vk
aXRvckNvbW1hbmRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21h
Yy9FZGl0b3JDb21tYW5kcy5tbQpAQCAtNDUsMTQgKzQ1LDEzIEBAIFRFU1QoV2ViS2l0LCBTY3Jv
bGxCeUxpbmVDb21tYW5kcykKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRXaXRoSW5qZWN0ZWRCdW5kbGUoKSk7CiAK
KyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2Vz
KGFkb3B0V0soV0tQYWdlQ29weVBhZ2VDb25maWd1cmF0aW9uKHdlYlZpZXcucGFnZSgpKSkuZ2V0
KCkpOworCiAgICAgLy8gVHVybiBvZmYgdGhyZWFkZWQgc2Nyb2xsaW5nOyBzeW5jaHJvbm91c2x5
IHdhaXRpbmcgZm9yIHRoZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRpb24gdG8KICAgICAvLyB1
cGRhdGUgdXNpbmcgV0tQYWdlRm9yY2VSZXBhaW50IHdvdWxkIGJlIGJldHRlciwgYnV0IGZvciBz
b21lIHJlYXNvbiB0aGUgdGVzdCBzdGlsbCBmYWlscyBvY2Nhc2lvbmFsbHkuCi0gICAgV0tSZXRh
aW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cCA9IGFkb3B0V0soV0tQYWdlR3JvdXBDcmVh
dGVXaXRoSWRlbnRpZmllcihVdGlsOjp0b1dLKCJOb1RocmVhZGVkU2Nyb2xsaW5nUGFnZUdyb3Vw
IikuZ2V0KCkpKTsKLSAgICBXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzID0gV0tQYWdlR3Jv
dXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXAuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRU
aHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKLQotICAgIFBsYXRm
b3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Ci0KKyAg
ICAKICAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAgbG9hZGVyQ2xpZW50OwogICAgIG1lbXNl
dCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURl
bGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJl
SW5QaWN0dXJlRGVsZWdhdGUubW0KaW5kZXggODQyMDIxMGY3NjM1MTFhNDQwMDE4NWI3MGU4MzQ0
MzI0MTRhOWI1Ni4uMzEzZmY4NmJlYmZjZTlhOTZlNWViMDZiMjY1M2Q5M2MzMjc5ODU1YSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5Q
aWN0dXJlRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0KQEAgLTIwMCwxMyArMjAwLDEyIEBAIFRF
U1QoUGljdHVyZUluUGljdHVyZSwgQXVkaW9DYW5ub3RUb2dnbGVQaWN0dXJlSW5QaWN0dXJlKQog
VEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1BhZ2VVSUNsaWVudCkKIHsKICAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25m
aWd1cmF0aW9uKG51bGxwdHIpKTsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFn
ZUdyb3VwID0gYWRvcHRXSyhXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFV0aWw6OnRv
V0soIlBpY3R1cmVJblBpY3R1cmUiKS5nZXQoKSkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cC5nZXQoKSk7Cisg
ICAgCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJl
bmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkp
LmdldCgpKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQocHJlZmVyZW5j
ZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVk
aWFQbGF5YmFjayhwcmVmZXJlbmNlcywgdHJ1ZSk7Ci0gICAgCi0gICAgUGxhdGZvcm1XZWJWaWV3
IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKLSAgICAKKwogICAgIFdL
UGFnZVVJQ2xpZW50VjEwIHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVv
Zih1aUNsaWVudCkpOwogICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDEwOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2ll
cy5tbQppbmRleCAzMTQ1MDhlOWIzZTgwZjIxM2Q3Yzk0MjhmYmZjNWNmMDM2NDc1MTI3Li43NjJm
NjgyZjM3MDk2MDMyNTM3YjBkZmRmMzE1Njc0Y2NiNmExMjkyIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQpA
QCAtODEwLDkgKzgxMCw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNp
ZXNBcmJpdHJhcnlVc2VyR2VzdHVyZVF1aXJrKQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbQXV0b3BsYXlQb2xpY2llc0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcg
c2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAotICAgIFdLUmV0YWluUHRy
PFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzID0gYWRvcHRXSyhXS1ByZWZlcmVuY2VzQ3Jl
YXRlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhwcmVm
ZXJlbmNlcy5nZXQoKSwgdHJ1ZSk7Ci0gICAgV0tQYWdlR3JvdXBTZXRQcmVmZXJlbmNlcyhXS1Bh
Z2VHZXRQYWdlR3JvdXAoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5nXSksIHByZWZlcmVuY2VzLmdl
dCgpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKF9fYnJp
ZGdlIFdLUHJlZmVyZW5jZXNSZWYpd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByZWZlcmVu
Y2VzLCB0cnVlKTsKIAogICAgIFtkZWxlZ2F0ZSBzZXRBbGxvd2VkQXV0b3BsYXlRdWlya3NGb3JV
Ukw6Xl9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKE5TVVJMICp1cmwpCiAgICAgewpAQCAtODQzLDkg
Kzg0MSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNpZXNBdXRvcGxh
eVF1aXJrcykKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9wbGF5UG9saWNpZXNE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBw
cmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBXS1ByZWZl
cmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUp
OwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFt3ZWJW
aWV3IF9wYWdlRm9yVGVzdGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7CisgICAgV0tQcmVmZXJl
bmNlc1NldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVm
KXdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3RXaXRoQXVkaW8gPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJhdXRvcGxheS1jaGVj
ayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl1dOwogCkBAIC05MDEsOSArODk3LDcgQEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMs
IFdlYnNpdGVQb2xpY2llc1BlckRvY3VtZW50QXV0b3BsYXlCZWhhdmlvclF1aXJrcykKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9wbGF5UG9saWNpZXNEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07CiAKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBwcmVmZXJlbmNlcyA9IGFk
b3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZSgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0TmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MocHJlZmVyZW5jZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdy
b3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKFt3ZWJWaWV3IF9wYWdlRm9yVGVz
dGluZ10pLCBwcmVmZXJlbmNlcy5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1NldE5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKXdlYlZpZXcuZ2V0KCku
Y29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcywgdHJ1ZSk7CiAKICAgICByZWNlaXZlZEF1dG9wbGF5
RXZlbnQgPSBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tCmlu
ZGV4IDUzZmNjODk5ZTgwNGQzMjJiYWY5ODcwOTJiYjNmOTQ3ZWY3NDBiNjcuLjJmNDBhODM0ODYx
YzVlY2I3NjZmNWRmMzA1ZmJkMDQ1MTBiOTU4ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24ubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3Np
dGlvbi5tbQpAQCAtNDUsMTggKzQ1LDE3IEBAIFRFU1QoV2ViS2l0LCBGaXJzdFJlc3BvbmRlclNj
cm9sbGluZ1Bvc2l0aW9uKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4
dCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKIAot
ICAgIC8vIFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5n
IGZvciB0aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCi0gICAgLy8gdXBkYXRlIHVz
aW5nIFdLUGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFz
b24gdGhlIHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgotICAgIFdLUmV0YWluUHRyPFdL
UGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAgPSBhZG9wdFdLKFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElk
ZW50aWZpZXIoVXRpbDo6dG9XSygiTm9UaHJlYWRlZFNjcm9sbGluZ1BhZ2VHcm91cCIpLmdldCgp
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJl
ZmVyZW5jZXMocGFnZUdyb3VwLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRT
Y3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7Ci0KICAgICBSZXRhaW5QdHI8TlNX
aW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKQogICAgICAgICBzdHlsZU1hc2s6TlNCb3Jk
ZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9d
KTsKICAgICBbd2luZG93LmdldCgpIG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07CiAgICAgRVhQ
RUNUX1RSVUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2libGVdKTsKIAotICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisgICAgUGxhdGZvcm1X
ZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFn
ZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3ZWJWaWV3LnBhZ2UoKSkpLmdldCgpKTsKKworICAgIC8v
IFR1cm4gb2ZmIHRocmVhZGVkIHNjcm9sbGluZzsgc3luY2hyb25vdXNseSB3YWl0aW5nIGZvciB0
aGUgbWFpbiB0aHJlYWQgc2Nyb2xsIHBvc2l0aW9uIHRvCisgICAgLy8gdXBkYXRlIHVzaW5nIFdL
UGFnZUZvcmNlUmVwYWludCB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCBmb3Igc29tZSByZWFzb24gdGhl
IHRlc3Qgc3RpbGwgZmFpbHMgb2NjYXNpb25hbGx5LgorICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJl
YWRlZFNjcm9sbGluZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAogICAgIFdLUGFnZU5h
dmlnYXRpb25DbGllbnRWMCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQs
IDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKQEAgLTgyLDcgKzgxLDcgQEAgVEVTVChXZWJLaXQs
IEZpcnN0UmVzcG9uZGVyU2Nyb2xsaW5nUG9zaXRpb24pCiAKICAgICBFWFBFQ1RfSlNfRVEod2Vi
Vmlldy5wYWdlKCksICJ3aW5kb3cuc2Nyb2xsWSIsICI0MCIpOwogCi0gICAgUGxhdGZvcm1XZWJW
aWV3IG5ld1dlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKyAgICBQbGF0
Zm9ybVdlYlZpZXcgbmV3V2ViVmlldyhjb250ZXh0LmdldCgpKTsKICAgICBXS1BhZ2VTZXRQYWdl
TmF2aWdhdGlvbkNsaWVudChuZXdXZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsK
IAogICAgIFt3aW5kb3cuZ2V0KCkuY29udGVudFZpZXcgYWRkU3VidmlldzpuZXdXZWJWaWV3LnBs
YXRmb3JtVmlldygpXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KaW5kZXggNjA1NWQ4ZDIzMTFmY2Y4
NmI0Mjk0OTMzMTcwZWQ0MWUxZDFhYWU2Ni4uZmIwYWE5YTc3MDg5YmNiYjBkZWY1N2EzYmQ2ZmZm
ODk5NTUyNDIwMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVs
bHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KQEAgLTEyMCw5ICsxMjAsOCBAQCB2
b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjppbml0aWFsaXplVmlldyhXS1ZpZXcgKndr
VmlldykKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2tWaWV3LnBhZ2VSZWYsICZ1aUNsaWVu
dC5iYXNlKTsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBpZGVudGlmaWVyID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRnVsbHNjcmVlblpvb21Jbml0aWFs
RnJhbWVQcmVmZXJlbmNlcyIpKTsKLSAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVmPiBj
dXN0b21QcmVmZXJlbmNlcyA9IGFkb3B0V0soV0tQcmVmZXJlbmNlc0NyZWF0ZVdpdGhJZGVudGlm
aWVyKGlkZW50aWZpZXIuZ2V0KCkpKTsKKyAgICBXS1JldGFpblB0cjxXS1ByZWZlcmVuY2VzUmVm
PiBjdXN0b21QcmVmZXJlbmNlcyA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhh
ZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbih3a1ZpZXcucGFnZVJlZikpLmdldCgp
KTsKICAgICBXS1ByZWZlcmVuY2VzU2V0RnVsbFNjcmVlbkVuYWJsZWQoY3VzdG9tUHJlZmVyZW5j
ZXMuZ2V0KCksIHRydWUpOwotICAgIFdLUGFnZUdyb3VwU2V0UHJlZmVyZW5jZXMoV0tQYWdlR2V0
UGFnZUdyb3VwKHdrVmlldy5wYWdlUmVmKSwgY3VzdG9tUHJlZmVyZW5jZXMuZ2V0KCkpOwogfQog
CiB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjp0ZWFyZG93blZpZXcoV0tWaWV3ICp3
a1ZpZXcpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZp
ZXdHdGsuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNw
cAppbmRleCAzMGNjODQ1MTRjM2JlZjU0YThlMmNjNjk5ZDg5MGJhOTMzNmFhY2UzLi41NzM5ZmFm
ZTNkZmQ5M2RhNzgyOWY0YmIyOGJjODNkZTYxYjA0Y2FmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKQEAgLTM2LDExICszNiwxMCBAQAogCiBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJW
aWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYp
CitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJl
ZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0
aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNv
bmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRleHRSZWYpOwot
ICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbi5nZXQoKSwg
cGFnZUdyb3VwUmVmKTsKIAogICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSk7CiB9
CkBAIC01NCw3ICs1Myw2IEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFn
ZVJlZiByZWxhdGVkUGFnZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9u
UmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkp
OwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCks
IFdLUGFnZUdldENvbnRleHQocmVsYXRlZFBhZ2UpKTsKLSAgICBXS1BhZ2VDb25maWd1cmF0aW9u
U2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldFBhZ2VHcm91cChyZWxh
dGVkUGFnZSkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRSZWxhdGVkUGFnZShjb25maWd1
cmF0aW9uLmdldCgpLCByZWxhdGVkUGFnZSk7CiAKICAgICBpbml0aWFsaXplKGNvbmZpZ3VyYXRp
b24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1X
ZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tCmluZGV4IDYzNjY4OTE4YWQzMmY3MTJkZTg3YWUzZWQxYjQwMTFmN2FiN2I5ZTIuLmU1MWRl
NzY5MGQ1ZGE1NWJjYmVhYjU2ZTk5MzY5YWNkYTk2YmY3YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTQ4LDEzICs0OCwxMiBAQCBQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZp
Z3VyYXRpb24pCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLCBbV0tWaWV3IGNsYXNzXSk7
CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0
cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VD
b25maWd1cmF0aW9uQ3JlYXRlKCkpOwotICAgIAorCiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNl
dENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dFJlZik7Ci0gICAgV0tQYWdlQ29u
ZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBSZWYp
OwotICAgIAorCiAgICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdldCgpLCBbV0tWaWV3IGNs
YXNzXSk7CiB9CiAKQEAgLTYzLDIyICs2MiwxMSBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3Jt
V2ViVmlldyhXS1BhZ2VSZWYgcmVsYXRlZFBhZ2UpCiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29u
ZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29uZmlndXJhdGlv
bkNyZWF0ZSgpKTsKICAgICAKICAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29udGV4dChjb25m
aWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VHZXRDb250ZXh0KHJlbGF0ZWRQYWdlKSk7Ci0gICAgV0tQ
YWdlQ29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9uLmdldCgpLCBXS1BhZ2VH
ZXRQYWdlR3JvdXAocmVsYXRlZFBhZ2UpKTsKICAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UmVs
YXRlZFBhZ2UoY29uZmlndXJhdGlvbi5nZXQoKSwgcmVsYXRlZFBhZ2UpOwogCiAgICAgaW5pdGlh
bGl6ZShjb25maWd1cmF0aW9uLmdldCgpLCBbV0tWaWV3IGNsYXNzXSk7CiB9CiAKLVBsYXRmb3Jt
V2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VH
cm91cFJlZiBwYWdlR3JvdXBSZWYsIENsYXNzIHdrVmlld1N1YmNsYXNzKQotewotICAgIFdLUmV0
YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdL
UGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7Ci0gICAgCi0gICAgV0tQYWdlQ29uZmlndXJhdGlv
blNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dFJlZik7Ci0gICAgV0tQYWdl
Q29uZmlndXJhdGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBS
ZWYpOwotICAgIAotICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSwgd2tWaWV3U3Vi
Y2xhc3MpOwotfQotCiBQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQogewogICAg
IFttX3dpbmRvdyBjbG9zZV07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9Q
bGF0Zm9ybVdlYlZpZXdXaW4uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1X
ZWJWaWV3V2luLmNwcAppbmRleCAwY2UzYjcxNTZlNWMwY2RiY2UyMTViOGM4MmM4MDQ0NmJlYmJj
NmQyLi5mNzgzMTE2Mjk0MWExMDU4NDEzNTZmNDg4NTViNWIxYjY2NmIzZTcyIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAKQEAgLTU3LDExICs1
NywxMCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVnaXN0ZXJXaW5kb3dDbGFzcygpCiAgICAg
OjpSZWdpc3RlckNsYXNzRXhXKCZ3bmRDbGFzcyk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxh
dGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYg
Y29udGV4dFJlZikKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBj
b25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAg
IFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRl
eHRSZWYpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmlndXJhdGlv
bi5nZXQoKSwgcGFnZUdyb3VwUmVmKTsKIAogICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5n
ZXQoKSk7CiB9CkBAIC03NSw3ICs3NCw2IEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJW
aWV3KFdLUGFnZVJlZiByZWxhdGVkUGFnZSkKIHsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmPiBjb25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9u
Q3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRp
b24uZ2V0KCksIFdLUGFnZUdldENvbnRleHQocmVsYXRlZFBhZ2UpKTsKLSAgICBXS1BhZ2VDb25m
aWd1cmF0aW9uU2V0UGFnZUdyb3VwKGNvbmZpZ3VyYXRpb24uZ2V0KCksIFdLUGFnZUdldFBhZ2VH
cm91cChyZWxhdGVkUGFnZSkpOwogICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRSZWxhdGVkUGFn
ZShjb25maWd1cmF0aW9uLmdldCgpLCByZWxhdGVkUGFnZSk7CiAKICAgICBpbml0aWFsaXplKGNv
bmZpZ3VyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUv
UGxhdGZvcm1XZWJWaWV3V1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3Jt
V2ViVmlld1dQRS5jcHAKaW5kZXggNjlmOWY2Mjk1ZjBlNTEwNjAxZWI1NjQzZmI4MDVlZjc1ZWU2
ZjgyOC4uNDc2ZWE0ODQzZmI3Y2ZkZjNhNWM1MjJlYjg2MzU2NTAyM2IyZTQwNSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCkBAIC0zMiwxMiAr
MzIsMTEgQEAKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCi1QbGF0Zm9ybVdlYlZpZXc6
OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwUmVmKQorUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYpCiAgICAgOiBtX3dpbmRvdyhudWxscHRyKQogewogICAgIFdLUmV0YWlu
UHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdFdLKFdLUGFn
ZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldENvbnRl
eHQoY29uZmlndXJhdGlvbi5nZXQoKSwgY29udGV4dFJlZik7Ci0gICAgV0tQYWdlQ29uZmlndXJh
dGlvblNldFBhZ2VHcm91cChjb25maWd1cmF0aW9uLmdldCgpLCBwYWdlR3JvdXBSZWYpOwogCiAg
ICAgaW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLmdldCgpKTsKIH0KQEAgLTUzLDcgKzUyLDYgQEAg
UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHJlbGF0ZWRQYWdlKQog
ewogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZpZ3VyYXRpb24g
PSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CiAgICAgV0tQYWdlQ29uZmln
dXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgV0tQYWdlR2V0Q29udGV4dChy
ZWxhdGVkUGFnZSkpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRQYWdlR3JvdXAoY29uZmln
dXJhdGlvbi5nZXQoKSwgV0tQYWdlR2V0UGFnZUdyb3VwKHJlbGF0ZWRQYWdlKSk7CiAgICAgV0tQ
YWdlQ29uZmlndXJhdGlvblNldFJlbGF0ZWRQYWdlKGNvbmZpZ3VyYXRpb24uZ2V0KCksIHJlbGF0
ZWRQYWdlKTsKIAogICAgIGluaXRpYWxpemUoY29uZmlndXJhdGlvbi5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGFhMWQ1YmRlMTRiZWIzN2Vl
NTRlOTJiZjVlMjk1MzdlZjllYTU2NjUuLjdhOTQ3MTRiZjQzNGI5NGQzNGFkYzI3ZWQzZWVlMWRk
M2U5ZjQyMDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC01NjYsOCArNTY2LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJn
YywgY29uc3QgY2hhciogYXJndltdKQogICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6aW5zdGFsbE1v
Y2tHYW1lcGFkUHJvdmlkZXIoKTsKICNlbmRpZgogCi0gICAgbV9wYWdlR3JvdXAuYWRvcHQoV0tQ
YWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRpZmllcih0b1dLKCJXZWJLaXRUZXN0UnVubmVyUGFnZUdy
b3VwIikuZ2V0KCkpKTsKLQogICAgIG1fZXZlbnRTZW5kZXJQcm94eSA9IG1ha2VVbmlxdWU8RXZl
bnRTZW5kZXJQcm94eT4odGhpcyk7CiB9CiAKQEAgLTY5OSw3ICs2OTcsNiBAQCBXS1JldGFpblB0
cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29u
ZmlndXJhdGlvbihjbwogCiAgICAgYXV0byBwYWdlQ29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQ
YWdlQ29uZmlndXJhdGlvbkNyZWF0ZSgpKTsKICAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0Q29u
dGV4dChwYWdlQ29uZmlndXJhdGlvbi5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsKLSAgICBXS1Bh
Z2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKHBhZ2VDb25maWd1cmF0aW9uLmdldCgpLCBtX3Bh
Z2VHcm91cC5nZXQoKSk7CiAgICAgCiAgICAgaWYgKG9wdGlvbnMudXNlRXBoZW1lcmFsU2Vzc2lv
bigpKSB7CiAgICAgICAgIGF1dG8gZXBoZW1lcmFsRGF0YVN0b3JlID0gYWRvcHRXSyhXS1dlYnNp
dGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0ZW50RGF0YVN0b3JlKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDQwM2VkYzIzZTg1MGExNDg0YzYxMmQ1OWQ0
ZGJkYjA5OTFhMmMxN2IuLmZmZjcyMGNjOTQ1ZjdlNzI2MzRiOWFkMTVhODU5NDMwNWRkZWFlOWUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTU2OCw3ICs1Njgs
NiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVdlYlZpZXc+IG1fbWFp
bldlYlZpZXc7CiAgICAgVmVjdG9yPFVuaXF1ZVJlZjxQbGF0Zm9ybVdlYlZpZXc+PiBtX2F1eGls
aWFyeVdlYlZpZXdzOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250ZXh0Owot
ICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBtX3BhZ2VHcm91cDsKICAgICBXS1JldGFp
blB0cjxXS1VzZXJDb250ZW50Q29udHJvbGxlclJlZj4gbV91c2VyQ29udGVudENvbnRyb2xsZXI7
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDE2OWU3N2RlOGViNTNiNjJkN2Q5OWM0
MzRjNDkxNTcxOTllNzRlZGYuLjBjMmYwMDdlNTc3NGZmOTFiNWI1OGQwYTk0Y2YxOTkzM2JkOTli
ZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVy
R3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0
ay5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0
aWFsaXplKCkKIAogV0tQcmVmZXJlbmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVm
ZXJlbmNlcygpCiB7Ci0gICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdl
R3JvdXAuZ2V0KCkpOworICAgIHJldHVybiBXS1BhZ2VDb25maWd1cmF0aW9uR2V0UHJlZmVyZW5j
ZXMoYWRvcHRXSyhXS1BhZ2VDb3B5UGFnZUNvbmZpZ3VyYXRpb24obV9tYWluV2ViVmlldy0+cGFn
ZSgpKSkuZ2V0KCkpOwogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3ko
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJX
aW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3Bw
CmluZGV4IDAyNzM3YmRhNzk1MDQ4MjA5MmM5YTk5YTE2OWY5OThkMTFjNjE2OTAuLmFjNzI0N2Rl
NTM1NTE3OGI1Y2FiY2YwMjI2YzY2NjI0ZjI5ZWQ3NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogCisjaW5jbHVk
ZSAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgogI2luY2x1ZGUgPFdpbkJhc2UuaD4KICNpbmNsdWRlIDxmY250bC5oPgpAQCAtMzYsNyArMzcs
NiBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCi0K
ICNkZWZpbmUgSU5KRUNURURfQlVORExFX0RMTF9OQU1FICJUZXN0UnVubmVySW5qZWN0ZWRCdW5k
bGUuZGxsIgogCiBuYW1lc3BhY2UgV1RSIHsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogCiBXS1ByZWZlcmVuY2VzUmVmIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVByZWZlcmVuY2VzKCkKIHsKLSAgICByZXR1cm4gV0tQYWdlR3Jv
dXBHZXRQcmVmZXJlbmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7CisgICAgcmV0dXJuIFdLUGFnZUNv
bmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhhZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJh
dGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCkpKS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKaW5kZXggZDc2MTljYzFjNzAwYTY4NjAxODdlODBmNjAx
NGJmYWRiMTEzMmM4Zi4uOTMxYmFkNTQxYTA1NzYzN2RiN2NiMDI0ZjRlNjhjNjA3MWE0NDJlMSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNw
cApAQCAtNTAsNyArNTAsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQogCiBXS1ByZWZlcmVuY2VzUmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVByZWZlcmVu
Y2VzKCkKIHsKLSAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhtX3BhZ2VHcm91
cC5nZXQoKSk7CisgICAgcmV0dXJuIFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQcmVmZXJlbmNlcyhh
ZG9wdFdLKFdLUGFnZUNvcHlQYWdlQ29uZmlndXJhdGlvbihtX21haW5XZWJWaWV3LT5wYWdlKCkp
KS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCg==
</data>
<flag name="review"
          id="473149"
          type_id="1"
          status="-"
          setter="clopez"
    />
    <flag name="commit-queue"
          id="473122"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>