<?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>194122</bug_id>
          
          <creation_ts>2019-01-31 16:30:42 -0800</creation_ts>
          <short_desc>Capture state should be managed consistently when doing process swapping</short_desc>
          <delta_ts>2019-02-04 09:37:09 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1500879</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-31 16:30:42 -0800</bug_when>
    <thetext>Capture state should be kept consistently when doing process swapping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500880</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-31 16:30:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/47609293&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500891</commentid>
    <comment_count>2</comment_count>
      <attachid>360804</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-01-31 16:40:48 -0800</bug_when>
    <thetext>Created attachment 360804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501175</commentid>
    <comment_count>3</comment_count>
      <attachid>360874</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-01 11:08:40 -0800</bug_when>
    <thetext>Created attachment 360874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501176</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-01 11:12:21 -0800</bug_when>
    <thetext>Attachment 360874 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4700:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4708:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501179</commentid>
    <comment_count>5</comment_count>
      <attachid>360875</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-01 11:17:38 -0800</bug_when>
    <thetext>Created attachment 360875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501183</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-01 11:19:39 -0800</bug_when>
    <thetext>Attachment 360875 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4700:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4708:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501226</commentid>
    <comment_count>7</comment_count>
      <attachid>360885</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-01 12:58:52 -0800</bug_when>
    <thetext>Created attachment 360885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501227</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-01 13:00:33 -0800</bug_when>
    <thetext>Attachment 360885 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4700:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4708:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501253</commentid>
    <comment_count>9</comment_count>
      <attachid>360891</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-01 13:30:13 -0800</bug_when>
    <thetext>Created attachment 360891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501255</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-01 13:32:38 -0800</bug_when>
    <thetext>Attachment 360891 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4700:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4708:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501273</commentid>
    <comment_count>11</comment_count>
      <attachid>360895</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-01 14:12:45 -0800</bug_when>
    <thetext>Created attachment 360895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501276</commentid>
    <comment_count>12</comment_count>
      <attachid>360896</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-01 14:13:52 -0800</bug_when>
    <thetext>Created attachment 360896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501277</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-01 14:15:55 -0800</bug_when>
    <thetext>Attachment 360896 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4700:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4708:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501296</commentid>
    <comment_count>14</comment_count>
      <attachid>360906</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-01 14:44:17 -0800</bug_when>
    <thetext>Created attachment 360906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501297</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-01 14:47:14 -0800</bug_when>
    <thetext>Attachment 360906 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4700:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4708:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501858</commentid>
    <comment_count>16</comment_count>
      <attachid>360906</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-04 09:37:07 -0800</bug_when>
    <thetext>Comment on attachment 360906
Patch

Clearing flags on attachment: 360906

Committed r240928: &lt;https://trac.webkit.org/changeset/240928&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501859</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-04 09:37:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360804</attachid>
            <date>2019-01-31 16:40:48 -0800</date>
            <delta_ts>2019-02-01 11:08:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194122-20190131164047.patch</filename>
            <type>text/plain</type>
            <size>12346</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2M2JjYWUxY2ZiODU2OTll
MzRlOThmNTdkYWRlYmZjNTRhOGJjODIuLmI2YTUyN2UxMTllYjk4NjVkNzhhMDg5YmNlOWY3MzZm
ZmFjYWYwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDEtMzEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxk
IGJlIG1hbmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIFBTT04sIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZSBpcyBjYWxsZWQuCisgICAgICAgIEl0IHJlc2V0cyB0aGUgbWVkaWEgc3RhdGUsIGJ1
dCBkb2VzIG5vdCBjYWxsIHRoZSBjbGllbnQgZGVsZWdhdGVzLgorICAgICAgICBJbnN0ZWFkIG9m
IGRpcmVjdGx5IHVwZGF0ZSB0aGUgbWVkaWEgc3RhdGUsIGNhbGwgdGhlIHJvdXRpbmUgdXNlZCB0
byB1cGRhdGUgaXQgc28gdGhhdCBjbGllbnQgZGVsZWdhdGVzIGFyZSBjYWxsZWQuCisKKyAgICAg
ICAgQWRkaXRpb25hbGx5LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB3
ZXJlIGtlcHQgaW4gYSBtYXAgd2hvc2Uga2V5IHdhcyB0aGUgcHJvY2VzcyBhdHRhY2hlZCB0byB0
aGUgd2ViIHBhZ2UgcHJveHkuCisgICAgICAgIEdpdmVuIHRoZSBwcm9jZXNzIG1pZ2h0IGNoYW5n
ZSwgdGhpcyBtYXkgbWVzcyB1cCB3aXRoIHRoZSBtYXAgYW5kIGxlYWQgdG8gaW5jb25zaXN0ZW50
IHN0YXRlLgorICAgICAgICBJbnN0ZWFkLCBrZWVwIGEgSGFzaFNldCBvZiBhbGwgbWFuYWdlciBw
cm94aWVzIGFuZCBpdGVyYXRlIG92ZXIgdGhlbSB3aGVuZXZlciBuZWVkZWQuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6flVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQcm9j
ZXNzTWFuYWdlcjo6bXV0ZUNhcHR1cmVNZWRpYVN0cmVhbXNFeGNlcHRJbik6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjplbmRlZENhcHR1cmVTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNldENhcHR1cmVFbmFibGVk
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmNhcHR1cmVEZXZp
Y2VzQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2Vy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorCiAyMDE5LTAxLTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gQVBJIHRlc3QgdG8gY292ZXIgVUlDbGllbnQgY2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luIGJlaW5nIG51bGxwdHIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBkNWExYzQ2OTIzNDhhMjQwN2MwMTNhYTM2ZmU4
NDFlYzg4OWExNzMyLi4wMTBjMTdkZGI0ZjQ2ODExYTA1NzljY2ExOTk5Y2RmMzIzMDkxZmIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC01MSwyMiArNTEsMjcgQEAg
c3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKIH0KICNlbmRpZgogCitIYXNoU2V0
PFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Kj4mIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjphbGxNYW5hZ2VycygpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hTZXQ8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkqPj4gbWFuYWdlcnM7CisgICAgcmV0dXJuIG1hbmFnZXJzOworfQorCiBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBt
X3JlamVjdGlvblRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZWplY3Rpb25UaW1lckZpcmVkKQogICAgICwgbV93YXRj
aGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojp3YXRjaGRvZ1RpbWVyRmlyZWQpCiB7Ci0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKLSAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuYWRkVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKnRoaXMpOwotI2VuZGlmCisgICAg
YWxsTWFuYWdlcnMoKS5hZGQodGhpcyk7CiB9CiAKIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKQog
ewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6
OnNpbmdsZXRvbigpLnJlbW92ZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
KCp0aGlzKTsKKyAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuZW5kZWRD
YXB0dXJlU2Vzc2lvbigqdGhpcyk7CiAjZW5kaWYKICAgICBpbnZhbGlkYXRlUGVuZGluZ1JlcXVl
c3RzKCk7CisgICAgYWxsTWFuYWdlcnMoKS5yZW1vdmUodGhpcyk7CiB9CiAKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVQZW5kaW5nUmVxdWVz
dHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggZWFjY2U2ZjkyYjY1ZmZj
YzI5YmU0ZDEzNzg4ZGE4MWQ5MTU5MDU1OC4uZmU0YmZmOGMyMzA1MGI4OTM1YTdiMWMxOTI3ZjI2
ZDRmNDJiZDUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC00NCw2ICs0
NCw4IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB+VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkoKTsKIAorICAgIHN0YXRpYyBIYXNoU2V0PFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Kj4mIGFsbE1hbmFnZXJzKCk7CisKICAgICBXZWJQYWdlUHJv
eHkmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KIAogICAgIHZvaWQgaW52YWxpZGF0
ZVBlbmRpbmdSZXF1ZXN0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCmluZGV4IGFkZGIwMzUxNzIyZGZjMDBiYTUyNzA3ZDI5
OTI5ZDk1YWY1ZmExY2MuLjRiOTY4NTU4YTA0NzRlOTZkMDcwMzdlOWUyNWIxYTFmNmY3ZjZmNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFu
YWdlci5jcHAKQEAgLTQ0LDEwICs0NCw2IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzU3RhdGUoKSB7
IH0KICAgICBQcm9jZXNzU3RhdGUoY29uc3QgUHJvY2Vzc1N0YXRlJikgPSBkZWxldGU7CiAKLSAg
ICB2b2lkIGFkZFJlcXVlc3RNYW5hZ2VyKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Jik7Ci0gICAgdm9pZCByZW1vdmVSZXF1ZXN0TWFuYWdlcihVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSYpOwotICAgIFZlY3RvcjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSo+JiBtYW5hZ2VycygpIHsgcmV0dXJuIG1fbWFuYWdlcnM7IH0K
LQogICAgIGVudW0gU2FuZGJveEV4dGVuc2lvblR5cGUgOiB1aW50MzJfdCB7CiAgICAgICAgIE5v
bmUgPSAwLAogICAgICAgICBWaWRlbyA9IDEgPDwgMCwKQEAgLTY0LDggKzYwLDYgQEAgcHVibGlj
OgogICAgIHZvaWQgcmV2b2tlQXVkaW9FeHRlbnNpb24oKSAgeyBtX3BhZ2VTYW5kYm94RXh0ZW5z
aW9uc0dyYW50ZWQgJj0gfkF1ZGlvOyB9CiAKIHByaXZhdGU6Ci0KLSAgICBWZWN0b3I8VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqPiBtX21hbmFnZXJzOwogICAgIFNhbmRi
b3hFeHRlbnNpb25zR3JhbnRlZCBtX3BhZ2VTYW5kYm94RXh0ZW5zaW9uc0dyYW50ZWQgeyBTYW5k
Ym94RXh0ZW5zaW9uVHlwZTo6Tm9uZSB9OwogfTsKIApAQCAtODUsMjAgKzc5LDYgQEAgc3RhdGlj
IFByb2Nlc3NTdGF0ZSYgcHJvY2Vzc1N0YXRlKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKICAg
ICByZXR1cm4gKnN0YXRlOwogfQogCi12b2lkIFByb2Nlc3NTdGF0ZTo6YWRkUmVxdWVzdE1hbmFn
ZXIoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIHByb3h5KQotewotICAg
IEFTU0VSVCghbV9tYW5hZ2Vycy5jb250YWlucygmcHJveHkpKTsKLSAgICBtX21hbmFnZXJzLmFw
cGVuZCgmcHJveHkpOwotfQotCi12b2lkIFByb2Nlc3NTdGF0ZTo6cmVtb3ZlUmVxdWVzdE1hbmFn
ZXIoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIHByb3h5KQotewotICAg
IEFTU0VSVChtX21hbmFnZXJzLmNvbnRhaW5zKCZwcm94eSkpOwotICAgIG1fbWFuYWdlcnMucmVt
b3ZlRmlyc3RNYXRjaGluZyhbJnByb3h5XShhdXRvIG90aGVyKSB7Ci0gICAgICAgIHJldHVybiBv
dGhlciA9PSAmcHJveHk7Ci0gICAgfSk7Ci19Ci0KIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyJiBV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI+IG1hbmFnZXI7CkBAIC0xMTAsMzIgKzkw
LDEzIEBAIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcigp
CiB7CiB9CiAKLXZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmFkZFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBwcm94eSkKLXsKLSAgICBwcm9jZXNzU3RhdGUocHJveHkucGFnZSgpLnByb2Nlc3Mo
KSkuYWRkUmVxdWVzdE1hbmFnZXIocHJveHkpOwotfQotCi12b2lkIFVzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyOjpyZW1vdmVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgcHJveHkpCi17Ci0gICAgZW5kZWRD
YXB0dXJlU2Vzc2lvbihwcm94eSk7Ci0KLSAgICBhdXRvJiBzdGF0ZSA9IHByb2Nlc3NTdGF0ZShw
cm94eS5wYWdlKCkucHJvY2VzcygpKTsKLSAgICBzdGF0ZS5yZW1vdmVSZXF1ZXN0TWFuYWdlcihw
cm94eSk7Ci0gICAgaWYgKHN0YXRlLm1hbmFnZXJzKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1
dG8gaXQgPSBzdGF0ZU1hcCgpLmZpbmQoJnByb3h5LnBhZ2UoKS5wcm9jZXNzKCkpOwotICAgICAg
ICBzdGF0ZU1hcCgpLnJlbW92ZShpdCk7Ci0gICAgfQotfQotCiB2b2lkIFVzZXJNZWRpYVByb2Nl
c3NNYW5hZ2VyOjptdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0V4Y2VwdEluKFdlYlBhZ2VQcm94eSYg
cGFnZVN0YXJ0aW5nQ2FwdHVyZSkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBmb3IgKGF1
dG8mIHN0YXRlIDogc3RhdGVNYXAoKSkgewotICAgICAgICBmb3IgKGF1dG8mIG1hbmFnZXIgOiBz
dGF0ZS52YWx1ZS0+bWFuYWdlcnMoKSkgewotICAgICAgICAgICAgaWYgKCZtYW5hZ2VyLT5wYWdl
KCkgPT0gJnBhZ2VTdGFydGluZ0NhcHR1cmUpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICBtYW5hZ2VyLT5wYWdlKCkuc2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQodHJ1
ZSk7Ci0gICAgICAgIH0KKyAgICBmb3IgKGF1dG8gbWFuYWdlciA6IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjphbGxNYW5hZ2VycygpKSB7CisgICAgICAgIGlmICgmbWFu
YWdlci0+cGFnZSgpID09ICZwYWdlU3RhcnRpbmdDYXB0dXJlKQorICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIG1hbmFnZXItPnBhZ2UoKS5zZXRNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZCh0
cnVlKTsKICAgICB9CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwYWdlU3RhcnRpbmdDYXB0dXJl
KTsKQEAgLTIxOCwxMyArMTc5LDEyIEBAIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnN0
YXJ0ZWRDYXB0dXJlU2Vzc2lvbihVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hCiB2b2lkIFVz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjplbmRlZENhcHR1cmVTZXNzaW9uKFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBwcm94eSkKIHsKICNpZiBFTkFCTEUoU0FOREJPWF9F
WFRFTlNJT05TKQotICAgIEFTU0VSVChzdGF0ZU1hcCgpLmNvbnRhaW5zKCZwcm94eS5wYWdlKCku
cHJvY2VzcygpKSk7CisgICAgYXV0byYgcHJvY2VzcyA9IHByb3h5LnBhZ2UoKS5wcm9jZXNzKCk7
CiAKLSAgICBhdXRvJiBzdGF0ZSA9IHByb2Nlc3NTdGF0ZShwcm94eS5wYWdlKCkucHJvY2Vzcygp
KTsKICAgICBib29sIGhhc0F1ZGlvQ2FwdHVyZSA9IGZhbHNlOwogICAgIGJvb2wgaGFzVmlkZW9D
YXB0dXJlID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvJiBtYW5hZ2VyIDogc3RhdGUubWFuYWdlcnMo
KSkgewotICAgICAgICBpZiAobWFuYWdlciA9PSAmcHJveHkpCisgICAgZm9yIChhdXRvIG1hbmFn
ZXIgOiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6YWxsTWFuYWdlcnMo
KSkgeworICAgICAgICBpZiAobWFuYWdlciA9PSAmcHJveHkgfHwgJm1hbmFnZXItPnBhZ2UoKS5w
cm9jZXNzKCkgIT0gJnByb2Nlc3MpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYg
KG1hbmFnZXItPnBhZ2UoKS5oYXNBY3RpdmVBdWRpb1N0cmVhbSgpKQogICAgICAgICAgICAgaGFz
QXVkaW9DYXB0dXJlID0gdHJ1ZTsKQEAgLTIzNSw2ICsxOTUsOSBAQCB2b2lkIFVzZXJNZWRpYVBy
b2Nlc3NNYW5hZ2VyOjplbmRlZENhcHR1cmVTZXNzaW9uKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYQogICAgIGlmIChoYXNBdWRpb0NhcHR1cmUgJiYgaGFzVmlkZW9DYXB0dXJlKQogICAg
ICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQoc3RhdGVNYXAoKS5jb250YWlucygmcHJvY2Vzcykp
OworICAgIGF1dG8mIHN0YXRlID0gcHJvY2Vzc1N0YXRlKHByb2Nlc3MpOworCiAgICAgVmVjdG9y
PFN0cmluZz4gcGFyYW1zOwogICAgIGlmICghaGFzQXVkaW9DYXB0dXJlICYmIHN0YXRlLmhhc0F1
ZGlvRXh0ZW5zaW9uKCkpIHsKICAgICAgICAgcGFyYW1zLmFwcGVuZChhdWRpb0V4dGVuc2lvblBh
dGgpOwpAQCAtMjY1LDIzICsyMjgsMTQgQEAgdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6
c2V0Q2FwdHVyZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIGlmIChlbmFibGVkKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8mIHN0YXRlIDogc3RhdGVNYXAoKSkgewotICAgICAg
ICBmb3IgKGF1dG8mIG1hbmFnZXIgOiBzdGF0ZS52YWx1ZS0+bWFuYWdlcnMoKSkKLSAgICAgICAg
ICAgIG1hbmFnZXItPnN0b3BDYXB0dXJlKCk7Ci0gICAgfQorICAgIGZvciAoYXV0byBtYW5hZ2Vy
IDogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmFsbE1hbmFnZXJzKCkp
CisgICAgICAgIG1hbmFnZXItPnN0b3BDYXB0dXJlKCk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiB7Ci0gICAgYXV0byYgbWFwID0g
c3RhdGVNYXAoKTsKLSAgICBmb3IgKGF1dG8mIHN0YXRlIDogbWFwKSB7Ci0gICAgICAgIGF1dG8q
IHByb2Nlc3MgPSBzdGF0ZS5rZXk7Ci0gICAgICAgIGZvciAoYXV0byYgbWFuYWdlciA6IHN0YXRl
LnZhbHVlLT5tYW5hZ2VycygpKSB7Ci0gICAgICAgICAgICBpZiAobWFwLmZpbmQocHJvY2Vzcykg
PT0gbWFwLmVuZCgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgbWFuYWdl
ci0+Y2FwdHVyZURldmljZXNDaGFuZ2VkKCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgZm9yIChh
dXRvIG1hbmFnZXIgOiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6YWxs
TWFuYWdlcnMoKSkKKyAgICAgICAgbWFuYWdlci0+Y2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiB9
CiAKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVE
ZXZpY2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBy
b2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci5oCmluZGV4IGFlMTZlYmVkODVkODBiZmRjYWMwNWVjNmI4MGM3NjQzYjhlZjUyOGIu
LjA0ZjFjMjk3M2Q2N2QxZDNiOWJlODEyMmM4ZTI2ZDk2OGFiOTU2MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaApAQCAtMzUsOSAr
MzUsNiBAQCBwdWJsaWM6CiAKICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcigpOwogCi0gICAg
dm9pZCBhZGRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYpOwotICAgIHZvaWQgcmVtb3ZlVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmKTsKLQogICAgIGJvb2wgd2lsbENyZWF0ZU1lZGlhU3RyZWFtKFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgYm9vbCB3aXRoQXVkaW8sIGJvb2wgd2l0
aFZpZGVvKTsKICAgICB2b2lkIG11dGVDYXB0dXJlTWVkaWFTdHJlYW1zRXhjZXB0SW4oV2ViUGFn
ZVByb3h5Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGMyYTRkNmExOTAyYWIzNjRkMDIxOTc2MDM2ODU4YjJkZTg2M2M4YTguLjNjNGM4NjQ5NjA0Y2Vj
Y2U5OThiMzU5ODEwMDg3MWE1NDUxMmVkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtNjYxOSw3ICs2NjE5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJl
c2V0U3RhdGUoUmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRlUmVhc29uKQogICAgICAgICBlZGl0
Q29tbWFuZC0+aW52YWxpZGF0ZSgpOwogCiAgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSBudWxscHRy
OwotICAgIG1fbWVkaWFTdGF0ZSA9IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZzsKKyAgICB1
cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nKTsK
IAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsK
QEAgLTc2NzcsNyArNzY3NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YQogICAgIEFTU0VS
VChmb2N1c01hbmFnZXIpOwogICAgIGZvY3VzTWFuYWdlci0+dXBkYXRlUGxheWJhY2tBdHRyaWJ1
dGVzRnJvbU1lZGlhU3RhdGUodGhpcywgc291cmNlRWxlbWVudElELCBuZXdTdGF0ZSk7CiAjZW5k
aWYKKyAgICB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UobmV3U3RhdGUpOworfQogCit2b2lk
IFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSkKK3sKICAgICBpZiAobmV3U3RhdGUgPT0gbV9tZWRp
YVN0YXRlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggNmZhYWNiODY2MzNhNTIyMDU1YjA2N2JiODcyYTJiZTkyZGFkOTFmYS4uNWI5
MDYyMGJmOTRiZWYzZTYxNzkyY2E3YmYxOTRhMTRkZmI3MjA0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyMzgsNiArMTIzOCw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaXNQbGF5aW5nQXVkaW8oKSBjb25zdCB7IHJldHVybiAhIShtX21lZGlhU3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdBdWRpbyk7IH0KICAgICB2b2lkIGlzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cywgdWludDY0X3QpOworICAgIHZvaWQgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGF0ZSk7CiAgICAgYm9vbCBo
YXNBY3RpdmVBdWRpb1N0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZSAmIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZTsgfQogICAgIGJv
b2wgaGFzQWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7IH0KICAg
ICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZUZsYWdz
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360874</attachid>
            <date>2019-02-01 11:08:40 -0800</date>
            <delta_ts>2019-02-01 11:17:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194122-20190201110839.patch</filename>
            <type>text/plain</type>
            <size>32780</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2M2JjYWUxY2ZiODU2OTll
MzRlOThmNTdkYWRlYmZjNTRhOGJjODIuLjU5NTYzZjU2YTI2ZWRlZWUxZmM5Njg2NTgxMjY2ZDEx
OWU3ZDEwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTktMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxk
IGJlIG1hbmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIFBTT04sIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZSBpcyBjYWxsZWQuCisgICAgICAgIEl0IHJlc2V0cyB0aGUgbWVkaWEgc3RhdGUsIGJ1
dCBkb2VzIG5vdCBjYWxsIHRoZSBjbGllbnQgZGVsZWdhdGVzLgorICAgICAgICBJbnN0ZWFkIG9m
IGRpcmVjdGx5IHVwZGF0ZSB0aGUgbWVkaWEgc3RhdGUsIGNhbGwgdGhlIHJvdXRpbmUgdXNlZCB0
byB1cGRhdGUgaXQgc28gdGhhdCBjbGllbnQgZGVsZWdhdGVzIGFyZSBjYWxsZWQuCisKKyAgICAg
ICAgQWRkaXRpb25hbGx5LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB3
ZXJlIGtlcHQgaW4gYSBtYXAgd2hvc2Uga2V5IHdhcyB0aGUgcHJvY2VzcyBhdHRhY2hlZCB0byB0
aGUgd2ViIHBhZ2UgcHJveHkuCisgICAgICAgIEdpdmVuIHRoZSBwcm9jZXNzIG1pZ2h0IGNoYW5n
ZSwgdGhpcyBtYXkgbWVzcyB1cCB3aXRoIHRoZSBtYXAgYW5kIGxlYWQgdG8gaW5jb25zaXN0ZW50
IHN0YXRlLgorICAgICAgICBJbnN0ZWFkLCBrZWVwIGEgSGFzaFNldCBvZiBhbGwgbWFuYWdlciBw
cm94aWVzIGFuZCBpdGVyYXRlIG92ZXIgdGhlbSB3aGVuZXZlciBuZWVkZWQuCisKKyAgICAgICAg
Q292ZXJlZCBieSBuZXcgQVBJIHRlc3QgYW5kIGxheW91dCB0ZXN0LgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfbWVk
aWFDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6flVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6bXV0ZUNhcHR1cmVNZWRpYVN0cmVhbXNF
eGNlcHRJbik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzdGFy
dGVkQ2FwdHVyZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQcm9jZXNzTWFu
YWdlcjo6ZW5kZWRDYXB0dXJlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBy
b2Nlc3NNYW5hZ2VyOjpzZXRDYXB0dXJlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3Rh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFE
aWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAxOS0w
MS0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFu
IEFQSSB0ZXN0IHRvIGNvdmVyIFVJQ2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbiBiZWluZyBudWxscHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCA0NDBkMDg4ZDc3M2E0MWY0M2Y5ZDA4Mzk1YWZlM2ViMjA3MWNk
NDhlLi5lOTQ3ODg5NTM0ZjAyMWJkOTk1N2U0MDJhMjRjMTAxODJkMGU0ZWI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU1NTUsNiAr
NTU1NSwyMyBAQCAtIChCT09MKV9tZWRpYUNhcHR1cmVFbmFibGVkCiAgICAgcmV0dXJuIF9wYWdl
LT5tZWRpYUNhcHR1cmVFbmFibGVkKCk7CiB9CiAKKy0gKF9XS01lZGlhQ2FwdHVyZVN0YXRlKV9t
ZWRpYUNhcHR1cmVTdGF0ZQoreworICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+bWVkaWFTdGF0ZUZs
YWdzKCk7CisKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9X
S01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVy
ZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICBpZiAo
c3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZp
Y2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0
aXZlQ2FtZXJhOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011
dGVkQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVk
aWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKKworICAg
IHJldHVybiBtZWRpYUNhcHR1cmVTdGF0ZTsKK30KKwogLSAodm9pZClfc2V0UGFnZU11dGVkOihf
V0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRTdGF0ZQogewogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncyBjb3JlU3RhdGUgPSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpO
b25lTXV0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaAppbmRleCAyOWFlNzkzNWMzNWUwMzAyY2VhZDUwYzljZmI2M2U1MDVi
OTA5MDE0Li5hYzE4ZDMxNmRiOGM1ZWE3ZTY0NzgwMDE0MDMzY2FiMzQwMmIyZjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKQEAgLTM5OSw2ICszOTksNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
UmVjdEVkZ2UpIHsKIC0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRp
YU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlv
cygxMS4wKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFDYXB0
dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TWVkaWFDYXB0dXJlRW5hYmxlZDopIEJPT0wgX21lZGlhQ2FwdHVyZUVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgX2NhblRvZ2dsZVBpY3R1cmVJblBpY3R1cmU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggZDVhMWM0NjkyMzQ4YTI0MDdjMDEzYWEz
NmZlODQxZWM4ODlhMTczMi4uMDc0MDU1OTVjNTQ2ZjBjNDU1NjU1ZjA2YzMwN2I0ZjNkYWIyNGNj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNTEsMjIgKzUxLDMz
IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVJlcXVlc3RJRCgpCiB9CiAjZW5kaWYKIAorSGFz
aFNldDxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSo+JiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6YWxsTWFuYWdlcnMoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Kj4+IG1hbmFnZXJzOworICAgIHJldHVybiBtYW5hZ2VyczsKK30KKwogVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQogICAg
ICwgbV9yZWplY3Rpb25UaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVqZWN0aW9uVGltZXJGaXJlZCkKICAgICAsIG1f
d2F0Y2hkb2dUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6d2F0Y2hkb2dUaW1lckZpcmVkKQogewotI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCi0gICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLmFk
ZFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KCp0aGlzKTsKKyAgICBhbGxN
YW5hZ2VycygpLmFkZCh0aGlzKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgbV93ZWJQcm9jZXNzID0g
JnBhZ2UucHJvY2VzcygpOwogI2VuZGlmCiB9CiAKIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKQog
eworICAgIEFTU0VSVChtX3dlYlByb2Nlc3MgPT0gJm1fcGFnZS5wcm9jZXNzKCkpOworCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xl
dG9uKCkucmVtb3ZlVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKnRoaXMp
OworICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5lbmRlZENhcHR1cmVT
ZXNzaW9uKCp0aGlzKTsKICNlbmRpZgogICAgIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsK
KyAgICBhbGxNYW5hZ2VycygpLnJlbW92ZSh0aGlzKTsKKwogfQogCiB2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCkK
QEAgLTU3Nyw0ICs1ODgsMTAgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6d2F0Y2hkb2dUaW1lckZpcmVkKCkKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlz
dCA9IGZhbHNlOwogfQogCitXZWJQcm9jZXNzUHJveHkmIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV93ZWJQcm9j
ZXNzID09ICZtX3BhZ2UucHJvY2VzcygpKTsKKyAgICByZXR1cm4gbV9wYWdlLnByb2Nlc3MoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aAppbmRleCBlYWNjZTZmOTJiNjVmZmNjMjliZTRkMTM3ODhkYTgxZDkxNTkwNTU4Li4zN2EzYjc4
MWFlMTI2NzhiNGZmYTBiYjg1NTcyY2M4ZmMwNGFjZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKQEAgLTM4LDEzICszOCwxNyBAQCBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBXZWJQcm9jZXNz
UHJveHk7CiAKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5PiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgflVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5KCk7CiAKKyAgICBzdGF0aWMgSGFzaFNldDxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSo+JiBhbGxNYW5hZ2VycygpOworCiAgICAgV2ViUGFnZVBy
b3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CisgICAgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzKCkgY29uc3Q7CiAKICAgICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMo
KTsKIApAQCAtMTE1LDYgKzExOSw5IEBAIHByaXZhdGU6CiAgICAgUnVuTG9vcDo6VGltZXI8VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fd2F0Y2hkb2dUaW1lcjsKICAg
ICBTZWNvbmRzIG1fY3VycmVudFdhdGNoZG9nSW50ZXJ2YWw7CiAgICAgYm9vbCBtX2hhc0ZpbHRl
cmVkRGV2aWNlTGlzdCB7IGZhbHNlIH07CisjaWZuZGVmIE5ERUJVRworICAgIFdlYlByb2Nlc3NQ
cm94eSogbV93ZWJQcm9jZXNzIHsgbnVsbHB0ciB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBy
b2Nlc3NNYW5hZ2VyLmNwcAppbmRleCBhZGRiMDM1MTcyMmRmYzAwYmE1MjcwN2QyOTkyOWQ5NWFm
NWZhMWNjLi4xOTJkM2ZjN2M2MzllZDk0ZmVmZGRiOGQ4YzNlZjFkYjk4ZDNkNzRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3Bw
CkBAIC00NCwxMCArNDQsNiBAQCBwdWJsaWM6CiAgICAgUHJvY2Vzc1N0YXRlKCkgeyB9CiAgICAg
UHJvY2Vzc1N0YXRlKGNvbnN0IFByb2Nlc3NTdGF0ZSYpID0gZGVsZXRlOwogCi0gICAgdm9pZCBh
ZGRSZXF1ZXN0TWFuYWdlcihVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYp
OwotICAgIHZvaWQgcmVtb3ZlUmVxdWVzdE1hbmFnZXIoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmKTsKLSAgICBWZWN0b3I8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkqPiYgbWFuYWdlcnMoKSB7IHJldHVybiBtX21hbmFnZXJzOyB9Ci0KICAgICBl
bnVtIFNhbmRib3hFeHRlbnNpb25UeXBlIDogdWludDMyX3QgewogICAgICAgICBOb25lID0gMCwK
ICAgICAgICAgVmlkZW8gPSAxIDw8IDAsCkBAIC02NCwzOSArNjAsMzIgQEAgcHVibGljOgogICAg
IHZvaWQgcmV2b2tlQXVkaW9FeHRlbnNpb24oKSAgeyBtX3BhZ2VTYW5kYm94RXh0ZW5zaW9uc0dy
YW50ZWQgJj0gfkF1ZGlvOyB9CiAKIHByaXZhdGU6Ci0KLSAgICBWZWN0b3I8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqPiBtX21hbmFnZXJzOwogICAgIFNhbmRib3hFeHRl
bnNpb25zR3JhbnRlZCBtX3BhZ2VTYW5kYm94RXh0ZW5zaW9uc0dyYW50ZWQgeyBTYW5kYm94RXh0
ZW5zaW9uVHlwZTo6Tm9uZSB9OwogfTsKIAorLy8gRklYTUU6IE1vdmUgUHJvY2Vzc1N0YXRlIHRv
IGEgV2ViUHJvY2Vzc1Byb3h5IG1lbWJlciBkaXJlY3RseS4KIHN0YXRpYyBIYXNoTWFwPFdlYlBy
b2Nlc3NQcm94eSosIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzU3RhdGU+PiYgc3RhdGVNYXAoKQog
ewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFdlYlByb2Nlc3NQcm94eSosIHN0
ZDo6dW5pcXVlX3B0cjxQcm9jZXNzU3RhdGU+Pj4gbWFwOwogICAgIHJldHVybiBtYXA7CiB9CiAK
LXN0YXRpYyBQcm9jZXNzU3RhdGUmIHByb2Nlc3NTdGF0ZShXZWJQcm9jZXNzUHJveHkmIHByb2Nl
c3MpCitzdGF0aWMgaW5saW5lIFByb2Nlc3NTdGF0ZSYgYWRkUHJvY2Vzc1N0YXRlKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcykKIHsKLSAgICBhdXRvJiBzdGF0ZSA9IHN0YXRlTWFwKCkuYWRkKCZw
cm9jZXNzLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgaWYgKHN0YXRlKQotICAgICAg
ICByZXR1cm4gKnN0YXRlOwotCi0gICAgc3RhdGUgPSBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NT
dGF0ZT4oKTsKLSAgICByZXR1cm4gKnN0YXRlOworICAgIEFTU0VSVCghc3RhdGVNYXAoKS5jb250
YWlucygmcHJvY2VzcykpOworICAgIHJldHVybiAqc3RhdGVNYXAoKS5hZGQoJnByb2Nlc3MsIHN0
ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc1N0YXRlPigpKS5pdGVyYXRvci0+dmFsdWU7CiB9CiAKLXZv
aWQgUHJvY2Vzc1N0YXRlOjphZGRSZXF1ZXN0TWFuYWdlcihVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgcHJveHkpCitzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlUHJvY2Vz
c1N0YXRlKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKIHsKLSAgICBBU1NFUlQoIW1fbWFuYWdl
cnMuY29udGFpbnMoJnByb3h5KSk7Ci0gICAgbV9tYW5hZ2Vycy5hcHBlbmQoJnByb3h5KTsKKyAg
ICBBU1NFUlQoc3RhdGVNYXAoKS5jb250YWlucygmcHJvY2VzcykpOworICAgIHN0YXRlTWFwKCku
cmVtb3ZlKCZwcm9jZXNzKTsKIH0KIAotdm9pZCBQcm9jZXNzU3RhdGU6OnJlbW92ZVJlcXVlc3RN
YW5hZ2VyKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBwcm94eSkKK3N0
YXRpYyBpbmxpbmUgUHJvY2Vzc1N0YXRlJiBwcm9jZXNzU3RhdGUoV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzKQogewotICAgIEFTU0VSVChtX21hbmFnZXJzLmNvbnRhaW5zKCZwcm94eSkpOwotICAg
IG1fbWFuYWdlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnByb3h5XShhdXRvIG90aGVyKSB7Ci0g
ICAgICAgIHJldHVybiBvdGhlciA9PSAmcHJveHk7Ci0gICAgfSk7CisgICAgQVNTRVJUKHN0YXRl
TWFwKCkuY29udGFpbnMoJnByb2Nlc3MpKTsKKyAgICByZXR1cm4gKnN0YXRlTWFwKCkuZ2V0KCZw
cm9jZXNzKTsKIH0KIAogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyOjpzaW5nbGV0b24oKQpAQCAtMTEwLDMyICs5OSwxMyBAQCBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlcjo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIoKQogewogfQogCi12b2lkIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjphZGRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgcHJveHkpCi17Ci0gICAg
cHJvY2Vzc1N0YXRlKHByb3h5LnBhZ2UoKS5wcm9jZXNzKCkpLmFkZFJlcXVlc3RNYW5hZ2VyKHBy
b3h5KTsKLX0KLQotdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6cmVtb3ZlVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmIHByb3h5KQotewotICAgIGVuZGVkQ2FwdHVyZVNlc3Npb24ocHJveHkpOwot
Ci0gICAgYXV0byYgc3RhdGUgPSBwcm9jZXNzU3RhdGUocHJveHkucGFnZSgpLnByb2Nlc3MoKSk7
Ci0gICAgc3RhdGUucmVtb3ZlUmVxdWVzdE1hbmFnZXIocHJveHkpOwotICAgIGlmIChzdGF0ZS5t
YW5hZ2VycygpLmlzRW1wdHkoKSkgewotICAgICAgICBhdXRvIGl0ID0gc3RhdGVNYXAoKS5maW5k
KCZwcm94eS5wYWdlKCkucHJvY2VzcygpKTsKLSAgICAgICAgc3RhdGVNYXAoKS5yZW1vdmUoaXQp
OwotICAgIH0KLX0KLQogdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6bXV0ZUNhcHR1cmVN
ZWRpYVN0cmVhbXNFeGNlcHRJbihXZWJQYWdlUHJveHkmIHBhZ2VTdGFydGluZ0NhcHR1cmUpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZm9yIChhdXRvJiBzdGF0ZSA6IHN0YXRlTWFwKCkp
IHsKLSAgICAgICAgZm9yIChhdXRvJiBtYW5hZ2VyIDogc3RhdGUudmFsdWUtPm1hbmFnZXJzKCkp
IHsKLSAgICAgICAgICAgIGlmICgmbWFuYWdlci0+cGFnZSgpID09ICZwYWdlU3RhcnRpbmdDYXB0
dXJlKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgbWFuYWdlci0+cGFn
ZSgpLnNldE1lZGlhU3RyZWFtQ2FwdHVyZU11dGVkKHRydWUpOwotICAgICAgICB9CisgICAgZm9y
IChhdXRvIG1hbmFnZXIgOiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
YWxsTWFuYWdlcnMoKSkgeworICAgICAgICBpZiAoJm1hbmFnZXItPnBhZ2UoKSA9PSAmcGFnZVN0
YXJ0aW5nQ2FwdHVyZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBtYW5hZ2VyLT5w
YWdlKCkuc2V0TWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQodHJ1ZSk7CiAgICAgfQogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0ocGFnZVN0YXJ0aW5nQ2FwdHVyZSk7CkBAIC0xNTUsOSArMTI1LDcgQEAg
Ym9vbCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6d2lsbENyZWF0ZU1lZGlhU3RyZWFtKFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWEKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAjaWYg
RU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSAg
ICBhdXRvJiBwcm9jZXNzU3RhcnRpbmdDYXB0dXJlID0gcHJveHkucGFnZSgpLnByb2Nlc3MoKTsK
LQotICAgIEFTU0VSVChzdGF0ZU1hcCgpLmNvbnRhaW5zKCZwcm9jZXNzU3RhcnRpbmdDYXB0dXJl
KSk7CisgICAgYXV0byYgcHJvY2Vzc1N0YXJ0aW5nQ2FwdHVyZSA9IHByb3h5LnByb2Nlc3MoKTsK
IAogICAgIGF1dG8mIHN0YXRlID0gcHJvY2Vzc1N0YXRlKHByb2Nlc3NTdGFydGluZ0NhcHR1cmUp
OwogICAgIHNpemVfdCBleHRlbnNpb25Db3VudCA9IDA7CkBAIC0yMTIsMTkgKzE4MCwxOCBAQCBi
b29sIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjp3aWxsQ3JlYXRlTWVkaWFTdHJlYW0oVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYQogCiB2b2lkIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpz
dGFydGVkQ2FwdHVyZVNlc3Npb24oVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkmIHByb3h5KQogewotICAgIEFTU0VSVChzdGF0ZU1hcCgpLmNvbnRhaW5zKCZwcm94eS5wYWdl
KCkucHJvY2VzcygpKSk7CisgICAgYWRkUHJvY2Vzc1N0YXRlKHByb3h5LnByb2Nlc3MoKSk7CiB9
CiAKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmVuZGVkQ2FwdHVyZVNlc3Npb24oVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIHByb3h5KQogewogI2lmIEVOQUJM
RShTQU5EQk9YX0VYVEVOU0lPTlMpCi0gICAgQVNTRVJUKHN0YXRlTWFwKCkuY29udGFpbnMoJnBy
b3h5LnBhZ2UoKS5wcm9jZXNzKCkpKTsKKyAgICBhdXRvJiBwcm9jZXNzID0gcHJveHkucHJvY2Vz
cygpOwogCi0gICAgYXV0byYgc3RhdGUgPSBwcm9jZXNzU3RhdGUocHJveHkucGFnZSgpLnByb2Nl
c3MoKSk7CiAgICAgYm9vbCBoYXNBdWRpb0NhcHR1cmUgPSBmYWxzZTsKICAgICBib29sIGhhc1Zp
ZGVvQ2FwdHVyZSA9IGZhbHNlOwotICAgIGZvciAoYXV0byYgbWFuYWdlciA6IHN0YXRlLm1hbmFn
ZXJzKCkpIHsKLSAgICAgICAgaWYgKG1hbmFnZXIgPT0gJnByb3h5KQorICAgIGZvciAoYXV0byBt
YW5hZ2VyIDogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmFsbE1hbmFn
ZXJzKCkpIHsKKyAgICAgICAgaWYgKG1hbmFnZXIgPT0gJnByb3h5IHx8ICZtYW5hZ2VyLT5wYWdl
KCkucHJvY2VzcygpICE9ICZwcm9jZXNzKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IGlmIChtYW5hZ2VyLT5wYWdlKCkuaGFzQWN0aXZlQXVkaW9TdHJlYW0oKSkKICAgICAgICAgICAg
IGhhc0F1ZGlvQ2FwdHVyZSA9IHRydWU7CkBAIC0yMzUsNiArMjAyLDggQEAgdm9pZCBVc2VyTWVk
aWFQcm9jZXNzTWFuYWdlcjo6ZW5kZWRDYXB0dXJlU2Vzc2lvbihVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmEKICAgICBpZiAoaGFzQXVkaW9DYXB0dXJlICYmIGhhc1ZpZGVvQ2FwdHVyZSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgYXV0byYgc3RhdGUgPSBwcm9jZXNzU3RhdGUocHJvY2Vz
cyk7CisKICAgICBWZWN0b3I8U3RyaW5nPiBwYXJhbXM7CiAgICAgaWYgKCFoYXNBdWRpb0NhcHR1
cmUgJiYgc3RhdGUuaGFzQXVkaW9FeHRlbnNpb24oKSkgewogICAgICAgICBwYXJhbXMuYXBwZW5k
KGF1ZGlvRXh0ZW5zaW9uUGF0aCk7CkBAIC0yNDUsMTMgKzIxNCwxNiBAQCB2b2lkIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjplbmRlZENhcHR1cmVTZXNzaW9uKFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYQogICAgICAgICBzdGF0ZS5yZXZva2VWaWRlb0V4dGVuc2lvbigpOwogICAgIH0K
IAorICAgIGlmICghc3RhdGUuaGFzQXVkaW9FeHRlbnNpb24oKSAmJiAhc3RhdGUuaGFzVmlkZW9F
eHRlbnNpb24oKSkKKyAgICAgICAgcmVtb3ZlUHJvY2Vzc1N0YXRlKHByb2Nlc3MpOworCiAgICAg
aWYgKHBhcmFtcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoY29uc3Qg
YXV0byYgaWQgOiBwYXJhbXMpCiAgICAgICAgIFJFTEVBU0VfTE9HKFdlYlJUQywgIlVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjplbmRlZENhcHR1cmVTZXNzaW9uIC0gcmV2b2tpbmcgZXh0ZW5zaW9u
ICVzIiwgaWQudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBwcm94eS5wYWdlKCkucHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJldm9rZVVzZXJNZWRpYURldmljZVNhbmRib3hFeHRlbnNp
b25zKHBhcmFtcyksIHByb3h5LnBhZ2UoKS5wYWdlSUQoKSk7CisgICAgcHJvY2Vzcy5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpSZXZva2VVc2VyTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucyhw
YXJhbXMpLCBwcm94eS5wYWdlKCkucGFnZUlEKCkpOwogI2VuZGlmCiB9CiAKQEAgLTI2NSwyMyAr
MjM3LDE0IEBAIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNldENhcHR1cmVFbmFibGVk
KGJvb2wgZW5hYmxlZCkKICAgICBpZiAoZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Zm9yIChhdXRvJiBzdGF0ZSA6IHN0YXRlTWFwKCkpIHsKLSAgICAgICAgZm9yIChhdXRvJiBtYW5h
Z2VyIDogc3RhdGUudmFsdWUtPm1hbmFnZXJzKCkpCi0gICAgICAgICAgICBtYW5hZ2VyLT5zdG9w
Q2FwdHVyZSgpOwotICAgIH0KKyAgICBmb3IgKGF1dG8gbWFuYWdlciA6IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjphbGxNYW5hZ2VycygpKQorICAgICAgICBtYW5hZ2Vy
LT5zdG9wQ2FwdHVyZSgpOwogfQogCiB2b2lkIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpjYXB0
dXJlRGV2aWNlc0NoYW5nZWQoKQogewotICAgIGF1dG8mIG1hcCA9IHN0YXRlTWFwKCk7Ci0gICAg
Zm9yIChhdXRvJiBzdGF0ZSA6IG1hcCkgewotICAgICAgICBhdXRvKiBwcm9jZXNzID0gc3RhdGUu
a2V5OwotICAgICAgICBmb3IgKGF1dG8mIG1hbmFnZXIgOiBzdGF0ZS52YWx1ZS0+bWFuYWdlcnMo
KSkgewotICAgICAgICAgICAgaWYgKG1hcC5maW5kKHByb2Nlc3MpID09IG1hcC5lbmQoKSkKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIG1hbmFnZXItPmNhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGZvciAoYXV0byBtYW5hZ2VyIDogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmFsbE1hbmFnZXJzKCkpCisgICAg
ICAgIG1hbmFnZXItPmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogfQogCiB2b2lkIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaAppbmRleCBh
ZTE2ZWJlZDg1ZDgwYmZkY2FjMDVlYzZiODBjNzY0M2I4ZWY1MjhiLi4wNGYxYzI5NzNkNjdkMWQz
YjliZTgxMjJjOGUyNmQ5NjhhYjk1NjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgKQEAgLTM1LDkgKzM1LDYgQEAgcHVibGljOgog
CiAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIoKTsKIAotICAgIHZvaWQgYWRkVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmKTsKLSAgICB2b2lkIHJlbW92ZVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Jik7Ci0K
ICAgICBib29sIHdpbGxDcmVhdGVNZWRpYVN0cmVhbShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eSYsIGJvb2wgd2l0aEF1ZGlvLCBib29sIHdpdGhWaWRlbyk7CiAgICAgdm9p
ZCBtdXRlQ2FwdHVyZU1lZGlhU3RyZWFtc0V4Y2VwdEluKFdlYlBhZ2VQcm94eSYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjMmE0ZDZhMTkwMmFiMzY0
ZDAyMTk3NjAzNjg1OGIyZGU4NjNjOGE4Li4zYzRjODY0OTYwNGNlY2NlOTk4YjM1OTgxMDA4NzFh
NTQ1MTJlZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTY2MTksNyArNjYxOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3Rh
dGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICAgICAgZWRpdENvbW1hbmQtPmludmFsaWRh
dGUoKTsKIAogICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKLSAgICBtX21lZGlhU3Rh
dGUgPSBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CisgICAgdXBkYXRlUGxheWluZ01lZGlh
RGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyk7CiAKICNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQogICAgIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CkBAIC03Njc3LDcgKzc2Nzcs
MTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJv
ZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGEKICAgICBBU1NFUlQoZm9jdXNNYW5hZ2VyKTsK
ICAgICBmb2N1c01hbmFnZXItPnVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zyb21NZWRpYVN0YXRl
KHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgbmV3U3RhdGUpOwogI2VuZGlmCisgICAgdXBkYXRlUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKG5ld1N0YXRlKTsKK30KIAordm9pZCBXZWJQYWdlUHJveHk6OnVw
ZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
bmV3U3RhdGUpCit7CiAgICAgaWYgKG5ld1N0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDZmYWFj
Yjg2NjMzYTUyMjA1NWIwNjdiYjg3MmEyYmU5MmRhZDkxZmEuLjViOTA2MjBiZjk0YmVmM2U2MTc5
MmNhN2JmMTk0YTE0ZGZiNzIwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0xMjM4LDYgKzEyMzgsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGxheWluZ0F1
ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6SXNQbGF5aW5nQXVkaW8pOyB9CiAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5n
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90KTsKKyAg
ICB2b2lkIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpOwogICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJl
YW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7IH0KICAgICBib29sIGhhc0FjdGl2ZVZpZGVv
U3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOyB9CiAgICAgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJu
IG1fbWVkaWFTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGZjN2Q1MmNjNDVjMDQ4NzRmMmM3YmY1MjE2NmFkMTJkNjNiZTdhNDguLmRh
ZmFjMzViMTg2MGQ5OTdlN2ExMDA0ZGMzMDk5OWYxMjdlZTE4OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxOS0w
Mi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FwdHVy
ZSBzdGF0ZSBzaG91bGQgYmUgbWFuYWdlZCBjb25zaXN0ZW50bHkgd2hlbiBkb2luZyBwcm9jZXNz
IHN3YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQxMjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjA5MjkzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bR2V0
VXNlck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW0dldFVzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOl0p
OgorICAgICAgICAoLVtHZXRVc2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVy
ZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6aXNEb2luZ01lZGlhQ2FwdHVyZSBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0Rv
aW5nTWVkaWFDYXB0dXJlIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
Ojppc0RvaW5nTWVkaWFDYXB0dXJlIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dl
YlZpZXcgbWVkaWFTdGF0ZV0pOgorCiAyMDE5LTAxLTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gQVBJIHRlc3QgdG8gY292ZXIgVUlDbGllbnQg
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luIGJlaW5nIG51bGxwdHIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGFmODUxNzBmODNmYTExOGU1OTNiOGM2ZmEyZTc1
YmE3ZmM0ZTZkZDguLjQzZThhNTAwN2QzYWYzY2Y0MzM3YmJjYjU1OWMxNmVjNmQ1OWU3YWQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3RO
YXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQg
PFdlYktpdC9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uUHJp
dmF0ZS5oPgpAQCAtNDM2MSw0ICs0MzYyLDg5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENvbnRlbnRC
bG9ja2luZ0FmdGVyUHJvY2Vzc1N3YXApCiAgICAgZG9uZSA9IGZhbHNlOwogfQogCitzdGF0aWMg
Ym9vbCBpc0NhcHR1cmluZyA9IGZhbHNlOworQGludGVyZmFjZSBHZXRVc2VyTWVkaWFVSURlbGVn
YXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0Nh
cHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJM
ICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVk
KSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJ
ZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wg
YXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3Rh
dGUpc3RhdGU7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBHZXRVc2VyTWVkaWFVSURlbGVnYXRl
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFB
dXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIGRl
Y2lzaW9uSGFuZGxlcihZRVMpOworfQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZy
YW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIp
ZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQs
IEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyCit7CisgICAgZGVjaXNpb25IYW5kbGVy
KEAiMHg5ODc2NTQzMjEiLCBZRVMpOworfQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0
ZSlzdGF0ZQoreworICAgIGlzQ2FwdHVyaW5nID0gc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmVDYW1lcmE7Cit9CitAZW5kCisKK3N0YXRpYyBjb25zdCBjaGFyKiBnZXRVc2VyTWVk
aWFCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPGhlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CituYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9KTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9oZWFkPgorKVBTT05SRVNPVVJDRSI7CisKK1RFU1QoUHJvY2Vzc1N3YXAs
IEdldFVzZXJNZWRpYUNhcHR1cmVTdGF0ZSkKK3sKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1N3YXBzT25O
YXZpZ2F0aW9uID0gWUVTOworICAgIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKS5wcmV3
YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHkgPSBZRVM7CisKKyAgICBhdXRvIHByb2Nlc3NQb29s
ID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW3dlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpIHBy
ZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVD
b25uZWN0aW9uID0gTk87CisgICAgcHJlZmVyZW5jZXMuX21lZGlhRGV2aWNlc0VuYWJsZWQgPSBZ
RVM7CisgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisK
KyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0
XSk7CisgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvZ2V0VXNlck1lZGlhLmh0bWwiIHRvRGF0YTpnZXRVc2VyTWVkaWFCeXRlc107Cisg
ICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLm9y
Zy90ZXN0Lmh0bWwiIHRvRGF0YToiIl07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25m
aWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcg
c2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBh
dXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtbR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6IHVpRGVsZWdhdGUuZ2V0KCldOwor
CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHROUyhbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL2dldFVzZXJNZWRp
YS5odG1sIl1dKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKKwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOwor
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0NhcHR1cmluZyk7CisKKyAgICBhdXRv
IHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgcmVxdWVzdCA9
IGFkb3B0TlMoW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cuYXBwbGUub3JnL3Rlc3QuaHRtbCJdXSk7CisgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICBFWFBFQ1RfRkFMU0UoaXNDYXB0dXJpbmcpOwor
ICAgIEVYUEVDVF9GQUxTRShwaWQxID09IHBpZDIpOworfQorCisKICNlbmRpZiAvLyBXS19BUElf
RU5BQkxFRApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNjdmYzkzZTkxNjIyYmRkMzMz
MTg1YzdmNmIyMDhhMzlmZWU0NDUxNi4uODE4ZDQ0MTg4NGJmMWNjODkwNDAxODIzZDQ4OTg1MTIx
OTk3NzcyZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0yMTYsNiArMjE2LDcgQEAg
aW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0VXNlck1lZGlhUGVyc2lzdGVudFBl
cm1pc3Npb25Gb3JPcmlnaW4oYm9vbGVhbiBwZXJtaXNzaW9uLCBET01TdHJpbmcgb3JpZ2luLCBE
T01TdHJpbmcgcGFyZW50T3JpZ2luKTsKICAgICB1bnNpZ25lZCBsb25nIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oRE9NU3RyaW5nIG9yaWdpbiwgRE9NU3RyaW5nIHBh
cmVudE9yaWdpbik7CiAgICAgdm9pZCByZXNldFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291
bnRGb3JPcmlnaW4oRE9NU3RyaW5nIG9yaWdpbiwgRE9NU3RyaW5nIHBhcmVudE9yaWdpbik7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNEb2luZ01lZGlhQ2FwdHVyZTsKIAogICAg
IC8vIEF1ZGlvIHRlc3RpbmcuCiAgICAgW1Bhc3NDb250ZXh0XSB2b2lkIHNldEF1ZGlvUmVzdWx0
KG9iamVjdCBkYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDc5ZTcxY2JmNDM3MzQ0ZWE1NjU4Y2E3M2M2N2Nk
NTMxZmRkNGQyM2UuLjI3M2I0OGQwMWY5MWY3MDEzMzY1NDc2NTE3NzkxYjM5MzY1MTQ3MTAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcApAQCAtMTA5Myw2ICsxMDkzLDE1IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uKCkKICAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucmVzZXRV
c2VyTWVkaWFQZXJtaXNzaW9uKCk7CiB9CiAKK2Jvb2wgVGVzdFJ1bm5lcjo6aXNEb2luZ01lZGlh
Q2FwdHVyZSgpIGNvbnN0Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VO
YW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc0RvaW5nTWVkaWFD
YXB0dXJlIikpOworICAgIFdLVHlwZVJlZiByZXR1cm5EYXRhID0gbnVsbHB0cjsKKyAgICBXS0J1
bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCAm
cmV0dXJuRGF0YSk7CisgICAgQVNTRVJUKFdLR2V0VHlwZUlEKHJldHVybkRhdGEpID09IFdLQm9v
bGVhbkdldFR5cGVJRCgpKTsKKyAgICByZXR1cm4gV0tCb29sZWFuR2V0VmFsdWUoYWRvcHRXSyhz
dGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KHJldHVybkRhdGEpKS5nZXQoKSk7Cit9CisKIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0VXNlck1lZGlhUGVyc2lzdGVudFBlcm1pc3Npb25Gb3JPcmlnaW4oYm9v
bCBwZXJtaXNzaW9uLCBKU1N0cmluZ1JlZiBvcmlnaW4sIEpTU3RyaW5nUmVmIHBhcmVudE9yaWdp
bikKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luV0sgPSB0b1dLKG9yaWdp
bik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCmluZGV4IDIyMTRkNzdiOGMzOTc5YTQ3YzVlOGVkYWE1ZDMyNzEyZDE0MzQxZDkuLmVj
NzY5ZjY0NmY1YzUwMTIzYTE5ZjlhMTM2MWE5YTFhOTQzMmM1YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zMTgsNiAr
MzE4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlck1lZGlhUGVyc2lzdGVudFBlcm1pc3Np
b25Gb3JPcmlnaW4oYm9vbCBwZXJtaXNzaW9uLCBKU1N0cmluZ1JlZiBvcmlnaW4sIEpTU3RyaW5n
UmVmIHBhcmVudE9yaWdpbik7CiAgICAgdW5zaWduZWQgdXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDb3VudEZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4sIEpTU3RyaW5nUmVmIHBhcmVudE9y
aWdpbikgY29uc3Q7CiAgICAgdm9pZCByZXNldFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291
bnRGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luLCBKU1N0cmluZ1JlZiBwYXJlbnRPcmlnaW4p
OworICAgIGJvb2wgaXNEb2luZ01lZGlhQ2FwdHVyZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRQ
YWdlVmlzaWJpbGl0eShKU1N0cmluZ1JlZiBzdGF0ZSk7CiAgICAgdm9pZCByZXNldFBhZ2VWaXNp
YmlsaXR5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDZkNGRmZmI0OTY1NjUyNGM2NGQ5NjJlNzlmZTIzODM4NGM2OWMwYzYuLjU0ZTM5MjExYmY1Y2Uy
MzM5YmM0MDJmNWZkZDkyOTIwZDZmZWI0MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0zMTg1LDYgKzMxODUsMTIgQEAgYm9vbCBUZXN0Q29udHJvbGxl
cjo6a2V5RXhpc3RzSW5LZXljaGFpbihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewog
ICAgIHJldHVybiBmYWxzZTsKIH0KKworYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNEb2luZ01lZGlh
Q2FwdHVyZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiAjZW5kaWYKIAogdm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2VuZERpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZE1lc3NhZ2VG
b3JUZXN0aW5nKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAx
M2EzOWM2OTA1ZjBkODdiYTg3YjlkYjU3ZjhkYWQ1YzE3YWM3MWJjLi45NWEwNTgxMjVkMmFlYTBk
YzQxNzQwZjJkOWZlNjZhNmExYmI3NmRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCkBAIC0yNzgsNiArMjc4LDggQEAgcHVibGljOgogICAgIFVJS2V5Ym9hcmRJbnB1
dE1vZGUgKm92ZXJyaWRkZW5LZXlib2FyZElucHV0TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3Zl
cnJpZGRlbktleWJvYXJkSW5wdXRNb2RlLmdldCgpOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgaXNE
b2luZ01lZGlhQ2FwdHVyZSgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWY+IGdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oV0tDb250ZXh0
Q29uZmlndXJhdGlvblJlZik7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZj4gZ2VuZXJhdGVDb250ZXh0Q29uZmlndXJhdGlvbigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAwYzZjODc3ZmYxZGFiNzU1YWRlMjhl
OWUyMzRmNDRlNTVmZDk0YzI3Li5kMWMwNDQxYjllNTdkNDk5ODYyMGY4OTM0N2FlYTllMTU3ZWVl
NzU3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTAz
NCw2ICsxMDM0LDEwIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIFdLUmV0YWlu
UHRyPFdLVUludDY0UmVmPiByZXN1bHQoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUoY291bnQpKTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJJc0RvaW5nTWVkaWFDYXB0dXJlIikpIHsKKyAgICAg
ICAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiByZXN1bHQoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRl
KFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5pc0RvaW5nTWVkaWFDYXB0dXJlKCkpKTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NEZWJ1Z01vZGUiKSkgewogICAg
ICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJ
RCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRy
b2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQppbmRleCAxMWIwZTNhZTM0ZmJiZTdlMWJhOWUxNzIxYTRkMTE4ZDMzMDI2Nzk2
Li40ZDRkMTc2NDJlNDcxZTg1M2Y5YTNiODNkNzEzZGRiYTIwZTJkNTYyIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC0z
ODIsNCArMzgyLDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6a2V5RXhpc3RzSW5LZXljaGFpbihj
b25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNEb2luZ01lZGlhQ2FwdHVyZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fbWFpbldlYlZpZXctPnBsYXRmb3JtVmlldygpLl9tZWRpYUNhcHR1cmVT
dGF0ZSAhPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tX
ZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZp
ZXcuaAppbmRleCA1YmMyY2I3Mjg4YmQwNzViMzFjZjdkYzA4YjAzMzYwNzA3ZDM2OWQ3Li45ZTFm
OWY0NjRjYmQ2YTIyZjRlNmEyZGU2MjIwYWY1ZDY1MGU5YWE1IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaApAQCAtMjMsNiArMjMs
NyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CiAK
ICNpZiBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCmluZGV4IDZjNzgwMzc1YTkyOTc5ZjdjNGFkOTVhMTll
M2QyYTc1NGU0ZTFmZGIuLmNmNzhjOTg2MDUyNTIyMDA0ZTY3ZjBkMWIwNzU3ZTBjZmQ0NzE2YTYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2Vi
Vmlldy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dl
YlZpZXcubW0KQEAgLTEyNSw2ICsxMjUsMTEgQEAgLSAoQk9PTClpc0ludGVyYWN0aW5nV2l0aEZv
cm1Db250cm9sCiAgICAgcmV0dXJuIG1faXNJbnRlcmFjdGluZ1dpdGhGb3JtQ29udHJvbDsKIH0K
IAorLSAoX1dLTWVkaWFDYXB0dXJlU3RhdGUpbWVkaWFTdGF0ZQoreworICAgIHJldHVybiBtX21l
ZGlhU3RhdGU7Cit9CisKIC0gKHZvaWQpX2RpZFNob3dGb3JjZVByZXNzUHJldmlldwogewogICAg
IGlmIChzZWxmLmRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRpYS1w
cm9jZXNzU3dhcHBpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcy
NzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
cnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBwaW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDUwZmYyMmY3YTMyY2QxMGQ0MGQwODVhMzMxNTYyNTFjMGJhYjY1NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBw
aW5nLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+Z2V0VXNlck1lZGlhIG9uIHByb2Nlc3Mgc3dhcHBpbmc8L3RpdGxl
PgorPGJvZHk+Cis8dmlkZW8gaWQ9ImxvY2FsIj48L3ZpZGVvPgorPHNjcmlwdCBzcmM9Ii9jb21t
b24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworfQorCithc3luYyBmdW5jdGlvbiBnZXRVc2VyTWVkaWFBbmRO
YXZpZ2F0ZSgpCit7CisgICAgbG9jYWwuc3JjT2JqZWN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7CisgICAgYXdhaXQgbG9jYWwucGxh
eSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZl
LCAxMDAwKSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmICF0ZXN0UnVubmVyLmlzRG9p
bmdNZWRpYUNhcHR1cmUpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiRkFJ
TDogbm8gY2FwdHVyZSBzdGF0ZSI7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIHdpbmRvdy5sb2NhdGlvbiA9IGdldF9ob3N0X2lu
Zm8oKS5IVFRQU19PUklHSU4gKyAiL1dlYktpdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NT
d2FwcGluZy5odG1sIjsKK30KKworZnVuY3Rpb24gdmFsaWRhdGVNZWRpYUNhcHR1cmVTdGF0ZUFm
dGVyTmF2aWdhdGlvbigpCit7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJGQUlMOiBOZWVkIHRlc3RSdW5uZXIgQVBJIjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHRl
c3RSdW5uZXIuaXNEb2luZ01lZGlhQ2FwdHVyZSA/ICJGQUlMIiA6ICJQQVNTIjsKKyAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9
PT0gImh0dHA6IikKKyAgICBnZXRVc2VyTWVkaWFBbmROYXZpZ2F0ZSgpOworZWxzZQorICAgIHZh
bGlkYXRlTWVkaWFDYXB0dXJlU3RhdGVBZnRlck5hdmlnYXRpb24oKTsKKzwvc2NyaXB0PgorPC9i
b2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360875</attachid>
            <date>2019-02-01 11:17:38 -0800</date>
            <delta_ts>2019-02-01 12:58:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194122-20190201111738.patch</filename>
            <type>text/plain</type>
            <size>20390</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2M2JjYWUxY2ZiODU2OTll
MzRlOThmNTdkYWRlYmZjNTRhOGJjODIuLjM4ZDU4MTU2MWRjYjMzM2YyYTFmNzg1Nzk5NTI1YjVm
NGE1NWI1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxk
IGJlIG1hbmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIFBTT04sIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZSBpcyBjYWxsZWQuCisgICAgICAgIEl0IHJlc2V0cyB0aGUgbWVkaWEgc3RhdGUsIGJ1
dCBkb2VzIG5vdCBjYWxsIHRoZSBjbGllbnQgZGVsZWdhdGVzLgorICAgICAgICBJbnN0ZWFkIG9m
IGRpcmVjdGx5IHVwZGF0aW5nIHRoZSBtZWRpYSBzdGF0ZSwgY2FsbCB0aGUgcm91dGluZSB1c2Vk
IHRvIHVwZGF0ZSBpdCBzbyB0aGF0IGNsaWVudCBkZWxlZ2F0ZXMgYXJlIGNhbGxlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdCBhbmQgbGF5b3V0IHRlc3QuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9tZWRpYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVy
IFVJQ2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRl
eCA0NDBkMDg4ZDc3M2E0MWY0M2Y5ZDA4Mzk1YWZlM2ViMjA3MWNkNDhlLi5lOTQ3ODg5NTM0ZjAy
MWJkOTk1N2U0MDJhMjRjMTAxODJkMGU0ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU1NTUsNiArNTU1NSwyMyBAQCAtIChCT09M
KV9tZWRpYUNhcHR1cmVFbmFibGVkCiAgICAgcmV0dXJuIF9wYWdlLT5tZWRpYUNhcHR1cmVFbmFi
bGVkKCk7CiB9CiAKKy0gKF9XS01lZGlhQ2FwdHVyZVN0YXRlKV9tZWRpYUNhcHR1cmVTdGF0ZQor
eworICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+bWVkaWFTdGF0ZUZsYWdzKCk7CisKKyAgICBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRl
Tm9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlh
Q2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2
aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0g
X1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKKworICAgIHJldHVybiBtZWRpYUNhcHR1
cmVTdGF0ZTsKK30KKwogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUp
bXV0ZWRTdGF0ZQogewogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyBjb3JlU3RhdGUgPSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpOb25lTXV0ZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApp
bmRleCAyOWFlNzkzNWMzNWUwMzAyY2VhZDUwYzljZmI2M2U1MDViOTA5MDE0Li5hYzE4ZDMxNmRi
OGM1ZWE3ZTY0NzgwMDE0MDMzY2FiMzQwMmIyZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTM5OSw2ICszOTks
NyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZv
aWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3Mo
MTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRT
dGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2Fw
dHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFDYXB0dXJlRW5h
YmxlZDopIEJPT0wgX21lZGlhQ2FwdHVyZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2NhblRvZ2dsZVBpY3R1cmVJblBpY3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCBjMmE0ZDZhMTkwMmFiMzY0ZDAyMTk3NjAzNjg1OGIyZGU4NjNj
OGE4Li4zYzRjODY0OTYwNGNlY2NlOTk4YjM1OTgxMDA4NzFhNTQ1MTJlZDI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY2MTksNyArNjYxOSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJl
YXNvbikKICAgICAgICAgZWRpdENvbW1hbmQtPmludmFsaWRhdGUoKTsKIAogICAgIG1fYWN0aXZl
UG9wdXBNZW51ID0gbnVsbHB0cjsKLSAgICBtX21lZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyOjpJ
c05vdFBsYXlpbmc7CisgICAgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXI6OklzTm90UGxheWluZyk7CiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIHJlcXVl
c3RQb2ludGVyVW5sb2NrKCk7CkBAIC03Njc3LDcgKzc2NzcsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZXdTdGEKICAgICBBU1NFUlQoZm9jdXNNYW5hZ2VyKTsKICAgICBmb2N1c01hbmFnZXItPnVw
ZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zyb21NZWRpYVN0YXRlKHRoaXMsIHNvdXJjZUVsZW1lbnRJ
RCwgbmV3U3RhdGUpOwogI2VuZGlmCisgICAgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKG5l
d1N0YXRlKTsKK30KIAordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENo
YW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCit7CiAgICAgaWYg
KG5ld1N0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDZmYWFjYjg2NjMzYTUyMjA1NWIwNjdiYjg3
MmEyYmU5MmRhZDkxZmEuLjViOTA2MjBiZjk0YmVmM2U2MTc5MmNhN2JmMTk0YTE0ZGZiNzIwNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjM4LDYgKzEyMzgs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4g
ISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8p
OyB9CiAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90KTsKKyAgICB2b2lkIHVwZGF0ZVBsYXlpbmdN
ZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3
U3RhdGUpOwogICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1
cmVEZXZpY2U7IH0KICAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9D
YXB0dXJlRGV2aWNlOyB9CiAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZjN2Q1MmNj
NDVjMDQ4NzRmMmM3YmY1MjE2NmFkMTJkNjNiZTdhNDguLmRhZmFjMzViMTg2MGQ5OTdlN2ExMDA0
ZGMzMDk5OWYxMjdlZTE4OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxOS0wMi0wMSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FwdHVyZSBzdGF0ZSBzaG91bGQgYmUgbWFu
YWdlZCBjb25zaXN0ZW50bHkgd2hlbiBkb2luZyBwcm9jZXNzIHN3YXBwaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQxMjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ3NjA5MjkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSBf
d2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5G
cmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW0dldFVzZXJNZWRpYVVJRGVs
ZWdhdGUgX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVS
TDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtHZXRVc2Vy
TWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6aXNEb2luZ01lZGlhQ2FwdHVy
ZSBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0RvaW5nTWVkaWFDYXB0dXJlIGNvbnN0
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29j
b2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0RvaW5nTWVkaWFDYXB0dXJl
IGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dl
YlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dl
YlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgbWVkaWFTdGF0ZV0pOgor
CiAyMDE5LTAxLTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgYW4gQVBJIHRlc3QgdG8gY292ZXIgVUlDbGllbnQgY2hlY2tVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yT3JpZ2luIGJlaW5nIG51bGxwdHIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1t
CmluZGV4IGFmODUxNzBmODNmYTExOGU1OTNiOGM2ZmEyZTc1YmE3ZmM0ZTZkZDguLjQzZThhNTAw
N2QzYWYzY2Y0MzM3YmJjYjU1OWMxNmVjNmQ1OWU3YWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQpAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKICNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIK
KyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRSdWxl
TGlzdFN0b3JlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uUHJpdmF0ZS5oPgpAQCAtNDM2MSw0ICs0
MzYyLDg5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENvbnRlbnRCbG9ja2luZ0FmdGVyUHJvY2Vzc1N3
YXApCiAgICAgZG9uZSA9IGZhbHNlOwogfQogCitzdGF0aWMgYm9vbCBpc0NhcHR1cmluZyA9IGZh
bHNlOworQGludGVyZmFjZSBHZXRVc2VyTWVkaWFVSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURl
bGVnYXRlPgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMg
dXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVS
TCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25I
YW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1
cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGU7CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBHZXRVc2VyTWVkaWFVSURlbGVnYXRlCistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNl
czooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVS
TDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1
dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihZRVMpOwor
fQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5G
cmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVj
aXNpb25IYW5kbGVyCit7CisgICAgZGVjaXNpb25IYW5kbGVyKEAiMHg5ODc2NTQzMjEiLCBZRVMp
OworfQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVy
ZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZQoreworICAgIGlzQ2Fw
dHVyaW5nID0gc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7Cit9CitA
ZW5kCisKK3N0YXRpYyBjb25zdCBjaGFyKiBnZXRVc2VyTWVkaWFCeXRlcyA9IFIiUFNPTlJFU09V
UkNFKAorPGhlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CituYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7dmlkZW86IHRydWV9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9oZWFkPgor
KVBTT05SRVNPVVJDRSI7CisKK1RFU1QoUHJvY2Vzc1N3YXAsIEdldFVzZXJNZWRpYUNhcHR1cmVT
dGF0ZSkKK3sKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tf
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uID0gWUVTOworICAg
IHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKS5wcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRp
Y2FsbHkgPSBZRVM7CisKKyAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vz
c1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHByZWZlcmVu
Y2VzID0gW3dlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpIHByZWZlcmVuY2VzXTsKKyAgICBwcmVm
ZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAg
cHJlZmVyZW5jZXMuX21lZGlhRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMu
X21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisKKyAgICBbd2ViVmlld0NvbmZpZ3Vy
YXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIGF1dG8gaGFuZGxl
ciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CisgICAgW2hhbmRsZXIgYWRk
TWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvZ2V0VXNlck1lZGlh
Lmh0bWwiIHRvRGF0YTpnZXRVc2VyTWVkaWFCeXRlc107CisgICAgW2hhbmRsZXIgYWRkTWFwcGlu
Z0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLm9yZy90ZXN0Lmh0bWwiIHRvRGF0YToi
Il07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxl
ci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisK
KyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRl
Om5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9w
dE5TKFtbR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6IHVpRGVsZWdhdGUuZ2V0KCldOworCisgICAgYXV0byByZXF1ZXN0ID0g
YWRvcHROUyhbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL2dldFVzZXJNZWRpYS5odG1sIl1dKTsKKyAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZpc0NhcHR1cmluZyk7CisKKyAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgcmVxdWVzdCA9IGFkb3B0TlMoW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUu
b3JnL3Rlc3QuaHRtbCJdXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdC5nZXQo
KV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBm
YWxzZTsKKworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07
CisKKyAgICBFWFBFQ1RfRkFMU0UoaXNDYXB0dXJpbmcpOworICAgIEVYUEVDVF9GQUxTRShwaWQx
ID09IHBpZDIpOworfQorCisKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKaW5kZXggNjdmYzkzZTkxNjIyYmRkMzMzMTg1YzdmNmIyMDhhMzlmZWU0NDUx
Ni4uODE4ZDQ0MTg4NGJmMWNjODkwNDAxODIzZDQ4OTg1MTIxOTk3NzcyZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCkBAIC0yMTYsNiArMjE2LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIg
ewogICAgIHZvaWQgc2V0VXNlck1lZGlhUGVyc2lzdGVudFBlcm1pc3Npb25Gb3JPcmlnaW4oYm9v
bGVhbiBwZXJtaXNzaW9uLCBET01TdHJpbmcgb3JpZ2luLCBET01TdHJpbmcgcGFyZW50T3JpZ2lu
KTsKICAgICB1bnNpZ25lZCBsb25nIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291bnRGb3JP
cmlnaW4oRE9NU3RyaW5nIG9yaWdpbiwgRE9NU3RyaW5nIHBhcmVudE9yaWdpbik7CiAgICAgdm9p
ZCByZXNldFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oRE9NU3RyaW5n
IG9yaWdpbiwgRE9NU3RyaW5nIHBhcmVudE9yaWdpbik7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gaXNEb2luZ01lZGlhQ2FwdHVyZTsKIAogICAgIC8vIEF1ZGlvIHRlc3RpbmcuCiAg
ICAgW1Bhc3NDb250ZXh0XSB2b2lkIHNldEF1ZGlvUmVzdWx0KG9iamVjdCBkYXRhKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CmluZGV4IDc5ZTcxY2JmNDM3MzQ0ZWE1NjU4Y2E3M2M2N2NkNTMxZmRkNGQyM2UuLjI3M2I0OGQw
MWY5MWY3MDEzMzY1NDc2NTE3NzkxYjM5MzY1MTQ3MTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTA5Myw2ICsx
MDkzLDE1IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKCkKICAg
ICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucmVzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKCk7
CiB9CiAKK2Jvb2wgVGVzdFJ1bm5lcjo6aXNEb2luZ01lZGlhQ2FwdHVyZSgpIGNvbnN0Cit7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc0RvaW5nTWVkaWFDYXB0dXJlIikpOworICAgIFdLVHlw
ZVJlZiByZXR1cm5EYXRhID0gbnVsbHB0cjsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25v
dXNNZXNzYWdlRm9yVGVzdGluZyhJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5w
YWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBudWxscHRyLCAmcmV0dXJuRGF0YSk7CisgICAgQVNT
RVJUKFdLR2V0VHlwZUlEKHJldHVybkRhdGEpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAg
ICByZXR1cm4gV0tCb29sZWFuR2V0VmFsdWUoYWRvcHRXSyhzdGF0aWNfY2FzdDxXS0Jvb2xlYW5S
ZWY+KHJldHVybkRhdGEpKS5nZXQoKSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlck1l
ZGlhUGVyc2lzdGVudFBlcm1pc3Npb25Gb3JPcmlnaW4oYm9vbCBwZXJtaXNzaW9uLCBKU1N0cmlu
Z1JlZiBvcmlnaW4sIEpTU3RyaW5nUmVmIHBhcmVudE9yaWdpbikKIHsKICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gb3JpZ2luV0sgPSB0b1dLKG9yaWdpbik7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDIyMTRkNzdi
OGMzOTc5YTQ3YzVlOGVkYWE1ZDMyNzEyZDE0MzQxZDkuLmVjNzY5ZjY0NmY1YzUwMTIzYTE5Zjlh
MTM2MWE5YTFhOTQzMmM1YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zMTgsNiArMzE4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0VXNlck1lZGlhUGVyc2lzdGVudFBlcm1pc3Npb25Gb3JPcmlnaW4oYm9vbCBwZXJt
aXNzaW9uLCBKU1N0cmluZ1JlZiBvcmlnaW4sIEpTU3RyaW5nUmVmIHBhcmVudE9yaWdpbik7CiAg
ICAgdW5zaWduZWQgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihKU1N0
cmluZ1JlZiBvcmlnaW4sIEpTU3RyaW5nUmVmIHBhcmVudE9yaWdpbikgY29uc3Q7CiAgICAgdm9p
ZCByZXNldFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oSlNTdHJpbmdS
ZWYgb3JpZ2luLCBKU1N0cmluZ1JlZiBwYXJlbnRPcmlnaW4pOworICAgIGJvb2wgaXNEb2luZ01l
ZGlhQ2FwdHVyZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRQYWdlVmlzaWJpbGl0eShKU1N0cmlu
Z1JlZiBzdGF0ZSk7CiAgICAgdm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5KCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDZkNGRmZmI0OTY1NjUyNGM2NGQ5
NjJlNzlmZTIzODM4NGM2OWMwYzYuLjU0ZTM5MjExYmY1Y2UyMzM5YmM0MDJmNWZkZDkyOTIwZDZm
ZWI0MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0z
MTg1LDYgKzMxODUsMTIgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6a2V5RXhpc3RzSW5LZXljaGFp
bihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBmYWxzZTsKIH0K
KworYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNEb2luZ01lZGlhQ2FwdHVyZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiAjZW5kaWYKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2Vu
ZERpc3BsYXlDb25maWd1cmF0aW9uQ2hhbmdlZE1lc3NhZ2VGb3JUZXN0aW5nKCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAxM2EzOWM2OTA1ZjBkODdiYTg3Yjlk
YjU3ZjhkYWQ1YzE3YWM3MWJjLi45NWEwNTgxMjVkMmFlYTBkYzQxNzQwZjJkOWZlNjZhNmExYmI3
NmRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0yNzgsNiAr
Mjc4LDggQEAgcHVibGljOgogICAgIFVJS2V5Ym9hcmRJbnB1dE1vZGUgKm92ZXJyaWRkZW5LZXli
b2FyZElucHV0TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbktleWJvYXJkSW5wdXRN
b2RlLmdldCgpOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgaXNEb2luZ01lZGlhQ2FwdHVyZSgpIGNv
bnN0OworCiBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+
IGdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZik7CiAg
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVDb250ZXh0
Q29uZmlndXJhdGlvbigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcAppbmRleCAwYzZjODc3ZmYxZGFiNzU1YWRlMjhlOWUyMzRmNDRlNTVmZDk0YzI3Li5k
MWMwNDQxYjllNTdkNDk5ODYyMGY4OTM0N2FlYTllMTU3ZWVlNzU3IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTAzNCw2ICsxMDM0LDEwIEBAIFdLUmV0
YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01l
c3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiByZXN1
bHQoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUoY291bnQpKTsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJJc0RvaW5nTWVkaWFDYXB0dXJlIikpIHsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tUeXBl
UmVmPiByZXN1bHQoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5pc0RvaW5nTWVkaWFDYXB0dXJlKCkpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFt
ZSwgIlNldFN0YXRpc3RpY3NEZWJ1Z01vZGUiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBl
SUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCAxMWIw
ZTNhZTM0ZmJiZTdlMWJhOWUxNzIxYTRkMTE4ZDMzMDI2Nzk2Li40ZDRkMTc2NDJlNDcxZTg1M2Y5
YTNiODNkNzEzZGRiYTIwZTJkNTYyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC0zODIsNCArMzgyLDkgQEAgYm9vbCBU
ZXN0Q29udHJvbGxlcjo6a2V5RXhpc3RzSW5LZXljaGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJl
bCwgY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBUZXN0Q29udHJv
bGxlcjo6aXNEb2luZ01lZGlhQ2FwdHVyZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWFpbldl
YlZpZXctPnBsYXRmb3JtVmlldygpLl9tZWRpYUNhcHR1cmVTdGF0ZSAhPSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZU5vbmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaAppbmRleCA1YmMyY2I3Mjg4
YmQwNzViMzFjZjdkYzA4YjAzMzYwNzA3ZDM2OWQ3Li45ZTFmOWY0NjRjYmQ2YTIyZjRlNmEyZGU2
MjIwYWY1ZDY1MGU5YWE1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RSdW5uZXJXS1dlYlZpZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RSdW5uZXJXS1dlYlZpZXcuaApAQCAtMjMsNiArMjMsNyBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2
YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CiAKICNpZiBXS19BUElfRU5BQkxFRApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJW
aWV3Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3
Lm1tCmluZGV4IDZjNzgwMzc1YTkyOTc5ZjdjNGFkOTVhMTllM2QyYTc1NGU0ZTFmZGIuLmNmNzhj
OTg2MDUyNTIyMDA0ZTY3ZjBkMWIwNzU3ZTBjZmQ0NzE2YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KQEAgLTEyNSw2ICsx
MjUsMTEgQEAgLSAoQk9PTClpc0ludGVyYWN0aW5nV2l0aEZvcm1Db250cm9sCiAgICAgcmV0dXJu
IG1faXNJbnRlcmFjdGluZ1dpdGhGb3JtQ29udHJvbDsKIH0KIAorLSAoX1dLTWVkaWFDYXB0dXJl
U3RhdGUpbWVkaWFTdGF0ZQoreworICAgIHJldHVybiBtX21lZGlhU3RhdGU7Cit9CisKIC0gKHZv
aWQpX2RpZFNob3dGb3JjZVByZXNzUHJldmlldwogewogICAgIGlmIChzZWxmLmRpZFNob3dGb3Jj
ZVByZXNzUHJldmlld0NhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2VicnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYx
MmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvZ2V0VXNl
ck1lZGlhLXByb2Nlc3NTd2FwcGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9j
ZXNzU3dhcHBpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVk
aWEtcHJvY2Vzc1N3YXBwaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDUwZmYyMmY3YTMyY2QxMGQ0MGQw
ODVhMzMxNTYyNTFjMGJhYjY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBwaW5nLmh0bWwKQEAgLTAsMCArMSw0
MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Z2V0
VXNlck1lZGlhIG9uIHByb2Nlc3Mgc3dhcHBpbmc8L3RpdGxlPgorPGJvZHk+Cis8dmlkZW8gaWQ9
ImxvY2FsIj48L3ZpZGVvPgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
fQorCithc3luYyBmdW5jdGlvbiBnZXRVc2VyTWVkaWFBbmROYXZpZ2F0ZSgpCit7CisgICAgbG9j
YWwuc3JjT2JqZWN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
e3ZpZGVvOiB0cnVlfSk7CisgICAgYXdhaXQgbG9jYWwucGxheSgpOworICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmICF0ZXN0UnVubmVyLmlzRG9pbmdNZWRpYUNhcHR1cmUpIHsKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiRkFJTDogbm8gY2FwdHVyZSBzdGF0ZSI7
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIHdpbmRvdy5sb2NhdGlvbiA9IGdldF9ob3N0X2luZm8oKS5IVFRQU19PUklHSU4gKyAi
L1dlYktpdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy5odG1sIjsKK30KKwor
ZnVuY3Rpb24gdmFsaWRhdGVNZWRpYUNhcHR1cmVTdGF0ZUFmdGVyTmF2aWdhdGlvbigpCit7Cisg
ICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVy
SFRNTCA9ICJGQUlMOiBOZWVkIHRlc3RSdW5uZXIgQVBJIjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHRlc3RSdW5uZXIuaXNEb2luZ01lZGlh
Q2FwdHVyZSA/ICJGQUlMIiA6ICJQQVNTIjsKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30KKworaWYgKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PT0gImh0dHA6IikKKyAgICBnZXRV
c2VyTWVkaWFBbmROYXZpZ2F0ZSgpOworZWxzZQorICAgIHZhbGlkYXRlTWVkaWFDYXB0dXJlU3Rh
dGVBZnRlck5hdmlnYXRpb24oKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360885</attachid>
            <date>2019-02-01 12:58:52 -0800</date>
            <delta_ts>2019-02-01 13:30:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194122-20190201125852.patch</filename>
            <type>text/plain</type>
            <size>18054</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2M2JjYWUxY2ZiODU2OTll
MzRlOThmNTdkYWRlYmZjNTRhOGJjODIuLjM4YTM3YjdiMmVmNDc4OTQyYjZjN2I4NDJlN2E0MzFi
NWU3OTE3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxk
IGJlIG1hbmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIFBTT04sIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZSBpcyBjYWxsZWQuCisgICAgICAgIEl0IHJlc2V0cyB0aGUgbWVkaWEgc3RhdGUsIGJ1
dCBkb2VzIG5vdCBjYWxsIHRoZSBjbGllbnQgZGVsZWdhdGVzLgorICAgICAgICBJbnN0ZWFkIG9m
IGRpcmVjdGx5IHVwZGF0aW5nIHRoZSBtZWRpYSBzdGF0ZSwgY2FsbCB0aGUgcm91dGluZSB1c2Vk
IHRvIHVwZGF0ZSBpdCBzbyB0aGF0IGNsaWVudCBkZWxlZ2F0ZXMgYXJlIGNhbGxlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdCBhbmQgbGF5b3V0IHRlc3QuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXNldFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc1BsYXlp
bmdNZWRpYURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRl
UGxheWluZ01lZGlhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisKIDIwMTktMDEtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byBjb3ZlciBVSUNsaWVudCBjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4gYmVpbmcgbnVsbHB0cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggYzJhNGQ2YTE5MDJhYjM2NGQwMjE5NzYwMzY4NThiMmRlODYz
YzhhOC4uM2M0Yzg2NDk2MDRjZWNjZTk5OGIzNTk4MTAwODcxYTU0NTEyZWQyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NjE5LDcgKzY2MTksNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uIHJlc2V0U3RhdGVS
ZWFzb24pCiAgICAgICAgIGVkaXRDb21tYW5kLT5pbnZhbGlkYXRlKCk7CiAKICAgICBtX2FjdGl2
ZVBvcHVwTWVudSA9IG51bGxwdHI7Ci0gICAgbV9tZWRpYVN0YXRlID0gTWVkaWFQcm9kdWNlcjo6
SXNOb3RQbGF5aW5nOworICAgIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1
Y2VyOjpJc05vdFBsYXlpbmcpOwogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICByZXF1
ZXN0UG9pbnRlclVubG9jaygpOwpAQCAtNzY3Nyw3ICs3Njc3LDExIEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MgbmV3U3RhCiAgICAgQVNTRVJUKGZvY3VzTWFuYWdlcik7CiAgICAgZm9jdXNNYW5hZ2VyLT51
cGRhdGVQbGF5YmFja0F0dHJpYnV0ZXNGcm9tTWVkaWFTdGF0ZSh0aGlzLCBzb3VyY2VFbGVtZW50
SUQsIG5ld1N0YXRlKTsKICNlbmRpZgorICAgIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShu
ZXdTdGF0ZSk7Cit9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld1N0YXRlKQorewogICAgIGlm
IChuZXdTdGF0ZSA9PSBtX21lZGlhU3RhdGUpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2ZmFhY2I4NjYzM2E1MjIwNTViMDY3YmI4
NzJhMmJlOTJkYWQ5MWZhLi41YjkwNjIwYmY5NGJlZjNlNjE3OTJjYTdiZjE5NGExNGRmYjcyMDQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTIzOCw2ICsxMjM4
LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1BsYXlpbmdBdWRpbygpIGNvbnN0IHsgcmV0dXJu
ICEhKG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OklzUGxheWluZ0F1ZGlv
KTsgfQogICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCk7CisgICAgdm9pZCB1cGRhdGVQbGF5aW5n
TWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5l
d1N0YXRlKTsKICAgICBib29sIGhhc0FjdGl2ZUF1ZGlvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0
dXJlRGV2aWNlOyB9CiAgICAgYm9vbCBoYXNBY3RpdmVWaWRlb1N0cmVhbSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWVkaWFTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZVZpZGVv
Q2FwdHVyZURldmljZTsgfQogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncyBtZWRpYVN0YXRlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGU7IH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYzdkNTJj
YzQ1YzA0ODc0ZjJjN2JmNTIxNjZhZDEyZDYzYmU3YTQ4Li5kYWZhYzM1YjE4NjBkOTk3ZTdhMTAw
NGRjMzA5OTlmMTI3ZWUxODk1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTktMDItMDEgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxkIGJlIG1h
bmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW0dldFVzZXJNZWRpYVVJRGVsZWdhdGUg
X3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWlu
RnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtHZXRVc2VyTWVkaWFVSURl
bGVnYXRlIF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVV
Ukw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bR2V0VXNl
ck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTpdKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmlzRG9pbmdNZWRpYUNhcHR1
cmUgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNEb2luZ01lZGlhQ2FwdHVyZSBjb25z
dCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNv
Y29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNEb2luZ01lZGlhQ2FwdHVy
ZSBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tX
ZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IG1lZGlhU3RhdGVdKToK
KwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVyIFVJQ2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bQppbmRleCBhZjg1MTcwZjgzZmExMThlNTkzYjhjNmZhMmU3NWJhN2ZjNGU2ZGQ4Li40M2U4YTUw
MDdkM2FmM2NmNDMzN2JiY2I1NTljMTZlYzZkNTllN2FkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0KQEAgLTI4LDYgKzI4LDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgi
CisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZW50UnVs
ZUxpc3RTdG9yZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvblByaXZhdGUuaD4KQEAgLTQzNjEsNCAr
NDM2Miw4OSBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb250ZW50QmxvY2tpbmdBZnRlclByb2Nlc3NT
d2FwKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wgaXNDYXB0dXJpbmcgPSBm
YWxzZTsKK0BpbnRlcmZhY2UgR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlE
ZWxlZ2F0ZT4KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2Vz
IHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVV
UkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9u
SGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworQGVuZAorCitA
aW1wbGVtZW50YXRpb24gR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZQorLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmlj
ZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVV
Ukw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBh
dXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsK
K30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWlu
RnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRl
Y2lzaW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgWUVT
KTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1
cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUKK3sKKyAgICBpc0Nh
cHR1cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworfQor
QGVuZAorCitzdGF0aWMgY29uc3QgY2hhciogZ2V0VXNlck1lZGlhQnl0ZXMgPSBSIlBTT05SRVNP
VVJDRSgKKzxoZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaGVhZD4K
KylQU09OUkVTT1VSQ0UiOworCitURVNUKFByb2Nlc3NTd2FwLCBHZXRVc2VyTWVkaWFDYXB0dXJl
U3RhdGUpCit7CisgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiA9IFlFUzsKKyAg
ICBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCkucHJld2FybXNQcm9jZXNzZXNBdXRvbWF0
aWNhbGx5ID0gWUVTOworCisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nl
c3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJl
bmNlcyA9IFt3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKSBwcmVmZXJlbmNlc107CisgICAgcHJl
ZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAg
IHByZWZlcmVuY2VzLl9tZWRpYURldmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2Vz
Ll9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworCisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBhdXRvIGhhbmRs
ZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFtoYW5kbGVyIGFk
ZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL2dldFVzZXJNZWRp
YS5odG1sIiB0b0RhdGE6Z2V0VXNlck1lZGlhQnl0ZXNdOworICAgIFtoYW5kbGVyIGFkZE1hcHBp
bmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5vcmcvdGVzdC5odG1sIiB0b0RhdGE6
IiJdOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRs
ZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOwor
CisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgYXV0byB1aURlbGVnYXRlID0gYWRv
cHROUyhbW0dldFVzZXJNZWRpYVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmll
dyBzZXRVSURlbGVnYXRlOiB1aURlbGVnYXRlLmdldCgpXTsKKworICAgIGF1dG8gcmVxdWVzdCA9
IGFkb3B0TlMoW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9nZXRVc2VyTWVkaWEuaHRtbCJdXSk7CisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNDYXB0dXJpbmcpOworCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIHJlcXVlc3QgPSBhZG9wdE5TKFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxl
Lm9yZy90ZXN0Lmh0bWwiXV0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3QuZ2V0
KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0g
ZmFsc2U7CisKKyAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
OworCisgICAgRVhQRUNUX0ZBTFNFKGlzQ2FwdHVyaW5nKTsKKyAgICBFWFBFQ1RfRkFMU0UocGlk
MSA9PSBwaWQyKTsKK30KKworCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCmluZGV4IDY3ZmM5M2U5MTYyMmJkZDMzMzE4NWM3ZjZiMjA4YTM5ZmVlNDQ1
MTYuLjgxOGQ0NDE4ODRiZjFjYzg5MDQwMTgyM2Q0ODk4NTEyMTk5Nzc3MmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbApAQCAtMjE2LDYgKzIxNiw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVy
IHsKICAgICB2b2lkIHNldFVzZXJNZWRpYVBlcnNpc3RlbnRQZXJtaXNzaW9uRm9yT3JpZ2luKGJv
b2xlYW4gcGVybWlzc2lvbiwgRE9NU3RyaW5nIG9yaWdpbiwgRE9NU3RyaW5nIHBhcmVudE9yaWdp
bik7CiAgICAgdW5zaWduZWQgbG9uZyB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9y
T3JpZ2luKERPTVN0cmluZyBvcmlnaW4sIERPTVN0cmluZyBwYXJlbnRPcmlnaW4pOwogICAgIHZv
aWQgcmVzZXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2luKERPTVN0cmlu
ZyBvcmlnaW4sIERPTVN0cmluZyBwYXJlbnRPcmlnaW4pOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuIGlzRG9pbmdNZWRpYUNhcHR1cmU7CiAKICAgICAvLyBBdWRpbyB0ZXN0aW5nLgog
ICAgIFtQYXNzQ29udGV4dF0gdm9pZCBzZXRBdWRpb1Jlc3VsdChvYmplY3QgZGF0YSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAppbmRleCA3OWU3MWNiZjQzNzM0NGVhNTY1OGNhNzNjNjdjZDUzMWZkZDRkMjNlLi4yNzNiNDhk
MDFmOTFmNzAxMzM2NTQ3NjUxNzc5MWIzOTM2NTE0NzEwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEwOTMsNiAr
MTA5MywxNSBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0VXNlck1lZGlhUGVybWlzc2lvbigpCiAg
ICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnJlc2V0VXNlck1lZGlhUGVybWlzc2lvbigp
OwogfQogCitib29sIFRlc3RSdW5uZXI6OmlzRG9pbmdNZWRpYUNhcHR1cmUoKSBjb25zdAorewor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNEb2luZ01lZGlhQ2FwdHVyZSIpKTsKKyAgICBXS1R5
cGVSZWYgcmV0dXJuRGF0YSA9IG51bGxwdHI7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9u
b3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+
cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgJnJldHVybkRhdGEpOworICAgIEFT
U0VSVChXS0dldFR5cGVJRChyZXR1cm5EYXRhKSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7Cisg
ICAgcmV0dXJuIFdLQm9vbGVhbkdldFZhbHVlKGFkb3B0V0soc3RhdGljX2Nhc3Q8V0tCb29sZWFu
UmVmPihyZXR1cm5EYXRhKSkuZ2V0KCkpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNldFVzZXJN
ZWRpYVBlcnNpc3RlbnRQZXJtaXNzaW9uRm9yT3JpZ2luKGJvb2wgcGVybWlzc2lvbiwgSlNTdHJp
bmdSZWYgb3JpZ2luLCBKU1N0cmluZ1JlZiBwYXJlbnRPcmlnaW4pCiB7CiAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IG9yaWdpbldLID0gdG9XSyhvcmlnaW4pOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAyMjE0ZDc3
YjhjMzk3OWE0N2M1ZThlZGFhNWQzMjcxMmQxNDM0MWQ5Li5lYzc2OWY2NDZmNWM1MDEyM2ExOWY5
YTEzNjFhOWExYTk0MzJjNWI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzE4LDYgKzMxOCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFVzZXJNZWRpYVBlcnNpc3RlbnRQZXJtaXNzaW9uRm9yT3JpZ2luKGJvb2wgcGVy
bWlzc2lvbiwgSlNTdHJpbmdSZWYgb3JpZ2luLCBKU1N0cmluZ1JlZiBwYXJlbnRPcmlnaW4pOwog
ICAgIHVuc2lnbmVkIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oSlNT
dHJpbmdSZWYgb3JpZ2luLCBKU1N0cmluZ1JlZiBwYXJlbnRPcmlnaW4pIGNvbnN0OwogICAgIHZv
aWQgcmVzZXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2luKEpTU3RyaW5n
UmVmIG9yaWdpbiwgSlNTdHJpbmdSZWYgcGFyZW50T3JpZ2luKTsKKyAgICBib29sIGlzRG9pbmdN
ZWRpYUNhcHR1cmUoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoSlNTdHJp
bmdSZWYgc3RhdGUpOwogICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eSgpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA2ZDRkZmZiNDk2NTY1MjRjNjRk
OTYyZTc5ZmUyMzgzODRjNjljMGM2Li41NGUzOTIxMWJmNWNlMjMzOWJjNDAyZjVmZGQ5MjkyMGQ2
ZmViNDMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAt
MzE4NSw2ICszMTg1LDEyIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmtleUV4aXN0c0luS2V5Y2hh
aW4oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9
CisKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmlzRG9pbmdNZWRpYUNhcHR1cmUoKSBjb25zdAorewor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogI2VuZGlmCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
bmREaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWRNZXNzYWdlRm9yVGVzdGluZygpCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMTNhMzljNjkwNWYwZDg3YmE4N2I5
ZGI1N2Y4ZGFkNWMxN2FjNzFiYy4uOTVhMDU4MTI1ZDJhZWEwZGM0MTc0MGYyZDlmZTY2YTZhMWJi
NzZkZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjc4LDYg
KzI3OCw4IEBAIHB1YmxpYzoKICAgICBVSUtleWJvYXJkSW5wdXRNb2RlICpvdmVycmlkZGVuS2V5
Ym9hcmRJbnB1dE1vZGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5LZXlib2FyZElucHV0
TW9kZS5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICBib29sIGlzRG9pbmdNZWRpYUNhcHR1cmUoKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVm
PiBnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYpOwog
ICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWY+IGdlbmVyYXRlQ29udGV4
dENvbmZpZ3VyYXRpb24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKaW5kZXggMGM2Yzg3N2ZmMWRhYjc1NWFkZTI4ZTllMjM0ZjQ0ZTU1ZmQ5NGMyNy4u
ZDFjMDQ0MWI5ZTU3ZDQ5OTg2MjBmODkzNDdhZWE5ZTE1N2VlZTc1NyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEwMzQsNiArMTAzNCwxMCBAQCBXS1Jl
dGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNN
ZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gcmVz
dWx0KEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKGNvdW50KSk7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VO
YW1lLCAiSXNEb2luZ01lZGlhQ2FwdHVyZSIpKSB7CisgICAgICAgIFdLUmV0YWluUHRyPFdLVHlw
ZVJlZj4gcmVzdWx0KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuaXNEb2luZ01lZGlhQ2FwdHVyZSgpKSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgfQogCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpIHsKICAgICAgICAgQVNTRVJUKFdLR2V0VHlw
ZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggMTFi
MGUzYWUzNGZiYmU3ZTFiYTllMTcyMWE0ZDExOGQzMzAyNjc5Ni4uNGQ0ZDE3NjQyZTQ3MWU4NTNm
OWEzYjgzZDcxM2RkYmEyMGUyZDU2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMzgyLDQgKzM4Miw5IEBAIGJvb2wg
VGVzdENvbnRyb2xsZXI6OmtleUV4aXN0c0luS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiBhdHRyTGFi
ZWwsIGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgVGVzdENvbnRy
b2xsZXI6OmlzRG9pbmdNZWRpYUNhcHR1cmUoKSBjb25zdAoreworICAgIHJldHVybiBtX21haW5X
ZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKS5fbWVkaWFDYXB0dXJlU3RhdGUgIT0gX1dLTWVkaWFDYXB0
dXJlU3RhdGVOb25lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKaW5kZXggNWJjMmNiNzI4
OGJkMDc1YjMxY2Y3ZGMwOGIwMzM2MDcwN2QzNjlkNy4uOWUxZjlmNDY0Y2JkNmEyMmY0ZTZhMmRl
NjIyMGFmNWQ2NTBlOWFhNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKQEAgLTIzLDYgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJp
dmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgogCiAjaWYgV0tfQVBJX0VOQUJMRUQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2Vi
Vmlldy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmll
dy5tbQppbmRleCA2Yzc4MDM3NWE5Mjk3OWY3YzRhZDk1YTE5ZTNkMmE3NTRlNGUxZmRiLi5jZjc4
Yzk4NjA1MjUyMjAwNGU2N2YwZDFiMDc1N2UwY2ZkNDcxNmE2IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCkBAIC0xMjUsNiAr
MTI1LDExIEBAIC0gKEJPT0wpaXNJbnRlcmFjdGluZ1dpdGhGb3JtQ29udHJvbAogICAgIHJldHVy
biBtX2lzSW50ZXJhY3RpbmdXaXRoRm9ybUNvbnRyb2w7CiB9CiAKKy0gKF9XS01lZGlhQ2FwdHVy
ZVN0YXRlKW1lZGlhU3RhdGUKK3sKKyAgICByZXR1cm4gbV9tZWRpYVN0YXRlOworfQorCiAtICh2
b2lkKV9kaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXcKIHsKICAgICBpZiAoc2VsZi5kaWRTaG93Rm9y
Y2VQcmVzc1ByZXZpZXdDYWxsYmFjaykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBwaW5nLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQwMTZjOGVm
MTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVz
ZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJv
Y2Vzc1N3YXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvZ2V0VXNlck1l
ZGlhLXByb2Nlc3NTd2FwcGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1MGZmMjJmN2EzMmNkMTBkNDBk
MDg1YTMzMTU2MjUxYzBiYWI2NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy5odG1sCkBAIC0wLDAgKzEs
NDEgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPmdl
dFVzZXJNZWRpYSBvbiBwcm9jZXNzIHN3YXBwaW5nPC90aXRsZT4KKzxib2R5PgorPHZpZGVvIGlk
PSJsb2NhbCI+PC92aWRlbz4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3Vi
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
K30KKworYXN5bmMgZnVuY3Rpb24gZ2V0VXNlck1lZGlhQW5kTmF2aWdhdGUoKQoreworICAgIGxv
Y2FsLnNyY09iamVjdCA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHt2aWRlbzogdHJ1ZX0pOworICAgIGF3YWl0IGxvY2FsLnBsYXkoKTsKKyAgICBhd2FpdCBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiAhdGVzdFJ1bm5lci5pc0RvaW5nTWVkaWFDYXB0dXJlKSB7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIkZBSUw6IG5vIGNhcHR1cmUgc3RhdGUi
OworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICB3aW5kb3cubG9jYXRpb24gPSBnZXRfaG9zdF9pbmZvKCkuSFRUUFNfT1JJR0lOICsg
Ii9XZWJLaXQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmcuaHRtbCI7Cit9CisK
K2Z1bmN0aW9uIHZhbGlkYXRlTWVkaWFDYXB0dXJlU3RhdGVBZnRlck5hdmlnYXRpb24oKQorewor
ICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5l
ckhUTUwgPSAiRkFJTDogTmVlZCB0ZXN0UnVubmVyIEFQSSI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSB0ZXN0UnVubmVyLmlzRG9pbmdNZWRp
YUNhcHR1cmUgPyAiRkFJTCIgOiAiUEFTUyI7CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9CisKK2lmICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT09ICJodHRwOiIpCisgICAgZ2V0
VXNlck1lZGlhQW5kTmF2aWdhdGUoKTsKK2Vsc2UKKyAgICB2YWxpZGF0ZU1lZGlhQ2FwdHVyZVN0
YXRlQWZ0ZXJOYXZpZ2F0aW9uKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360891</attachid>
            <date>2019-02-01 13:30:13 -0800</date>
            <delta_ts>2019-02-01 14:12:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194122-20190201133013.patch</filename>
            <type>text/plain</type>
            <size>19161</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2M2JjYWUxY2ZiODU2OTll
MzRlOThmNTdkYWRlYmZjNTRhOGJjODIuLjM4ZDU4MTU2MWRjYjMzM2YyYTFmNzg1Nzk5NTI1YjVm
NGE1NWI1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxk
IGJlIG1hbmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIFBTT04sIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZSBpcyBjYWxsZWQuCisgICAgICAgIEl0IHJlc2V0cyB0aGUgbWVkaWEgc3RhdGUsIGJ1
dCBkb2VzIG5vdCBjYWxsIHRoZSBjbGllbnQgZGVsZWdhdGVzLgorICAgICAgICBJbnN0ZWFkIG9m
IGRpcmVjdGx5IHVwZGF0aW5nIHRoZSBtZWRpYSBzdGF0ZSwgY2FsbCB0aGUgcm91dGluZSB1c2Vk
IHRvIHVwZGF0ZSBpdCBzbyB0aGF0IGNsaWVudCBkZWxlZ2F0ZXMgYXJlIGNhbGxlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdCBhbmQgbGF5b3V0IHRlc3QuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9tZWRpYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVy
IFVJQ2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRl
eCA0NDBkMDg4ZDc3M2E0MWY0M2Y5ZDA4Mzk1YWZlM2ViMjA3MWNkNDhlLi5lOTQ3ODg5NTM0ZjAy
MWJkOTk1N2U0MDJhMjRjMTAxODJkMGU0ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTU1NTUsNiArNTU1NSwyMyBAQCAtIChCT09M
KV9tZWRpYUNhcHR1cmVFbmFibGVkCiAgICAgcmV0dXJuIF9wYWdlLT5tZWRpYUNhcHR1cmVFbmFi
bGVkKCk7CiB9CiAKKy0gKF9XS01lZGlhQ2FwdHVyZVN0YXRlKV9tZWRpYUNhcHR1cmVTdGF0ZQor
eworICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+bWVkaWFTdGF0ZUZsYWdzKCk7CisKKyAgICBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRl
Tm9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVB
dWRpb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlh
Q2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2
aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkTWljcm9waG9uZTsKKyAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpI
YXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0g
X1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsKKworICAgIHJldHVybiBtZWRpYUNhcHR1
cmVTdGF0ZTsKK30KKwogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUp
bXV0ZWRTdGF0ZQogewogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyBjb3JlU3RhdGUgPSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpOb25lTXV0ZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApp
bmRleCAyOWFlNzkzNWMzNWUwMzAyY2VhZDUwYzljZmI2M2U1MDViOTA5MDE0Li5hYzE4ZDMxNmRi
OGM1ZWE3ZTY0NzgwMDE0MDMzY2FiMzQwMmIyZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTM5OSw2ICszOTks
NyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKHZv
aWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3Mo
MTEuMCkpOwogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRpYU11dGVkU3RhdGUpbXV0ZWRT
dGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2Fw
dHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFDYXB0dXJlRW5h
YmxlZDopIEJPT0wgX21lZGlhQ2FwdHVyZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2NhblRvZ2dsZVBpY3R1cmVJblBpY3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCBjMmE0ZDZhMTkwMmFiMzY0ZDAyMTk3NjAzNjg1OGIyZGU4NjNj
OGE4Li4zYzRjODY0OTYwNGNlY2NlOTk4YjM1OTgxMDA4NzFhNTQ1MTJlZDI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY2MTksNyArNjYxOSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJl
YXNvbikKICAgICAgICAgZWRpdENvbW1hbmQtPmludmFsaWRhdGUoKTsKIAogICAgIG1fYWN0aXZl
UG9wdXBNZW51ID0gbnVsbHB0cjsKLSAgICBtX21lZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyOjpJ
c05vdFBsYXlpbmc7CisgICAgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVj
ZXI6OklzTm90UGxheWluZyk7CiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIHJlcXVl
c3RQb2ludGVyVW5sb2NrKCk7CkBAIC03Njc3LDcgKzc2NzcsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBuZXdTdGEKICAgICBBU1NFUlQoZm9jdXNNYW5hZ2VyKTsKICAgICBmb2N1c01hbmFnZXItPnVw
ZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zyb21NZWRpYVN0YXRlKHRoaXMsIHNvdXJjZUVsZW1lbnRJ
RCwgbmV3U3RhdGUpOwogI2VuZGlmCisgICAgdXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKG5l
d1N0YXRlKTsKK30KIAordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENo
YW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpCit7CiAgICAgaWYg
KG5ld1N0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDZmYWFjYjg2NjMzYTUyMjA1NWIwNjdiYjg3
MmEyYmU5MmRhZDkxZmEuLjViOTA2MjBiZjk0YmVmM2U2MTc5MmNhN2JmMTk0YTE0ZGZiNzIwNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjM4LDYgKzEyMzgs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGxheWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4g
ISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8p
OyB9CiAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90KTsKKyAgICB2b2lkIHVwZGF0ZVBsYXlpbmdN
ZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3
U3RhdGUpOwogICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1
cmVEZXZpY2U7IH0KICAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9D
YXB0dXJlRGV2aWNlOyB9CiAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzIG1lZGlhU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZjN2Q1MmNj
NDVjMDQ4NzRmMmM3YmY1MjE2NmFkMTJkNjNiZTdhNDguLjAxOTk5Yjk4NGU4MDQ1NDUyNjRlMDZh
ODk5NWE4OTg3MjczZDUxZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMi0wMSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FwdHVyZSBzdGF0ZSBzaG91bGQgYmUgbWFu
YWdlZCBjb25zaXN0ZW50bHkgd2hlbiBkb2luZyBwcm9jZXNzIHN3YXBwaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQxMjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ3NjA5MjkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSBf
d2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5G
cmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW0dldFVzZXJNZWRpYVVJRGVs
ZWdhdGUgX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVS
TDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtHZXRVc2Vy
TWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6aXNEb2luZ01lZGlhQ2FwdHVy
ZSBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0RvaW5nTWVkaWFDYXB0dXJlIGNvbnN0
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29j
b2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0RvaW5nTWVkaWFDYXB0dXJl
IGNvbnN0KToKKwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVyIFVJQ2xpZW50IGNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRyCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQppbmRleCBhZjg1MTcwZjgzZmExMThlNTkzYjhjNmZhMmU3NWJhN2ZjNGU2ZGQ4
Li40M2U4YTUwMDdkM2FmM2NmNDMzN2JiY2I1NTljMTZlYzZkNTllN2FkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI4LDYgKzI4LDcgQEAKICNpbXBvcnQgIlBsYXRmb3Jt
VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRl
bGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tD
b250ZW50UnVsZUxpc3RTdG9yZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkRlbGVn
YXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvblByaXZhdGUuaD4KQEAg
LTQzNjEsNCArNDM2Miw4OSBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb250ZW50QmxvY2tpbmdBZnRl
clByb2Nlc3NTd2FwKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wgaXNDYXB0
dXJpbmcgPSBmYWxzZTsKK0BpbnRlcmZhY2UgR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0PFdLVUlEZWxlZ2F0ZT4KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNl
cylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFt
ZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25I
YW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKilt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQp
KWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOwor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZQorLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBt
YWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBkZWNpc2lvbkhhbmRs
ZXIoWUVTKTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNV
UkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRp
ZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhv
cml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0
MzIxIiwgWUVTKTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUKK3sK
KyAgICBpc0NhcHR1cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2Ft
ZXJhOworfQorQGVuZAorCitzdGF0aWMgY29uc3QgY2hhciogZ2V0VXNlck1lZGlhQnl0ZXMgPSBS
IlBTT05SRVNPVVJDRSgKKzxoZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaGVhZD4KKylQU09OUkVTT1VSQ0UiOworCitURVNUKFByb2Nlc3NTd2FwLCBHZXRVc2VyTWVk
aWFDYXB0dXJlU3RhdGUpCit7CisgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiA9
IFlFUzsKKyAgICBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCkucHJld2FybXNQcm9jZXNz
ZXNBdXRvbWF0aWNhbGx5ID0gWUVTOworCisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMo
W1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0
byBwcmVmZXJlbmNlcyA9IFt3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKSBwcmVmZXJlbmNlc107
CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9
IE5POworICAgIHByZWZlcmVuY2VzLl9tZWRpYURldmljZXNFbmFibGVkID0gWUVTOworICAgIHBy
ZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0gWUVTOworCisgICAgW3dlYlZp
ZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBh
dXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFto
YW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL2dl
dFVzZXJNZWRpYS5odG1sIiB0b0RhdGE6Z2V0VXNlck1lZGlhQnl0ZXNdOworICAgIFtoYW5kbGVy
IGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5vcmcvdGVzdC5odG1s
IiB0b0RhdGE6IiJdOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5k
bGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5n
ZXQoKV0pOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5h
dmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgYXV0byB1aURlbGVn
YXRlID0gYWRvcHROUyhbW0dldFVzZXJNZWRpYVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOiB1aURlbGVnYXRlLmdldCgpXTsKKworICAgIGF1dG8g
cmVxdWVzdCA9IGFkb3B0TlMoW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9nZXRVc2VyTWVkaWEuaHRtbCJdXSk7
CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CisKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNDYXB0dXJpbmcpOworCisgICAgYXV0byBwaWQxID0gW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIHJlcXVlc3QgPSBhZG9wdE5TKFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LmFwcGxlLm9yZy90ZXN0Lmh0bWwiXV0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3QuZ2V0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOworCisgICAgRVhQRUNUX0ZBTFNFKGlzQ2FwdHVyaW5nKTsKKyAgICBFWFBFQ1Rf
RkFMU0UocGlkMSA9PSBwaWQyKTsKK30KKworCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDY3ZmM5M2U5MTYyMmJkZDMzMzE4NWM3ZjZiMjA4
YTM5ZmVlNDQ1MTYuLjgxOGQ0NDE4ODRiZjFjYzg5MDQwMTgyM2Q0ODk4NTEyMTk5Nzc3MmYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMjE2LDYgKzIxNiw3IEBAIGludGVyZmFjZSBU
ZXN0UnVubmVyIHsKICAgICB2b2lkIHNldFVzZXJNZWRpYVBlcnNpc3RlbnRQZXJtaXNzaW9uRm9y
T3JpZ2luKGJvb2xlYW4gcGVybWlzc2lvbiwgRE9NU3RyaW5nIG9yaWdpbiwgRE9NU3RyaW5nIHBh
cmVudE9yaWdpbik7CiAgICAgdW5zaWduZWQgbG9uZyB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENvdW50Rm9yT3JpZ2luKERPTVN0cmluZyBvcmlnaW4sIERPTVN0cmluZyBwYXJlbnRPcmlnaW4p
OwogICAgIHZvaWQgcmVzZXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2lu
KERPTVN0cmluZyBvcmlnaW4sIERPTVN0cmluZyBwYXJlbnRPcmlnaW4pOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGlzRG9pbmdNZWRpYUNhcHR1cmU7CiAKICAgICAvLyBBdWRpbyB0
ZXN0aW5nLgogICAgIFtQYXNzQ29udGV4dF0gdm9pZCBzZXRBdWRpb1Jlc3VsdChvYmplY3QgZGF0
YSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAppbmRleCA3OWU3MWNiZjQzNzM0NGVhNTY1OGNhNzNjNjdjZDUzMWZkZDRkMjNl
Li4yNzNiNDhkMDFmOTFmNzAxMzM2NTQ3NjUxNzc5MWIzOTM2NTE0NzEwIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAg
LTEwOTMsNiArMTA5MywxNSBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0VXNlck1lZGlhUGVybWlz
c2lvbigpCiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnJlc2V0VXNlck1lZGlhUGVy
bWlzc2lvbigpOwogfQogCitib29sIFRlc3RSdW5uZXI6OmlzRG9pbmdNZWRpYUNhcHR1cmUoKSBj
b25zdAoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNEb2luZ01lZGlhQ2FwdHVyZSIpKTsK
KyAgICBXS1R5cGVSZWYgcmV0dXJuRGF0YSA9IG51bGxwdHI7CisgICAgV0tCdW5kbGVQYWdlUG9z
dFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbnVsbHB0ciwgJnJldHVybkRhdGEp
OworICAgIEFTU0VSVChXS0dldFR5cGVJRChyZXR1cm5EYXRhKSA9PSBXS0Jvb2xlYW5HZXRUeXBl
SUQoKSk7CisgICAgcmV0dXJuIFdLQm9vbGVhbkdldFZhbHVlKGFkb3B0V0soc3RhdGljX2Nhc3Q8
V0tCb29sZWFuUmVmPihyZXR1cm5EYXRhKSkuZ2V0KCkpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6
OnNldFVzZXJNZWRpYVBlcnNpc3RlbnRQZXJtaXNzaW9uRm9yT3JpZ2luKGJvb2wgcGVybWlzc2lv
biwgSlNTdHJpbmdSZWYgb3JpZ2luLCBKU1N0cmluZ1JlZiBwYXJlbnRPcmlnaW4pCiB7CiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbldLID0gdG9XSyhvcmlnaW4pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRl
eCAyMjE0ZDc3YjhjMzk3OWE0N2M1ZThlZGFhNWQzMjcxMmQxNDM0MWQ5Li5lYzc2OWY2NDZmNWM1
MDEyM2ExOWY5YTEzNjFhOWExYTk0MzJjNWI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzE4LDYgKzMxOCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFVzZXJNZWRpYVBlcnNpc3RlbnRQZXJtaXNzaW9uRm9yT3JpZ2lu
KGJvb2wgcGVybWlzc2lvbiwgSlNTdHJpbmdSZWYgb3JpZ2luLCBKU1N0cmluZ1JlZiBwYXJlbnRP
cmlnaW4pOwogICAgIHVuc2lnbmVkIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q291bnRGb3JP
cmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luLCBKU1N0cmluZ1JlZiBwYXJlbnRPcmlnaW4pIGNvbnN0
OwogICAgIHZvaWQgcmVzZXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2lu
KEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNTdHJpbmdSZWYgcGFyZW50T3JpZ2luKTsKKyAgICBib29s
IGlzRG9pbmdNZWRpYUNhcHR1cmUoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxp
dHkoSlNTdHJpbmdSZWYgc3RhdGUpOwogICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eSgpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA2ZDRkZmZiNDk2
NTY1MjRjNjRkOTYyZTc5ZmUyMzgzODRjNjljMGM2Li41NGUzOTIxMWJmNWNlMjMzOWJjNDAyZjVm
ZGQ5MjkyMGQ2ZmViNDMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcApAQCAtMzE4NSw2ICszMTg1LDEyIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmtleUV4aXN0
c0luS2V5Y2hhaW4oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CisKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OmlzRG9pbmdNZWRpYUNhcHR1cmUoKSBj
b25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogI2VuZGlmCiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnNlbmREaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWRNZXNzYWdlRm9yVGVzdGluZygp
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMTNhMzljNjkwNWYw
ZDg3YmE4N2I5ZGI1N2Y4ZGFkNWMxN2FjNzFiYy4uOTVhMDU4MTI1ZDJhZWEwZGM0MTc0MGYyZDlm
ZTY2YTZhMWJiNzZkZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApA
QCAtMjc4LDYgKzI3OCw4IEBAIHB1YmxpYzoKICAgICBVSUtleWJvYXJkSW5wdXRNb2RlICpvdmVy
cmlkZGVuS2V5Ym9hcmRJbnB1dE1vZGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5LZXli
b2FyZElucHV0TW9kZS5nZXQoKTsgfQogI2VuZGlmCiAKKyAgICBib29sIGlzRG9pbmdNZWRpYUNh
cHR1cmUoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1
cmF0aW9uUmVmPiBnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKFdLQ29udGV4dENvbmZpZ3VyYXRp
b25SZWYpOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWY+IGdlbmVy
YXRlQ29udGV4dENvbmZpZ3VyYXRpb24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMGM2Yzg3N2ZmMWRhYjc1NWFkZTI4ZTllMjM0ZjQ0ZTU1
ZmQ5NGMyNy4uZDFjMDQ0MWI5ZTU3ZDQ5OTg2MjBmODkzNDdhZWE5ZTE1N2VlZTc1NyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEwMzQsNiArMTAzNCwx
MCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3lu
Y2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1JldGFpblB0cjxXS1VJbnQ2
NFJlZj4gcmVzdWx0KEFkb3B0V0ssIFdLVUludDY0Q3JlYXRlKGNvdW50KSk7CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1lc3NhZ2VOYW1lLCAiSXNEb2luZ01lZGlhQ2FwdHVyZSIpKSB7CisgICAgICAgIFdLUmV0YWlu
UHRyPFdLVHlwZVJlZj4gcmVzdWx0KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuaXNEb2luZ01lZGlhQ2FwdHVyZSgpKSk7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQogCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpIHsKICAgICAgICAgQVNTRVJU
KFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0K
aW5kZXggMTFiMGUzYWUzNGZiYmU3ZTFiYTllMTcyMWE0ZDExOGQzMzAyNjc5Ni4uNGQ0ZDE3NjQy
ZTQ3MWU4NTNmOWEzYjgzZDcxM2RkYmEyMGUyZDU2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMzgyLDQgKzM4Miw5
IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OmtleUV4aXN0c0luS2V5Y2hhaW4oY29uc3QgU3RyaW5n
JiBhdHRyTGFiZWwsIGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wg
VGVzdENvbnRyb2xsZXI6OmlzRG9pbmdNZWRpYUNhcHR1cmUoKSBjb25zdAoreworICAgIHJldHVy
biBtX21haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKS5fbWVkaWFDYXB0dXJlU3RhdGUgIT0gX1dL
TWVkaWFDYXB0dXJlU3RhdGVOb25lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBw
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVk
aWEtcHJvY2Vzc1N3YXBwaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFk
MDI3MjcxM2I3MWZkYzg3OTQwMTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ1MGZmMjJmN2EzMmNkMTBkNDBkMDg1YTMzMTU2MjUxYzBiYWI2NTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NT
d2FwcGluZy5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPmdldFVzZXJNZWRpYSBvbiBwcm9jZXNzIHN3YXBwaW5nPC90
aXRsZT4KKzxib2R5PgorPHZpZGVvIGlkPSJsb2NhbCI+PC92aWRlbz4KKzxzY3JpcHQgc3JjPSIv
Y29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gZ2V0VXNlck1lZGlh
QW5kTmF2aWdhdGUoKQoreworICAgIGxvY2FsLnNyY09iamVjdCA9IGF3YWl0IG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogdHJ1ZX0pOworICAgIGF3YWl0IGxvY2Fs
LnBsYXkoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVz
b2x2ZSwgMTAwMCkpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiAhdGVzdFJ1bm5lci5p
c0RvaW5nTWVkaWFDYXB0dXJlKSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0g
IkZBSUw6IG5vIGNhcHR1cmUgc3RhdGUiOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB3aW5kb3cubG9jYXRpb24gPSBnZXRfaG9z
dF9pbmZvKCkuSFRUUFNfT1JJR0lOICsgIi9XZWJLaXQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9j
ZXNzU3dhcHBpbmcuaHRtbCI7Cit9CisKK2Z1bmN0aW9uIHZhbGlkYXRlTWVkaWFDYXB0dXJlU3Rh
dGVBZnRlck5hdmlnYXRpb24oKQoreworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiRkFJTDogTmVlZCB0ZXN0UnVubmVyIEFQ
SSI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwg
PSB0ZXN0UnVubmVyLmlzRG9pbmdNZWRpYUNhcHR1cmUgPyAiRkFJTCIgOiAiUEFTUyI7CisgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2lmICh3aW5kb3cubG9jYXRpb24ucHJvdG9j
b2wgPT09ICJodHRwOiIpCisgICAgZ2V0VXNlck1lZGlhQW5kTmF2aWdhdGUoKTsKK2Vsc2UKKyAg
ICB2YWxpZGF0ZU1lZGlhQ2FwdHVyZVN0YXRlQWZ0ZXJOYXZpZ2F0aW9uKCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360895</attachid>
            <date>2019-02-01 14:12:45 -0800</date>
            <delta_ts>2019-02-01 14:13:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194122-20190201141245.patch</filename>
            <type>text/plain</type>
            <size>16963</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2M2JjYWUxY2ZiODU2OTll
MzRlOThmNTdkYWRlYmZjNTRhOGJjODIuLjM4ZDU4MTU2MWRjYjMzM2YyYTFmNzg1Nzk5NTI1YjVm
NGE1NWI1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxk
IGJlIG1hbmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIFBTT04sIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZSBpcyBjYWxsZWQuCisgICAgICAgIEl0IHJlc2V0cyB0aGUgbWVkaWEgc3RhdGUsIGJ1
dCBkb2VzIG5vdCBjYWxsIHRoZSBjbGllbnQgZGVsZWdhdGVzLgorICAgICAgICBJbnN0ZWFkIG9m
IGRpcmVjdGx5IHVwZGF0aW5nIHRoZSBtZWRpYSBzdGF0ZSwgY2FsbCB0aGUgcm91dGluZSB1c2Vk
IHRvIHVwZGF0ZSBpdCBzbyB0aGF0IGNsaWVudCBkZWxlZ2F0ZXMgYXJlIGNhbGxlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdCBhbmQgbGF5b3V0IHRlc3QuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9tZWRpYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVy
IFVJQ2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjMmE0ZDZhMTkw
MmFiMzY0ZDAyMTk3NjAzNjg1OGIyZGU4NjNjOGE4Li4zYzRjODY0OTYwNGNlY2NlOTk4YjM1OTgx
MDA4NzFhNTQ1MTJlZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTY2MTksNyArNjYxOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJl
c2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICAgICAgZWRpdENvbW1hbmQtPmlu
dmFsaWRhdGUoKTsKIAogICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKLSAgICBtX21l
ZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CisgICAgdXBkYXRlUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyk7CiAKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CkBAIC03Njc3LDcg
Kzc2NzcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGEKICAgICBBU1NFUlQoZm9jdXNNYW5h
Z2VyKTsKICAgICBmb2N1c01hbmFnZXItPnVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zyb21NZWRp
YVN0YXRlKHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgbmV3U3RhdGUpOwogI2VuZGlmCisgICAgdXBk
YXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKG5ld1N0YXRlKTsKK30KIAordm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3U3RhdGUpCit7CiAgICAgaWYgKG5ld1N0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDZmYWFjYjg2NjMzYTUyMjA1NWIwNjdiYjg3MmEyYmU5MmRhZDkxZmEuLjViOTA2MjBiZjk0YmVm
M2U2MTc5MmNhN2JmMTk0YTE0ZGZiNzIwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xMjM4LDYgKzEyMzgsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGxh
eWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pOyB9CiAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90
KTsKKyAgICB2b2lkIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmV3U3RhdGUpOwogICAgIGJvb2wgaGFzQWN0aXZlQXVk
aW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7IH0KICAgICBib29sIGhhc0FjdGl2
ZVZpZGVvU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOyB9CiAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGVGbGFncygpIGNvbnN0IHsg
cmV0dXJuIG1fbWVkaWFTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGZjN2Q1MmNjNDVjMDQ4NzRmMmM3YmY1MjE2NmFkMTJkNjNiZTdh
NDguLjAxOTk5Yjk4NGU4MDQ1NDUyNjRlMDZhODk5NWE4OTg3MjczZDUxZGUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxOS0wMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
Q2FwdHVyZSBzdGF0ZSBzaG91bGQgYmUgbWFuYWdlZCBjb25zaXN0ZW50bHkgd2hlbiBkb2luZyBw
cm9jZXNzIHN3YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTQxMjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjA5MjkzPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAg
KC1bR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9y
aXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICgtW0dldFVzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5k
bGVyOl0pOgorICAgICAgICAoLVtHZXRVc2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlh
Q2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6aXNEb2luZ01lZGlhQ2FwdHVyZSBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
Ojppc0RvaW5nTWVkaWFDYXB0dXJlIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hy
b25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjppc0RvaW5nTWVkaWFDYXB0dXJlIGNvbnN0KToKKwogMjAxOS0wMS0zMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRv
IGNvdmVyIFVJQ2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBu
dWxscHRyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBhZjg1MTcwZjgzZmEx
MThlNTkzYjhjNmZhMmU3NWJhN2ZjNGU2ZGQ4Li42ZDA0ZGQ1ZjIyZmU2OTAwZGI5MTYyNDc4ZWVh
NjBlZWZhYjM1ZTJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI4LDYg
KzI4LDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0Lmgi
CiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLTmF2aWdhdGlvblByaXZhdGUuaD4KQEAgLTQzNjEsNCArNDM2Miw4OCBAQCBURVNUKFByb2Nl
c3NTd2FwLCBDb250ZW50QmxvY2tpbmdBZnRlclByb2Nlc3NTd2FwKQogICAgIGRvbmUgPSBmYWxz
ZTsKIH0KIAorc3RhdGljIGJvb2wgaXNDYXB0dXJpbmcgPSBmYWxzZTsKK0BpbnRlcmZhY2UgR2V0
VXNlck1lZGlhVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFp
bkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICop
dXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihO
U1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3Ry
aW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9X
S01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gR2V0VXNl
ck1lZGlhVUlEZWxlZ2F0ZQorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2Vz
KWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1l
VVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhh
bmRsZXIKK3sKKyAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKK30KKworLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5T
VVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlm
aWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAg
IGRlY2lzaW9uSGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgWUVTKTsKK30KKworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dL
TWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUKK3sKKyAgICBpc0NhcHR1cmluZyA9IHN0YXRlID09IF9X
S01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworfQorQGVuZAorCitzdGF0aWMgY29uc3Qg
Y2hhciogZ2V0VXNlck1lZGlhQnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxoZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0
cnVlfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaGVhZD4KKylQU09OUkVTT1VSQ0UiOworCitU
RVNUKFByb2Nlc3NTd2FwLCBHZXRVc2VyTWVkaWFDYXB0dXJlU3RhdGUpCit7CisgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgp
LnByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiA9IFlFUzsKKyAgICBwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uZ2V0KCkucHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5ID0gWUVTOworCisgICAg
YXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdp
dGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAg
YXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFt3ZWJWaWV3Q29uZmln
dXJhdGlvbi5nZXQoKSBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVy
ZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tZWRpYURl
dmljZXNFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNF
bmFibGVkID0gWUVTOworCisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29s
OnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNj
aGVtZSBhbGxvY10gaW5pdF0pOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL2dldFVzZXJNZWRpYS5odG1sIiB0b0RhdGE6Z2V0VXNl
ck1lZGlhQnl0ZXNdOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNv
bjovL3d3dy5hcHBsZS5vcmcvdGVzdC5odG1sIiB0b0RhdGE6IiJdOworICAgIFt3ZWJWaWV3Q29u
ZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1l
OkAiUFNPTiJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byBuYXZpZ2F0aW9u
RGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUu
Z2V0KCldOworCisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW0dldFVzZXJNZWRpYVVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOiB1aURl
bGVnYXRlLmdldCgpXTsKKworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9nZXRVc2VyTWVkaWEuaHRtbCJdXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdC5nZXQoKV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IGRvbmUgPSBmYWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNDYXB0dXJp
bmcpOworCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
KworICAgIHJlcXVlc3QgPSBhZG9wdE5TKFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLm9yZy90ZXN0Lmh0bWwiXV0pOwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3QuZ2V0KCldOworCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIHBp
ZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgRVhQRUNUX0ZBTFNF
KGlzQ2FwdHVyaW5nKTsKKyAgICBFWFBFQ1RfRkFMU0UocGlkMSA9PSBwaWQyKTsKK30KKwogI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA2N2Zj
OTNlOTE2MjJiZGQzMzMxODVjN2Y2YjIwOGEzOWZlZTQ0NTE2Li44MThkNDQxODg0YmYxY2M4OTA0
MDE4MjNkNDg5ODUxMjE5OTc3NzJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTIx
Niw2ICsyMTYsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRVc2VyTWVk
aWFQZXJzaXN0ZW50UGVybWlzc2lvbkZvck9yaWdpbihib29sZWFuIHBlcm1pc3Npb24sIERPTVN0
cmluZyBvcmlnaW4sIERPTVN0cmluZyBwYXJlbnRPcmlnaW4pOwogICAgIHVuc2lnbmVkIGxvbmcg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihET01TdHJpbmcgb3JpZ2lu
LCBET01TdHJpbmcgcGFyZW50T3JpZ2luKTsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihET01TdHJpbmcgb3JpZ2luLCBET01TdHJpbmcgcGFy
ZW50T3JpZ2luKTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0RvaW5nTWVkaWFD
YXB0dXJlOwogCiAgICAgLy8gQXVkaW8gdGVzdGluZy4KICAgICBbUGFzc0NvbnRleHRdIHZvaWQg
c2V0QXVkaW9SZXN1bHQob2JqZWN0IGRhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNzllNzFjYmY0MzczNDRl
YTU2NThjYTczYzY3Y2Q1MzFmZGQ0ZDIzZS4uMjczYjQ4ZDAxZjkxZjcwMTMzNjU0NzY1MTc3OTFi
MzkzNjUxNDcxMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMDkzLDYgKzEwOTMsMTUgQEAgdm9pZCBUZXN0UnVu
bmVyOjpyZXNldFVzZXJNZWRpYVBlcm1pc3Npb24oKQogICAgIEluamVjdGVkQnVuZGxlOjpzaW5n
bGV0b24oKS5yZXNldFVzZXJNZWRpYVBlcm1pc3Npb24oKTsKIH0KIAorYm9vbCBUZXN0UnVubmVy
Ojppc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3QKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IklzRG9pbmdNZWRpYUNhcHR1cmUiKSk7CisgICAgV0tUeXBlUmVmIHJldHVybkRhdGEgPSBudWxs
cHRyOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0
KCksIG51bGxwdHIsICZyZXR1cm5EYXRhKTsKKyAgICBBU1NFUlQoV0tHZXRUeXBlSUQocmV0dXJu
RGF0YSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBXS0Jvb2xlYW5HZXRW
YWx1ZShhZG9wdFdLKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4ocmV0dXJuRGF0YSkpLmdldCgp
KTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyTWVkaWFQZXJzaXN0ZW50UGVybWlzc2lv
bkZvck9yaWdpbihib29sIHBlcm1pc3Npb24sIEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNTdHJpbmdS
ZWYgcGFyZW50T3JpZ2luKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW5X
SyA9IHRvV0sob3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMjIxNGQ3N2I4YzM5NzlhNDdjNWU4ZWRhYTVkMzI3
MTJkMTQzNDFkOS4uZWM3NjlmNjQ2ZjVjNTAxMjNhMTlmOWExMzYxYTlhMWE5NDMyYzViNSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmgKQEAgLTMxOCw2ICszMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJz
aXN0ZW50UGVybWlzc2lvbkZvck9yaWdpbihib29sIHBlcm1pc3Npb24sIEpTU3RyaW5nUmVmIG9y
aWdpbiwgSlNTdHJpbmdSZWYgcGFyZW50T3JpZ2luKTsKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNTdHJp
bmdSZWYgcGFyZW50T3JpZ2luKSBjb25zdDsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4sIEpTU3RyaW5nUmVm
IHBhcmVudE9yaWdpbik7CisgICAgYm9vbCBpc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3Q7CiAK
ICAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KEpTU3RyaW5nUmVmIHN0YXRlKTsKICAgICB2b2lk
IHJlc2V0UGFnZVZpc2liaWxpdHkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggNmQ0ZGZmYjQ5NjU2NTI0YzY0ZDk2MmU3OWZlMjM4Mzg0YzY5YzBjNi4u
NTRlMzkyMTFiZjVjZTIzMzliYzQwMmY1ZmRkOTI5MjBkNmZlYjQzMCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMxODUsNiArMzE4NSwxMiBAQCBib29s
IFRlc3RDb250cm9sbGVyOjprZXlFeGlzdHNJbktleWNoYWluKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitib29sIFRlc3RDb250cm9sbGVy
Ojppc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
ICNlbmRpZgogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZW5kRGlzcGxheUNvbmZpZ3VyYXRpb25D
aGFuZ2VkTWVzc2FnZUZvclRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCmluZGV4IDEzYTM5YzY5MDVmMGQ4N2JhODdiOWRiNTdmOGRhZDVjMTdhYzcxYmMuLjk1
YTA1ODEyNWQyYWVhMGRjNDE3NDBmMmQ5ZmU2NmE2YTFiYjc2ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTI3OCw2ICsyNzgsOCBAQCBwdWJsaWM6CiAgICAg
VUlLZXlib2FyZElucHV0TW9kZSAqb3ZlcnJpZGRlbktleWJvYXJkSW5wdXRNb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9vdmVycmlkZGVuS2V5Ym9hcmRJbnB1dE1vZGUuZ2V0KCk7IH0KICNlbmRpZgog
CisgICAgYm9vbCBpc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAg
V0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVQYWdlQ29uZmlndXJh
dGlvbihXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmPiBnZW5lcmF0ZUNvbnRleHRDb25maWd1cmF0aW9uKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDBjNmM4Nzdm
ZjFkYWI3NTVhZGUyOGU5ZTIzNGY0NGU1NWZkOTRjMjcuLmQxYzA0NDFiOWU1N2Q0OTk4NjIwZjg5
MzQ3YWVhOWUxNTdlZWU3NTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCkBAIC0xMDM0LDYgKzEwMzQsMTAgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0
SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAg
ICAgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHJlc3VsdChBZG9wdFdLLCBXS1VJbnQ2NENy
ZWF0ZShjb3VudCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKyAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIklzRG9pbmdNZWRpYUNhcHR1
cmUiKSkgeworICAgICAgICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IHJlc3VsdChBZG9wdFdLLCBX
S0Jvb2xlYW5DcmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmlzRG9pbmdNZWRpYUNh
cHR1cmUoKSkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0RlYnVn
TW9kZSIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tC
b29sZWFuR2V0VHlwZUlEKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDExYjBlM2FlMzRmYmJlN2UxYmE5ZTE3MjFh
NGQxMThkMzMwMjY3OTYuLjRkNGQxNzY0MmU0NzFlODUzZjlhM2I4M2Q3MTNkZGJhMjBlMmQ1NjIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJD
b2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVy
Q29jb2EubW0KQEAgLTM4Miw0ICszODIsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjprZXlFeGlz
dHNJbktleWNoYWluKGNvbnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25zdCBTdHJpbmcmCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCitib29sIFRlc3RDb250cm9sbGVyOjppc0RvaW5nTWVkaWFDYXB0
dXJlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tYWluV2ViVmlldy0+cGxhdGZvcm1WaWV3KCku
X21lZGlhQ2FwdHVyZVN0YXRlICE9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMv
Z2V0VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEt
cHJvY2Vzc1N3YXBwaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2Fw
cGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9j
ZXNzU3dhcHBpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTBmZjIyZjdhMzJjZDEwZDQwZDA4NWEzMzE1
NjI1MWMwYmFiNjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
cnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmcuaHRtbApAQCAtMCwwICsxLDQxIEBACis8
IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5nZXRVc2VyTWVk
aWEgb24gcHJvY2VzcyBzd2FwcGluZzwvdGl0bGU+Cis8Ym9keT4KKzx2aWRlbyBpZD0ibG9jYWwi
PjwvdmlkZW8+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIGdldFVzZXJNZWRpYUFuZE5hdmlnYXRlKCkKK3sKKyAgICBsb2NhbC5zcmNP
YmplY3QgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86
IHRydWV9KTsKKyAgICBhd2FpdCBsb2NhbC5wbGF5KCk7CisgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgIXRlc3RSdW5uZXIuaXNEb2luZ01lZGlhQ2FwdHVyZSkgeworICAgICAgICBk
b2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJGQUlMOiBubyBjYXB0dXJlIHN0YXRlIjsKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
d2luZG93LmxvY2F0aW9uID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX09SSUdJTiArICIvV2ViS2l0
L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBwaW5nLmh0bWwiOworfQorCitmdW5jdGlv
biB2YWxpZGF0ZU1lZGlhQ2FwdHVyZVN0YXRlQWZ0ZXJOYXZpZ2F0aW9uKCkKK3sKKyAgICBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0g
IkZBSUw6IE5lZWQgdGVzdFJ1bm5lciBBUEkiOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gdGVzdFJ1bm5lci5pc0RvaW5nTWVkaWFDYXB0dXJl
ID8gIkZBSUwiIDogIlBBU1MiOworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitp
ZiAod2luZG93LmxvY2F0aW9uLnByb3RvY29sID09PSAiaHR0cDoiKQorICAgIGdldFVzZXJNZWRp
YUFuZE5hdmlnYXRlKCk7CitlbHNlCisgICAgdmFsaWRhdGVNZWRpYUNhcHR1cmVTdGF0ZUFmdGVy
TmF2aWdhdGlvbigpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360896</attachid>
            <date>2019-02-01 14:13:52 -0800</date>
            <delta_ts>2019-02-01 14:44:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194122-20190201141352.patch</filename>
            <type>text/plain</type>
            <size>16954</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2M2JjYWUxY2ZiODU2OTll
MzRlOThmNTdkYWRlYmZjNTRhOGJjODIuLjM4ZDU4MTU2MWRjYjMzM2YyYTFmNzg1Nzk5NTI1YjVm
NGE1NWI1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxk
IGJlIG1hbmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIFBTT04sIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZSBpcyBjYWxsZWQuCisgICAgICAgIEl0IHJlc2V0cyB0aGUgbWVkaWEgc3RhdGUsIGJ1
dCBkb2VzIG5vdCBjYWxsIHRoZSBjbGllbnQgZGVsZWdhdGVzLgorICAgICAgICBJbnN0ZWFkIG9m
IGRpcmVjdGx5IHVwZGF0aW5nIHRoZSBtZWRpYSBzdGF0ZSwgY2FsbCB0aGUgcm91dGluZSB1c2Vk
IHRvIHVwZGF0ZSBpdCBzbyB0aGF0IGNsaWVudCBkZWxlZ2F0ZXMgYXJlIGNhbGxlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdCBhbmQgbGF5b3V0IHRlc3QuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9tZWRpYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVy
IFVJQ2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjMmE0ZDZhMTkw
MmFiMzY0ZDAyMTk3NjAzNjg1OGIyZGU4NjNjOGE4Li4zYzRjODY0OTYwNGNlY2NlOTk4YjM1OTgx
MDA4NzFhNTQ1MTJlZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTY2MTksNyArNjYxOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJl
c2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICAgICAgZWRpdENvbW1hbmQtPmlu
dmFsaWRhdGUoKTsKIAogICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKLSAgICBtX21l
ZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CisgICAgdXBkYXRlUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyk7CiAKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CkBAIC03Njc3LDcg
Kzc2NzcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGEKICAgICBBU1NFUlQoZm9jdXNNYW5h
Z2VyKTsKICAgICBmb2N1c01hbmFnZXItPnVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zyb21NZWRp
YVN0YXRlKHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgbmV3U3RhdGUpOwogI2VuZGlmCisgICAgdXBk
YXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKG5ld1N0YXRlKTsKK30KIAordm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3U3RhdGUpCit7CiAgICAgaWYgKG5ld1N0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDZmYWFjYjg2NjMzYTUyMjA1NWIwNjdiYjg3MmEyYmU5MmRhZDkxZmEuLmRmNDljMGFiMWNhMDIw
NTliOWVlYTY4MGFhMGY3MDQzODAyODcyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xMjM4LDYgKzEyMzgsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGxh
eWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pOyB9CiAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90
KTsKKyAgICB2b2lkIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJlYW0o
KSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7IH0KICAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3Ry
ZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOyB9CiAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGZjN2Q1MmNjNDVjMDQ4NzRmMmM3YmY1MjE2NmFkMTJkNjNiZTdhNDguLjAxOTk5
Yjk4NGU4MDQ1NDUyNjRlMDZhODk5NWE4OTg3MjczZDUxZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMi0w
MSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FwdHVyZSBz
dGF0ZSBzaG91bGQgYmUgbWFuYWdlZCBjb25zaXN0ZW50bHkgd2hlbiBkb2luZyBwcm9jZXNzIHN3
YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTQxMjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjA5MjkzPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bR2V0VXNl
ck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W0dldFVzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOl0pOgor
ICAgICAgICAoLVtHZXRVc2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0
YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6
aXNEb2luZ01lZGlhQ2FwdHVyZSBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0RvaW5n
TWVkaWFDYXB0dXJlIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpp
c0RvaW5nTWVkaWFDYXB0dXJlIGNvbnN0KToKKwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVyIFVJ
Q2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRyCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBhZjg1MTcwZjgzZmExMThlNTkzYjhj
NmZhMmU3NWJhN2ZjNGU2ZGQ4Li42ZDA0ZGQ1ZjIyZmU2OTAwZGI5MTYyNDc4ZWVhNjBlZWZhYjM1
ZTJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0
ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAj
aW1wb3J0IDxXZWJLaXQvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdh
dGlvblByaXZhdGUuaD4KQEAgLTQzNjEsNCArNDM2Miw4OCBAQCBURVNUKFByb2Nlc3NTd2FwLCBD
b250ZW50QmxvY2tpbmdBZnRlclByb2Nlc3NTd2FwKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAor
c3RhdGljIGJvb2wgaXNDYXB0dXJpbmcgPSBmYWxzZTsKK0BpbnRlcmZhY2UgR2V0VXNlck1lZGlh
VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
OihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0
aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5G
cmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2Vy
KWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0
LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2Fw
dHVyZVN0YXRlKXN0YXRlOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gR2V0VXNlck1lZGlhVUlE
ZWxlZ2F0ZQorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMg
dXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sK
KyAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJ
bnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9u
SGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgWUVTKTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0
dXJlU3RhdGUpc3RhdGUKK3sKKyAgICBpc0NhcHR1cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworfQorQGVuZAorCitzdGF0aWMgY29uc3QgY2hhciogZ2V0
VXNlck1lZGlhQnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxoZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaGVhZD4KKylQU09OUkVTT1VSQ0UiOworCitURVNUKFByb2Nl
c3NTd2FwLCBHZXRVc2VyTWVkaWFDYXB0dXJlU3RhdGUpCit7CisgICAgYXV0byBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NT
d2Fwc09uTmF2aWdhdGlvbiA9IFlFUzsKKyAgICBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0
KCkucHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5ID0gWUVTOworCisgICAgYXV0byBwcm9j
ZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJW
aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFt3ZWJWaWV3Q29uZmlndXJhdGlvbi5n
ZXQoKSBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tZWRpYURldmljZXNFbmFi
bGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOworCisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQ
b29sLmdldCgpXTsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxv
Y10gaW5pdF0pOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjov
L3d3dy53ZWJraXQub3JnL2dldFVzZXJNZWRpYS5odG1sIiB0b0RhdGE6Z2V0VXNlck1lZGlhQnl0
ZXNdOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5h
cHBsZS5vcmcvdGVzdC5odG1sIiB0b0RhdGE6IiJdOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJd
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJW
aWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUg
PSBhZG9wdE5TKFtbUFNPTk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOwor
CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW0dldFVzZXJNZWRpYVVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOiB1aURlbGVnYXRlLmdl
dCgpXTsKKworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9nZXRV
c2VyTWVkaWEuaHRtbCJdXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdC5nZXQo
KV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBm
YWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNDYXB0dXJpbmcpOworCisg
ICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIHJl
cXVlc3QgPSBhZG9wdE5TKFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLm9yZy90ZXN0Lmh0bWwiXV0pOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3QuZ2V0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIHBpZDIgPSBbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgRVhQRUNUX0ZBTFNFKGlzQ2FwdHVy
aW5nKTsKKyAgICBFWFBFQ1RfRkFMU0UocGlkMSA9PSBwaWQyKTsKK30KKwogI2VuZGlmIC8vIFdL
X0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA2N2ZjOTNlOTE2MjJi
ZGQzMzMxODVjN2Y2YjIwOGEzOWZlZTQ0NTE2Li44MThkNDQxODg0YmYxY2M4OTA0MDE4MjNkNDg5
ODUxMjE5OTc3NzJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTIxNiw2ICsyMTYs
NyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJzaXN0
ZW50UGVybWlzc2lvbkZvck9yaWdpbihib29sZWFuIHBlcm1pc3Npb24sIERPTVN0cmluZyBvcmln
aW4sIERPTVN0cmluZyBwYXJlbnRPcmlnaW4pOwogICAgIHVuc2lnbmVkIGxvbmcgdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihET01TdHJpbmcgb3JpZ2luLCBET01TdHJp
bmcgcGFyZW50T3JpZ2luKTsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDb3VudEZvck9yaWdpbihET01TdHJpbmcgb3JpZ2luLCBET01TdHJpbmcgcGFyZW50T3JpZ2lu
KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0RvaW5nTWVkaWFDYXB0dXJlOwog
CiAgICAgLy8gQXVkaW8gdGVzdGluZy4KICAgICBbUGFzc0NvbnRleHRdIHZvaWQgc2V0QXVkaW9S
ZXN1bHQob2JqZWN0IGRhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNzllNzFjYmY0MzczNDRlYTU2NThjYTcz
YzY3Y2Q1MzFmZGQ0ZDIzZS4uMjczYjQ4ZDAxZjkxZjcwMTMzNjU0NzY1MTc3OTFiMzkzNjUxNDcx
MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCkBAIC0xMDkzLDYgKzEwOTMsMTUgQEAgdm9pZCBUZXN0UnVubmVyOjpyZXNl
dFVzZXJNZWRpYVBlcm1pc3Npb24oKQogICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5y
ZXNldFVzZXJNZWRpYVBlcm1pc3Npb24oKTsKIH0KIAorYm9vbCBUZXN0UnVubmVyOjppc0RvaW5n
TWVkaWFDYXB0dXJlKCkgY29uc3QKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVz
c2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklzRG9pbmdN
ZWRpYUNhcHR1cmUiKSk7CisgICAgV0tUeXBlUmVmIHJldHVybkRhdGEgPSBudWxscHRyOworICAg
IFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxw
dHIsICZyZXR1cm5EYXRhKTsKKyAgICBBU1NFUlQoV0tHZXRUeXBlSUQocmV0dXJuRGF0YSkgPT0g
V0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBXS0Jvb2xlYW5HZXRWYWx1ZShhZG9w
dFdLKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4ocmV0dXJuRGF0YSkpLmdldCgpKTsKK30KKwog
dm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyTWVkaWFQZXJzaXN0ZW50UGVybWlzc2lvbkZvck9yaWdp
bihib29sIHBlcm1pc3Npb24sIEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNTdHJpbmdSZWYgcGFyZW50
T3JpZ2luKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW5XSyA9IHRvV0so
b3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKaW5kZXggMjIxNGQ3N2I4YzM5NzlhNDdjNWU4ZWRhYTVkMzI3MTJkMTQzNDFk
OS4uZWM3NjlmNjQ2ZjVjNTAxMjNhMTlmOWExMzYxYTlhMWE5NDMyYzViNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTMx
OCw2ICszMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJzaXN0ZW50UGVy
bWlzc2lvbkZvck9yaWdpbihib29sIHBlcm1pc3Npb24sIEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNT
dHJpbmdSZWYgcGFyZW50T3JpZ2luKTsKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENvdW50Rm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNTdHJpbmdSZWYgcGFy
ZW50T3JpZ2luKSBjb25zdDsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDb3VudEZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4sIEpTU3RyaW5nUmVmIHBhcmVudE9y
aWdpbik7CisgICAgYm9vbCBpc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3Q7CiAKICAgICB2b2lk
IHNldFBhZ2VWaXNpYmlsaXR5KEpTU3RyaW5nUmVmIHN0YXRlKTsKICAgICB2b2lkIHJlc2V0UGFn
ZVZpc2liaWxpdHkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggNmQ0ZGZmYjQ5NjU2NTI0YzY0ZDk2MmU3OWZlMjM4Mzg0YzY5YzBjNi4uNTRlMzkyMTFi
ZjVjZTIzMzliYzQwMmY1ZmRkOTI5MjBkNmZlYjQzMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMxODUsNiArMzE4NSwxMiBAQCBib29sIFRlc3RDb250
cm9sbGVyOjprZXlFeGlzdHNJbktleWNoYWluKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitib29sIFRlc3RDb250cm9sbGVyOjppc0RvaW5n
TWVkaWFDYXB0dXJlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNlbmRpZgog
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZW5kRGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkTWVz
c2FnZUZvclRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmlu
ZGV4IDEzYTM5YzY5MDVmMGQ4N2JhODdiOWRiNTdmOGRhZDVjMTdhYzcxYmMuLjk1YTA1ODEyNWQy
YWVhMGRjNDE3NDBmMmQ5ZmU2NmE2YTFiYjc2ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKQEAgLTI3OCw2ICsyNzgsOCBAQCBwdWJsaWM6CiAgICAgVUlLZXlib2Fy
ZElucHV0TW9kZSAqb3ZlcnJpZGRlbktleWJvYXJkSW5wdXRNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9vdmVycmlkZGVuS2V5Ym9hcmRJbnB1dE1vZGUuZ2V0KCk7IH0KICNlbmRpZgogCisgICAgYm9v
bCBpc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgV0tSZXRhaW5Q
dHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihXS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmPiBnZW5lcmF0ZUNvbnRleHRDb25maWd1cmF0aW9uKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDBjNmM4NzdmZjFkYWI3NTVh
ZGUyOGU5ZTIzNGY0NGU1NWZkOTRjMjcuLmQxYzA0NDFiOWU1N2Q0OTk4NjIwZjg5MzQ3YWVhOWUx
NTdlZWU3NTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBA
IC0xMDM0LDYgKzEwMzQsMTAgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tVSW50NjRSZWY+IHJlc3VsdChBZG9wdFdLLCBXS1VJbnQ2NENyZWF0ZShjb3Vu
dCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIklzRG9pbmdNZWRpYUNhcHR1cmUiKSkgewor
ICAgICAgICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IHJlc3VsdChBZG9wdFdLLCBXS0Jvb2xlYW5D
cmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmlzRG9pbmdNZWRpYUNhcHR1cmUoKSkp
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0RlYnVnTW9kZSIpKSB7
CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0
VHlwZUlEKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tCmluZGV4IDExYjBlM2FlMzRmYmJlN2UxYmE5ZTE3MjFhNGQxMThkMzMw
MjY3OTYuLjRkNGQxNzY0MmU0NzFlODUzZjlhM2I4M2Q3MTNkZGJhMjBlMmQ1NjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0K
QEAgLTM4Miw0ICszODIsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjprZXlFeGlzdHNJbktleWNo
YWluKGNvbnN0IFN0cmluZyYgYXR0ckxhYmVsLCBjb25zdCBTdHJpbmcmCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIFRlc3RDb250cm9sbGVyOjppc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9tYWluV2ViVmlldy0+cGxhdGZvcm1WaWV3KCkuX21lZGlhQ2Fw
dHVyZVN0YXRlICE9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvZ2V0VXNlck1l
ZGlhLXByb2Nlc3NTd2FwcGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3
YXBwaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBp
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNTBmZjIyZjdhMzJjZDEwZDQwZDA4NWEzMzE1NjI1MWMwYmFi
NjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVz
ZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmcuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IWRvY3R5cGUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5nZXRVc2VyTWVkaWEgb24gcHJv
Y2VzcyBzd2FwcGluZzwvdGl0bGU+Cis8Ym9keT4KKzx2aWRlbyBpZD0ibG9jYWwiPjwvdmlkZW8+
Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2FzeW5jIGZ1bmN0
aW9uIGdldFVzZXJNZWRpYUFuZE5hdmlnYXRlKCkKK3sKKyAgICBsb2NhbC5zcmNPYmplY3QgPSBh
d2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHRydWV9KTsK
KyAgICBhd2FpdCBsb2NhbC5wbGF5KCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9
PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIg
JiYgIXRlc3RSdW5uZXIuaXNEb2luZ01lZGlhQ2FwdHVyZSkgeworICAgICAgICBkb2N1bWVudC5i
b2R5LmlubmVySFRNTCA9ICJGQUlMOiBubyBjYXB0dXJlIHN0YXRlIjsKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgd2luZG93Lmxv
Y2F0aW9uID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX09SSUdJTiArICIvV2ViS2l0L3dlYnJ0Yy9n
ZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBwaW5nLmh0bWwiOworfQorCitmdW5jdGlvbiB2YWxpZGF0
ZU1lZGlhQ2FwdHVyZVN0YXRlQWZ0ZXJOYXZpZ2F0aW9uKCkKK3sKKyAgICBpZiAoIXdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIkZBSUw6IE5l
ZWQgdGVzdFJ1bm5lciBBUEkiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRvY3VtZW50
LmJvZHkuaW5uZXJIVE1MID0gdGVzdFJ1bm5lci5pc0RvaW5nTWVkaWFDYXB0dXJlID8gIkZBSUwi
IDogIlBBU1MiOworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitpZiAod2luZG93
LmxvY2F0aW9uLnByb3RvY29sID09PSAiaHR0cDoiKQorICAgIGdldFVzZXJNZWRpYUFuZE5hdmln
YXRlKCk7CitlbHNlCisgICAgdmFsaWRhdGVNZWRpYUNhcHR1cmVTdGF0ZUFmdGVyTmF2aWdhdGlv
bigpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360906</attachid>
            <date>2019-02-01 14:44:17 -0800</date>
            <delta_ts>2019-02-04 09:37:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194122-20190201144416.patch</filename>
            <type>text/plain</type>
            <size>17009</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2M2JjYWUxY2ZiODU2OTll
MzRlOThmNTdkYWRlYmZjNTRhOGJjODIuLjM4ZDU4MTU2MWRjYjMzM2YyYTFmNzg1Nzk5NTI1YjVm
NGE1NWI1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhcHR1cmUgc3RhdGUgc2hvdWxk
IGJlIG1hbmFnZWQgY29uc2lzdGVudGx5IHdoZW4gZG9pbmcgcHJvY2VzcyBzd2FwcGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTIyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzYwOTI5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRvaW5nIFBTT04sIFdlYlBhZ2VQcm94eTo6cmVz
ZXRTdGF0ZSBpcyBjYWxsZWQuCisgICAgICAgIEl0IHJlc2V0cyB0aGUgbWVkaWEgc3RhdGUsIGJ1
dCBkb2VzIG5vdCBjYWxsIHRoZSBjbGllbnQgZGVsZWdhdGVzLgorICAgICAgICBJbnN0ZWFkIG9m
IGRpcmVjdGx5IHVwZGF0aW5nIHRoZSBtZWRpYSBzdGF0ZSwgY2FsbCB0aGUgcm91dGluZSB1c2Vk
IHRvIHVwZGF0ZSBpdCBzbyB0aGF0IGNsaWVudCBkZWxlZ2F0ZXMgYXJlIGNhbGxlZC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdCBhbmQgbGF5b3V0IHRlc3QuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9tZWRpYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFuZ2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVy
IFVJQ2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjMmE0ZDZhMTkw
MmFiMzY0ZDAyMTk3NjAzNjg1OGIyZGU4NjNjOGE4Li4zYzRjODY0OTYwNGNlY2NlOTk4YjM1OTgx
MDA4NzFhNTQ1MTJlZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTY2MTksNyArNjYxOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJl
c2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICAgICAgZWRpdENvbW1hbmQtPmlu
dmFsaWRhdGUoKTsKIAogICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKLSAgICBtX21l
ZGlhU3RhdGUgPSBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmc7CisgICAgdXBkYXRlUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyk7CiAKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CkBAIC03Njc3LDcg
Kzc2NzcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZXdTdGEKICAgICBBU1NFUlQoZm9jdXNNYW5h
Z2VyKTsKICAgICBmb2N1c01hbmFnZXItPnVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zyb21NZWRp
YVN0YXRlKHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgbmV3U3RhdGUpOwogI2VuZGlmCisgICAgdXBk
YXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKG5ld1N0YXRlKTsKK30KIAordm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbmV3U3RhdGUpCit7CiAgICAgaWYgKG5ld1N0YXRlID09IG1fbWVkaWFTdGF0ZSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDZmYWFjYjg2NjMzYTUyMjA1NWIwNjdiYjg3MmEyYmU5MmRhZDkxZmEuLmRmNDljMGFiMWNhMDIw
NTliOWVlYTY4MGFhMGY3MDQzODAyODcyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xMjM4LDYgKzEyMzgsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGxh
eWluZ0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gISEobV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6SXNQbGF5aW5nQXVkaW8pOyB9CiAgICAgdm9pZCBpc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90
KTsKKyAgICB2b2lkIHVwZGF0ZVBsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogICAgIGJvb2wgaGFzQWN0aXZlQXVkaW9TdHJlYW0o
KSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpI
YXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2U7IH0KICAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3Ry
ZWFtKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOyB9CiAgICAgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1f
bWVkaWFTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGZjN2Q1MmNjNDVjMDQ4NzRmMmM3YmY1MjE2NmFkMTJkNjNiZTdhNDguLjAxOTk5
Yjk4NGU4MDQ1NDUyNjRlMDZhODk5NWE4OTg3MjczZDUxZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMi0w
MSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FwdHVyZSBz
dGF0ZSBzaG91bGQgYmUgbWFuYWdlZCBjb25zaXN0ZW50bHkgd2hlbiBkb2luZyBwcm9jZXNzIHN3
YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTQxMjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjA5MjkzPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bR2V0VXNl
ck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZv
ckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgt
W0dldFVzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVjaXNpb25IYW5kbGVyOl0pOgor
ICAgICAgICAoLVtHZXRVc2VyTWVkaWFVSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0
YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6
aXNEb2luZ01lZGlhQ2FwdHVyZSBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0RvaW5n
TWVkaWFDYXB0dXJlIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpp
c0RvaW5nTWVkaWFDYXB0dXJlIGNvbnN0KToKKwogMjAxOS0wMS0zMSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGNvdmVyIFVJ
Q2xpZW50IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbiBiZWluZyBudWxscHRyCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBhZjg1MTcwZjgzZmExMThlNTkzYjhj
NmZhMmU3NWJhN2ZjNGU2ZGQ4Li42ZDA0ZGQ1ZjIyZmU2OTAwZGI5MTYyNDc4ZWVhNjBlZWZhYjM1
ZTJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0
ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAj
aW1wb3J0IDxXZWJLaXQvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdh
dGlvblByaXZhdGUuaD4KQEAgLTQzNjEsNCArNDM2Miw4OCBAQCBURVNUKFByb2Nlc3NTd2FwLCBD
b250ZW50QmxvY2tpbmdBZnRlclByb2Nlc3NTd2FwKQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAor
c3RhdGljIGJvb2wgaXNDYXB0dXJpbmcgPSBmYWxzZTsKK0BpbnRlcmZhY2UgR2V0VXNlck1lZGlh
VUlEZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZT4KKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
OihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0
aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5G
cmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2Vy
KWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0
LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2Fw
dHVyZVN0YXRlKXN0YXRlOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gR2V0VXNlck1lZGlhVUlE
ZWxlZ2F0ZQorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNl
ck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMg
dXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sK
KyAgICBkZWNpc2lvbkhhbmRsZXIoWUVTKTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJ
bnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlcgoreworICAgIGRlY2lzaW9u
SGFuZGxlcihAIjB4OTg3NjU0MzIxIiwgWUVTKTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0
dXJlU3RhdGUpc3RhdGUKK3sKKyAgICBpc0NhcHR1cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworfQorQGVuZAorCitzdGF0aWMgY29uc3QgY2hhciogZ2V0
VXNlck1lZGlhQnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxoZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaGVhZD4KKylQU09OUkVTT1VSQ0UiOworCitURVNUKFByb2Nl
c3NTd2FwLCBHZXRVc2VyTWVkaWFDYXB0dXJlU3RhdGUpCit7CisgICAgYXV0byBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NT
d2Fwc09uTmF2aWdhdGlvbiA9IFlFUzsKKyAgICBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0
KCkucHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5ID0gWUVTOworCisgICAgYXV0byBwcm9j
ZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1
cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJW
aWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFt3ZWJWaWV3Q29uZmlndXJhdGlvbi5n
ZXQoKSBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVz
U2VjdXJlQ29ubmVjdGlvbiA9IE5POworICAgIHByZWZlcmVuY2VzLl9tZWRpYURldmljZXNFbmFi
bGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkID0g
WUVTOworCisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQ
b29sLmdldCgpXTsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxv
Y10gaW5pdF0pOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjov
L3d3dy53ZWJraXQub3JnL2dldFVzZXJNZWRpYS5odG1sIiB0b0RhdGE6Z2V0VXNlck1lZGlhQnl0
ZXNdOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy5h
cHBsZS5vcmcvdGVzdC5odG1sIiB0b0RhdGE6IiJdOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJd
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJW
aWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUg
PSBhZG9wdE5TKFtbUFNPTk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOwor
CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW0dldFVzZXJNZWRpYVVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOiB1aURlbGVnYXRlLmdl
dCgpXTsKKworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0TlMoW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9nZXRV
c2VyTWVkaWEuaHRtbCJdXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdC5nZXQo
KV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBm
YWxzZTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNDYXB0dXJpbmcpOworCisg
ICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIHJl
cXVlc3QgPSBhZG9wdE5TKFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLm9yZy90ZXN0Lmh0bWwiXV0pOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3QuZ2V0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIHBpZDIgPSBbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgRVhQRUNUX0ZBTFNFKGlzQ2FwdHVy
aW5nKTsKKyAgICBFWFBFQ1RfRkFMU0UocGlkMSA9PSBwaWQyKTsKK30KKwogI2VuZGlmIC8vIFdL
X0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA2N2ZjOTNlOTE2MjJi
ZGQzMzMxODVjN2Y2YjIwOGEzOWZlZTQ0NTE2Li44MThkNDQxODg0YmYxY2M4OTA0MDE4MjNkNDg5
ODUxMjE5OTc3NzJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTIxNiw2ICsyMTYs
NyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJzaXN0
ZW50UGVybWlzc2lvbkZvck9yaWdpbihib29sZWFuIHBlcm1pc3Npb24sIERPTVN0cmluZyBvcmln
aW4sIERPTVN0cmluZyBwYXJlbnRPcmlnaW4pOwogICAgIHVuc2lnbmVkIGxvbmcgdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RDb3VudEZvck9yaWdpbihET01TdHJpbmcgb3JpZ2luLCBET01TdHJp
bmcgcGFyZW50T3JpZ2luKTsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDb3VudEZvck9yaWdpbihET01TdHJpbmcgb3JpZ2luLCBET01TdHJpbmcgcGFyZW50T3JpZ2lu
KTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0RvaW5nTWVkaWFDYXB0dXJlOwog
CiAgICAgLy8gQXVkaW8gdGVzdGluZy4KICAgICBbUGFzc0NvbnRleHRdIHZvaWQgc2V0QXVkaW9S
ZXN1bHQob2JqZWN0IGRhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNzllNzFjYmY0MzczNDRlYTU2NThjYTcz
YzY3Y2Q1MzFmZGQ0ZDIzZS4uMjczYjQ4ZDAxZjkxZjcwMTMzNjU0NzY1MTc3OTFiMzkzNjUxNDcx
MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwCkBAIC0xMDkzLDYgKzEwOTMsMTUgQEAgdm9pZCBUZXN0UnVubmVyOjpyZXNl
dFVzZXJNZWRpYVBlcm1pc3Npb24oKQogICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5y
ZXNldFVzZXJNZWRpYVBlcm1pc3Npb24oKTsKIH0KIAorYm9vbCBUZXN0UnVubmVyOjppc0RvaW5n
TWVkaWFDYXB0dXJlKCkgY29uc3QKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVz
c2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklzRG9pbmdN
ZWRpYUNhcHR1cmUiKSk7CisgICAgV0tUeXBlUmVmIHJldHVybkRhdGEgPSBudWxscHRyOworICAg
IFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG51bGxw
dHIsICZyZXR1cm5EYXRhKTsKKyAgICBBU1NFUlQoV0tHZXRUeXBlSUQocmV0dXJuRGF0YSkgPT0g
V0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgIHJldHVybiBXS0Jvb2xlYW5HZXRWYWx1ZShhZG9w
dFdLKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4ocmV0dXJuRGF0YSkpLmdldCgpKTsKK30KKwog
dm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyTWVkaWFQZXJzaXN0ZW50UGVybWlzc2lvbkZvck9yaWdp
bihib29sIHBlcm1pc3Npb24sIEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNTdHJpbmdSZWYgcGFyZW50
T3JpZ2luKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW5XSyA9IHRvV0so
b3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmgKaW5kZXggMjIxNGQ3N2I4YzM5NzlhNDdjNWU4ZWRhYTVkMzI3MTJkMTQzNDFk
OS4uZWM3NjlmNjQ2ZjVjNTAxMjNhMTlmOWExMzYxYTlhMWE5NDMyYzViNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTMx
OCw2ICszMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFQZXJzaXN0ZW50UGVy
bWlzc2lvbkZvck9yaWdpbihib29sIHBlcm1pc3Npb24sIEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNT
dHJpbmdSZWYgcGFyZW50T3JpZ2luKTsKICAgICB1bnNpZ25lZCB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdENvdW50Rm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbiwgSlNTdHJpbmdSZWYgcGFy
ZW50T3JpZ2luKSBjb25zdDsKICAgICB2b2lkIHJlc2V0VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RDb3VudEZvck9yaWdpbihKU1N0cmluZ1JlZiBvcmlnaW4sIEpTU3RyaW5nUmVmIHBhcmVudE9y
aWdpbik7CisgICAgYm9vbCBpc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3Q7CiAKICAgICB2b2lk
IHNldFBhZ2VWaXNpYmlsaXR5KEpTU3RyaW5nUmVmIHN0YXRlKTsKICAgICB2b2lkIHJlc2V0UGFn
ZVZpc2liaWxpdHkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggNmQ0ZGZmYjQ5NjU2NTI0YzY0ZDk2MmU3OWZlMjM4Mzg0YzY5YzBjNi4uNTRlMzkyMTFi
ZjVjZTIzMzliYzQwMmY1ZmRkOTI5MjBkNmZlYjQzMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMxODUsNiArMzE4NSwxMiBAQCBib29sIFRlc3RDb250
cm9sbGVyOjprZXlFeGlzdHNJbktleWNoYWluKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitib29sIFRlc3RDb250cm9sbGVyOjppc0RvaW5n
TWVkaWFDYXB0dXJlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNlbmRpZgog
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpzZW5kRGlzcGxheUNvbmZpZ3VyYXRpb25DaGFuZ2VkTWVz
c2FnZUZvclRlc3RpbmcoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmlu
ZGV4IDEzYTM5YzY5MDVmMGQ4N2JhODdiOWRiNTdmOGRhZDVjMTdhYzcxYmMuLjk1YTA1ODEyNWQy
YWVhMGRjNDE3NDBmMmQ5ZmU2NmE2YTFiYjc2ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKQEAgLTI3OCw2ICsyNzgsOCBAQCBwdWJsaWM6CiAgICAgVUlLZXlib2Fy
ZElucHV0TW9kZSAqb3ZlcnJpZGRlbktleWJvYXJkSW5wdXRNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9vdmVycmlkZGVuS2V5Ym9hcmRJbnB1dE1vZGUuZ2V0KCk7IH0KICNlbmRpZgogCisgICAgYm9v
bCBpc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgV0tSZXRhaW5Q
dHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihXS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmKTsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRDb25maWd1
cmF0aW9uUmVmPiBnZW5lcmF0ZUNvbnRleHRDb25maWd1cmF0aW9uKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDBjNmM4NzdmZjFkYWI3NTVh
ZGUyOGU5ZTIzNGY0NGU1NWZkOTRjMjcuLmQxYzA0NDFiOWU1N2Q0OTk4NjIwZjg5MzQ3YWVhOWUx
NTdlZWU3NTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBA
IC0xMDM0LDYgKzEwMzQsMTAgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tVSW50NjRSZWY+IHJlc3VsdChBZG9wdFdLLCBXS1VJbnQ2NENyZWF0ZShjb3Vu
dCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIklzRG9pbmdNZWRpYUNhcHR1cmUiKSkgewor
ICAgICAgICBXS1JldGFpblB0cjxXS1R5cGVSZWY+IHJlc3VsdChBZG9wdFdLLCBXS0Jvb2xlYW5D
cmVhdGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmlzRG9pbmdNZWRpYUNhcHR1cmUoKSkp
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0RlYnVnTW9kZSIpKSB7
CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0
VHlwZUlEKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tCmluZGV4IDExYjBlM2FlMzRmYmJlN2UxYmE5ZTE3MjFhNGQxMThkMzMw
MjY3OTYuLjZjNGI0Y2U2Zjk3ZTU1OTFkNGU0ZDVhMjZhZTJjN2E1M2IxODIwODggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0K
QEAgLTM4Miw0ICszODIsMTMgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6a2V5RXhpc3RzSW5LZXlj
aGFpbihjb25zdCBTdHJpbmcmIGF0dHJMYWJlbCwgY29uc3QgU3RyaW5nJgogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNEb2luZ01lZGlhQ2FwdHVyZSgpIGNv
bnN0Cit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICByZXR1cm4gbV9tYWluV2ViVmlldy0+cGxh
dGZvcm1WaWV3KCkuX21lZGlhQ2FwdHVyZVN0YXRlICE9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9u
ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNl
IFdUUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRp
YS1wcm9jZXNzU3dhcHBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
cnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvZ2V0VXNlck1lZGlhLXByb2Nlc3NTd2Fw
cGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2VicnRjL2dldFVzZXJNZWRpYS1wcm9jZXNzU3dhcHBpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2VyTWVkaWEtcHJvY2Vzc1N3YXBwaW5n
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDUwZmYyMmY3YTMyY2QxMGQ0MGQwODVhMzMxNTYyNTFjMGJhYjY1
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9nZXRVc2Vy
TWVkaWEtcHJvY2Vzc1N3YXBwaW5nLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Z2V0VXNlck1lZGlhIG9uIHByb2Nl
c3Mgc3dhcHBpbmc8L3RpdGxlPgorPGJvZHk+Cis8dmlkZW8gaWQ9ImxvY2FsIj48L3ZpZGVvPgor
PHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorCithc3luYyBmdW5jdGlv
biBnZXRVc2VyTWVkaWFBbmROYXZpZ2F0ZSgpCit7CisgICAgbG9jYWwuc3JjT2JqZWN0ID0gYXdh
aXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7Cisg
ICAgYXdhaXQgbG9jYWwucGxheSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
c2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
ICF0ZXN0UnVubmVyLmlzRG9pbmdNZWRpYUNhcHR1cmUpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUwgPSAiRkFJTDogbm8gY2FwdHVyZSBzdGF0ZSI7CisgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHdpbmRvdy5sb2Nh
dGlvbiA9IGdldF9ob3N0X2luZm8oKS5IVFRQU19PUklHSU4gKyAiL1dlYktpdC93ZWJydGMvZ2V0
VXNlck1lZGlhLXByb2Nlc3NTd2FwcGluZy5odG1sIjsKK30KKworZnVuY3Rpb24gdmFsaWRhdGVN
ZWRpYUNhcHR1cmVTdGF0ZUFmdGVyTmF2aWdhdGlvbigpCit7CisgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJGQUlMOiBOZWVk
IHRlc3RSdW5uZXIgQVBJIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2N1bWVudC5i
b2R5LmlubmVySFRNTCA9IHRlc3RSdW5uZXIuaXNEb2luZ01lZGlhQ2FwdHVyZSA/ICJGQUlMIiA6
ICJQQVNTIjsKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5s
b2NhdGlvbi5wcm90b2NvbCA9PT0gImh0dHA6IikKKyAgICBnZXRVc2VyTWVkaWFBbmROYXZpZ2F0
ZSgpOworZWxzZQorICAgIHZhbGlkYXRlTWVkaWFDYXB0dXJlU3RhdGVBZnRlck5hdmlnYXRpb24o
KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>