<?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>215772</bug_id>
          
          <creation_ts>2020-08-24 10:08:36 -0700</creation_ts>
          <short_desc>REGRESSION (r266028): platform/ios/ios/fast/coordinates/range-client-rects.html</short_desc>
          <delta_ts>2020-08-25 09:32:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=215677</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hector_i_lopez</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1682364</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-08-24 10:08:36 -0700</bug_when>
    <thetext>platform/ios/ios/fast/coordinates/range-client-rects.html seems to be broken on iOS since r266028.

History: https://results.webkit.org/?suite=layout-tests&amp;test=platform%2Fios%2Fios%2Ffast%2Fcoordinates%2Frange-client-rects.html


e.g.: https://ews-build.s3-us-west-2.amazonaws.com/iOS-13-Simulator-WK2-Tests-EWS/r407098-24207-clean-tree/platform/ios/ios/fast/coordinates/range-client-rects-diff.txt
-PASS range.getClientRects().length is 2
+FAIL range.getClientRects().length should be 2. Was 1.
 unscaled
 PASS clientRect.left is 0
 PASS clientRect.right is 1500
@@ -8,18 +8,18 @@
 PASS clientRect.bottom is 1500
 PASS clientRect.width is 1500
 PASS clientRect.height is 1500
-PASS clientRect.left is 0
-PASS clientRect.right is 1500
-PASS clientRect.top is 0
-PASS clientRect.bottom is 1500
-PASS clientRect.width is 1500
-PASS clientRect.height is 1500
-PASS clientRect.left is 100
-PASS clientRect.right is 200
-PASS clientRect.top is 100
-PASS clientRect.bottom is 200
-PASS clientRect.width is 100
-PASS clientRect.height is 100
+FAIL clientRect.left should be 0. Threw exception TypeError: undefined is not an object (evaluating &apos;clientRect.left&apos;)
+FAIL clientRect.right should be 1500. Threw exception TypeError: undefined is not an object (evaluating &apos;clientRect.right&apos;)
+FAIL clientRect.top should be 0. Threw exception TypeError: undefined is not an object (evaluating &apos;clientRect.top&apos;)
+FAIL clientRect.bottom should be 1500. Threw exception TypeError: undefined is not an object (evaluating &apos;clientRect.bottom&apos;)
+FAIL clientRect.width should be 1500. Threw exception TypeError: undefined is not an object (evaluating &apos;clientRect.width&apos;)
+FAIL clientRect.height should be 1500. Threw exception TypeError: undefined is not an object (evaluating &apos;clientRect.height&apos;)
+FAIL clientRect.left should be 100. Was 0.
+FAIL clientRect.right should be 200. Was 1500.
+FAIL clientRect.top should be 100. Was 0.
+FAIL clientRect.bottom should be 200. Was 1500.
+FAIL clientRect.width should be 100. Was 1500.
+FAIL clientRect.height should be 100. Was 1500.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682386</commentid>
    <comment_count>1</comment_count>
    <who name="Hector Lopez">hector_i_lopez</who>
    <bug_when>2020-08-24 10:32:44 -0700</bug_when>
    <thetext>Test expectation while investigated:

https://trac.webkit.org/changeset/266073/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682397</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 11:03:37 -0700</bug_when>
    <thetext>Strange; I saw this with an earlier version of my patch, but I thought I had fixed it. Note that we don’t see the failure in EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682398</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 11:03:55 -0700</bug_when>
    <thetext>Any clue why we didn’t see the failure in EWS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682401</commentid>
    <comment_count>4</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-08-24 11:11:58 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Any clue why we didn’t see the failure in EWS?
Yeah, I tried to explain in https://bugs.webkit.org/show_bug.cgi?id=215677#c11
Basically ios-wk2 EWS was broken for some time late last week, showing green bubbles while the tests weren&apos;t even run (due to Bug 215742). I am going to fix EWS, so that in such infrastructure failures it doesn&apos;t show green bubbles, and instead keep re-trying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682421</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 12:10:28 -0700</bug_when>
    <thetext>I”ll work on fixing this.

As long as no one merges this to the branch, we have some time to get it fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682504</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-24 17:15:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/67708183&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682506</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 17:26:17 -0700</bug_when>
    <thetext>This test is peculiar. The whole thing runs just fine cross-platform. It&apos;s just that the meta tag for zooming has no effect on platforms like Mac. But the bug/regression reproduces everywhere and has nothing to do with the zooming.

I think we should consider moving it out of the platform/ios/ios directory into a cross-platform directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682511</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-08-24 17:41:59 -0700</bug_when>
    <thetext>I tried to follow the history to see why it was iOS-only, but had to stop at r167371 (moving from Internal).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682513</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 17:49:04 -0700</bug_when>
    <thetext>I think the intent was to check the meta tag behavior and there just happens to be no similar bug elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682537</commentid>
    <comment_count>10</comment_count>
      <attachid>407158</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 18:55:01 -0700</bug_when>
    <thetext>Created attachment 407158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682538</commentid>
    <comment_count>11</comment_count>
      <attachid>407159</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 18:58:22 -0700</bug_when>
    <thetext>Created attachment 407159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682552</commentid>
    <comment_count>12</comment_count>
      <attachid>407164</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-24 19:54:54 -0700</bug_when>
    <thetext>Created attachment 407164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682619</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-25 04:13:08 -0700</bug_when>
    <thetext>Ready for review now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682673</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-25 09:32:30 -0700</bug_when>
    <thetext>Committed r266123: &lt;https://trac.webkit.org/changeset/266123&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407164.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407158</attachid>
            <date>2020-08-24 18:55:01 -0700</date>
            <delta_ts>2020-08-24 18:58:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215772-20200824185501.patch</filename>
            <type>text/plain</type>
            <size>19588</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUyYmQ5NWQzYTgzMTg2
ZTViYmRkYTU4YjU1NDQ2MTlhYzQ4Njg2OS4uZDk3MGZiODk0YWRjYTUyMGEwMzJkMDZkMTlkODlm
NDRlYzVmZjc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA4LTI0ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2MDI4
KTogcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy5o
dG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU3
NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRv
bS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Z2V0Q2xpZW50UmVjdHMgY29u
c3QpOiBDYWxsIHVwZGF0ZUxheW91dCBzaW5jZSBpdCdzIG5vdCBzYWZlCisgICAgICAgIHRvIHN0
YXJ0IHdvcmtpbmcgd2l0aCB0aGUgcmVuZGVyIHRyZWUgd2l0aG91dCB1cGRhdGluZyBpdCBmaXJz
dC4gTm90IHJlcXVpcmVkCisgICAgICAgIHRvIGZpeCB0aGlzIGJ1ZywgYnV0IGFuIG9idmlvdXMg
b21pc3Npb24uIElkZWFsbHkgc2hvdWxkIG1ha2UgYSB0ZXN0IHRvIHNob3cKKyAgICAgICAgdGhp
cyBpcyBuZWVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRS
ZWN0IGNvbnN0KTogRGl0dG8uCisKKyAgICAgICAgKiBkb20vU2ltcGxlUmFuZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZG9jdW1lbnRPcmRlcik6IFJlbW92ZWQgYm9ndXMgc3BlY2lhbCBjYXNl
LiBUZXN0IGNhc2UgcHJvdmluZyB0aGlzIGlzCisgICAgICAgIHdyb25nIGlzIGNvbWluZyBpbiB0
aGUgbmV4dCBkb2N1bWVudE9yZGVyLXJlbGF0ZWQgcGF0Y2guIE5vdCBuZWVkZWQgdG8gZml4IHRo
aXMKKyAgICAgICAgYnVnLCBidXQgc2VlbXMgZGFuZ2Vyb3VzIHRvIGxlYXZlIHRoaXMgaW4gdGhl
IHRyZWUgdGhlIHdheSBpdCB3YXMuCisgICAgICAgIChXZWJDb3JlOjpmaXJzdEludGVyc2VjdGlu
Z05vZGVXaXRoRGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJrKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnRlcnNlY3RpbmdOb2RlSXRlcmF0b3I6OkludGVyc2VjdGluZ05vZGVJdGVy
YXRvcik6IEFkZGVkLgorCisgICAgICAgICogZG9tL1NpbXBsZVJhbmdlLmg6IEFkZGVkIGludGVy
c2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyay4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Ym9yZGVy
QW5kVGV4dFJlY3RzKTogVXNlIGludGVyc2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zm
c2V0U3RhcnRRdWlyaworICAgICAgICBiZWNhdXNlIHRoaXMgbmVlZHMgdG8gZ2V0IHRoZSBzZXQg
b2Ygbm9kZXMgaW4gYSB3YXkgdGhhdCB3b3JrcyBmb3Igb3VyIGluY29ycmVjdGx5CisgICAgICAg
IGZvcm1lZCBzZWxlY3Rpb24gcmFuZ2VzIGFuZCBpbmNsdWRlcyB0aGUgZmlyc3QgZWxlbWVudCBl
dmVuIHdoZW4gdGhlIHJhbmdlIHRlY2huaWNhbGx5CisgICAgICAgIHN0YXJ0cyBpbnNpZGUgdGhh
dCBlbGVtZW50LiBXZSBuZWVkIHRvIGZpeCB0aG9zZSwgYnV0IHRoYXQncyBhIGJpZyBwcm9qZWN0
IHRoYXQgYWZmZWN0cworICAgICAgICBhIGxvdCBvZiBlZGl0aW5nIGNvZGUuIEZvciBub3csIHJl
c3RvcmluZyB0aGUgb2xkIHF1aXJrIGlzIGV4cGVkaWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6Y29sbGVjdFNlbGVjdGlvblJlY3RzSW50ZXJuYWwpOiBEaXR0by4KKwogMjAy
MC0wOC0yNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogcmVuYW1lIGBTY3JpcHREZWJ1Z1NlcnZlcmAgc3ViY2xhc3Nlcy9tZXRob2Rz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmNwcAppbmRleCAwNWNiOWYyODBjNGU4OWFlMzY3ZDg0NzE3NGUzY2Y1ODI0
ZDAzZTI3Li44ZjZmZDNiYzhhYmE1YWZhNDU4YzkzNmYyZWUzY2M3NDA4NGRiYzJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9SYW5nZS5jcHAKQEAgLTEzNTgsMTEgKzEzNTgsMTMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUmFu
Z2U6OmV4cGFuZChjb25zdCBTdHJpbmcmIHVuaXQpCiAKIFJlZjxET01SZWN0TGlzdD4gUmFuZ2U6
OmdldENsaWVudFJlY3RzKCkgY29uc3QKIHsKKyAgICBzdGFydENvbnRhaW5lcigpLmRvY3VtZW50
KCkudXBkYXRlTGF5b3V0KCk7CiAgICAgcmV0dXJuIERPTVJlY3RMaXN0OjpjcmVhdGUoUmVuZGVy
T2JqZWN0OjpjbGllbnRCb3JkZXJBbmRUZXh0UmVjdHMobWFrZVNpbXBsZVJhbmdlKCp0aGlzKSkp
OwogfQogCiBSZWY8RE9NUmVjdD4gUmFuZ2U6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0
CiB7CisgICAgc3RhcnRDb250YWluZXIoKS5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwogICAg
IHJldHVybiBET01SZWN0OjpjcmVhdGUodW5pb25SZWN0SWdub3JpbmdaZXJvUmVjdHMoUmVuZGVy
T2JqZWN0OjpjbGllbnRCb3JkZXJBbmRUZXh0UmVjdHMobWFrZVNpbXBsZVJhbmdlKCp0aGlzKSkp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXBsZVJhbmdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW1wbGVSYW5nZS5jcHAKaW5kZXggZDdlNDcyNmE4Y2IxZDRk
ZDJmOTVjNzQzODkzNTczNzE4NmZmZDVmZC4uYjYxYTYwYTEwZTUxMjFkOGIwMmViZGFjY2EwNDI0
NTg3MTE5NDNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXBsZVJhbmdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltcGxlUmFuZ2UuY3BwCkBAIC04Myw5ICs4Myw2
IEBAIHN0YXRpYyBib29sIGlzT2Zmc2V0QmVmb3JlQ2hpbGQoQ29udGFpbmVyTm9kZSYgY29udGFp
bmVyLCB1bnNpZ25lZCBvZmZzZXQsIE5vZGUmCiAvLyBGSVhNRTogQ3JlYXRlIEJvdW5kYXJ5UG9p
bnQuY3BwIGFuZCBtb3ZlIHRoaXMgdGhlcmUuCiBQYXJ0aWFsT3JkZXJpbmcgZG9jdW1lbnRPcmRl
cihjb25zdCBCb3VuZGFyeVBvaW50JiBhLCBjb25zdCBCb3VuZGFyeVBvaW50JiBiKQogewotICAg
IGlmIChhLm9mZnNldCA9PSBiLm9mZnNldCkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50T3JkZXIo
YS5jb250YWluZXIsIGIuY29udGFpbmVyKTsKLQogICAgIGlmIChhLmNvbnRhaW5lci5wdHIoKSA9
PSBiLmNvbnRhaW5lci5wdHIoKSkKICAgICAgICAgcmV0dXJuIGEub2Zmc2V0IDwgYi5vZmZzZXQg
PyBQYXJ0aWFsT3JkZXJpbmc6Omxlc3MgOiBQYXJ0aWFsT3JkZXJpbmc6OmdyZWF0ZXI7CiAKQEAg
LTE0NCw2ICsxNDEsMTcgQEAgc3RhdGljIFJlZlB0cjxOb2RlPiBub2RlUGFzdExhc3RJbnRlcnNl
Y3RpbmdOb2RlKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkKICAgICByZXR1cm4gTm9kZVRyYXZl
cnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4ocmFuZ2UuZW5kLmNvbnRhaW5lcik7CiB9CiAKK3N0
YXRpYyBSZWZQdHI8Tm9kZT4gZmlyc3RJbnRlcnNlY3RpbmdOb2RlV2l0aERlcHJlY2F0ZWRaZXJv
T2Zmc2V0U3RhcnRRdWlyayhjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCit7CisgICAgaWYgKHJh
bmdlLnN0YXJ0LmNvbnRhaW5lci0+aXNDaGFyYWN0ZXJEYXRhTm9kZSgpKQorICAgICAgICByZXR1
cm4gcmFuZ2Uuc3RhcnQuY29udGFpbmVyLnB0cigpOworICAgIGlmIChhdXRvIGNoaWxkID0gcmFu
Z2Uuc3RhcnQuY29udGFpbmVyLT50cmF2ZXJzZVRvQ2hpbGRBdChyYW5nZS5zdGFydC5vZmZzZXQp
KQorICAgICAgICByZXR1cm4gY2hpbGQ7CisgICAgaWYgKCFyYW5nZS5zdGFydC5vZmZzZXQpCisg
ICAgICAgIHJldHVybiByYW5nZS5zdGFydC5jb250YWluZXIucHRyKCk7CisgICAgcmV0dXJuIE5v
ZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKHJhbmdlLnN0YXJ0LmNvbnRhaW5lcik7
Cit9CisKIEludGVyc2VjdGluZ05vZGVJdGVyYXRvcjo6SW50ZXJzZWN0aW5nTm9kZUl0ZXJhdG9y
KGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkKICAgICA6IG1fbm9kZShmaXJzdEludGVyc2VjdGlu
Z05vZGUocmFuZ2UpKQogICAgICwgbV9wYXN0TGFzdE5vZGUobm9kZVBhc3RMYXN0SW50ZXJzZWN0
aW5nTm9kZShyYW5nZSkpCkBAIC0xNTEsNiArMTU5LDEzIEBAIEludGVyc2VjdGluZ05vZGVJdGVy
YXRvcjo6SW50ZXJzZWN0aW5nTm9kZUl0ZXJhdG9yKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkK
ICAgICBlbmZvcmNlRW5kSW52YXJpYW50KCk7CiB9CiAKK0ludGVyc2VjdGluZ05vZGVJdGVyYXRv
cjo6SW50ZXJzZWN0aW5nTm9kZUl0ZXJhdG9yKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSwgUXVp
cmtGbGFnKQorICAgIDogbV9ub2RlKGZpcnN0SW50ZXJzZWN0aW5nTm9kZVdpdGhEZXByZWNhdGVk
WmVyb09mZnNldFN0YXJ0UXVpcmsocmFuZ2UpKQorICAgICwgbV9wYXN0TGFzdE5vZGUobm9kZVBh
c3RMYXN0SW50ZXJzZWN0aW5nTm9kZShyYW5nZSkpCit7CisgICAgZW5mb3JjZUVuZEludmFyaWFu
dCgpOworfQorCiB2b2lkIEludGVyc2VjdGluZ05vZGVJdGVyYXRvcjo6YWR2YW5jZSgpCiB7CiAg
ICAgQVNTRVJUKG1fbm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltcGxl
UmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW1wbGVSYW5nZS5oCmluZGV4IDI5MDRjMzdl
YThiNTJhYmY2YjQyYjc2ZDUzZWI0YTdmZGI1ZTg3NzAuLjBkNWNkMWVhYjJhNzcxZWI2NzI2NWRk
NjMwMjQ1MzQxMTI3ZmM1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW1wbGVS
YW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW1wbGVSYW5nZS5oCkBAIC02OCw2ICs2
OCw5IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTaW1wbGVSYW5nZSYsIGNvbnN0IFNpbXBsZVJh
bmdlJik7CiBjbGFzcyBJbnRlcnNlY3RpbmdOb2RlUmFuZ2U7CiBJbnRlcnNlY3RpbmdOb2RlUmFu
Z2UgaW50ZXJzZWN0aW5nTm9kZXMoY29uc3QgU2ltcGxlUmFuZ2UmKTsKIAorY2xhc3MgSW50ZXJz
ZWN0aW5nTm9kZVJhbmdlV2l0aFF1aXJrOworSW50ZXJzZWN0aW5nTm9kZVJhbmdlV2l0aFF1aXJr
IGludGVyc2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyayhjb25z
dCBTaW1wbGVSYW5nZSYpOworCiBzdHJ1Y3QgT2Zmc2V0UmFuZ2UgewogICAgIHVuc2lnbmVkIHN0
YXJ0IHsgMCB9OwogICAgIHVuc2lnbmVkIGVuZCB7IDAgfTsKQEAgLTc4LDYgKzgxLDkgQEAgY2xh
c3MgSW50ZXJzZWN0aW5nTm9kZUl0ZXJhdG9yIDogcHVibGljIHN0ZDo6aXRlcmF0b3I8c3RkOjpm
b3J3YXJkX2l0ZXJhdG9yX3RhZywKIHB1YmxpYzoKICAgICBJbnRlcnNlY3RpbmdOb2RlSXRlcmF0
b3IoY29uc3QgU2ltcGxlUmFuZ2UmKTsKIAorICAgIGVudW0gUXVpcmtGbGFnIHsgRGVwcmVjYXRl
ZFplcm9PZmZzZXRTdGFydFF1aXJrIH07CisgICAgSW50ZXJzZWN0aW5nTm9kZUl0ZXJhdG9yKGNv
bnN0IFNpbXBsZVJhbmdlJiwgUXVpcmtGbGFnKTsKKwogICAgIE5vZGUmIG9wZXJhdG9yKigpIGNv
bnN0IHsgcmV0dXJuICptX25vZGU7IH0KICAgICBOb2RlKiBvcGVyYXRvci0+KCkgY29uc3QgeyBB
U1NFUlQobV9ub2RlKTsgcmV0dXJuIG1fbm9kZS5nZXQoKTsgfQogCkBAIC0xMDcsMTYgKzExMywz
NyBAQCBwcml2YXRlOgogICAgIFNpbXBsZVJhbmdlIG1fcmFuZ2U7CiB9OwogCitjbGFzcyBJbnRl
cnNlY3RpbmdOb2RlUmFuZ2VXaXRoUXVpcmsgeworcHVibGljOgorICAgIEludGVyc2VjdGluZ05v
ZGVSYW5nZVdpdGhRdWlyayhjb25zdCBTaW1wbGVSYW5nZSYpOworCisgICAgSW50ZXJzZWN0aW5n
Tm9kZUl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4geyBtX3JhbmdlLCBJbnRlcnNlY3Rp
bmdOb2RlSXRlcmF0b3I6OkRlcHJlY2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyayB9OyB9CisgICAg
c3RhdGljIGNvbnN0ZXhwciBzdGQ6Om51bGxwdHJfdCBlbmQoKSB7IHJldHVybiBudWxscHRyOyB9
CisKK3ByaXZhdGU6CisgICAgU2ltcGxlUmFuZ2UgbV9yYW5nZTsKK307CisKIGlubGluZSBJbnRl
cnNlY3RpbmdOb2RlUmFuZ2U6OkludGVyc2VjdGluZ05vZGVSYW5nZShjb25zdCBTaW1wbGVSYW5n
ZSYgcmFuZ2UpCiAgICAgOiBtX3JhbmdlKHJhbmdlKQogewogfQogCitpbmxpbmUgSW50ZXJzZWN0
aW5nTm9kZVJhbmdlV2l0aFF1aXJrOjpJbnRlcnNlY3RpbmdOb2RlUmFuZ2VXaXRoUXVpcmsoY29u
c3QgU2ltcGxlUmFuZ2UmIHJhbmdlKQorICAgIDogbV9yYW5nZShyYW5nZSkKK3sKK30KKwogaW5s
aW5lIEludGVyc2VjdGluZ05vZGVSYW5nZSBpbnRlcnNlY3RpbmdOb2Rlcyhjb25zdCBTaW1wbGVS
YW5nZSYgcmFuZ2UpCiB7CiAgICAgcmV0dXJuIHsgcmFuZ2UgfTsKIH0KIAoraW5saW5lIEludGVy
c2VjdGluZ05vZGVSYW5nZVdpdGhRdWlyayBpbnRlcnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNhdGVk
WmVyb09mZnNldFN0YXJ0UXVpcmsoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKQoreworICAgIHJl
dHVybiB7IHJhbmdlIH07Cit9CisKIGlubGluZSBTaW1wbGVSYW5nZSBtYWtlU2ltcGxlUmFuZ2VI
ZWxwZXIoQm91bmRhcnlQb2ludCYmIHN0YXJ0LCBCb3VuZGFyeVBvaW50JiYgZW5kKQogewogICAg
IHJldHVybiB7IFdURk1vdmUoc3RhcnQpLCBXVEZNb3ZlKGVuZCkgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNDNhYzE2OWI5MzRiMGU3NjhmMjUyZjFl
NGEzN2ExODAzNzczNzg1Zi4uYjZlYTE1NTMwNzk3N2Q5ZTU3ZDI0YTgwN2UwZjI2NzI4ZTljZWRi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTE5ODAs
NyArMTk4MCw3IEBAIHN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0PiBib3JkZXJBbmRUZXh0UmVjdHMo
Y29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlLCBDb29yZGluYXRlCiAgICAgYm9vbCB1c2VWaXNpYmxl
Qm91bmRzID0gYmVoYXZpb3IuY29udGFpbnMoUmVuZGVyT2JqZWN0OjpCb3VuZGluZ1JlY3RCZWhh
dmlvcjo6VXNlVmlzaWJsZUJvdW5kcyk7CiAKICAgICBIYXNoU2V0PEVsZW1lbnQqPiBzZWxlY3Rl
ZEVsZW1lbnRzU2V0OwotICAgIGZvciAoYXV0byYgbm9kZSA6IGludGVyc2VjdGluZ05vZGVzKHJh
bmdlKSkgeworICAgIGZvciAoYXV0byYgbm9kZSA6IGludGVyc2VjdGluZ05vZGVzV2l0aERlcHJl
Y2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyayhyYW5nZSkpIHsKICAgICAgICAgaWYgKGlzPEVsZW1l
bnQ+KG5vZGUpKQogICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c1NldC5hZGQoJmRvd25jYXN0
PEVsZW1lbnQ+KG5vZGUpKTsKICAgICB9CkBAIC0xOTk4LDcgKzE5OTgsNyBAQCBzdGF0aWMgVmVj
dG9yPEZsb2F0UmVjdD4gYm9yZGVyQW5kVGV4dFJlY3RzKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5n
ZSwgQ29vcmRpbmF0ZQogICAgICAgICBSZW5kZXJPYmplY3Q6OlZpc2libGVSZWN0Q29udGV4dE9w
dGlvbjo6QXBwbHlDb21wb3NpdGVkQ29udGFpbmVyU2Nyb2xscwogICAgIH07CiAKLSAgICBmb3Ig
KGF1dG8mIG5vZGUgOiBpbnRlcnNlY3RpbmdOb2RlcyhyYW5nZSkpIHsKKyAgICBmb3IgKGF1dG8m
IG5vZGUgOiBpbnRlcnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNhdGVkWmVyb09mZnNldFN0YXJ0UXVp
cmsocmFuZ2UpKSB7CiAgICAgICAgIGlmIChpczxFbGVtZW50Pihub2RlKSAmJiBzZWxlY3RlZEVs
ZW1lbnRzU2V0LmNvbnRhaW5zKCZkb3duY2FzdDxFbGVtZW50Pihub2RlKSkgJiYgKHVzZVZpc2li
bGVCb3VuZHMgfHwgIW5vZGUucGFyZW50RWxlbWVudCgpIHx8ICFzZWxlY3RlZEVsZW1lbnRzU2V0
LmNvbnRhaW5zKG5vZGUucGFyZW50RWxlbWVudCgpKSkpIHsKICAgICAgICAgICAgIGlmIChhdXRv
IHJlbmRlcmVyID0gZG93bmNhc3Q8RWxlbWVudD4obm9kZSkucmVuZGVyQm94TW9kZWxPYmplY3Qo
KSkgewogICAgICAgICAgICAgICAgIGlmICh1c2VWaXNpYmxlQm91bmRzKSB7CkBAIC0yMTA0LDcg
KzIxMDQsNyBAQCBhdXRvIFJlbmRlck9iamVjdDo6Y29sbGVjdFNlbGVjdGlvblJlY3RzSW50ZXJu
YWwoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKSAtPiBTZQogICAgIFZlY3RvcjxTZWxlY3Rpb25S
ZWN0PiBuZXdSZWN0czsKICAgICBib29sIGhhc0ZsaXBwZWRXcml0aW5nTW9kZSA9IHJhbmdlLnN0
YXJ0LmNvbnRhaW5lci0+cmVuZGVyZXIoKSAmJiByYW5nZS5zdGFydC5jb250YWluZXItPnJlbmRl
cmVyKCktPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKTsKICAgICBib29sIGNv
bnRhaW5zRGlmZmVyZW50V3JpdGluZ01vZGVzID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvJiBub2Rl
IDogaW50ZXJzZWN0aW5nTm9kZXMocmFuZ2UpKSB7CisgICAgZm9yIChhdXRvJiBub2RlIDogaW50
ZXJzZWN0aW5nTm9kZXNXaXRoRGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJrKHJhbmdlKSkg
ewogICAgICAgICBhdXRvIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwogICAgICAgICAvLyBP
bmx5IGFzayBsZWFmIHJlbmRlciBvYmplY3RzIGZvciB0aGVpciBsaW5lIGJveCByZWN0cy4KICAg
ICAgICAgaWYgKHJlbmRlcmVyICYmICFyZW5kZXJlci0+Zmlyc3RDaGlsZFNsb3coKSAmJiByZW5k
ZXJlci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgIT0gVXNlclNlbGVjdDo6Tm9uZSkgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDlhN2JlMzQ0YmIwZmQyOTgyYzRiODY3NDNlMjAxZjFmYTcwYTUyMGUuLmI5ZTc2YjY3NDNlNDkw
NjNjNmRiZTE2ODNkZWU4ODYwODFkMDVjZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0w
OC0yNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TiAocjI2NjAyOCk6IHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1jbGll
bnQtcmVjdHMuaHRtbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE1NzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvZWxlbWVudC1jbGllbnQt
cmVjdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29y
ZGluYXRlcy9lbGVtZW50LWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1jbGllbnQtcmVjdHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1jbGllbnQt
cmVjdHMuaHRtbDoKKyAgICAgICAgQ2hhbmdlZCB0ZXN0cyBzbyBpdCdzIGVhc2llciB0byByZWFk
IHRoZWlyIHJlc3VsdHMgYnkgcHV0dGluZyByZWN0YW5nbGVzIGFuZAorICAgICAgICByZWN0YW5n
bGUgbGlzdHMgaW50byBzdHJpbmdzIGluc3RlYWQgb2YgY29tcGFyaW5nIG9uZSB2YWx1ZSBwZXIg
bGluZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yZXNv
dXJjZXMvaGVscGVycy5qczoKKyAgICAgICAgKHJlY3RTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAg
KHJlY3RTdHJpbmdzKTogQWRkZWQuCisgICAgICAgIChzZXRFeHBlY3RlZENsaWVudFJlY3RWYWx1
ZXMpOiBEZWxldGVkLgorICAgICAgICAodmVyaWZ5Q2xpZW50UmVjdCk6IERlbGV0ZWQuCisKIDIw
MjAtMDgtMjQgIEhlY3RvciBMb3BleiAgPGhlY3Rvcl9pX2xvcGV6QGFwcGxlLmNvbT4KIAogICAg
ICAgIFsgbWFjT1Mgd2syIFJlbGVhc2UgXSBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNp
Yy1pbnN0YWxsLWV2ZW50LXdhaXRVbnRpbC1yZWplY3QuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRl
cy9lbGVtZW50LWNsaWVudC1yZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvZWxlbWVudC1jbGllbnQtcmVjdHMtZXhwZWN0ZWQu
dHh0CmluZGV4IGE2Njg1ZWJlYTVmNDA4MWVmZDc0ZDlhMmMzNzU2NjVjMTYyMmM4NGIuLmE2MjAy
ZDA5NDgzMTJkODM3N2Q3Y2NkZjA5ZmMyZDZlMThhMzBlMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9lbGVtZW50LWNsaWVudC1yZWN0
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nv
b3JkaW5hdGVzL2VsZW1lbnQtY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dApAQCAtMSwzMiArMSwx
NCBAQAogVGhpcyB0ZXN0cyBFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdHMgYW5kIGdldENs
aWVudFJlY3RzIHBvc2l0aW9ucyB3aGVuIHVuc2NhbGVkLCBzY2FsZWQsIGFuZCBwYW5uZWQuCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKIHVuc2NhbGVkCi1QQVNTIGNsaWVudFJlY3QubGVm
dCBpcyAxMDAKLVBBU1MgY2xpZW50UmVjdC5yaWdodCBpcyAyMDAKLVBBU1MgY2xpZW50UmVjdC50
b3AgaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QuYm90dG9tIGlzIDIwMAotUEFTUyBjbGllbnRSZWN0
LndpZHRoIGlzIDEwMAotUEFTUyBjbGllbnRSZWN0LmhlaWdodCBpcyAxMDAKLVBBU1MgY2xpZW50
UmVjdC5sZWZ0IGlzIDEwMAotUEFTUyBjbGllbnRSZWN0LnJpZ2h0IGlzIDIwMAotUEFTUyBjbGll
bnRSZWN0LnRvcCBpcyAxMDAKLVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMgMjAwCi1QQVNTIGNs
aWVudFJlY3Qud2lkdGggaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QuaGVpZ2h0IGlzIDEwMAorUEFT
UyByZWN0U3RyaW5nKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKSkgaXMgIigxMDAsMTAwIDEwMHgxMDApIgorUEFTUyByZWN0U3RyaW5ncyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuZ2V0Q2xpZW50UmVjdHMoKSkgaXMgIigxMDAsMTAw
IDEwMHgxMDApIgogCiBzY2FsZWQgYW5kIHBhbm5lZAotUEFTUyBjbGllbnRSZWN0LmxlZnQgaXMg
OTAKLVBBU1MgY2xpZW50UmVjdC5yaWdodCBpcyAxOTAKLVBBU1MgY2xpZW50UmVjdC50b3AgaXMg
OTAKLVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMgMTkwCi1QQVNTIGNsaWVudFJlY3Qud2lkdGgg
aXMgMTAwCi1QQVNTIGNsaWVudFJlY3QuaGVpZ2h0IGlzIDEwMAotUEFTUyBjbGllbnRSZWN0Lmxl
ZnQgaXMgOTAKLVBBU1MgY2xpZW50UmVjdC5yaWdodCBpcyAxOTAKLVBBU1MgY2xpZW50UmVjdC50
b3AgaXMgOTAKLVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMgMTkwCi1QQVNTIGNsaWVudFJlY3Qu
d2lkdGggaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QuaGVpZ2h0IGlzIDEwMAorUEFTUyByZWN0U3Ry
aW5nKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KSkgaXMgIig5MCw5MCAxMDB4MTAwKSIKK1BBU1MgcmVjdFN0cmluZ3MoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JveCcpLmdldENsaWVudFJlY3RzKCkpIGlzICIoOTAsOTAgMTAweDEwMCkiCisK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL2VsZW1l
bnQtY2xpZW50LXJlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qv
Y29vcmRpbmF0ZXMvZWxlbWVudC1jbGllbnQtcmVjdHMuaHRtbAppbmRleCA1YzlmZjBjMGUwZTM4
NDQwZmFjZDhmYjdhODFjNjk4NTRiMzUyOTg1Li45NzAyMDc2NTI0Y2RkNjZmZjk5YTBlZGZkMmVi
NjU5ZThmN2Y3ZmFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zh
c3QvY29vcmRpbmF0ZXMvZWxlbWVudC1jbGllbnQtcmVjdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvZWxlbWVudC1jbGllbnQtcmVjdHMu
aHRtbApAQCAtMjAsMTcgKzIwLDE5IEBAIGNvbnN0IHBhblkgPSAxMDsKIAogdmFyIGJveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKTsKIAorZGVidWcoJycpOwogZGVidWcoJ3Vuc2Nh
bGVkJyk7Ci1zZXRFeHBlY3RlZENsaWVudFJlY3RWYWx1ZXMoMTAwLCAyMDAsIDEwMCwgMjAwLCAx
MDAsIDEwMCk7Ci12ZXJpZnlDbGllbnRSZWN0KGJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7
Ci12ZXJpZnlDbGllbnRSZWN0KGJveC5nZXRDbGllbnRSZWN0cygpWzBdKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygicmVjdFN0cmluZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkpIiwgIigxMDAsMTAwIDEwMHgxMDApIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlY3RTdHJpbmdzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5n
ZXRDbGllbnRSZWN0cygpKSIsICIoMTAwLDEwMCAxMDB4MTAwKSIpOwogCiBkZWJ1ZygnJyk7CiBk
ZWJ1Zygnc2NhbGVkIGFuZCBwYW5uZWQnKTsKIHNldEluaXRpYWxTY2FsZUFuZFBhbkJ5KHNjYWxl
LCBwYW5YLCBwYW5ZKTsKLXNldEV4cGVjdGVkQ2xpZW50UmVjdFZhbHVlcygxMDAtcGFuWCwgMjAw
LXBhblgsIDEwMC1wYW5ZLCAyMDAtcGFuWSwgMTAwLCAxMDApOwotdmVyaWZ5Q2xpZW50UmVjdChi
b3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpOwotdmVyaWZ5Q2xpZW50UmVjdChib3guZ2V0Q2xp
ZW50UmVjdHMoKVswXSk7Cit2YXIgcmVjdCA9ICIoIiArICgxMDAtcGFuWCkgKyAiLCIgKyAoMTAw
LXBhblkpICsgIiAxMDB4MTAwKSI7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlY3RTdHJpbmco
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSIs
IHJlY3QpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWN0U3RyaW5ncyhkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYm94JykuZ2V0Q2xpZW50UmVjdHMoKSkiLCByZWN0KTsKKworZGVidWcoJycp
OwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIGVuZFRlc3QoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1j
bGllbnQtcmVjdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9m
YXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy1leHBlY3RlZC50eHQKaW5kZXggMzFi
YjdiNDllZTZmMDU3NzdjZjhmZjFjMzg5N2I0MDIwNzQ0ODllMi4uZTA4ZjU3N2JmZTk3ZGQwZjc4
MGM2NDAwMDlkODE1N2E2MTYwOTNmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3Jhbmdl
LWNsaWVudC1yZWN0cy1leHBlY3RlZC50eHQKQEAgLTEsNDUgKzEsMTQgQEAKIFRoaXMgdGVzdHMg
UmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0cyBhbmQgZ2V0Q2xpZW50UmVjdHMgcG9zaXRpb25z
IHdoZW4gdW5zY2FsZWQsIHNjYWxlZCwgYW5kIHBhbm5lZC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLVBBU1MgcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMgorCiB1bnNjYWxl
ZAotUEFTUyBjbGllbnRSZWN0LmxlZnQgaXMgMAotUEFTUyBjbGllbnRSZWN0LnJpZ2h0IGlzIDE1
MDAKLVBBU1MgY2xpZW50UmVjdC50b3AgaXMgMAotUEFTUyBjbGllbnRSZWN0LmJvdHRvbSBpcyAx
NTAwCi1QQVNTIGNsaWVudFJlY3Qud2lkdGggaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0LmhlaWdo
dCBpcyAxNTAwCi1QQVNTIGNsaWVudFJlY3QubGVmdCBpcyAwCi1QQVNTIGNsaWVudFJlY3Qucmln
aHQgaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyAwCi1QQVNTIGNsaWVudFJlY3QuYm90
dG9tIGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBpcyAxNTAwCi1QQVNTIGNsaWVudFJl
Y3QuaGVpZ2h0IGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC5sZWZ0IGlzIDEwMAotUEFTUyBjbGll
bnRSZWN0LnJpZ2h0IGlzIDIwMAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyAxMDAKLVBBU1MgY2xp
ZW50UmVjdC5ib3R0b20gaXMgMjAwCi1QQVNTIGNsaWVudFJlY3Qud2lkdGggaXMgMTAwCi1QQVNT
IGNsaWVudFJlY3QuaGVpZ2h0IGlzIDEwMAorUEFTUyByZWN0U3RyaW5nKGdldFNlbGVjdGlvbigp
LmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpIGlzICIoMCwwIDE1MDB4MTUw
MCkiCitQQVNTIHJlY3RTdHJpbmdzKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZ2V0Q2xp
ZW50UmVjdHMoKSkgaXMgIigxMDAsMTAwIDEwMHgxMDApICgwLDAgMTUwMHgxNTAwKSIKIAogc2Nh
bGVkIGFuZCBwYW5uZWQKLVBBU1MgY2xpZW50UmVjdC5sZWZ0IGlzIC0xMAotUEFTUyBjbGllbnRS
ZWN0LnJpZ2h0IGlzIDE0OTAKLVBBU1MgY2xpZW50UmVjdC50b3AgaXMgLTEwCi1QQVNTIGNsaWVu
dFJlY3QuYm90dG9tIGlzIDE0OTAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBpcyAxNTAwCi1QQVNT
IGNsaWVudFJlY3QuaGVpZ2h0IGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC5sZWZ0IGlzIC0xMAot
UEFTUyBjbGllbnRSZWN0LnJpZ2h0IGlzIDE0OTAKLVBBU1MgY2xpZW50UmVjdC50b3AgaXMgLTEw
Ci1QQVNTIGNsaWVudFJlY3QuYm90dG9tIGlzIDE0OTAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBp
cyAxNTAwCi1QQVNTIGNsaWVudFJlY3QuaGVpZ2h0IGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC5s
ZWZ0IGlzIDkwCi1QQVNTIGNsaWVudFJlY3QucmlnaHQgaXMgMTkwCi1QQVNTIGNsaWVudFJlY3Qu
dG9wIGlzIDkwCi1QQVNTIGNsaWVudFJlY3QuYm90dG9tIGlzIDE5MAotUEFTUyBjbGllbnRSZWN0
LndpZHRoIGlzIDEwMAotUEFTUyBjbGllbnRSZWN0LmhlaWdodCBpcyAxMDAKK1BBU1MgcmVjdFN0
cmluZyhnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
KSBpcyAiKC0xMCwtMTAgMTUwMHgxNTAwKSIKK1BBU1MgcmVjdFN0cmluZ3MoZ2V0U2VsZWN0aW9u
KCkuZ2V0UmFuZ2VBdCgwKS5nZXRDbGllbnRSZWN0cygpKSBpcyAiKDkwLDkwIDEwMHgxMDApICgt
MTAsLTEwIDE1MDB4MTUwMCkiCisKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9m
YXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy5odG1sCmlu
ZGV4IDJlZWQzNjRmZDkzZTcxNmRkOGUwZjAyNDJkYjgzZWVlMTBiZTkxODMuLmUyMzM2M2VkMDdm
MGI0NDAzMWY3MWM4NDk2YmQ5N2Y1YjhjMDE4ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1jbGllbnQtcmVjdHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2Ut
Y2xpZW50LXJlY3RzLmh0bWwKQEAgLTMxLDI0ICszMSwyMSBAQCBzZXREaXNwbGF5T25EZXNjcmlw
dGlvbkFuZENvbnNvbGUoJ25vbmUnKTsKIC8vIHBvc2l0aW9uZWQgYWJzb2x1dGVseSBpbnNpZGUg
aXQuIFRoZSBmaXJzdCBjbGllbnQgcmVjdCBvZiB0aGUKIC8vIFJhbmdlIGlzIHRoZSBib3guCiBk
b2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7Ci12YXIgcmFuZ2UgPSB3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKTsKLXNob3VsZEJlKCdyYW5nZS5nZXRDbGllbnRSZWN0
cygpLmxlbmd0aCcsICcyJyk7CiAKK2RlYnVnKCcnKTsKIGRlYnVnKCd1bnNjYWxlZCcpOwotc2V0
RXhwZWN0ZWRDbGllbnRSZWN0VmFsdWVzKDAsIDE1MDAsIDAsIDE1MDAsIDE1MDAsIDE1MDApOwot
dmVyaWZ5Q2xpZW50UmVjdChyYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7Ci12ZXJpZnlD
bGllbnRSZWN0KHJhbmdlLmdldENsaWVudFJlY3RzKClbMV0pOwotc2V0RXhwZWN0ZWRDbGllbnRS
ZWN0VmFsdWVzKDEwMCwgMjAwLCAxMDAsIDIwMCwgMTAwLCAxMDApOwotdmVyaWZ5Q2xpZW50UmVj
dChyYW5nZS5nZXRDbGllbnRSZWN0cygpWzBdKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVj
dFN0cmluZyhnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpKSIsICIoMCwwIDE1MDB4MTUwMCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVjdFN0
cmluZ3MoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5nZXRDbGllbnRSZWN0cygpKSIsICIo
MTAwLDEwMCAxMDB4MTAwKSAoMCwwIDE1MDB4MTUwMCkiKTsKIAogZGVidWcoJycpOwogZGVidWco
J3NjYWxlZCBhbmQgcGFubmVkJyk7CiBzZXRJbml0aWFsU2NhbGVBbmRQYW5CeShzY2FsZSwgcGFu
WCwgcGFuWSk7Ci1zZXRFeHBlY3RlZENsaWVudFJlY3RWYWx1ZXMoMC1wYW5YLCAxNTAwLXBhblgs
IDAtcGFuWSwgMTUwMC1wYW5ZLCAxNTAwLCAxNTAwKTsKLXZlcmlmeUNsaWVudFJlY3QocmFuZ2Uu
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpOwotdmVyaWZ5Q2xpZW50UmVjdChyYW5nZS5nZXRDbGll
bnRSZWN0cygpWzFdKTsKLXNldEV4cGVjdGVkQ2xpZW50UmVjdFZhbHVlcygxMDAtcGFuWCwgMjAw
LXBhblgsIDEwMC1wYW5ZLCAyMDAtcGFuWSwgMTAwLCAxMDApOwotdmVyaWZ5Q2xpZW50UmVjdChy
YW5nZS5nZXRDbGllbnRSZWN0cygpWzBdKTsKK3ZhciBmaXJzdFJlY3QgPSAiKCIgKyAoMC1wYW5Y
KSArICIsIiArICgwLXBhblgpICsgIiAxNTAweDE1MDApIjsKK3ZhciBzZWNvbmRSZWN0ID0gIigi
ICsgKDEwMC1wYW5YKSArICIsIiArICgxMDAtcGFuWCkgKyAiIDEwMHgxMDApIjsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygicmVjdFN0cmluZyhnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpKSIsIGZpcnN0UmVjdCk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlY3RTdHJpbmdzKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZ2V0Q2xpZW50UmVj
dHMoKSkiLCBzZWNvbmRSZWN0ICsgIiAiICsgZmlyc3RSZWN0KTsKKworZGVidWcoJycpOwogCiBz
ZXREaXNwbGF5T25EZXNjcmlwdGlvbkFuZENvbnNvbGUoJ2Jsb2NrJyk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yZXNvdXJjZXMv
aGVscGVycy5qcyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRl
cy9yZXNvdXJjZXMvaGVscGVycy5qcwppbmRleCBkMWI5Njk1N2I1OGYxNTM1ZTkxMGQ0NDZmMzZk
ZGIwOTkxNjUzMTU1Li4zMDQ1NjUyNDU0NWNiZjIzZmZlZWNiZjc5OTVmZDJkZGM1Y2FmMmQxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMv
cmVzb3VyY2VzL2hlbHBlcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9m
YXN0L2Nvb3JkaW5hdGVzL3Jlc291cmNlcy9oZWxwZXJzLmpzCkBAIC0xOSwyNSArMTksMjEgQEAg
ZnVuY3Rpb24gdmVyaWZ5Q29vcmRpbmF0ZXMobykgewogCiAvLyBUbyB2ZXJpZnkgY2xpZW50IHJl
Y3QgcG9zaXRpb25zLgogCi12YXIgZXhwZWN0ZWRMZWZ0LCBleHBlY3RlZFJpZ2h0LCBleHBlY3Rl
ZFRvcCwgZXhwZWN0ZWRCb3R0b20sIGV4cGVjdGVkV2lkdGgsIGV4cGVjdGVkSGVpZ2h0OwotZnVu
Y3Rpb24gc2V0RXhwZWN0ZWRDbGllbnRSZWN0VmFsdWVzKGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRv
bSwgd2lkdGgsIGhlaWdodCkgewotICAgIGV4cGVjdGVkTGVmdCA9IGxlZnQ7Ci0gICAgZXhwZWN0
ZWRSaWdodCA9IHJpZ2h0OwotICAgIGV4cGVjdGVkVG9wID0gdG9wOwotICAgIGV4cGVjdGVkQm90
dG9tID0gYm90dG9tOwotICAgIGV4cGVjdGVkV2lkdGggPSB3aWR0aDsKLSAgICBleHBlY3RlZEhl
aWdodCA9IHdpZHRoOworZnVuY3Rpb24gcmVjdFN0cmluZyhyZWN0KQoreworICAgIHJldHVybiAi
KCIgKyByZWN0LnggKyAiLCIgKyByZWN0LnkgKyAiICIgKyByZWN0LndpZHRoICsgIngiICsgcmVj
dC5oZWlnaHQgKyAiKSI7CiB9CiAKLXZhciBjbGllbnRSZWN0OwotZnVuY3Rpb24gdmVyaWZ5Q2xp
ZW50UmVjdChvKSB7Ci0gICAgY2xpZW50UmVjdCA9IG87Ci0gICAgc2hvdWxkQmUoJ2NsaWVudFJl
Y3QubGVmdCcsIGV4cGVjdGVkTGVmdC50b1N0cmluZygpKTsKLSAgICBzaG91bGRCZSgnY2xpZW50
UmVjdC5yaWdodCcsIGV4cGVjdGVkUmlnaHQudG9TdHJpbmcoKSk7Ci0gICAgc2hvdWxkQmUoJ2Ns
aWVudFJlY3QudG9wJywgZXhwZWN0ZWRUb3AudG9TdHJpbmcoKSk7Ci0gICAgc2hvdWxkQmUoJ2Ns
aWVudFJlY3QuYm90dG9tJywgZXhwZWN0ZWRCb3R0b20udG9TdHJpbmcoKSk7Ci0gICAgc2hvdWxk
QmUoJ2NsaWVudFJlY3Qud2lkdGgnLCBleHBlY3RlZFdpZHRoLnRvU3RyaW5nKCkpOwotICAgIHNo
b3VsZEJlKCdjbGllbnRSZWN0LmhlaWdodCcsIGV4cGVjdGVkSGVpZ2h0LnRvU3RyaW5nKCkpOwor
ZnVuY3Rpb24gcmVjdFN0cmluZ3MocmVjdExpc3QpCit7CisgICAgdmFyIHRleHQgPSAiIjsKKyAg
ICB2YXIgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgcmVjdExpc3QubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgaWYgKGkgIT0gMCkKKyAgICAgICAgICAgIHRleHQgKz0gIiAiOworICAgICAgICB0ZXh0
ICs9IHJlY3RTdHJpbmcocmVjdExpc3RbaV0pOworICAgIH0KKyAgICByZXR1cm4gdGV4dDsKIH0K
IAogLy8gVG8gdmVyaWZ5IHBhZ2Ugc2Nyb2xsIG9mZnNldHMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407159</attachid>
            <date>2020-08-24 18:58:22 -0700</date>
            <delta_ts>2020-08-24 19:54:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215772-20200824185821.patch</filename>
            <type>text/plain</type>
            <size>20556</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMwZTMwOTFmMmNkZTg5
NTUxOWM2Y2FhMGZjMTdmMmRlNmJiNWIyYS4uMDZkNjBmMGVhNGU4NGIxZjU5NWI2MmY1MzM0NTg5
ZDc2MmMwZjMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA4LTI0ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2MDI4
KTogcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy5o
dG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU3
NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRv
bS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Z2V0Q2xpZW50UmVjdHMgY29u
c3QpOiBDYWxsIHVwZGF0ZUxheW91dCBzaW5jZSBpdCdzIG5vdCBzYWZlCisgICAgICAgIHRvIHN0
YXJ0IHdvcmtpbmcgd2l0aCB0aGUgcmVuZGVyIHRyZWUgd2l0aG91dCB1cGRhdGluZyBpdCBmaXJz
dC4gTm90IHJlcXVpcmVkCisgICAgICAgIHRvIGZpeCB0aGlzIGJ1ZywgYnV0IGFuIG9idmlvdXMg
b21pc3Npb24uIElkZWFsbHkgc2hvdWxkIG1ha2UgYSB0ZXN0IHRvIHNob3cKKyAgICAgICAgdGhp
cyBpcyBuZWVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRS
ZWN0IGNvbnN0KTogRGl0dG8uCisKKyAgICAgICAgKiBkb20vU2ltcGxlUmFuZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZG9jdW1lbnRPcmRlcik6IFJlbW92ZWQgYm9ndXMgc3BlY2lhbCBjYXNl
LiBUZXN0IGNhc2UgcHJvdmluZyB0aGlzIGlzCisgICAgICAgIHdyb25nIGlzIGNvbWluZyBpbiB0
aGUgbmV4dCBkb2N1bWVudE9yZGVyLXJlbGF0ZWQgcGF0Y2guIE5vdCBuZWVkZWQgdG8gZml4IHRo
aXMKKyAgICAgICAgYnVnLCBidXQgc2VlbXMgZGFuZ2Vyb3VzIHRvIGxlYXZlIHRoaXMgaW4gdGhl
IHRyZWUgdGhlIHdheSBpdCB3YXMuCisgICAgICAgIChXZWJDb3JlOjpmaXJzdEludGVyc2VjdGlu
Z05vZGVXaXRoRGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJrKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnRlcnNlY3RpbmdOb2RlSXRlcmF0b3I6OkludGVyc2VjdGluZ05vZGVJdGVy
YXRvcik6IEFkZGVkLgorCisgICAgICAgICogZG9tL1NpbXBsZVJhbmdlLmg6IEFkZGVkIGludGVy
c2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyay4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Ym9yZGVy
QW5kVGV4dFJlY3RzKTogVXNlIGludGVyc2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zm
c2V0U3RhcnRRdWlyaworICAgICAgICBiZWNhdXNlIHRoaXMgbmVlZHMgdG8gZ2V0IHRoZSBzZXQg
b2Ygbm9kZXMgaW4gYSB3YXkgdGhhdCB3b3JrcyBmb3Igb3VyIGluY29ycmVjdGx5CisgICAgICAg
IGZvcm1lZCBzZWxlY3Rpb24gcmFuZ2VzIGFuZCBpbmNsdWRlcyB0aGUgZmlyc3QgZWxlbWVudCBl
dmVuIHdoZW4gdGhlIHJhbmdlIHRlY2huaWNhbGx5CisgICAgICAgIHN0YXJ0cyBpbnNpZGUgdGhh
dCBlbGVtZW50LiBXZSBuZWVkIHRvIGZpeCB0aG9zZSwgYnV0IHRoYXQncyBhIGJpZyBwcm9qZWN0
IHRoYXQgYWZmZWN0cworICAgICAgICBhIGxvdCBvZiBlZGl0aW5nIGNvZGUuIEZvciBub3csIHJl
c3RvcmluZyB0aGUgb2xkIHF1aXJrIGlzIGV4cGVkaWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6Y29sbGVjdFNlbGVjdGlvblJlY3RzSW50ZXJuYWwpOiBEaXR0by4KKwogMjAy
MC0wOC0yNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIEltcGxlbWVudCBSZXF1ZXN0L1Jlc3BvbnNlIGNvbnN1bWluZyBhcyBGb3JtRGF0YQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SYW5nZS5jcHAKaW5kZXggMDVjYjlmMjgwYzRlODlhZTM2N2Q4NDcxNzRlM2NmNTgyNGQw
M2UyNy4uOGY2ZmQzYmM4YWJhNWFmYTQ1OGM5MzZmMmVlM2NjNzQwODRkYmMyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuY3BwCkBAIC0xMzU4LDExICsxMzU4LDEzIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJhbmdl
OjpleHBhbmQoY29uc3QgU3RyaW5nJiB1bml0KQogCiBSZWY8RE9NUmVjdExpc3Q+IFJhbmdlOjpn
ZXRDbGllbnRSZWN0cygpIGNvbnN0CiB7CisgICAgc3RhcnRDb250YWluZXIoKS5kb2N1bWVudCgp
LnVwZGF0ZUxheW91dCgpOwogICAgIHJldHVybiBET01SZWN0TGlzdDo6Y3JlYXRlKFJlbmRlck9i
amVjdDo6Y2xpZW50Qm9yZGVyQW5kVGV4dFJlY3RzKG1ha2VTaW1wbGVSYW5nZSgqdGhpcykpKTsK
IH0KIAogUmVmPERPTVJlY3Q+IFJhbmdlOjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBjb25zdAog
eworICAgIHN0YXJ0Q29udGFpbmVyKCkuZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKICAgICBy
ZXR1cm4gRE9NUmVjdDo6Y3JlYXRlKHVuaW9uUmVjdElnbm9yaW5nWmVyb1JlY3RzKFJlbmRlck9i
amVjdDo6Y2xpZW50Qm9yZGVyQW5kVGV4dFJlY3RzKG1ha2VTaW1wbGVSYW5nZSgqdGhpcykpKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW1wbGVSYW5nZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2ltcGxlUmFuZ2UuY3BwCmluZGV4IGQ3ZTQ3MjZhOGNiMWQ0ZGQy
Zjk1Yzc0Mzg5MzU3MzcxODZmZmQ1ZmQuLmI2MWE2MGExMGU1MTIxZDhiMDJlYmRhY2NhMDQyNDU4
NzExOTQzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW1wbGVSYW5nZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXBsZVJhbmdlLmNwcApAQCAtODMsOSArODMsNiBA
QCBzdGF0aWMgYm9vbCBpc09mZnNldEJlZm9yZUNoaWxkKENvbnRhaW5lck5vZGUmIGNvbnRhaW5l
ciwgdW5zaWduZWQgb2Zmc2V0LCBOb2RlJgogLy8gRklYTUU6IENyZWF0ZSBCb3VuZGFyeVBvaW50
LmNwcCBhbmQgbW92ZSB0aGlzIHRoZXJlLgogUGFydGlhbE9yZGVyaW5nIGRvY3VtZW50T3JkZXIo
Y29uc3QgQm91bmRhcnlQb2ludCYgYSwgY29uc3QgQm91bmRhcnlQb2ludCYgYikKIHsKLSAgICBp
ZiAoYS5vZmZzZXQgPT0gYi5vZmZzZXQpCi0gICAgICAgIHJldHVybiBkb2N1bWVudE9yZGVyKGEu
Y29udGFpbmVyLCBiLmNvbnRhaW5lcik7Ci0KICAgICBpZiAoYS5jb250YWluZXIucHRyKCkgPT0g
Yi5jb250YWluZXIucHRyKCkpCiAgICAgICAgIHJldHVybiBhLm9mZnNldCA8IGIub2Zmc2V0ID8g
UGFydGlhbE9yZGVyaW5nOjpsZXNzIDogUGFydGlhbE9yZGVyaW5nOjpncmVhdGVyOwogCkBAIC0x
NDQsNiArMTQxLDE3IEBAIHN0YXRpYyBSZWZQdHI8Tm9kZT4gbm9kZVBhc3RMYXN0SW50ZXJzZWN0
aW5nTm9kZShjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCiAgICAgcmV0dXJuIE5vZGVUcmF2ZXJz
YWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKHJhbmdlLmVuZC5jb250YWluZXIpOwogfQogCitzdGF0
aWMgUmVmUHRyPE5vZGU+IGZpcnN0SW50ZXJzZWN0aW5nTm9kZVdpdGhEZXByZWNhdGVkWmVyb09m
ZnNldFN0YXJ0UXVpcmsoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChyYW5n
ZS5zdGFydC5jb250YWluZXItPmlzQ2hhcmFjdGVyRGF0YU5vZGUoKSkKKyAgICAgICAgcmV0dXJu
IHJhbmdlLnN0YXJ0LmNvbnRhaW5lci5wdHIoKTsKKyAgICBpZiAoYXV0byBjaGlsZCA9IHJhbmdl
LnN0YXJ0LmNvbnRhaW5lci0+dHJhdmVyc2VUb0NoaWxkQXQocmFuZ2Uuc3RhcnQub2Zmc2V0KSkK
KyAgICAgICAgcmV0dXJuIGNoaWxkOworICAgIGlmICghcmFuZ2Uuc3RhcnQub2Zmc2V0KQorICAg
ICAgICByZXR1cm4gcmFuZ2Uuc3RhcnQuY29udGFpbmVyLnB0cigpOworICAgIHJldHVybiBOb2Rl
VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbihyYW5nZS5zdGFydC5jb250YWluZXIpOwor
fQorCiBJbnRlcnNlY3RpbmdOb2RlSXRlcmF0b3I6OkludGVyc2VjdGluZ05vZGVJdGVyYXRvcihj
b25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCiAgICAgOiBtX25vZGUoZmlyc3RJbnRlcnNlY3RpbmdO
b2RlKHJhbmdlKSkKICAgICAsIG1fcGFzdExhc3ROb2RlKG5vZGVQYXN0TGFzdEludGVyc2VjdGlu
Z05vZGUocmFuZ2UpKQpAQCAtMTUxLDYgKzE1OSwxMyBAQCBJbnRlcnNlY3RpbmdOb2RlSXRlcmF0
b3I6OkludGVyc2VjdGluZ05vZGVJdGVyYXRvcihjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCiAg
ICAgZW5mb3JjZUVuZEludmFyaWFudCgpOwogfQogCitJbnRlcnNlY3RpbmdOb2RlSXRlcmF0b3I6
OkludGVyc2VjdGluZ05vZGVJdGVyYXRvcihjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UsIFF1aXJr
RmxhZykKKyAgICA6IG1fbm9kZShmaXJzdEludGVyc2VjdGluZ05vZGVXaXRoRGVwcmVjYXRlZFpl
cm9PZmZzZXRTdGFydFF1aXJrKHJhbmdlKSkKKyAgICAsIG1fcGFzdExhc3ROb2RlKG5vZGVQYXN0
TGFzdEludGVyc2VjdGluZ05vZGUocmFuZ2UpKQoreworICAgIGVuZm9yY2VFbmRJbnZhcmlhbnQo
KTsKK30KKwogdm9pZCBJbnRlcnNlY3RpbmdOb2RlSXRlcmF0b3I6OmFkdmFuY2UoKQogewogICAg
IEFTU0VSVChtX25vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXBsZVJh
bmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltcGxlUmFuZ2UuaAppbmRleCAyOTA0YzM3ZWE4
YjUyYWJmNmI0MmI3NmQ1M2ViNGE3ZmRiNWU4NzcwLi4wZDVjZDFlYWIyYTc3MWViNjcyNjVkZDYz
MDI0NTM0MTEyN2ZjNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltcGxlUmFu
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltcGxlUmFuZ2UuaApAQCAtNjgsNiArNjgs
OSBAQCBib29sIG9wZXJhdG9yPT0oY29uc3QgU2ltcGxlUmFuZ2UmLCBjb25zdCBTaW1wbGVSYW5n
ZSYpOwogY2xhc3MgSW50ZXJzZWN0aW5nTm9kZVJhbmdlOwogSW50ZXJzZWN0aW5nTm9kZVJhbmdl
IGludGVyc2VjdGluZ05vZGVzKGNvbnN0IFNpbXBsZVJhbmdlJik7CiAKK2NsYXNzIEludGVyc2Vj
dGluZ05vZGVSYW5nZVdpdGhRdWlyazsKK0ludGVyc2VjdGluZ05vZGVSYW5nZVdpdGhRdWlyayBp
bnRlcnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNhdGVkWmVyb09mZnNldFN0YXJ0UXVpcmsoY29uc3Qg
U2ltcGxlUmFuZ2UmKTsKKwogc3RydWN0IE9mZnNldFJhbmdlIHsKICAgICB1bnNpZ25lZCBzdGFy
dCB7IDAgfTsKICAgICB1bnNpZ25lZCBlbmQgeyAwIH07CkBAIC03OCw2ICs4MSw5IEBAIGNsYXNz
IEludGVyc2VjdGluZ05vZGVJdGVyYXRvciA6IHB1YmxpYyBzdGQ6Oml0ZXJhdG9yPHN0ZDo6Zm9y
d2FyZF9pdGVyYXRvcl90YWcsCiBwdWJsaWM6CiAgICAgSW50ZXJzZWN0aW5nTm9kZUl0ZXJhdG9y
KGNvbnN0IFNpbXBsZVJhbmdlJik7CiAKKyAgICBlbnVtIFF1aXJrRmxhZyB7IERlcHJlY2F0ZWRa
ZXJvT2Zmc2V0U3RhcnRRdWlyayB9OworICAgIEludGVyc2VjdGluZ05vZGVJdGVyYXRvcihjb25z
dCBTaW1wbGVSYW5nZSYsIFF1aXJrRmxhZyk7CisKICAgICBOb2RlJiBvcGVyYXRvciooKSBjb25z
dCB7IHJldHVybiAqbV9ub2RlOyB9CiAgICAgTm9kZSogb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNT
RVJUKG1fbm9kZSk7IHJldHVybiBtX25vZGUuZ2V0KCk7IH0KIApAQCAtMTA3LDE2ICsxMTMsMzcg
QEAgcHJpdmF0ZToKICAgICBTaW1wbGVSYW5nZSBtX3JhbmdlOwogfTsKIAorY2xhc3MgSW50ZXJz
ZWN0aW5nTm9kZVJhbmdlV2l0aFF1aXJrIHsKK3B1YmxpYzoKKyAgICBJbnRlcnNlY3RpbmdOb2Rl
UmFuZ2VXaXRoUXVpcmsoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKworICAgIEludGVyc2VjdGluZ05v
ZGVJdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIHsgbV9yYW5nZSwgSW50ZXJzZWN0aW5n
Tm9kZUl0ZXJhdG9yOjpEZXByZWNhdGVkWmVyb09mZnNldFN0YXJ0UXVpcmsgfTsgfQorICAgIHN0
YXRpYyBjb25zdGV4cHIgc3RkOjpudWxscHRyX3QgZW5kKCkgeyByZXR1cm4gbnVsbHB0cjsgfQor
Citwcml2YXRlOgorICAgIFNpbXBsZVJhbmdlIG1fcmFuZ2U7Cit9OworCiBpbmxpbmUgSW50ZXJz
ZWN0aW5nTm9kZVJhbmdlOjpJbnRlcnNlY3RpbmdOb2RlUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2Um
IHJhbmdlKQogICAgIDogbV9yYW5nZShyYW5nZSkKIHsKIH0KIAoraW5saW5lIEludGVyc2VjdGlu
Z05vZGVSYW5nZVdpdGhRdWlyazo6SW50ZXJzZWN0aW5nTm9kZVJhbmdlV2l0aFF1aXJrKGNvbnN0
IFNpbXBsZVJhbmdlJiByYW5nZSkKKyAgICA6IG1fcmFuZ2UocmFuZ2UpCit7Cit9CisKIGlubGlu
ZSBJbnRlcnNlY3RpbmdOb2RlUmFuZ2UgaW50ZXJzZWN0aW5nTm9kZXMoY29uc3QgU2ltcGxlUmFu
Z2UmIHJhbmdlKQogewogICAgIHJldHVybiB7IHJhbmdlIH07CiB9CiAKK2lubGluZSBJbnRlcnNl
Y3RpbmdOb2RlUmFuZ2VXaXRoUXVpcmsgaW50ZXJzZWN0aW5nTm9kZXNXaXRoRGVwcmVjYXRlZFpl
cm9PZmZzZXRTdGFydFF1aXJrKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkKK3sKKyAgICByZXR1
cm4geyByYW5nZSB9OworfQorCiBpbmxpbmUgU2ltcGxlUmFuZ2UgbWFrZVNpbXBsZVJhbmdlSGVs
cGVyKEJvdW5kYXJ5UG9pbnQmJiBzdGFydCwgQm91bmRhcnlQb2ludCYmIGVuZCkKIHsKICAgICBy
ZXR1cm4geyBXVEZNb3ZlKHN0YXJ0KSwgV1RGTW92ZShlbmQpIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDQzYWMxNjliOTM0YjBlNzY4ZjI1MmYxZTRh
MzdhMTgwMzc3Mzc4NWYuLmI2ZWExNTUzMDc5NzdkOWU1N2QyNGE4MDdlMGYyNjcyOGU5Y2VkYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xOTgwLDcg
KzE5ODAsNyBAQCBzdGF0aWMgVmVjdG9yPEZsb2F0UmVjdD4gYm9yZGVyQW5kVGV4dFJlY3RzKGNv
bnN0IFNpbXBsZVJhbmdlJiByYW5nZSwgQ29vcmRpbmF0ZQogICAgIGJvb2wgdXNlVmlzaWJsZUJv
dW5kcyA9IGJlaGF2aW9yLmNvbnRhaW5zKFJlbmRlck9iamVjdDo6Qm91bmRpbmdSZWN0QmVoYXZp
b3I6OlVzZVZpc2libGVCb3VuZHMpOwogCiAgICAgSGFzaFNldDxFbGVtZW50Kj4gc2VsZWN0ZWRF
bGVtZW50c1NldDsKLSAgICBmb3IgKGF1dG8mIG5vZGUgOiBpbnRlcnNlY3RpbmdOb2RlcyhyYW5n
ZSkpIHsKKyAgICBmb3IgKGF1dG8mIG5vZGUgOiBpbnRlcnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNh
dGVkWmVyb09mZnNldFN0YXJ0UXVpcmsocmFuZ2UpKSB7CiAgICAgICAgIGlmIChpczxFbGVtZW50
Pihub2RlKSkKICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudHNTZXQuYWRkKCZkb3duY2FzdDxF
bGVtZW50Pihub2RlKSk7CiAgICAgfQpAQCAtMTk5OCw3ICsxOTk4LDcgQEAgc3RhdGljIFZlY3Rv
cjxGbG9hdFJlY3Q+IGJvcmRlckFuZFRleHRSZWN0cyhjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2Us
IENvb3JkaW5hdGUKICAgICAgICAgUmVuZGVyT2JqZWN0OjpWaXNpYmxlUmVjdENvbnRleHRPcHRp
b246OkFwcGx5Q29tcG9zaXRlZENvbnRhaW5lclNjcm9sbHMKICAgICB9OwogCi0gICAgZm9yIChh
dXRvJiBub2RlIDogaW50ZXJzZWN0aW5nTm9kZXMocmFuZ2UpKSB7CisgICAgZm9yIChhdXRvJiBu
b2RlIDogaW50ZXJzZWN0aW5nTm9kZXNXaXRoRGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJr
KHJhbmdlKSkgewogICAgICAgICBpZiAoaXM8RWxlbWVudD4obm9kZSkgJiYgc2VsZWN0ZWRFbGVt
ZW50c1NldC5jb250YWlucygmZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpICYmICh1c2VWaXNpYmxl
Qm91bmRzIHx8ICFub2RlLnBhcmVudEVsZW1lbnQoKSB8fCAhc2VsZWN0ZWRFbGVtZW50c1NldC5j
b250YWlucyhub2RlLnBhcmVudEVsZW1lbnQoKSkpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byBy
ZW5kZXJlciA9IGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpLnJlbmRlckJveE1vZGVsT2JqZWN0KCkp
IHsKICAgICAgICAgICAgICAgICBpZiAodXNlVmlzaWJsZUJvdW5kcykgewpAQCAtMjEwNCw3ICsy
MTA0LDcgQEAgYXV0byBSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxlY3Rpb25SZWN0c0ludGVybmFs
KGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkgLT4gU2UKICAgICBWZWN0b3I8U2VsZWN0aW9uUmVj
dD4gbmV3UmVjdHM7CiAgICAgYm9vbCBoYXNGbGlwcGVkV3JpdGluZ01vZGUgPSByYW5nZS5zdGFy
dC5jb250YWluZXItPnJlbmRlcmVyKCkgJiYgcmFuZ2Uuc3RhcnQuY29udGFpbmVyLT5yZW5kZXJl
cigpLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCk7CiAgICAgYm9vbCBjb250
YWluc0RpZmZlcmVudFdyaXRpbmdNb2RlcyA9IGZhbHNlOwotICAgIGZvciAoYXV0byYgbm9kZSA6
IGludGVyc2VjdGluZ05vZGVzKHJhbmdlKSkgeworICAgIGZvciAoYXV0byYgbm9kZSA6IGludGVy
c2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyayhyYW5nZSkpIHsK
ICAgICAgICAgYXV0byByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKICAgICAgICAgLy8gT25s
eSBhc2sgbGVhZiByZW5kZXIgb2JqZWN0cyBmb3IgdGhlaXIgbGluZSBib3ggcmVjdHMuCiAgICAg
ICAgIGlmIChyZW5kZXJlciAmJiAhcmVuZGVyZXItPmZpcnN0Q2hpbGRTbG93KCkgJiYgcmVuZGVy
ZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9IFVzZXJTZWxlY3Q6Ok5vbmUpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAz
ZWM3MWU5ZWIwZmQ3ODlmZmRjNGNiNTYyNTFkZTlhYzIxM2YyMThmLi4xYTczZGQwYTljMGFmMTkw
MTk4MmI3NWEzZWU0ZjFlZWY2Y2QxNTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDgt
MjQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNjYwMjgpOiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50
LXJlY3RzLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNTc3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOiBSZW1vdmVkIGZhaWx1cmUg
ZXhwZWN0YXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0
ZXMvZWxlbWVudC1jbGllbnQtcmVjdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9lbGVtZW50LWNsaWVudC1yZWN0cy5odG1sOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1jbGllbnQtcmVj
dHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGlu
YXRlcy9yYW5nZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAgICAgQ2hhbmdlZCB0ZXN0cyBzbyBp
dCdzIGVhc2llciB0byByZWFkIHRoZWlyIHJlc3VsdHMgYnkgcHV0dGluZyByZWN0YW5nbGVzIGFu
ZAorICAgICAgICByZWN0YW5nbGUgbGlzdHMgaW50byBzdHJpbmdzIGluc3RlYWQgb2YgY29tcGFy
aW5nIG9uZSB2YWx1ZSBwZXIgbGluZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFz
dC9jb29yZGluYXRlcy9yZXNvdXJjZXMvaGVscGVycy5qczoKKyAgICAgICAgKHJlY3RTdHJpbmcp
OiBBZGRlZC4KKyAgICAgICAgKHJlY3RTdHJpbmdzKTogQWRkZWQuCisgICAgICAgIChzZXRFeHBl
Y3RlZENsaWVudFJlY3RWYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAodmVyaWZ5Q2xpZW50UmVj
dCk6IERlbGV0ZWQuCisKIDIwMjAtMDgtMjQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1MgQmlnIFN1cl0gc3ZnL1czQy1JMThOL3RzcGFu
LWRpcmVjdGlvbi1ydGwuc3ZnIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhZmU3YmJlOTNkZTZhMmUxYTAyNTY1ZDRiOGY4
ZjVhZDViMTQ0YjdmLi5mMDIwNmU4NGEwZGRkN2IzMzU0MGZhMTQ2YmZiZjQ1M2M2YmMzYWZiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
ODYzLDggKzE4NjMsNiBAQCB3ZWJraXQub3JnL2IvMjE1NzA2IFsgRGVidWcgXSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcgogCiB3ZWJraXQub3JnL2Iv
MjE1NzczIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLTIuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMTU3NzIgcGxhdGZvcm0vaW9zL2lv
cy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy5odG1sIFsgRmFpbHVyZSBdCi0K
IHdlYmtpdC5vcmcvYi8yMTU3ODMgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmlu
Zy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUtcHJlcGFyZS1pZnJhbWUtZmV0Y2gtZXJyb3ItZXh0
ZXJuYWwtbW9kdWxlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjA5NDYx
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtaXRlbXMv
Z3JpZC1pdGVtLWR5bmFtaWMtbWluLWNvbnRyaWJ1dGlvbi0wMDEuaHRtbCBbIEZhaWx1cmUgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVz
L2VsZW1lbnQtY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9lbGVtZW50LWNsaWVudC1yZWN0cy1leHBlY3RlZC50
eHQKaW5kZXggYTY2ODVlYmVhNWY0MDgxZWZkNzRkOWEyYzM3NTY2NWMxNjIyYzg0Yi4uYTYyMDJk
MDk0ODMxMmQ4Mzc3ZDdjY2RmMDlmYzJkNmUxOGEzMGUzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL2VsZW1lbnQtY2xpZW50LXJlY3Rz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29v
cmRpbmF0ZXMvZWxlbWVudC1jbGllbnQtcmVjdHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMyICsxLDE0
IEBACiBUaGlzIHRlc3RzIEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0cyBhbmQgZ2V0Q2xp
ZW50UmVjdHMgcG9zaXRpb25zIHdoZW4gdW5zY2FsZWQsIHNjYWxlZCwgYW5kIHBhbm5lZC4KIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwogdW5zY2FsZWQKLVBBU1MgY2xpZW50UmVjdC5sZWZ0
IGlzIDEwMAotUEFTUyBjbGllbnRSZWN0LnJpZ2h0IGlzIDIwMAotUEFTUyBjbGllbnRSZWN0LnRv
cCBpcyAxMDAKLVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMgMjAwCi1QQVNTIGNsaWVudFJlY3Qu
d2lkdGggaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QuaGVpZ2h0IGlzIDEwMAotUEFTUyBjbGllbnRS
ZWN0LmxlZnQgaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QucmlnaHQgaXMgMjAwCi1QQVNTIGNsaWVu
dFJlY3QudG9wIGlzIDEwMAotUEFTUyBjbGllbnRSZWN0LmJvdHRvbSBpcyAyMDAKLVBBU1MgY2xp
ZW50UmVjdC53aWR0aCBpcyAxMDAKLVBBU1MgY2xpZW50UmVjdC5oZWlnaHQgaXMgMTAwCitQQVNT
IHJlY3RTdHJpbmcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpKSBpcyAiKDEwMCwxMDAgMTAweDEwMCkiCitQQVNTIHJlY3RTdHJpbmdzKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5nZXRDbGllbnRSZWN0cygpKSBpcyAiKDEwMCwxMDAg
MTAweDEwMCkiCiAKIHNjYWxlZCBhbmQgcGFubmVkCi1QQVNTIGNsaWVudFJlY3QubGVmdCBpcyA5
MAotUEFTUyBjbGllbnRSZWN0LnJpZ2h0IGlzIDE5MAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyA5
MAotUEFTUyBjbGllbnRSZWN0LmJvdHRvbSBpcyAxOTAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBp
cyAxMDAKLVBBU1MgY2xpZW50UmVjdC5oZWlnaHQgaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QubGVm
dCBpcyA5MAotUEFTUyBjbGllbnRSZWN0LnJpZ2h0IGlzIDE5MAotUEFTUyBjbGllbnRSZWN0LnRv
cCBpcyA5MAotUEFTUyBjbGllbnRSZWN0LmJvdHRvbSBpcyAxOTAKLVBBU1MgY2xpZW50UmVjdC53
aWR0aCBpcyAxMDAKLVBBU1MgY2xpZW50UmVjdC5oZWlnaHQgaXMgMTAwCitQQVNTIHJlY3RTdHJp
bmcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
KSBpcyAiKDkwLDkwIDEwMHgxMDApIgorUEFTUyByZWN0U3RyaW5ncyhkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYm94JykuZ2V0Q2xpZW50UmVjdHMoKSkgaXMgIig5MCw5MCAxMDB4MTAwKSIKKwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvZWxlbWVu
dC1jbGllbnQtcmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9j
b29yZGluYXRlcy9lbGVtZW50LWNsaWVudC1yZWN0cy5odG1sCmluZGV4IDVjOWZmMGMwZTBlMzg0
NDBmYWNkOGZiN2E4MWM2OTg1NGIzNTI5ODUuLjk3MDIwNzY1MjRjZGQ2NmZmOTlhMGVkZmQyZWI2
NTllOGY3ZjdmYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFz
dC9jb29yZGluYXRlcy9lbGVtZW50LWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9lbGVtZW50LWNsaWVudC1yZWN0cy5o
dG1sCkBAIC0yMCwxNyArMjAsMTkgQEAgY29uc3QgcGFuWSA9IDEwOwogCiB2YXIgYm94ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpOwogCitkZWJ1ZygnJyk7CiBkZWJ1ZygndW5zY2Fs
ZWQnKTsKLXNldEV4cGVjdGVkQ2xpZW50UmVjdFZhbHVlcygxMDAsIDIwMCwgMTAwLCAyMDAsIDEw
MCwgMTAwKTsKLXZlcmlmeUNsaWVudFJlY3QoYm94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsK
LXZlcmlmeUNsaWVudFJlY3QoYm94LmdldENsaWVudFJlY3RzKClbMF0pOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWN0U3RyaW5nKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKSkiLCAiKDEwMCwxMDAgMTAweDEwMCkiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygicmVjdFN0cmluZ3MoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLmdl
dENsaWVudFJlY3RzKCkpIiwgIigxMDAsMTAwIDEwMHgxMDApIik7CiAKIGRlYnVnKCcnKTsKIGRl
YnVnKCdzY2FsZWQgYW5kIHBhbm5lZCcpOwogc2V0SW5pdGlhbFNjYWxlQW5kUGFuQnkoc2NhbGUs
IHBhblgsIHBhblkpOwotc2V0RXhwZWN0ZWRDbGllbnRSZWN0VmFsdWVzKDEwMC1wYW5YLCAyMDAt
cGFuWCwgMTAwLXBhblksIDIwMC1wYW5ZLCAxMDAsIDEwMCk7Ci12ZXJpZnlDbGllbnRSZWN0KGJv
eC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7Ci12ZXJpZnlDbGllbnRSZWN0KGJveC5nZXRDbGll
bnRSZWN0cygpWzBdKTsKK3ZhciByZWN0ID0gIigiICsgKDEwMC1wYW5YKSArICIsIiArICgxMDAt
cGFuWSkgKyAiIDEwMHgxMDApIjsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVjdFN0cmluZyhk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpIiwg
cmVjdCk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlY3RTdHJpbmdzKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdib3gnKS5nZXRDbGllbnRSZWN0cygpKSIsIHJlY3QpOworCitkZWJ1ZygnJyk7
CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogZW5kVGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNs
aWVudC1yZWN0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zh
c3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dAppbmRleCAzMWJi
N2I0OWVlNmYwNTc3N2NmOGZmMWMzODk3YjQwMjA3NDQ4OWUyLi5lMDhmNTc3YmZlOTdkZDBmNzgw
YzY0MDAwOWQ4MTU3YTYxNjA5M2YxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2Ut
Y2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dApAQCAtMSw0NSArMSwxNCBAQAogVGhpcyB0ZXN0cyBS
YW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3RzIGFuZCBnZXRDbGllbnRSZWN0cyBwb3NpdGlvbnMg
d2hlbiB1bnNjYWxlZCwgc2NhbGVkLCBhbmQgcGFubmVkLgogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotUEFTUyByYW5nZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCBpcyAyCisKIHVuc2NhbGVk
Ci1QQVNTIGNsaWVudFJlY3QubGVmdCBpcyAwCi1QQVNTIGNsaWVudFJlY3QucmlnaHQgaXMgMTUw
MAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyAwCi1QQVNTIGNsaWVudFJlY3QuYm90dG9tIGlzIDE1
MDAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBpcyAxNTAwCi1QQVNTIGNsaWVudFJlY3QuaGVpZ2h0
IGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC5sZWZ0IGlzIDAKLVBBU1MgY2xpZW50UmVjdC5yaWdo
dCBpcyAxNTAwCi1QQVNTIGNsaWVudFJlY3QudG9wIGlzIDAKLVBBU1MgY2xpZW50UmVjdC5ib3R0
b20gaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0LndpZHRoIGlzIDE1MDAKLVBBU1MgY2xpZW50UmVj
dC5oZWlnaHQgaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0LmxlZnQgaXMgMTAwCi1QQVNTIGNsaWVu
dFJlY3QucmlnaHQgaXMgMjAwCi1QQVNTIGNsaWVudFJlY3QudG9wIGlzIDEwMAotUEFTUyBjbGll
bnRSZWN0LmJvdHRvbSBpcyAyMDAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBpcyAxMDAKLVBBU1Mg
Y2xpZW50UmVjdC5oZWlnaHQgaXMgMTAwCitQQVNTIHJlY3RTdHJpbmcoZ2V0U2VsZWN0aW9uKCku
Z2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkgaXMgIigwLDAgMTUwMHgxNTAw
KSIKK1BBU1MgcmVjdFN0cmluZ3MoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5nZXRDbGll
bnRSZWN0cygpKSBpcyAiKDEwMCwxMDAgMTAweDEwMCkgKDAsMCAxNTAweDE1MDApIgogCiBzY2Fs
ZWQgYW5kIHBhbm5lZAotUEFTUyBjbGllbnRSZWN0LmxlZnQgaXMgLTEwCi1QQVNTIGNsaWVudFJl
Y3QucmlnaHQgaXMgMTQ5MAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyAtMTAKLVBBU1MgY2xpZW50
UmVjdC5ib3R0b20gaXMgMTQ5MAotUEFTUyBjbGllbnRSZWN0LndpZHRoIGlzIDE1MDAKLVBBU1Mg
Y2xpZW50UmVjdC5oZWlnaHQgaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0LmxlZnQgaXMgLTEwCi1Q
QVNTIGNsaWVudFJlY3QucmlnaHQgaXMgMTQ5MAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyAtMTAK
LVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMgMTQ5MAotUEFTUyBjbGllbnRSZWN0LndpZHRoIGlz
IDE1MDAKLVBBU1MgY2xpZW50UmVjdC5oZWlnaHQgaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0Lmxl
ZnQgaXMgOTAKLVBBU1MgY2xpZW50UmVjdC5yaWdodCBpcyAxOTAKLVBBU1MgY2xpZW50UmVjdC50
b3AgaXMgOTAKLVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMgMTkwCi1QQVNTIGNsaWVudFJlY3Qu
d2lkdGggaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QuaGVpZ2h0IGlzIDEwMAorUEFTUyByZWN0U3Ry
aW5nKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkp
IGlzICIoLTEwLC0xMCAxNTAweDE1MDApIgorUEFTUyByZWN0U3RyaW5ncyhnZXRTZWxlY3Rpb24o
KS5nZXRSYW5nZUF0KDApLmdldENsaWVudFJlY3RzKCkpIGlzICIoOTAsOTAgMTAweDEwMCkgKC0x
MCwtMTAgMTUwMHgxNTAwKSIKKwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zh
c3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50LXJlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5k
ZXggMmVlZDM2NGZkOTNlNzE2ZGQ4ZTBmMDI0MmRiODNlZWUxMGJlOTE4My4uZTIzMzYzZWQwN2Yw
YjQ0MDMxZjcxYzg0OTZiZDk3ZjViOGMwMTg4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1j
bGllbnQtcmVjdHMuaHRtbApAQCAtMzEsMjQgKzMxLDIxIEBAIHNldERpc3BsYXlPbkRlc2NyaXB0
aW9uQW5kQ29uc29sZSgnbm9uZScpOwogLy8gcG9zaXRpb25lZCBhYnNvbHV0ZWx5IGluc2lkZSBp
dC4gVGhlIGZpcnN0IGNsaWVudCByZWN0IG9mIHRoZQogLy8gUmFuZ2UgaXMgdGhlIGJveC4KIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKLXZhciByYW5nZSA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApOwotc2hvdWxkQmUoJ3JhbmdlLmdldENsaWVudFJlY3Rz
KCkubGVuZ3RoJywgJzInKTsKIAorZGVidWcoJycpOwogZGVidWcoJ3Vuc2NhbGVkJyk7Ci1zZXRF
eHBlY3RlZENsaWVudFJlY3RWYWx1ZXMoMCwgMTUwMCwgMCwgMTUwMCwgMTUwMCwgMTUwMCk7Ci12
ZXJpZnlDbGllbnRSZWN0KHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKLXZlcmlmeUNs
aWVudFJlY3QocmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKVsxXSk7Ci1zZXRFeHBlY3RlZENsaWVudFJl
Y3RWYWx1ZXMoMTAwLCAyMDAsIDEwMCwgMjAwLCAxMDAsIDEwMCk7Ci12ZXJpZnlDbGllbnRSZWN0
KHJhbmdlLmdldENsaWVudFJlY3RzKClbMF0pOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWN0
U3RyaW5nKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkpIiwgIigwLDAgMTUwMHgxNTAwKSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWN0U3Ry
aW5ncyhnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmdldENsaWVudFJlY3RzKCkpIiwgIigx
MDAsMTAwIDEwMHgxMDApICgwLDAgMTUwMHgxNTAwKSIpOwogCiBkZWJ1ZygnJyk7CiBkZWJ1Zygn
c2NhbGVkIGFuZCBwYW5uZWQnKTsKIHNldEluaXRpYWxTY2FsZUFuZFBhbkJ5KHNjYWxlLCBwYW5Y
LCBwYW5ZKTsKLXNldEV4cGVjdGVkQ2xpZW50UmVjdFZhbHVlcygwLXBhblgsIDE1MDAtcGFuWCwg
MC1wYW5ZLCAxNTAwLXBhblksIDE1MDAsIDE1MDApOwotdmVyaWZ5Q2xpZW50UmVjdChyYW5nZS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7Ci12ZXJpZnlDbGllbnRSZWN0KHJhbmdlLmdldENsaWVu
dFJlY3RzKClbMV0pOwotc2V0RXhwZWN0ZWRDbGllbnRSZWN0VmFsdWVzKDEwMC1wYW5YLCAyMDAt
cGFuWCwgMTAwLXBhblksIDIwMC1wYW5ZLCAxMDAsIDEwMCk7Ci12ZXJpZnlDbGllbnRSZWN0KHJh
bmdlLmdldENsaWVudFJlY3RzKClbMF0pOwordmFyIGZpcnN0UmVjdCA9ICIoIiArICgwLXBhblgp
ICsgIiwiICsgKDAtcGFuWCkgKyAiIDE1MDB4MTUwMCkiOwordmFyIHNlY29uZFJlY3QgPSAiKCIg
KyAoMTAwLXBhblgpICsgIiwiICsgKDEwMC1wYW5YKSArICIgMTAweDEwMCkiOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWN0U3RyaW5nKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkpIiwgZmlyc3RSZWN0KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVjdFN0cmluZ3MoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5nZXRDbGllbnRSZWN0
cygpKSIsIHNlY29uZFJlY3QgKyAiICIgKyBmaXJzdFJlY3QpOworCitkZWJ1ZygnJyk7CiAKIHNl
dERpc3BsYXlPbkRlc2NyaXB0aW9uQW5kQ29uc29sZSgnYmxvY2snKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3Jlc291cmNlcy9o
ZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVz
L3Jlc291cmNlcy9oZWxwZXJzLmpzCmluZGV4IGQxYjk2OTU3YjU4ZjE1MzVlOTEwZDQ0NmYzNmRk
YjA5OTE2NTMxNTUuLjMwNDU2NTI0NTQ1Y2JmMjNmZmVlY2JmNzk5NWZkMmRkYzVjYWYyZDEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9y
ZXNvdXJjZXMvaGVscGVycy5qcworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zh
c3QvY29vcmRpbmF0ZXMvcmVzb3VyY2VzL2hlbHBlcnMuanMKQEAgLTE5LDI1ICsxOSwyMSBAQCBm
dW5jdGlvbiB2ZXJpZnlDb29yZGluYXRlcyhvKSB7CiAKIC8vIFRvIHZlcmlmeSBjbGllbnQgcmVj
dCBwb3NpdGlvbnMuCiAKLXZhciBleHBlY3RlZExlZnQsIGV4cGVjdGVkUmlnaHQsIGV4cGVjdGVk
VG9wLCBleHBlY3RlZEJvdHRvbSwgZXhwZWN0ZWRXaWR0aCwgZXhwZWN0ZWRIZWlnaHQ7Ci1mdW5j
dGlvbiBzZXRFeHBlY3RlZENsaWVudFJlY3RWYWx1ZXMobGVmdCwgcmlnaHQsIHRvcCwgYm90dG9t
LCB3aWR0aCwgaGVpZ2h0KSB7Ci0gICAgZXhwZWN0ZWRMZWZ0ID0gbGVmdDsKLSAgICBleHBlY3Rl
ZFJpZ2h0ID0gcmlnaHQ7Ci0gICAgZXhwZWN0ZWRUb3AgPSB0b3A7Ci0gICAgZXhwZWN0ZWRCb3R0
b20gPSBib3R0b207Ci0gICAgZXhwZWN0ZWRXaWR0aCA9IHdpZHRoOwotICAgIGV4cGVjdGVkSGVp
Z2h0ID0gd2lkdGg7CitmdW5jdGlvbiByZWN0U3RyaW5nKHJlY3QpCit7CisgICAgcmV0dXJuICIo
IiArIHJlY3QueCArICIsIiArIHJlY3QueSArICIgIiArIHJlY3Qud2lkdGggKyAieCIgKyByZWN0
LmhlaWdodCArICIpIjsKIH0KIAotdmFyIGNsaWVudFJlY3Q7Ci1mdW5jdGlvbiB2ZXJpZnlDbGll
bnRSZWN0KG8pIHsKLSAgICBjbGllbnRSZWN0ID0gbzsKLSAgICBzaG91bGRCZSgnY2xpZW50UmVj
dC5sZWZ0JywgZXhwZWN0ZWRMZWZ0LnRvU3RyaW5nKCkpOwotICAgIHNob3VsZEJlKCdjbGllbnRS
ZWN0LnJpZ2h0JywgZXhwZWN0ZWRSaWdodC50b1N0cmluZygpKTsKLSAgICBzaG91bGRCZSgnY2xp
ZW50UmVjdC50b3AnLCBleHBlY3RlZFRvcC50b1N0cmluZygpKTsKLSAgICBzaG91bGRCZSgnY2xp
ZW50UmVjdC5ib3R0b20nLCBleHBlY3RlZEJvdHRvbS50b1N0cmluZygpKTsKLSAgICBzaG91bGRC
ZSgnY2xpZW50UmVjdC53aWR0aCcsIGV4cGVjdGVkV2lkdGgudG9TdHJpbmcoKSk7Ci0gICAgc2hv
dWxkQmUoJ2NsaWVudFJlY3QuaGVpZ2h0JywgZXhwZWN0ZWRIZWlnaHQudG9TdHJpbmcoKSk7Citm
dW5jdGlvbiByZWN0U3RyaW5ncyhyZWN0TGlzdCkKK3sKKyAgICB2YXIgdGV4dCA9ICIiOworICAg
IHZhciBpOworICAgIGZvciAoaSA9IDA7IGkgPCByZWN0TGlzdC5sZW5ndGg7IGkrKykgeworICAg
ICAgICBpZiAoaSAhPSAwKQorICAgICAgICAgICAgdGV4dCArPSAiICI7CisgICAgICAgIHRleHQg
Kz0gcmVjdFN0cmluZyhyZWN0TGlzdFtpXSk7CisgICAgfQorICAgIHJldHVybiB0ZXh0OwogfQog
CiAvLyBUbyB2ZXJpZnkgcGFnZSBzY3JvbGwgb2Zmc2V0cy4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407164</attachid>
            <date>2020-08-24 19:54:54 -0700</date>
            <delta_ts>2020-08-25 09:32:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215772-20200824195453.patch</filename>
            <type>text/plain</type>
            <size>21270</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMwZTMwOTFmMmNkZTg5
NTUxOWM2Y2FhMGZjMTdmMmRlNmJiNWIyYS4uODJmNGMyNmJhY2FlMzQyNmRkNzNhYTUyOGFhMjQ5
NGFmODA5OTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA4LTI0ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2MDI4
KTogcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy5o
dG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU3
NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRv
bS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Z2V0Q2xpZW50UmVjdHMgY29u
c3QpOiBDYWxsIHVwZGF0ZUxheW91dCBzaW5jZSBpdCdzIG5vdCBzYWZlCisgICAgICAgIHRvIHN0
YXJ0IHdvcmtpbmcgd2l0aCB0aGUgcmVuZGVyIHRyZWUgd2l0aG91dCB1cGRhdGluZyBpdCBmaXJz
dC4gTm90IHJlcXVpcmVkCisgICAgICAgIHRvIGZpeCB0aGlzIGJ1ZywgYnV0IGFuIG9idmlvdXMg
b21pc3Npb24uIElkZWFsbHkgc2hvdWxkIG1ha2UgYSB0ZXN0IHRvIHNob3cKKyAgICAgICAgdGhp
cyBpcyBuZWVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRS
ZWN0IGNvbnN0KTogRGl0dG8uCisKKyAgICAgICAgKiBkb20vU2ltcGxlUmFuZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6b3JkZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmRvY3VtZW50
T3JkZXIpOiBSZW1vdmVkIGJvZ3VzIHNwZWNpYWwgY2FzZS4gVGVzdCBjYXNlIHByb3ZpbmcgdGhp
cyBpcworICAgICAgICB3cm9uZyBpcyBjb21pbmcgaW4gdGhlIG5leHQgZG9jdW1lbnRPcmRlci1y
ZWxhdGVkIHBhdGNoLiBOb3QgbmVlZGVkIHRvIGZpeCB0aGlzCisgICAgICAgIGJ1ZywgYnV0IHNl
ZW1zIGRhbmdlcm91cyB0byBsZWF2ZSB0aGlzIGluIHRoZSB0cmVlIHRoZSB3YXkgaXQgd2FzLgor
ICAgICAgICAoV2ViQ29yZTo6Zmlyc3RJbnRlcnNlY3RpbmdOb2RlV2l0aERlcHJlY2F0ZWRaZXJv
T2Zmc2V0U3RhcnRRdWlyayk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW5n
Tm9kZUl0ZXJhdG9yOjpJbnRlcnNlY3RpbmdOb2RlSXRlcmF0b3IpOiBBZGRlZC4KKworICAgICAg
ICAqIGRvbS9TaW1wbGVSYW5nZS5oOiBBZGRlZCBpbnRlcnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNh
dGVkWmVyb09mZnNldFN0YXJ0UXVpcmsuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJvcmRlckFuZFRleHRSZWN0cyk6IFVzZSBpbnRl
cnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNhdGVkWmVyb09mZnNldFN0YXJ0UXVpcmsKKyAgICAgICAg
YmVjYXVzZSB0aGlzIG5lZWRzIHRvIGdldCB0aGUgc2V0IG9mIG5vZGVzIGluIGEgd2F5IHRoYXQg
d29ya3MgZm9yIG91ciBpbmNvcnJlY3RseQorICAgICAgICBmb3JtZWQgc2VsZWN0aW9uIHJhbmdl
cyBhbmQgaW5jbHVkZXMgdGhlIGZpcnN0IGVsZW1lbnQgZXZlbiB3aGVuIHRoZSByYW5nZSB0ZWNo
bmljYWxseQorICAgICAgICBzdGFydHMgaW5zaWRlIHRoYXQgZWxlbWVudC4gV2UgbmVlZCB0byBm
aXggdGhvc2UsIGJ1dCB0aGF0J3MgYSBiaWcgcHJvamVjdCB0aGF0IGFmZmVjdHMKKyAgICAgICAg
YSBsb3Qgb2YgZWRpdGluZyBjb2RlLiBGb3Igbm93LCByZXN0b3JpbmcgdGhlIG9sZCBxdWlyayBp
cyBleHBlZGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNvbGxlY3RTZWxl
Y3Rpb25SZWN0c0ludGVybmFsKTogRGl0dG8uCisKIDIwMjAtMDgtMjQgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgUmVxdWVz
dC9SZXNwb25zZSBjb25zdW1pbmcgYXMgRm9ybURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDA1
Y2I5ZjI4MGM0ZTg5YWUzNjdkODQ3MTc0ZTNjZjU4MjRkMDNlMjcuLjhmNmZkM2JjOGFiYTVhZmE0
NThjOTM2ZjJlZTNjYzc0MDg0ZGJjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMTM1OCwxMSAr
MTM1OCwxMyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBSYW5nZTo6ZXhwYW5kKGNvbnN0IFN0cmluZyYg
dW5pdCkKIAogUmVmPERPTVJlY3RMaXN0PiBSYW5nZTo6Z2V0Q2xpZW50UmVjdHMoKSBjb25zdAog
eworICAgIHN0YXJ0Q29udGFpbmVyKCkuZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKICAgICBy
ZXR1cm4gRE9NUmVjdExpc3Q6OmNyZWF0ZShSZW5kZXJPYmplY3Q6OmNsaWVudEJvcmRlckFuZFRl
eHRSZWN0cyhtYWtlU2ltcGxlUmFuZ2UoKnRoaXMpKSk7CiB9CiAKIFJlZjxET01SZWN0PiBSYW5n
ZTo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3QKIHsKKyAgICBzdGFydENvbnRhaW5lcigp
LmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CiAgICAgcmV0dXJuIERPTVJlY3Q6OmNyZWF0ZSh1
bmlvblJlY3RJZ25vcmluZ1plcm9SZWN0cyhSZW5kZXJPYmplY3Q6OmNsaWVudEJvcmRlckFuZFRl
eHRSZWN0cyhtYWtlU2ltcGxlUmFuZ2UoKnRoaXMpKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2ltcGxlUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXBs
ZVJhbmdlLmNwcAppbmRleCBkN2U0NzI2YThjYjFkNGRkMmY5NWM3NDM4OTM1NzM3MTg2ZmZkNWZk
Li5jMWI3NDY4ZTFkZTA3OTdlYjllNjJjYjU5NmQzNGYzZjI5Mzc2ZmYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2ltcGxlUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaW1wbGVSYW5nZS5jcHAKQEAgLTgxLDEzICs4MSwyMiBAQCBzdGF0aWMgYm9vbCBpc09mZnNl
dEJlZm9yZUNoaWxkKENvbnRhaW5lck5vZGUmIGNvbnRhaW5lciwgdW5zaWduZWQgb2Zmc2V0LCBO
b2RlJgogfQogCiAvLyBGSVhNRTogQ3JlYXRlIEJvdW5kYXJ5UG9pbnQuY3BwIGFuZCBtb3ZlIHRo
aXMgdGhlcmUuCi1QYXJ0aWFsT3JkZXJpbmcgZG9jdW1lbnRPcmRlcihjb25zdCBCb3VuZGFyeVBv
aW50JiBhLCBjb25zdCBCb3VuZGFyeVBvaW50JiBiKQorLy8gRklYTUU6IE9uY2Ugd2UgbW92ZSB0
byBDKysyMCwgcmVwbGFjZSB3aXRoIHRoZSBDKysyMCA8PT4gb3BlcmF0b3IuCisvLyBGSVhNRTog
VGhpcyBjb3VsZCByZXR1cm4gc3RkOjpzdHJvbmdfb3JkZXJpbmcgaWYgd2UgaGFkIHRoYXQsIG9y
IHRoZSBlcXVpdmFsZW50Lgorc3RhdGljIFBhcnRpYWxPcmRlcmluZyBvcmRlcih1bnNpZ25lZCBh
LCB1bnNpZ25lZCBiKQogewotICAgIGlmIChhLm9mZnNldCA9PSBiLm9mZnNldCkKLSAgICAgICAg
cmV0dXJuIGRvY3VtZW50T3JkZXIoYS5jb250YWluZXIsIGIuY29udGFpbmVyKTsKKyAgICBpZiAo
YSA8IGIpCisgICAgICAgIHJldHVybiBQYXJ0aWFsT3JkZXJpbmc6Omxlc3M7CisgICAgaWYgKGEg
PiBiKQorICAgICAgICByZXR1cm4gUGFydGlhbE9yZGVyaW5nOjpncmVhdGVyOworICAgIHJldHVy
biBQYXJ0aWFsT3JkZXJpbmc6OmVxdWl2YWxlbnQ7Cit9CiAKKy8vIEZJWE1FOiBDcmVhdGUgQm91
bmRhcnlQb2ludC5jcHAgYW5kIG1vdmUgdGhpcyB0aGVyZS4KK1BhcnRpYWxPcmRlcmluZyBkb2N1
bWVudE9yZGVyKGNvbnN0IEJvdW5kYXJ5UG9pbnQmIGEsIGNvbnN0IEJvdW5kYXJ5UG9pbnQmIGIp
Cit7CiAgICAgaWYgKGEuY29udGFpbmVyLnB0cigpID09IGIuY29udGFpbmVyLnB0cigpKQotICAg
ICAgICByZXR1cm4gYS5vZmZzZXQgPCBiLm9mZnNldCA/IFBhcnRpYWxPcmRlcmluZzo6bGVzcyA6
IFBhcnRpYWxPcmRlcmluZzo6Z3JlYXRlcjsKKyAgICAgICAgcmV0dXJuIG9yZGVyKGEub2Zmc2V0
LCBiLm9mZnNldCk7CiAKICAgICBmb3IgKGF1dG8gYW5jZXN0b3IgPSBiLmNvbnRhaW5lci5wdHIo
KTsgYW5jZXN0b3I7ICkgewogICAgICAgICBhdXRvIG5leHRBbmNlc3RvciA9IGFuY2VzdG9yLT5w
YXJlbnRPclNoYWRvd0hvc3ROb2RlKCk7CkBAIC0xNDQsNiArMTUzLDE3IEBAIHN0YXRpYyBSZWZQ
dHI8Tm9kZT4gbm9kZVBhc3RMYXN0SW50ZXJzZWN0aW5nTm9kZShjb25zdCBTaW1wbGVSYW5nZSYg
cmFuZ2UpCiAgICAgcmV0dXJuIE5vZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKHJh
bmdlLmVuZC5jb250YWluZXIpOwogfQogCitzdGF0aWMgUmVmUHRyPE5vZGU+IGZpcnN0SW50ZXJz
ZWN0aW5nTm9kZVdpdGhEZXByZWNhdGVkWmVyb09mZnNldFN0YXJ0UXVpcmsoY29uc3QgU2ltcGxl
UmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChyYW5nZS5zdGFydC5jb250YWluZXItPmlzQ2hhcmFj
dGVyRGF0YU5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHJhbmdlLnN0YXJ0LmNvbnRhaW5lci5wdHIo
KTsKKyAgICBpZiAoYXV0byBjaGlsZCA9IHJhbmdlLnN0YXJ0LmNvbnRhaW5lci0+dHJhdmVyc2VU
b0NoaWxkQXQocmFuZ2Uuc3RhcnQub2Zmc2V0KSkKKyAgICAgICAgcmV0dXJuIGNoaWxkOworICAg
IGlmICghcmFuZ2Uuc3RhcnQub2Zmc2V0KQorICAgICAgICByZXR1cm4gcmFuZ2Uuc3RhcnQuY29u
dGFpbmVyLnB0cigpOworICAgIHJldHVybiBOb2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGls
ZHJlbihyYW5nZS5zdGFydC5jb250YWluZXIpOworfQorCiBJbnRlcnNlY3RpbmdOb2RlSXRlcmF0
b3I6OkludGVyc2VjdGluZ05vZGVJdGVyYXRvcihjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCiAg
ICAgOiBtX25vZGUoZmlyc3RJbnRlcnNlY3RpbmdOb2RlKHJhbmdlKSkKICAgICAsIG1fcGFzdExh
c3ROb2RlKG5vZGVQYXN0TGFzdEludGVyc2VjdGluZ05vZGUocmFuZ2UpKQpAQCAtMTUxLDYgKzE3
MSwxMyBAQCBJbnRlcnNlY3RpbmdOb2RlSXRlcmF0b3I6OkludGVyc2VjdGluZ05vZGVJdGVyYXRv
cihjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UpCiAgICAgZW5mb3JjZUVuZEludmFyaWFudCgpOwog
fQogCitJbnRlcnNlY3RpbmdOb2RlSXRlcmF0b3I6OkludGVyc2VjdGluZ05vZGVJdGVyYXRvcihj
b25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UsIFF1aXJrRmxhZykKKyAgICA6IG1fbm9kZShmaXJzdElu
dGVyc2VjdGluZ05vZGVXaXRoRGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJrKHJhbmdlKSkK
KyAgICAsIG1fcGFzdExhc3ROb2RlKG5vZGVQYXN0TGFzdEludGVyc2VjdGluZ05vZGUocmFuZ2Up
KQoreworICAgIGVuZm9yY2VFbmRJbnZhcmlhbnQoKTsKK30KKwogdm9pZCBJbnRlcnNlY3RpbmdO
b2RlSXRlcmF0b3I6OmFkdmFuY2UoKQogewogICAgIEFTU0VSVChtX25vZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXBsZVJhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2ltcGxlUmFuZ2UuaAppbmRleCAyOTA0YzM3ZWE4YjUyYWJmNmI0MmI3NmQ1M2ViNGE3ZmRiNWU4
NzcwLi4wZDVjZDFlYWIyYTc3MWViNjcyNjVkZDYzMDI0NTM0MTEyN2ZjNWRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltcGxlUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2ltcGxlUmFuZ2UuaApAQCAtNjgsNiArNjgsOSBAQCBib29sIG9wZXJhdG9yPT0oY29uc3Qg
U2ltcGxlUmFuZ2UmLCBjb25zdCBTaW1wbGVSYW5nZSYpOwogY2xhc3MgSW50ZXJzZWN0aW5nTm9k
ZVJhbmdlOwogSW50ZXJzZWN0aW5nTm9kZVJhbmdlIGludGVyc2VjdGluZ05vZGVzKGNvbnN0IFNp
bXBsZVJhbmdlJik7CiAKK2NsYXNzIEludGVyc2VjdGluZ05vZGVSYW5nZVdpdGhRdWlyazsKK0lu
dGVyc2VjdGluZ05vZGVSYW5nZVdpdGhRdWlyayBpbnRlcnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNh
dGVkWmVyb09mZnNldFN0YXJ0UXVpcmsoY29uc3QgU2ltcGxlUmFuZ2UmKTsKKwogc3RydWN0IE9m
ZnNldFJhbmdlIHsKICAgICB1bnNpZ25lZCBzdGFydCB7IDAgfTsKICAgICB1bnNpZ25lZCBlbmQg
eyAwIH07CkBAIC03OCw2ICs4MSw5IEBAIGNsYXNzIEludGVyc2VjdGluZ05vZGVJdGVyYXRvciA6
IHB1YmxpYyBzdGQ6Oml0ZXJhdG9yPHN0ZDo6Zm9yd2FyZF9pdGVyYXRvcl90YWcsCiBwdWJsaWM6
CiAgICAgSW50ZXJzZWN0aW5nTm9kZUl0ZXJhdG9yKGNvbnN0IFNpbXBsZVJhbmdlJik7CiAKKyAg
ICBlbnVtIFF1aXJrRmxhZyB7IERlcHJlY2F0ZWRaZXJvT2Zmc2V0U3RhcnRRdWlyayB9OworICAg
IEludGVyc2VjdGluZ05vZGVJdGVyYXRvcihjb25zdCBTaW1wbGVSYW5nZSYsIFF1aXJrRmxhZyk7
CisKICAgICBOb2RlJiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiAqbV9ub2RlOyB9CiAgICAg
Tm9kZSogb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJUKG1fbm9kZSk7IHJldHVybiBtX25vZGUu
Z2V0KCk7IH0KIApAQCAtMTA3LDE2ICsxMTMsMzcgQEAgcHJpdmF0ZToKICAgICBTaW1wbGVSYW5n
ZSBtX3JhbmdlOwogfTsKIAorY2xhc3MgSW50ZXJzZWN0aW5nTm9kZVJhbmdlV2l0aFF1aXJrIHsK
K3B1YmxpYzoKKyAgICBJbnRlcnNlY3RpbmdOb2RlUmFuZ2VXaXRoUXVpcmsoY29uc3QgU2ltcGxl
UmFuZ2UmKTsKKworICAgIEludGVyc2VjdGluZ05vZGVJdGVyYXRvciBiZWdpbigpIGNvbnN0IHsg
cmV0dXJuIHsgbV9yYW5nZSwgSW50ZXJzZWN0aW5nTm9kZUl0ZXJhdG9yOjpEZXByZWNhdGVkWmVy
b09mZnNldFN0YXJ0UXVpcmsgfTsgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjpudWxscHRy
X3QgZW5kKCkgeyByZXR1cm4gbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIFNpbXBsZVJhbmdl
IG1fcmFuZ2U7Cit9OworCiBpbmxpbmUgSW50ZXJzZWN0aW5nTm9kZVJhbmdlOjpJbnRlcnNlY3Rp
bmdOb2RlUmFuZ2UoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKQogICAgIDogbV9yYW5nZShyYW5n
ZSkKIHsKIH0KIAoraW5saW5lIEludGVyc2VjdGluZ05vZGVSYW5nZVdpdGhRdWlyazo6SW50ZXJz
ZWN0aW5nTm9kZVJhbmdlV2l0aFF1aXJrKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkKKyAgICA6
IG1fcmFuZ2UocmFuZ2UpCit7Cit9CisKIGlubGluZSBJbnRlcnNlY3RpbmdOb2RlUmFuZ2UgaW50
ZXJzZWN0aW5nTm9kZXMoY29uc3QgU2ltcGxlUmFuZ2UmIHJhbmdlKQogewogICAgIHJldHVybiB7
IHJhbmdlIH07CiB9CiAKK2lubGluZSBJbnRlcnNlY3RpbmdOb2RlUmFuZ2VXaXRoUXVpcmsgaW50
ZXJzZWN0aW5nTm9kZXNXaXRoRGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJrKGNvbnN0IFNp
bXBsZVJhbmdlJiByYW5nZSkKK3sKKyAgICByZXR1cm4geyByYW5nZSB9OworfQorCiBpbmxpbmUg
U2ltcGxlUmFuZ2UgbWFrZVNpbXBsZVJhbmdlSGVscGVyKEJvdW5kYXJ5UG9pbnQmJiBzdGFydCwg
Qm91bmRhcnlQb2ludCYmIGVuZCkKIHsKICAgICByZXR1cm4geyBXVEZNb3ZlKHN0YXJ0KSwgV1RG
TW92ZShlbmQpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDQzYWMxNjliOTM0YjBlNzY4ZjI1MmYxZTRhMzdhMTgwMzc3Mzc4NWYuLmI2ZWExNTUzMDc5
NzdkOWU1N2QyNGE4MDdlMGYyNjcyOGU5Y2VkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xOTgwLDcgKzE5ODAsNyBAQCBzdGF0aWMgVmVjdG9yPEZs
b2F0UmVjdD4gYm9yZGVyQW5kVGV4dFJlY3RzKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSwgQ29v
cmRpbmF0ZQogICAgIGJvb2wgdXNlVmlzaWJsZUJvdW5kcyA9IGJlaGF2aW9yLmNvbnRhaW5zKFJl
bmRlck9iamVjdDo6Qm91bmRpbmdSZWN0QmVoYXZpb3I6OlVzZVZpc2libGVCb3VuZHMpOwogCiAg
ICAgSGFzaFNldDxFbGVtZW50Kj4gc2VsZWN0ZWRFbGVtZW50c1NldDsKLSAgICBmb3IgKGF1dG8m
IG5vZGUgOiBpbnRlcnNlY3RpbmdOb2RlcyhyYW5nZSkpIHsKKyAgICBmb3IgKGF1dG8mIG5vZGUg
OiBpbnRlcnNlY3RpbmdOb2Rlc1dpdGhEZXByZWNhdGVkWmVyb09mZnNldFN0YXJ0UXVpcmsocmFu
Z2UpKSB7CiAgICAgICAgIGlmIChpczxFbGVtZW50Pihub2RlKSkKICAgICAgICAgICAgIHNlbGVj
dGVkRWxlbWVudHNTZXQuYWRkKCZkb3duY2FzdDxFbGVtZW50Pihub2RlKSk7CiAgICAgfQpAQCAt
MTk5OCw3ICsxOTk4LDcgQEAgc3RhdGljIFZlY3RvcjxGbG9hdFJlY3Q+IGJvcmRlckFuZFRleHRS
ZWN0cyhjb25zdCBTaW1wbGVSYW5nZSYgcmFuZ2UsIENvb3JkaW5hdGUKICAgICAgICAgUmVuZGVy
T2JqZWN0OjpWaXNpYmxlUmVjdENvbnRleHRPcHRpb246OkFwcGx5Q29tcG9zaXRlZENvbnRhaW5l
clNjcm9sbHMKICAgICB9OwogCi0gICAgZm9yIChhdXRvJiBub2RlIDogaW50ZXJzZWN0aW5nTm9k
ZXMocmFuZ2UpKSB7CisgICAgZm9yIChhdXRvJiBub2RlIDogaW50ZXJzZWN0aW5nTm9kZXNXaXRo
RGVwcmVjYXRlZFplcm9PZmZzZXRTdGFydFF1aXJrKHJhbmdlKSkgewogICAgICAgICBpZiAoaXM8
RWxlbWVudD4obm9kZSkgJiYgc2VsZWN0ZWRFbGVtZW50c1NldC5jb250YWlucygmZG93bmNhc3Q8
RWxlbWVudD4obm9kZSkpICYmICh1c2VWaXNpYmxlQm91bmRzIHx8ICFub2RlLnBhcmVudEVsZW1l
bnQoKSB8fCAhc2VsZWN0ZWRFbGVtZW50c1NldC5jb250YWlucyhub2RlLnBhcmVudEVsZW1lbnQo
KSkpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byByZW5kZXJlciA9IGRvd25jYXN0PEVsZW1lbnQ+
KG5vZGUpLnJlbmRlckJveE1vZGVsT2JqZWN0KCkpIHsKICAgICAgICAgICAgICAgICBpZiAodXNl
VmlzaWJsZUJvdW5kcykgewpAQCAtMjEwNCw3ICsyMTA0LDcgQEAgYXV0byBSZW5kZXJPYmplY3Q6
OmNvbGxlY3RTZWxlY3Rpb25SZWN0c0ludGVybmFsKGNvbnN0IFNpbXBsZVJhbmdlJiByYW5nZSkg
LT4gU2UKICAgICBWZWN0b3I8U2VsZWN0aW9uUmVjdD4gbmV3UmVjdHM7CiAgICAgYm9vbCBoYXNG
bGlwcGVkV3JpdGluZ01vZGUgPSByYW5nZS5zdGFydC5jb250YWluZXItPnJlbmRlcmVyKCkgJiYg
cmFuZ2Uuc3RhcnQuY29udGFpbmVyLT5yZW5kZXJlcigpLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nr
c1dyaXRpbmdNb2RlKCk7CiAgICAgYm9vbCBjb250YWluc0RpZmZlcmVudFdyaXRpbmdNb2RlcyA9
IGZhbHNlOwotICAgIGZvciAoYXV0byYgbm9kZSA6IGludGVyc2VjdGluZ05vZGVzKHJhbmdlKSkg
eworICAgIGZvciAoYXV0byYgbm9kZSA6IGludGVyc2VjdGluZ05vZGVzV2l0aERlcHJlY2F0ZWRa
ZXJvT2Zmc2V0U3RhcnRRdWlyayhyYW5nZSkpIHsKICAgICAgICAgYXV0byByZW5kZXJlciA9IG5v
ZGUucmVuZGVyZXIoKTsKICAgICAgICAgLy8gT25seSBhc2sgbGVhZiByZW5kZXIgb2JqZWN0cyBm
b3IgdGhlaXIgbGluZSBib3ggcmVjdHMuCiAgICAgICAgIGlmIChyZW5kZXJlciAmJiAhcmVuZGVy
ZXItPmZpcnN0Q2hpbGRTbG93KCkgJiYgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgpICE9
IFVzZXJTZWxlY3Q6Ok5vbmUpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMDg5NTQyYjhjYTI4MWNhNDE4ZmYzNjM5YmI5
MjY1ZTc3ODhlOTM3Li43ZDM0MjI1ZTdjNzFkMTIyMDQzZTFlYzM5ODZmNmY2NTJiODhiNGFkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDgtMjQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNjYwMjgpOiBwbGF0Zm9ybS9pb3MvaW9z
L2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50LXJlY3RzLmh0bWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTc3MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0
RXhwZWN0YXRpb25zOiBSZW1vdmVkIGZhaWx1cmUgZXhwZWN0YXRpb24uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvZWxlbWVudC1jbGllbnQtcmVjdHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9l
bGVtZW50LWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFz
dC9jb29yZGluYXRlcy9yYW5nZS1jbGllbnQtcmVjdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1jbGllbnQtcmVjdHMuaHRt
bDoKKyAgICAgICAgQ2hhbmdlZCB0ZXN0cyBzbyBpdCdzIGVhc2llciB0byByZWFkIHRoZWlyIHJl
c3VsdHMgYnkgcHV0dGluZyByZWN0YW5nbGVzIGFuZAorICAgICAgICByZWN0YW5nbGUgbGlzdHMg
aW50byBzdHJpbmdzIGluc3RlYWQgb2YgY29tcGFyaW5nIG9uZSB2YWx1ZSBwZXIgbGluZS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yZXNvdXJjZXMvaGVs
cGVycy5qczoKKyAgICAgICAgKHJlY3RTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKHJlY3RTdHJp
bmdzKTogQWRkZWQuCisgICAgICAgIChzZXRFeHBlY3RlZENsaWVudFJlY3RWYWx1ZXMpOiBEZWxl
dGVkLgorICAgICAgICAodmVyaWZ5Q2xpZW50UmVjdCk6IERlbGV0ZWQuCisKIDIwMjAtMDgtMjQg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFj
T1MgQmlnIFN1cl0gc3ZnL1czQy1JMThOL3RzcGFuLWRpcmVjdGlvbi1ydGwuc3ZnIGlzIGZhaWxp
bmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBhZmU3YmJlOTNkZTZhMmUxYTAyNTY1ZDRiOGY4ZjVhZDViMTQ0YjdmLi5mMDIwNmU4NGEwZGRk
N2IzMzU0MGZhMTQ2YmZiZjQ1M2M2YmMzYWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODYzLDggKzE4NjMsNiBAQCB3ZWJraXQub3Jn
L2IvMjE1NzA2IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcgogCiB3ZWJraXQub3JnL2IvMjE1NzczIGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvY2xpZW50LWNsb3NlLTIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtp
dC5vcmcvYi8yMTU3NzIgcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNs
aWVudC1yZWN0cy5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8yMTU3ODMgWyBEZWJ1
ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vdmluZy1iZXR3ZWVuLWRvY3VtZW50cy9iZWZvcmUt
cHJlcGFyZS1pZnJhbWUtZmV0Y2gtZXJyb3ItZXh0ZXJuYWwtbW9kdWxlLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjA5NDYxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtaXRlbXMvZ3JpZC1pdGVtLWR5bmFtaWMtbWluLWNvbnRy
aWJ1dGlvbi0wMDEuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL2VsZW1lbnQtY2xpZW50LXJlY3RzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9l
bGVtZW50LWNsaWVudC1yZWN0cy1leHBlY3RlZC50eHQKaW5kZXggYTY2ODVlYmVhNWY0MDgxZWZk
NzRkOWEyYzM3NTY2NWMxNjIyYzg0Yi4uYTYyMDJkMDk0ODMxMmQ4Mzc3ZDdjY2RmMDlmYzJkNmUx
OGEzMGUzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nv
b3JkaW5hdGVzL2VsZW1lbnQtY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvZWxlbWVudC1jbGllbnQtcmVj
dHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMyICsxLDE0IEBACiBUaGlzIHRlc3RzIEVsZW1lbnQuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0cyBhbmQgZ2V0Q2xpZW50UmVjdHMgcG9zaXRpb25zIHdoZW4gdW5z
Y2FsZWQsIHNjYWxlZCwgYW5kIHBhbm5lZC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwog
dW5zY2FsZWQKLVBBU1MgY2xpZW50UmVjdC5sZWZ0IGlzIDEwMAotUEFTUyBjbGllbnRSZWN0LnJp
Z2h0IGlzIDIwMAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyAxMDAKLVBBU1MgY2xpZW50UmVjdC5i
b3R0b20gaXMgMjAwCi1QQVNTIGNsaWVudFJlY3Qud2lkdGggaXMgMTAwCi1QQVNTIGNsaWVudFJl
Y3QuaGVpZ2h0IGlzIDEwMAotUEFTUyBjbGllbnRSZWN0LmxlZnQgaXMgMTAwCi1QQVNTIGNsaWVu
dFJlY3QucmlnaHQgaXMgMjAwCi1QQVNTIGNsaWVudFJlY3QudG9wIGlzIDEwMAotUEFTUyBjbGll
bnRSZWN0LmJvdHRvbSBpcyAyMDAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBpcyAxMDAKLVBBU1Mg
Y2xpZW50UmVjdC5oZWlnaHQgaXMgMTAwCitQQVNTIHJlY3RTdHJpbmcoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JveCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSBpcyAiKDEwMCwxMDAgMTAw
eDEwMCkiCitQQVNTIHJlY3RTdHJpbmdzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5n
ZXRDbGllbnRSZWN0cygpKSBpcyAiKDEwMCwxMDAgMTAweDEwMCkiCiAKIHNjYWxlZCBhbmQgcGFu
bmVkCi1QQVNTIGNsaWVudFJlY3QubGVmdCBpcyA5MAotUEFTUyBjbGllbnRSZWN0LnJpZ2h0IGlz
IDE5MAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyA5MAotUEFTUyBjbGllbnRSZWN0LmJvdHRvbSBp
cyAxOTAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBpcyAxMDAKLVBBU1MgY2xpZW50UmVjdC5oZWln
aHQgaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QubGVmdCBpcyA5MAotUEFTUyBjbGllbnRSZWN0LnJp
Z2h0IGlzIDE5MAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyA5MAotUEFTUyBjbGllbnRSZWN0LmJv
dHRvbSBpcyAxOTAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBpcyAxMDAKLVBBU1MgY2xpZW50UmVj
dC5oZWlnaHQgaXMgMTAwCitQQVNTIHJlY3RTdHJpbmcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2JveCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSBpcyAiKDkwLDkwIDEwMHgxMDApIgorUEFT
UyByZWN0U3RyaW5ncyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94JykuZ2V0Q2xpZW50UmVj
dHMoKSkgaXMgIig5MCw5MCAxMDB4MTAwKSIKKwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvZWxlbWVudC1jbGllbnQtcmVjdHMuaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9lbGVtZW50LWNsaWVudC1y
ZWN0cy5odG1sCmluZGV4IDVjOWZmMGMwZTBlMzg0NDBmYWNkOGZiN2E4MWM2OTg1NGIzNTI5ODUu
Ljk3MDIwNzY1MjRjZGQ2NmZmOTlhMGVkZmQyZWI2NTllOGY3ZjdmYWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9lbGVtZW50LWNsaWVu
dC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9jb29y
ZGluYXRlcy9lbGVtZW50LWNsaWVudC1yZWN0cy5odG1sCkBAIC0yMCwxNyArMjAsMTkgQEAgY29u
c3QgcGFuWSA9IDEwOwogCiB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcp
OwogCitkZWJ1ZygnJyk7CiBkZWJ1ZygndW5zY2FsZWQnKTsKLXNldEV4cGVjdGVkQ2xpZW50UmVj
dFZhbHVlcygxMDAsIDIwMCwgMTAwLCAyMDAsIDEwMCwgMTAwKTsKLXZlcmlmeUNsaWVudFJlY3Qo
Ym94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKLXZlcmlmeUNsaWVudFJlY3QoYm94LmdldENs
aWVudFJlY3RzKClbMF0pOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWN0U3RyaW5nKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkiLCAiKDEw
MCwxMDAgMTAweDEwMCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVjdFN0cmluZ3MoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpLmdldENsaWVudFJlY3RzKCkpIiwgIigxMDAsMTAw
IDEwMHgxMDApIik7CiAKIGRlYnVnKCcnKTsKIGRlYnVnKCdzY2FsZWQgYW5kIHBhbm5lZCcpOwog
c2V0SW5pdGlhbFNjYWxlQW5kUGFuQnkoc2NhbGUsIHBhblgsIHBhblkpOwotc2V0RXhwZWN0ZWRD
bGllbnRSZWN0VmFsdWVzKDEwMC1wYW5YLCAyMDAtcGFuWCwgMTAwLXBhblksIDIwMC1wYW5ZLCAx
MDAsIDEwMCk7Ci12ZXJpZnlDbGllbnRSZWN0KGJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7
Ci12ZXJpZnlDbGllbnRSZWN0KGJveC5nZXRDbGllbnRSZWN0cygpWzBdKTsKK3ZhciByZWN0ID0g
IigiICsgKDEwMC1wYW5YKSArICIsIiArICgxMDAtcGFuWSkgKyAiIDEwMHgxMDApIjsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVjdFN0cmluZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94
JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpIiwgcmVjdCk7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlY3RTdHJpbmdzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5nZXRDbGllbnRS
ZWN0cygpKSIsIHJlY3QpOworCitkZWJ1ZygnJyk7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwogZW5kVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3JhbmdlLWNsaWVudC1yZWN0cy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50
LXJlY3RzLWV4cGVjdGVkLnR4dAppbmRleCAzMWJiN2I0OWVlNmYwNTc3N2NmOGZmMWMzODk3YjQw
MjA3NDQ4OWUyLi5lMDhmNTc3YmZlOTdkZDBmNzgwYzY0MDAwOWQ4MTU3YTYxNjA5M2YxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFu
Z2UtY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50LXJlY3RzLWV4cGVjdGVkLnR4dApA
QCAtMSw0NSArMSwxNCBAQAogVGhpcyB0ZXN0cyBSYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3Rz
IGFuZCBnZXRDbGllbnRSZWN0cyBwb3NpdGlvbnMgd2hlbiB1bnNjYWxlZCwgc2NhbGVkLCBhbmQg
cGFubmVkLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotUEFTUyByYW5nZS5nZXRDbGllbnRS
ZWN0cygpLmxlbmd0aCBpcyAyCisKIHVuc2NhbGVkCi1QQVNTIGNsaWVudFJlY3QubGVmdCBpcyAw
Ci1QQVNTIGNsaWVudFJlY3QucmlnaHQgaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyAw
Ci1QQVNTIGNsaWVudFJlY3QuYm90dG9tIGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC53aWR0aCBp
cyAxNTAwCi1QQVNTIGNsaWVudFJlY3QuaGVpZ2h0IGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC5s
ZWZ0IGlzIDAKLVBBU1MgY2xpZW50UmVjdC5yaWdodCBpcyAxNTAwCi1QQVNTIGNsaWVudFJlY3Qu
dG9wIGlzIDAKLVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0
LndpZHRoIGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC5oZWlnaHQgaXMgMTUwMAotUEFTUyBjbGll
bnRSZWN0LmxlZnQgaXMgMTAwCi1QQVNTIGNsaWVudFJlY3QucmlnaHQgaXMgMjAwCi1QQVNTIGNs
aWVudFJlY3QudG9wIGlzIDEwMAotUEFTUyBjbGllbnRSZWN0LmJvdHRvbSBpcyAyMDAKLVBBU1Mg
Y2xpZW50UmVjdC53aWR0aCBpcyAxMDAKLVBBU1MgY2xpZW50UmVjdC5oZWlnaHQgaXMgMTAwCitQ
QVNTIHJlY3RTdHJpbmcoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKSkgaXMgIigwLDAgMTUwMHgxNTAwKSIKK1BBU1MgcmVjdFN0cmluZ3MoZ2V0U2Vs
ZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5nZXRDbGllbnRSZWN0cygpKSBpcyAiKDEwMCwxMDAgMTAw
eDEwMCkgKDAsMCAxNTAweDE1MDApIgogCiBzY2FsZWQgYW5kIHBhbm5lZAotUEFTUyBjbGllbnRS
ZWN0LmxlZnQgaXMgLTEwCi1QQVNTIGNsaWVudFJlY3QucmlnaHQgaXMgMTQ5MAotUEFTUyBjbGll
bnRSZWN0LnRvcCBpcyAtMTAKLVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMgMTQ5MAotUEFTUyBj
bGllbnRSZWN0LndpZHRoIGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC5oZWlnaHQgaXMgMTUwMAot
UEFTUyBjbGllbnRSZWN0LmxlZnQgaXMgLTEwCi1QQVNTIGNsaWVudFJlY3QucmlnaHQgaXMgMTQ5
MAotUEFTUyBjbGllbnRSZWN0LnRvcCBpcyAtMTAKLVBBU1MgY2xpZW50UmVjdC5ib3R0b20gaXMg
MTQ5MAotUEFTUyBjbGllbnRSZWN0LndpZHRoIGlzIDE1MDAKLVBBU1MgY2xpZW50UmVjdC5oZWln
aHQgaXMgMTUwMAotUEFTUyBjbGllbnRSZWN0LmxlZnQgaXMgOTAKLVBBU1MgY2xpZW50UmVjdC5y
aWdodCBpcyAxOTAKLVBBU1MgY2xpZW50UmVjdC50b3AgaXMgOTAKLVBBU1MgY2xpZW50UmVjdC5i
b3R0b20gaXMgMTkwCi1QQVNTIGNsaWVudFJlY3Qud2lkdGggaXMgMTAwCi1QQVNTIGNsaWVudFJl
Y3QuaGVpZ2h0IGlzIDEwMAorUEFTUyByZWN0U3RyaW5nKGdldFNlbGVjdGlvbigpLmdldFJhbmdl
QXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpIGlzICIoLTEwLC0xMCAxNTAweDE1MDApIgor
UEFTUyByZWN0U3RyaW5ncyhnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmdldENsaWVudFJl
Y3RzKCkpIGlzICIoOTAsOTAgMTAweDEwMCkgKC0xMCwtMTAgMTUwMHgxNTAwKSIKKwogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmFuZ2UtY2xpZW50
LXJlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0
ZXMvcmFuZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5kZXggMmVlZDM2NGZkOTNlNzE2ZGQ4ZTBmMDI0
MmRiODNlZWUxMGJlOTE4My4uZTIzMzYzZWQwN2YwYjQ0MDMxZjcxYzg0OTZiZDk3ZjViOGMwMTg4
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5h
dGVzL3JhbmdlLWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9pb3MvZmFzdC9jb29yZGluYXRlcy9yYW5nZS1jbGllbnQtcmVjdHMuaHRtbApAQCAtMzEsMjQg
KzMxLDIxIEBAIHNldERpc3BsYXlPbkRlc2NyaXB0aW9uQW5kQ29uc29sZSgnbm9uZScpOwogLy8g
cG9zaXRpb25lZCBhYnNvbHV0ZWx5IGluc2lkZSBpdC4gVGhlIGZpcnN0IGNsaWVudCByZWN0IG9m
IHRoZQogLy8gUmFuZ2UgaXMgdGhlIGJveC4KIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RB
bGwiKTsKLXZhciByYW5nZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApOwot
c2hvdWxkQmUoJ3JhbmdlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJywgJzInKTsKIAorZGVidWco
JycpOwogZGVidWcoJ3Vuc2NhbGVkJyk7Ci1zZXRFeHBlY3RlZENsaWVudFJlY3RWYWx1ZXMoMCwg
MTUwMCwgMCwgMTUwMCwgMTUwMCwgMTUwMCk7Ci12ZXJpZnlDbGllbnRSZWN0KHJhbmdlLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpKTsKLXZlcmlmeUNsaWVudFJlY3QocmFuZ2UuZ2V0Q2xpZW50UmVj
dHMoKVsxXSk7Ci1zZXRFeHBlY3RlZENsaWVudFJlY3RWYWx1ZXMoMTAwLCAyMDAsIDEwMCwgMjAw
LCAxMDAsIDEwMCk7Ci12ZXJpZnlDbGllbnRSZWN0KHJhbmdlLmdldENsaWVudFJlY3RzKClbMF0p
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWN0U3RyaW5nKGdldFNlbGVjdGlvbigpLmdldFJh
bmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpIiwgIigwLDAgMTUwMHgxNTAwKSIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWN0U3RyaW5ncyhnZXRTZWxlY3Rpb24oKS5nZXRSYW5n
ZUF0KDApLmdldENsaWVudFJlY3RzKCkpIiwgIigxMDAsMTAwIDEwMHgxMDApICgwLDAgMTUwMHgx
NTAwKSIpOwogCiBkZWJ1ZygnJyk7CiBkZWJ1Zygnc2NhbGVkIGFuZCBwYW5uZWQnKTsKIHNldElu
aXRpYWxTY2FsZUFuZFBhbkJ5KHNjYWxlLCBwYW5YLCBwYW5ZKTsKLXNldEV4cGVjdGVkQ2xpZW50
UmVjdFZhbHVlcygwLXBhblgsIDE1MDAtcGFuWCwgMC1wYW5ZLCAxNTAwLXBhblksIDE1MDAsIDE1
MDApOwotdmVyaWZ5Q2xpZW50UmVjdChyYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7Ci12
ZXJpZnlDbGllbnRSZWN0KHJhbmdlLmdldENsaWVudFJlY3RzKClbMV0pOwotc2V0RXhwZWN0ZWRD
bGllbnRSZWN0VmFsdWVzKDEwMC1wYW5YLCAyMDAtcGFuWCwgMTAwLXBhblksIDIwMC1wYW5ZLCAx
MDAsIDEwMCk7Ci12ZXJpZnlDbGllbnRSZWN0KHJhbmdlLmdldENsaWVudFJlY3RzKClbMF0pOwor
dmFyIGZpcnN0UmVjdCA9ICIoIiArICgwLXBhblgpICsgIiwiICsgKDAtcGFuWCkgKyAiIDE1MDB4
MTUwMCkiOwordmFyIHNlY29uZFJlY3QgPSAiKCIgKyAoMTAwLXBhblgpICsgIiwiICsgKDEwMC1w
YW5YKSArICIgMTAweDEwMCkiOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWN0U3RyaW5nKGdl
dFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpIiwgZmly
c3RSZWN0KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVjdFN0cmluZ3MoZ2V0U2VsZWN0aW9u
KCkuZ2V0UmFuZ2VBdCgwKS5nZXRDbGllbnRSZWN0cygpKSIsIHNlY29uZFJlY3QgKyAiICIgKyBm
aXJzdFJlY3QpOworCitkZWJ1ZygnJyk7CiAKIHNldERpc3BsYXlPbkRlc2NyaXB0aW9uQW5kQ29u
c29sZSgnYmxvY2snKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lv
cy9mYXN0L2Nvb3JkaW5hdGVzL3Jlc291cmNlcy9oZWxwZXJzLmpzIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2lvcy9mYXN0L2Nvb3JkaW5hdGVzL3Jlc291cmNlcy9oZWxwZXJzLmpzCmluZGV4
IGQxYjk2OTU3YjU4ZjE1MzVlOTEwZDQ0NmYzNmRkYjA5OTE2NTMxNTUuLjMwNDU2NTI0NTQ1Y2Jm
MjNmZmVlY2JmNzk5NWZkMmRkYzVjYWYyZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9pb3MvZmFzdC9jb29yZGluYXRlcy9yZXNvdXJjZXMvaGVscGVycy5qcworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3QvY29vcmRpbmF0ZXMvcmVzb3VyY2VzL2hl
bHBlcnMuanMKQEAgLTE5LDI1ICsxOSwyMSBAQCBmdW5jdGlvbiB2ZXJpZnlDb29yZGluYXRlcyhv
KSB7CiAKIC8vIFRvIHZlcmlmeSBjbGllbnQgcmVjdCBwb3NpdGlvbnMuCiAKLXZhciBleHBlY3Rl
ZExlZnQsIGV4cGVjdGVkUmlnaHQsIGV4cGVjdGVkVG9wLCBleHBlY3RlZEJvdHRvbSwgZXhwZWN0
ZWRXaWR0aCwgZXhwZWN0ZWRIZWlnaHQ7Ci1mdW5jdGlvbiBzZXRFeHBlY3RlZENsaWVudFJlY3RW
YWx1ZXMobGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tLCB3aWR0aCwgaGVpZ2h0KSB7Ci0gICAgZXhw
ZWN0ZWRMZWZ0ID0gbGVmdDsKLSAgICBleHBlY3RlZFJpZ2h0ID0gcmlnaHQ7Ci0gICAgZXhwZWN0
ZWRUb3AgPSB0b3A7Ci0gICAgZXhwZWN0ZWRCb3R0b20gPSBib3R0b207Ci0gICAgZXhwZWN0ZWRX
aWR0aCA9IHdpZHRoOwotICAgIGV4cGVjdGVkSGVpZ2h0ID0gd2lkdGg7CitmdW5jdGlvbiByZWN0
U3RyaW5nKHJlY3QpCit7CisgICAgcmV0dXJuICIoIiArIHJlY3QueCArICIsIiArIHJlY3QueSAr
ICIgIiArIHJlY3Qud2lkdGggKyAieCIgKyByZWN0LmhlaWdodCArICIpIjsKIH0KIAotdmFyIGNs
aWVudFJlY3Q7Ci1mdW5jdGlvbiB2ZXJpZnlDbGllbnRSZWN0KG8pIHsKLSAgICBjbGllbnRSZWN0
ID0gbzsKLSAgICBzaG91bGRCZSgnY2xpZW50UmVjdC5sZWZ0JywgZXhwZWN0ZWRMZWZ0LnRvU3Ry
aW5nKCkpOwotICAgIHNob3VsZEJlKCdjbGllbnRSZWN0LnJpZ2h0JywgZXhwZWN0ZWRSaWdodC50
b1N0cmluZygpKTsKLSAgICBzaG91bGRCZSgnY2xpZW50UmVjdC50b3AnLCBleHBlY3RlZFRvcC50
b1N0cmluZygpKTsKLSAgICBzaG91bGRCZSgnY2xpZW50UmVjdC5ib3R0b20nLCBleHBlY3RlZEJv
dHRvbS50b1N0cmluZygpKTsKLSAgICBzaG91bGRCZSgnY2xpZW50UmVjdC53aWR0aCcsIGV4cGVj
dGVkV2lkdGgudG9TdHJpbmcoKSk7Ci0gICAgc2hvdWxkQmUoJ2NsaWVudFJlY3QuaGVpZ2h0Jywg
ZXhwZWN0ZWRIZWlnaHQudG9TdHJpbmcoKSk7CitmdW5jdGlvbiByZWN0U3RyaW5ncyhyZWN0TGlz
dCkKK3sKKyAgICB2YXIgdGV4dCA9ICIiOworICAgIHZhciBpOworICAgIGZvciAoaSA9IDA7IGkg
PCByZWN0TGlzdC5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoaSAhPSAwKQorICAgICAgICAg
ICAgdGV4dCArPSAiICI7CisgICAgICAgIHRleHQgKz0gcmVjdFN0cmluZyhyZWN0TGlzdFtpXSk7
CisgICAgfQorICAgIHJldHVybiB0ZXh0OwogfQogCiAvLyBUbyB2ZXJpZnkgcGFnZSBzY3JvbGwg
b2Zmc2V0cy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>