<?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>215368</bug_id>
          
          <creation_ts>2020-08-11 03:53:09 -0700</creation_ts>
          <short_desc>iOS: Scrolling and touch events sporadically stop working after navigating</short_desc>
          <delta_ts>2020-08-11 14:04:16 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1679357</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-08-11 03:53:09 -0700</bug_when>
    <thetext>iOS: Scrolling and touch events sporadically stop working after navigating</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679358</commentid>
    <comment_count>1</comment_count>
      <attachid>406372</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-08-11 03:53:57 -0700</bug_when>
    <thetext>Created attachment 406372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679359</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-08-11 03:53:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/65801531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679360</commentid>
    <comment_count>3</comment_count>
      <attachid>406373</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-08-11 03:55:55 -0700</bug_when>
    <thetext>Created attachment 406373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679391</commentid>
    <comment_count>4</comment_count>
      <attachid>406373</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-11 07:47:43 -0700</bug_when>
    <thetext>Comment on attachment 406373
Patch

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

&gt; LayoutTests/fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html:19
&gt; +                await new Promise((resolve) =&gt; { testRunner.runUIScriptImmediately(`
&gt; +                    uiController.doubleTapAtPoint(${x}, ${y}, .01, function() {
&gt; +                        uiController.uiScriptComplete();
&gt; +                    });`, resolve) });

Nit - the indentation looks a bit off here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679448</commentid>
    <comment_count>5</comment_count>
      <attachid>406373</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-08-11 10:25:31 -0700</bug_when>
    <thetext>Comment on attachment 406373
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp:179
&gt; +void EventDispatcher::takeQueuedTouchEventsForPage(const WebPage&amp; webPage, TouchEventQueue&amp; destinationQueue)

Why doesn&apos;t this just return a TouchEventQueue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679461</commentid>
    <comment_count>6</comment_count>
      <attachid>406373</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-08-11 10:48:23 -0700</bug_when>
    <thetext>Comment on attachment 406373
Patch

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

&gt; LayoutTests/fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html:16
&gt; +                await new Promise((resolve) =&gt; { testRunner.runUIScriptImmediately(`

NIT: why is this `Promise` needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679522</commentid>
    <comment_count>7</comment_count>
      <attachid>406373</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-08-11 13:16:11 -0700</bug_when>
    <thetext>Comment on attachment 406373
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp:179
&gt;&gt; +void EventDispatcher::takeQueuedTouchEventsForPage(const WebPage&amp; webPage, TouchEventQueue&amp; destinationQueue)
&gt; 
&gt; Why doesn&apos;t this just return a TouchEventQueue?

🤷‍♂️ probably predates `move`

Not going to fix it now, but it&apos;s a good point.

&gt;&gt; LayoutTests/fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html:16
&gt;&gt; +                await new Promise((resolve) =&gt; { testRunner.runUIScriptImmediately(`
&gt; 
&gt; NIT: why is this `Promise` needed?

You are right! It&apos;s not (and I don&apos;t totally understand why the test works anymore, but it does).

&gt;&gt; LayoutTests/fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html:19
&gt;&gt; +                    });`, resolve) });
&gt; 
&gt; Nit - the indentation looks a bit off here.

Devin said the same thing, but it looks right to me‽ I am confused :) Maybe getting rid of the promise will help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679524</commentid>
    <comment_count>8</comment_count>
      <attachid>406410</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-08-11 13:17:45 -0700</bug_when>
    <thetext>Created attachment 406410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679547</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-11 14:04:15 -0700</bug_when>
    <thetext>Committed r265515: &lt;https://trac.webkit.org/changeset/265515&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406410.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406372</attachid>
            <date>2020-08-11 03:53:57 -0700</date>
            <delta_ts>2020-08-11 03:55:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215368-20200811035356.patch</filename>
            <type>text/plain</type>
            <size>22702</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ZmU4MWI5Y2Q3MWY3MzA1
NGVhY2FhYjI5MDNmN2ZmZWM3NTFmYjEuLjdkMDQxN2I0ZmM4NjEwODQxNWVmNjEzODc4NmY2YmNm
Mjg3OWExOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDgtMTEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgaU9TOiBTY3JvbGxpbmcg
YW5kIHRvdWNoIGV2ZW50cyBzcG9yYWRpY2FsbHkgc3RvcCB3b3JraW5nIGFmdGVyIG5hdmlnYXRp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTM2
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU4MDE1MzE+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3RvdWNoLWV2ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRpbmctd2l0aC1wZW5kaW5nLWFzeW5jaHJv
bm91cy10b3VjaC1zdGFydC5odG1sCisKKyAgICAgICAgV2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2
ZW50YWJsZVRvdWNoRXZlbnQga2VlcHMgYSBjb3VudGVyIG9mIHRoZSBudW1iZXIKKyAgICAgICAg
b2Ygb3V0c3RhbmRpbmcgInByZXZlbnRhYmxlIiB0b3VjaCBldmVudHMgdGhhdCBpdCBpcyB3YWl0
aW5nIHRvIGhlYXIKKyAgICAgICAgZnJvbSB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcyBhYm91dC4g
VGhpcyBjb3VudGVyIGlzIGluY3JlbWVudGVkIHdoZW4gdGhlCisgICAgICAgIGV2ZW50IGlzIGRp
c3BhdGNoZWQgdG8gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MncyBFdmVudEhhbmRsZXIgcXVldWUs
CisgICAgICAgIGFuZCBkZWNyZW1lbnRlZCB3aGVuIHRoZSByZXBseSAod2hldGhlciBpdCB3YXMg
aGFuZGxlZCBvciBub3QpIGNvbWVzCisgICAgICAgIGJhY2sgZnJvbSB0aGUgV2ViIENvbnRlbnQg
cHJvY2Vzcy4gV2hpbGUgdGhlIGNvdW50ZXIgaXMgbm9uLXplcm8sIGFsbAorICAgICAgICBkZWZl
cnJhYmxlIGdlc3R1cmVzIHJlbWFpbiBkZWZlcnJlZCAoYW5kIHdoZW4gaXQgcmV0dXJucyB0byB6
ZXJvLCB0aGUKKyAgICAgICAgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBnYXRlIGlzIGxp
ZnRlZCwgYW5kIGV2ZW50cyBhcmUgYWxsb3dlZCB0byBmbG93KS4KKyAgICAgICAgVGhpcyBtZWFu
cyB0aGF0IGl0IGlzIHZlcnkgaW1wb3J0YW50IHRoYXQgZXZlcnkgZXZlbnQgZXZlbnR1YWxseSBy
ZXBseQorICAgICAgICBhYm91dCBpdHMgaGFuZGxpbmcgc3RhdHVzLgorCisgICAgICAgIEJlZm9y
ZSB0aGlzIGNoYW5nZSwgd2hlbiB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcyBpcyBuYXZpZ2F0aW5n
LCBhbmQgcmVhY2hlcyBkaWRDb21taXRMb2FkLAorICAgICAgICBpdCBjbGVhcmVkIGFsbCBxdWV1
ZWQgdG91Y2ggZXZlbnRzLCB3aXRob3V0IHJlcGx5aW5nIHRvIHRvIHRoZSBVSSBwcm9jZXNzLgor
ICAgICAgICBUaHVzLCB0aGVyZSBpcyBhIHNtYWxsIHdpbmRvdyBvZiB0aW1lIGluIHdoaWNoIGFu
IGluY29taW5nIHRvdWNoIGV2ZW50IHdpbGwKKyAgICAgICAgZW5kIHVwIGluIHRoZSBxdWV1ZSwg
Km5vdCogZ2V0IGRpc3BhdGNoZWQvcmVwbGllZCwgYW5kIHRoZW4gZ2V0IGRyb3BwZWQgb24KKyAg
ICAgICAgdGhlIGZsb29yIGluIGRpZENvbW1pdExvYWQuIE1vc3QgZXZlbnRzIGRvIG5vdCBtZWV0
IHRoaXMgZmF0ZSwgYmVjYXVzZSB0aGV5CisgICAgICAgIGFyZSBoYW5kbGVkIHByb21wdGx5LCBh
bmQgY29tbWl0TG9hZC9kaWRDb21taXRMb2FkIHRlbmQgdG8gYmUgdmVyeSBxdWljay4KKyAgICAg
ICAgSG93ZXZlciwgaWYgdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgZW5kcyB1cCBzcGVuZGluZyBh
bnkgc2lnbmlmaWNhbnQgYW1vdW50CisgICAgICAgIG9mIHRpbWUgdW5kZXIgY29tbWl0TG9hZCAo
c2F5LCBpbiBhbiB1bmxvYWQgaGFuZGxlciwgb3IgaW4gbWVkaWEgZnJhbWV3b3JrcyksCisgICAg
ICAgIGFueSBpbmNvbWluZyB0b3VjaCBldmVudHMgZHVyaW5nIHRoYXQgdGltZSB3aWxsIGdldCBs
b3N0LCBhbmQgdGhlIFVJIHByb2Nlc3MnCisgICAgICAgIGNvdW50IG9mIG91dHN0YW5kaW5nIGV2
ZW50cyB3aWxsIGVuZCB1cCBnZXR0aW5nIHN0dWNrIG5vbi16ZXJvLgorCisgICAgICAgIEZpeCB0
aGlzIGJ5IGFsd2F5cyBwcmV0ZW5kaW5nIHRoYXQgdGhlIHBhZ2UgYXRlIGFueSBldmVudHMgdGhh
dCB3ZXJlIG91dHN0YW5kaW5nCisgICAgICAgIHdoZW4gZGlkQ29tbWl0TG9hZCBvY2N1cnMsIGlu
c3RlYWQgb2YganVzdCBkcm9wcGluZyB0aGVtIG9uIHRoZSBmbG9vci4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNo
ZXI6OnRha2VRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVu
dERpc3BhdGNoZXI6OmNsZWFyUXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpnZXRRdWV1ZWRUb3VjaEV2ZW50c0ZvclBh
Z2UpOiBEZWxldGVkLgorICAgICAgICBBbHNvLCByZW5hbWUgZ2V0UXVldWVkVG91Y2hFdmVudHNG
b3JQYWdlIHRvIHRha2VRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UsCisgICAgICAgIHNpbmNlIGl0
IHJlbW92ZXMgdGhlIHF1ZXVlIGZyb20gRXZlbnREaXNwYXRjaGVyJ3Mgc2V0LgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dG91
Y2hFdmVudFN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2FkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Y2FuY2VsQXN5bmNocm9ub3VzVG91Y2hFdmVudHMpOgorCiAyMDIwLTA4LTEwICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEFsd2F5cyBzdXNwZW5kIElEQiB3
b3JrIHdoZW4gbmV0d29yayBwcm9jZXNzIGlzIHByZXBhcmVkIHRvIHN1c3BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAxNTVm
ZmUxYTAxYjJmNzQ5ZjQ4NzAzZTljMzlkODM3Mjg3Mzc5MTJjLi4wYTU1ODQwOWQwMjg2NTY2MDQy
OTExMWY1NjRlMzI2OWM5MjhkMjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NTAsOSArNDUwLDkgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiBl
dmVudCwgYm9vbAogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLXZvaWQgUGFnZUNsaWVu
dEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBuYXRp
dmVXZWJ0b3VjaEV2ZW50LCBib29sIGV2ZW50SGFuZGxlZCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBuYXRpdmVXZWJU
b3VjaEV2ZW50LCBib29sIGV2ZW50SGFuZGxlZCkKIHsKLSAgICBbbV9jb250ZW50VmlldyBfd2Vi
VG91Y2hFdmVudDpuYXRpdmVXZWJ0b3VjaEV2ZW50IHByZXZlbnRzTmF0aXZlR2VzdHVyZXM6ZXZl
bnRIYW5kbGVkXTsKKyAgICBbbV9jb250ZW50VmlldyBfd2ViVG91Y2hFdmVudDpuYXRpdmVXZWJU
b3VjaEV2ZW50IHByZXZlbnRzTmF0aXZlR2VzdHVyZXM6ZXZlbnRIYW5kbGVkXTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcAppbmRleCAxODE4MTI1MjBkNTRiMzQwYjdkYjVlMzA5ZmE0MmYyY2U5MWNjMDg3
Li40NTQyZmM2YzFjODkwZjFhZWYwNDE2MDYwNWI2MDk4YjIxNDc0YzdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAg
LTE3NiwxMyArMTc2LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6Omdlc3R1cmVFdmVudChQYWdl
SWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYktpdDo6V2ViR2VzdHUKICNlbmRpZgogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6Y2xlYXJRdWV1
ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYgd2ViUGFnZSkKLXsKLSAgICBMb2Nr
SG9sZGVyIGxvY2tlcigmbV90b3VjaEV2ZW50c0xvY2spOwotICAgIG1fdG91Y2hFdmVudHMucmVt
b3ZlKHdlYlBhZ2UuaWRlbnRpZmllcigpKTsKLX0KLQotdm9pZCBFdmVudERpc3BhdGNoZXI6Omdl
dFF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiB3ZWJQYWdlLCBUb3VjaEV2
ZW50UXVldWUmIGRlc3RpbmF0aW9uUXVldWUpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6dGFrZVF1
ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiB3ZWJQYWdlLCBUb3VjaEV2ZW50
UXVldWUmIGRlc3RpbmF0aW9uUXVldWUpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIoJm1fdG91
Y2hFdmVudHNMb2NrKTsKICAgICBkZXN0aW5hdGlvblF1ZXVlID0gbV90b3VjaEV2ZW50cy50YWtl
KHdlYlBhZ2UuaWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggOGZjMjFiNDcxYjAxOWMxMmFhNjMxMWJk
MGFjNGQyNmIwYjI4NTk0MS4uNDQzM2EzY2UwZmYzYWQyYjAzYTczZTJiYWZkNDc4NWEzNTM4YTgx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmgKQEAgLTYzLDkgKzYzLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCiAgICAgdXNpbmcgVG91Y2hFdmVudFF1ZXVlID0gVmVjdG9yPHN0ZDo6cGFpcjxX
ZWJUb3VjaEV2ZW50LCBPcHRpb25hbDxDYWxsYmFja0lEPj4sIDE+OwotCi0gICAgdm9pZCBjbGVh
clF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJik7Ci0gICAgdm9pZCBnZXRR
dWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYsIFRvdWNoRXZlbnRRdWV1ZSYp
OworICAgIHZvaWQgdGFrZVF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiwg
VG91Y2hFdmVudFF1ZXVlJik7CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDI3NDJmMTNlY2YzNmQ2MGNjZmQ2N2EzZmQyMTU0NzViMDA2NGY4
MzIuLmE2YWMwNmFjNmQ0MDZmNTA2MjAxYzllNDFkOTc1YjRlMTcyYmQ0NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yOTg1LDcgKzI5ODUs
NyBAQCB2b2lkIFdlYlBhZ2U6OnRvdWNoRXZlbnRTeW5jKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRv
dWNoRXZlbnQsIENvbXBsZXRpb25IYW5kbGVyPAogICAgIG1fcGVuZGluZ1N5bmNocm9ub3VzVG91
Y2hFdmVudFJlcGx5ID0gV1RGTW92ZShyZXBseSk7CiAKICAgICBFdmVudERpc3BhdGNoZXI6OlRv
dWNoRXZlbnRRdWV1ZSBxdWV1ZWRFdmVudHM7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZXZlbnREaXNwYXRjaGVyKCkuZ2V0UXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKCp0aGlzLCBxdWV1
ZWRFdmVudHMpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV2ZW50RGlzcGF0Y2hlcigp
LnRha2VRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoKnRoaXMsIHF1ZXVlZEV2ZW50cyk7CiAgICAg
ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhxdWV1ZWRFdmVudHMpOwogCiAgICAgYm9v
bCBoYW5kbGVkID0gdHJ1ZTsKQEAgLTU5ODcsNyArNTk4Nyw5IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
Q29tbWl0TG9hZChXZWJGcmFtZSogZnJhbWUpCiAgICAgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JZEFuZFBhZ2VTY2FsZUJlZm9yZVNjYWxpbmdQYWdlID0gV1RGOjpudWxsb3B0OwogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXZl
bnREaXNwYXRjaGVyKCkuY2xlYXJRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoKnRoaXMpOworICAg
IEV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudFF1ZXVlIHF1ZXVlZEV2ZW50czsKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5ldmVudERpc3BhdGNoZXIoKS50YWtlUXVldWVkVG91Y2hFdmVu
dHNGb3JQYWdlKCp0aGlzLCBxdWV1ZWRFdmVudHMpOworICAgIGNhbmNlbEFzeW5jaHJvbm91c1Rv
dWNoRXZlbnRzKHF1ZXVlZEV2ZW50cyk7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggNjE3ZTZhZjJmZDM2Y2RiODkzYzAyYzEyMjAzM2UyODcxNWJhNjQ5MC4uYzdmYjM0ZTY5Mzc0
MmM5OTA0MWExYzkxYjIyMzZjOTE5ZDU0YTQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzU4LDYgKzc1OCw3IEBAIHB1YmxpYzoKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQg
ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFdl
YlRvdWNoRXZlbnQsIE9wdGlvbmFsPENhbGxiYWNrSUQ+PiwgMT4mIHF1ZXVlKTsKKyAgICB2b2lk
IGNhbmNlbEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V2Vi
VG91Y2hFdmVudCwgT3B0aW9uYWw8Q2FsbGJhY2tJRD4+LCAxPiYgcXVldWUpOwogI2VuZGlmCiAK
ICAgICBib29sIGhhc1JpY2hseUVkaXRhYmxlU2VsZWN0aW9uKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGQz
YTlkYTQ2Y2ZlZjI1ODA2ZTJlOGMxNzUzZGQ5NmRjN2YxNjc4ZjUuLmY0NmM2NWY3MjY1ODhkMTE0
MmY2MzcxNTM5MDZkZDQ5NWRmZGJiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xMzgsNiArMTM4LDcgQEAKICNpbXBv
cnQgPHd0Zi9TY29wZS5oPgogI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CiAjaW1wb3J0
IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFt
Lmg+CiAKQEAgLTM5NDMsNiArMzk0NCwxNSBAQCB2b2lkIFdlYlBhZ2U6OmRpc3BhdGNoQXN5bmNo
cm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxXZWJUb3VjaEV2ZQogICAg
ICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCb29sQ2FsbGJhY2soaGFuZGxl
ZCwgKmV2ZW50QW5kQ2FsbGJhY2tJRC5zZWNvbmQpKTsKICAgICB9CiB9CisKK3ZvaWQgV2ViUGFn
ZTo6Y2FuY2VsQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxX
ZWJUb3VjaEV2ZW50LCBPcHRpb25hbDxDYWxsYmFja0lEPj4sIDE+JiBxdWV1ZSkKK3sKKyAgICBm
b3IgKGF1dG8mIGV2ZW50QW5kQ2FsbGJhY2tJRCA6IHF1ZXVlKSB7CisgICAgICAgIGlmICghZXZl
bnRBbmRDYWxsYmFja0lELnNlY29uZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJvb2xDYWxsYmFjayh0cnVlLCAqZXZlbnRBbmRD
YWxsYmFja0lELnNlY29uZCkpOworICAgIH0KK30KICNlbmRpZgogCiB2b2lkIFdlYlBhZ2U6OmNv
bXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9Q
REY6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMyMWU0M2U2MTAwZGRiNzg5OTEzZTE4M2IwYWNiN2ZiMDA2
MThiNTAuLjA3MjJlN2Y3NTdhOGY5ODM4MmNmZDA2YmFjZTNjZDM4ZWY0ODViZWMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBA
QAorMjAyMC0wOC0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBpT1M6IFNjcm9sbGluZyBhbmQgdG91Y2ggZXZlbnRzIHNwb3JhZGljYWxseSBzdG9w
IHdvcmtpbmcgYWZ0ZXIgbmF2aWdhdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MzY4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTgwMTUz
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6cnVuVUlTY3JpcHRJbW1lZGlhdGVseSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6Cisg
ICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpydW5VSVNpZGVTY3JpcHRJbW1lZGlhdGVseSk6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpydW5VSVNpZGVTY3JpcHRBZnRlclVwZGF0
ZUNhbGxiYWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6
CisgICAgICAgIEFkZCBhIHZhcmlhbnQgb2YgcnVuVUlTaWRlU2NyaXB0IHRoYXQgcnVucyB0aGUg
c2NyaXB0IHdpdGhvdXQKKyAgICAgICAgd2FpdGluZyBmb3IgYSByZW5kZXJpbmcgdXBkYXRlLgor
CisgICAgICAgIEl0IG1ha2VzIHNlbnNlIGZvciB0aGUgZGVmYXVsdCBydW5VSVNpZGVTY3JpcHQg
dG8gd2FpdCBmb3IgYSByZW5kZXJpbmcKKyAgICAgICAgdXBkYXRlIC0tIG5lYXJseSBldmVyeSB0
ZXN0IGlzIGVpdGhlciB1bmFmZmVjdGVkIG9yIGltcHJvdmVkIGJ5IHRoaXMgLS0KKyAgICAgICAg
YnV0IGZvciB0aGUgdGVzdCBmb3IgdGhpcyBidWcsIHNpbmNlIHdlIGhhdmUgaHVuZyB0aGUgV2Vi
IENvbnRlbnQgcHJvY2VzcworICAgICAgICBtYWluIHRocmVhZCBpbnRlbnRpb25hbGx5LCB3ZSB3
aWxsIG5vdCBzZWUgYSByZW5kZXJpbmcgdXBkYXRlLCBhbmQgc28KKyAgICAgICAgdGhlIFVJLXNp
ZGUgc2NyaXB0IHdpbGwgbmV2ZXIgcnVuLgorCiAyMDIwLTA4LTA5ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjA4MzEpOiBX
ZWIgcHJvY2VzcyBjcmFzaGVzIHVuZGVyIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oKSBhZnRlciBu
YXZpZ2F0aW5nIHdpdGggbWFya2VkIHRleHQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4
IGRjNjNjNWRkOGJiNGQ4NmJlM2Y2MjcxYWRhMjg4Zjg3ZmQ0MjBhMTkuLjU1YWE3MzA2Y2JiNjQ0
YTU1ZjQyMTBiMDdhMWIwNGRkOWMwZGIxYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApA
QCAtMjc1LDYgKzI3NSw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIC8vIFVJIFBy
b2Nlc3MgVGVzdGluZwogICAgIHZvaWQgcnVuVUlTY3JpcHQoRE9NU3RyaW5nIHNjcmlwdCwgb2Jq
ZWN0IGNhbGxiYWNrKTsKKyAgICB2b2lkIHJ1blVJU2NyaXB0SW1tZWRpYXRlbHkoRE9NU3RyaW5n
IHNjcmlwdCwgb2JqZWN0IGNhbGxiYWNrKTsKIAogICAgIHZvaWQgY2xlYXJUZXN0UnVubmVyQ2Fs
bGJhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDI5NjcyZjllMTU1OWNhMmRlMGM2ODlhNDZjM2VhMmM1
NjAxYjYwZTguLjcyMDE4MjY5NTJlOWZmMmY0MTA0OGRmOTM1YjM4ZGQ0Nzc3NmYwMzEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcApAQCAtMTMyNCw2ICsxMzI0LDI3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cnVuVUlTY3JpcHQo
SlNTdHJpbmdSZWYgc2NyaXB0LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIFdLQnVuZGxlUGFn
ZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwg
bWVzc2FnZU5hbWUuZ2V0KCksIHRlc3REaWN0aW9uYXJ5LmdldCgpKTsKIH0KIAordm9pZCBUZXN0
UnVubmVyOjpydW5VSVNjcmlwdEltbWVkaWF0ZWx5KEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNWYWx1
ZVJlZiBjYWxsYmFjaykKK3sKKyAgICB1bnNpZ25lZCBjYWxsYmFja0lEID0gbmV4dFVJU2NyaXB0
Q2FsbGJhY2tJRCgpOworICAgIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNrKGNhbGxiYWNrSUQsIGNh
bGxiYWNrKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlJ1blVJUHJvY2Vzc1NjcmlwdElt
bWVkaWF0ZWx5IikpOworCisgICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4g
dGVzdERpY3Rpb25hcnkgPSBhZG9wdFdLKFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7CisK
KyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc2NyaXB0S2V5ID0gYWRvcHRXSyhXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2NyaXB0IikpOworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBzY3JpcHRWYWx1ZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoSlNTdHJpbmco
c2NyaXB0KSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gY2FsbGJhY2tJREtleSA9
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkNhbGxiYWNrSUQiKSk7Cisg
ICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IGNhbGxiYWNrSURWYWx1ZSA9IGFkb3B0V0soV0tV
SW50NjRDcmVhdGUoY2FsbGJhY2tJRCkpOworCisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbSh0ZXN0
RGljdGlvbmFyeS5nZXQoKSwgc2NyaXB0S2V5LmdldCgpLCBzY3JpcHRWYWx1ZS5nZXQoKSk7Cisg
ICAgV0tEaWN0aW9uYXJ5U2V0SXRlbSh0ZXN0RGljdGlvbmFyeS5nZXQoKSwgY2FsbGJhY2tJREtl
eS5nZXQoKSwgY2FsbGJhY2tJRFZhbHVlLmdldCgpKTsKKworICAgIFdLQnVuZGxlUGFnZVBvc3RN
ZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIHRlc3REaWN0aW9uYXJ5LmdldCgpKTsKK30KKwogdm9pZCBUZXN0UnVubmVy
OjpydW5VSVNjcmlwdENhbGxiYWNrKHVuc2lnbmVkIGNhbGxiYWNrSUQsIEpTU3RyaW5nUmVmIHJl
c3VsdCkKIHsKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdl
dE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aAppbmRleCBhYjY1ZDQwZDQyMjY4MDkzNDA5MmNmM2Y4MmQ4MWM1ZTlhYjIwZDAzLi4wNTYxOWUz
MjcxNzAwYmIxZmYyNDliYjlkNTU4NmE5Y2I4NGQxYWI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzUwLDYgKzM1MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERpZENhbmNlbENsaWVudFJlZGlyZWN0KGJvb2wgdmFs
dWUpIHsgbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IHZhbHVlOyB9CiAKICAgICB2b2lkIHJ1
blVJU2NyaXB0KEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisgICAg
dm9pZCBydW5VSVNjcmlwdEltbWVkaWF0ZWx5KEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNWYWx1ZVJl
ZiBjYWxsYmFjayk7CiAgICAgdm9pZCBydW5VSVNjcmlwdENhbGxiYWNrKHVuc2lnbmVkIGNhbGxi
YWNrSUQsIEpTU3RyaW5nUmVmIHJlc3VsdCk7CiAKICAgICAvLyBDb250ZXh0dWFsIG1lbnUgYWN0
aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA5Mjlm
ODVhZjVmODIyZjkyZDYwZGFhYTQ0ZjA0Y2QxMzMzNzFlZjUzLi5jNjE1ZDI4NzJmOWRjODdhOTg4
YzFkM2NiNzVjYzI1NWNhYWNmMTcxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcApAQCAtNzc1LDYgKzc3NSwyMCBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJSdW5VSVByb2Nlc3NTY3JpcHRJbW1lZGlhdGVseSIpKSB7Cisg
ICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2Fz
dDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHNjcmlwdEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIlNjcmlwdCIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGNhbGxiYWNr
SURLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxsYmFja0lE
IikpOworCisgICAgICAgIFVJU2NyaXB0SW52b2NhdGlvbkRhdGEqIGludm9jYXRpb25EYXRhID0g
bmV3IFVJU2NyaXB0SW52b2NhdGlvbkRhdGEoKTsKKyAgICAgICAgaW52b2NhdGlvbkRhdGEtPnRl
c3RJbnZvY2F0aW9uID0gdGhpczsKKyAgICAgICAgaW52b2NhdGlvbkRhdGEtPmNhbGxiYWNrSUQg
PSAodW5zaWduZWQpV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tE
aWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGNhbGxiYWNrSURL
ZXkuZ2V0KCkpKSk7CisgICAgICAgIGludm9jYXRpb25EYXRhLT5zY3JpcHRTdHJpbmcgPSBzdGF0
aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9k
eURpY3Rpb25hcnksIHNjcmlwdEtleS5nZXQoKSkpOworICAgICAgICBtX3BlbmRpbmdVSVNjcmlw
dEludm9jYXRpb25EYXRhID0gaW52b2NhdGlvbkRhdGE7CisgICAgICAgIHJ1blVJU2lkZVNjcmlw
dEltbWVkaWF0ZWx5KG51bGxwdHIsIGludm9jYXRpb25EYXRhKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1l
LCAiSW5zdGFsbEN1c3RvbU1lbnVBY3Rpb24iKSkgewogICAgICAgICBhdXRvIG1lc3NhZ2VCb2R5
RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwog
ICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbmFtZUtleSA9IGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIm5hbWUiKSk7CkBAIC0xODYxLDcgKzE4NzUsNyBAQCBX
S1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIFRl
c3RJbnZvY2F0aW9uOjpydW5VSVNpZGVTY3JpcHRBZnRlclVwZGF0ZUNhbGxiYWNrKFdLRXJyb3JS
ZWYsIHZvaWQqIGNvbnRleHQpCit2b2lkIFRlc3RJbnZvY2F0aW9uOjpydW5VSVNpZGVTY3JpcHRJ
bW1lZGlhdGVseShXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQogewogICAgIFVJU2NyaXB0SW52
b2NhdGlvbkRhdGEqIGRhdGEgPSBzdGF0aWNfY2FzdDxVSVNjcmlwdEludm9jYXRpb25EYXRhKj4o
Y29udGV4dCk7CiAgICAgaWYgKFRlc3RJbnZvY2F0aW9uKiBpbnZvY2F0aW9uID0gZGF0YS0+dGVz
dEludm9jYXRpb24pIHsKQEAgLTE4NzEsNiArMTg4NSwxMSBAQCB2b2lkIFRlc3RJbnZvY2F0aW9u
OjpydW5VSVNpZGVTY3JpcHRBZnRlclVwZGF0ZUNhbGxiYWNrKFdLRXJyb3JSZWYsIHZvaWQqIGNv
bnRleAogICAgIGRlbGV0ZSBkYXRhOwogfQogCit2b2lkIFRlc3RJbnZvY2F0aW9uOjpydW5VSVNp
ZGVTY3JpcHRBZnRlclVwZGF0ZUNhbGxiYWNrKFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqIGNvbnRl
eHQpCit7CisgICAgcnVuVUlTaWRlU2NyaXB0SW1tZWRpYXRlbHkoZXJyb3IsIGNvbnRleHQpOwor
fQorCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpydW5VSVNpZGVTY3JpcHQoV0tTdHJpbmdSZWYgc2Ny
aXB0LCB1bnNpZ25lZCBzY3JpcHRDYWxsYmFja0lEKQogewogICAgIG1fcGVuZGluZ1VJU2NyaXB0
SW52b2NhdGlvbkRhdGEgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5oCmluZGV4IGU0N2M1YzA0OWZiMDE2MThiZjBiODkxZTlmMmI5NTg4NmEwNGJmYjQuLjJk
NjIwNjBjZDk1ZWJjNWUwYjZiZDIxMGE1ZWIyMGYwZjYyYjA2YzUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBwcml2YXRlOgogICAg
ICAgICBUZXN0SW52b2NhdGlvbiogdGVzdEludm9jYXRpb247CiAgICAgfTsKICAgICBzdGF0aWMg
dm9pZCBydW5VSVNpZGVTY3JpcHRBZnRlclVwZGF0ZUNhbGxiYWNrKFdLRXJyb3JSZWYsIHZvaWQq
IGNvbnRleHQpOworICAgIHN0YXRpYyB2b2lkIHJ1blVJU2lkZVNjcmlwdEltbWVkaWF0ZWx5KFdL
RXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpOwogCiAgICAgYm9vbCBzaG91bGRMb2dIaXN0b3J5Q2xp
ZW50Q2FsbGJhY2tzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYmU2NWRlNjhkZWEyYjdkYzY4NGMwOGY4
YWYzMzdmMjYzM2NlOGFjLi44YjczMDhmZGExYWEwOGJhYzgzMjk1NWFmNzJmYTU5OWRmYjhkYWFj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDgtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgaU9TOiBTY3JvbGxpbmcgYW5kIHRvdWNoIGV2
ZW50cyBzcG9yYWRpY2FsbHkgc3RvcCB3b3JraW5nIGFmdGVyIG5hdmlnYXRpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTM2OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjU4MDE1MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvcmVzb3VyY2VzL2Zpbmlz
aC10ZXN0LWFmdGVyLXNjcm9sbGluZy13aXRoLXRvdWNoLWV2ZW50LWhhbmRsZXJzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3VjaC1ldmVudC1zdGFsbC1h
ZnRlci1uYXZpZ2F0aW5nLXdpdGgtcGVuZGluZy1hc3luY2hyb25vdXMtdG91Y2gtc3RhcnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gt
ZXZlbnQtc3RhbGwtYWZ0ZXItbmF2aWdhdGluZy13aXRoLXBlbmRpbmctYXN5bmNocm9ub3VzLXRv
dWNoLXN0YXJ0Lmh0bWw6IEFkZGVkLgorICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgZW5zdXJlcyB0
aGF0IGEgcGFnZSB0aGF0IGhhbmdzIGJyaWVmbHkgaW4gYmVmb3JldW5sb2FkCisgICAgICAgIGFu
ZCByZWNlaXZlcyBwcmV2ZW50YWJsZSB0b3VjaCBldmVudHMgZHVyaW5nIHRoYXQgdGltZSBkb2Vz
IG5vdCByZXN1bHQKKyAgICAgICAgaW4gc2Nyb2xsaW5nIGJlaW5nIHN0dWNrLgorCisgICAgICAg
IEJlZm9yZSB0aGlzIGNoYW5nZSwgdGhpcyB0ZXN0IHdvdWxkIHRpbWUgb3V0LgorCiAyMDIwLTA4
LTEwICBIZWN0b3IgTG9wZXogIDxoZWN0b3JfaV9sb3BlekBhcHBsZS5jb20+CiAKICAgICAgICAg
WyBpT1Mgd2syIF0gY29tcG9zaXRpbmcvY2xpcHBpbmcvYm9yZGVyLXJhZGl1cy1vbi13ZWJnbC5o
dG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3Jlc291cmNlcy9maW5pc2gtdGVzdC1hZnRlci1zY3JvbGxpbmctd2l0aC10
b3VjaC1ldmVudC1oYW5kbGVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3Jlc291cmNlcy9maW5pc2gtdGVzdC1hZnRlci1zY3JvbGxpbmctd2l0aC10b3VjaC1ldmVu
dC1oYW5kbGVycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2YmRhYjYxOWViNWE5OGZiN2FjZjQxMDU2NDJj
ZWI3NDNmYmY1YzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvcmVzb3VyY2VzL2ZpbmlzaC10ZXN0LWFmdGVyLXNjcm9sbGluZy13aXRoLXRvdWNo
LWV2ZW50LWhhbmRsZXJzLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGludGVybmFs
OkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2Fs
ZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c3R5bGU+Cisg
ICAgaHRtbCwgYm9keSB7CisgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICBoZWlnaHQ6IDEw
MCU7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAjc2Nyb2xsZXIgeworICAgICAg
ICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdo
dDogMjAwcHg7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrOworICAgIH0KKworICAg
ICNjb250ZW50IHsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhlaWdodDogMTAwMHB4
OworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgICAgICBjb25zdCBzY3JvbGxlciA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzY3JvbGxlciIpOworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZl
bnRMaXN0ZW5lcigidG91Y2hzdGFydCIsICgpID0+IHsgfSk7CisgICAgICAgICAgICBzY3JvbGxl
ci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsICgpID0+IHsgfSk7CisgICAgICAgICAgICBz
Y3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCAoKSA9PiB7IAorICAgICAgICAgICAg
ICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiU2Nyb2xsZWQhIjsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKQorICAgICAgICAgICAgfSwgeyBvbmNlIDogdHJ1ZSB9KTsK
KworICAgICAgICAgICAgY29uc3QgZXZlbnRTdHJlYW1EYXRhID0gbmV3IFVJSGVscGVyLkV2ZW50
U3RyZWFtQnVpbGRlcigpCisgICAgICAgICAgICAgICAgLmJlZ2luKDEwMCwgMTkwKQorICAgICAg
ICAgICAgICAgIC5tb3ZlKDEwMCwgMTAsIDEpCisgICAgICAgICAgICAgICAgLm1vdmUoMTAwLCAx
OTAsIDEpCisgICAgICAgICAgICAgICAgLm1vdmUoMTAwLCAxMDAsIDAuNSkKKyAgICAgICAgICAg
ICAgICAuZW5kKCkKKyAgICAgICAgICAgICAgICAudGFrZVJlc3VsdCgpOworCisgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci5zZW5kRXZlbnRTdHJlYW0oZXZlbnRTdHJlYW1EYXRhKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmaW5pc2hUZXN0KTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNjcm9sbGVyIj4KKyAg
ICAgICAgPGRpdiBpZD0iY29udGVudCI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gt
ZXZlbnQtc3RhbGwtYWZ0ZXItbmF2aWdhdGluZy13aXRoLXBlbmRpbmctYXN5bmNocm9ub3VzLXRv
dWNoLXN0YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy90b3VjaC1ldmVudC1zdGFsbC1hZnRlci1uYXZpZ2F0aW5nLXdpdGgtcGVuZGluZy1hc3luY2hy
b25vdXMtdG91Y2gtc3RhcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlYTdkMGY1ZmZiOGYw
NmFhNWRkZGE4Yzg3Y2RkNTZlYzI3ZWZjODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtc3RhbGwtYWZ0ZXItbmF2aWdhdGlu
Zy13aXRoLXBlbmRpbmctYXN5bmNocm9ub3VzLXRvdWNoLXN0YXJ0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxIEBACitTY3JvbGxlZCEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90b3VjaC1ldmVudC1zdGFsbC1hZnRlci1uYXZpZ2F0aW5nLXdpdGgtcGVuZGlu
Zy1hc3luY2hyb25vdXMtdG91Y2gtc3RhcnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90b3VjaC1ldmVudC1zdGFsbC1hZnRlci1uYXZpZ2F0aW5nLXdpdGgtcGVuZGlu
Zy1hc3luY2hyb25vdXMtdG91Y2gtc3RhcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmE1N2Q5OTU2NzQx
ZDUxOWQ1MTNhNzc1ZmQ4MmQ3ZGZmNmY5NTIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRp
bmctd2l0aC1wZW5kaW5nLWFzeW5jaHJvbm91cy10b3VjaC1zdGFydC5odG1sCkBAIC0wLDAgKzEs
MzMgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhp
YmxlVmlld3BvcnQ9dHJ1ZSBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10
cnVlIF0gLS0+Cis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAg
ICAgICAgIGNvbnN0IHRhcHBlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXBwZXIiKTsK
KyAgICAgICAgICAgIHRhcHBlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgKCkgPT4g
eyB9KTsKKyAgICAgICAgICAgIHRhcHBlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsICgp
ID0+IHsgfSk7CisKKyAgICAgICAgICAgIGNvbnN0IHggPSB0YXBwZXIub2Zmc2V0TGVmdCArICh0
YXBwZXIub2Zmc2V0V2lkdGggLyAyKTsKKyAgICAgICAgICAgIGNvbnN0IHkgPSB0YXBwZXIub2Zm
c2V0VG9wICsgKHRhcHBlci5vZmZzZXRIZWlnaHQgLyAyKTsKKworICAgICAgICAgICAgd2luZG93
Lm9uYmVmb3JldW5sb2FkID0gYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYXdh
aXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdEltbWVk
aWF0ZWx5KGAKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRvdWJsZVRhcEF0UG9p
bnQoJHt4fSwgJHt5fSwgLjAxLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIH0p
O2AsIHJlc29sdmUpIH0pOworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgd2luZG93Lmxv
Y2F0aW9uLmhyZWYgPSAicmVzb3VyY2VzL2ZpbmlzaC10ZXN0LWFmdGVyLXNjcm9sbGluZy13aXRo
LXRvdWNoLWV2ZW50LWhhbmRsZXJzLmh0bWwiOworICAgICAgICB9CisKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcnVuVGVzdCk7CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJ0YXBwZXIiPlRhcCBIZXJlPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406373</attachid>
            <date>2020-08-11 03:55:55 -0700</date>
            <delta_ts>2020-08-11 13:17:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215368-20200811035554.patch</filename>
            <type>text/plain</type>
            <size>22499</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ZmU4MWI5Y2Q3MWY3MzA1
NGVhY2FhYjI5MDNmN2ZmZWM3NTFmYjEuLjdkMDQxN2I0ZmM4NjEwODQxNWVmNjEzODc4NmY2YmNm
Mjg3OWExOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDgtMTEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgaU9TOiBTY3JvbGxpbmcg
YW5kIHRvdWNoIGV2ZW50cyBzcG9yYWRpY2FsbHkgc3RvcCB3b3JraW5nIGFmdGVyIG5hdmlnYXRp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTM2
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU4MDE1MzE+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3RvdWNoLWV2ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRpbmctd2l0aC1wZW5kaW5nLWFzeW5jaHJv
bm91cy10b3VjaC1zdGFydC5odG1sCisKKyAgICAgICAgV2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2
ZW50YWJsZVRvdWNoRXZlbnQga2VlcHMgYSBjb3VudGVyIG9mIHRoZSBudW1iZXIKKyAgICAgICAg
b2Ygb3V0c3RhbmRpbmcgInByZXZlbnRhYmxlIiB0b3VjaCBldmVudHMgdGhhdCBpdCBpcyB3YWl0
aW5nIHRvIGhlYXIKKyAgICAgICAgZnJvbSB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcyBhYm91dC4g
VGhpcyBjb3VudGVyIGlzIGluY3JlbWVudGVkIHdoZW4gdGhlCisgICAgICAgIGV2ZW50IGlzIGRp
c3BhdGNoZWQgdG8gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MncyBFdmVudEhhbmRsZXIgcXVldWUs
CisgICAgICAgIGFuZCBkZWNyZW1lbnRlZCB3aGVuIHRoZSByZXBseSAod2hldGhlciBpdCB3YXMg
aGFuZGxlZCBvciBub3QpIGNvbWVzCisgICAgICAgIGJhY2sgZnJvbSB0aGUgV2ViIENvbnRlbnQg
cHJvY2Vzcy4gV2hpbGUgdGhlIGNvdW50ZXIgaXMgbm9uLXplcm8sIGFsbAorICAgICAgICBkZWZl
cnJhYmxlIGdlc3R1cmVzIHJlbWFpbiBkZWZlcnJlZCAoYW5kIHdoZW4gaXQgcmV0dXJucyB0byB6
ZXJvLCB0aGUKKyAgICAgICAgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBnYXRlIGlzIGxp
ZnRlZCwgYW5kIGV2ZW50cyBhcmUgYWxsb3dlZCB0byBmbG93KS4KKyAgICAgICAgVGhpcyBtZWFu
cyB0aGF0IGl0IGlzIHZlcnkgaW1wb3J0YW50IHRoYXQgZXZlcnkgZXZlbnQgZXZlbnR1YWxseSBy
ZXBseQorICAgICAgICBhYm91dCBpdHMgaGFuZGxpbmcgc3RhdHVzLgorCisgICAgICAgIEJlZm9y
ZSB0aGlzIGNoYW5nZSwgd2hlbiB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcyBpcyBuYXZpZ2F0aW5n
LCBhbmQgcmVhY2hlcyBkaWRDb21taXRMb2FkLAorICAgICAgICBpdCBjbGVhcmVkIGFsbCBxdWV1
ZWQgdG91Y2ggZXZlbnRzLCB3aXRob3V0IHJlcGx5aW5nIHRvIHRvIHRoZSBVSSBwcm9jZXNzLgor
ICAgICAgICBUaHVzLCB0aGVyZSBpcyBhIHNtYWxsIHdpbmRvdyBvZiB0aW1lIGluIHdoaWNoIGFu
IGluY29taW5nIHRvdWNoIGV2ZW50IHdpbGwKKyAgICAgICAgZW5kIHVwIGluIHRoZSBxdWV1ZSwg
Km5vdCogZ2V0IGRpc3BhdGNoZWQvcmVwbGllZCwgYW5kIHRoZW4gZ2V0IGRyb3BwZWQgb24KKyAg
ICAgICAgdGhlIGZsb29yIGluIGRpZENvbW1pdExvYWQuIE1vc3QgZXZlbnRzIGRvIG5vdCBtZWV0
IHRoaXMgZmF0ZSwgYmVjYXVzZSB0aGV5CisgICAgICAgIGFyZSBoYW5kbGVkIHByb21wdGx5LCBh
bmQgY29tbWl0TG9hZC9kaWRDb21taXRMb2FkIHRlbmQgdG8gYmUgdmVyeSBxdWljay4KKyAgICAg
ICAgSG93ZXZlciwgaWYgdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgZW5kcyB1cCBzcGVuZGluZyBh
bnkgc2lnbmlmaWNhbnQgYW1vdW50CisgICAgICAgIG9mIHRpbWUgdW5kZXIgY29tbWl0TG9hZCAo
c2F5LCBpbiBhbiB1bmxvYWQgaGFuZGxlciwgb3IgaW4gbWVkaWEgZnJhbWV3b3JrcyksCisgICAg
ICAgIGFueSBpbmNvbWluZyB0b3VjaCBldmVudHMgZHVyaW5nIHRoYXQgdGltZSB3aWxsIGdldCBs
b3N0LCBhbmQgdGhlIFVJIHByb2Nlc3MnCisgICAgICAgIGNvdW50IG9mIG91dHN0YW5kaW5nIGV2
ZW50cyB3aWxsIGVuZCB1cCBnZXR0aW5nIHN0dWNrIG5vbi16ZXJvLgorCisgICAgICAgIEZpeCB0
aGlzIGJ5IGFsd2F5cyBwcmV0ZW5kaW5nIHRoYXQgdGhlIHBhZ2UgYXRlIGFueSBldmVudHMgdGhh
dCB3ZXJlIG91dHN0YW5kaW5nCisgICAgICAgIHdoZW4gZGlkQ29tbWl0TG9hZCBvY2N1cnMsIGlu
c3RlYWQgb2YganVzdCBkcm9wcGluZyB0aGVtIG9uIHRoZSBmbG9vci4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNo
ZXI6OnRha2VRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpFdmVu
dERpc3BhdGNoZXI6OmNsZWFyUXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpnZXRRdWV1ZWRUb3VjaEV2ZW50c0ZvclBh
Z2UpOiBEZWxldGVkLgorICAgICAgICBBbHNvLCByZW5hbWUgZ2V0UXVldWVkVG91Y2hFdmVudHNG
b3JQYWdlIHRvIHRha2VRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UsCisgICAgICAgIHNpbmNlIGl0
IHJlbW92ZXMgdGhlIHF1ZXVlIGZyb20gRXZlbnREaXNwYXRjaGVyJ3Mgc2V0LgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dG91
Y2hFdmVudFN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2FkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Y2FuY2VsQXN5bmNocm9ub3VzVG91Y2hFdmVudHMpOgorCiAyMDIwLTA4LTEwICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEFsd2F5cyBzdXNwZW5kIElEQiB3
b3JrIHdoZW4gbmV0d29yayBwcm9jZXNzIGlzIHByZXBhcmVkIHRvIHN1c3BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAxNTVm
ZmUxYTAxYjJmNzQ5ZjQ4NzAzZTljMzlkODM3Mjg3Mzc5MTJjLi4wYTU1ODQwOWQwMjg2NTY2MDQy
OTExMWY1NjRlMzI2OWM5MjhkMjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NTAsOSArNDUwLDkgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiBl
dmVudCwgYm9vbAogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLXZvaWQgUGFnZUNsaWVu
dEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBuYXRp
dmVXZWJ0b3VjaEV2ZW50LCBib29sIGV2ZW50SGFuZGxlZCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBuYXRpdmVXZWJU
b3VjaEV2ZW50LCBib29sIGV2ZW50SGFuZGxlZCkKIHsKLSAgICBbbV9jb250ZW50VmlldyBfd2Vi
VG91Y2hFdmVudDpuYXRpdmVXZWJ0b3VjaEV2ZW50IHByZXZlbnRzTmF0aXZlR2VzdHVyZXM6ZXZl
bnRIYW5kbGVkXTsKKyAgICBbbV9jb250ZW50VmlldyBfd2ViVG91Y2hFdmVudDpuYXRpdmVXZWJU
b3VjaEV2ZW50IHByZXZlbnRzTmF0aXZlR2VzdHVyZXM6ZXZlbnRIYW5kbGVkXTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcAppbmRleCAxODE4MTI1MjBkNTRiMzQwYjdkYjVlMzA5ZmE0MmYyY2U5MWNjMDg3
Li40NTQyZmM2YzFjODkwZjFhZWYwNDE2MDYwNWI2MDk4YjIxNDc0YzdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAg
LTE3NiwxMyArMTc2LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6Omdlc3R1cmVFdmVudChQYWdl
SWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYktpdDo6V2ViR2VzdHUKICNlbmRpZgogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6Y2xlYXJRdWV1
ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYgd2ViUGFnZSkKLXsKLSAgICBMb2Nr
SG9sZGVyIGxvY2tlcigmbV90b3VjaEV2ZW50c0xvY2spOwotICAgIG1fdG91Y2hFdmVudHMucmVt
b3ZlKHdlYlBhZ2UuaWRlbnRpZmllcigpKTsKLX0KLQotdm9pZCBFdmVudERpc3BhdGNoZXI6Omdl
dFF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiB3ZWJQYWdlLCBUb3VjaEV2
ZW50UXVldWUmIGRlc3RpbmF0aW9uUXVldWUpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6dGFrZVF1
ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiB3ZWJQYWdlLCBUb3VjaEV2ZW50
UXVldWUmIGRlc3RpbmF0aW9uUXVldWUpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIoJm1fdG91
Y2hFdmVudHNMb2NrKTsKICAgICBkZXN0aW5hdGlvblF1ZXVlID0gbV90b3VjaEV2ZW50cy50YWtl
KHdlYlBhZ2UuaWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggOGZjMjFiNDcxYjAxOWMxMmFhNjMxMWJk
MGFjNGQyNmIwYjI4NTk0MS4uNDQzM2EzY2UwZmYzYWQyYjAzYTczZTJiYWZkNDc4NWEzNTM4YTgx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmgKQEAgLTYzLDkgKzYzLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCiAgICAgdXNpbmcgVG91Y2hFdmVudFF1ZXVlID0gVmVjdG9yPHN0ZDo6cGFpcjxX
ZWJUb3VjaEV2ZW50LCBPcHRpb25hbDxDYWxsYmFja0lEPj4sIDE+OwotCi0gICAgdm9pZCBjbGVh
clF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJik7Ci0gICAgdm9pZCBnZXRR
dWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYsIFRvdWNoRXZlbnRRdWV1ZSYp
OworICAgIHZvaWQgdGFrZVF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiwg
VG91Y2hFdmVudFF1ZXVlJik7CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDI3NDJmMTNlY2YzNmQ2MGNjZmQ2N2EzZmQyMTU0NzViMDA2NGY4
MzIuLmE2YWMwNmFjNmQ0MDZmNTA2MjAxYzllNDFkOTc1YjRlMTcyYmQ0NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yOTg1LDcgKzI5ODUs
NyBAQCB2b2lkIFdlYlBhZ2U6OnRvdWNoRXZlbnRTeW5jKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRv
dWNoRXZlbnQsIENvbXBsZXRpb25IYW5kbGVyPAogICAgIG1fcGVuZGluZ1N5bmNocm9ub3VzVG91
Y2hFdmVudFJlcGx5ID0gV1RGTW92ZShyZXBseSk7CiAKICAgICBFdmVudERpc3BhdGNoZXI6OlRv
dWNoRXZlbnRRdWV1ZSBxdWV1ZWRFdmVudHM7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZXZlbnREaXNwYXRjaGVyKCkuZ2V0UXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKCp0aGlzLCBxdWV1
ZWRFdmVudHMpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV2ZW50RGlzcGF0Y2hlcigp
LnRha2VRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoKnRoaXMsIHF1ZXVlZEV2ZW50cyk7CiAgICAg
ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhxdWV1ZWRFdmVudHMpOwogCiAgICAgYm9v
bCBoYW5kbGVkID0gdHJ1ZTsKQEAgLTU5ODcsNyArNTk4Nyw5IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
Q29tbWl0TG9hZChXZWJGcmFtZSogZnJhbWUpCiAgICAgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JZEFuZFBhZ2VTY2FsZUJlZm9yZVNjYWxpbmdQYWdlID0gV1RGOjpudWxsb3B0OwogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXZl
bnREaXNwYXRjaGVyKCkuY2xlYXJRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoKnRoaXMpOworICAg
IEV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudFF1ZXVlIHF1ZXVlZEV2ZW50czsKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5ldmVudERpc3BhdGNoZXIoKS50YWtlUXVldWVkVG91Y2hFdmVu
dHNGb3JQYWdlKCp0aGlzLCBxdWV1ZWRFdmVudHMpOworICAgIGNhbmNlbEFzeW5jaHJvbm91c1Rv
dWNoRXZlbnRzKHF1ZXVlZEV2ZW50cyk7CiAjZW5kaWYKICNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggNjE3ZTZhZjJmZDM2Y2RiODkzYzAyYzEyMjAzM2UyODcxNWJhNjQ5MC4uYzdmYjM0ZTY5Mzc0
MmM5OTA0MWExYzkxYjIyMzZjOTE5ZDU0YTQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzU4LDYgKzc1OCw3IEBAIHB1YmxpYzoKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQg
ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFdl
YlRvdWNoRXZlbnQsIE9wdGlvbmFsPENhbGxiYWNrSUQ+PiwgMT4mIHF1ZXVlKTsKKyAgICB2b2lk
IGNhbmNlbEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V2Vi
VG91Y2hFdmVudCwgT3B0aW9uYWw8Q2FsbGJhY2tJRD4+LCAxPiYgcXVldWUpOwogI2VuZGlmCiAK
ICAgICBib29sIGhhc1JpY2hseUVkaXRhYmxlU2VsZWN0aW9uKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGQz
YTlkYTQ2Y2ZlZjI1ODA2ZTJlOGMxNzUzZGQ5NmRjN2YxNjc4ZjUuLmM0NzQ4ZjQ4YjZjODEwOGU0
MGU1NGY1Y2Q1OWE3NTZmZDM0ZWIzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0zOTQzLDYgKzM5NDMsMTUgQEAgdm9p
ZCBXZWJQYWdlOjpkaXNwYXRjaEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3Rvcjxz
dGQ6OnBhaXI8V2ViVG91Y2hFdmUKICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6Qm9vbENhbGxiYWNrKGhhbmRsZWQsICpldmVudEFuZENhbGxiYWNrSUQuc2Vjb25kKSk7
CiAgICAgfQogfQorCit2b2lkIFdlYlBhZ2U6OmNhbmNlbEFzeW5jaHJvbm91c1RvdWNoRXZlbnRz
KGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V2ViVG91Y2hFdmVudCwgT3B0aW9uYWw8Q2FsbGJhY2tJ
RD4+LCAxPiYgcXVldWUpCit7CisgICAgZm9yIChhdXRvJiBldmVudEFuZENhbGxiYWNrSUQgOiBx
dWV1ZSkgeworICAgICAgICBpZiAoIWV2ZW50QW5kQ2FsbGJhY2tJRC5zZWNvbmQpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCb29s
Q2FsbGJhY2sodHJ1ZSwgKmV2ZW50QW5kQ2FsbGJhY2tJRC5zZWNvbmQpKTsKKyAgICB9Cit9CiAj
ZW5kaWYKIAogdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BE
RihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmlu
dEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkmJiByZXBseSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMjFlNDNlNjEw
MGRkYjc4OTkxM2UxODNiMGFjYjdmYjAwNjE4YjUwLi4wNzIyZTdmNzU3YThmOTgzODJjZmQwNmJh
Y2UzY2QzOGVmNDg1YmVjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDgtMTEgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgaU9TOiBTY3JvbGxpbmcgYW5kIHRvdWNo
IGV2ZW50cyBzcG9yYWRpY2FsbHkgc3RvcCB3b3JraW5nIGFmdGVyIG5hdmlnYXRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTM2OAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjU4MDE1MzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnJ1blVJ
U2NyaXB0SW1tZWRpYXRlbHkpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6cnVu
VUlTaWRlU2NyaXB0SW1tZWRpYXRlbHkpOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6
cnVuVUlTaWRlU2NyaXB0QWZ0ZXJVcGRhdGVDYWxsYmFjayk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oOgorICAgICAgICBBZGQgYSB2YXJpYW50IG9mIHJ1blVJ
U2lkZVNjcmlwdCB0aGF0IHJ1bnMgdGhlIHNjcmlwdCB3aXRob3V0CisgICAgICAgIHdhaXRpbmcg
Zm9yIGEgcmVuZGVyaW5nIHVwZGF0ZS4KKworICAgICAgICBJdCBtYWtlcyBzZW5zZSBmb3IgdGhl
IGRlZmF1bHQgcnVuVUlTaWRlU2NyaXB0IHRvIHdhaXQgZm9yIGEgcmVuZGVyaW5nCisgICAgICAg
IHVwZGF0ZSAtLSBuZWFybHkgZXZlcnkgdGVzdCBpcyBlaXRoZXIgdW5hZmZlY3RlZCBvciBpbXBy
b3ZlZCBieSB0aGlzIC0tCisgICAgICAgIGJ1dCBmb3IgdGhlIHRlc3QgZm9yIHRoaXMgYnVnLCBz
aW5jZSB3ZSBoYXZlIGh1bmcgdGhlIFdlYiBDb250ZW50IHByb2Nlc3MKKyAgICAgICAgbWFpbiB0
aHJlYWQgaW50ZW50aW9uYWxseSwgd2Ugd2lsbCBub3Qgc2VlIGEgcmVuZGVyaW5nIHVwZGF0ZSwg
YW5kIHNvCisgICAgICAgIHRoZSBVSS1zaWRlIHNjcmlwdCB3aWxsIG5ldmVyIHJ1bi4KKwogMjAy
MC0wOC0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMjYwODMxKTogV2ViIHByb2Nlc3MgY3Jhc2hlcyB1bmRlciBFZGl0b3I6
OnNldENvbXBvc2l0aW9uKCkgYWZ0ZXIgbmF2aWdhdGluZyB3aXRoIG1hcmtlZCB0ZXh0CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBkYzYzYzVkZDhiYjRkODZiZTNmNjI3MWFkYTI4OGY4
N2ZkNDIwYTE5Li41NWFhNzMwNmNiYjY0NGE1NWY0MjEwYjA3YTFiMDRkZDljMGRiMWE4IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTI3NSw2ICsyNzUsNyBAQCBpbnRlcmZhY2UgVGVz
dFJ1bm5lciB7CiAKICAgICAvLyBVSSBQcm9jZXNzIFRlc3RpbmcKICAgICB2b2lkIHJ1blVJU2Ny
aXB0KERPTVN0cmluZyBzY3JpcHQsIG9iamVjdCBjYWxsYmFjayk7CisgICAgdm9pZCBydW5VSVNj
cmlwdEltbWVkaWF0ZWx5KERPTVN0cmluZyBzY3JpcHQsIG9iamVjdCBjYWxsYmFjayk7CiAKICAg
ICB2b2lkIGNsZWFyVGVzdFJ1bm5lckNhbGxiYWNrcygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAyOTY3MmY5
ZTE1NTljYTJkZTBjNjg5YTQ2YzNlYTJjNTYwMWI2MGU4Li43MjAxODI2OTUyZTlmZjJmNDEwNDhk
ZjkzNWIzOGRkNDc3NzZmMDMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEzMjQsNiArMTMyNCwyNyBAQCB2b2lk
IFRlc3RSdW5uZXI6OnJ1blVJU2NyaXB0KEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNWYWx1ZVJlZiBj
YWxsYmFjaykKICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCB0ZXN0RGljdGlvbmFy
eS5nZXQoKSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6cnVuVUlTY3JpcHRJbW1lZGlhdGVseShK
U1N0cmluZ1JlZiBzY3JpcHQsIEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgdW5zaWduZWQg
Y2FsbGJhY2tJRCA9IG5leHRVSVNjcmlwdENhbGxiYWNrSUQoKTsKKyAgICBjYWNoZVRlc3RSdW5u
ZXJDYWxsYmFjayhjYWxsYmFja0lELCBjYWxsYmFjayk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJSdW5VSVByb2Nlc3NTY3JpcHRJbW1lZGlhdGVseSIpKTsKKworICAgIFdLUmV0YWluUHRy
PFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IHRlc3REaWN0aW9uYXJ5ID0gYWRvcHRXSyhXS011dGFi
bGVEaWN0aW9uYXJ5Q3JlYXRlKCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNj
cmlwdEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNjcmlwdCIp
KTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc2NyaXB0VmFsdWUgPSBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKHNjcmlwdCkpOworCisgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGNhbGxiYWNrSURLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJDYWxsYmFja0lEIikpOworICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiBjYWxs
YmFja0lEVmFsdWUgPSBhZG9wdFdLKFdLVUludDY0Q3JlYXRlKGNhbGxiYWNrSUQpKTsKKworICAg
IFdLRGljdGlvbmFyeVNldEl0ZW0odGVzdERpY3Rpb25hcnkuZ2V0KCksIHNjcmlwdEtleS5nZXQo
KSwgc2NyaXB0VmFsdWUuZ2V0KCkpOworICAgIFdLRGljdGlvbmFyeVNldEl0ZW0odGVzdERpY3Rp
b25hcnkuZ2V0KCksIGNhbGxiYWNrSURLZXkuZ2V0KCksIGNhbGxiYWNrSURWYWx1ZS5nZXQoKSk7
CisKKyAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkucGFnZSgpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCB0ZXN0RGljdGlvbmFyeS5nZXQo
KSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6cnVuVUlTY3JpcHRDYWxsYmFjayh1bnNpZ25lZCBj
YWxsYmFja0lELCBKU1N0cmluZ1JlZiByZXN1bHQpCiB7CiAgICAgV0tCdW5kbGVGcmFtZVJlZiBt
YWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYWI2NWQ0MGQ0MjI2ODA5MzQwOTJjZjNm
ODJkODFjNWU5YWIyMGQwMy4uMDU2MTllMzI3MTcwMGJiMWZmMjQ5YmI5ZDU1ODZhOWNiODRkMWFi
OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKQEAgLTM1MCw2ICszNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdChib29sIHZhbHVlKSB7IG1fZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Qg
PSB2YWx1ZTsgfQogCiAgICAgdm9pZCBydW5VSVNjcmlwdChKU1N0cmluZ1JlZiBzY3JpcHQsIEpT
VmFsdWVSZWYgY2FsbGJhY2spOworICAgIHZvaWQgcnVuVUlTY3JpcHRJbW1lZGlhdGVseShKU1N0
cmluZ1JlZiBzY3JpcHQsIEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQgcnVuVUlTY3Jp
cHRDYWxsYmFjayh1bnNpZ25lZCBjYWxsYmFja0lELCBKU1N0cmluZ1JlZiByZXN1bHQpOwogCiAg
ICAgLy8gQ29udGV4dHVhbCBtZW51IGFjdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAKaW5kZXggOTI5Zjg1YWY1ZjgyMmY5MmQ2MGRhYWE0NGYwNGNkMTMzMzcx
ZWY1My4uYzYxNWQyODcyZjlkYzg3YTk4OGMxZDNjYjc1Y2MyNTVjYWFjZjE3MSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTc3NSw2ICs3NzUsMjAgQEAg
dm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUo
V0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiUnVuVUlQcm9jZXNz
U2NyaXB0SW1tZWRpYXRlbHkiKSkgeworICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJv
ZHlEaWN0aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzY3JpcHRLZXkgPSBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTY3JpcHQiKSk7CisgICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBjYWxsYmFja0lES2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiQ2FsbGJhY2tJRCIpKTsKKworICAgICAgICBVSVNjcmlwdEludm9jYXRp
b25EYXRhKiBpbnZvY2F0aW9uRGF0YSA9IG5ldyBVSVNjcmlwdEludm9jYXRpb25EYXRhKCk7Cisg
ICAgICAgIGludm9jYXRpb25EYXRhLT50ZXN0SW52b2NhdGlvbiA9IHRoaXM7CisgICAgICAgIGlu
dm9jYXRpb25EYXRhLT5jYWxsYmFja0lEID0gKHVuc2lnbmVkKVdLVUludDY0R2V0VmFsdWUoc3Rh
dGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJv
ZHlEaWN0aW9uYXJ5LCBjYWxsYmFja0lES2V5LmdldCgpKSkpOworICAgICAgICBpbnZvY2F0aW9u
RGF0YS0+c2NyaXB0U3RyaW5nID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFy
eUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBzY3JpcHRLZXkuZ2V0KCkpKTsK
KyAgICAgICAgbV9wZW5kaW5nVUlTY3JpcHRJbnZvY2F0aW9uRGF0YSA9IGludm9jYXRpb25EYXRh
OworICAgICAgICBydW5VSVNpZGVTY3JpcHRJbW1lZGlhdGVseShudWxscHRyLCBpbnZvY2F0aW9u
RGF0YSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkluc3RhbGxDdXN0b21NZW51QWN0aW9uIikpIHsK
ICAgICAgICAgYXV0byBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rp
b25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IG5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJuYW1lIikp
OwpAQCAtMTg2MSw3ICsxODc1LDcgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBUZXN0SW52b2NhdGlvbjo6cnVuVUlTaWRlU2NyaXB0QWZ0
ZXJVcGRhdGVDYWxsYmFjayhXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQordm9pZCBUZXN0SW52
b2NhdGlvbjo6cnVuVUlTaWRlU2NyaXB0SW1tZWRpYXRlbHkoV0tFcnJvclJlZiwgdm9pZCogY29u
dGV4dCkKIHsKICAgICBVSVNjcmlwdEludm9jYXRpb25EYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8
VUlTY3JpcHRJbnZvY2F0aW9uRGF0YSo+KGNvbnRleHQpOwogICAgIGlmIChUZXN0SW52b2NhdGlv
biogaW52b2NhdGlvbiA9IGRhdGEtPnRlc3RJbnZvY2F0aW9uKSB7CkBAIC0xODcxLDYgKzE4ODUs
MTEgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6cnVuVUlTaWRlU2NyaXB0QWZ0ZXJVcGRhdGVDYWxs
YmFjayhXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXgKICAgICBkZWxldGUgZGF0YTsKIH0KIAordm9p
ZCBUZXN0SW52b2NhdGlvbjo6cnVuVUlTaWRlU2NyaXB0QWZ0ZXJVcGRhdGVDYWxsYmFjayhXS0Vy
cm9yUmVmIGVycm9yLCB2b2lkKiBjb250ZXh0KQoreworICAgIHJ1blVJU2lkZVNjcmlwdEltbWVk
aWF0ZWx5KGVycm9yLCBjb250ZXh0KTsKK30KKwogdm9pZCBUZXN0SW52b2NhdGlvbjo6cnVuVUlT
aWRlU2NyaXB0KFdLU3RyaW5nUmVmIHNjcmlwdCwgdW5zaWduZWQgc2NyaXB0Q2FsbGJhY2tJRCkK
IHsKICAgICBtX3BlbmRpbmdVSVNjcmlwdEludm9jYXRpb25EYXRhID0gbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCBlNDdjNWMwNDlmYjAxNjE4YmYw
Yjg5MWU5ZjJiOTU4ODZhMDRiZmI0Li4yZDYyMDYwY2Q5NWViYzVlMGI2YmQyMTBhNWViMjBmMGY2
MmIwNmM1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCkBAIC0xMzAs
NiArMTMwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgVGVzdEludm9jYXRpb24qIHRlc3RJbnZvY2F0
aW9uOwogICAgIH07CiAgICAgc3RhdGljIHZvaWQgcnVuVUlTaWRlU2NyaXB0QWZ0ZXJVcGRhdGVD
YWxsYmFjayhXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KTsKKyAgICBzdGF0aWMgdm9pZCBydW5V
SVNpZGVTY3JpcHRJbW1lZGlhdGVseShXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KTsKIAogICAg
IGJvb2wgc2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcygpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZWJlNjVkZTY4ZGVhMmI3ZGM2ODRjMDhmOGFmMzM3ZjI2MzNjZThhYy4uOGI3MzA4ZmRhMWFhMDhi
YWM4MzI5NTVhZjcyZmE1OTlkZmI4ZGFhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA4
LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIGlP
UzogU2Nyb2xsaW5nIGFuZCB0b3VjaCBldmVudHMgc3BvcmFkaWNhbGx5IHN0b3Agd29ya2luZyBh
ZnRlciBuYXZpZ2F0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTUzNjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1ODAxNTMxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3Jlc291cmNlcy9maW5pc2gtdGVzdC1hZnRlci1zY3JvbGxpbmctd2l0aC10b3Vj
aC1ldmVudC1oYW5kbGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9pb3MvdG91Y2gtZXZlbnQtc3RhbGwtYWZ0ZXItbmF2aWdhdGluZy13aXRoLXBlbmRpbmctYXN5
bmNocm9ub3VzLXRvdWNoLXN0YXJ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRpbmctd2l0
aC1wZW5kaW5nLWFzeW5jaHJvbm91cy10b3VjaC1zdGFydC5odG1sOiBBZGRlZC4KKyAgICAgICAg
QWRkIGEgdGVzdCB0aGF0IGVuc3VyZXMgdGhhdCBhIHBhZ2UgdGhhdCBoYW5ncyBicmllZmx5IGlu
IGJlZm9yZXVubG9hZAorICAgICAgICBhbmQgcmVjZWl2ZXMgcHJldmVudGFibGUgdG91Y2ggZXZl
bnRzIGR1cmluZyB0aGF0IHRpbWUgZG9lcyBub3QgcmVzdWx0CisgICAgICAgIGluIHNjcm9sbGlu
ZyBiZWluZyBzdHVjay4KKworICAgICAgICBCZWZvcmUgdGhpcyBjaGFuZ2UsIHRoaXMgdGVzdCB3
b3VsZCB0aW1lIG91dC4KKwogMjAyMC0wOC0xMCAgSGVjdG9yIExvcGV6ICA8aGVjdG9yX2lfbG9w
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIHdrMiBdIGNvbXBvc2l0aW5nL2NsaXBwaW5n
L2JvcmRlci1yYWRpdXMtb24td2ViZ2wuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMvZmluaXNoLXRl
c3QtYWZ0ZXItc2Nyb2xsaW5nLXdpdGgtdG91Y2gtZXZlbnQtaGFuZGxlcnMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMvZmluaXNoLXRlc3QtYWZ0ZXIt
c2Nyb2xsaW5nLXdpdGgtdG91Y2gtZXZlbnQtaGFuZGxlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmJk
YWI2MTllYjVhOThmYjdhY2Y0MTA1NjQyY2ViNzQzZmJmNWM2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Jlc291cmNlcy9maW5pc2gtdGVzdC1h
ZnRlci1zY3JvbGxpbmctd2l0aC10b3VjaC1ldmVudC1oYW5kbGVycy5odG1sCkBAIC0wLDAgKzEs
NTQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhp
YmxlVmlld3BvcnQ9dHJ1ZSBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10
cnVlIF0gLS0+Cis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgIGh0bWwsIGJvZHkgeworICAgICAgICB3aWR0aDog
MTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICBtYXJnaW46IDA7CisgICAgfQor
CisgICAgI3Njcm9sbGVyIHsKKyAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgd2lk
dGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBib3JkZXI6IDJweCBz
b2xpZCBibGFjazsKKyAgICB9CisKKyAgICAjY29udGVudCB7CisgICAgICAgIHdpZHRoOiAxMDAl
OworICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBhc3luYyBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAg
Y29uc3Qgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Nyb2xsZXIiKTsKKyAg
ICAgICAgICAgIHNjcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCAoKSA9PiB7
IH0pOworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCAo
KSA9PiB7IH0pOworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xs
IiwgKCkgPT4geyAKKyAgICAgICAgICAgICAgICBjb250ZW50LnRleHRDb250ZW50ID0gIlNjcm9s
bGVkISI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCkKKyAgICAgICAg
ICAgIH0sIHsgb25jZSA6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RyZWFt
RGF0YSA9IG5ldyBVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIoKQorICAgICAgICAgICAgICAg
IC5iZWdpbigxMDAsIDE5MCkKKyAgICAgICAgICAgICAgICAubW92ZSgxMDAsIDEwLCAxKQorICAg
ICAgICAgICAgICAgIC5tb3ZlKDEwMCwgMTkwLCAxKQorICAgICAgICAgICAgICAgIC5tb3ZlKDEw
MCwgMTAwLCAwLjUpCisgICAgICAgICAgICAgICAgLmVuZCgpCisgICAgICAgICAgICAgICAgLnRh
a2VSZXN1bHQoKTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuc2VuZEV2ZW50U3RyZWFt
KGV2ZW50U3RyZWFtRGF0YSk7CisgICAgICAgIH0KKworICAgICAgICBhZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgZmluaXNoVGVzdCk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8ZGl2IGlkPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPjwvZGl2Pgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRpbmctd2l0
aC1wZW5kaW5nLWFzeW5jaHJvbm91cy10b3VjaC1zdGFydC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtc3RhbGwtYWZ0ZXItbmF2aWdh
dGluZy13aXRoLXBlbmRpbmctYXN5bmNocm9ub3VzLXRvdWNoLXN0YXJ0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZWE3ZDBmNWZmYjhmMDZhYTVkZGRhOGM4N2NkZDU2ZWMyN2VmYzg2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2
ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRpbmctd2l0aC1wZW5kaW5nLWFzeW5jaHJvbm91cy10b3Vj
aC1zdGFydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorU2Nyb2xsZWQhCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtc3RhbGwtYWZ0
ZXItbmF2aWdhdGluZy13aXRoLXBlbmRpbmctYXN5bmNocm9ub3VzLXRvdWNoLXN0YXJ0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdG91Y2gtZXZlbnQtc3RhbGwtYWZ0
ZXItbmF2aWdhdGluZy13aXRoLXBlbmRpbmctYXN5bmNocm9ub3VzLXRvdWNoLXN0YXJ0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGZhNTdkOTk1Njc0MWQ1MTlkNTEzYTc3NWZkODJkN2RmZjZmOTUyMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3VjaC1l
dmVudC1zdGFsbC1hZnRlci1uYXZpZ2F0aW5nLXdpdGgtcGVuZGluZy1hc3luY2hyb25vdXMtdG91
Y2gtc3RhcnQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgaW50ZXJuYWw6QXN5bmNP
dmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVz
ZXItc2NhbGFibGU9bm8iPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBjb25zdCB0YXBwZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFwcGVyIik7CisgICAgICAgICAgICB0YXBwZXIuYWRkRXZlbnRMaXN0
ZW5lcigidG91Y2hzdGFydCIsICgpID0+IHsgfSk7CisgICAgICAgICAgICB0YXBwZXIuYWRkRXZl
bnRMaXN0ZW5lcigidG91Y2hlbmQiLCAoKSA9PiB7IH0pOworCisgICAgICAgICAgICBjb25zdCB4
ID0gdGFwcGVyLm9mZnNldExlZnQgKyAodGFwcGVyLm9mZnNldFdpZHRoIC8gMik7CisgICAgICAg
ICAgICBjb25zdCB5ID0gdGFwcGVyLm9mZnNldFRvcCArICh0YXBwZXIub2Zmc2V0SGVpZ2h0IC8g
Mik7CisKKyAgICAgICAgICAgIHdpbmRvdy5vbmJlZm9yZXVubG9hZCA9IGFzeW5jIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHRl
c3RSdW5uZXIucnVuVUlTY3JpcHRJbW1lZGlhdGVseShgCisgICAgICAgICAgICAgICAgICAgIHVp
Q29udHJvbGxlci5kb3VibGVUYXBBdFBvaW50KCR7eH0sICR7eX0sIC4wMSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgp
OworICAgICAgICAgICAgICAgICAgICB9KTtgLCByZXNvbHZlKSB9KTsKKyAgICAgICAgICAgIH07
CisKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gInJlc291cmNlcy9maW5pc2gt
dGVzdC1hZnRlci1zY3JvbGxpbmctd2l0aC10b3VjaC1ldmVudC1oYW5kbGVycy5odG1sIjsKKyAg
ICAgICAgfQorCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
IHJ1blRlc3QpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0i
dGFwcGVyIj5UYXAgSGVyZTwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406410</attachid>
            <date>2020-08-11 13:17:45 -0700</date>
            <delta_ts>2020-08-11 14:04:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215368-20200811131744.patch</filename>
            <type>text/plain</type>
            <size>22461</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3ZmU4MWI5Y2Q3MWY3MzA1
NGVhY2FhYjI5MDNmN2ZmZWM3NTFmYjEuLjY1MjMzZWM0NDZmZjIwNGVmNWM1N2JhNzAwN2ExZDA1
ZTgxMDFlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDgtMTEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgaU9TOiBTY3JvbGxpbmcg
YW5kIHRvdWNoIGV2ZW50cyBzcG9yYWRpY2FsbHkgc3RvcCB3b3JraW5nIGFmdGVyIG5hdmlnYXRp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTM2
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU4MDE1MzE+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90
b3VjaC1ldmVudC1zdGFsbC1hZnRlci1uYXZpZ2F0aW5nLXdpdGgtcGVuZGluZy1hc3luY2hyb25v
dXMtdG91Y2gtc3RhcnQuaHRtbAorCisgICAgICAgIFdlYlBhZ2VQcm94eTo6aGFuZGxlUHJldmVu
dGFibGVUb3VjaEV2ZW50IGtlZXBzIGEgY291bnRlciBvZiB0aGUgbnVtYmVyCisgICAgICAgIG9m
IG91dHN0YW5kaW5nICJwcmV2ZW50YWJsZSIgdG91Y2ggZXZlbnRzIHRoYXQgaXQgaXMgd2FpdGlu
ZyB0byBoZWFyCisgICAgICAgIGZyb20gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgYWJvdXQuIFRo
aXMgY291bnRlciBpcyBpbmNyZW1lbnRlZCB3aGVuIHRoZQorICAgICAgICBldmVudCBpcyBkaXNw
YXRjaGVkIHRvIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzJ3MgRXZlbnRIYW5kbGVyIHF1ZXVlLAor
ICAgICAgICBhbmQgZGVjcmVtZW50ZWQgd2hlbiB0aGUgcmVwbHkgKHdoZXRoZXIgaXQgd2FzIGhh
bmRsZWQgb3Igbm90KSBjb21lcworICAgICAgICBiYWNrIGZyb20gdGhlIFdlYiBDb250ZW50IHBy
b2Nlc3MuIFdoaWxlIHRoZSBjb3VudGVyIGlzIG5vbi16ZXJvLCBhbGwKKyAgICAgICAgZGVmZXJy
YWJsZSBnZXN0dXJlcyByZW1haW4gZGVmZXJyZWQgKGFuZCB3aGVuIGl0IHJldHVybnMgdG8gemVy
bywgdGhlCisgICAgICAgIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgZ2F0ZSBpcyBsaWZ0
ZWQsIGFuZCBldmVudHMgYXJlIGFsbG93ZWQgdG8gZmxvdykuCisgICAgICAgIFRoaXMgbWVhbnMg
dGhhdCBpdCBpcyB2ZXJ5IGltcG9ydGFudCB0aGF0IGV2ZXJ5IGV2ZW50IGV2ZW50dWFsbHkgcmVw
bHkKKyAgICAgICAgYWJvdXQgaXRzIGhhbmRsaW5nIHN0YXR1cy4KKworICAgICAgICBCZWZvcmUg
dGhpcyBjaGFuZ2UsIHdoZW4gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgaXMgbmF2aWdhdGluZywg
YW5kIHJlYWNoZXMgZGlkQ29tbWl0TG9hZCwKKyAgICAgICAgaXQgY2xlYXJlZCBhbGwgcXVldWVk
IHRvdWNoIGV2ZW50cywgd2l0aG91dCByZXBseWluZyB0byB0byB0aGUgVUkgcHJvY2Vzcy4KKyAg
ICAgICAgVGh1cywgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgb2YgdGltZSBpbiB3aGljaCBhbiBp
bmNvbWluZyB0b3VjaCBldmVudCB3aWxsCisgICAgICAgIGVuZCB1cCBpbiB0aGUgcXVldWUsICpu
b3QqIGdldCBkaXNwYXRjaGVkL3JlcGxpZWQsIGFuZCB0aGVuIGdldCBkcm9wcGVkIG9uCisgICAg
ICAgIHRoZSBmbG9vciBpbiBkaWRDb21taXRMb2FkLiBNb3N0IGV2ZW50cyBkbyBub3QgbWVldCB0
aGlzIGZhdGUsIGJlY2F1c2UgdGhleQorICAgICAgICBhcmUgaGFuZGxlZCBwcm9tcHRseSwgYW5k
IGNvbW1pdExvYWQvZGlkQ29tbWl0TG9hZCB0ZW5kIHRvIGJlIHZlcnkgcXVpY2suCisgICAgICAg
IEhvd2V2ZXIsIGlmIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzIGVuZHMgdXAgc3BlbmRpbmcgYW55
IHNpZ25pZmljYW50IGFtb3VudAorICAgICAgICBvZiB0aW1lIHVuZGVyIGNvbW1pdExvYWQgKHNh
eSwgaW4gYW4gdW5sb2FkIGhhbmRsZXIsIG9yIGluIG1lZGlhIGZyYW1ld29ya3MpLAorICAgICAg
ICBhbnkgaW5jb21pbmcgdG91Y2ggZXZlbnRzIGR1cmluZyB0aGF0IHRpbWUgd2lsbCBnZXQgbG9z
dCwgYW5kIHRoZSBVSSBwcm9jZXNzJworICAgICAgICBjb3VudCBvZiBvdXRzdGFuZGluZyBldmVu
dHMgd2lsbCBlbmQgdXAgZ2V0dGluZyBzdHVjayBub24temVyby4KKworICAgICAgICBGaXggdGhp
cyBieSBhbHdheXMgcHJldGVuZGluZyB0aGF0IHRoZSBwYWdlIGF0ZSBhbnkgZXZlbnRzIHRoYXQg
d2VyZSBvdXRzdGFuZGluZworICAgICAgICB3aGVuIGRpZENvbW1pdExvYWQgb2NjdXJzLCBpbnN0
ZWFkIG9mIGp1c3QgZHJvcHBpbmcgdGhlbSBvbiB0aGUgZmxvb3IuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVy
Ojp0YWtlUXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6RXZlbnRE
aXNwYXRjaGVyOjpjbGVhclF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6Z2V0UXVldWVkVG91Y2hFdmVudHNGb3JQYWdl
KTogRGVsZXRlZC4KKyAgICAgICAgQWxzbywgcmVuYW1lIGdldFF1ZXVlZFRvdWNoRXZlbnRzRm9y
UGFnZSB0byB0YWtlUXVldWVkVG91Y2hFdmVudHNGb3JQYWdlLAorICAgICAgICBzaW5jZSBpdCBy
ZW1vdmVzIHRoZSBxdWV1ZSBmcm9tIEV2ZW50RGlzcGF0Y2hlcidzIHNldC4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRvdWNo
RXZlbnRTeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNhbmNlbEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKToKKwogMjAyMC0wOC0xMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBBbHdheXMgc3VzcGVuZCBJREIgd29y
ayB3aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBwcmVwYXJlZCB0byBzdXNwZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggMTU1ZmZl
MWEwMWIyZjc0OWY0ODcwM2U5YzM5ZDgzNzI4NzM3OTEyYy4uMGE1NTg0MDlkMDI4NjU2NjA0Mjkx
MTFmNTY0ZTMyNjljOTI4ZDI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNDUwLDkgKzQ1MCw5IEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZl
bnQsIGJvb2wKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgbmF0aXZl
V2VidG91Y2hFdmVudCwgYm9vbCBldmVudEhhbmRsZWQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
b25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgbmF0aXZlV2ViVG91
Y2hFdmVudCwgYm9vbCBldmVudEhhbmRsZWQpCiB7Ci0gICAgW21fY29udGVudFZpZXcgX3dlYlRv
dWNoRXZlbnQ6bmF0aXZlV2VidG91Y2hFdmVudCBwcmV2ZW50c05hdGl2ZUdlc3R1cmVzOmV2ZW50
SGFuZGxlZF07CisgICAgW21fY29udGVudFZpZXcgX3dlYlRvdWNoRXZlbnQ6bmF0aXZlV2ViVG91
Y2hFdmVudCBwcmV2ZW50c05hdGl2ZUdlc3R1cmVzOmV2ZW50SGFuZGxlZF07CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKaW5kZXggMTgxODEyNTIwZDU0YjM0MGI3ZGI1ZTMwOWZhNDJmMmNlOTFjYzA4Ny4u
NDU0MmZjNmMxYzg5MGYxYWVmMDQxNjA2MDViNjA5OGIyMTQ3NGM3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0x
NzYsMTMgKzE3Niw3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpnZXN0dXJlRXZlbnQoUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJLaXQ6OldlYkdlc3R1CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotdm9pZCBFdmVudERpc3BhdGNoZXI6OmNsZWFyUXVldWVk
VG91Y2hFdmVudHNGb3JQYWdlKGNvbnN0IFdlYlBhZ2UmIHdlYlBhZ2UpCi17Ci0gICAgTG9ja0hv
bGRlciBsb2NrZXIoJm1fdG91Y2hFdmVudHNMb2NrKTsKLSAgICBtX3RvdWNoRXZlbnRzLnJlbW92
ZSh3ZWJQYWdlLmlkZW50aWZpZXIoKSk7Ci19Ci0KLXZvaWQgRXZlbnREaXNwYXRjaGVyOjpnZXRR
dWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYgd2ViUGFnZSwgVG91Y2hFdmVu
dFF1ZXVlJiBkZXN0aW5hdGlvblF1ZXVlKQordm9pZCBFdmVudERpc3BhdGNoZXI6OnRha2VRdWV1
ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYgd2ViUGFnZSwgVG91Y2hFdmVudFF1
ZXVlJiBkZXN0aW5hdGlvblF1ZXVlKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKCZtX3RvdWNo
RXZlbnRzTG9jayk7CiAgICAgZGVzdGluYXRpb25RdWV1ZSA9IG1fdG91Y2hFdmVudHMudGFrZSh3
ZWJQYWdlLmlkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IDhmYzIxYjQ3MWIwMTljMTJhYTYzMTFiZDBh
YzRkMjZiMGIyODU5NDEuLjQ0MzNhM2NlMGZmM2FkMmIwM2E3M2UyYmFmZDQ3ODVhMzUzOGE4MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5oCkBAIC02Myw5ICs2Myw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKQogICAgIHVzaW5nIFRvdWNoRXZlbnRRdWV1ZSA9IFZlY3RvcjxzdGQ6OnBhaXI8V2Vi
VG91Y2hFdmVudCwgT3B0aW9uYWw8Q2FsbGJhY2tJRD4+LCAxPjsKLQotICAgIHZvaWQgY2xlYXJR
dWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYpOwotICAgIHZvaWQgZ2V0UXVl
dWVkVG91Y2hFdmVudHNGb3JQYWdlKGNvbnN0IFdlYlBhZ2UmLCBUb3VjaEV2ZW50UXVldWUmKTsK
KyAgICB2b2lkIHRha2VRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYsIFRv
dWNoRXZlbnRRdWV1ZSYpOwogI2VuZGlmCiAKICAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCAyNzQyZjEzZWNmMzZkNjBjY2ZkNjdhM2ZkMjE1NDc1YjAwNjRmODMy
Li5hNmFjMDZhYzZkNDA2ZjUwNjIwMWM5ZTQxZDk3NWI0ZTE3MmJkNDYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjk4NSw3ICsyOTg1LDcg
QEAgdm9pZCBXZWJQYWdlOjp0b3VjaEV2ZW50U3luYyhjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3Vj
aEV2ZW50LCBDb21wbGV0aW9uSGFuZGxlcjwKICAgICBtX3BlbmRpbmdTeW5jaHJvbm91c1RvdWNo
RXZlbnRSZXBseSA9IFdURk1vdmUocmVwbHkpOwogCiAgICAgRXZlbnREaXNwYXRjaGVyOjpUb3Vj
aEV2ZW50UXVldWUgcXVldWVkRXZlbnRzOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV2
ZW50RGlzcGF0Y2hlcigpLmdldFF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZSgqdGhpcywgcXVldWVk
RXZlbnRzKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5ldmVudERpc3BhdGNoZXIoKS50
YWtlUXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKCp0aGlzLCBxdWV1ZWRFdmVudHMpOwogICAgIGRp
c3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMocXVldWVkRXZlbnRzKTsKIAogICAgIGJvb2wg
aGFuZGxlZCA9IHRydWU7CkBAIC01OTg3LDcgKzU5ODcsOSBAQCB2b2lkIFdlYlBhZ2U6OmRpZENv
bW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9u
SWRBbmRQYWdlU2NhbGVCZWZvcmVTY2FsaW5nUGFnZSA9IFdURjo6bnVsbG9wdDsKIAogI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV2ZW50
RGlzcGF0Y2hlcigpLmNsZWFyUXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKCp0aGlzKTsKKyAgICBF
dmVudERpc3BhdGNoZXI6OlRvdWNoRXZlbnRRdWV1ZSBxdWV1ZWRFdmVudHM7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZXZlbnREaXNwYXRjaGVyKCkudGFrZVF1ZXVlZFRvdWNoRXZlbnRz
Rm9yUGFnZSgqdGhpcywgcXVldWVkRXZlbnRzKTsKKyAgICBjYW5jZWxBc3luY2hyb25vdXNUb3Vj
aEV2ZW50cyhxdWV1ZWRFdmVudHMpOwogI2VuZGlmCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDYxN2U2YWYyZmQzNmNkYjg5M2MwMmMxMjIwMzNlMjg3MTViYTY0OTAuLmM3ZmIzNGU2OTM3NDJj
OTkwNDFhMWM5MWIyMjM2YzkxOWQ1NGE0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc1OCw2ICs3NTgsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGRp
c3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxXZWJU
b3VjaEV2ZW50LCBPcHRpb25hbDxDYWxsYmFja0lEPj4sIDE+JiBxdWV1ZSk7CisgICAgdm9pZCBj
YW5jZWxBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFdlYlRv
dWNoRXZlbnQsIE9wdGlvbmFsPENhbGxiYWNrSUQ+PiwgMT4mIHF1ZXVlKTsKICNlbmRpZgogCiAg
ICAgYm9vbCBoYXNSaWNobHlFZGl0YWJsZVNlbGVjdGlvbigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBkM2E5
ZGE0NmNmZWYyNTgwNmUyZThjMTc1M2RkOTZkYzdmMTY3OGY1Li5jNDc0OGY0OGI2YzgxMDhlNDBl
NTRmNWNkNTlhNzU2ZmQzNGViM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzk0Myw2ICszOTQzLDE1IEBAIHZvaWQg
V2ViUGFnZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8c3Rk
OjpwYWlyPFdlYlRvdWNoRXZlCiAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkJvb2xDYWxsYmFjayhoYW5kbGVkLCAqZXZlbnRBbmRDYWxsYmFja0lELnNlY29uZCkpOwog
ICAgIH0KIH0KKwordm9pZCBXZWJQYWdlOjpjYW5jZWxBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhj
b25zdCBWZWN0b3I8c3RkOjpwYWlyPFdlYlRvdWNoRXZlbnQsIE9wdGlvbmFsPENhbGxiYWNrSUQ+
PiwgMT4mIHF1ZXVlKQoreworICAgIGZvciAoYXV0byYgZXZlbnRBbmRDYWxsYmFja0lEIDogcXVl
dWUpIHsKKyAgICAgICAgaWYgKCFldmVudEFuZENhbGxiYWNrSUQuc2Vjb25kKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Qm9vbENh
bGxiYWNrKHRydWUsICpldmVudEFuZENhbGxiYWNrSUQuc2Vjb25kKSk7CisgICAgfQorfQogI2Vu
ZGlmCiAKIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJ
bmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFn
ZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIxZTQzZTYxMDBk
ZGI3ODk5MTNlMTgzYjBhY2I3ZmIwMDYxOGI1MC4uODZjOWZjZjJiZmNmYWE4NzA4YWEyMmM2MTY2
M2E2NTU3MmE5NTc2ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA4LTExICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIGlPUzogU2Nyb2xsaW5nIGFuZCB0b3VjaCBl
dmVudHMgc3BvcmFkaWNhbGx5IHN0b3Agd29ya2luZyBhZnRlciBuYXZpZ2F0aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUzNjgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzY1ODAxNTMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBI
c2llaC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6cnVuVUlTY3Jp
cHRJbW1lZGlhdGVseSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpydW5VSVNp
ZGVTY3JpcHRJbW1lZGlhdGVseSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpydW5V
SVNpZGVTY3JpcHRBZnRlclVwZGF0ZUNhbGxiYWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAgIEFkZCBhIHZhcmlhbnQgb2YgcnVuVUlTaWRl
U2NyaXB0IHRoYXQgcnVucyB0aGUgc2NyaXB0IHdpdGhvdXQKKyAgICAgICAgd2FpdGluZyBmb3Ig
YSByZW5kZXJpbmcgdXBkYXRlLgorCisgICAgICAgIEl0IG1ha2VzIHNlbnNlIGZvciB0aGUgZGVm
YXVsdCBydW5VSVNpZGVTY3JpcHQgdG8gd2FpdCBmb3IgYSByZW5kZXJpbmcKKyAgICAgICAgdXBk
YXRlIC0tIG5lYXJseSBldmVyeSB0ZXN0IGlzIGVpdGhlciB1bmFmZmVjdGVkIG9yIGltcHJvdmVk
IGJ5IHRoaXMgLS0KKyAgICAgICAgYnV0IGZvciB0aGUgdGVzdCBmb3IgdGhpcyBidWcsIHNpbmNl
IHdlIGhhdmUgaHVuZyB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcworICAgICAgICBtYWluIHRocmVh
ZCBpbnRlbnRpb25hbGx5LCB3ZSB3aWxsIG5vdCBzZWUgYSByZW5kZXJpbmcgdXBkYXRlLCBhbmQg
c28KKyAgICAgICAgdGhlIFVJLXNpZGUgc2NyaXB0IHdpbGwgbmV2ZXIgcnVuLgorCiAyMDIwLTA4
LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04gKHIyNjA4MzEpOiBXZWIgcHJvY2VzcyBjcmFzaGVzIHVuZGVyIEVkaXRvcjo6c2V0
Q29tcG9zaXRpb24oKSBhZnRlciBuYXZpZ2F0aW5nIHdpdGggbWFya2VkIHRleHQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCmluZGV4IGRjNjNjNWRkOGJiNGQ4NmJlM2Y2MjcxYWRhMjg4Zjg3ZmQ0
MjBhMTkuLjU1YWE3MzA2Y2JiNjQ0YTU1ZjQyMTBiMDdhMWIwNGRkOWMwZGIxYTggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMjc1LDYgKzI3NSw3IEBAIGludGVyZmFjZSBUZXN0UnVu
bmVyIHsKIAogICAgIC8vIFVJIFByb2Nlc3MgVGVzdGluZwogICAgIHZvaWQgcnVuVUlTY3JpcHQo
RE9NU3RyaW5nIHNjcmlwdCwgb2JqZWN0IGNhbGxiYWNrKTsKKyAgICB2b2lkIHJ1blVJU2NyaXB0
SW1tZWRpYXRlbHkoRE9NU3RyaW5nIHNjcmlwdCwgb2JqZWN0IGNhbGxiYWNrKTsKIAogICAgIHZv
aWQgY2xlYXJUZXN0UnVubmVyQ2FsbGJhY2tzKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDI5NjcyZjllMTU1
OWNhMmRlMGM2ODlhNDZjM2VhMmM1NjAxYjYwZTguLjcyMDE4MjY5NTJlOWZmMmY0MTA0OGRmOTM1
YjM4ZGQ0Nzc3NmYwMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMTMyNCw2ICsxMzI0LDI3IEBAIHZvaWQgVGVz
dFJ1bm5lcjo6cnVuVUlTY3JpcHQoSlNTdHJpbmdSZWYgc2NyaXB0LCBKU1ZhbHVlUmVmIGNhbGxi
YWNrKQogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIHRlc3REaWN0aW9uYXJ5Lmdl
dCgpKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpydW5VSVNjcmlwdEltbWVkaWF0ZWx5KEpTU3Ry
aW5nUmVmIHNjcmlwdCwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICB1bnNpZ25lZCBjYWxs
YmFja0lEID0gbmV4dFVJU2NyaXB0Q2FsbGJhY2tJRCgpOworICAgIGNhY2hlVGVzdFJ1bm5lckNh
bGxiYWNrKGNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IlJ1blVJUHJvY2Vzc1NjcmlwdEltbWVkaWF0ZWx5IikpOworCisgICAgV0tSZXRhaW5QdHI8V0tN
dXRhYmxlRGljdGlvbmFyeVJlZj4gdGVzdERpY3Rpb25hcnkgPSBhZG9wdFdLKFdLTXV0YWJsZURp
Y3Rpb25hcnlDcmVhdGUoKSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc2NyaXB0
S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2NyaXB0IikpOwor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzY3JpcHRWYWx1ZSA9IGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoSlNTdHJpbmcoc2NyaXB0KSk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gY2FsbGJhY2tJREtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIkNhbGxiYWNrSUQiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IGNhbGxiYWNr
SURWYWx1ZSA9IGFkb3B0V0soV0tVSW50NjRDcmVhdGUoY2FsbGJhY2tJRCkpOworCisgICAgV0tE
aWN0aW9uYXJ5U2V0SXRlbSh0ZXN0RGljdGlvbmFyeS5nZXQoKSwgc2NyaXB0S2V5LmdldCgpLCBz
Y3JpcHRWYWx1ZS5nZXQoKSk7CisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbSh0ZXN0RGljdGlvbmFy
eS5nZXQoKSwgY2FsbGJhY2tJREtleS5nZXQoKSwgY2FsbGJhY2tJRFZhbHVlLmdldCgpKTsKKwor
ICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIHRlc3REaWN0aW9uYXJ5LmdldCgpKTsK
K30KKwogdm9pZCBUZXN0UnVubmVyOjpydW5VSVNjcmlwdENhbGxiYWNrKHVuc2lnbmVkIGNhbGxi
YWNrSUQsIEpTU3RyaW5nUmVmIHJlc3VsdCkKIHsKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5G
cmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCkucGFnZSgpLT5wYWdlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBhYjY1ZDQwZDQyMjY4MDkzNDA5MmNmM2Y4MmQ4
MWM1ZTlhYjIwZDAzLi4wNTYxOWUzMjcxNzAwYmIxZmYyNDliYjlkNTU4NmE5Y2I4NGQxYWI4IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaApAQCAtMzUwLDYgKzM1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERpZENhbmNlbENs
aWVudFJlZGlyZWN0KGJvb2wgdmFsdWUpIHsgbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IHZh
bHVlOyB9CiAKICAgICB2b2lkIHJ1blVJU2NyaXB0KEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNWYWx1
ZVJlZiBjYWxsYmFjayk7CisgICAgdm9pZCBydW5VSVNjcmlwdEltbWVkaWF0ZWx5KEpTU3RyaW5n
UmVmIHNjcmlwdCwgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAgICAgdm9pZCBydW5VSVNjcmlwdENh
bGxiYWNrKHVuc2lnbmVkIGNhbGxiYWNrSUQsIEpTU3RyaW5nUmVmIHJlc3VsdCk7CiAKICAgICAv
LyBDb250ZXh0dWFsIG1lbnUgYWN0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcAppbmRleCA5MjlmODVhZjVmODIyZjkyZDYwZGFhYTQ0ZjA0Y2QxMzMzNzFlZjUz
Li5jNjE1ZDI4NzJmOWRjODdhOTg4YzFkM2NiNzVjYzI1NWNhYWNmMTcxIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNzc1LDYgKzc3NSwyMCBAQCB2b2lk
IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0
cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJSdW5VSVByb2Nlc3NTY3Jp
cHRJbW1lZGlhdGVseSIpKSB7CisgICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURp
Y3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNjcmlwdEtleSA9IGFkb3B0V0soV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNjcmlwdCIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IGNhbGxiYWNrSURLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJDYWxsYmFja0lEIikpOworCisgICAgICAgIFVJU2NyaXB0SW52b2NhdGlvbkRh
dGEqIGludm9jYXRpb25EYXRhID0gbmV3IFVJU2NyaXB0SW52b2NhdGlvbkRhdGEoKTsKKyAgICAg
ICAgaW52b2NhdGlvbkRhdGEtPnRlc3RJbnZvY2F0aW9uID0gdGhpczsKKyAgICAgICAgaW52b2Nh
dGlvbkRhdGEtPmNhbGxiYWNrSUQgPSAodW5zaWduZWQpV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNf
Y2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURp
Y3Rpb25hcnksIGNhbGxiYWNrSURLZXkuZ2V0KCkpKSk7CisgICAgICAgIGludm9jYXRpb25EYXRh
LT5zY3JpcHRTdHJpbmcgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0
SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHNjcmlwdEtleS5nZXQoKSkpOworICAg
ICAgICBtX3BlbmRpbmdVSVNjcmlwdEludm9jYXRpb25EYXRhID0gaW52b2NhdGlvbkRhdGE7Cisg
ICAgICAgIHJ1blVJU2lkZVNjcmlwdEltbWVkaWF0ZWx5KG51bGxwdHIsIGludm9jYXRpb25EYXRh
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiSW5zdGFsbEN1c3RvbU1lbnVBY3Rpb24iKSkgewogICAg
ICAgICBhdXRvIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFy
eVJlZj4obWVzc2FnZUJvZHkpOwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbmFt
ZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIm5hbWUiKSk7CkBA
IC0xODYxLDcgKzE4NzUsNyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9u
OjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgIHJldHVybiBu
dWxscHRyOwogfQogCi12b2lkIFRlc3RJbnZvY2F0aW9uOjpydW5VSVNpZGVTY3JpcHRBZnRlclVw
ZGF0ZUNhbGxiYWNrKFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCit2b2lkIFRlc3RJbnZvY2F0
aW9uOjpydW5VSVNpZGVTY3JpcHRJbW1lZGlhdGVseShXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0
KQogewogICAgIFVJU2NyaXB0SW52b2NhdGlvbkRhdGEqIGRhdGEgPSBzdGF0aWNfY2FzdDxVSVNj
cmlwdEludm9jYXRpb25EYXRhKj4oY29udGV4dCk7CiAgICAgaWYgKFRlc3RJbnZvY2F0aW9uKiBp
bnZvY2F0aW9uID0gZGF0YS0+dGVzdEludm9jYXRpb24pIHsKQEAgLTE4NzEsNiArMTg4NSwxMSBA
QCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpydW5VSVNpZGVTY3JpcHRBZnRlclVwZGF0ZUNhbGxiYWNr
KFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleAogICAgIGRlbGV0ZSBkYXRhOwogfQogCit2b2lkIFRl
c3RJbnZvY2F0aW9uOjpydW5VSVNpZGVTY3JpcHRBZnRlclVwZGF0ZUNhbGxiYWNrKFdLRXJyb3JS
ZWYgZXJyb3IsIHZvaWQqIGNvbnRleHQpCit7CisgICAgcnVuVUlTaWRlU2NyaXB0SW1tZWRpYXRl
bHkoZXJyb3IsIGNvbnRleHQpOworfQorCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpydW5VSVNpZGVT
Y3JpcHQoV0tTdHJpbmdSZWYgc2NyaXB0LCB1bnNpZ25lZCBzY3JpcHRDYWxsYmFja0lEKQogewog
ICAgIG1fcGVuZGluZ1VJU2NyaXB0SW52b2NhdGlvbkRhdGEgPSBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IGU0N2M1YzA0OWZiMDE2MThiZjBiODkx
ZTlmMmI5NTg4NmEwNGJmYjQuLjJkNjIwNjBjZDk1ZWJjNWUwYjZiZDIxMGE1ZWIyMGYwZjYyYjA2
YzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTEzMCw2ICsx
MzAsNyBAQCBwcml2YXRlOgogICAgICAgICBUZXN0SW52b2NhdGlvbiogdGVzdEludm9jYXRpb247
CiAgICAgfTsKICAgICBzdGF0aWMgdm9pZCBydW5VSVNpZGVTY3JpcHRBZnRlclVwZGF0ZUNhbGxi
YWNrKFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpOworICAgIHN0YXRpYyB2b2lkIHJ1blVJU2lk
ZVNjcmlwdEltbWVkaWF0ZWx5KFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpOwogCiAgICAgYm9v
bCBzaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYmU2
NWRlNjhkZWEyYjdkYzY4NGMwOGY4YWYzMzdmMjYzM2NlOGFjLi44ZGM4MmI5NGM3Y2YxMjlhZWE3
ZWVhNWJjYmNiNTY2MDQ1NGM1YmQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDgtMTEg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgaU9TOiBT
Y3JvbGxpbmcgYW5kIHRvdWNoIGV2ZW50cyBzcG9yYWRpY2FsbHkgc3RvcCB3b3JraW5nIGFmdGVy
IG5hdmlnYXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNTM2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU4MDE1MzE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3Jlc291cmNlcy9maW5pc2gtdGVzdC1hZnRlci1zY3JvbGxpbmctd2l0aC10b3VjaC1ldmVu
dC1oYW5kbGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
dG91Y2gtZXZlbnQtc3RhbGwtYWZ0ZXItbmF2aWdhdGluZy13aXRoLXBlbmRpbmctYXN5bmNocm9u
b3VzLXRvdWNoLXN0YXJ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRpbmctd2l0aC1wZW5k
aW5nLWFzeW5jaHJvbm91cy10b3VjaC1zdGFydC5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGEg
dGVzdCB0aGF0IGVuc3VyZXMgdGhhdCBhIHBhZ2UgdGhhdCBkaXNwYXRjaGVzIGV2ZW50cyBpbiBi
ZWZvcmV1bmxvYWQsCisgICAgICAgIHJlY2VpdmluZyBwcmV2ZW50YWJsZSB0b3VjaCBldmVudHMg
ZHVyaW5nIHRoZSBuZXh0IHBhZ2UncyBjb21taXRMb2FkIGRvZXMgbm90IHJlc3VsdAorICAgICAg
ICBpbiBzY3JvbGxpbmcgYmVpbmcgc3R1Y2suCisKKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdl
LCB0aGlzIHRlc3Qgd291bGQgdGltZSBvdXQuCisKIDIwMjAtMDgtMTAgIEhlY3RvciBMb3BleiAg
PGhlY3Rvcl9pX2xvcGV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbIGlPUyB3azIgXSBjb21wb3Np
dGluZy9jbGlwcGluZy9ib3JkZXItcmFkaXVzLW9uLXdlYmdsLmh0bWwgaXMgYSBmbGFreSBmYWls
dXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvcmVzb3Vy
Y2VzL2ZpbmlzaC10ZXN0LWFmdGVyLXNjcm9sbGluZy13aXRoLXRvdWNoLWV2ZW50LWhhbmRsZXJz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvcmVzb3VyY2VzL2Zpbmlz
aC10ZXN0LWFmdGVyLXNjcm9sbGluZy13aXRoLXRvdWNoLWV2ZW50LWhhbmRsZXJzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTZiZGFiNjE5ZWI1YTk4ZmI3YWNmNDEwNTY0MmNlYjc0M2ZiZjVjNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9yZXNvdXJjZXMv
ZmluaXNoLXRlc3QtYWZ0ZXItc2Nyb2xsaW5nLXdpdGgtdG91Y2gtZXZlbnQtaGFuZGxlcnMuaHRt
bApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9
bm8iPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICBodG1sLCBib2R5IHsKKyAg
ICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgbWFyZ2lu
OiAwOworICAgIH0KKworICAgICNzY3JvbGxlciB7CisgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7
CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAg
Ym9yZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgI2NvbnRlbnQgeworICAgICAg
ICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICAgICAgICAgIGNvbnN0IHNjcm9sbGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNj
cm9sbGVyIik7CisgICAgICAgICAgICBzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0
YXJ0IiwgKCkgPT4geyB9KTsKKyAgICAgICAgICAgIHNjcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIo
InRvdWNoZW5kIiwgKCkgPT4geyB9KTsKKyAgICAgICAgICAgIHNjcm9sbGVyLmFkZEV2ZW50TGlz
dGVuZXIoInNjcm9sbCIsICgpID0+IHsgCisgICAgICAgICAgICAgICAgY29udGVudC50ZXh0Q29u
dGVudCA9ICJTY3JvbGxlZCEiOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpCisgICAgICAgICAgICB9LCB7IG9uY2UgOiB0cnVlIH0pOworCisgICAgICAgICAgICBjb25z
dCBldmVudFN0cmVhbURhdGEgPSBuZXcgVUlIZWxwZXIuRXZlbnRTdHJlYW1CdWlsZGVyKCkKKyAg
ICAgICAgICAgICAgICAuYmVnaW4oMTAwLCAxOTApCisgICAgICAgICAgICAgICAgLm1vdmUoMTAw
LCAxMCwgMSkKKyAgICAgICAgICAgICAgICAubW92ZSgxMDAsIDE5MCwgMSkKKyAgICAgICAgICAg
ICAgICAubW92ZSgxMDAsIDEwMCwgMC41KQorICAgICAgICAgICAgICAgIC5lbmQoKQorICAgICAg
ICAgICAgICAgIC50YWtlUmVzdWx0KCk7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnNl
bmRFdmVudFN0cmVhbShldmVudFN0cmVhbURhdGEpOworICAgICAgICB9CisKKyAgICAgICAgYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIGZpbmlzaFRlc3QpOworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisgICAgPGRpdiBpZD0ic2Nyb2xsZXIiPgorICAgICAgICA8ZGl2IGlkPSJjb250
ZW50Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90b3VjaC1ldmVudC1zdGFsbC1hZnRlci1u
YXZpZ2F0aW5nLXdpdGgtcGVuZGluZy1hc3luY2hyb25vdXMtdG91Y2gtc3RhcnQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2ZW50LXN0YWxs
LWFmdGVyLW5hdmlnYXRpbmctd2l0aC1wZW5kaW5nLWFzeW5jaHJvbm91cy10b3VjaC1zdGFydC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVhN2QwZjVmZmI4ZjA2YWE1ZGRkYThjODdjZGQ1NmVj
MjdlZmM4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy90b3VjaC1ldmVudC1zdGFsbC1hZnRlci1uYXZpZ2F0aW5nLXdpdGgtcGVuZGluZy1hc3lu
Y2hyb25vdXMtdG91Y2gtc3RhcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1Njcm9sbGVk
IQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2
ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRpbmctd2l0aC1wZW5kaW5nLWFzeW5jaHJvbm91cy10b3Vj
aC1zdGFydC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RvdWNoLWV2
ZW50LXN0YWxsLWFmdGVyLW5hdmlnYXRpbmctd2l0aC1wZW5kaW5nLWFzeW5jaHJvbm91cy10b3Vj
aC1zdGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ZTQxZTk5MjY1NGM1Y2FmMjkyNTk5ZWE3MzNjY2Yx
NmMyNmYzZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvdG91Y2gtZXZlbnQtc3RhbGwtYWZ0ZXItbmF2aWdhdGluZy13aXRoLXBlbmRpbmctYXN5
bmNocm9ub3VzLXRvdWNoLXN0YXJ0Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGlu
dGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgor
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgY29uc3QgdGFwcGVy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcHBlciIpOworICAgICAgICAgICAgdGFwcGVy
LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCAoKSA9PiB7IH0pOworICAgICAgICAgICAg
dGFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgKCkgPT4geyB9KTsKKworICAgICAg
ICAgICAgY29uc3QgeCA9IHRhcHBlci5vZmZzZXRMZWZ0ICsgKHRhcHBlci5vZmZzZXRXaWR0aCAv
IDIpOworICAgICAgICAgICAgY29uc3QgeSA9IHRhcHBlci5vZmZzZXRUb3AgKyAodGFwcGVyLm9m
ZnNldEhlaWdodCAvIDIpOworCisgICAgICAgICAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0SW1tZWRp
YXRlbHkoYAorICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZG91YmxlVGFwQXRQb2lu
dCgke3h9LCAke3l9LCAuMDEsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
dWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7
YCk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9
ICJyZXNvdXJjZXMvZmluaXNoLXRlc3QtYWZ0ZXItc2Nyb2xsaW5nLXdpdGgtdG91Y2gtZXZlbnQt
aGFuZGxlcnMuaHRtbCI7CisgICAgICAgIH0KKworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBydW5UZXN0KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgaWQ9InRhcHBlciI+VGFwIEhlcmU8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>