<?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>158826</bug_id>
          
          <creation_ts>2016-06-15 20:36:18 -0700</creation_ts>
          <short_desc>Specialize synchronous event tracking per event type</short_desc>
          <delta_ts>2016-06-23 19:38:17 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>cdumez</cc>
    
    <cc>rbyers</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1202847</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-15 20:36:18 -0700</bug_when>
    <thetext>Specialize synchronous event tracking per event type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202850</commentid>
    <comment_count>1</comment_count>
      <attachid>281433</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-15 20:49:30 -0700</bug_when>
    <thetext>Created attachment 281433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202868</commentid>
    <comment_count>2</comment_count>
      <attachid>281440</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-15 22:03:20 -0700</bug_when>
    <thetext>Created attachment 281440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203023</commentid>
    <comment_count>3</comment_count>
      <attachid>281478</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-16 15:17:14 -0700</bug_when>
    <thetext>Created attachment 281478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203038</commentid>
    <comment_count>4</comment_count>
      <attachid>281485</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-16 15:40:50 -0700</bug_when>
    <thetext>Created attachment 281485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203142</commentid>
    <comment_count>5</comment_count>
      <attachid>281485</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-06-16 18:08:15 -0700</bug_when>
    <thetext>Comment on attachment 281485
Patch

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

&gt; Source/WTF/wtf/HashMap.h:540
&gt; -        if (bPos == notFound || it-&gt;value != bPos-&gt;value)
&gt; +        if (bPos == notFound || !(it-&gt;value == bPos-&gt;value))

This is a bit sad because a class may implement a much cheaper operator != than operator ==. I don&apos;t think you should make this change.

&gt; Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.cpp:254
&gt; +        for (const auto&amp; synchronousEventRegion : m_eventTrackingRegions.eventSpecificSynchronousDispatchRegions) {
&gt; +            for (auto rect : synchronousEventRegion.value.rects()) {

Would be nice to log the event name here if possible.

&gt; Source/WebCore/platform/EventTrackingRegions.cpp:47
&gt; +    return asynchronousDispatchRegion.isEmpty()
&gt; +        &amp;&amp; eventSpecificSynchronousDispatchRegions.isEmpty();

No need to wrap.

&gt; Source/WebKit2/Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:501
&gt; +            for (const auto&amp; synchronousEventRegion : node.eventTrackingRegions().eventSpecificSynchronousDispatchRegions) {
&gt; +                for (auto rect : synchronousEventRegion.value.rects()) {

Dump event names.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1943
&gt; +    if (static_cast&lt;uintptr_t&gt;(b) &gt; static_cast&lt;uintptr_t&gt;(a))
&gt; +        return b;
&gt; +    return a;

return static_cast&lt;TrackingType&gt;(std::max&lt;&gt;(static_cast&lt;uintptr_t&gt;(a),static_cast&lt;uintptr_t&gt;(b))) ?

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1983
&gt; +    // We don&apos;t want to WebCore to be able to setup its state correctly after some
&gt; +    // events were dismissed. We send everything, WebCore updates its internal state and dispatch what is needed.

I find this hard to understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204933</commentid>
    <comment_count>6</comment_count>
      <attachid>281932</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-23 14:42:17 -0700</bug_when>
    <thetext>Created attachment 281932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204978</commentid>
    <comment_count>7</comment_count>
      <attachid>281946</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-23 17:39:06 -0700</bug_when>
    <thetext>Created attachment 281946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205005</commentid>
    <comment_count>8</comment_count>
      <attachid>281946</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-23 19:38:13 -0700</bug_when>
    <thetext>Comment on attachment 281946
Patch

Clearing flags on attachment: 281946

Committed r202408: &lt;http://trac.webkit.org/changeset/202408&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205006</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-23 19:38:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281433</attachid>
            <date>2016-06-15 20:49:30 -0700</date>
            <delta_ts>2016-06-15 22:03:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158826-20160615204929.patch</filename>
            <type>text/plain</type>
            <size>86166</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDBjMGMzZDg1MjhhMGY2ZDJkNmI2Mjkx
Y2M4OWUyNTRhOWM5MGYyZDYuLjY3YTRjODgyNTA3NTQ2YjVlNjg0NzNkYWIxNzFmYjZlYTc4N2I4
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMTUgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFNwZWNpYWxpemUgc3luY2hyb25vdXMgZXZl
bnQgdHJhY2tpbmcgcGVyIGV2ZW50IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1ODgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAgICAgKFdURjo6b3BlcmF0
b3I9PSk6CisgICAgICAgIERvbid0IGZvcmNlIHRoZSBjbGFzc2VzIHRvIGltcGxlbWVudCAiPT0i
IGFuZCAiIT0iLgorCiAyMDE2LTA2LTEzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlp
QHNvbnkuY29tPgogCiAgICAgICAgIFN0YWNrIG92ZXJmbG93IGF0IFJlZlB0cjo6cmVsZWFzZSBv
biBXaW5kb3dzIHBvcnQgc2luY2UgcjIwMTc4MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFhZGQ1YzExNDFiM2Yx
NDBkNTBiYzQ4OTBlMTZkNWUwNzIxNzFlYjUuLjFlOTMxYTEzZmRjNTZhYTEwZWYwODFiMTg2M2Rm
OWM0ZTcxNjc0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxNi0wNi0xNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6
ZSBzeW5jaHJvbm91cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3QsIGt1ZG9zIHRvIFJpY2sg
QnllcnMgZm9yIGFsbCBoaXMgaGVscHMgb24gcGFzc2l2ZSBldmVudCBkaXNwYXRjaC4KKyAgICAg
ICAgVGhlIHNwZWNzIGFyZSBwcmV0dHkgZGFtbiBnb29kIGFuZCBoaXMgaGVscCByZXZpZXdpbmcg
cGF0Y2hlcyBpcyB2ZXJ5IHVzZWZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZSBzeW5j
aHJvbm91cyBldmVudCBkaXNwYXRjaCB0byBoYXBwZW4gcGVyIGV2ZW50CisgICAgICAgIGluc3Rl
YWQgb2YgcGVyIHNlcXVlbmNlIHRvdWNoc3RhcnQtPnRvdWNoZW5kLgorCisgICAgICAgIFRoZSBi
aWcgYWR2YW50YWdlIG9mIHRoaXMgaXMgd2UgY2FuIGRpc3BhdGNoIG1vcmUgZXZlbnRzIGFzeW5j
aHJvbm91c2x5LgorICAgICAgICBGb3IgZXhhbXBsZSwgdG8gaGFuZGxlIGEgdGFwIHByb2dyYW1t
YXRpY2FsbHksIHlvdSBjYW4gbGltaXQgdGhlIGFjdGl2ZSBsaXN0ZW5lcgorICAgICAgICB0byB0
aGUgdG91Y2hlbmQgZXZlbnQuIFRoZSB0b3VjaHN0YXJ0IGFuZCB0b3VjaG1vdmUgYXJlIG5vdyBk
aXNwYXRjaGVkIGFzeW5jaHJvbm91c2x5LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBp
cyBhIHNpbXBsZSBleHRlbnNpb24gdG8gRXZlbnRUcmFja2luZ1JlZ2lvbnMuCisgICAgICAgIElu
c3RlYWQgb2YgYSBzaW5nbGUgc3luY2hyb25vdXMgcmVnaW9uLCB3ZSBoYXZlIG9uZSByZWdpb24g
cGVyIGV2ZW50IHR5cGUuCisgICAgICAgIFdoZW4gcHJvY2Vzc2luZyB0aGUgZXZlbnRzLCB3ZSBv
bmx5IG5lZWQgdG8gc2VuZCB0aGUgZXZlbnRzIHN5bmNocm9ub3VzbHkKKyAgICAgICAgaWYgdGhh
dCBwYXJ0aWN1bGFyIGV2ZW50IHR5cGUgaGFzIGEgc3luY2hyb25vdXMgcmVnaW9uLgorCisgICAg
ICAgIE5vdGUgdGhhdCBFdmVudERpc3BhdGNoZXIncyB0b3VjaCBldmVudCBzdXBwb3J0IGFscmVh
ZHkgc3VwcG9ydHMKKyAgICAgICAgbWl4aW5nIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMg
ZXZlbnRzLiBUaGUgZXZlbnRzIGFyZSBhbHdheXMgcHJvY2Vzc2VkCisgICAgICAgIGluIG9yZGVy
IGV2ZW4gaWYgYXN5bmNocm9ub3VzIGV2ZW50cyBhcmUgcGVuZGluZyB3aGVuIGEgc3luY2hyb25v
dXMgZGlzcGF0Y2gKKyAgICAgICAgaGFwcGVucy4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0
aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUt
bGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1s
aXN0ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNo
LWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1v
dmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6Omhh
c0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FdmVu
dFRhcmdldC5oOgorICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25PdmVybGF5Ojp1cGRhdGVSZWdpb24p
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub25G
YXN0U2Nyb2xsYWJsZVJlY3RzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6
YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2luZ1R5cGVG
b3JQb2ludCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUpOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjp0cmFj
a2luZ1R5cGVGb3JQb2ludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09
KTogRGVsZXRlZC4KKwogMjAxNi0wNi0xMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTW9kZXJuIElEQjogSURCT3BlbkRCUmVxdWVzdCBvYmplY3RzIGxlYWsu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMDUyYzE3NTE5ZDEzMWRmOGI3MjQ5NGI4ZjVlMDdkYmIxYzY1MzIyNC4u
MTY3ZGJlZmU1YTYzODRjZmNkZmE5ZGIwNmVjMWJlYTk0Nzc3OTNhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI4IEBACisyMDE2LTA2LTE1ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBTcGVjaWFsaXplIHN5bmNocm9ub3VzIGV2ZW50IHRyYWNraW5n
IHBlciBldmVudCB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTg4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludCk6CisgICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1lcmdlVHJhY2tpbmdUeXBlcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlVG91Y2hFdmVudFRyYWNraW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0b3VjaEV2ZW50VHJhY2tpbmdUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hy
b25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVu
dEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVU
b3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6VG91Y2hFdmVudFRyYWNraW5nOjppc1RyYWNraW5nQW55dGhpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OlRvdWNoRXZlbnRUcmFja2luZzo6cmVzZXQpOgor
CiAyMDE2LTA2LTEwICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVz
ZSB0aGUgdmlkZW8gZWxlbWVudCdzIHZpZGVvIGJveCB3aGVuIGdldHRpbmcgdGhlIGlubGluZSB2
aWRlbyByZWN0IGluIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0hhc2hNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAppbmRleCAyYzcz
NGYzOTgzYmMxNmZlNDU4NzBkMjI0NTRjZmUxY2Y5MTlkNmExLi5jNWQ4ZjhiZTY3OWIzZjI0MmU5
YTYyODk5ZGRlMDkyNDBhNDliZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFw
LmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCkBAIC01MzYsNyArNTM2LDcgQEAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywgWD4mIGEsIGNvbnN0IEhhc2hN
YXA8VCwgVSwgViwgVywgWD4mIGIKICAgICBjb25zdF9pdGVyYXRvciBub3RGb3VuZCA9IGIuZW5k
KCk7CiAgICAgZm9yIChjb25zdF9pdGVyYXRvciBpdCA9IGEuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CiAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGJQb3MgPSBiLmZpbmQoaXQtPmtleSk7Ci0g
ICAgICAgIGlmIChiUG9zID09IG5vdEZvdW5kIHx8IGl0LT52YWx1ZSAhPSBiUG9zLT52YWx1ZSkK
KyAgICAgICAgaWYgKGJQb3MgPT0gbm90Rm91bmQgfHwgIShpdC0+dmFsdWUgPT0gYlBvcy0+dmFs
dWUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBkOGEyYTEyYjhhNTU3NDMzZjRlNTBkMDRjMzNmYmNhOThjZGI0ZWNmLi4yNjc5ZTI3
NmQ3MjM0MzNhMzMwMjgxNzA2ZGJjYjI1MjhhMWMwMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjExMSw2ICsyMTExLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0Rp
c3BsYXlTbGVlcERpc2FibGVyLmNwcAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBs
YXRmb3JtL0RyYWdJbWFnZS5jcHAKKyAgICBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5j
cHAKICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFt
LmNwcAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmI3YWFiOGMxYTYzNGU3MDY4
MzFkZDA1ZjEyYzFjMTJlZTYzZjAyNC4uNzIyOTU1OTQyYTk0NTg0M2M1MjBlMGVlY2Q0YjcwNjNk
MzA4ZTFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTAzMSw2ICsxMDMxLDcgQEAKIAkJMjYyNTVGMDMxODg3OEUxMTAwMDZF
MUZEIC8qIFVzZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjYyNTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2MjU1RjA0MTg4NzhF
MTEwMDA2RTFGRCAvKiBVc2VyQWdlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50
TWFjLm1tICovOyB9OwogCQkyNjJFQzQxQTFEMDc4RkI5MDBCQTc4RkMgLyogRXZlbnRUcmFja2lu
Z1JlZ2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI2MkVDNDE5MUQwNzhGM0QwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTI2MkVDNDFEMUQx
MTBCOTAwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJFQzQxQzFEMTEwQjFGMDBCQTc4RkMg
LyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwICovOyB9OwogCQkyNjU1NDEzOTE0ODk4MTFDMDAw
REZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29k
ZXNJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkyNjU1NDEzQTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjU1NDEzODE0ODk4MTFDMDAwREZD
NUQgLyogS2V5RXZlbnRJT1MubW0gKi87IH07CiAJCTI2NTU0MTUyMTQ4OUIyMzMwMDBERkM1RCAv
KiBDdXJzb3JJT1MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi87IH07CkBA
IC04NTEyLDYgKzg1MTMsNyBAQAogCQkyNjI1NUYwMTE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFn
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBZ2VudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNl
ckFnZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNl
ckFnZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJFQzQxOTFEMDc4
RjNEMDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdp
b25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50VHJhY2tp
bmdSZWdpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzcxNDg5
ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gS2V5RXZlbnRDb2Rlc0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLZXlFdmVudElPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklP
Uy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXJzb3JJT1MuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5NTMsNiArMjI5NTUsNyBAQAogCQkJ
CUE3Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZC
M0QwMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKIAkJCQkxQ0ExOUUxNTBEQzI1
NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8sCisJCQkJMjYyRUM0MUMxRDExMEIxRjAwQkE3
OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCAqLywKIAkJCQkyNjJFQzQxOTFEMDc4RjNE
MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRGRTlFNDBCNUNB
NTM5MDAzRTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovLAogCQkJCTA2NkM3NzJBMEFCNjAzQjcw
MDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oICovLApAQCAtMzA0NTYsNiArMzA0NTksNyBAQAogCQkJ
CUE3QkJFMjY2MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUFFMkFCMjkwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTE1vZEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDVDNzkwQzA3NkJCMzAwQ0QyMEYwIC8qIEpT
SFRNTE9iamVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYyRUM0MUQxRDExMEI5
MDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDMzA1Q0E0MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFBODVCMUVBMEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxP
TGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdFOUMwQTFBODNFMzAwN0ZC
OEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnRUYXJnZXQuY3BwCmluZGV4IDk4ZmJmYzU2N2E3ZWEwYWI1ZTVmY2M3ODkyYjE1MDYx
NmRlNTkwMmQuLmM5MDYzY2VmNGIzYjgzMjdmZmRkOGYxZTM2NzY1ZGE1YTVjZjkzNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtMjQyLDE2ICsyNDIsNiBAQCBib29sIEV2ZW50
VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiAhZXZl
bnQuZGVmYXVsdFByZXZlbnRlZCgpOwogfQogCi1ib29sIEV2ZW50VGFyZ2V0OjpoYXNBY3RpdmVU
b3VjaEV2ZW50TGlzdGVuZXJzKCkgY29uc3QKLXsKLSAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1l
cyA9IGV2ZW50TmFtZXMoKTsKLSAgICByZXR1cm4gaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFt
ZXMudG91Y2hzdGFydEV2ZW50KQotICAgICAgICB8fCBoYXNBY3RpdmVFdmVudExpc3RlbmVycyhu
YW1lcy50b3VjaG1vdmVFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMo
bmFtZXMudG91Y2hlbmRFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMo
bmFtZXMudG91Y2hjYW5jZWxFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5l
cnMobmFtZXMudG91Y2hmb3JjZWNoYW5nZUV2ZW50KTsKLX0KLQogdm9pZCBFdmVudFRhcmdldDo6
ZmlyZUV2ZW50TGlzdGVuZXJzKEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXREYXRhKiBkLCBFdmVu
dExpc3RlbmVyVmVjdG9yJiBlbnRyeSkKIHsKICAgICBSZWY8RXZlbnRUYXJnZXQ+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCAwZjk5YjNjOTA5Yjhk
YmVhMjJmMGI4OWQwOTEzYjIzODk5ZWIxYTFmLi40NzY0MTNjZDE1YjhkMDM2OWUxN2NkYzE5NmYy
NzJlMGRiNzkxMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtMTY5LDggKzE2OSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHZpc2l0SlNFdmVudExpc3RlbmVycyhKU0M6OlNsb3RWaXNp
dG9yJik7CiAgICAgdm9pZCBpbnZhbGlkYXRlSlNFdmVudExpc3RlbmVycyhKU0M6OkpTT2JqZWN0
Kik7CiAKLSAgICBib29sIGhhc0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMoKSBjb25zdDsKLQog
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkV2ZW50VGFyZ2V0KCk7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IDU3MjA4OGIxZDIyY2M4NTdiMTk5
YThmZGVlYzZiMmFlNThjM2U0N2YuLmNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUx
NDczZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC0x
MzMsNyArMTMzLDggQEAgYm9vbCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0
ZVJlZ2lvbigpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAg
ICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+
c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgewogICAgICAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lv
bnMgZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVF
dmVudFRyYWNraW5nUmVnaW9ucygpOwotICAgICAgICAgICAgKnJlZ2lvbiA9IGV2ZW50VHJhY2tp
bmdSZWdpb25zLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIHN5bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5l
dmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICAgICAg
cmVnaW9uLT51bml0ZShzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlKTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYzBjMmEwY2UwZmE1MWMxMzQ0MGM2ODM3Y2E0
MWNjNWZiOWY3YzNkYy4uNTY4YTk4NDVkOTJjZDYyODBhZjljNjE4MGEyZTVjMGYyNjJiMzVkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0zNzEsOCArMzcxLDExIEBAIFJlZjxDbGllbnRSZWN0TGlz
dD4gUGFnZTo6bm9uRmFzdFNjcm9sbGFibGVSZWN0cygpCiAgICAgICAgIGRvY3VtZW50LT51cGRh
dGVMYXlvdXQoKTsKIAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKLSAgICBpZiAoU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29v
cmRpbmF0b3IoKSkKLSAgICAgICAgcmVjdHMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1
dGVFdmVudFRyYWNraW5nUmVnaW9ucygpLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVjdHMo
KTsKKyAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0g
dGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgeworICAgICAgICBjb25zdCBFdmVudFRyYWNr
aW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+
YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9ucygpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IHN5bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNp
ZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICByZWN0cy5hcHBlbmRW
ZWN0b3Ioc3luY2hyb25vdXNFdmVudFJlZ2lvbi52YWx1ZS5yZWN0cygpKTsKKyAgICB9CiAKICAg
ICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkcyhyZWN0cy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMDRhZGY4YTM2
ZmVlZDQ4MWU5MjM0OWQ1NDVlYTJmNTQyZWI3MTQzNS4uZTQzODMwMzhlMjQzMDMxYWZmZGU3OWQw
MTE0OTEyOGE5MWZmNDIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMTQ0LDE4ICsxNDQsMTkgQEAgRXZl
bnRUcmFja2luZ1JlZ2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFj
a2luZ1JlZ2lvbnNGb3JGcmFtZSgKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6IGlmIHdlJ3Zl
IGFscmVhZHkgYWNjb3VudGVkIGZvciB0aGlzIHN1YmZyYW1lIGFzIGEgc2Nyb2xsYWJsZSBhcmVh
LCB3ZSBjYW4gYXZvaWQgcmVjdXJzaW5nIGludG8gaXQgaGVyZS4KKyAgICBFdmVudFRyYWNraW5n
UmVnaW9ucyBldmVudFRyYWNraW5nUmVnaW9uczsKICAgICBmb3IgKEZyYW1lKiBzdWJmcmFtZSA9
IGZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZyYW1l
LT50cmVlKCkubmV4dFNpYmxpbmcoKSkgewogICAgICAgICBGcmFtZVZpZXcqIHN1YmZyYW1lVmll
dyA9IHN1YmZyYW1lLT52aWV3KCk7CiAgICAgICAgIGlmICghc3ViZnJhbWVWaWV3KQogICAgICAg
ICAgICAgY29udGludWU7CiAKLSAgICAgICAgUmVnaW9uIHN1YmZyYW1lUmVnaW9uID0gYWJzb2x1
dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKCpzdWJmcmFtZSkuc3luY2hyb25vdXNEaXNw
YXRjaFJlZ2lvbjsKKyAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgc3ViZnJhbWVSZWdpb24g
PSBhYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUoKnN1YmZyYW1lKTsKICAgICAg
ICAgLy8gTWFwIGZyb20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KICAgICAg
ICAgSW50UG9pbnQgb2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmluZ1Zp
ZXdDb250ZW50cyhJbnRQb2ludCgpKTsKIAogICAgICAgICAvLyBGSVhNRTogdGhpcyB0cmFuc2xh
dGlvbiBpZ25vcmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0aGUgZnJhbWUuCiAgICAgICAg
IHN1YmZyYW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7Ci0gICAgICAgIG5v
bkZhc3RTY3JvbGxhYmxlUmVnaW9uLnVuaXRlKHN1YmZyYW1lUmVnaW9uKTsKKyAgICAgICAgZXZl
bnRUcmFja2luZ1JlZ2lvbnMudW5pdGUoc3ViZnJhbWVSZWdpb24pOwogICAgIH0KIAogICAgIERv
Y3VtZW50OjpSZWdpb25GaXhlZFBhaXIgd2hlZWxIYW5kbGVyUmVnaW9uID0gZnJhbWUuZG9jdW1l
bnQoKS0+YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+d2hl
ZWxFdmVudFRhcmdldHMoKSk7CkBAIC0xNjksNyArMTcwLDggQEAgRXZlbnRUcmFja2luZ1JlZ2lv
bnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JG
cmFtZSgKICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZSh3aGVlbEhhbmRsZXJSZWdp
b24uZmlyc3QpOwogCiAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgbm90IHRoZSBtYWluIGZyYW1l
LCB3ZSBjb3VsZCBjbGlwIHRoZSByZWdpb24gdG8gdGhlIGZyYW1lJ3MgYm91bmRzLgotICAgIHJl
dHVybiBFdmVudFRyYWNraW5nUmVnaW9ucyB7IFJlZ2lvbigpLCBub25GYXN0U2Nyb2xsYWJsZVJl
Z2lvbiB9OworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnVuaXRlU3luY2hyb25vdXNSZWdpb24o
ZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKKyAgICBy
ZXR1cm4gZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDRjYjM3MWUxZTZmMmRiYjhjYzk4NjcwYjI1ZTdmODcz
MTc2OGE1YjQuLjdjY2FmNWU0N2RlN2Q0NmJkMzcyNjU0ZDViNTViYjI1ODA0YzEwMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVT
Y3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI0NSwxNSArMjQ1LDE3IEBAIHZv
aWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRT
dHJlYW0mIHRzLCBpbnQgaW5kZW50CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgICAgICBpbmRl
bnQgLT0gMjsKICAgICB9Ci0gICAgaWYgKCFtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX2V2ZW50VHJhY2tpbmdS
ZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5pc0VtcHR5KCkp
IHsKICAgICAgICAgKytpbmRlbnQ7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOwog
ICAgICAgICB0cyA8PCAiKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiI7CiAgICAg
ICAgICsraW5kZW50OwotICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IG1fZXZlbnRUcmFja2luZ1Jl
Z2lvbnMuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5yZWN0cygpKSB7Ci0gICAgICAgICAgICB0
cyA8PCAiXG4iOwotICAgICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7Ci0gICAgICAg
ICAgICB0cyA8PCByZWN0OworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5bmNocm9ub3VzRXZl
bnRSZWdpb24gOiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9ucykgeworICAgICAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBzeW5jaHJv
bm91c0V2ZW50UmVnaW9uLnZhbHVlLnJlY3RzKCkpIHsKKyAgICAgICAgICAgICAgICB0cyA8PCAi
XG4iOworICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOworICAgICAgICAg
ICAgICAgIHRzIDw8IHJlY3Q7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgdHMg
PDwgIilcbiI7CiAgICAgICAgIGluZGVudCAtPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzNzY4MGI5NzZhZDBkMGUxNGIyMDZm
NzcxYWFmOTQ4MGRkOGQxMTY2Li5hMGFjMTljN2VjNWI3MWE2NzQwY2ZiYTkxZGRmMjIyMTc5Nzhm
NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcApAQCAtNjYsNyArNjYsMTAgQEAgYm9vbCBTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVX
aGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQKICAgICAgICAg
RmxvYXRQb2ludCBwb3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKICAgICAgICAgcG9z
aXRpb24ubW92ZShmcmFtZVNjcm9sbGluZ05vZGUudmlld1RvQ29udGVudHNPZmZzZXQobV9tYWlu
RnJhbWVTY3JvbGxQb3NpdGlvbikpOwogCi0gICAgICAgIGJvb2wgaXNTeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uID0gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2ludChy
b3VuZGVkSW50UG9pbnQocG9zaXRpb24pKSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwor
ICAgICAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1lcyA9IGV2ZW50TmFtZXMoKTsKKyAgICAgICAg
SW50UG9pbnQgcm91bmRlZFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KHBvc2l0aW9uKTsKKyAg
ICAgICAgYm9vbCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPSBtX2V2ZW50VHJhY2tpbmdS
ZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KG5hbWVzLndoZWVsRXZlbnQsIHJvdW5kZWRQb3Np
dGlvbikgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91cworICAgICAgICAgICAgfHwgbV9ldmVu
dFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2ludChuYW1lcy5tb3VzZXdoZWVsRXZl
bnQsIHJvdW5kZWRQb3NpdGlvbikgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKICAgICAg
ICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlOjpz
aG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseTogd2hlZWxFdmVudCBhdCAiIDw8IHdo
ZWVsRXZlbnQucG9zaXRpb24oKSA8PCAiIG1hcHBlZCB0byBjb250ZW50IHBvaW50ICIgPDwgcG9z
aXRpb24gPDwgIiwgaW4gbm9uLWZhc3QgcmVnaW9uICIgPDwgaXNTeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uKTsKIAogICAgICAgICBpZiAoaXNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uKQpAQCAt
MjMzLDExICsyMzYsMTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVTY3JvbGxQ
b3NpdGlvbihGbG9hdFBvaW50IHBvc2l0aW9uKQogICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24gPSBwb3NpdGlvbjsKIH0KIAotVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJh
Y2tpbmdUeXBlRm9yUG9pbnQoSW50UG9pbnQgcCkKK1RyYWNraW5nVHlwZSBTY3JvbGxpbmdUcmVl
OjpldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1l
LCBJbnRQb2ludCBwKQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICAKLSAg
ICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2ludChwKTsK
KyAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2ludChl
dmVudE5hbWUsIHApOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFuZEluUHJv
Z3Jlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5o
CmluZGV4IDI2MTdiZmJhZDFkZTI3ZDE0OTMxNGRmMmUyZWQzNDlhZWYzNGRmMDIuLjEwOWQxM2Fi
N2VmZTExNzAzMmE5YjVmNTMzMTM1NzI2MzA0NThmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkgeyB9CiAj
ZW5kaWYKIAotICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlw
ZUZvclBvaW50KEludFBvaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBUcmFja2luZ1R5cGUgZXZl
bnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSwgSW50
UG9pbnQpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
V2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGVjYjkzYmE5M2M1YTc4NTAyNThmYzljZGM4M2Y4ODc5NjlkNTMzNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcApAQCAt
MCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFRyYWNraW5nUmVnaW9ucy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RyYWNraW5nVHlwZSBFdmVudFRyYWNraW5nUmVn
aW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIGNvbnN0
IEludFBvaW50JiBwb2ludCkKK3sKKyAgICBhdXRvIHN5bmNocm9ub3VzUmVnaW9uSXRlcmF0b3Ig
PSBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMuZmluZChldmVudE5hbWUp
OworICAgIGlmIChzeW5jaHJvbm91c1JlZ2lvbkl0ZXJhdG9yICE9IGV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5lbmQoKSkgeworICAgICAgICBpZiAoc3luY2hyb25vdXNS
ZWdpb25JdGVyYXRvci0+dmFsdWUuY29udGFpbnMocG9pbnQpKQorICAgICAgICAgICAgcmV0dXJu
IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAgfQorCisgICAgaWYgKGFzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uLmNvbnRhaW5zKHBvaW50KSkKKyAgICAgICAgcmV0dXJuIFRyYWNraW5n
VHlwZTo6QXN5bmNocm9ub3VzOworICAgIHJldHVybiBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5n
OworfQorCitib29sIEV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpCisgICAgICAgICYm
IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5pc0VtcHR5KCk7Cit9CisK
K3ZvaWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZShJbnRTaXplIG9mZnNldCkKK3sK
KyAgICBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi50cmFuc2xhdGUob2Zmc2V0KTsKKyAgICBm
b3IgKGF1dG8mIHNsb3QgOiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMp
CisgICAgICAgIHNsb3QudmFsdWUudHJhbnNsYXRlKG9mZnNldCk7Cit9CisKK3ZvaWQgRXZlbnRU
cmFja2luZ1JlZ2lvbnM6OnVuaXRlU3luY2hyb25vdXNSZWdpb24oY29uc3QgU3RyaW5nJiBldmVu
dE5hbWUsIGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQoreworICAgIGlmIChyZWdpb24uaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGFkZFJlc3VsdCA9IGV2ZW50U3BlY2lmaWNT
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5hZGQoZXZlbnROYW1lLCByZWdpb24pOworICAgIGlm
ICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFs
dWUudW5pdGUocmVnaW9uKTsKK30KKwordm9pZCBFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUo
Y29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQoreworICAg
IGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uLnVuaXRlKGV2ZW50VHJhY2tpbmdSZWdpb25zLmFz
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uKTsKKyAgICBmb3IgKGF1dG8mIHNsb3QgOiBldmVudFRy
YWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisg
ICAgICAgIHVuaXRlU3luY2hyb25vdXNSZWdpb24oc2xvdC5rZXksIHNsb3QudmFsdWUpOworfQor
Citib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0IEV2
ZW50VHJhY2tpbmdSZWdpb25zJiBiKQoreworICAgIHJldHVybiBhLmFzeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24KKyAgICAgICAgJiYgYS5l
dmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25z
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCmluZGV4
IDFmMDU1NjQwMTQ0MzhjYTM1MTg1ZWE1N2IwMDYzMTA4MzU5ZTczZTEuLmQ2ZjViYjE4YzdjODBk
OGMwY2Y3M2E4MzcwMGVkOWQ2NmI1ZmRjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtMjYsNiArMjYsOSBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJSZWdpb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSwzMiArNDIsMTkgQEAgc3RydWN0IEV2
ZW50VHJhY2tpbmdSZWdpb25zIHsKICAgICAvLyBSZWdpb24gZm9yIHdoaWNoIGV2ZW50cyBjYW4g
YmUgZGlzcGF0Y2hlZCB3aXRob3V0IGJsb2NraW5nIHNjcm9sbGluZy4KICAgICBSZWdpb24gYXN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CiAKLSAgICAvLyBSZWdpb24gZm9yIHdoaWNoIGV2ZW50
cyBtdXN0IGJlIHNlbnQgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGRlZmF1bHQgYmVoYXZpb3IuCi0g
ICAgUmVnaW9uIHN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgLy8gUmVnaW9ucyBmb3Ig
d2hpY2ggZXZlbnRzIG11c3QgYmUgc2VudCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBi
ZWhhdmlvci4KKyAgICAvLyBUaGUga2V5IGlzIHRoZSBFdmVudCBOYW1lIHdpdGggYW4gYWN0aXZl
IGhhbmRsZXIuCisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKLSAg
ICBUcmFja2luZ1R5cGUgdHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKTsKLX07
Ci0KLWlubGluZSBib29sIEV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpICYmIHN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpOwotfQorICAgIHZvaWQgdHJhbnNsYXRlKElu
dFNpemUpOworICAgIHZvaWQgdW5pdGVTeW5jaHJvbm91c1JlZ2lvbihjb25zdCBTdHJpbmcmIGV2
ZW50TmFtZSwgY29uc3QgUmVnaW9uJik7CisgICAgdm9pZCB1bml0ZShjb25zdCBFdmVudFRyYWNr
aW5nUmVnaW9ucyYpOwogCi1pbmxpbmUgVHJhY2tpbmdUeXBlIEV2ZW50VHJhY2tpbmdSZWdpb25z
Ojp0cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCi17Ci0gICAgaWYg
KHN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uY29udGFpbnMocG9pbnQpKQotICAgICAgICByZXR1
cm4gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKLSAgICBpZiAoYXN5bmNocm9ub3VzRGlzcGF0
Y2hSZWdpb24uY29udGFpbnMocG9pbnQpKQotICAgICAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpB
c3luY2hyb25vdXM7Ci0gICAgcmV0dXJuIFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7Ci19Cisg
ICAgVHJhY2tpbmdUeXBlIHRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IFN0cmluZyYgZXZlbnRO
YW1lLCBjb25zdCBJbnRQb2ludCYpOworfTsKIAotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYSwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGIp
Ci17Ci0gICAgcmV0dXJuIGEuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPT0gYi5hc3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbgotICAgICAgICAmJiBhLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b24gPT0gYi5zeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwotfQorYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmKTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA5MjQ2ZWU3ZGQ5Mjc2ZWVjYTNiMDE5NTNhY2E5
ZTAwMWVlM2MxMjg4Li4zZTUyYzlmYjY5OTBlODJjNmMwYWQxNzYzNjc3MDAzZTBhZjY0M2Y0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtMTExLDcgKzExMSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBZmZpbmVUcmFuCiB2b2lkIEFyZ3VtZW50
Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCiB7
CiAgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRj
aFJlZ2lvbjsKLSAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb247CisgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiB9CiAKIGJvb2wgQXJndW1lbnRD
b2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9ucykKQEAgLTExOSwx
MSArMTE5LDExIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEV2ZW50CiAgICAgUmVnaW9uIGFzeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9uOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXN5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmVnaW9uIHN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb247Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uKSkKKyAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNp
ZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShl
dmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b24gPSBXVEZNb3ZlKGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uKTsKLSAgICBldmVudFRyYWNr
aW5nUmVnaW9ucy5zeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID0gV1RGTW92ZShzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uKTsKKyAgICBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPSBXVEZNb3ZlKGV2ZW50U3BlY2lmaWNTeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9ucyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGFjODQwZGQ1ZTg1MmUxN2NkYWFi
MGM5YmNlYjdiODQ2Njc5MjVlZTQuLmFjOThjNjQ4MDk2OTExYTMwM2VhNDllNDcwYzdhYTU2MzJk
OGM1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAt
MTQ5LDkgKzE0OSw5IEBAIGJvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmCiAgICAgcmV0dXJuIHJlc3Vs
dCA9PSBTY3JvbGxpbmdUcmVlOjpEaWRIYW5kbGVFdmVudDsgLy8gRklYTUU6IGhhbmRsZSBvdGhl
ciB2YWx1ZXMuCiB9CiAKLVRyYWNraW5nVHlwZSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpldmVudFRyYWNraW5nVHlwZUZvclBvaW50KEludFBvaW50IHApIGNvbnN0CitUcmFja2lu
Z1R5cGUgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6ZXZlbnRUcmFja2luZ1R5cGVG
b3JQb2ludChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSwgSW50UG9pbnQgcCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50
KHApOworICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9p
bnQoZXZlbnROYW1lLCBwKTsKIH0KIAogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5Ojp2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Ny
b2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCAwZGRiNTA2OTEy
ZjYxN2MzMDY0NWI5OWQxMDA5NjgxNjk0N2JhODdkLi5jZjUwZGQwNjI3OTEzMzRhMjcyNDg0ZTQ3
MTBhNGM5Njk4NDEzMTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Ny
b2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIG5ld1Njcm9sbFBvc2l0aW9uLCBXZWJDb3JlOjpTZXRPclN5bmNTY3JvbGxpbmdMYXllclBv
c2l0aW9uKTsKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAotICAgIFdlYkNvcmU6
OlRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KFdlYkNvcmU6OkludFBvaW50
KSBjb25zdDsKKyAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQ
b2ludChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSwgV2ViQ29yZTo6SW50UG9pbnQpIGNv
bnN0OwogCiAgICAgLy8gQ2FsbGVkIGV4dGVybmFsbHkgd2hlbiBuYXRpdmUgdmlld3MgbW92ZSBh
cm91bmQuCiAgICAgdm9pZCB2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGZpeGVkUG9z
aXRpb25SZWN0LCBkb3VibGUgc2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCAwOTdjZmM1ZTFlZTY3NGRkOTQ0MjY0OTg4ZjJmOTgzMTlhNzAwMTM5
Li40MzVmOTM3MGZlZDA1YWFjZmI5ZWE4NWM1ZTgzOTU1MjBjOTBlZjE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTkzNiwyNCArMTkzNiw3MyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50
MzJfdCBwcm9jZXNzVHlwZSwgY29ucwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIAotVHJh
Y2tpbmdUeXBlIFdlYlBhZ2VQcm94eTo6dG91Y2hFdmVudFRyYWNraW5nVHlwZShjb25zdCBXZWJU
b3VjaEV2ZW50JiB0b3VjaFN0YXJ0RXZlbnQpIGNvbnN0CitzdGF0aWMgVHJhY2tpbmdUeXBlIG1l
cmdlVHJhY2tpbmdUeXBlcyhUcmFja2luZ1R5cGUgYSwgVHJhY2tpbmdUeXBlIGIpCit7CisgICAg
aWYgKHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oYikgPiBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KGEp
KQorICAgICAgICByZXR1cm4gYjsKKyAgICByZXR1cm4gYTsKK30KKwordm9pZCBXZWJQYWdlUHJv
eHk6OnVwZGF0ZVRvdWNoRXZlbnRUcmFja2luZyhjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaFN0
YXJ0RXZlbnQpCiB7CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBUcmFja2luZ1R5
cGUgdHJhY2tpbmdUeXBlID0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICBjb25zdCBF
dmVudE5hbWVzJiBuYW1lcyA9IGV2ZW50TmFtZXMoKTsKICAgICBmb3IgKGF1dG8mIHRvdWNoUG9p
bnQgOiB0b3VjaFN0YXJ0RXZlbnQudG91Y2hQb2ludHMoKSkgewotICAgICAgICBUcmFja2luZ1R5
cGUgdG91Y2hQb2ludFRyYWNraW5nVHlwZSA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS0+
ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludCh0b3VjaFBvaW50LmxvY2F0aW9uKCkpOwotICAgICAg
ICBpZiAodG91Y2hQb2ludFRyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3Vz
KQotICAgICAgICAgICAgcmV0dXJuIFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAgICAg
IEludFBvaW50IGxvY2F0aW9uID0gdG91Y2hQb2ludC5sb2NhdGlvbigpOworICAgICAgICBhdXRv
IHVwZGF0ZVRyYWNraW5nVHlwZSA9IFt0aGlzLCBsb2NhdGlvbl0oVHJhY2tpbmdUeXBlJiB0cmFj
a2luZ1R5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKSB7CisgICAgICAgICAgICBp
ZiAodHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXMpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICh0b3VjaFBvaW50VHJhY2tpbmdUeXBlID09IFRy
YWNraW5nVHlwZTo6QXN5bmNocm9ub3VzKQotICAgICAgICAgICAgdHJhY2tpbmdUeXBlID0gdG91
Y2hQb2ludFRyYWNraW5nVHlwZTsKLSAgICB9CisgICAgICAgICAgICBUcmFja2luZ1R5cGUgdHJh
Y2tpbmdUeXBlRm9yTG9jYXRpb24gPSBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHktPmV2ZW50
VHJhY2tpbmdUeXBlRm9yUG9pbnQoZXZlbnROYW1lLCBsb2NhdGlvbik7CiAKLSAgICByZXR1cm4g
dHJhY2tpbmdUeXBlOworICAgICAgICAgICAgdHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5
cGVzKHRyYWNraW5nVHlwZSwgdHJhY2tpbmdUeXBlRm9yTG9jYXRpb24pOworICAgICAgICB9Owor
ICAgICAgICB1cGRhdGVUcmFja2luZ1R5cGUobV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hGb3Jj
ZUNoYW5nZWRUcmFja2luZywgbmFtZXMudG91Y2hmb3JjZWNoYW5nZUV2ZW50KTsKKyAgICAgICAg
dXBkYXRlVHJhY2tpbmdUeXBlKG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoU3RhcnRUcmFja2lu
ZywgbmFtZXMudG91Y2hzdGFydEV2ZW50KTsKKyAgICAgICAgdXBkYXRlVHJhY2tpbmdUeXBlKG1f
dG91Y2hFdmVudFRyYWNraW5nLnRvdWNoTW92ZVRyYWNraW5nLCBuYW1lcy50b3VjaG1vdmVFdmVu
dCk7CisgICAgICAgIHVwZGF0ZVRyYWNraW5nVHlwZShtX3RvdWNoRXZlbnRUcmFja2luZy50b3Vj
aEVuZFRyYWNraW5nLCBuYW1lcy50b3VjaGVuZEV2ZW50KTsKKyAgICB9CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTSh0b3VjaFN0YXJ0RXZlbnQpOworICAgIG1fdG91Y2hFdmVudFRyYWNraW5nLnRv
dWNoRm9yY2VDaGFuZ2VkVHJhY2tpbmcgPSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOworICAg
IG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoU3RhcnRUcmFja2luZyA9IFRyYWNraW5nVHlwZTo6
U3luY2hyb25vdXM7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hNb3ZlVHJhY2tpbmcg
PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOworICAgIG1fdG91Y2hFdmVudFRyYWNraW5nLnRv
dWNoRW5kVHJhY2tpbmcgPSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwogI2VuZGlmIC8vIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgcmV0dXJuIFRyYWNraW5nVHlwZTo6U3luY2hyb25v
dXM7Cit9CisKK1RyYWNraW5nVHlwZSBXZWJQYWdlUHJveHk6OnRvdWNoRXZlbnRUcmFja2luZ1R5
cGUoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hTdGFydEV2ZW50KSBjb25zdAoreworICAgIC8v
IFdlIHNlbmQgYWxsIGV2ZW50cyBpZiBhbnkgb2YgdGhlbSBpcyBuZWVkZWQsIHdlIGp1c3QgZG8g
aXQgYXN5bmNocm9ub3VzbHkuCisgICAgLy8KKyAgICAvLyBUb3VjaCBldmVudHMgZGVmaW5lIGEg
c2VxdWVuY2Ugd2l0aCBzdHJvbmcgZGVwZW5kZW5jaWVzLiBGb3IgZXhhbXBsZSwgd2UgY2FuIGV4
cGVjdAorICAgIC8vIGEgVG91Y2hNb3ZlIHRvIG9ubHkgYXBwZWFyIGFmdGVyIGEgVG91Y2hTdGFy
dCwgYW5kIHRoZSBpZHMgb2YgdGhlIHRvdWNoIHBvaW50cyBpcyBjb25zaXN0ZW50IGJldHdlZW4K
KyAgICAvLyB0aGUgdHdvLgorICAgIC8vCisgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBXZWJDb3Jl
IHRvIGJlIGFibGUgdG8gc2V0dXAgaXRzIHN0YXRlIGNvcnJlY3RseSBhZnRlciBzb21lCisgICAg
Ly8gZXZlbnRzIHdlcmUgZGlzbWlzc2VkLiBXZSBzZW5kIGV2ZXJ5dGhpbmcsIFdlYkNvcmUgdXBk
YXRlcyBpdHMgaW50ZXJuYWwgc3RhdGUgYW5kIGRpc3BhdGNoIHdoYXQgaXMgbmVlZGVkLgorICAg
IFRyYWNraW5nVHlwZSBnbG9iYWxUcmFja2luZ1R5cGUgPSBtX3RvdWNoRXZlbnRUcmFja2luZy5p
c1RyYWNraW5nQW55dGhpbmcoKSA/IFRyYWNraW5nVHlwZTo6QXN5bmNocm9ub3VzIDogVHJhY2tp
bmdUeXBlOjpOb3RUcmFja2luZzsKKworICAgIGdsb2JhbFRyYWNraW5nVHlwZSA9IG1lcmdlVHJh
Y2tpbmdUeXBlcyhnbG9iYWxUcmFja2luZ1R5cGUsIG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNo
Rm9yY2VDaGFuZ2VkVHJhY2tpbmcpOworICAgIGZvciAoYXV0byYgdG91Y2hQb2ludCA6IHRvdWNo
U3RhcnRFdmVudC50b3VjaFBvaW50cygpKSB7CisgICAgICAgIHN3aXRjaCAodG91Y2hQb2ludC5w
aGFzZSgpKSB7CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVh
c2VkOgorICAgICAgICAgICAgZ2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5cGVz
KGdsb2JhbFRyYWNraW5nVHlwZSwgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hFbmRUcmFja2lu
Zyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OlRvdWNoUHJlc3NlZDoKKyAgICAgICAgICAgIGdsb2JhbFRyYWNraW5nVHlwZSA9IG1lcmdl
VHJhY2tpbmdUeXBlcyhnbG9iYWxUcmFja2luZ1R5cGUsIG1fdG91Y2hFdmVudFRyYWNraW5nLnRv
dWNoU3RhcnRUcmFja2luZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQ6CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1U
b3VjaFBvaW50OjpUb3VjaFN0YXRpb25hcnk6CisgICAgICAgICAgICBnbG9iYWxUcmFja2luZ1R5
cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMoZ2xvYmFsVHJhY2tpbmdUeXBlLCBtX3RvdWNoRXZlbnRU
cmFja2luZy50b3VjaE1vdmVUcmFja2luZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkOgorICAgICAgICAgICAg
Z2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5cGVzKGdsb2JhbFRyYWNraW5nVHlw
ZSwgVHJhY2tpbmdUeXBlOjpBc3luY2hyb25vdXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZ2xvYmFsVHJhY2tpbmdUeXBlOwogfQogCiAjZW5k
aWYKQEAgLTE5NzksMTQgKzIwMjgsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNo
RXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaFN0YXJ0KSB7
Ci0gICAgICAgIG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSB0b3VjaEV2ZW50VHJhY2tpbmdU
eXBlKGV2ZW50KTsKKyAgICAgICAgdXBkYXRlVG91Y2hFdmVudFRyYWNraW5nKGV2ZW50KTsKICAg
ICAgICAgbV9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCA9IGRvd25jYXN0
PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk+KCpkcmF3aW5nQXJlYSgpKS5sYXN0Q29t
bWl0dGVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpOwogICAgIH0KIAotICAgIGlmIChtX3RvdWNo
RXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcpCisgICAgVHJh
Y2tpbmdUeXBlIHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gdG91Y2hFdmVudFRyYWNraW5nVHlw
ZShldmVudCk7CisgICAgaWYgKHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlw
ZTo6Tm90VHJhY2tpbmcpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3RvdWNoRXZlbnRz
VHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6QXN5bmNocm9ub3VzKSB7CisgICAgaWYgKHRv
dWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6QXN5bmNocm9ub3VzKSB7CiAg
ICAgICAgIC8vIFdlIGNhbiBlbmQgdXAgaGVyZSBpZiBhIG5hdGl2ZSBnZXN0dXJlIGhhcyBub3Qg
c3RhcnRlZCBidXQgdGhlIGV2ZW50IGhhbmRsZXJzIGFyZSBwYXNzaXZlLgogICAgICAgICAvLwog
ICAgICAgICAvLyBUaGUgY2xpZW50IG9mIFdlYlBhZ2VQcm94eSBhc2tzIHRoZSBldmVudCB0byBi
ZSBzZW50IHN5bmNocm9ub3VzbHkgc2luY2UgdGhlIHRvdWNoIGV2ZW50CkBAIC0yMDA3LDcgKzIw
NTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHko
TmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVz
c1RpbWVyKCkuc3RvcCgpOwogCiAgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFz
ZWQoKSkKLSAgICAgICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IFRyYWNraW5nVHlwZTo6
Tm90VHJhY2tpbmc7CisgICAgICAgIG1fdG91Y2hFdmVudFRyYWNraW5nLnJlc2V0KCk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkoY29uc3Qg
TmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCkBAIC0yMDE1LDEzICsyMDY1LDE0IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkoY29uc3QgTmF0aXZl
V2ViVG91Y2hFdmVudCYgZXZlCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6Tm90
VHJhY2tpbmcpCisgICAgVHJhY2tpbmdUeXBlIHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gdG91
Y2hFdmVudFRyYWNraW5nVHlwZShldmVudCk7CisgICAgaWYgKHRvdWNoRXZlbnRzVHJhY2tpbmdU
eXBlID09IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpUb3VjaEV2ZW50KG1f
cGFnZUlELCBldmVudCksIDApOwogCiAgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVs
ZWFzZWQoKSkKLSAgICAgICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IFRyYWNraW5nVHlw
ZTo6Tm90VHJhY2tpbmc7CisgICAgICAgIG1fdG91Y2hFdmVudFRyYWNraW5nLnJlc2V0KCk7CiB9
CiAKICNlbGlmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yMDMxLDkgKzIwODIsOSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50
JiBldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBXZWJF
dmVudDo6VG91Y2hTdGFydCkKLSAgICAgICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IHRv
dWNoRXZlbnRUcmFja2luZ1R5cGUoZXZlbnQpOworICAgICAgICB1cGRhdGVUb3VjaEV2ZW50VHJh
Y2tpbmcoZXZlbnQpOwogCi0gICAgaWYgKG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJh
Y2tpbmdUeXBlOjpOb3RUcmFja2luZykKKyAgICBpZiAodG91Y2hFdmVudFRyYWNraW5nVHlwZShl
dmVudCkgPT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZykKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gSWYgdGhlIHBhZ2UgaXMgc3VzcGVuZGVkLCB3aGljaCBzaG91bGQgYmUgdGhlIGNhc2Ug
ZHVyaW5nIHBhbm5pbmcsIHBpbmNoaW5nCkBAIC0yMDU2LDcgKzIxMDcsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVu
dCkKICAgICB9CiAKICAgICBpZiAoZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKQot
ICAgICAgICBtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gVHJhY2tpbmdUeXBlOjpOb3RUcmFj
a2luZzsKKyAgICAgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcucmVzZXQoKTsKIH0KICNlbmRpZiAv
LyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCkBAIC01MDc1LDcgKzUxMjYsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uIHJlc2V0U3RhdGVSZWFzb24pCiAg
ICAgfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBtX3RvdWNoRXZlbnRzVHJhY2tp
bmdUeXBlID0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICBtX3RvdWNoRXZlbnRUcmFj
a2luZy5yZXNldCgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2NDM2MjQyZDZhNmFmYWNi
YjczMjhjNTM3YjUyMzBjODAzNjJlNTFhLi4yM2E4NTMzZjhkMTk4ZTI3OGEyYjdkMDBlZDMzYjVm
NTljZmI3ODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0x
NDY0LDYgKzE0NjQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZFdoZWVsRXZlbnQoY29uc3Qg
V2ViV2hlZWxFdmVudCYpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICB2b2lkIHVw
ZGF0ZVRvdWNoRXZlbnRUcmFja2luZyhjb25zdCBXZWJUb3VjaEV2ZW50Jik7CiAgICAgV2ViQ29y
ZTo6VHJhY2tpbmdUeXBlIHRvdWNoRXZlbnRUcmFja2luZ1R5cGUoY29uc3QgV2ViVG91Y2hFdmVu
dCYpIGNvbnN0OwogI2VuZGlmCiAKQEAgLTE2OTEsNyArMTY5MiwyOSBAQCBwcml2YXRlOgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxOYXRpdmVXZWJNb3VzZUV2ZW50PiBtX2N1cnJlbnRseVByb2Nlc3Nl
ZE1vdXNlRG93bkV2ZW50OwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBXZWJDb3Jl
OjpUcmFja2luZ1R5cGUgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSB7IFdlYkNvcmU6OlRyYWNr
aW5nVHlwZTo6Tm90VHJhY2tpbmcgfTsKKyAgICBzdHJ1Y3QgVG91Y2hFdmVudFRyYWNraW5nIHsK
KyAgICAgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIHRvdWNoRm9yY2VDaGFuZ2VkVHJhY2tpbmcg
eyBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nIH07CisgICAgICAgIFdlYkNvcmU6
OlRyYWNraW5nVHlwZSB0b3VjaFN0YXJ0VHJhY2tpbmcgeyBXZWJDb3JlOjpUcmFja2luZ1R5cGU6
Ok5vdFRyYWNraW5nIH07CisgICAgICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSB0b3VjaE1vdmVU
cmFja2luZyB7IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcgfTsKKyAgICAgICAg
V2ViQ29yZTo6VHJhY2tpbmdUeXBlIHRvdWNoRW5kVHJhY2tpbmcgeyBXZWJDb3JlOjpUcmFja2lu
Z1R5cGU6Ok5vdFRyYWNraW5nIH07CisKKyAgICAgICAgYm9vbCBpc1RyYWNraW5nQW55dGhpbmco
KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdG91Y2hGb3JjZUNoYW5nZWRU
cmFja2luZyAhPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nCisgICAgICAgICAg
ICAgICAgfHwgdG91Y2hTdGFydFRyYWNraW5nICE9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90
VHJhY2tpbmcKKyAgICAgICAgICAgICAgICB8fCB0b3VjaE1vdmVUcmFja2luZyAhPSBXZWJDb3Jl
OjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nCisgICAgICAgICAgICAgICAgfHwgdG91Y2hFbmRU
cmFja2luZyAhPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAgICB9
CisKKyAgICAgICAgdm9pZCByZXNldCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvdWNoRm9y
Y2VDaGFuZ2VkVHJhY2tpbmcgPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOwor
ICAgICAgICAgICAgdG91Y2hTdGFydFRyYWNraW5nID0gV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpO
b3RUcmFja2luZzsKKyAgICAgICAgICAgIHRvdWNoTW92ZVRyYWNraW5nID0gV2ViQ29yZTo6VHJh
Y2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICAgICAgICAgIHRvdWNoRW5kVHJhY2tpbmcgPSBX
ZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAgICB9CisgICAgfTsKKyAg
ICBUb3VjaEV2ZW50VHJhY2tpbmcgbV90b3VjaEV2ZW50VHJhY2tpbmc7CiAjZW5kaWYKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgRGVx
dWU8UXVldWVkVG91Y2hFdmVudHM+IG1fdG91Y2hFdmVudFF1ZXVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYyYmZhYWU5
OGM5NTY0YjZkMjg2NTAwZDgwMTgyYjYwYjU2MTg0ZTEuLmQxZTk0Zjg1ZDQ4MmZmZDIxZjVlZmM4
Y2ZmNjFhYWI1OTdkNGFkNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNi0wNi0xNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6
ZSBzeW5jaHJvbm91cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3NpdmUt
bGlzdGVuZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3Np
dmUtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1saXN0
ZW5lci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUtbGlz
dGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0
ZW5lci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtcGFzc2l2ZS1saXN0ZW5lci1pbnNpZGUtYWN0aXZlLWxpc3RlbmVyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVu
ZC1saXN0ZW5lci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Rv
dWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1z
dGFydC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZl
LXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZl
LXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1tb3ZlLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1tb3ZlLWxpc3RlbmVycy1vbi1lbGVt
ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxNi0wNi0xMyAgUm9tYWluIEJlbGxlc3NvcnQgIDxyb21h
aW4uYmVsbGVzc29ydEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgW0dUS10gRW5hYmxpbmcgU2hh
ZG93IERPTSBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBh
c3NpdmUtbGlzdGVuZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNz
aXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzJmOWYzOGQyNTJjNmVhNjhk
OTIzZjc5MjhiOTc1M2U0ODZkM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1l
bnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitD
YW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNl
aXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAor
TGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgMTAwLCAxMDAKK0xp
c3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0xpc3Rl
bmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGlu
ZyBldmVudFRhcmdldDEKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCkKKwor
TGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZl
bnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRv
dWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgdGFy
Z2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MiBhdCAyMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMjAwLCAxMDAKK0xp
c3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MgorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBl
dmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorQ2FuY2VsbGVkIGRy
YWcgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBldmVudCB0
b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRh
cmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBh
dCAyNTAsIDUwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQg
MzAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3Vj
aG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIGRvY3Vt
ZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUg
ZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIHRhcmdldDEg
cmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MworTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworRG9uZQorVXNlbGVzcyBDbGljayBpbiB0aGUgZG9jdW1l
bnQsIHNob3VsZCBiZSBwYXNzaXZlCisKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50
IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBhdCAzMDAsIDMwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVj
ZWl2ZWQgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUt
ZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13
aXRoLXBhc3NpdmUtbGlzdGVuZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2QzZjgzMzM0YzllY2RlNzZl
NmY2YzJiNGVhNGMyMDA5ZWZkOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1l
bnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGdldENsaWNrVUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1
aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gZ2V0RHJhZ1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZ
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgk
e3N0YXJ0WH0sICR7c3RhcnRZfSwgJHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25l
Iik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyAr
IGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ3Njcm9sbCcsIGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAg
ICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lciwgc2hvdWxkUHJldmVudERlZmF1
bHQgPSBmYWxzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChl
dmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0
ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDog
JycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFy
Z2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVu
dC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hl
c1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAgJzxicj4nOworCisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRQcmV2
ZW50RGVmYXVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoImRvY3VtZW50
IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3NpdmUn
OiB0cnVlIH0pOworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hl
bmQnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAg
ICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2
ZW50KCJkb2N1bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgbGV0
IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAg
ICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVu
dCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEu
YWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiLCB0cnVl
KSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0
TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0
YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdl
dDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiks
IHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3Rl
bmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIsIHRydWUpKTsKKyAgICAgICAg
ICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFy
Z2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZl
bnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNz
aXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRy
YWcgb24gVGFyZ2V0MSAoZ3JlZW4pPC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChnZXREcmFnVUlTY3JpcHQoNTAsIDUwLCAxMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCgxNTAs
IDUwLCAyMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5j
ZWxsZWQgZHJhZyBvbiBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMjUwLCA1MCwgMzAwLCAxMDAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5Vc2VsZXNzIENs
aWNrIGluIHRoZSBkb2N1bWVudCwgc2hvdWxkIGJlIHBhc3NpdmU8L2gxPiI7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldENsaWNrVUlTY3JpcHQoMzAw
LCAzMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4K
KyAgICA8c3R5bGU+CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQor
ICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAg
ICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0K
KyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMg
eworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAg
ICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8
L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxl
PTEiPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAg
IDxkaXYgaWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+
CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diBpZD1vdXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0
byBydW4uCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lk
ZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdp
bmRvdy13aXRoLXBhc3NpdmUtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MmY5
ZjM4ZDI1MmM2ZWE2OGQ5MjNmNzkyOGI5NzUzZTQ4NmQzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVy
LWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDM1IEBACitDYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIg
dGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQx
IGF0IDUwLCA1MAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQg
MTAwLCAxMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91
Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJn
ZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRh
cmdldDEKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hl
bmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdl
dDIgKHJlZCkKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2Vp
dmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMTUwLCA1MAor
TGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJn
ZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAyMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQg
MjAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3Vj
aGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQg
Y2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQor
Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNl
aXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAK
K0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0
b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRh
cmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVu
dFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xp
c3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3Rl
bmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5n
IGV2ZW50VGFyZ2V0MworTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVu
dCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworRG9uZQorVXNlbGVzcyBDbGljayBp
biB0aGUgZG9jdW1lbnQsIHNob3VsZCBiZSBwYXNzaXZlCisKK0xpc3RlbmVyIGRvY3VtZW50IHJl
Y2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBhdCAzMDAsIDMwMAorTGlzdGVuZXIg
ZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0
ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUt
d2luZG93LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDM4NDA1MjNk
Zjg5NTliMDY4OTRhODc3NDI0NDMzMmVmMzA3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lk
ZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwh
RE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIGdldENsaWNrVUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRv
bmUiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0RHJhZ1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRY
LCBlbmRZKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Q
b2ludCgke3N0YXJ0WH0sICR7c3RhcnRZfSwgJHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRl
KCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290
IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ3Njcm9sbCcsIGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7
CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lciwgc2hvdWxkUHJldmVu
dERlZmF1bHQgPSBmYWxzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dF
dmVudChldmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcg
KyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFi
bGUnIDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZl
bnQudGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAm
JiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQu
dG91Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAgJzxicj4nOworCisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91
bGRQcmV2ZW50RGVmYXVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJkb2N1
bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2
ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hl
bmQnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVu
dCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGxldCB0
YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAgICAg
ICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQo
InRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiwgdHJ1ZSkp
OworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExv
Z0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFy
Z2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQx
IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQz
LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7
ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiLCB0cnVlKSk7CisgICAgICAgICAg
ICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50
TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2
ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFn
IG9uIFRhcmdldDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDUwLCA1MCwgMTAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91
dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMTUwLCA1
MCwgMjAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0
cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2Vs
bGVkIGRyYWcgb24gVGFyZ2V0MyAoYmx1ZSk8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDI1MCwgNTAsIDMwMCwgMTAwKSwg
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVz
dWx0OworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VXNlbGVzcyBDbGlj
ayBpbiB0aGUgZG9jdW1lbnQsIHNob3VsZCBiZSBwYXNzaXZlPC9oMT4iOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRDbGlja1VJU2NyaXB0KDMwMCwg
MzAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVySFRNTCA9IG91dHB1dDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cisg
ICAgPHN0eWxlPgorICAgICAgICAqIHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAg
ICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAg
I2V2ZW50VGFyZ2V0MSwgI2V2ZW50VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAg
ICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9Cisg
ICAgICAgICNldmVudFRhcmdldDEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAg
ICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgPC9z
dHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0x
Ij4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8
ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgor
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYg
aWQ9b3V0cHV0PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8g
cnVuLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVu
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2
NmI5ZTM4NjEzYmM0ZmI0OGViN2I1YmExYjg3ZDRhYzgzNDQzZDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNo
LWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGFwIG9uIFRhcmdl
dDEgKGdyZWVuKQorCisoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKKyAgKHNjcm9sbGFibGUgYXJlYSBz
aXplIDgwMCA2MDApCisgIChjb250ZW50cyBzaXplIDgwMCA2MDApCisgIChzeW5jaHJvbm91cyBl
dmVudCBkaXNwYXRjaCByZWdpb24KKyAgICBhdCAoMCwwKSBzaXplIDMwMHgxMDApCispCitMaXN0
ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGlu
ZyBldmVudFRhcmdldDEKK0RvbmUKK1RhcCBvbiBUYXJnZXQyIChyZWQpCisKKyhGcmFtZSBzY3Jv
bGxpbmcgbm9kZQorICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgODAwIDYwMCkKKyAgKGNvbnRlbnRz
IHNpemUgODAwIDYwMCkKKyAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAg
IGF0ICgwLDApIHNpemUgMzAweDEwMCkKKykKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2Fu
Y2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorVGFw
IG9uIFRhcmdldDMgKGJsdWUpCisKKyhGcmFtZSBzY3JvbGxpbmcgbm9kZQorICAoc2Nyb2xsYWJs
ZSBhcmVhIHNpemUgODAwIDYwMCkKKyAgKGNvbnRlbnRzIHNpemUgODAwIDYwMCkKKyAgKHN5bmNo
cm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAgIGF0ICgwLDApIHNpemUgMzAweDEwMCkK
KykKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1l
bmQtbGlzdGVuZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDM2YjMzZWZlNDZkM2Q0OGY4Nzg5MWM3ZjIw
NzgwYjYxMWU2OTk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbApAQCAtMCww
ICsxLDEwNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoeCwgeSkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29t
cGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gJ0ZBSUxFRCE6IE5vIG1vdXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3
ZSBnb3QgYSAnICsgZXZlbnQudHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZmFpbCk7CisKKyAgICAgICAgICAgIGxldCBvdXRw
dXQgPSAnJzsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldExvZ0V2ZW50KGxpc3RlbmVyKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnPHByZT4nICsgd2luZG93LmludGVybmFscy5zY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHQoKSArICc8L3ByZT4nOworICAgICAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNl
bGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcg
dGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVu
dFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAgJzxicj4nOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisKKyAg
ICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDUwLCA1MCksIGZ1
bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgxNTAsIDUw
KSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1
bHQ7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQzIChi
bHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChn
ZXRVSVNjcmlwdCgyNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0
cHV0OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICog
eyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAgICAg
ICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRU
YXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
ICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAg
ICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAg
ICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4Owor
ICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
ICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4K
KyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMg
dGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlz
dGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjYzlhNTAzM2Zl
MjBjZDVjOWE1ZGU5ZWNlZWExYWYxZGZhMTJjODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1pbnNp
ZGUtYWN0aXZlLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGdldFVJU2NyaXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBg
CisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LnNpbmdsZVRhcEF0UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlv
biBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBt
b3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVu
dGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vs
ZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
ZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
bW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
dXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5j
dGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5j
dGlvbiBsb2dFdmVudChldmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xp
c3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAn
IGNhbmNlbGFibGUnIDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGlu
ZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91
Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAn
ICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnZGVmYXVsdFByZXZlbnRlZCBiZWZvcmUgcHJldmVudERlZmF1bHQoKTogJyArIGV2
ZW50LmRlZmF1bHRQcmV2ZW50ZWQgKyAnPGJyPic7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnZGVmYXVs
dFByZXZlbnRlZCBhZnRlciBwcmV2ZW50RGVmYXVsdCgpOiAnICsgZXZlbnQuZGVmYXVsdFByZXZl
bnRlZCArICc8YnI+JzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGxldCB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0
MScpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywg
Z2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAg
dGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQx
IikpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcs
IGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQz
LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7
ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUg
fSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0
TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0
YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIG91dHB1dCArPSAiPGgx
PlRhcCBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGdldFVJU2NyaXB0KDUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8
aDE+VGFwIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgxNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgyNTAsIDUwKSwgZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8
L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxh
dGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAg
fQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsK
KyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVu
dFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAg
ICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5p
dGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQx
PgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZl
bnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENv
bnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91
Y2gtZW5kLWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjVkYWRiNjExODkyOGU4Nzg0ZjVlMGFmNWViM2UzOTU3MTdlZWU5MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVGFwIG9uIFRhcmdldDEgKGdyZWVuKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2
ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitUYXAgb24gVGFyZ2V0
MiAocmVkKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoZW5kIHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQyCitEb25lCitUYXAgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVu
ZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYyNjA1ZDIyOTRhMDhlYTE1Y2Y1Nzk2YjU4NDdhOGYwYTE3MGQxYWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgt
cGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NU
WVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxF
RCE6IE5vIG1vdXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQu
dHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZW92ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZW91dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlZW50ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZWxlYXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2Vkb3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2Vtb3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2V1cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZmFpbCk7CisKKyAgICAgICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGdldExvZ0V2ZW50KGxpc3RlbmVyKSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnTGlzdGVuZXIgJyArIGxpc3RlbmVyICsgJyByZWNlaXZlZCcgKyAoZXZlbnQuY2FuY2Vs
YWJsZSA/ICcgY2FuY2VsYWJsZScgOiAnJykgKyAnIGV2ZW50ICcgKyBldmVudC50eXBlICsgJyB0
YXJnZXR0aW5nICcgKyBldmVudC50YXJnZXQuaWQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChl
dmVudC50b3VjaGVzWzBdICYmIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICcgYXQgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50
WCArICcsICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICAnPGJyPic7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdldDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRk
RXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNz
aXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdl
dDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0
VUlTY3JpcHQoNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFy
Z2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KGdldFVJU2NyaXB0KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8
aDE+VGFwIG9uIFRhcmdldDMgKGJsdWUpPC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDI1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRw
dXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAg
IDxzdHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAg
ICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNl
dmVudFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAg
ICAgICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAg
ICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0
eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEi
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxk
aXYgaWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+Cisg
ICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBp
ZD1vdXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBy
dW4uCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3Rp
dmUtdG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1h
Y3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjNhMzJmZGM0MDc2NzZjN2QzMjBjZWYwNjVhYTMzMzEzMWM5Y2Y1NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNz
aXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUYXAgb24gVGFyZ2V0MSAoZ3JlZW4pCisKK0xp
c3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBl
dmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MQorRG9uZQorVGFwIG9uIFRhcmdl
dDIgKHJlZCkKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9u
ZQorVGFwIG9uIFRhcmdldDMgKGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgZXZl
bnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5l
ciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdl
dDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50
IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5lciB0YXJnZXQxIHJlY2Vp
dmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBh
c3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZl
LXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTE1OWJmNTUxMDUwNDE1NWUwYWQxNWMyZGE4ZThjMWY4NWM2MDE1MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1l
bnRzLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFVJU2Ny
aXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9p
bnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJv
bGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7
CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91
bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOwor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOwor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOwor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworCisgICAg
ICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVu
dChsaXN0ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChl
dmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0
ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDog
JycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFy
Z2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVu
dC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hl
c1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAgJzxicj4nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRU
YXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3Rh
cnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAg
ICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQo
InRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAg
ICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZl
bnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUn
OiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1v
dmUnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAg
ICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgi
dGFyZ2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hj
YW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsKKworICAgICAgICAgICAgb3V0cHV0ICs9
ICI8aDE+VGFwIG9uIFRhcmdldDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gIjxoMT5UYXAgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDMgKGJsdWUpPC9oMT4iOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDI1MCwgNTAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOwor
ICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFu
aXB1bGF0aW9uOyB9CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAg
ICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdl
dDMgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAg
I2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRh
cmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBp
ZD1ldmVudFRhcmdldDM+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
PC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2Ny
aXB0Q29udHJvbGxlciB0byBydW4uCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2
ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBh
c3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmM0NGMxY2VhMTM3MTEwYmRkN2JmZTE1YTJjNTg4
ZDNiZGU1MmEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlz
dGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitDYW5jZWxs
ZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBl
dmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAorTGlzdGVu
ZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5n
IGV2ZW50VGFyZ2V0MSBhdCAxMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5j
ZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitDYW5j
ZWxsZWQgZHJhZyBvbiBUYXJnZXQyIChyZWQpCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQg
ZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAxNTAsIDUwCitMaXN0
ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRp
bmcgZXZlbnRUYXJnZXQyIGF0IDIwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNh
bmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIKK0RvbmUKK0Nh
bmNlbGxlZCBkcmFnIG9uIFRhcmdldDMgKGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2
ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitM
aXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVu
dFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxl
IGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlz
dGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBj
YW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5l
ciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBl
dmVudFRhcmdldDMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVu
ZXJzLW9uLWVsZW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
dGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMt
b24tZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjE2ZjlmMGQ0Njk5YWE1MjdiMmEyYjg0NGEx
NTkyNGJkMmY1YWRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUt
bGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKQEAgLTAsMCArMSwxMjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGdldERyYWdVSVNjcmlwdChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZHJhZ0Zyb21Qb2ludFRvUG9pbnQoJHtzdGFy
dFh9LCAke3N0YXJ0WX0sICR7ZW5kWH0sICR7ZW5kWX0sIDAuMTUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gZmFpbChldmVudCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TEVEITogTm8gbW91c2UgZXZlbnQgc2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcgKyBldmVu
dC50eXBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlb3ZlcicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlb3V0JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2VlbnRlcicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlbGVhdmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZWRvd24nLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZW1vdmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZXVwJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdz
Y3JvbGwnLCBmYWlsKTsKKworICAgICAgICAgICAgbGV0IG91dHB1dCA9ICcnOworICAgICAgICAg
ICAgZnVuY3Rpb24gZ2V0TG9nRXZlbnQobGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICdMaXN0ZW5lciAnICsgbGlzdGVuZXIgKyAnIHJlY2VpdmVkJyArIChldmVudC5jYW5jZWxh
YmxlID8gJyBjYW5jZWxhYmxlJyA6ICcnKSArICcgZXZlbnQgJyArIGV2ZW50LnR5cGUgKyAnIHRh
cmdldHRpbmcgJyArIGV2ZW50LnRhcmdldC5pZDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2
ZW50LnRvdWNoZXNbMF0gJiYgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJyBhdCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRY
ICsgJywgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gICc8YnI+JzsKKworICAgICAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNobW92ZScpCisgICAgICAgICAgICAgICAg
ICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1
ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywg
Z2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0
YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDEiKSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0p
OworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRM
b2dFdmVudCgidGFyZ2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdl
dDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIp
KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0
MSAoZ3JlZW4pPC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRE
cmFnVUlTY3JpcHQoNTAsIDUwLCAxMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8
aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCgxNTAsIDUwLCAyMDAsIDEw
MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVz
dWx0OworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBv
biBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMjUwLCA1MCwgMzAwLCAxMDApLCBmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdvdXRwdXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0
PgorICAgIDxzdHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAg
ICAgICNldmVudFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
fQorICAgICAgICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0
MyB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAg
ICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAg
IDwvc3R5bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2Nh
bGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAg
ICAgPGRpdiBpZD1ldmVudFRhcmdldDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0
Mz4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGlkPW91dHB1dD4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVy
IHRvIHJ1bi4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281440</attachid>
            <date>2016-06-15 22:03:20 -0700</date>
            <delta_ts>2016-06-16 15:17:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158826-20160615220319.patch</filename>
            <type>text/plain</type>
            <size>86508</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM2ZmY0NGI1NTc5ZjFjNTgzNThjOGU3
OGMwMDJlMzI4YjJlZTYyODEuLjYzODk1ZWY0NmViOTczM2E3MGE0ZmJmMDU4NDQ4OGEwZGQ1ZGQ1
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMTUgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFNwZWNpYWxpemUgc3luY2hyb25vdXMgZXZl
bnQgdHJhY2tpbmcgcGVyIGV2ZW50IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1ODgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAgICAgKFdURjo6b3BlcmF0
b3I9PSk6CisgICAgICAgIERvbid0IGZvcmNlIHRoZSBjbGFzc2VzIHRvIGltcGxlbWVudCAiPT0i
IGFuZCAiIT0iLgorCiAyMDE2LTA2LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBDbGVhbiB1cCAvIG9wdGltaXplIFJlc291cmNlUmVzcG9uc2U6
OnBsYXRmb3JtTGF6eUluaXQoSW5pdExldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM4MGU2YjM1ZmNkZDZl
ZTNhNGUzM2RhMWQ0MTQ3YWUxYWI3YzY1Y2QuLjk0N2MzOTA5MzllZDJkMWVhYjdlOWRlZDEyNGMy
MTI5NTdkZDI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxNi0wNi0xNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6
ZSBzeW5jaHJvbm91cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3QsIGt1ZG9zIHRvIFJpY2sg
QnllcnMgZm9yIGFsbCBoaXMgaGVscHMgb24gcGFzc2l2ZSBldmVudCBkaXNwYXRjaC4KKyAgICAg
ICAgVGhlIHNwZWNzIGFyZSBwcmV0dHkgZGFtbiBnb29kIGFuZCBoaXMgaGVscCByZXZpZXdpbmcg
cGF0Y2hlcyBpcyB2ZXJ5IHVzZWZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZSBzeW5j
aHJvbm91cyBldmVudCBkaXNwYXRjaCB0byBoYXBwZW4gcGVyIGV2ZW50CisgICAgICAgIGluc3Rl
YWQgb2YgcGVyIHNlcXVlbmNlIHRvdWNoc3RhcnQtPnRvdWNoZW5kLgorCisgICAgICAgIFRoZSBi
aWcgYWR2YW50YWdlIG9mIHRoaXMgaXMgd2UgY2FuIGRpc3BhdGNoIG1vcmUgZXZlbnRzIGFzeW5j
aHJvbm91c2x5LgorICAgICAgICBGb3IgZXhhbXBsZSwgdG8gaGFuZGxlIGEgdGFwIHByb2dyYW1t
YXRpY2FsbHksIHlvdSBjYW4gbGltaXQgdGhlIGFjdGl2ZSBsaXN0ZW5lcgorICAgICAgICB0byB0
aGUgdG91Y2hlbmQgZXZlbnQuIFRoZSB0b3VjaHN0YXJ0IGFuZCB0b3VjaG1vdmUgYXJlIG5vdyBk
aXNwYXRjaGVkIGFzeW5jaHJvbm91c2x5LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBp
cyBhIHNpbXBsZSBleHRlbnNpb24gdG8gRXZlbnRUcmFja2luZ1JlZ2lvbnMuCisgICAgICAgIElu
c3RlYWQgb2YgYSBzaW5nbGUgc3luY2hyb25vdXMgcmVnaW9uLCB3ZSBoYXZlIG9uZSByZWdpb24g
cGVyIGV2ZW50IHR5cGUuCisgICAgICAgIFdoZW4gcHJvY2Vzc2luZyB0aGUgZXZlbnRzLCB3ZSBv
bmx5IG5lZWQgdG8gc2VuZCB0aGUgZXZlbnRzIHN5bmNocm9ub3VzbHkKKyAgICAgICAgaWYgdGhh
dCBwYXJ0aWN1bGFyIGV2ZW50IHR5cGUgaGFzIGEgc3luY2hyb25vdXMgcmVnaW9uLgorCisgICAg
ICAgIE5vdGUgdGhhdCBFdmVudERpc3BhdGNoZXIncyB0b3VjaCBldmVudCBzdXBwb3J0IGFscmVh
ZHkgc3VwcG9ydHMKKyAgICAgICAgbWl4aW5nIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMg
ZXZlbnRzLiBUaGUgZXZlbnRzIGFyZSBhbHdheXMgcHJvY2Vzc2VkCisgICAgICAgIGluIG9yZGVy
IGV2ZW4gaWYgYXN5bmNocm9ub3VzIGV2ZW50cyBhcmUgcGVuZGluZyB3aGVuIGEgc3luY2hyb25v
dXMgZGlzcGF0Y2gKKyAgICAgICAgaGFwcGVucy4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0
aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUt
bGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1s
aXN0ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNo
LWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1v
dmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6Omhh
c0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FdmVu
dFRhcmdldC5oOgorICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25PdmVybGF5Ojp1cGRhdGVSZWdpb24p
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub25G
YXN0U2Nyb2xsYWJsZVJlY3RzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6
YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2luZ1R5cGVG
b3JQb2ludCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUpOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjp0cmFj
a2luZ1R5cGVGb3JQb2ludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09
KTogRGVsZXRlZC4KKwogMjAxNi0wNi0xNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIERlY291cGxlIHRoZSBwZXJjZW50IGhlaWdodCBhbmQgcG9zaXRpb25lZCBk
ZXNjZW5kYW50cyBtYXBzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDE3ZmYzNDJiNGMxZDc2NTk1NjE4ZjkxMTky
YzVjNWY3ZjIwZGYxYzIuLjBlMDAyOTRjMDRlY2M4ZmI0YzczMTk4MjhlOGI4NDc1ODE5ZDNiM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNi0wNi0xNSAgQmVuamFtaW4gUG91bGFp
biAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6ZSBzeW5jaHJvbm91
cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+
OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptZXJn
ZVRyYWNraW5nVHlwZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVRv
dWNoRXZlbnRUcmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dG91Y2hF
dmVudFRyYWNraW5nVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxl
VG91Y2hFdmVudFN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVzZXRTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OlRvdWNoRXZlbnRUcmFja2luZzo6aXNUcmFja2lu
Z0FueXRoaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpUb3VjaEV2ZW50VHJh
Y2tpbmc6OnJlc2V0KToKKwogMjAxNi0wNi0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgX3Nob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdI
ZWlnaHRGb3JBdXRvTGF5b3V0IFNQSSBvbiBXS1dlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0hhc2hNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAppbmRleCAwNjE3OWQ5
MWIwMTA5N2JkZmIyMjI3MDllN2Q4M2UxNWM5YTg5ZDViLi41MjFkZGJjYWY4ODUxOGEwMmNiODQ3
MWZmMTM2NzhkYjBiM2MzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgK
KysrIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCkBAIC01MzcsNyArNTM3LDcgQEAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywgWD4mIGEsIGNvbnN0IEhhc2hNYXA8
VCwgVSwgViwgVywgWD4mIGIKICAgICBjb25zdF9pdGVyYXRvciBub3RGb3VuZCA9IGIuZW5kKCk7
CiAgICAgZm9yIChjb25zdF9pdGVyYXRvciBpdCA9IGEuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CiAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGJQb3MgPSBiLmZpbmQoaXQtPmtleSk7Ci0gICAg
ICAgIGlmIChiUG9zID09IG5vdEZvdW5kIHx8IGl0LT52YWx1ZSAhPSBiUG9zLT52YWx1ZSkKKyAg
ICAgICAgaWYgKGJQb3MgPT0gbm90Rm91bmQgfHwgIShpdC0+dmFsdWUgPT0gYlBvcy0+dmFsdWUp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCAwNjQ1N2NkZDdkNTMyZDc1ZDFjZmE3MjgxMmNiMmFiYjdhYzllYjM2Li44ZDc1YzQwNWFj
NzFjMWU1Y2JmMmVhMjA4YzMzMDRiYjg2OGQ3NjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MjExMyw2ICsyMTEzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0Rpc3Bs
YXlTbGVlcERpc2FibGVyLmNwcAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRm
b3JtL0RyYWdJbWFnZS5jcHAKKyAgICBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAK
ICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNw
cAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzUyNmJhNThhZWFhOGY2NjRlNzdj
OTZmZTk4NWRmMWM5NmYwYzM4ZS4uNDZiNTY1M2UwNjUyOWVhNjg3NDEwODZhZWMwNjhmYTg1MzIx
ZTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTAzMSw2ICsxMDMxLDcgQEAKIAkJMjYyNTVGMDMxODg3OEUxMTAwMDZFMUZE
IC8qIFVzZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjYyNTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2MjU1RjA0MTg4NzhFMTEw
MDA2RTFGRCAvKiBVc2VyQWdlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFj
Lm1tICovOyB9OwogCQkyNjJFQzQxQTFEMDc4RkI5MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2
MkVDNDE5MUQwNzhGM0QwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTI2MkVDNDFEMUQxMTBC
OTAwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJFQzQxQzFEMTEwQjFGMDBCQTc4RkMgLyog
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwICovOyB9OwogCQkyNjU1NDEzOTE0ODk4MTFDMDAwREZD
NUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJ
T1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
NjU1NDEzQTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQg
LyogS2V5RXZlbnRJT1MubW0gKi87IH07CiAJCTI2NTU0MTUyMTQ4OUIyMzMwMDBERkM1RCAvKiBD
dXJzb3JJT1MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi87IH07CkBAIC04
NTE1LDYgKzg1MTYsNyBAQAogCQkyNjI1NUYwMTE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBZ2VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFn
ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckFn
ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJFQzQxOTFEMDc4RjNE
MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50VHJhY2tpbmdS
ZWdpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzcxNDg5ODEx
QzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gS2V5RXZlbnRDb2Rlc0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLZXlFdmVudElPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXJzb3JJT1MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5NjQsNiArMjI5NjYsNyBAQAogCQkJCUE3
Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0Qw
MEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKIAkJCQkxQ0ExOUUxNTBEQzI1NUNB
MDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8sCisJCQkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZD
IC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCAqLywKIAkJCQkyNjJFQzQxOTFEMDc4RjNEMDBC
QTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRGRTlFNDBCNUNBNTM5
MDAzRTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovLAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIz
OENDNCAvKiBGaWxlQ2hvb3Nlci5oICovLApAQCAtMzA0NzAsNiArMzA0NzMsNyBAQAogCQkJCUE3
QkJFMjY2MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFFMkFCMjkwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTE1vZEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDVDNzkwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRN
TE9iamVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYyRUM0MUQxRDExMEI5MDAw
QkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
MzA1Q0E0MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBODVCMUVBMEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxPTGlz
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdFOUMwQTFBODNFMzAwN0ZCOEM1
IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuY3BwCmluZGV4IDgyNmZhYjQ1MTY1MjBmZmIyYzA0YTc3ODY2ODQxYWMwNDEy
ZjBmNWEuLjlkNTVlNTVkNTY4MmYwNzY1MmE0M2I2ZWYwNDRmMzU1MmVkYWViZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtMjQzLDE2ICsyNDMsNiBAQCBib29sIEV2ZW50VGFy
Z2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiAhZXZlbnQu
ZGVmYXVsdFByZXZlbnRlZCgpOwogfQogCi1ib29sIEV2ZW50VGFyZ2V0OjpoYXNBY3RpdmVUb3Vj
aEV2ZW50TGlzdGVuZXJzKCkgY29uc3QKLXsKLSAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1lcyA9
IGV2ZW50TmFtZXMoKTsKLSAgICByZXR1cm4gaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMu
dG91Y2hzdGFydEV2ZW50KQotICAgICAgICB8fCBoYXNBY3RpdmVFdmVudExpc3RlbmVycyhuYW1l
cy50b3VjaG1vdmVFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFt
ZXMudG91Y2hlbmRFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFt
ZXMudG91Y2hjYW5jZWxFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMo
bmFtZXMudG91Y2hmb3JjZWNoYW5nZUV2ZW50KTsKLX0KLQogdm9pZCBFdmVudFRhcmdldDo6Zmly
ZUV2ZW50TGlzdGVuZXJzKEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXREYXRhKiBkLCBFdmVudExp
c3RlbmVyVmVjdG9yJiBlbnRyeSkKIHsKICAgICBSZWY8RXZlbnRUYXJnZXQ+IHByb3RlY3RlZFRo
aXMoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCBlM2RhYWZjNzk1Yjc3MzQ4
OTgwODNjZTBlMmFlYTliYWRhM2ZiOTNhLi4xNWY1YTY2YTRmMzcwMDA2NDFlMjJiYjgwZWE4N2Qy
NTBlZDQ5ZWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtMTY4LDggKzE2OCw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHZpc2l0SlNFdmVudExpc3RlbmVycyhKU0M6OlNsb3RWaXNpdG9y
Jik7CiAgICAgdm9pZCBpbnZhbGlkYXRlSlNFdmVudExpc3RlbmVycyhKU0M6OkpTT2JqZWN0Kik7
CiAKLSAgICBib29sIGhhc0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMoKSBjb25zdDsKLQogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgfkV2ZW50VGFyZ2V0KCk7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IDU3MjA4OGIxZDIyY2M4NTdiMTk5YThm
ZGVlYzZiMmFlNThjM2U0N2YuLmNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUxNDcz
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC0xMzMs
NyArMTMzLDggQEAgYm9vbCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJl
Z2lvbigpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICBp
ZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKSkgewogICAgICAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVu
dFRyYWNraW5nUmVnaW9ucygpOwotICAgICAgICAgICAgKnJlZ2lvbiA9IGV2ZW50VHJhY2tpbmdS
ZWdpb25zLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgICAgICAgICBmb3IgKGNvbnN0
IGF1dG8mIHN5bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICAgICAgcmVn
aW9uLT51bml0ZShzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlKTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzMzNzlhMzZiMzVkMjViMjkwZjY3ZjFkZDU0OGYz
MjZiYzEwZDc5OS4uOGNkM2VjN2VkZjJlNmZmN2I4YzdlMDJhNzc4Y2YyZjhmYWY4MDEzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC0zNzIsOCArMzcyLDExIEBAIFJlZjxDbGllbnRSZWN0TGlzdD4g
UGFnZTo6bm9uRmFzdFNjcm9sbGFibGVSZWN0cygpCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVM
YXlvdXQoKTsKIAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKLSAgICBpZiAoU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKSkKLSAgICAgICAgcmVjdHMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVF
dmVudFRyYWNraW5nUmVnaW9ucygpLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVjdHMoKTsK
KyAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhp
cy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgeworICAgICAgICBjb25zdCBFdmVudFRyYWNraW5n
UmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJz
b2x1dGVFdmVudFRyYWNraW5nUmVnaW9ucygpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5
bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICByZWN0cy5hcHBlbmRWZWN0
b3Ioc3luY2hyb25vdXNFdmVudFJlZ2lvbi52YWx1ZS5yZWN0cygpKTsKKyAgICB9CiAKICAgICBW
ZWN0b3I8RmxvYXRRdWFkPiBxdWFkcyhyZWN0cy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMDRhZGY4YTM2ZmVl
ZDQ4MWU5MjM0OWQ1NDVlYTJmNTQyZWI3MTQzNS4uZDgzMDJlZGJmODAxNzg2MzM5N2U2MWFlYWNj
ODVlNzgwYzkzMzFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFw
aGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtMTQ0LDE4ICsxNDUsMTkgQEAg
RXZlbnRUcmFja2luZ1JlZ2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRU
cmFja2luZ1JlZ2lvbnNGb3JGcmFtZSgKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6IGlmIHdl
J3ZlIGFscmVhZHkgYWNjb3VudGVkIGZvciB0aGlzIHN1YmZyYW1lIGFzIGEgc2Nyb2xsYWJsZSBh
cmVhLCB3ZSBjYW4gYXZvaWQgcmVjdXJzaW5nIGludG8gaXQgaGVyZS4KKyAgICBFdmVudFRyYWNr
aW5nUmVnaW9ucyBldmVudFRyYWNraW5nUmVnaW9uczsKICAgICBmb3IgKEZyYW1lKiBzdWJmcmFt
ZSA9IGZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZy
YW1lLT50cmVlKCkubmV4dFNpYmxpbmcoKSkgewogICAgICAgICBGcmFtZVZpZXcqIHN1YmZyYW1l
VmlldyA9IHN1YmZyYW1lLT52aWV3KCk7CiAgICAgICAgIGlmICghc3ViZnJhbWVWaWV3KQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgUmVnaW9uIHN1YmZyYW1lUmVnaW9uID0gYWJz
b2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKCpzdWJmcmFtZSkuc3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbjsKKyAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgc3ViZnJhbWVSZWdp
b24gPSBhYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUoKnN1YmZyYW1lKTsKICAg
ICAgICAgLy8gTWFwIGZyb20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KICAg
ICAgICAgSW50UG9pbnQgb2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmlu
Z1ZpZXdDb250ZW50cyhJbnRQb2ludCgpKTsKIAogICAgICAgICAvLyBGSVhNRTogdGhpcyB0cmFu
c2xhdGlvbiBpZ25vcmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0aGUgZnJhbWUuCiAgICAg
ICAgIHN1YmZyYW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7Ci0gICAgICAg
IG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLnVuaXRlKHN1YmZyYW1lUmVnaW9uKTsKKyAgICAgICAg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMudW5pdGUoc3ViZnJhbWVSZWdpb24pOwogICAgIH0KIAogICAg
IERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgd2hlZWxIYW5kbGVyUmVnaW9uID0gZnJhbWUuZG9j
dW1lbnQoKS0+YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+
d2hlZWxFdmVudFRhcmdldHMoKSk7CkBAIC0xNjksNyArMTcxLDggQEAgRXZlbnRUcmFja2luZ1Jl
Z2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNG
b3JGcmFtZSgKICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZSh3aGVlbEhhbmRsZXJS
ZWdpb24uZmlyc3QpOwogCiAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgbm90IHRoZSBtYWluIGZy
YW1lLCB3ZSBjb3VsZCBjbGlwIHRoZSByZWdpb24gdG8gdGhlIGZyYW1lJ3MgYm91bmRzLgotICAg
IHJldHVybiBFdmVudFRyYWNraW5nUmVnaW9ucyB7IFJlZ2lvbigpLCBub25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbiB9OworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnVuaXRlU3luY2hyb25vdXNSZWdp
b24oZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKKyAg
ICByZXR1cm4gZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDRjYjM3MWUxZTZmMmRiYjhjYzk4NjcwYjI1ZTdm
ODczMTc2OGE1YjQuLjdjY2FmNWU0N2RlN2Q0NmJkMzcyNjU0ZDViNTViYjI1ODA0YzEwMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI0NSwxNSArMjQ1LDE3IEBA
IHZvaWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRl
eHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgICAgICBp
bmRlbnQgLT0gMjsKICAgICB9Ci0gICAgaWYgKCFtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX2V2ZW50VHJhY2tp
bmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5pc0VtcHR5
KCkpIHsKICAgICAgICAgKytpbmRlbnQ7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQp
OwogICAgICAgICB0cyA8PCAiKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiI7CiAg
ICAgICAgICsraW5kZW50OwotICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IG1fZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5yZWN0cygpKSB7Ci0gICAgICAgICAg
ICB0cyA8PCAiXG4iOwotICAgICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7Ci0gICAg
ICAgICAgICB0cyA8PCByZWN0OworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5bmNocm9ub3Vz
RXZlbnRSZWdpb24gOiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9ucykgeworICAgICAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBzeW5j
aHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlLnJlY3RzKCkpIHsKKyAgICAgICAgICAgICAgICB0cyA8
PCAiXG4iOworICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOworICAgICAg
ICAgICAgICAgIHRzIDw8IHJlY3Q7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
dHMgPDwgIilcbiI7CiAgICAgICAgIGluZGVudCAtPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzNzY4MGI5NzZhZDBkMGUxNGIy
MDZmNzcxYWFmOTQ4MGRkOGQxMTY2Li5kMjBjZGU4MjZmM2QyMWVmY2M1MTkyZDIyNDRmOTExNjE5
ZTM4ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
IAorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgi
CkBAIC02Niw3ICs2NywxMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVs
RXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudAogICAgICAgICBGbG9h
dFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwogICAgICAgICBwb3NpdGlv
bi5tb3ZlKGZyYW1lU2Nyb2xsaW5nTm9kZS52aWV3VG9Db250ZW50c09mZnNldChtX21haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKSk7CiAKLSAgICAgICAgYm9vbCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24gPSBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KHJvdW5k
ZWRJbnRQb2ludChwb3NpdGlvbikpID09IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAg
ICAgIGNvbnN0IEV2ZW50TmFtZXMmIG5hbWVzID0gZXZlbnROYW1lcygpOworICAgICAgICBJbnRQ
b2ludCByb3VuZGVkUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24pOworICAgICAg
ICBib29sIGlzU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IG1fZXZlbnRUcmFja2luZ1JlZ2lv
bnMudHJhY2tpbmdUeXBlRm9yUG9pbnQobmFtZXMud2hlZWxFdmVudCwgcm91bmRlZFBvc2l0aW9u
KSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzCisgICAgICAgICAgICB8fCBtX2V2ZW50VHJh
Y2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KG5hbWVzLm1vdXNld2hlZWxFdmVudCwg
cm91bmRlZFBvc2l0aW9uKSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwogICAgICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OnNob3Vs
ZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5OiB3aGVlbEV2ZW50IGF0ICIgPDwgd2hlZWxF
dmVudC5wb3NpdGlvbigpIDw8ICIgbWFwcGVkIHRvIGNvbnRlbnQgcG9pbnQgIiA8PCBwb3NpdGlv
biA8PCAiLCBpbiBub24tZmFzdCByZWdpb24gIiA8PCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b24pOwogCiAgICAgICAgIGlmIChpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pCkBAIC0yMzMs
MTEgKzIzNywxMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0
aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiAgICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9
IHBvc2l0aW9uOwogfQogCi1UcmFja2luZ1R5cGUgU2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2lu
Z1R5cGVGb3JQb2ludChJbnRQb2ludCBwKQorVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2
ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIElu
dFBvaW50IHApCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIAotICAgIHJl
dHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KHApOworICAg
IHJldHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KGV2ZW50
TmFtZSwgcCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVz
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5k
ZXggMjYxN2JmYmFkMWRlMjdkMTQ5MzE0ZGYyZTJlZDM0OWFlZjM0ZGYwMi4uMTA5ZDEzYWI3ZWZl
MTE3MDMyYTliNWY1MzMxMzU3MjYzMDQ1OGYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKSB7IH0KICNlbmRp
ZgogCi0gICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9y
UG9pbnQoSW50UG9pbnQpOworICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBldmVudFRy
YWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBJbnRQb2lu
dCk7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVl
bEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWNi
OTNiYTkzYzVhNzg1MDI1OGZjOWNkYzgzZjg4Nzk2OWQ1MzM2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwCkBAIC0wLDAg
KzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2ZW50VHJhY2tpbmdSZWdpb25zLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHJhY2tpbmdUeXBlIEV2ZW50VHJhY2tpbmdSZWdpb25z
Ojp0cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSwgY29uc3QgSW50
UG9pbnQmIHBvaW50KQoreworICAgIGF1dG8gc3luY2hyb25vdXNSZWdpb25JdGVyYXRvciA9IGV2
ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5maW5kKGV2ZW50TmFtZSk7Cisg
ICAgaWYgKHN5bmNocm9ub3VzUmVnaW9uSXRlcmF0b3IgIT0gZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zLmVuZCgpKSB7CisgICAgICAgIGlmIChzeW5jaHJvbm91c1JlZ2lv
bkl0ZXJhdG9yLT52YWx1ZS5jb250YWlucyhwb2ludCkpCisgICAgICAgICAgICByZXR1cm4gVHJh
Y2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICB9CisKKyAgICBpZiAoYXN5bmNocm9ub3VzRGlz
cGF0Y2hSZWdpb24uY29udGFpbnMocG9pbnQpKQorICAgICAgICByZXR1cm4gVHJhY2tpbmdUeXBl
OjpBc3luY2hyb25vdXM7CisgICAgcmV0dXJuIFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7Cit9
CisKK2Jvb2wgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJl
dHVybiBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCkKKyAgICAgICAgJiYgZXZl
bnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zLmlzRW1wdHkoKTsKK30KKwordm9p
ZCBFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhbnNsYXRlKEludFNpemUgb2Zmc2V0KQoreworICAg
IGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uLnRyYW5zbGF0ZShvZmZzZXQpOworICAgIGZvciAo
YXV0byYgc2xvdCA6IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykKKyAg
ICAgICAgc2xvdC52YWx1ZS50cmFuc2xhdGUob2Zmc2V0KTsKK30KKwordm9pZCBFdmVudFRyYWNr
aW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbihjb25zdCBTdHJpbmcmIGV2ZW50TmFt
ZSwgY29uc3QgUmVnaW9uJiByZWdpb24pCit7CisgICAgaWYgKHJlZ2lvbi5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gYWRkUmVzdWx0ID0gZXZlbnRTcGVjaWZpY1N5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb25zLmFkZChldmVudE5hbWUsIHJlZ2lvbik7CisgICAgaWYgKCFh
ZGRSZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS51
bml0ZShyZWdpb24pOworfQorCit2b2lkIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp1bml0ZShjb25z
dCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCit7CisgICAgYXN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24udW5pdGUoZXZlbnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24pOworICAgIGZvciAoYXV0byYgc2xvdCA6IGV2ZW50VHJhY2tp
bmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykKKyAgICAg
ICAgdW5pdGVTeW5jaHJvbm91c1JlZ2lvbihzbG90LmtleSwgc2xvdC52YWx1ZSk7Cit9CisKK2Jv
b2wgb3BlcmF0b3I9PShjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYSwgY29uc3QgRXZlbnRU
cmFja2luZ1JlZ2lvbnMmIGIpCit7CisgICAgcmV0dXJuIGEuYXN5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24gPT0gYi5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbgorICAgICAgICAmJiBhLmV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9PSBiLmV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKaW5kZXggMWYw
NTU2NDAxNDQzOGNhMzUxODVlYTU3YjAwNjMxMDgzNTllNzNlMS4uZDZmNWJiMThjN2M4MGQ4YzBj
ZjczYTgzNzAwZWQ5ZDY2YjVmZGM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9F
dmVudFRyYWNraW5nUmVnaW9ucy5oCkBAIC0yNiw2ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIlJlZ2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDMyICs0MiwxOSBAQCBzdHJ1Y3QgRXZlbnRU
cmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFJlZ2lvbiBmb3Igd2hpY2ggZXZlbnRzIGNhbiBiZSBk
aXNwYXRjaGVkIHdpdGhvdXQgYmxvY2tpbmcgc2Nyb2xsaW5nLgogICAgIFJlZ2lvbiBhc3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbjsKIAotICAgIC8vIFJlZ2lvbiBmb3Igd2hpY2ggZXZlbnRzIG11
c3QgYmUgc2VudCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBiZWhhdmlvci4KLSAgICBS
ZWdpb24gc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsKKyAgICAvLyBSZWdpb25zIGZvciB3aGlj
aCBldmVudHMgbXVzdCBiZSBzZW50IGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBkZWZhdWx0IGJlaGF2
aW9yLgorICAgIC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50IE5hbWUgd2l0aCBhbiBhY3RpdmUgaGFu
ZGxlci4KKyAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmljU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbnM7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAotICAgIFRy
YWNraW5nVHlwZSB0cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBJbnRQb2ludCYpOwotfTsKLQot
aW5saW5lIGJvb2wgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkoKSBjb25zdAotewotICAg
IHJldHVybiBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCkgJiYgc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCk7Ci19CisgICAgdm9pZCB0cmFuc2xhdGUoSW50U2l6
ZSk7CisgICAgdm9pZCB1bml0ZVN5bmNocm9ub3VzUmVnaW9uKGNvbnN0IFN0cmluZyYgZXZlbnRO
YW1lLCBjb25zdCBSZWdpb24mKTsKKyAgICB2b2lkIHVuaXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdS
ZWdpb25zJik7CiAKLWlubGluZSBUcmFja2luZ1R5cGUgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRy
YWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKLXsKLSAgICBpZiAoc3lu
Y2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5jb250YWlucyhwb2ludCkpCi0gICAgICAgIHJldHVybiBU
cmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwotICAgIGlmIChhc3luY2hyb25vdXNEaXNwYXRjaFJl
Z2lvbi5jb250YWlucyhwb2ludCkpCi0gICAgICAgIHJldHVybiBUcmFja2luZ1R5cGU6OkFzeW5j
aHJvbm91czsKLSAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKLX0KKyAgICBU
cmFja2luZ1R5cGUgdHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUs
IGNvbnN0IEludFBvaW50Jik7Cit9OwogCi1pbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2
ZW50VHJhY2tpbmdSZWdpb25zJiBhLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYikKLXsK
LSAgICByZXR1cm4gYS5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9PSBiLmFzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uCi0gICAgICAgICYmIGEuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9
PSBiLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247Ci19Citib29sIG9wZXJhdG9yPT0oY29uc3Qg
RXZlbnRUcmFja2luZ1JlZ2lvbnMmLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYpOwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDkyNDZlZTdkZDkyNzZlZWNhM2IwMTk1M2FjYTllMDAx
ZWUzYzEyODguLjNlNTJjOWZiNjk5MGU4MmM2YzBhZDE3NjM2NzcwMDNlMGFmNjQzZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0x
MTEsNyArMTExLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEFmZmluZVRyYW4KIHZvaWQgQXJndW1lbnRDb2Rl
cjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9ucykKIHsKICAg
ICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uOwotICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMuc3luY2hyb25vdXNEaXNw
YXRjaFJlZ2lvbjsKKyAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3Bl
Y2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKIH0KIAogYm9vbCBBcmd1bWVudENvZGVy
PEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
RXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQpAQCAtMTE5LDExICsx
MTksMTEgQEAgYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRXZlbnQKICAgICBSZWdpb24gYXN5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb247CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhc3luY2hyb25vdXNEaXNw
YXRjaFJlZ2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZWdpb24gc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbjsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN5bmNocm9ub3VzRGlz
cGF0Y2hSZWdpb24pKQorICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNT
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9
IFdURk1vdmUoYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pOwotICAgIGV2ZW50VHJhY2tpbmdS
ZWdpb25zLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPSBXVEZNb3ZlKHN5bmNocm9ub3VzRGlz
cGF0Y2hSZWdpb24pOworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9IFdURk1vdmUoZXZlbnRTcGVjaWZpY1N5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb25zKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggYWM4NDBkZDVlODUyZTE3Y2RhYWIwYzli
Y2ViN2I4NDY2NzkyNWVlNC4uYWM5OGM2NDgwOTY5MTFhMzAzZWE0OWU0NzBjN2FhNTYzMmQ4YzUx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNDks
OSArMTQ5LDkgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYKICAgICByZXR1cm4gcmVzdWx0ID09
IFNjcm9sbGluZ1RyZWU6OkRpZEhhbmRsZUV2ZW50OyAvLyBGSVhNRTogaGFuZGxlIG90aGVyIHZh
bHVlcy4KIH0KIAotVHJhY2tpbmdUeXBlIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoSW50UG9pbnQgcCkgY29uc3QKK1RyYWNraW5nVHlw
ZSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpldmVudFRyYWNraW5nVHlwZUZvclBv
aW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCBwKSBjb25zdAogewot
ICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQocCk7
CisgICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS0+ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChl
dmVudE5hbWUsIHApOwogfQogCiB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlELCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDBkZGI1MDY5MTJmNjE3
YzMwNjQ1Yjk5ZDEwMDk2ODE2OTQ3YmE4N2QuLmNmNTBkZDA2Mjc5MTMzNGEyNzI0ODRlNDcxMGE0
Yzk2OTg0MTMxODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBA
IC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
bmV3U2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6OlNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRp
b24pOwogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOwogCi0gICAgV2ViQ29yZTo6VHJh
Y2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQpIGNv
bnN0OworICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7
CiAKICAgICAvLyBDYWxsZWQgZXh0ZXJuYWxseSB3aGVuIG5hdGl2ZSB2aWV3cyBtb3ZlIGFyb3Vu
ZC4KICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQb3NpdGlv
blJlY3QsIGRvdWJsZSBzY2FsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDA5N2NmYzVlMWVlNjc0ZGQ5NDQyNjQ5ODhmMmY5ODMxOWE3MDAxMzkuLjQz
NWY5MzcwZmVkMDVhYWNmYjllYTg1YzVlODM5NTUyMGM5MGVmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xOTM2LDI0ICsxOTM2LDczIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpmaW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90
IHByb2Nlc3NUeXBlLCBjb25zCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCi1UcmFja2lu
Z1R5cGUgV2ViUGFnZVByb3h5Ojp0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGNvbnN0IFdlYlRvdWNo
RXZlbnQmIHRvdWNoU3RhcnRFdmVudCkgY29uc3QKK3N0YXRpYyBUcmFja2luZ1R5cGUgbWVyZ2VU
cmFja2luZ1R5cGVzKFRyYWNraW5nVHlwZSBhLCBUcmFja2luZ1R5cGUgYikKK3sKKyAgICBpZiAo
c3RhdGljX2Nhc3Q8dWludHB0cl90PihiKSA+IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oYSkpCisg
ICAgICAgIHJldHVybiBiOworICAgIHJldHVybiBhOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
dXBkYXRlVG91Y2hFdmVudFRyYWNraW5nKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoU3RhcnRF
dmVudCkKIHsKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIFRyYWNraW5nVHlwZSB0
cmFja2luZ1R5cGUgPSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgIGNvbnN0IEV2ZW50
TmFtZXMmIG5hbWVzID0gZXZlbnROYW1lcygpOwogICAgIGZvciAoYXV0byYgdG91Y2hQb2ludCA6
IHRvdWNoU3RhcnRFdmVudC50b3VjaFBvaW50cygpKSB7Ci0gICAgICAgIFRyYWNraW5nVHlwZSB0
b3VjaFBvaW50VHJhY2tpbmdUeXBlID0gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LT5ldmVu
dFRyYWNraW5nVHlwZUZvclBvaW50KHRvdWNoUG9pbnQubG9jYXRpb24oKSk7Ci0gICAgICAgIGlm
ICh0b3VjaFBvaW50VHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXMpCi0g
ICAgICAgICAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICAgICAgSW50
UG9pbnQgbG9jYXRpb24gPSB0b3VjaFBvaW50LmxvY2F0aW9uKCk7CisgICAgICAgIGF1dG8gdXBk
YXRlVHJhY2tpbmdUeXBlID0gW3RoaXMsIGxvY2F0aW9uXShUcmFja2luZ1R5cGUmIHRyYWNraW5n
VHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpIHsKKyAgICAgICAgICAgIGlmICh0
cmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91cykKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgaWYgKHRvdWNoUG9pbnRUcmFja2luZ1R5cGUgPT0gVHJhY2tp
bmdUeXBlOjpBc3luY2hyb25vdXMpCi0gICAgICAgICAgICB0cmFja2luZ1R5cGUgPSB0b3VjaFBv
aW50VHJhY2tpbmdUeXBlOwotICAgIH0KKyAgICAgICAgICAgIFRyYWNraW5nVHlwZSB0cmFja2lu
Z1R5cGVGb3JMb2NhdGlvbiA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS0+ZXZlbnRUcmFj
a2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIGxvY2F0aW9uKTsKIAotICAgIHJldHVybiB0cmFj
a2luZ1R5cGU7CisgICAgICAgICAgICB0cmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMo
dHJhY2tpbmdUeXBlLCB0cmFja2luZ1R5cGVGb3JMb2NhdGlvbik7CisgICAgICAgIH07CisgICAg
ICAgIHVwZGF0ZVRyYWNraW5nVHlwZShtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEZvcmNlQ2hh
bmdlZFRyYWNraW5nLCBuYW1lcy50b3VjaGZvcmNlY2hhbmdlRXZlbnQpOworICAgICAgICB1cGRh
dGVUcmFja2luZ1R5cGUobV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hTdGFydFRyYWNraW5nLCBu
YW1lcy50b3VjaHN0YXJ0RXZlbnQpOworICAgICAgICB1cGRhdGVUcmFja2luZ1R5cGUobV90b3Vj
aEV2ZW50VHJhY2tpbmcudG91Y2hNb3ZlVHJhY2tpbmcsIG5hbWVzLnRvdWNobW92ZUV2ZW50KTsK
KyAgICAgICAgdXBkYXRlVHJhY2tpbmdUeXBlKG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoRW5k
VHJhY2tpbmcsIG5hbWVzLnRvdWNoZW5kRXZlbnQpOworICAgIH0KICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKHRvdWNoU3RhcnRFdmVudCk7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hG
b3JjZUNoYW5nZWRUcmFja2luZyA9IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAgbV90
b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hTdGFydFRyYWNraW5nID0gVHJhY2tpbmdUeXBlOjpTeW5j
aHJvbm91czsKKyAgICBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaE1vdmVUcmFja2luZyA9IFRy
YWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hF
bmRUcmFja2luZyA9IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CiAjZW5kaWYgLy8gRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKLSAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsK
K30KKworVHJhY2tpbmdUeXBlIFdlYlBhZ2VQcm94eTo6dG91Y2hFdmVudFRyYWNraW5nVHlwZShj
b25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaFN0YXJ0RXZlbnQpIGNvbnN0Cit7CisgICAgLy8gV2Ug
c2VuZCBhbGwgZXZlbnRzIGlmIGFueSBvZiB0aGVtIGlzIG5lZWRlZCwgd2UganVzdCBkbyBpdCBh
c3luY2hyb25vdXNseS4KKyAgICAvLworICAgIC8vIFRvdWNoIGV2ZW50cyBkZWZpbmUgYSBzZXF1
ZW5jZSB3aXRoIHN0cm9uZyBkZXBlbmRlbmNpZXMuIEZvciBleGFtcGxlLCB3ZSBjYW4gZXhwZWN0
CisgICAgLy8gYSBUb3VjaE1vdmUgdG8gb25seSBhcHBlYXIgYWZ0ZXIgYSBUb3VjaFN0YXJ0LCBh
bmQgdGhlIGlkcyBvZiB0aGUgdG91Y2ggcG9pbnRzIGlzIGNvbnNpc3RlbnQgYmV0d2VlbgorICAg
IC8vIHRoZSB0d28uCisgICAgLy8KKyAgICAvLyBXZSBkb24ndCB3YW50IHRvIFdlYkNvcmUgdG8g
YmUgYWJsZSB0byBzZXR1cCBpdHMgc3RhdGUgY29ycmVjdGx5IGFmdGVyIHNvbWUKKyAgICAvLyBl
dmVudHMgd2VyZSBkaXNtaXNzZWQuIFdlIHNlbmQgZXZlcnl0aGluZywgV2ViQ29yZSB1cGRhdGVz
IGl0cyBpbnRlcm5hbCBzdGF0ZSBhbmQgZGlzcGF0Y2ggd2hhdCBpcyBuZWVkZWQuCisgICAgVHJh
Y2tpbmdUeXBlIGdsb2JhbFRyYWNraW5nVHlwZSA9IG1fdG91Y2hFdmVudFRyYWNraW5nLmlzVHJh
Y2tpbmdBbnl0aGluZygpID8gVHJhY2tpbmdUeXBlOjpBc3luY2hyb25vdXMgOiBUcmFja2luZ1R5
cGU6Ok5vdFRyYWNraW5nOworCisgICAgZ2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2lu
Z1R5cGVzKGdsb2JhbFRyYWNraW5nVHlwZSwgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hGb3Jj
ZUNoYW5nZWRUcmFja2luZyk7CisgICAgZm9yIChhdXRvJiB0b3VjaFBvaW50IDogdG91Y2hTdGFy
dEV2ZW50LnRvdWNoUG9pbnRzKCkpIHsKKyAgICAgICAgc3dpdGNoICh0b3VjaFBvaW50LnBoYXNl
KCkpIHsKKyAgICAgICAgY2FzZSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ6
CisgICAgICAgICAgICBnbG9iYWxUcmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMoZ2xv
YmFsVHJhY2tpbmdUeXBlLCBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEVuZFRyYWNraW5nKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6
VG91Y2hQcmVzc2VkOgorICAgICAgICAgICAgZ2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFj
a2luZ1R5cGVzKGdsb2JhbFRyYWNraW5nVHlwZSwgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hT
dGFydFRyYWNraW5nKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYlBsYXRm
b3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZDoKKyAgICAgICAgY2FzZSBXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQ6OlRvdWNoU3RhdGlvbmFyeToKKyAgICAgICAgICAgIGdsb2JhbFRyYWNraW5nVHlwZSA9
IG1lcmdlVHJhY2tpbmdUeXBlcyhnbG9iYWxUcmFja2luZ1R5cGUsIG1fdG91Y2hFdmVudFRyYWNr
aW5nLnRvdWNoTW92ZVRyYWNraW5nKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hDYW5jZWxsZWQ6CisgICAgICAgICAgICBnbG9i
YWxUcmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMoZ2xvYmFsVHJhY2tpbmdUeXBlLCBU
cmFja2luZ1R5cGU6OkFzeW5jaHJvbm91cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiBnbG9iYWxUcmFja2luZ1R5cGU7CiB9CiAKICNlbmRpZgpA
QCAtMTk3OSwxNCArMjAyOCwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVu
dFN5bmNocm9ub3VzbHkoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQpIHsKLSAg
ICAgICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IHRvdWNoRXZlbnRUcmFja2luZ1R5cGUo
ZXZlbnQpOworICAgICAgICB1cGRhdGVUb3VjaEV2ZW50VHJhY2tpbmcoZXZlbnQpOwogICAgICAg
ICBtX2xheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0ID0gZG93bmNhc3Q8UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eT4oKmRyYXdpbmdBcmVhKCkpLmxhc3RDb21taXR0
ZWRMYXllclRyZWVUcmFuc2FjdGlvbklEKCk7CiAgICAgfQogCi0gICAgaWYgKG1fdG91Y2hFdmVu
dHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZykKKyAgICBUcmFja2lu
Z1R5cGUgdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSB0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGV2
ZW50KTsKKyAgICBpZiAodG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpO
b3RUcmFja2luZykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fdG91Y2hFdmVudHNUcmFj
a2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpBc3luY2hyb25vdXMpIHsKKyAgICBpZiAodG91Y2hF
dmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpBc3luY2hyb25vdXMpIHsKICAgICAg
ICAgLy8gV2UgY2FuIGVuZCB1cCBoZXJlIGlmIGEgbmF0aXZlIGdlc3R1cmUgaGFzIG5vdCBzdGFy
dGVkIGJ1dCB0aGUgZXZlbnQgaGFuZGxlcnMgYXJlIHBhc3NpdmUuCiAgICAgICAgIC8vCiAgICAg
ICAgIC8vIFRoZSBjbGllbnQgb2YgV2ViUGFnZVByb3h5IGFza3MgdGhlIGV2ZW50IHRvIGJlIHNl
bnQgc3luY2hyb25vdXNseSBzaW5jZSB0aGUgdG91Y2ggZXZlbnQKQEAgLTIwMDcsNyArMjA1Nyw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseShOYXRp
dmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGlt
ZXIoKS5zdG9wKCk7CiAKICAgICBpZiAoZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgp
KQotICAgICAgICBtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gVHJhY2tpbmdUeXBlOjpOb3RU
cmFja2luZzsKKyAgICAgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcucmVzZXQoKTsKIH0KIAogdm9p
ZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseShjb25zdCBOYXRp
dmVXZWJUb3VjaEV2ZW50JiBldmVudCkKQEAgLTIwMTUsMTMgKzIwNjUsMTQgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseShjb25zdCBOYXRpdmVXZWJU
b3VjaEV2ZW50JiBldmUKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFj
a2luZykKKyAgICBUcmFja2luZ1R5cGUgdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSB0b3VjaEV2
ZW50VHJhY2tpbmdUeXBlKGV2ZW50KTsKKyAgICBpZiAodG91Y2hFdmVudHNUcmFja2luZ1R5cGUg
PT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpFdmVudERpc3BhdGNoZXI6OlRvdWNoRXZlbnQobV9wYWdl
SUQsIGV2ZW50KSwgMCk7CiAKICAgICBpZiAoZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNl
ZCgpKQotICAgICAgICBtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gVHJhY2tpbmdUeXBlOjpO
b3RUcmFja2luZzsKKyAgICAgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcucmVzZXQoKTsKIH0KIAog
I2VsaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTIwMzEsOSArMjA4Miw5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2
ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50
OjpUb3VjaFN0YXJ0KQotICAgICAgICBtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gdG91Y2hF
dmVudFRyYWNraW5nVHlwZShldmVudCk7CisgICAgICAgIHVwZGF0ZVRvdWNoRXZlbnRUcmFja2lu
ZyhldmVudCk7CiAKLSAgICBpZiAobV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2lu
Z1R5cGU6Ok5vdFRyYWNraW5nKQorICAgIGlmICh0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGV2ZW50
KSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQogICAgICAgICByZXR1cm47CiAKICAgICAv
LyBJZiB0aGUgcGFnZSBpcyBzdXNwZW5kZWQsIHdoaWNoIHNob3VsZCBiZSB0aGUgY2FzZSBkdXJp
bmcgcGFubmluZywgcGluY2hpbmcKQEAgLTIwNTYsNyArMjEwNyw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQog
ICAgIH0KIAogICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCi0gICAg
ICAgIG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5n
OworICAgICAgICBtX3RvdWNoRXZlbnRUcmFja2luZy5yZXNldCgpOwogfQogI2VuZGlmIC8vIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiAKQEAgLTUwNzUsNyArNTEyNiw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICB9
CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIG1fdG91Y2hFdmVudHNUcmFja2luZ1R5
cGUgPSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgIG1fdG91Y2hFdmVudFRyYWNraW5n
LnJlc2V0KCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDY0MzYyNDJkNmE2YWZhY2JiNzMy
OGM1MzdiNTIzMGM4MDM2MmU1MWEuLjIzYTg1MzNmOGQxOThlMjc4YTJiN2QwMGVkMzNiNWY1OWNm
Yjc4MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0NjQs
NiArMTQ2NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kV2hlZWxFdmVudChjb25zdCBXZWJX
aGVlbEV2ZW50Jik7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHZvaWQgdXBkYXRl
VG91Y2hFdmVudFRyYWNraW5nKGNvbnN0IFdlYlRvdWNoRXZlbnQmKTsKICAgICBXZWJDb3JlOjpU
cmFja2luZ1R5cGUgdG91Y2hFdmVudFRyYWNraW5nVHlwZShjb25zdCBXZWJUb3VjaEV2ZW50Jikg
Y29uc3Q7CiAjZW5kaWYKIApAQCAtMTY5MSw3ICsxNjkyLDI5IEBAIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5hdGl2ZVdlYk1vdXNlRXZlbnQ+IG1fY3VycmVudGx5UHJvY2Vzc2VkTW91
c2VEb3duRXZlbnQ7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIFdlYkNvcmU6OlRy
YWNraW5nVHlwZSBtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlIHsgV2ViQ29yZTo6VHJhY2tpbmdU
eXBlOjpOb3RUcmFja2luZyB9OworICAgIHN0cnVjdCBUb3VjaEV2ZW50VHJhY2tpbmcgeworICAg
ICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgdG91Y2hGb3JjZUNoYW5nZWRUcmFja2luZyB7IFdl
YkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcgfTsKKyAgICAgICAgV2ViQ29yZTo6VHJh
Y2tpbmdUeXBlIHRvdWNoU3RhcnRUcmFja2luZyB7IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90
VHJhY2tpbmcgfTsKKyAgICAgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIHRvdWNoTW92ZVRyYWNr
aW5nIHsgV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZyB9OworICAgICAgICBXZWJD
b3JlOjpUcmFja2luZ1R5cGUgdG91Y2hFbmRUcmFja2luZyB7IFdlYkNvcmU6OlRyYWNraW5nVHlw
ZTo6Tm90VHJhY2tpbmcgfTsKKworICAgICAgICBib29sIGlzVHJhY2tpbmdBbnl0aGluZygpIGNv
bnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0b3VjaEZvcmNlQ2hhbmdlZFRyYWNr
aW5nICE9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcKKyAgICAgICAgICAgICAg
ICB8fCB0b3VjaFN0YXJ0VHJhY2tpbmcgIT0gV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFj
a2luZworICAgICAgICAgICAgICAgIHx8IHRvdWNoTW92ZVRyYWNraW5nICE9IFdlYkNvcmU6OlRy
YWNraW5nVHlwZTo6Tm90VHJhY2tpbmcKKyAgICAgICAgICAgICAgICB8fCB0b3VjaEVuZFRyYWNr
aW5nICE9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgICAgIH0KKwor
ICAgICAgICB2b2lkIHJlc2V0KCkKKyAgICAgICAgeworICAgICAgICAgICAgdG91Y2hGb3JjZUNo
YW5nZWRUcmFja2luZyA9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAg
ICAgICAgICB0b3VjaFN0YXJ0VHJhY2tpbmcgPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRy
YWNraW5nOworICAgICAgICAgICAgdG91Y2hNb3ZlVHJhY2tpbmcgPSBXZWJDb3JlOjpUcmFja2lu
Z1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAgICAgICAgdG91Y2hFbmRUcmFja2luZyA9IFdlYkNv
cmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgICAgIH0KKyAgICB9OworICAgIFRv
dWNoRXZlbnRUcmFja2luZyBtX3RvdWNoRXZlbnRUcmFja2luZzsKICNlbmRpZgogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBEZXF1ZTxR
dWV1ZWRUb3VjaEV2ZW50cz4gbV90b3VjaEV2ZW50UXVldWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzMxOWY1NGYyMjc4
NGNiYmMyNmU0Y2VlYWExY2RkOTJkNjc3OTlhZC4uMGM2OTc4NWI0ZjVjY2YzNmQ4OWJkYjU5MjQ2
YTgxYjc5MzE2ZmQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA2LTE1ICBCZW5qYW1p
biBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBTcGVjaWFsaXplIHN5
bmNocm9ub3VzIGV2ZW50IHRyYWNraW5nIHBlciBldmVudCB0eXBlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4MjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90
YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0
ZW5lci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1s
aXN0ZW5lci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFw
LXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Rh
cC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1saXN0ZW5l
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgt
YWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1w
YXNzaXZlLWxpc3RlbmVyLWluc2lkZS1hY3RpdmUtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxp
c3RlbmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0
LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91
Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91
Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBh
c3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRz
Lmh0bWw6IEFkZGVkLgorCiAyMDE2LTA2LTE1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRGVjb3VwbGUgdGhlIHBlcmNlbnQgaGVpZ2h0IGFuZCBwb3NpdGlvbmVk
IGRlc2NlbmRhbnRzIG1hcHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBh
c3NpdmUtbGlzdGVuZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNz
aXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzJmOWYzOGQyNTJjNmVhNjhk
OTIzZjc5MjhiOTc1M2U0ODZkM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1l
bnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitD
YW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNl
aXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAor
TGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgMTAwLCAxMDAKK0xp
c3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0xpc3Rl
bmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGlu
ZyBldmVudFRhcmdldDEKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCkKKwor
TGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZl
bnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRv
dWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgdGFy
Z2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MiBhdCAyMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMjAwLCAxMDAKK0xp
c3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MgorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBl
dmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorQ2FuY2VsbGVkIGRy
YWcgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBldmVudCB0
b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRh
cmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBh
dCAyNTAsIDUwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQg
MzAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3Vj
aG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIGRvY3Vt
ZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUg
ZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIHRhcmdldDEg
cmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MworTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworRG9uZQorVXNlbGVzcyBDbGljayBpbiB0aGUgZG9jdW1l
bnQsIHNob3VsZCBiZSBwYXNzaXZlCisKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50
IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBhdCAzMDAsIDMwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVj
ZWl2ZWQgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUt
ZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13
aXRoLXBhc3NpdmUtbGlzdGVuZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2QzZjgzMzM0YzllY2RlNzZl
NmY2YzJiNGVhNGMyMDA5ZWZkOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1l
bnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGdldENsaWNrVUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1
aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gZ2V0RHJhZ1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZ
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgk
e3N0YXJ0WH0sICR7c3RhcnRZfSwgJHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25l
Iik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyAr
IGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ3Njcm9sbCcsIGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAg
ICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lciwgc2hvdWxkUHJldmVudERlZmF1
bHQgPSBmYWxzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChl
dmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0
ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDog
JycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFy
Z2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVu
dC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hl
c1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAgJzxicj4nOworCisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRQcmV2
ZW50RGVmYXVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoImRvY3VtZW50
IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3NpdmUn
OiB0cnVlIH0pOworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hl
bmQnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAg
ICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2
ZW50KCJkb2N1bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgbGV0
IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAg
ICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVu
dCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEu
YWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiLCB0cnVl
KSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0
TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0
YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdl
dDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiks
IHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3Rl
bmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIsIHRydWUpKTsKKyAgICAgICAg
ICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFy
Z2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZl
bnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNz
aXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRy
YWcgb24gVGFyZ2V0MSAoZ3JlZW4pPC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChnZXREcmFnVUlTY3JpcHQoNTAsIDUwLCAxMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCgxNTAs
IDUwLCAyMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5j
ZWxsZWQgZHJhZyBvbiBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMjUwLCA1MCwgMzAwLCAxMDAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5Vc2VsZXNzIENs
aWNrIGluIHRoZSBkb2N1bWVudCwgc2hvdWxkIGJlIHBhc3NpdmU8L2gxPiI7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldENsaWNrVUlTY3JpcHQoMzAw
LCAzMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4K
KyAgICA8c3R5bGU+CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQor
ICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAg
ICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0K
KyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMg
eworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAg
ICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8
L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxl
PTEiPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAg
IDxkaXYgaWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+
CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diBpZD1vdXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0
byBydW4uCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lk
ZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdp
bmRvdy13aXRoLXBhc3NpdmUtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MmY5
ZjM4ZDI1MmM2ZWE2OGQ5MjNmNzkyOGI5NzUzZTQ4NmQzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVy
LWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDM1IEBACitDYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIg
dGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQx
IGF0IDUwLCA1MAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQg
MTAwLCAxMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91
Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJn
ZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRh
cmdldDEKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hl
bmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdl
dDIgKHJlZCkKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2Vp
dmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMTUwLCA1MAor
TGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJn
ZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAyMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQg
MjAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3Vj
aGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQg
Y2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQor
Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNl
aXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAK
K0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0
b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRh
cmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVu
dFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xp
c3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3Rl
bmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5n
IGV2ZW50VGFyZ2V0MworTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVu
dCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworRG9uZQorVXNlbGVzcyBDbGljayBp
biB0aGUgZG9jdW1lbnQsIHNob3VsZCBiZSBwYXNzaXZlCisKK0xpc3RlbmVyIGRvY3VtZW50IHJl
Y2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBhdCAzMDAsIDMwMAorTGlzdGVuZXIg
ZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0
ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUt
d2luZG93LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDM4NDA1MjNk
Zjg5NTliMDY4OTRhODc3NDI0NDMzMmVmMzA3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lk
ZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwh
RE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIGdldENsaWNrVUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRv
bmUiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0RHJhZ1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRY
LCBlbmRZKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Q
b2ludCgke3N0YXJ0WH0sICR7c3RhcnRZfSwgJHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRl
KCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290
IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ3Njcm9sbCcsIGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7
CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lciwgc2hvdWxkUHJldmVu
dERlZmF1bHQgPSBmYWxzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dF
dmVudChldmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcg
KyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFi
bGUnIDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZl
bnQudGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAm
JiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQu
dG91Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAgJzxicj4nOworCisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91
bGRQcmV2ZW50RGVmYXVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJkb2N1
bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2
ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hl
bmQnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVu
dCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGxldCB0
YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAgICAg
ICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQo
InRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiwgdHJ1ZSkp
OworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExv
Z0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFy
Z2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQx
IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQz
LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7
ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiLCB0cnVlKSk7CisgICAgICAgICAg
ICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50
TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2
ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFn
IG9uIFRhcmdldDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDUwLCA1MCwgMTAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91
dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMTUwLCA1
MCwgMjAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0
cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2Vs
bGVkIGRyYWcgb24gVGFyZ2V0MyAoYmx1ZSk8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDI1MCwgNTAsIDMwMCwgMTAwKSwg
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVz
dWx0OworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VXNlbGVzcyBDbGlj
ayBpbiB0aGUgZG9jdW1lbnQsIHNob3VsZCBiZSBwYXNzaXZlPC9oMT4iOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRDbGlja1VJU2NyaXB0KDMwMCwg
MzAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVySFRNTCA9IG91dHB1dDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cisg
ICAgPHN0eWxlPgorICAgICAgICAqIHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAg
ICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAg
I2V2ZW50VGFyZ2V0MSwgI2V2ZW50VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAg
ICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9Cisg
ICAgICAgICNldmVudFRhcmdldDEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAg
ICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgPC9z
dHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0x
Ij4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8
ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgor
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYg
aWQ9b3V0cHV0PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8g
cnVuLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVu
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2
NmI5ZTM4NjEzYmM0ZmI0OGViN2I1YmExYjg3ZDRhYzgzNDQzZDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNo
LWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGFwIG9uIFRhcmdl
dDEgKGdyZWVuKQorCisoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKKyAgKHNjcm9sbGFibGUgYXJlYSBz
aXplIDgwMCA2MDApCisgIChjb250ZW50cyBzaXplIDgwMCA2MDApCisgIChzeW5jaHJvbm91cyBl
dmVudCBkaXNwYXRjaCByZWdpb24KKyAgICBhdCAoMCwwKSBzaXplIDMwMHgxMDApCispCitMaXN0
ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGlu
ZyBldmVudFRhcmdldDEKK0RvbmUKK1RhcCBvbiBUYXJnZXQyIChyZWQpCisKKyhGcmFtZSBzY3Jv
bGxpbmcgbm9kZQorICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgODAwIDYwMCkKKyAgKGNvbnRlbnRz
IHNpemUgODAwIDYwMCkKKyAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAg
IGF0ICgwLDApIHNpemUgMzAweDEwMCkKKykKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2Fu
Y2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorVGFw
IG9uIFRhcmdldDMgKGJsdWUpCisKKyhGcmFtZSBzY3JvbGxpbmcgbm9kZQorICAoc2Nyb2xsYWJs
ZSBhcmVhIHNpemUgODAwIDYwMCkKKyAgKGNvbnRlbnRzIHNpemUgODAwIDYwMCkKKyAgKHN5bmNo
cm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAgIGF0ICgwLDApIHNpemUgMzAweDEwMCkK
KykKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1l
bmQtbGlzdGVuZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDM2YjMzZWZlNDZkM2Q0OGY4Nzg5MWM3ZjIw
NzgwYjYxMWU2OTk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbApAQCAtMCww
ICsxLDEwNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoeCwgeSkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29t
cGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gJ0ZBSUxFRCE6IE5vIG1vdXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3
ZSBnb3QgYSAnICsgZXZlbnQudHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZmFpbCk7CisKKyAgICAgICAgICAgIGxldCBvdXRw
dXQgPSAnJzsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldExvZ0V2ZW50KGxpc3RlbmVyKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnPHByZT4nICsgd2luZG93LmludGVybmFscy5zY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHQoKSArICc8L3ByZT4nOworICAgICAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNl
bGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcg
dGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVu
dFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAgJzxicj4nOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisKKyAg
ICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDUwLCA1MCksIGZ1
bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgxNTAsIDUw
KSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1
bHQ7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQzIChi
bHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChn
ZXRVSVNjcmlwdCgyNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0
cHV0OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICog
eyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAgICAg
ICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRU
YXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
ICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAg
ICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAg
ICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4Owor
ICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
ICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4K
KyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMg
dGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlz
dGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjYzlhNTAzM2Zl
MjBjZDVjOWE1ZGU5ZWNlZWExYWYxZGZhMTJjODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1pbnNp
ZGUtYWN0aXZlLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGdldFVJU2NyaXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBg
CisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LnNpbmdsZVRhcEF0UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlv
biBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBt
b3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVu
dGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vs
ZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
ZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
bW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
dXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5j
dGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5j
dGlvbiBsb2dFdmVudChldmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xp
c3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAn
IGNhbmNlbGFibGUnIDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGlu
ZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91
Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAn
ICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnZGVmYXVsdFByZXZlbnRlZCBiZWZvcmUgcHJldmVudERlZmF1bHQoKTogJyArIGV2
ZW50LmRlZmF1bHRQcmV2ZW50ZWQgKyAnPGJyPic7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnZGVmYXVs
dFByZXZlbnRlZCBhZnRlciBwcmV2ZW50RGVmYXVsdCgpOiAnICsgZXZlbnQuZGVmYXVsdFByZXZl
bnRlZCArICc8YnI+JzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGxldCB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0
MScpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywg
Z2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAg
dGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQx
IikpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcs
IGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQz
LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7
ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUg
fSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0
TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0
YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIG91dHB1dCArPSAiPGgx
PlRhcCBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGdldFVJU2NyaXB0KDUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8
aDE+VGFwIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgxNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgyNTAsIDUwKSwgZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8
L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxh
dGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAg
fQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsK
KyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVu
dFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAg
ICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5p
dGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQx
PgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZl
bnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENv
bnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91
Y2gtZW5kLWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjVkYWRiNjExODkyOGU4Nzg0ZjVlMGFmNWViM2UzOTU3MTdlZWU5MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVGFwIG9uIFRhcmdldDEgKGdyZWVuKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2
ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitUYXAgb24gVGFyZ2V0
MiAocmVkKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoZW5kIHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQyCitEb25lCitUYXAgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVu
ZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYyNjA1ZDIyOTRhMDhlYTE1Y2Y1Nzk2YjU4NDdhOGYwYTE3MGQxYWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgt
cGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NU
WVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxF
RCE6IE5vIG1vdXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQu
dHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZW92ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZW91dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J21vdXNlZW50ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZWxlYXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2Vkb3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2Vtb3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2V1cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZmFpbCk7CisKKyAgICAgICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGdldExvZ0V2ZW50KGxpc3RlbmVyKSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnTGlzdGVuZXIgJyArIGxpc3RlbmVyICsgJyByZWNlaXZlZCcgKyAoZXZlbnQuY2FuY2Vs
YWJsZSA/ICcgY2FuY2VsYWJsZScgOiAnJykgKyAnIGV2ZW50ICcgKyBldmVudC50eXBlICsgJyB0
YXJnZXR0aW5nICcgKyBldmVudC50YXJnZXQuaWQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChl
dmVudC50b3VjaGVzWzBdICYmIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICcgYXQgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50
WCArICcsICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICAnPGJyPic7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdldDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRk
RXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNz
aXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdl
dDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0
VUlTY3JpcHQoNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFy
Z2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KGdldFVJU2NyaXB0KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8
aDE+VGFwIG9uIFRhcmdldDMgKGJsdWUpPC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDI1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRw
dXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAg
IDxzdHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAg
ICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNl
dmVudFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAg
ICAgICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAg
ICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0
eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEi
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxk
aXYgaWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+Cisg
ICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBp
ZD1vdXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBy
dW4uCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3Rp
dmUtdG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1h
Y3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjNhMzJmZGM0MDc2NzZjN2QzMjBjZWYwNjVhYTMzMzEzMWM5Y2Y1NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNz
aXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUYXAgb24gVGFyZ2V0MSAoZ3JlZW4pCisKK0xp
c3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBl
dmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MQorRG9uZQorVGFwIG9uIFRhcmdl
dDIgKHJlZCkKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9u
ZQorVGFwIG9uIFRhcmdldDMgKGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgZXZl
bnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5l
ciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdl
dDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50
IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5lciB0YXJnZXQxIHJlY2Vp
dmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBh
c3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZl
LXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTE1OWJmNTUxMDUwNDE1NWUwYWQxNWMyZGE4ZThjMWY4NWM2MDE1MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1l
bnRzLmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFVJU2Ny
aXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9p
bnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJv
bGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7
CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91
bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOwor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOwor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOwor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworCisgICAg
ICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVu
dChsaXN0ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChl
dmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0
ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDog
JycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFy
Z2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVu
dC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hl
c1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAgJzxicj4nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRU
YXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3Rh
cnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAg
ICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQo
InRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAg
ICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZl
bnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUn
OiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1v
dmUnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAg
ICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgi
dGFyZ2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hj
YW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsKKworICAgICAgICAgICAgb3V0cHV0ICs9
ICI8aDE+VGFwIG9uIFRhcmdldDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gIjxoMT5UYXAgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDMgKGJsdWUpPC9oMT4iOworICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDI1MCwgNTAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOwor
ICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFu
aXB1bGF0aW9uOyB9CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAg
ICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdl
dDMgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAg
I2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRh
cmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBp
ZD1ldmVudFRhcmdldDM+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
PC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2Ny
aXB0Q29udHJvbGxlciB0byBydW4uCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2
ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBh
c3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmM0NGMxY2VhMTM3MTEwYmRkN2JmZTE1YTJjNTg4
ZDNiZGU1MmEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlz
dGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitDYW5jZWxs
ZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBl
dmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAorTGlzdGVu
ZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5n
IGV2ZW50VGFyZ2V0MSBhdCAxMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5j
ZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitDYW5j
ZWxsZWQgZHJhZyBvbiBUYXJnZXQyIChyZWQpCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQg
ZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAxNTAsIDUwCitMaXN0
ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRp
bmcgZXZlbnRUYXJnZXQyIGF0IDIwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNh
bmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIKK0RvbmUKK0Nh
bmNlbGxlZCBkcmFnIG9uIFRhcmdldDMgKGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2
ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitM
aXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVu
dFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxl
IGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlz
dGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBj
YW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5l
ciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBl
dmVudFRhcmdldDMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVu
ZXJzLW9uLWVsZW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
dGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMt
b24tZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjE2ZjlmMGQ0Njk5YWE1MjdiMmEyYjg0NGEx
NTkyNGJkMmY1YWRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUt
bGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKQEAgLTAsMCArMSwxMjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGdldERyYWdVSVNjcmlwdChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZHJhZ0Zyb21Qb2ludFRvUG9pbnQoJHtzdGFy
dFh9LCAke3N0YXJ0WX0sICR7ZW5kWH0sICR7ZW5kWX0sIDAuMTUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gZmFpbChldmVudCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TEVEITogTm8gbW91c2UgZXZlbnQgc2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcgKyBldmVu
dC50eXBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlb3ZlcicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlb3V0JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2VlbnRlcicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlbGVhdmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZWRvd24nLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZW1vdmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZXVwJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdz
Y3JvbGwnLCBmYWlsKTsKKworICAgICAgICAgICAgbGV0IG91dHB1dCA9ICcnOworICAgICAgICAg
ICAgZnVuY3Rpb24gZ2V0TG9nRXZlbnQobGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICdMaXN0ZW5lciAnICsgbGlzdGVuZXIgKyAnIHJlY2VpdmVkJyArIChldmVudC5jYW5jZWxh
YmxlID8gJyBjYW5jZWxhYmxlJyA6ICcnKSArICcgZXZlbnQgJyArIGV2ZW50LnR5cGUgKyAnIHRh
cmdldHRpbmcgJyArIGV2ZW50LnRhcmdldC5pZDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2
ZW50LnRvdWNoZXNbMF0gJiYgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJyBhdCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRY
ICsgJywgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gICc8YnI+JzsKKworICAgICAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNobW92ZScpCisgICAgICAgICAgICAgICAg
ICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1
ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywg
Z2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0
YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDEiKSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0p
OworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRM
b2dFdmVudCgidGFyZ2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdl
dDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIp
KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0
MSAoZ3JlZW4pPC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRE
cmFnVUlTY3JpcHQoNTAsIDUwLCAxMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8
aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCgxNTAsIDUwLCAyMDAsIDEw
MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVz
dWx0OworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBv
biBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMjUwLCA1MCwgMzAwLCAxMDApLCBmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdvdXRwdXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0
PgorICAgIDxzdHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAg
ICAgICNldmVudFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
fQorICAgICAgICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0
MyB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAg
ICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAg
IDwvc3R5bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2Nh
bGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAg
ICAgPGRpdiBpZD1ldmVudFRhcmdldDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0
Mz4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGlkPW91dHB1dD4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVy
IHRvIHJ1bi4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281478</attachid>
            <date>2016-06-16 15:17:14 -0700</date>
            <delta_ts>2016-06-16 15:40:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158826-20160616151712.patch</filename>
            <type>text/plain</type>
            <size>87684</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM2ZmY0NGI1NTc5ZjFjNTgzNThjOGU3
OGMwMDJlMzI4YjJlZTYyODEuLjYzODk1ZWY0NmViOTczM2E3MGE0ZmJmMDU4NDQ4OGEwZGQ1ZGQ1
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMTUgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFNwZWNpYWxpemUgc3luY2hyb25vdXMgZXZl
bnQgdHJhY2tpbmcgcGVyIGV2ZW50IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1ODgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAgICAgKFdURjo6b3BlcmF0
b3I9PSk6CisgICAgICAgIERvbid0IGZvcmNlIHRoZSBjbGFzc2VzIHRvIGltcGxlbWVudCAiPT0i
IGFuZCAiIT0iLgorCiAyMDE2LTA2LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBDbGVhbiB1cCAvIG9wdGltaXplIFJlc291cmNlUmVzcG9uc2U6
OnBsYXRmb3JtTGF6eUluaXQoSW5pdExldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM4MGU2YjM1ZmNkZDZl
ZTNhNGUzM2RhMWQ0MTQ3YWUxYWI3YzY1Y2QuLjk0N2MzOTA5MzllZDJkMWVhYjdlOWRlZDEyNGMy
MTI5NTdkZDI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxNi0wNi0xNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6
ZSBzeW5jaHJvbm91cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3QsIGt1ZG9zIHRvIFJpY2sg
QnllcnMgZm9yIGFsbCBoaXMgaGVscHMgb24gcGFzc2l2ZSBldmVudCBkaXNwYXRjaC4KKyAgICAg
ICAgVGhlIHNwZWNzIGFyZSBwcmV0dHkgZGFtbiBnb29kIGFuZCBoaXMgaGVscCByZXZpZXdpbmcg
cGF0Y2hlcyBpcyB2ZXJ5IHVzZWZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZSBzeW5j
aHJvbm91cyBldmVudCBkaXNwYXRjaCB0byBoYXBwZW4gcGVyIGV2ZW50CisgICAgICAgIGluc3Rl
YWQgb2YgcGVyIHNlcXVlbmNlIHRvdWNoc3RhcnQtPnRvdWNoZW5kLgorCisgICAgICAgIFRoZSBi
aWcgYWR2YW50YWdlIG9mIHRoaXMgaXMgd2UgY2FuIGRpc3BhdGNoIG1vcmUgZXZlbnRzIGFzeW5j
aHJvbm91c2x5LgorICAgICAgICBGb3IgZXhhbXBsZSwgdG8gaGFuZGxlIGEgdGFwIHByb2dyYW1t
YXRpY2FsbHksIHlvdSBjYW4gbGltaXQgdGhlIGFjdGl2ZSBsaXN0ZW5lcgorICAgICAgICB0byB0
aGUgdG91Y2hlbmQgZXZlbnQuIFRoZSB0b3VjaHN0YXJ0IGFuZCB0b3VjaG1vdmUgYXJlIG5vdyBk
aXNwYXRjaGVkIGFzeW5jaHJvbm91c2x5LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBp
cyBhIHNpbXBsZSBleHRlbnNpb24gdG8gRXZlbnRUcmFja2luZ1JlZ2lvbnMuCisgICAgICAgIElu
c3RlYWQgb2YgYSBzaW5nbGUgc3luY2hyb25vdXMgcmVnaW9uLCB3ZSBoYXZlIG9uZSByZWdpb24g
cGVyIGV2ZW50IHR5cGUuCisgICAgICAgIFdoZW4gcHJvY2Vzc2luZyB0aGUgZXZlbnRzLCB3ZSBv
bmx5IG5lZWQgdG8gc2VuZCB0aGUgZXZlbnRzIHN5bmNocm9ub3VzbHkKKyAgICAgICAgaWYgdGhh
dCBwYXJ0aWN1bGFyIGV2ZW50IHR5cGUgaGFzIGEgc3luY2hyb25vdXMgcmVnaW9uLgorCisgICAg
ICAgIE5vdGUgdGhhdCBFdmVudERpc3BhdGNoZXIncyB0b3VjaCBldmVudCBzdXBwb3J0IGFscmVh
ZHkgc3VwcG9ydHMKKyAgICAgICAgbWl4aW5nIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMg
ZXZlbnRzLiBUaGUgZXZlbnRzIGFyZSBhbHdheXMgcHJvY2Vzc2VkCisgICAgICAgIGluIG9yZGVy
IGV2ZW4gaWYgYXN5bmNocm9ub3VzIGV2ZW50cyBhcmUgcGVuZGluZyB3aGVuIGEgc3luY2hyb25v
dXMgZGlzcGF0Y2gKKyAgICAgICAgaGFwcGVucy4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0
aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUt
bGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1s
aXN0ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNo
LWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1v
dmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6Omhh
c0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FdmVu
dFRhcmdldC5oOgorICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25PdmVybGF5Ojp1cGRhdGVSZWdpb24p
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub25G
YXN0U2Nyb2xsYWJsZVJlY3RzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6
YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2luZ1R5cGVG
b3JQb2ludCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUpOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjp0cmFj
a2luZ1R5cGVGb3JQb2ludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09
KTogRGVsZXRlZC4KKwogMjAxNi0wNi0xNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIERlY291cGxlIHRoZSBwZXJjZW50IGhlaWdodCBhbmQgcG9zaXRpb25lZCBk
ZXNjZW5kYW50cyBtYXBzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDE3ZmYzNDJiNGMxZDc2NTk1NjE4ZjkxMTky
YzVjNWY3ZjIwZGYxYzIuLjBlMDAyOTRjMDRlY2M4ZmI0YzczMTk4MjhlOGI4NDc1ODE5ZDNiM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNi0wNi0xNSAgQmVuamFtaW4gUG91bGFp
biAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6ZSBzeW5jaHJvbm91
cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+
OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptZXJn
ZVRyYWNraW5nVHlwZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVRv
dWNoRXZlbnRUcmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dG91Y2hF
dmVudFRyYWNraW5nVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxl
VG91Y2hFdmVudFN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVzZXRTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OlRvdWNoRXZlbnRUcmFja2luZzo6aXNUcmFja2lu
Z0FueXRoaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpUb3VjaEV2ZW50VHJh
Y2tpbmc6OnJlc2V0KToKKwogMjAxNi0wNi0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgX3Nob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdI
ZWlnaHRGb3JBdXRvTGF5b3V0IFNQSSBvbiBXS1dlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0hhc2hNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAppbmRleCAwNjE3OWQ5
MWIwMTA5N2JkZmIyMjI3MDllN2Q4M2UxNWM5YTg5ZDViLi41MjFkZGJjYWY4ODUxOGEwMmNiODQ3
MWZmMTM2NzhkYjBiM2MzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgK
KysrIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCkBAIC01MzcsNyArNTM3LDcgQEAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywgWD4mIGEsIGNvbnN0IEhhc2hNYXA8
VCwgVSwgViwgVywgWD4mIGIKICAgICBjb25zdF9pdGVyYXRvciBub3RGb3VuZCA9IGIuZW5kKCk7
CiAgICAgZm9yIChjb25zdF9pdGVyYXRvciBpdCA9IGEuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CiAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGJQb3MgPSBiLmZpbmQoaXQtPmtleSk7Ci0gICAg
ICAgIGlmIChiUG9zID09IG5vdEZvdW5kIHx8IGl0LT52YWx1ZSAhPSBiUG9zLT52YWx1ZSkKKyAg
ICAgICAgaWYgKGJQb3MgPT0gbm90Rm91bmQgfHwgIShpdC0+dmFsdWUgPT0gYlBvcy0+dmFsdWUp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCAwNjQ1N2NkZDdkNTMyZDc1ZDFjZmE3MjgxMmNiMmFiYjdhYzllYjM2Li44ZDc1YzQwNWFj
NzFjMWU1Y2JmMmVhMjA4YzMzMDRiYjg2OGQ3NjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MjExMyw2ICsyMTEzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0Rpc3Bs
YXlTbGVlcERpc2FibGVyLmNwcAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRm
b3JtL0RyYWdJbWFnZS5jcHAKKyAgICBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAK
ICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNw
cAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzUyNmJhNThhZWFhOGY2NjRlNzdj
OTZmZTk4NWRmMWM5NmYwYzM4ZS4uNDZiNTY1M2UwNjUyOWVhNjg3NDEwODZhZWMwNjhmYTg1MzIx
ZTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTAzMSw2ICsxMDMxLDcgQEAKIAkJMjYyNTVGMDMxODg3OEUxMTAwMDZFMUZE
IC8qIFVzZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjYyNTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2MjU1RjA0MTg4NzhFMTEw
MDA2RTFGRCAvKiBVc2VyQWdlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFj
Lm1tICovOyB9OwogCQkyNjJFQzQxQTFEMDc4RkI5MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2
MkVDNDE5MUQwNzhGM0QwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTI2MkVDNDFEMUQxMTBC
OTAwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJFQzQxQzFEMTEwQjFGMDBCQTc4RkMgLyog
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwICovOyB9OwogCQkyNjU1NDEzOTE0ODk4MTFDMDAwREZD
NUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJ
T1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
NjU1NDEzQTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQg
LyogS2V5RXZlbnRJT1MubW0gKi87IH07CiAJCTI2NTU0MTUyMTQ4OUIyMzMwMDBERkM1RCAvKiBD
dXJzb3JJT1MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi87IH07CkBAIC04
NTE1LDYgKzg1MTYsNyBAQAogCQkyNjI1NUYwMTE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBZ2VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFn
ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckFn
ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJFQzQxOTFEMDc4RjNE
MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50VHJhY2tpbmdS
ZWdpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzcxNDg5ODEx
QzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gS2V5RXZlbnRDb2Rlc0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLZXlFdmVudElPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXJzb3JJT1MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5NjQsNiArMjI5NjYsNyBAQAogCQkJCUE3
Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0Qw
MEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKIAkJCQkxQ0ExOUUxNTBEQzI1NUNB
MDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8sCisJCQkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZD
IC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCAqLywKIAkJCQkyNjJFQzQxOTFEMDc4RjNEMDBC
QTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRGRTlFNDBCNUNBNTM5
MDAzRTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovLAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIz
OENDNCAvKiBGaWxlQ2hvb3Nlci5oICovLApAQCAtMzA0NzAsNiArMzA0NzMsNyBAQAogCQkJCUE3
QkJFMjY2MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFFMkFCMjkwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTE1vZEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDVDNzkwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRN
TE9iamVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYyRUM0MUQxRDExMEI5MDAw
QkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
MzA1Q0E0MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBODVCMUVBMEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxPTGlz
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdFOUMwQTFBODNFMzAwN0ZCOEM1
IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuY3BwCmluZGV4IDgyNmZhYjQ1MTY1MjBmZmIyYzA0YTc3ODY2ODQxYWMwNDEy
ZjBmNWEuLjlkNTVlNTVkNTY4MmYwNzY1MmE0M2I2ZWYwNDRmMzU1MmVkYWViZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtMjQzLDE2ICsyNDMsNiBAQCBib29sIEV2ZW50VGFy
Z2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiAhZXZlbnQu
ZGVmYXVsdFByZXZlbnRlZCgpOwogfQogCi1ib29sIEV2ZW50VGFyZ2V0OjpoYXNBY3RpdmVUb3Vj
aEV2ZW50TGlzdGVuZXJzKCkgY29uc3QKLXsKLSAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1lcyA9
IGV2ZW50TmFtZXMoKTsKLSAgICByZXR1cm4gaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMu
dG91Y2hzdGFydEV2ZW50KQotICAgICAgICB8fCBoYXNBY3RpdmVFdmVudExpc3RlbmVycyhuYW1l
cy50b3VjaG1vdmVFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFt
ZXMudG91Y2hlbmRFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFt
ZXMudG91Y2hjYW5jZWxFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMo
bmFtZXMudG91Y2hmb3JjZWNoYW5nZUV2ZW50KTsKLX0KLQogdm9pZCBFdmVudFRhcmdldDo6Zmly
ZUV2ZW50TGlzdGVuZXJzKEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXREYXRhKiBkLCBFdmVudExp
c3RlbmVyVmVjdG9yJiBlbnRyeSkKIHsKICAgICBSZWY8RXZlbnRUYXJnZXQ+IHByb3RlY3RlZFRo
aXMoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCBlM2RhYWZjNzk1Yjc3MzQ4
OTgwODNjZTBlMmFlYTliYWRhM2ZiOTNhLi4xNWY1YTY2YTRmMzcwMDA2NDFlMjJiYjgwZWE4N2Qy
NTBlZDQ5ZWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtMTY4LDggKzE2OCw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHZpc2l0SlNFdmVudExpc3RlbmVycyhKU0M6OlNsb3RWaXNpdG9y
Jik7CiAgICAgdm9pZCBpbnZhbGlkYXRlSlNFdmVudExpc3RlbmVycyhKU0M6OkpTT2JqZWN0Kik7
CiAKLSAgICBib29sIGhhc0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMoKSBjb25zdDsKLQogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgfkV2ZW50VGFyZ2V0KCk7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IDU3MjA4OGIxZDIyY2M4NTdiMTk5YThm
ZGVlYzZiMmFlNThjM2U0N2YuLmNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUxNDcz
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC0xMzMs
NyArMTMzLDggQEAgYm9vbCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJl
Z2lvbigpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICBp
ZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKSkgewogICAgICAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVu
dFRyYWNraW5nUmVnaW9ucygpOwotICAgICAgICAgICAgKnJlZ2lvbiA9IGV2ZW50VHJhY2tpbmdS
ZWdpb25zLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgICAgICAgICBmb3IgKGNvbnN0
IGF1dG8mIHN5bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICAgICAgcmVn
aW9uLT51bml0ZShzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlKTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzMzNzlhMzZiMzVkMjViMjkwZjY3ZjFkZDU0OGYz
MjZiYzEwZDc5OS4uOGNkM2VjN2VkZjJlNmZmN2I4YzdlMDJhNzc4Y2YyZjhmYWY4MDEzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC0zNzIsOCArMzcyLDExIEBAIFJlZjxDbGllbnRSZWN0TGlzdD4g
UGFnZTo6bm9uRmFzdFNjcm9sbGFibGVSZWN0cygpCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVM
YXlvdXQoKTsKIAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKLSAgICBpZiAoU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKSkKLSAgICAgICAgcmVjdHMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVF
dmVudFRyYWNraW5nUmVnaW9ucygpLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVjdHMoKTsK
KyAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhp
cy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgeworICAgICAgICBjb25zdCBFdmVudFRyYWNraW5n
UmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJz
b2x1dGVFdmVudFRyYWNraW5nUmVnaW9ucygpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5
bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICByZWN0cy5hcHBlbmRWZWN0
b3Ioc3luY2hyb25vdXNFdmVudFJlZ2lvbi52YWx1ZS5yZWN0cygpKTsKKyAgICB9CiAKICAgICBW
ZWN0b3I8RmxvYXRRdWFkPiBxdWFkcyhyZWN0cy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMDRhZGY4YTM2ZmVl
ZDQ4MWU5MjM0OWQ1NDVlYTJmNTQyZWI3MTQzNS4uZDgzMDJlZGJmODAxNzg2MzM5N2U2MWFlYWNj
ODVlNzgwYzkzMzFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFw
aGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtMTQ0LDE4ICsxNDUsMTkgQEAg
RXZlbnRUcmFja2luZ1JlZ2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRU
cmFja2luZ1JlZ2lvbnNGb3JGcmFtZSgKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6IGlmIHdl
J3ZlIGFscmVhZHkgYWNjb3VudGVkIGZvciB0aGlzIHN1YmZyYW1lIGFzIGEgc2Nyb2xsYWJsZSBh
cmVhLCB3ZSBjYW4gYXZvaWQgcmVjdXJzaW5nIGludG8gaXQgaGVyZS4KKyAgICBFdmVudFRyYWNr
aW5nUmVnaW9ucyBldmVudFRyYWNraW5nUmVnaW9uczsKICAgICBmb3IgKEZyYW1lKiBzdWJmcmFt
ZSA9IGZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZy
YW1lLT50cmVlKCkubmV4dFNpYmxpbmcoKSkgewogICAgICAgICBGcmFtZVZpZXcqIHN1YmZyYW1l
VmlldyA9IHN1YmZyYW1lLT52aWV3KCk7CiAgICAgICAgIGlmICghc3ViZnJhbWVWaWV3KQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgUmVnaW9uIHN1YmZyYW1lUmVnaW9uID0gYWJz
b2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKCpzdWJmcmFtZSkuc3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbjsKKyAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgc3ViZnJhbWVSZWdp
b24gPSBhYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUoKnN1YmZyYW1lKTsKICAg
ICAgICAgLy8gTWFwIGZyb20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KICAg
ICAgICAgSW50UG9pbnQgb2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmlu
Z1ZpZXdDb250ZW50cyhJbnRQb2ludCgpKTsKIAogICAgICAgICAvLyBGSVhNRTogdGhpcyB0cmFu
c2xhdGlvbiBpZ25vcmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0aGUgZnJhbWUuCiAgICAg
ICAgIHN1YmZyYW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7Ci0gICAgICAg
IG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLnVuaXRlKHN1YmZyYW1lUmVnaW9uKTsKKyAgICAgICAg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMudW5pdGUoc3ViZnJhbWVSZWdpb24pOwogICAgIH0KIAogICAg
IERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgd2hlZWxIYW5kbGVyUmVnaW9uID0gZnJhbWUuZG9j
dW1lbnQoKS0+YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+
d2hlZWxFdmVudFRhcmdldHMoKSk7CkBAIC0xNjksNyArMTcxLDggQEAgRXZlbnRUcmFja2luZ1Jl
Z2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNG
b3JGcmFtZSgKICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZSh3aGVlbEhhbmRsZXJS
ZWdpb24uZmlyc3QpOwogCiAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgbm90IHRoZSBtYWluIGZy
YW1lLCB3ZSBjb3VsZCBjbGlwIHRoZSByZWdpb24gdG8gdGhlIGZyYW1lJ3MgYm91bmRzLgotICAg
IHJldHVybiBFdmVudFRyYWNraW5nUmVnaW9ucyB7IFJlZ2lvbigpLCBub25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbiB9OworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnVuaXRlU3luY2hyb25vdXNSZWdp
b24oZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKKyAg
ICByZXR1cm4gZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDRjYjM3MWUxZTZmMmRiYjhjYzk4NjcwYjI1ZTdm
ODczMTc2OGE1YjQuLjdjY2FmNWU0N2RlN2Q0NmJkMzcyNjU0ZDViNTViYjI1ODA0YzEwMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI0NSwxNSArMjQ1LDE3IEBA
IHZvaWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRl
eHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgICAgICBp
bmRlbnQgLT0gMjsKICAgICB9Ci0gICAgaWYgKCFtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX2V2ZW50VHJhY2tp
bmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5pc0VtcHR5
KCkpIHsKICAgICAgICAgKytpbmRlbnQ7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQp
OwogICAgICAgICB0cyA8PCAiKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiI7CiAg
ICAgICAgICsraW5kZW50OwotICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IG1fZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5yZWN0cygpKSB7Ci0gICAgICAgICAg
ICB0cyA8PCAiXG4iOwotICAgICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7Ci0gICAg
ICAgICAgICB0cyA8PCByZWN0OworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5bmNocm9ub3Vz
RXZlbnRSZWdpb24gOiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9ucykgeworICAgICAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBzeW5j
aHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlLnJlY3RzKCkpIHsKKyAgICAgICAgICAgICAgICB0cyA8
PCAiXG4iOworICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOworICAgICAg
ICAgICAgICAgIHRzIDw8IHJlY3Q7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
dHMgPDwgIilcbiI7CiAgICAgICAgIGluZGVudCAtPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzNzY4MGI5NzZhZDBkMGUxNGIy
MDZmNzcxYWFmOTQ4MGRkOGQxMTY2Li5kMjBjZGU4MjZmM2QyMWVmY2M1MTkyZDIyNDRmOTExNjE5
ZTM4ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
IAorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgi
CkBAIC02Niw3ICs2NywxMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVs
RXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudAogICAgICAgICBGbG9h
dFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwogICAgICAgICBwb3NpdGlv
bi5tb3ZlKGZyYW1lU2Nyb2xsaW5nTm9kZS52aWV3VG9Db250ZW50c09mZnNldChtX21haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKSk7CiAKLSAgICAgICAgYm9vbCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24gPSBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KHJvdW5k
ZWRJbnRQb2ludChwb3NpdGlvbikpID09IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAg
ICAgIGNvbnN0IEV2ZW50TmFtZXMmIG5hbWVzID0gZXZlbnROYW1lcygpOworICAgICAgICBJbnRQ
b2ludCByb3VuZGVkUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24pOworICAgICAg
ICBib29sIGlzU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IG1fZXZlbnRUcmFja2luZ1JlZ2lv
bnMudHJhY2tpbmdUeXBlRm9yUG9pbnQobmFtZXMud2hlZWxFdmVudCwgcm91bmRlZFBvc2l0aW9u
KSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzCisgICAgICAgICAgICB8fCBtX2V2ZW50VHJh
Y2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KG5hbWVzLm1vdXNld2hlZWxFdmVudCwg
cm91bmRlZFBvc2l0aW9uKSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwogICAgICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OnNob3Vs
ZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5OiB3aGVlbEV2ZW50IGF0ICIgPDwgd2hlZWxF
dmVudC5wb3NpdGlvbigpIDw8ICIgbWFwcGVkIHRvIGNvbnRlbnQgcG9pbnQgIiA8PCBwb3NpdGlv
biA8PCAiLCBpbiBub24tZmFzdCByZWdpb24gIiA8PCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b24pOwogCiAgICAgICAgIGlmIChpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pCkBAIC0yMzMs
MTEgKzIzNywxMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0
aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiAgICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9
IHBvc2l0aW9uOwogfQogCi1UcmFja2luZ1R5cGUgU2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2lu
Z1R5cGVGb3JQb2ludChJbnRQb2ludCBwKQorVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2
ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIElu
dFBvaW50IHApCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIAotICAgIHJl
dHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KHApOworICAg
IHJldHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KGV2ZW50
TmFtZSwgcCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVz
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5k
ZXggMjYxN2JmYmFkMWRlMjdkMTQ5MzE0ZGYyZTJlZDM0OWFlZjM0ZGYwMi4uMTA5ZDEzYWI3ZWZl
MTE3MDMyYTliNWY1MzMxMzU3MjYzMDQ1OGYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKSB7IH0KICNlbmRp
ZgogCi0gICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9y
UG9pbnQoSW50UG9pbnQpOworICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBldmVudFRy
YWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBJbnRQb2lu
dCk7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVl
bEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWNi
OTNiYTkzYzVhNzg1MDI1OGZjOWNkYzgzZjg4Nzk2OWQ1MzM2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwCkBAIC0wLDAg
KzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2ZW50VHJhY2tpbmdSZWdpb25zLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHJhY2tpbmdUeXBlIEV2ZW50VHJhY2tpbmdSZWdpb25z
Ojp0cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSwgY29uc3QgSW50
UG9pbnQmIHBvaW50KQoreworICAgIGF1dG8gc3luY2hyb25vdXNSZWdpb25JdGVyYXRvciA9IGV2
ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5maW5kKGV2ZW50TmFtZSk7Cisg
ICAgaWYgKHN5bmNocm9ub3VzUmVnaW9uSXRlcmF0b3IgIT0gZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zLmVuZCgpKSB7CisgICAgICAgIGlmIChzeW5jaHJvbm91c1JlZ2lv
bkl0ZXJhdG9yLT52YWx1ZS5jb250YWlucyhwb2ludCkpCisgICAgICAgICAgICByZXR1cm4gVHJh
Y2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICB9CisKKyAgICBpZiAoYXN5bmNocm9ub3VzRGlz
cGF0Y2hSZWdpb24uY29udGFpbnMocG9pbnQpKQorICAgICAgICByZXR1cm4gVHJhY2tpbmdUeXBl
OjpBc3luY2hyb25vdXM7CisgICAgcmV0dXJuIFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7Cit9
CisKK2Jvb2wgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJl
dHVybiBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCkKKyAgICAgICAgJiYgZXZl
bnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zLmlzRW1wdHkoKTsKK30KKwordm9p
ZCBFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhbnNsYXRlKEludFNpemUgb2Zmc2V0KQoreworICAg
IGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uLnRyYW5zbGF0ZShvZmZzZXQpOworICAgIGZvciAo
YXV0byYgc2xvdCA6IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykKKyAg
ICAgICAgc2xvdC52YWx1ZS50cmFuc2xhdGUob2Zmc2V0KTsKK30KKwordm9pZCBFdmVudFRyYWNr
aW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbihjb25zdCBTdHJpbmcmIGV2ZW50TmFt
ZSwgY29uc3QgUmVnaW9uJiByZWdpb24pCit7CisgICAgaWYgKHJlZ2lvbi5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gYWRkUmVzdWx0ID0gZXZlbnRTcGVjaWZpY1N5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb25zLmFkZChldmVudE5hbWUsIHJlZ2lvbik7CisgICAgaWYgKCFh
ZGRSZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS51
bml0ZShyZWdpb24pOworfQorCit2b2lkIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp1bml0ZShjb25z
dCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCit7CisgICAgYXN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24udW5pdGUoZXZlbnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24pOworICAgIGZvciAoYXV0byYgc2xvdCA6IGV2ZW50VHJhY2tp
bmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykKKyAgICAg
ICAgdW5pdGVTeW5jaHJvbm91c1JlZ2lvbihzbG90LmtleSwgc2xvdC52YWx1ZSk7Cit9CisKK2Jv
b2wgb3BlcmF0b3I9PShjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYSwgY29uc3QgRXZlbnRU
cmFja2luZ1JlZ2lvbnMmIGIpCit7CisgICAgcmV0dXJuIGEuYXN5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24gPT0gYi5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbgorICAgICAgICAmJiBhLmV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9PSBiLmV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKaW5kZXggMWYw
NTU2NDAxNDQzOGNhMzUxODVlYTU3YjAwNjMxMDgzNTllNzNlMS4uZDZmNWJiMThjN2M4MGQ4YzBj
ZjczYTgzNzAwZWQ5ZDY2YjVmZGM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9F
dmVudFRyYWNraW5nUmVnaW9ucy5oCkBAIC0yNiw2ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIlJlZ2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDMyICs0MiwxOSBAQCBzdHJ1Y3QgRXZlbnRU
cmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFJlZ2lvbiBmb3Igd2hpY2ggZXZlbnRzIGNhbiBiZSBk
aXNwYXRjaGVkIHdpdGhvdXQgYmxvY2tpbmcgc2Nyb2xsaW5nLgogICAgIFJlZ2lvbiBhc3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbjsKIAotICAgIC8vIFJlZ2lvbiBmb3Igd2hpY2ggZXZlbnRzIG11
c3QgYmUgc2VudCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBiZWhhdmlvci4KLSAgICBS
ZWdpb24gc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsKKyAgICAvLyBSZWdpb25zIGZvciB3aGlj
aCBldmVudHMgbXVzdCBiZSBzZW50IGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBkZWZhdWx0IGJlaGF2
aW9yLgorICAgIC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50IE5hbWUgd2l0aCBhbiBhY3RpdmUgaGFu
ZGxlci4KKyAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmljU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbnM7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAotICAgIFRy
YWNraW5nVHlwZSB0cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBJbnRQb2ludCYpOwotfTsKLQot
aW5saW5lIGJvb2wgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkoKSBjb25zdAotewotICAg
IHJldHVybiBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCkgJiYgc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCk7Ci19CisgICAgdm9pZCB0cmFuc2xhdGUoSW50U2l6
ZSk7CisgICAgdm9pZCB1bml0ZVN5bmNocm9ub3VzUmVnaW9uKGNvbnN0IFN0cmluZyYgZXZlbnRO
YW1lLCBjb25zdCBSZWdpb24mKTsKKyAgICB2b2lkIHVuaXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdS
ZWdpb25zJik7CiAKLWlubGluZSBUcmFja2luZ1R5cGUgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRy
YWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKLXsKLSAgICBpZiAoc3lu
Y2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5jb250YWlucyhwb2ludCkpCi0gICAgICAgIHJldHVybiBU
cmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwotICAgIGlmIChhc3luY2hyb25vdXNEaXNwYXRjaFJl
Z2lvbi5jb250YWlucyhwb2ludCkpCi0gICAgICAgIHJldHVybiBUcmFja2luZ1R5cGU6OkFzeW5j
aHJvbm91czsKLSAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKLX0KKyAgICBU
cmFja2luZ1R5cGUgdHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUs
IGNvbnN0IEludFBvaW50Jik7Cit9OwogCi1pbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2
ZW50VHJhY2tpbmdSZWdpb25zJiBhLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYikKLXsK
LSAgICByZXR1cm4gYS5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9PSBiLmFzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uCi0gICAgICAgICYmIGEuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9
PSBiLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247Ci19Citib29sIG9wZXJhdG9yPT0oY29uc3Qg
RXZlbnRUcmFja2luZ1JlZ2lvbnMmLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYpOwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRy
YW5zYWN0aW9uLmNwcAppbmRleCAzNTc4NzI4MzVlN2EyNTY5YmY5OTg1YWI3Y2Y0NTk2ODNmZmJh
Y2JiLi5lZmY2MTliMGYwNjFjMWZmMzlhOTk5OTgxNzM1ZWRlYjZjNmVhYzliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAgLTQ5NywxMCArNDk3
LDEyIEBAIHN0YXRpYyB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlJiBub2RlLCBiCiAgICAgICAgIHsKICAgICAgICAgICAgIFRl
eHRTdHJlYW06Okdyb3VwU2NvcGUgZ3JvdXAodHMpOwogICAgICAgICAgICAgdHMgPDwgInN5bmNo
cm9ub3VzLWV2ZW50LXRyYWNraW5nLXJlZ2lvbiI7Ci0gICAgICAgICAgICBmb3IgKGF1dG8gcmVj
dCA6IG5vZGUuZXZlbnRUcmFja2luZ1JlZ2lvbnMoKS5zeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9u
LnJlY3RzKCkpIHsKLSAgICAgICAgICAgICAgICB0cyA8PCAiXG4iOwotICAgICAgICAgICAgICAg
IHRzLndyaXRlSW5kZW50KCk7Ci0gICAgICAgICAgICAgICAgdHMgPDwgcmVjdDsKKyAgICAgICAg
ICAgIGZvciAoY29uc3QgYXV0byYgc3luY2hyb25vdXNFdmVudFJlZ2lvbiA6IG1fZXZlbnRUcmFj
a2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKSB7Cisg
ICAgICAgICAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZh
bHVlLnJlY3RzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdHMgPDwgIlxuIjsKKyAgICAgICAg
ICAgICAgICAgICAgdHMud3JpdGVJbmRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgdHMgPDwg
cmVjdDsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmlu
ZGV4IDkyNDZlZTdkZDkyNzZlZWNhM2IwMTk1M2FjYTllMDAxZWUzYzEyODguLjNlNTJjOWZiNjk5
MGU4MmM2YzBhZDE3NjM2NzcwMDNlMGFmNjQzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBB
cmd1bWVudENvZGVyPEFmZmluZVRyYW5zZm9ybT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIEFmZmluZVRyYW4KIHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9u
cz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEV2ZW50VHJhY2tpbmdS
ZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9ucykKIHsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJh
Y2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwotICAgIGVuY29kZXIgPDwg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsKKyAgICBlbmNv
ZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uczsKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25z
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRXZlbnRUcmFja2luZ1JlZ2lvbnMm
IGV2ZW50VHJhY2tpbmdSZWdpb25zKQpAQCAtMTE5LDExICsxMTksMTEgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgRXZlbnQKICAgICBSZWdpb24gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBSZWdpb24gc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pKQorICAgIEhh
c2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uczsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rp
c3BhdGNoUmVnaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBldmVudFRyYWNraW5n
UmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoYXN5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb24pOwotICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNocm9ub3VzRGlz
cGF0Y2hSZWdpb24gPSBXVEZNb3ZlKHN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pOworICAgIGV2
ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9u
cyA9IFdURk1vdmUoZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHAKaW5kZXggYWM4NDBkZDVlODUyZTE3Y2RhYWIwYzliY2ViN2I4NDY2NzkyNWVlNC4uYWM5
OGM2NDgwOTY5MTFhMzAzZWE0OWU0NzBjN2FhNTYzMmQ4YzUxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNDksOSArMTQ5LDkgQEAgYm9vbCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYKICAgICByZXR1cm4gcmVzdWx0ID09IFNjcm9sbGluZ1RyZWU6OkRpZEhh
bmRsZUV2ZW50OyAvLyBGSVhNRTogaGFuZGxlIG90aGVyIHZhbHVlcy4KIH0KIAotVHJhY2tpbmdU
eXBlIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9y
UG9pbnQoSW50UG9pbnQgcCkgY29uc3QKK1RyYWNraW5nVHlwZSBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnROYW1lLCBJbnRQb2ludCBwKSBjb25zdAogewotICAgIHJldHVybiBtX3Njcm9sbGlu
Z1RyZWUtPmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQocCk7CisgICAgcmV0dXJuIG1fc2Nyb2xs
aW5nVHJlZS0+ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIHApOwogfQogCiB2
b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnZpZXdwb3J0Q2hhbmdlZFZpYURl
bGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFJlY3Qm
IGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oCmluZGV4IDBkZGI1MDY5MTJmNjE3YzMwNjQ1Yjk5ZDEwMDk2ODE2OTQ3
YmE4N2QuLmNmNTBkZDA2Mjc5MTMzNGEyNzI0ODRlNDcxMGE0Yzk2OTg0MTMxODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01Niw3ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIFdl
YkNvcmU6OlNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pOwogICAgIHZvaWQgc2Nyb2xs
aW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9n
cmFtbWF0aWNTY3JvbGwpOwogCi0gICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tp
bmdUeXBlRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OworICAgIFdlYkNvcmU6OlRy
YWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnROYW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CiAKICAgICAvLyBDYWxsZWQgZXh0
ZXJuYWxseSB3aGVuIG5hdGl2ZSB2aWV3cyBtb3ZlIGFyb3VuZC4KICAgICB2b2lkIHZpZXdwb3J0
Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBzY2FsZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDA5N2NmYzVl
MWVlNjc0ZGQ5NDQyNjQ5ODhmMmY5ODMxOWE3MDAxMzkuLmQ0NDc5MjdlODE1YzA4ZmM0ZWIyZDUx
NmE1N2I2NjgxYTEzNTA4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC0xOTM2LDI0ICsxOTM2LDczIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpmaW5kUGx1
Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBjb25zCiAK
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCi1UcmFja2luZ1R5cGUgV2ViUGFnZVByb3h5Ojp0
b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoU3RhcnRFdmVu
dCkgY29uc3QKK3N0YXRpYyBUcmFja2luZ1R5cGUgbWVyZ2VUcmFja2luZ1R5cGVzKFRyYWNraW5n
VHlwZSBhLCBUcmFja2luZ1R5cGUgYikKK3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWludHB0cl90
PihiKSA+IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oYSkpCisgICAgICAgIHJldHVybiBiOworICAg
IHJldHVybiBhOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlVG91Y2hFdmVudFRyYWNr
aW5nKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoU3RhcnRFdmVudCkKIHsKICNpZiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQotICAgIFRyYWNraW5nVHlwZSB0cmFja2luZ1R5cGUgPSBUcmFja2lu
Z1R5cGU6Ok5vdFRyYWNraW5nOworICAgIGNvbnN0IEV2ZW50TmFtZXMmIG5hbWVzID0gZXZlbnRO
YW1lcygpOwogICAgIGZvciAoYXV0byYgdG91Y2hQb2ludCA6IHRvdWNoU3RhcnRFdmVudC50b3Vj
aFBvaW50cygpKSB7Ci0gICAgICAgIFRyYWNraW5nVHlwZSB0b3VjaFBvaW50VHJhY2tpbmdUeXBl
ID0gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50
KHRvdWNoUG9pbnQubG9jYXRpb24oKSk7Ci0gICAgICAgIGlmICh0b3VjaFBvaW50VHJhY2tpbmdU
eXBlID09IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXMpCi0gICAgICAgICAgICByZXR1cm4gVHJh
Y2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICAgICAgSW50UG9pbnQgbG9jYXRpb24gPSB0b3Vj
aFBvaW50LmxvY2F0aW9uKCk7CisgICAgICAgIGF1dG8gdXBkYXRlVHJhY2tpbmdUeXBlID0gW3Ro
aXMsIGxvY2F0aW9uXShUcmFja2luZ1R5cGUmIHRyYWNraW5nVHlwZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudE5hbWUpIHsKKyAgICAgICAgICAgIGlmICh0cmFja2luZ1R5cGUgPT0gVHJhY2tp
bmdUeXBlOjpTeW5jaHJvbm91cykKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
aWYgKHRvdWNoUG9pbnRUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpBc3luY2hyb25vdXMp
Ci0gICAgICAgICAgICB0cmFja2luZ1R5cGUgPSB0b3VjaFBvaW50VHJhY2tpbmdUeXBlOwotICAg
IH0KKyAgICAgICAgICAgIFRyYWNraW5nVHlwZSB0cmFja2luZ1R5cGVGb3JMb2NhdGlvbiA9IG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS0+ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChldmVu
dE5hbWUsIGxvY2F0aW9uKTsKIAotICAgIHJldHVybiB0cmFja2luZ1R5cGU7CisgICAgICAgICAg
ICB0cmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXModHJhY2tpbmdUeXBlLCB0cmFja2lu
Z1R5cGVGb3JMb2NhdGlvbik7CisgICAgICAgIH07CisgICAgICAgIHVwZGF0ZVRyYWNraW5nVHlw
ZShtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5nLCBuYW1lcy50
b3VjaGZvcmNlY2hhbmdlRXZlbnQpOworICAgICAgICB1cGRhdGVUcmFja2luZ1R5cGUobV90b3Vj
aEV2ZW50VHJhY2tpbmcudG91Y2hTdGFydFRyYWNraW5nLCBuYW1lcy50b3VjaHN0YXJ0RXZlbnQp
OworICAgICAgICB1cGRhdGVUcmFja2luZ1R5cGUobV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hN
b3ZlVHJhY2tpbmcsIG5hbWVzLnRvdWNobW92ZUV2ZW50KTsKKyAgICAgICAgdXBkYXRlVHJhY2tp
bmdUeXBlKG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoRW5kVHJhY2tpbmcsIG5hbWVzLnRvdWNo
ZW5kRXZlbnQpOworICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRvdWNoU3RhcnRFdmVu
dCk7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hGb3JjZUNoYW5nZWRUcmFja2luZyA9
IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91
Y2hTdGFydFRyYWNraW5nID0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICBtX3RvdWNo
RXZlbnRUcmFja2luZy50b3VjaE1vdmVUcmFja2luZyA9IFRyYWNraW5nVHlwZTo6U3luY2hyb25v
dXM7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hFbmRUcmFja2luZyA9IFRyYWNraW5n
VHlwZTo6U3luY2hyb25vdXM7CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAg
ICByZXR1cm4gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKK30KKworVHJhY2tpbmdUeXBlIFdl
YlBhZ2VQcm94eTo6dG91Y2hFdmVudFRyYWNraW5nVHlwZShjb25zdCBXZWJUb3VjaEV2ZW50JiB0
b3VjaFN0YXJ0RXZlbnQpIGNvbnN0Cit7CisgICAgLy8gV2Ugc2VuZCBhbGwgZXZlbnRzIGlmIGFu
eSBvZiB0aGVtIGlzIG5lZWRlZCwgd2UganVzdCBkbyBpdCBhc3luY2hyb25vdXNseS4KKyAgICAv
LworICAgIC8vIFRvdWNoIGV2ZW50cyBkZWZpbmUgYSBzZXF1ZW5jZSB3aXRoIHN0cm9uZyBkZXBl
bmRlbmNpZXMuIEZvciBleGFtcGxlLCB3ZSBjYW4gZXhwZWN0CisgICAgLy8gYSBUb3VjaE1vdmUg
dG8gb25seSBhcHBlYXIgYWZ0ZXIgYSBUb3VjaFN0YXJ0LCBhbmQgdGhlIGlkcyBvZiB0aGUgdG91
Y2ggcG9pbnRzIGlzIGNvbnNpc3RlbnQgYmV0d2VlbgorICAgIC8vIHRoZSB0d28uCisgICAgLy8K
KyAgICAvLyBXZSBkb24ndCB3YW50IHRvIFdlYkNvcmUgdG8gYmUgYWJsZSB0byBzZXR1cCBpdHMg
c3RhdGUgY29ycmVjdGx5IGFmdGVyIHNvbWUKKyAgICAvLyBldmVudHMgd2VyZSBkaXNtaXNzZWQu
IFdlIHNlbmQgZXZlcnl0aGluZywgV2ViQ29yZSB1cGRhdGVzIGl0cyBpbnRlcm5hbCBzdGF0ZSBh
bmQgZGlzcGF0Y2ggd2hhdCBpcyBuZWVkZWQuCisgICAgVHJhY2tpbmdUeXBlIGdsb2JhbFRyYWNr
aW5nVHlwZSA9IG1fdG91Y2hFdmVudFRyYWNraW5nLmlzVHJhY2tpbmdBbnl0aGluZygpID8gVHJh
Y2tpbmdUeXBlOjpBc3luY2hyb25vdXMgOiBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworCisg
ICAgZ2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5cGVzKGdsb2JhbFRyYWNraW5n
VHlwZSwgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hGb3JjZUNoYW5nZWRUcmFja2luZyk7Cisg
ICAgZm9yIChhdXRvJiB0b3VjaFBvaW50IDogdG91Y2hTdGFydEV2ZW50LnRvdWNoUG9pbnRzKCkp
IHsKKyAgICAgICAgc3dpdGNoICh0b3VjaFBvaW50LnN0YXRlKCkpIHsKKyAgICAgICAgY2FzZSBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ6CisgICAgICAgICAgICBnbG9iYWxU
cmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMoZ2xvYmFsVHJhY2tpbmdUeXBlLCBtX3Rv
dWNoRXZlbnRUcmFja2luZy50b3VjaEVuZFRyYWNraW5nKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkOgorICAgICAg
ICAgICAgZ2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5cGVzKGdsb2JhbFRyYWNr
aW5nVHlwZSwgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hTdGFydFRyYWNraW5nKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hN
b3ZlZDoKKyAgICAgICAgY2FzZSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFy
eToKKyAgICAgICAgICAgIGdsb2JhbFRyYWNraW5nVHlwZSA9IG1lcmdlVHJhY2tpbmdUeXBlcyhn
bG9iYWxUcmFja2luZ1R5cGUsIG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoTW92ZVRyYWNraW5n
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdlYlBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hDYW5jZWxsZWQ6CisgICAgICAgICAgICBnbG9iYWxUcmFja2luZ1R5cGUgPSBtZXJn
ZVRyYWNraW5nVHlwZXMoZ2xvYmFsVHJhY2tpbmdUeXBlLCBUcmFja2luZ1R5cGU6OkFzeW5jaHJv
bm91cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biBnbG9iYWxUcmFja2luZ1R5cGU7CiB9CiAKICNlbmRpZgpAQCAtMTk3OSwxNCArMjAyOCwxNSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkoTmF0aXZl
V2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChldmVudC50
eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQpIHsKLSAgICAgICAgbV90b3VjaEV2ZW50c1Ry
YWNraW5nVHlwZSA9IHRvdWNoRXZlbnRUcmFja2luZ1R5cGUoZXZlbnQpOworICAgICAgICB1cGRh
dGVUb3VjaEV2ZW50VHJhY2tpbmcoZXZlbnQpOwogICAgICAgICBtX2xheWVyVHJlZVRyYW5zYWN0
aW9uSWRBdExhc3RUb3VjaFN0YXJ0ID0gZG93bmNhc3Q8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eT4oKmRyYXdpbmdBcmVhKCkpLmxhc3RDb21taXR0ZWRMYXllclRyZWVUcmFuc2FjdGlv
bklEKCk7CiAgICAgfQogCi0gICAgaWYgKG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJh
Y2tpbmdUeXBlOjpOb3RUcmFja2luZykKKyAgICBUcmFja2luZ1R5cGUgdG91Y2hFdmVudHNUcmFj
a2luZ1R5cGUgPSB0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGV2ZW50KTsKKyAgICBpZiAodG91Y2hF
dmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZykKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdU
eXBlOjpBc3luY2hyb25vdXMpIHsKKyAgICBpZiAodG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0g
VHJhY2tpbmdUeXBlOjpBc3luY2hyb25vdXMpIHsKICAgICAgICAgLy8gV2UgY2FuIGVuZCB1cCBo
ZXJlIGlmIGEgbmF0aXZlIGdlc3R1cmUgaGFzIG5vdCBzdGFydGVkIGJ1dCB0aGUgZXZlbnQgaGFu
ZGxlcnMgYXJlIHBhc3NpdmUuCiAgICAgICAgIC8vCiAgICAgICAgIC8vIFRoZSBjbGllbnQgb2Yg
V2ViUGFnZVByb3h5IGFza3MgdGhlIGV2ZW50IHRvIGJlIHNlbnQgc3luY2hyb25vdXNseSBzaW5j
ZSB0aGUgdG91Y2ggZXZlbnQKQEAgLTIwMDcsNyArMjA1Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseShOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVu
dCkKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CiAKICAgICBp
ZiAoZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKQotICAgICAgICBtX3RvdWNoRXZl
bnRzVHJhY2tpbmdUeXBlID0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICAgICAgbV90
b3VjaEV2ZW50VHJhY2tpbmcucmVzZXQoKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRs
ZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseShjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVu
dCkKQEAgLTIwMTUsMTMgKzIwNjUsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNo
RXZlbnRBc3luY2hyb25vdXNseShjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmUKICAgICBp
ZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fdG91Y2hFdmVudHNU
cmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZykKKyAgICBUcmFja2luZ1R5
cGUgdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSB0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGV2ZW50
KTsKKyAgICBpZiAodG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpOb3RU
cmFja2luZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpFdmVudERpc3BhdGNoZXI6OlRvdWNoRXZlbnQobV9wYWdlSUQsIGV2ZW50KSwgMCk7CiAKICAg
ICBpZiAoZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKQotICAgICAgICBtX3RvdWNo
RXZlbnRzVHJhY2tpbmdUeXBlID0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICAgICAg
bV90b3VjaEV2ZW50VHJhY2tpbmcucmVzZXQoKTsKIH0KIAogI2VsaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKQEAgLTIwMzEsOSArMjA4Miw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3Vj
aEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogICAgICAgICByZXR1cm47
CiAKICAgICBpZiAoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaFN0YXJ0KQotICAgICAg
ICBtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gdG91Y2hFdmVudFRyYWNraW5nVHlwZShldmVu
dCk7CisgICAgICAgIHVwZGF0ZVRvdWNoRXZlbnRUcmFja2luZyhldmVudCk7CiAKLSAgICBpZiAo
bV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQor
ICAgIGlmICh0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGV2ZW50KSA9PSBUcmFja2luZ1R5cGU6Ok5v
dFRyYWNraW5nKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiB0aGUgcGFnZSBpcyBzdXNw
ZW5kZWQsIHdoaWNoIHNob3VsZCBiZSB0aGUgY2FzZSBkdXJpbmcgcGFubmluZywgcGluY2hpbmcK
QEAgLTIwNTYsNyArMjEwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50
KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogICAgIH0KIAogICAgIGlmIChldmVu
dC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCi0gICAgICAgIG1fdG91Y2hFdmVudHNUcmFj
a2luZ1R5cGUgPSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAgICBtX3RvdWNoRXZl
bnRUcmFja2luZy5yZXNldCgpOwogfQogI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAK
QEAgLTUwNzUsNyArNTEyNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0
U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICB9CiAKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQotICAgIG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSBUcmFja2luZ1R5cGU6Ok5v
dFRyYWNraW5nOworICAgIG1fdG91Y2hFdmVudFRyYWNraW5nLnJlc2V0KCk7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IDY0MzYyNDJkNmE2YWZhY2JiNzMyOGM1MzdiNTIzMGM4MDM2MmU1MWEu
LjIzYTg1MzNmOGQxOThlMjc4YTJiN2QwMGVkMzNiNWY1OWNmYjc4MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0NjQsNiArMTQ2NCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZW5kV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50Jik7CiAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHZvaWQgdXBkYXRlVG91Y2hFdmVudFRyYWNraW5nKGNv
bnN0IFdlYlRvdWNoRXZlbnQmKTsKICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgdG91Y2hFdmVu
dFRyYWNraW5nVHlwZShjb25zdCBXZWJUb3VjaEV2ZW50JikgY29uc3Q7CiAjZW5kaWYKIApAQCAt
MTY5MSw3ICsxNjkyLDI5IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5hdGl2ZVdl
Yk1vdXNlRXZlbnQ+IG1fY3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3duRXZlbnQ7CiAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBtX3RvdWNoRXZl
bnRzVHJhY2tpbmdUeXBlIHsgV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZyB9Owor
ICAgIHN0cnVjdCBUb3VjaEV2ZW50VHJhY2tpbmcgeworICAgICAgICBXZWJDb3JlOjpUcmFja2lu
Z1R5cGUgdG91Y2hGb3JjZUNoYW5nZWRUcmFja2luZyB7IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6
Tm90VHJhY2tpbmcgfTsKKyAgICAgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIHRvdWNoU3RhcnRU
cmFja2luZyB7IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcgfTsKKyAgICAgICAg
V2ViQ29yZTo6VHJhY2tpbmdUeXBlIHRvdWNoTW92ZVRyYWNraW5nIHsgV2ViQ29yZTo6VHJhY2tp
bmdUeXBlOjpOb3RUcmFja2luZyB9OworICAgICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgdG91
Y2hFbmRUcmFja2luZyB7IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcgfTsKKwor
ICAgICAgICBib29sIGlzVHJhY2tpbmdBbnl0aGluZygpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiB0b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5nICE9IFdlYkNvcmU6OlRyYWNr
aW5nVHlwZTo6Tm90VHJhY2tpbmcKKyAgICAgICAgICAgICAgICB8fCB0b3VjaFN0YXJ0VHJhY2tp
bmcgIT0gV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZworICAgICAgICAgICAgICAg
IHx8IHRvdWNoTW92ZVRyYWNraW5nICE9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tp
bmcKKyAgICAgICAgICAgICAgICB8fCB0b3VjaEVuZFRyYWNraW5nICE9IFdlYkNvcmU6OlRyYWNr
aW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHJlc2V0KCkK
KyAgICAgICAgeworICAgICAgICAgICAgdG91Y2hGb3JjZUNoYW5nZWRUcmFja2luZyA9IFdlYkNv
cmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgICAgICAgICB0b3VjaFN0YXJ0VHJh
Y2tpbmcgPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAgICAgICAg
dG91Y2hNb3ZlVHJhY2tpbmcgPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOwor
ICAgICAgICAgICAgdG91Y2hFbmRUcmFja2luZyA9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90
VHJhY2tpbmc7CisgICAgICAgIH0KKyAgICB9OworICAgIFRvdWNoRXZlbnRUcmFja2luZyBtX3Rv
dWNoRXZlbnRUcmFja2luZzsKICNlbmRpZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFF
TkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBEZXF1ZTxRdWV1ZWRUb3VjaEV2ZW50cz4gbV90
b3VjaEV2ZW50UXVldWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzMxOWY1NGYyMjc4NGNiYmMyNmU0Y2VlYWExY2RkOTJk
Njc3OTlhZC4uMGM2OTc4NWI0ZjVjY2YzNmQ4OWJkYjU5MjQ2YTgxYjc5MzE2ZmQ5NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDE2LTA2LTE1ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBTcGVjaWFsaXplIHN5bmNocm9ub3VzIGV2ZW50IHRyYWNr
aW5nIHBlciBldmVudCB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTg4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVu
ZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlz
dGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVy
LWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5l
ci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0
ZW5lci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy90YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWluc2lk
ZS1hY3RpdmUtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUt
dG91Y2gtZW5kLWxpc3RlbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Rv
dWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlz
dGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNo
LWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNo
LW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0
aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWw6IEFkZGVkLgorCiAyMDE2
LTA2LTE1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGVjb3Vw
bGUgdGhlIHBlcmNlbnQgaGVpZ2h0IGFuZCBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzIG1hcHMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0
aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3NpdmUtbGlzdGVuZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2
ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hNzJmOWYzOGQyNTJjNmVhNjhkOTIzZjc5MjhiOTc1M2U0ODZkM2U4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Rh
cC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3Rl
bmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitDYW5jZWxsZWQgZHJhZyBvbiBUYXJn
ZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0
IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAorTGlzdGVuZXIgZG9jdW1lbnQgcmVj
ZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCA1MCwgNTAK
K0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFy
Z2V0dGluZyBldmVudFRhcmdldDEgYXQgMTAwLCAxMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2Vp
dmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0
IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91
Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0RvbmUK
K0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCkKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNl
aXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDE1MCwgNTAK
K0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBl
dmVudFRhcmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxh
YmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAyMDAsIDEwMAor
TGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFy
Z2V0dGluZyBldmVudFRhcmdldDIgYXQgMjAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorTGlz
dGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorQ2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MyAoYmx1ZSkK
KworTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcg
ZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQg
dG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciBk
b2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQz
IGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0
b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIHRh
cmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVu
dFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFi
bGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDMwMCwgMTAwCitM
aXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0
dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBl
dmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworTGlzdGVuZXIgZG9jdW1lbnQg
cmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MworRG9uZQorVXNlbGVzcyBDbGljayBpbiB0aGUgZG9jdW1lbnQsIHNob3VsZCBiZSBwYXNzaXZl
CisKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGlu
ZyBhdCAzMDAsIDMwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hlbmQg
dGFyZ2V0dGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZl
LWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3NpdmUtbGlzdGVuZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kM2QzZjgzMzM0YzllY2RlNzZlNmY2YzJiNGVhNGMyMDA5ZWZkOGY0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Rh
cC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3Rl
bmVyLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldENsaWNr
VUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAg
ICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFw
QXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlD
b250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0RHJh
Z1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZKQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgke3N0YXJ0WH0sICR7c3RhcnRZfSwg
JHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBmYWls
KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBl
dmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywg
ZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBm
YWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywg
ZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScs
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bics
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScs
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBm
YWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZhaWwpOwor
CisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRM
b2dFdmVudChsaXN0ZW5lciwgc2hvdWxkUHJldmVudERlZmF1bHQgPSBmYWxzZSkgeworICAgICAg
ICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChldmVudCkgeworICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsg
KGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsgJyBldmVudCAnICsgZXZl
bnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAgICAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3Vj
aGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAgJzxicj4nOwor
CisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRQcmV2ZW50RGVmYXVsdCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVy
KCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3NpdmUnOiB0cnVl
IH0pOworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywg
Z2V0TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgiZG9j
dW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICBkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJkb2N1bWVudCIpLCB7ICdw
YXNzaXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2
ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNz
aXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91
Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiLCB0cnVlKSk7CisgICAgICAgICAgICB0YXJn
ZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwg
eyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRy
dWUgfSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0p
OworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRM
b2dFdmVudCgidGFyZ2V0MyIsIHRydWUpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzog
dHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5j
ZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKworICAg
ICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MSAoZ3JlZW4p
PC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3Jp
cHQoNTAsIDUwLCAxMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAg
IG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2Vs
bGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCgxNTAsIDUwLCAyMDAsIDEwMCksIGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAg
ICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQz
IChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlw
dChnZXREcmFnVUlTY3JpcHQoMjUwLCA1MCwgMzAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5Vc2VsZXNzIENsaWNrIGluIHRoZSBkb2N1bWVudCwg
c2hvdWxkIGJlIHBhc3NpdmU8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KGdldENsaWNrVUlTY3JpcHQoMzAwLCAzMDApLCBmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAg
ICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAg
ICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZl
bnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0
MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAg
ICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
KyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4
OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
ICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgIGJvZHkgeworICAgICAgICAg
ICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+
CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQy
PgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+CisgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+CisgICAgVGhp
cyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uCisgICAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZl
LWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUtbGlz
dGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MmY5ZjM4ZDI1MmM2ZWE2OGQ5MjNmNzky
OGI5NzUzZTQ4NmQzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0aC1w
YXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitDYW5jZWxsZWQg
ZHJhZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVu
dCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAorTGlzdGVuZXIg
ZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0
b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgMTAwLCAxMDAKK0xpc3RlbmVyIGRv
Y3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZl
bnRUYXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFi
bGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0xpc3RlbmVyIGRvY3Vt
ZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRh
cmdldDEKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCkKKworTGlzdGVuZXIg
dGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQy
IGF0IDE1MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQg
dGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNl
aXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBh
dCAyMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0
b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMjAwLCAxMDAKK0xpc3RlbmVyIHRh
cmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MgorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3Vj
aGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorQ2FuY2VsbGVkIGRyYWcgb24gVGFy
Z2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0
IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVj
ZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUw
CitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcg
ZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgY2FuY2Vs
YWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAK
K0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFy
Z2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2Vp
dmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0
IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91
Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQg
Y2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworTGlzdGVu
ZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5n
IGV2ZW50VGFyZ2V0MworRG9uZQorVXNlbGVzcyBDbGljayBpbiB0aGUgZG9jdW1lbnQsIHNob3Vs
ZCBiZSBwYXNzaXZlCisKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3Rh
cnQgdGFyZ2V0dGluZyBhdCAzMDAsIDMwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZl
bnQgdG91Y2hlbmQgdGFyZ2V0dGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdp
dGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1s
aXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDM4NDA1MjNkZjg5NTliMDY4OTRhODc3NDI0NDMz
MmVmMzA3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZl
LWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdl
dENsaWNrVUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAg
ICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2lu
Z2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
Z2V0RHJhZ1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZKQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgke3N0YXJ0WH0sICR7c3Rh
cnRZfSwgJHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlv
biBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBt
b3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVu
dGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vs
ZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
ZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
bW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
dXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZh
aWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlv
biBnZXRMb2dFdmVudChsaXN0ZW5lciwgc2hvdWxkUHJldmVudERlZmF1bHQgPSBmYWxzZSkgewor
ICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChldmVudCkgeworICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVjZWl2
ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsgJyBldmVudCAn
ICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAgICAg
ICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBdLmNs
aWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBldmVu
dC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAgJzxi
cj4nOworCisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRQcmV2ZW50RGVmYXVsdCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJkb2N1bWVudCIpLCB7ICdwYXNzaXZlJzog
dHJ1ZSB9KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUn
LCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgiZG9j
dW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFz
c2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGxldCB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFzc2l2
ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNo
bW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiwgdHJ1ZSkpOworICAgICAgICAgICAgdGFyZ2V0
MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsg
J3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVy
KCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0cnVl
IH0pOworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZXZlbnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3Rv
dWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsK
KyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9n
RXZlbnQoInRhcmdldDMiLCB0cnVlKSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRy
dWUgfSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2Vs
JywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisKKyAgICAg
ICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDEgKGdyZWVuKTwv
aDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0
KDUwLCA1MCwgMTAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxl
ZCBkcmFnIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMTUwLCA1MCwgMjAwLCAxMDApLCBmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MyAo
Ymx1ZSk8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQo
Z2V0RHJhZ1VJU2NyaXB0KDI1MCwgNTAsIDMwMCwgMTAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VXNlbGVzcyBDbGljayBpbiB0aGUgZG9jdW1lbnQsIHNo
b3VsZCBiZSBwYXNzaXZlPC9oMT4iOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdChnZXRDbGlja1VJU2NyaXB0KDMwMCwgMzAwKSwgZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J291dHB1dCcpLmlubmVySFRNTCA9IG91dHB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAq
IHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAgICAgICAgYm9keSB7CisgICAgICAg
ICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSwgI2V2ZW50
VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEg
eworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKyAgICAg
ICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cisg
ICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsK
KyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAg
ICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICBib2R5IHsKKyAgICAgICAgICAg
IGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4K
KyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMg
dGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQt
bGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NmI5ZTM4NjEzYmM0ZmI0OGViN2I1
YmExYjg3ZDRhYzgzNDQzZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGFwIG9uIFRhcmdldDEgKGdyZWVuKQorCisoRnJhbWUg
c2Nyb2xsaW5nIG5vZGUKKyAgKHNjcm9sbGFibGUgYXJlYSBzaXplIDgwMCA2MDApCisgIChjb250
ZW50cyBzaXplIDgwMCA2MDApCisgIChzeW5jaHJvbm91cyBldmVudCBkaXNwYXRjaCByZWdpb24K
KyAgICBhdCAoMCwwKSBzaXplIDMwMHgxMDApCispCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0RvbmUK
K1RhcCBvbiBUYXJnZXQyIChyZWQpCisKKyhGcmFtZSBzY3JvbGxpbmcgbm9kZQorICAoc2Nyb2xs
YWJsZSBhcmVhIHNpemUgODAwIDYwMCkKKyAgKGNvbnRlbnRzIHNpemUgODAwIDYwMCkKKyAgKHN5
bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAgIGF0ICgwLDApIHNpemUgMzAweDEw
MCkKKykKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVu
ZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorVGFwIG9uIFRhcmdldDMgKGJsdWUpCisK
KyhGcmFtZSBzY3JvbGxpbmcgbm9kZQorICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgODAwIDYwMCkK
KyAgKGNvbnRlbnRzIHNpemUgODAwIDYwMCkKKyAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNo
IHJlZ2lvbgorICAgIGF0ICgwLDApIHNpemUgMzAweDEwMCkKKykKK0xpc3RlbmVyIHRhcmdldDEg
cmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NDM2YjMzZWZlNDZkM2Q0OGY4Nzg5MWM3ZjIwNzgwYjYxMWU2OTk2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFj
dGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbApAQCAtMCwwICsxLDEwNiBAQAorPCFET0NUWVBF
IGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRy
b2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxFRCE6
IE5vIG1vdXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQudHlw
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZW92ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZW91dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21v
dXNlZW50ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZWxlYXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2Vkb3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2Vtb3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2V1cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgZmFpbCk7CisKKyAgICAgICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGdldExvZ0V2ZW50KGxpc3RlbmVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnPHByZT4nICsgd2luZG93LmludGVybmFscy5zY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKSAr
ICc8L3ByZT4nOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBs
aXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUn
IDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQu
dGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBl
dmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91
Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAgJzxicj4nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZl
bnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNo
ZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisKKyAgICAgICAgICAgIG91dHB1dCArPSAi
PGgxPlRhcCBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
ICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICI8aDE+VGFwIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgxNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgyNTAsIDUwKSwg
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAg
ICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlw
dWxhdGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAg
ICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQz
IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7
CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNl
dmVudFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
aW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJn
ZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9
ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlw
dENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUt
bGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1s
aXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjYzlhNTAzM2ZlMjBjZDVjOWE1ZGU5ZWNlZWExYWYx
ZGZhMTJjODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1pbnNpZGUtYWN0aXZlLWxpc3RlbmVyLmh0
bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFVJU2NyaXB0KHgs
IHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9pbnQoJHt4
fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51
aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7CisgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQgYmUg
cmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7CisgICAgICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAgICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOworICAgICAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAgICAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAgICAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworCisgICAgICAgICAg
ICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVudChsaXN0
ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChldmVudCkg
eworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciAr
ICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsg
JyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0Lmlk
OworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3Vj
aGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0
ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5j
bGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnPGJyPic7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnZGVmYXVsdFByZXZl
bnRlZCBiZWZvcmUgcHJldmVudERlZmF1bHQoKTogJyArIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQg
KyAnPGJyPic7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnZGVmYXVsdFByZXZlbnRlZCBhZnRlciBwcmV2
ZW50RGVmYXVsdCgpOiAnICsgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCArICc8YnI+JzsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCB0YXJnZXQxID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAgICAgICAgICAgdGFy
Z2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDEi
KSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdl
dExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3Rl
bmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgdGFy
Z2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQx
IikpOworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZXZlbnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3Rv
dWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsK
KyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9n
RXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJn
ZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwg
eyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRy
dWUgfSk7CisKKyAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQxIChncmVl
bik8L2gxPiI7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0
KDUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDIgKHJl
ZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNj
cmlwdCgxNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBv
biBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChnZXRVSVNjcmlwdCgyNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5u
ZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+
CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5
IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJn
ZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2
ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAg
ICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxl
ZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAg
ICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2
ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAg
ICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0
PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAg
IDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNz
aXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVkYWRiNjEx
ODkyOGU4Nzg0ZjVlMGFmNWViM2UzOTU3MTdlZWU5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1s
aXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGFwIG9uIFRhcmdldDEgKGdy
ZWVuKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRp
bmcgZXZlbnRUYXJnZXQxCitEb25lCitUYXAgb24gVGFyZ2V0MiAocmVkKQorCitMaXN0ZW5lciB0
YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyCitE
b25lCitUYXAgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBl
dmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1lbmQt
bGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyNjA1ZDIyOTRh
MDhlYTE1Y2Y1Nzk2YjU4NDdhOGYwYTE3MGQxYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlz
dGVuZXIuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlT
Y3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAg
IChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQ
b2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoZXZlbnQp
IHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxFRCE6IE5vIG1vdXNlIGV2ZW50IHNo
b3VsZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQudHlwZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBmYWlsKTsK
KyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGZhaWwpOwor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmYWlsKTsK
KyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZhaWwpOwor
ICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZmFpbCk7CisKKyAg
ICAgICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldExvZ0V2
ZW50KGxpc3RlbmVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50
KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnTGlzdGVuZXIgJyArIGxp
c3RlbmVyICsgJyByZWNlaXZlZCcgKyAoZXZlbnQuY2FuY2VsYWJsZSA/ICcgY2FuY2VsYWJsZScg
OiAnJykgKyAnIGV2ZW50ICcgKyBldmVudC50eXBlICsgJyB0YXJnZXR0aW5nICcgKyBldmVudC50
YXJnZXQuaWQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50b3VjaGVzWzBdICYmIGV2
ZW50LnRvdWNoZXNbMF0uY2xpZW50WCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICcgYXQgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCArICcsICcgKyBldmVudC50b3Vj
aGVzWzBdLmNsaWVudFk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICAnPGJyPic7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldmVu
dFRhcmdldDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hl
bmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKworICAg
ICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDEgKGdyZWVuKTwvaDE+IjsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoNTAsIDUwKSwgZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDE1MCwgNTAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3Vs
dDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDMgKGJs
dWUpPC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdl
dFVJU2NyaXB0KDI1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lckhUTUwgPSBvdXRw
dXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywg
cnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgKiB7
IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAgICAgIGJvZHkgeworICAgICAgICAg
ICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEsICNldmVudFRh
cmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxIHsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAgICAg
ICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7Cisg
ICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAg
ICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQyPgor
ICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+CisgICAgICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+CisgICAgVGhpcyB0
ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uCisgICAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVy
cy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtZW5kLWxpc3Rl
bmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNhMzJmZGM0MDc2NzZj
N2QzMjBjZWYwNjVhYTMzMzEzMWM5Y2Y1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2
ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACitUYXAgb24gVGFyZ2V0MSAoZ3JlZW4pCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xp
c3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MQorRG9uZQorVGFwIG9uIFRhcmdldDIgKHJlZCkKKworTGlzdGVuZXIg
dGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQy
IGF0IDE1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0
b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorVGFwIG9uIFRhcmdldDMgKGJs
dWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2
ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVu
ZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcg
ZXZlbnRUYXJnZXQzCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQg
dG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0
aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10
b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE1OWJmNTUx
MDUwNDE1NWUwYWQxNWMyZGE4ZThjMWY4NWM2MDE1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0
LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKQEAgLTAsMCArMSwx
MTMgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFVJU2NyaXB0KHgsIHkpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRl
KCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290
IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0g
Jyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lcikgeworICAgICAg
ICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChldmVudCkgeworICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsg
KGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsgJyBldmVudCAnICsgZXZl
bnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAgICAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3Vj
aGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAgJzxicj4nOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IHRhcmdl
dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAg
ICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFy
Z2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZl
bnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFzc2l2
ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNo
ZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2
ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAg
ICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdl
dDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcs
IGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAg
ICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgidGFy
Z2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZl
bnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsKKyAgICAgICAg
ICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgi
dGFyZ2V0MyIpKTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDEg
KGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlT
Y3JpcHQoNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0
ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0
MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdl
dFVJU2NyaXB0KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+
VGFwIG9uIFRhcmdldDMgKGJsdWUpPC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDI1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQn
KS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxz
dHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAgICAg
IGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNldmVu
dFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAg
ICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwor
ICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAg
ICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7CisgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxkaXYg
aWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+CisgICAg
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD1v
dXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4u
CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUt
dG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0
aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZmM0NGMxY2VhMTM3MTEwYmRkN2JmZTE1YTJjNTg4ZDNiZGU1MmEwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3Np
dmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitDYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChn
cmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBj
YW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCAxMDAs
IDEwMAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5k
IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitDYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQy
IChyZWQpCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJn
ZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAxNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDIw
MCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hl
bmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdl
dDMgKGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2Vp
dmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1MAor
TGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJn
ZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZl
ZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAz
MDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNo
ZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNh
bmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUt
dG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3Vj
aC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZjE2ZjlmMGQ0Njk5YWE1MjdiMmEyYjg0NGExNTkyNGJkMmY1YWRhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBh
c3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRz
Lmh0bWwKQEAgLTAsMCArMSwxMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldERyYWdVSVNj
cmlwdChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSkKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIuZHJhZ0Zyb21Qb2ludFRvUG9pbnQoJHtzdGFydFh9LCAke3N0YXJ0WX0sICR7ZW5k
WH0sICR7ZW5kWX0sIDAuMTUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZnVuY3Rpb24gZmFpbChldmVu
dCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTEVEITogTm8gbW91c2UgZXZlbnQg
c2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcgKyBldmVudC50eXBlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmYWls
KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmYWls
KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmYWls
KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmYWlsKTsKKworICAg
ICAgICAgICAgbGV0IG91dHB1dCA9ICcnOworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0TG9nRXZl
bnQobGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gbG9nRXZlbnQo
ZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdMaXN0ZW5lciAnICsgbGlz
dGVuZXIgKyAnIHJlY2VpdmVkJyArIChldmVudC5jYW5jZWxhYmxlID8gJyBjYW5jZWxhYmxlJyA6
ICcnKSArICcgZXZlbnQgJyArIGV2ZW50LnR5cGUgKyAnIHRhcmdldHRpbmcgJyArIGV2ZW50LnRh
cmdldC5pZDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXNbMF0gJiYgZXZl
bnQudG91Y2hlc1swXS5jbGllbnRYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gJyBhdCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYICsgJywgJyArIGV2ZW50LnRvdWNo
ZXNbMF0uY2xpZW50WTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gICc8YnI+JzsKKworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlw
ZSA9PT0gJ3RvdWNobW92ZScpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7
CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRM
b2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRh
cmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDEi
KSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0
TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICBs
ZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdldDMnKTsKKyAg
ICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2
ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0
My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsK
KyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dF
dmVudCgidGFyZ2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsKKworICAgICAgICAgICAgb3V0
cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MSAoZ3JlZW4pPC9oMT4iOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoNTAsIDUwLCAx
MDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24g
VGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KGdldERyYWdVSVNjcmlwdCgxNTAsIDUwLCAyMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkg
eworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAg
ICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQzIChibHVlKTwvaDE+
IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlT
Y3JpcHQoMjUwLCA1MCwgMzAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lckhUTUwg
PSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAg
ICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAgICAgIGJvZHkgeworICAg
ICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEsICNl
dmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4Owor
ICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJn
ZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9Cisg
ICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVk
OworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAw
cHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgYm9keSB7CisgICAgICAg
ICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdl
dDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mz4KKyAgICAgICAgICAgIDwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPW91dHB1dD4KKyAgICBU
aGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KKyAgICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281485</attachid>
            <date>2016-06-16 15:40:50 -0700</date>
            <delta_ts>2016-06-23 14:42:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158826-20160616154048.patch</filename>
            <type>text/plain</type>
            <size>87689</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM2ZmY0NGI1NTc5ZjFjNTgzNThjOGU3
OGMwMDJlMzI4YjJlZTYyODEuLjYzODk1ZWY0NmViOTczM2E3MGE0ZmJmMDU4NDQ4OGEwZGQ1ZGQ1
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDYtMTUgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFNwZWNpYWxpemUgc3luY2hyb25vdXMgZXZl
bnQgdHJhY2tpbmcgcGVyIGV2ZW50IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1ODgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL0hhc2hNYXAuaDoKKyAgICAgICAgKFdURjo6b3BlcmF0
b3I9PSk6CisgICAgICAgIERvbid0IGZvcmNlIHRoZSBjbGFzc2VzIHRvIGltcGxlbWVudCAiPT0i
IGFuZCAiIT0iLgorCiAyMDE2LTA2LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgW0NvY29hXSBDbGVhbiB1cCAvIG9wdGltaXplIFJlc291cmNlUmVzcG9uc2U6
OnBsYXRmb3JtTGF6eUluaXQoSW5pdExldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM4MGU2YjM1ZmNkZDZl
ZTNhNGUzM2RhMWQ0MTQ3YWUxYWI3YzY1Y2QuLjk0N2MzOTA5MzllZDJkMWVhYjdlOWRlZDEyNGMy
MTI5NTdkZDI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxNi0wNi0xNSAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6
ZSBzeW5jaHJvbm91cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3QsIGt1ZG9zIHRvIFJpY2sg
QnllcnMgZm9yIGFsbCBoaXMgaGVscHMgb24gcGFzc2l2ZSBldmVudCBkaXNwYXRjaC4KKyAgICAg
ICAgVGhlIHNwZWNzIGFyZSBwcmV0dHkgZGFtbiBnb29kIGFuZCBoaXMgaGVscCByZXZpZXdpbmcg
cGF0Y2hlcyBpcyB2ZXJ5IHVzZWZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZSBzeW5j
aHJvbm91cyBldmVudCBkaXNwYXRjaCB0byBoYXBwZW4gcGVyIGV2ZW50CisgICAgICAgIGluc3Rl
YWQgb2YgcGVyIHNlcXVlbmNlIHRvdWNoc3RhcnQtPnRvdWNoZW5kLgorCisgICAgICAgIFRoZSBi
aWcgYWR2YW50YWdlIG9mIHRoaXMgaXMgd2UgY2FuIGRpc3BhdGNoIG1vcmUgZXZlbnRzIGFzeW5j
aHJvbm91c2x5LgorICAgICAgICBGb3IgZXhhbXBsZSwgdG8gaGFuZGxlIGEgdGFwIHByb2dyYW1t
YXRpY2FsbHksIHlvdSBjYW4gbGltaXQgdGhlIGFjdGl2ZSBsaXN0ZW5lcgorICAgICAgICB0byB0
aGUgdG91Y2hlbmQgZXZlbnQuIFRoZSB0b3VjaHN0YXJ0IGFuZCB0b3VjaG1vdmUgYXJlIG5vdyBk
aXNwYXRjaGVkIGFzeW5jaHJvbm91c2x5LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBp
cyBhIHNpbXBsZSBleHRlbnNpb24gdG8gRXZlbnRUcmFja2luZ1JlZ2lvbnMuCisgICAgICAgIElu
c3RlYWQgb2YgYSBzaW5nbGUgc3luY2hyb25vdXMgcmVnaW9uLCB3ZSBoYXZlIG9uZSByZWdpb24g
cGVyIGV2ZW50IHR5cGUuCisgICAgICAgIFdoZW4gcHJvY2Vzc2luZyB0aGUgZXZlbnRzLCB3ZSBv
bmx5IG5lZWQgdG8gc2VuZCB0aGUgZXZlbnRzIHN5bmNocm9ub3VzbHkKKyAgICAgICAgaWYgdGhh
dCBwYXJ0aWN1bGFyIGV2ZW50IHR5cGUgaGFzIGEgc3luY2hyb25vdXMgcmVnaW9uLgorCisgICAg
ICAgIE5vdGUgdGhhdCBFdmVudERpc3BhdGNoZXIncyB0b3VjaCBldmVudCBzdXBwb3J0IGFscmVh
ZHkgc3VwcG9ydHMKKyAgICAgICAgbWl4aW5nIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMg
ZXZlbnRzLiBUaGUgZXZlbnRzIGFyZSBhbHdheXMgcHJvY2Vzc2VkCisgICAgICAgIGluIG9yZGVy
IGV2ZW4gaWYgYXN5bmNocm9ub3VzIGV2ZW50cyBhcmUgcGVuZGluZyB3aGVuIGEgc3luY2hyb25v
dXMgZGlzcGF0Y2gKKyAgICAgICAgaGFwcGVucy4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0
aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUt
bGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1s
aXN0ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNo
LWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1v
dmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6Omhh
c0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FdmVu
dFRhcmdldC5oOgorICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25PdmVybGF5Ojp1cGRhdGVSZWdpb24p
OgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub25G
YXN0U2Nyb2xsYWJsZVJlY3RzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6
YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2luZ1R5cGVG
b3JQb2ludCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUpOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjp0cmFj
a2luZ1R5cGVGb3JQb2ludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09
KTogRGVsZXRlZC4KKwogMjAxNi0wNi0xNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIERlY291cGxlIHRoZSBwZXJjZW50IGhlaWdodCBhbmQgcG9zaXRpb25lZCBk
ZXNjZW5kYW50cyBtYXBzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDE3ZmYzNDJiNGMxZDc2NTk1NjE4ZjkxMTky
YzVjNWY3ZjIwZGYxYzIuLjBlMDAyOTRjMDRlY2M4ZmI0YzczMTk4MjhlOGI4NDc1ODE5ZDNiM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNi0wNi0xNSAgQmVuamFtaW4gUG91bGFp
biAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6ZSBzeW5jaHJvbm91
cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+
OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptZXJn
ZVRyYWNraW5nVHlwZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVRv
dWNoRXZlbnRUcmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dG91Y2hF
dmVudFRyYWNraW5nVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxl
VG91Y2hFdmVudFN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cmVzZXRTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OlRvdWNoRXZlbnRUcmFja2luZzo6aXNUcmFja2lu
Z0FueXRoaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpUb3VjaEV2ZW50VHJh
Y2tpbmc6OnJlc2V0KToKKwogMjAxNi0wNi0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgX3Nob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdI
ZWlnaHRGb3JBdXRvTGF5b3V0IFNQSSBvbiBXS1dlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0hhc2hNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAppbmRleCAwNjE3OWQ5
MWIwMTA5N2JkZmIyMjI3MDllN2Q4M2UxNWM5YTg5ZDViLi41MjFkZGJjYWY4ODUxOGEwMmNiODQ3
MWZmMTM2NzhkYjBiM2MzYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgK
KysrIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCkBAIC01MzcsNyArNTM3LDcgQEAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEhhc2hNYXA8VCwgVSwgViwgVywgWD4mIGEsIGNvbnN0IEhhc2hNYXA8
VCwgVSwgViwgVywgWD4mIGIKICAgICBjb25zdF9pdGVyYXRvciBub3RGb3VuZCA9IGIuZW5kKCk7
CiAgICAgZm9yIChjb25zdF9pdGVyYXRvciBpdCA9IGEuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CiAgICAgICAgIGNvbnN0X2l0ZXJhdG9yIGJQb3MgPSBiLmZpbmQoaXQtPmtleSk7Ci0gICAg
ICAgIGlmIChiUG9zID09IG5vdEZvdW5kIHx8IGl0LT52YWx1ZSAhPSBiUG9zLT52YWx1ZSkKKyAg
ICAgICAgaWYgKGJQb3MgPT0gbm90Rm91bmQgfHwgIShpdC0+dmFsdWUgPT0gYlBvcy0+dmFsdWUp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCAwNjQ1N2NkZDdkNTMyZDc1ZDFjZmE3MjgxMmNiMmFiYjdhYzllYjM2Li44ZDc1YzQwNWFj
NzFjMWU1Y2JmMmVhMjA4YzMzMDRiYjg2OGQ3NjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MjExMyw2ICsyMTEzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0Rpc3Bs
YXlTbGVlcERpc2FibGVyLmNwcAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRm
b3JtL0RyYWdJbWFnZS5jcHAKKyAgICBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAK
ICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNw
cAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzUyNmJhNThhZWFhOGY2NjRlNzdj
OTZmZTk4NWRmMWM5NmYwYzM4ZS4uNDZiNTY1M2UwNjUyOWVhNjg3NDEwODZhZWMwNjhmYTg1MzIx
ZTQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTAzMSw2ICsxMDMxLDcgQEAKIAkJMjYyNTVGMDMxODg3OEUxMTAwMDZFMUZE
IC8qIFVzZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjYyNTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2MjU1RjA0MTg4NzhFMTEw
MDA2RTFGRCAvKiBVc2VyQWdlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFj
Lm1tICovOyB9OwogCQkyNjJFQzQxQTFEMDc4RkI5MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2
MkVDNDE5MUQwNzhGM0QwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTI2MkVDNDFEMUQxMTBC
OTAwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJFQzQxQzFEMTEwQjFGMDBCQTc4RkMgLyog
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwICovOyB9OwogCQkyNjU1NDEzOTE0ODk4MTFDMDAwREZD
NUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJ
T1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
NjU1NDEzQTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQg
LyogS2V5RXZlbnRJT1MubW0gKi87IH07CiAJCTI2NTU0MTUyMTQ4OUIyMzMwMDBERkM1RCAvKiBD
dXJzb3JJT1MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi87IH07CkBAIC04
NTE1LDYgKzg1MTYsNyBAQAogCQkyNjI1NUYwMTE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBZ2VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFn
ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckFn
ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJFQzQxOTFEMDc4RjNE
MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50VHJhY2tpbmdS
ZWdpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzcxNDg5ODEx
QzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gS2V5RXZlbnRDb2Rlc0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLZXlFdmVudElPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXJzb3JJT1MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5NjQsNiArMjI5NjYsNyBAQAogCQkJCUE3
Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0Qw
MEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKIAkJCQkxQ0ExOUUxNTBEQzI1NUNB
MDA2NUE5OTQgLyogRXZlbnRMb29wLmggKi8sCisJCQkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZD
IC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCAqLywKIAkJCQkyNjJFQzQxOTFEMDc4RjNEMDBC
QTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRGRTlFNDBCNUNBNTM5
MDAzRTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovLAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIz
OENDNCAvKiBGaWxlQ2hvb3Nlci5oICovLApAQCAtMzA0NzAsNiArMzA0NzMsNyBAQAogCQkJCUE3
QkJFMjY2MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFFMkFCMjkwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTE1vZEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMDVDNzkwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRN
TE9iamVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYyRUM0MUQxRDExMEI5MDAw
QkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
MzA1Q0E0MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBODVCMUVBMEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxPTGlz
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdFOUMwQTFBODNFMzAwN0ZCOEM1
IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuY3BwCmluZGV4IDgyNmZhYjQ1MTY1MjBmZmIyYzA0YTc3ODY2ODQxYWMwNDEy
ZjBmNWEuLjlkNTVlNTVkNTY4MmYwNzY1MmE0M2I2ZWYwNDRmMzU1MmVkYWViZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtMjQzLDE2ICsyNDMsNiBAQCBib29sIEV2ZW50VGFy
Z2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiAhZXZlbnQu
ZGVmYXVsdFByZXZlbnRlZCgpOwogfQogCi1ib29sIEV2ZW50VGFyZ2V0OjpoYXNBY3RpdmVUb3Vj
aEV2ZW50TGlzdGVuZXJzKCkgY29uc3QKLXsKLSAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1lcyA9
IGV2ZW50TmFtZXMoKTsKLSAgICByZXR1cm4gaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMu
dG91Y2hzdGFydEV2ZW50KQotICAgICAgICB8fCBoYXNBY3RpdmVFdmVudExpc3RlbmVycyhuYW1l
cy50b3VjaG1vdmVFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFt
ZXMudG91Y2hlbmRFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFt
ZXMudG91Y2hjYW5jZWxFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMo
bmFtZXMudG91Y2hmb3JjZWNoYW5nZUV2ZW50KTsKLX0KLQogdm9pZCBFdmVudFRhcmdldDo6Zmly
ZUV2ZW50TGlzdGVuZXJzKEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXREYXRhKiBkLCBFdmVudExp
c3RlbmVyVmVjdG9yJiBlbnRyeSkKIHsKICAgICBSZWY8RXZlbnRUYXJnZXQ+IHByb3RlY3RlZFRo
aXMoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCBlM2RhYWZjNzk1Yjc3MzQ4
OTgwODNjZTBlMmFlYTliYWRhM2ZiOTNhLi4xNWY1YTY2YTRmMzcwMDA2NDFlMjJiYjgwZWE4N2Qy
NTBlZDQ5ZWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtMTY4LDggKzE2OCw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHZpc2l0SlNFdmVudExpc3RlbmVycyhKU0M6OlNsb3RWaXNpdG9y
Jik7CiAgICAgdm9pZCBpbnZhbGlkYXRlSlNFdmVudExpc3RlbmVycyhKU0M6OkpTT2JqZWN0Kik7
CiAKLSAgICBib29sIGhhc0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMoKSBjb25zdDsKLQogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgfkV2ZW50VGFyZ2V0KCk7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IDU3MjA4OGIxZDIyY2M4NTdiMTk5YThm
ZGVlYzZiMmFlNThjM2U0N2YuLmNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUxNDcz
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC0xMzMs
NyArMTMzLDggQEAgYm9vbCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJl
Z2lvbigpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICBp
ZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKSkgewogICAgICAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVu
dFRyYWNraW5nUmVnaW9ucygpOwotICAgICAgICAgICAgKnJlZ2lvbiA9IGV2ZW50VHJhY2tpbmdS
ZWdpb25zLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgICAgICAgICBmb3IgKGNvbnN0
IGF1dG8mIHN5bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICAgICAgcmVn
aW9uLT51bml0ZShzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlKTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNzMzNzlhMzZiMzVkMjViMjkwZjY3ZjFkZDU0OGYz
MjZiYzEwZDc5OS4uOGNkM2VjN2VkZjJlNmZmN2I4YzdlMDJhNzc4Y2YyZjhmYWY4MDEzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC0zNzIsOCArMzcyLDExIEBAIFJlZjxDbGllbnRSZWN0TGlzdD4g
UGFnZTo6bm9uRmFzdFNjcm9sbGFibGVSZWN0cygpCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVM
YXlvdXQoKTsKIAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKLSAgICBpZiAoU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKSkKLSAgICAgICAgcmVjdHMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVF
dmVudFRyYWNraW5nUmVnaW9ucygpLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVjdHMoKTsK
KyAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhp
cy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgeworICAgICAgICBjb25zdCBFdmVudFRyYWNraW5n
UmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJz
b2x1dGVFdmVudFRyYWNraW5nUmVnaW9ucygpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5
bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICByZWN0cy5hcHBlbmRWZWN0
b3Ioc3luY2hyb25vdXNFdmVudFJlZ2lvbi52YWx1ZS5yZWN0cygpKTsKKyAgICB9CiAKICAgICBW
ZWN0b3I8RmxvYXRRdWFkPiBxdWFkcyhyZWN0cy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMDRhZGY4YTM2ZmVl
ZDQ4MWU5MjM0OWQ1NDVlYTJmNTQyZWI3MTQzNS4uZDgzMDJlZGJmODAxNzg2MzM5N2U2MWFlYWNj
ODVlNzgwYzkzMzFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFw
aGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtMTQ0LDE4ICsxNDUsMTkgQEAg
RXZlbnRUcmFja2luZ1JlZ2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRU
cmFja2luZ1JlZ2lvbnNGb3JGcmFtZSgKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6IGlmIHdl
J3ZlIGFscmVhZHkgYWNjb3VudGVkIGZvciB0aGlzIHN1YmZyYW1lIGFzIGEgc2Nyb2xsYWJsZSBh
cmVhLCB3ZSBjYW4gYXZvaWQgcmVjdXJzaW5nIGludG8gaXQgaGVyZS4KKyAgICBFdmVudFRyYWNr
aW5nUmVnaW9ucyBldmVudFRyYWNraW5nUmVnaW9uczsKICAgICBmb3IgKEZyYW1lKiBzdWJmcmFt
ZSA9IGZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZy
YW1lLT50cmVlKCkubmV4dFNpYmxpbmcoKSkgewogICAgICAgICBGcmFtZVZpZXcqIHN1YmZyYW1l
VmlldyA9IHN1YmZyYW1lLT52aWV3KCk7CiAgICAgICAgIGlmICghc3ViZnJhbWVWaWV3KQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgUmVnaW9uIHN1YmZyYW1lUmVnaW9uID0gYWJz
b2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKCpzdWJmcmFtZSkuc3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbjsKKyAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgc3ViZnJhbWVSZWdp
b24gPSBhYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUoKnN1YmZyYW1lKTsKICAg
ICAgICAgLy8gTWFwIGZyb20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KICAg
ICAgICAgSW50UG9pbnQgb2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmlu
Z1ZpZXdDb250ZW50cyhJbnRQb2ludCgpKTsKIAogICAgICAgICAvLyBGSVhNRTogdGhpcyB0cmFu
c2xhdGlvbiBpZ25vcmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0aGUgZnJhbWUuCiAgICAg
ICAgIHN1YmZyYW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7Ci0gICAgICAg
IG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLnVuaXRlKHN1YmZyYW1lUmVnaW9uKTsKKyAgICAgICAg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMudW5pdGUoc3ViZnJhbWVSZWdpb24pOwogICAgIH0KIAogICAg
IERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgd2hlZWxIYW5kbGVyUmVnaW9uID0gZnJhbWUuZG9j
dW1lbnQoKS0+YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+
d2hlZWxFdmVudFRhcmdldHMoKSk7CkBAIC0xNjksNyArMTcxLDggQEAgRXZlbnRUcmFja2luZ1Jl
Z2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNG
b3JGcmFtZSgKICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZSh3aGVlbEhhbmRsZXJS
ZWdpb24uZmlyc3QpOwogCiAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgbm90IHRoZSBtYWluIGZy
YW1lLCB3ZSBjb3VsZCBjbGlwIHRoZSByZWdpb24gdG8gdGhlIGZyYW1lJ3MgYm91bmRzLgotICAg
IHJldHVybiBFdmVudFRyYWNraW5nUmVnaW9ucyB7IFJlZ2lvbigpLCBub25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbiB9OworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnVuaXRlU3luY2hyb25vdXNSZWdp
b24oZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKKyAg
ICByZXR1cm4gZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDRjYjM3MWUxZTZmMmRiYjhjYzk4NjcwYjI1ZTdm
ODczMTc2OGE1YjQuLjdjY2FmNWU0N2RlN2Q0NmJkMzcyNjU0ZDViNTViYjI1ODA0YzEwMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI0NSwxNSArMjQ1LDE3IEBA
IHZvaWQgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRl
eHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgICAgICBp
bmRlbnQgLT0gMjsKICAgICB9Ci0gICAgaWYgKCFtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX2V2ZW50VHJhY2tp
bmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5pc0VtcHR5
KCkpIHsKICAgICAgICAgKytpbmRlbnQ7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQp
OwogICAgICAgICB0cyA8PCAiKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiI7CiAg
ICAgICAgICsraW5kZW50OwotICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IG1fZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5yZWN0cygpKSB7Ci0gICAgICAgICAg
ICB0cyA8PCAiXG4iOwotICAgICAgICAgICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7Ci0gICAg
ICAgICAgICB0cyA8PCByZWN0OworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5bmNocm9ub3Vz
RXZlbnRSZWdpb24gOiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9ucykgeworICAgICAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBzeW5j
aHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlLnJlY3RzKCkpIHsKKyAgICAgICAgICAgICAgICB0cyA8
PCAiXG4iOworICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOworICAgICAg
ICAgICAgICAgIHRzIDw8IHJlY3Q7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
dHMgPDwgIilcbiI7CiAgICAgICAgIGluZGVudCAtPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzNzY4MGI5NzZhZDBkMGUxNGIy
MDZmNzcxYWFmOTQ4MGRkOGQxMTY2Li5kMjBjZGU4MjZmM2QyMWVmY2M1MTkyZDIyNDRmOTExNjE5
ZTM4ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
IAorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgi
CkBAIC02Niw3ICs2NywxMCBAQCBib29sIFNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVs
RXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudAogICAgICAgICBGbG9h
dFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwogICAgICAgICBwb3NpdGlv
bi5tb3ZlKGZyYW1lU2Nyb2xsaW5nTm9kZS52aWV3VG9Db250ZW50c09mZnNldChtX21haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKSk7CiAKLSAgICAgICAgYm9vbCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24gPSBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KHJvdW5k
ZWRJbnRQb2ludChwb3NpdGlvbikpID09IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAg
ICAgIGNvbnN0IEV2ZW50TmFtZXMmIG5hbWVzID0gZXZlbnROYW1lcygpOworICAgICAgICBJbnRQ
b2ludCByb3VuZGVkUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24pOworICAgICAg
ICBib29sIGlzU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IG1fZXZlbnRUcmFja2luZ1JlZ2lv
bnMudHJhY2tpbmdUeXBlRm9yUG9pbnQobmFtZXMud2hlZWxFdmVudCwgcm91bmRlZFBvc2l0aW9u
KSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzCisgICAgICAgICAgICB8fCBtX2V2ZW50VHJh
Y2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KG5hbWVzLm1vdXNld2hlZWxFdmVudCwg
cm91bmRlZFBvc2l0aW9uKSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwogICAgICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OnNob3Vs
ZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5OiB3aGVlbEV2ZW50IGF0ICIgPDwgd2hlZWxF
dmVudC5wb3NpdGlvbigpIDw8ICIgbWFwcGVkIHRvIGNvbnRlbnQgcG9pbnQgIiA8PCBwb3NpdGlv
biA8PCAiLCBpbiBub24tZmFzdCByZWdpb24gIiA8PCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b24pOwogCiAgICAgICAgIGlmIChpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pCkBAIC0yMzMs
MTEgKzIzNywxMSBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0
aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiAgICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9
IHBvc2l0aW9uOwogfQogCi1UcmFja2luZ1R5cGUgU2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2lu
Z1R5cGVGb3JQb2ludChJbnRQb2ludCBwKQorVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2
ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIElu
dFBvaW50IHApCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwogICAgIAotICAgIHJl
dHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KHApOworICAg
IHJldHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KGV2ZW50
TmFtZSwgcCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVz
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5k
ZXggMjYxN2JmYmFkMWRlMjdkMTQ5MzE0ZGYyZTJlZDM0OWFlZjM0ZGYwMi4uMTA5ZDEzYWI3ZWZl
MTE3MDMyYTliNWY1MzMxMzU3MjYzMDQ1OGYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKSB7IH0KICNlbmRp
ZgogCi0gICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9y
UG9pbnQoSW50UG9pbnQpOworICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBldmVudFRy
YWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBJbnRQb2lu
dCk7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVl
bEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWNi
OTNiYTkzYzVhNzg1MDI1OGZjOWNkYzgzZjg4Nzk2OWQ1MzM2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwCkBAIC0wLDAg
KzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2ZW50VHJhY2tpbmdSZWdpb25zLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHJhY2tpbmdUeXBlIEV2ZW50VHJhY2tpbmdSZWdpb25z
Ojp0cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSwgY29uc3QgSW50
UG9pbnQmIHBvaW50KQoreworICAgIGF1dG8gc3luY2hyb25vdXNSZWdpb25JdGVyYXRvciA9IGV2
ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5maW5kKGV2ZW50TmFtZSk7Cisg
ICAgaWYgKHN5bmNocm9ub3VzUmVnaW9uSXRlcmF0b3IgIT0gZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zLmVuZCgpKSB7CisgICAgICAgIGlmIChzeW5jaHJvbm91c1JlZ2lv
bkl0ZXJhdG9yLT52YWx1ZS5jb250YWlucyhwb2ludCkpCisgICAgICAgICAgICByZXR1cm4gVHJh
Y2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICB9CisKKyAgICBpZiAoYXN5bmNocm9ub3VzRGlz
cGF0Y2hSZWdpb24uY29udGFpbnMocG9pbnQpKQorICAgICAgICByZXR1cm4gVHJhY2tpbmdUeXBl
OjpBc3luY2hyb25vdXM7CisgICAgcmV0dXJuIFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7Cit9
CisKK2Jvb2wgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJl
dHVybiBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCkKKyAgICAgICAgJiYgZXZl
bnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zLmlzRW1wdHkoKTsKK30KKwordm9p
ZCBFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhbnNsYXRlKEludFNpemUgb2Zmc2V0KQoreworICAg
IGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uLnRyYW5zbGF0ZShvZmZzZXQpOworICAgIGZvciAo
YXV0byYgc2xvdCA6IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykKKyAg
ICAgICAgc2xvdC52YWx1ZS50cmFuc2xhdGUob2Zmc2V0KTsKK30KKwordm9pZCBFdmVudFRyYWNr
aW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbihjb25zdCBTdHJpbmcmIGV2ZW50TmFt
ZSwgY29uc3QgUmVnaW9uJiByZWdpb24pCit7CisgICAgaWYgKHJlZ2lvbi5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gYWRkUmVzdWx0ID0gZXZlbnRTcGVjaWZpY1N5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb25zLmFkZChldmVudE5hbWUsIHJlZ2lvbik7CisgICAgaWYgKCFh
ZGRSZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS51
bml0ZShyZWdpb24pOworfQorCit2b2lkIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp1bml0ZShjb25z
dCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCit7CisgICAgYXN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24udW5pdGUoZXZlbnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24pOworICAgIGZvciAoYXV0byYgc2xvdCA6IGV2ZW50VHJhY2tp
bmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykKKyAgICAg
ICAgdW5pdGVTeW5jaHJvbm91c1JlZ2lvbihzbG90LmtleSwgc2xvdC52YWx1ZSk7Cit9CisKK2Jv
b2wgb3BlcmF0b3I9PShjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYSwgY29uc3QgRXZlbnRU
cmFja2luZ1JlZ2lvbnMmIGIpCit7CisgICAgcmV0dXJuIGEuYXN5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24gPT0gYi5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbgorICAgICAgICAmJiBhLmV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9PSBiLmV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKaW5kZXggMWYw
NTU2NDAxNDQzOGNhMzUxODVlYTU3YjAwNjMxMDgzNTllNzNlMS4uZDZmNWJiMThjN2M4MGQ4YzBj
ZjczYTgzNzAwZWQ5ZDY2YjVmZGM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9F
dmVudFRyYWNraW5nUmVnaW9ucy5oCkBAIC0yNiw2ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIlJlZ2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDMyICs0MiwxOSBAQCBzdHJ1Y3QgRXZlbnRU
cmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFJlZ2lvbiBmb3Igd2hpY2ggZXZlbnRzIGNhbiBiZSBk
aXNwYXRjaGVkIHdpdGhvdXQgYmxvY2tpbmcgc2Nyb2xsaW5nLgogICAgIFJlZ2lvbiBhc3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbjsKIAotICAgIC8vIFJlZ2lvbiBmb3Igd2hpY2ggZXZlbnRzIG11
c3QgYmUgc2VudCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBiZWhhdmlvci4KLSAgICBS
ZWdpb24gc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsKKyAgICAvLyBSZWdpb25zIGZvciB3aGlj
aCBldmVudHMgbXVzdCBiZSBzZW50IGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBkZWZhdWx0IGJlaGF2
aW9yLgorICAgIC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50IE5hbWUgd2l0aCBhbiBhY3RpdmUgaGFu
ZGxlci4KKyAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmljU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbnM7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAotICAgIFRy
YWNraW5nVHlwZSB0cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBJbnRQb2ludCYpOwotfTsKLQot
aW5saW5lIGJvb2wgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkoKSBjb25zdAotewotICAg
IHJldHVybiBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCkgJiYgc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbi5pc0VtcHR5KCk7Ci19CisgICAgdm9pZCB0cmFuc2xhdGUoSW50U2l6
ZSk7CisgICAgdm9pZCB1bml0ZVN5bmNocm9ub3VzUmVnaW9uKGNvbnN0IFN0cmluZyYgZXZlbnRO
YW1lLCBjb25zdCBSZWdpb24mKTsKKyAgICB2b2lkIHVuaXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdS
ZWdpb25zJik7CiAKLWlubGluZSBUcmFja2luZ1R5cGUgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRy
YWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKLXsKLSAgICBpZiAoc3lu
Y2hyb25vdXNEaXNwYXRjaFJlZ2lvbi5jb250YWlucyhwb2ludCkpCi0gICAgICAgIHJldHVybiBU
cmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwotICAgIGlmIChhc3luY2hyb25vdXNEaXNwYXRjaFJl
Z2lvbi5jb250YWlucyhwb2ludCkpCi0gICAgICAgIHJldHVybiBUcmFja2luZ1R5cGU6OkFzeW5j
aHJvbm91czsKLSAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKLX0KKyAgICBU
cmFja2luZ1R5cGUgdHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUs
IGNvbnN0IEludFBvaW50Jik7Cit9OwogCi1pbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2
ZW50VHJhY2tpbmdSZWdpb25zJiBhLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYikKLXsK
LSAgICByZXR1cm4gYS5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9PSBiLmFzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uCi0gICAgICAgICYmIGEuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9
PSBiLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247Ci19Citib29sIG9wZXJhdG9yPT0oY29uc3Qg
RXZlbnRUcmFja2luZ1JlZ2lvbnMmLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYpOwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRy
YW5zYWN0aW9uLmNwcAppbmRleCAzNTc4NzI4MzVlN2EyNTY5YmY5OTg1YWI3Y2Y0NTk2ODNmZmJh
Y2JiLi40MTAyYmQ1OWIxZmFlYmQyNGQ2ODA4ZjE5MmJjMDQ5ZTFkNDBjMTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKQEAgLTQ5NywxMCArNDk3
LDEyIEBAIHN0YXRpYyB2b2lkIGR1bXAoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNjcm9sbGluZ1N0
YXRlRnJhbWVTY3JvbGxpbmdOb2RlJiBub2RlLCBiCiAgICAgICAgIHsKICAgICAgICAgICAgIFRl
eHRTdHJlYW06Okdyb3VwU2NvcGUgZ3JvdXAodHMpOwogICAgICAgICAgICAgdHMgPDwgInN5bmNo
cm9ub3VzLWV2ZW50LXRyYWNraW5nLXJlZ2lvbiI7Ci0gICAgICAgICAgICBmb3IgKGF1dG8gcmVj
dCA6IG5vZGUuZXZlbnRUcmFja2luZ1JlZ2lvbnMoKS5zeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9u
LnJlY3RzKCkpIHsKLSAgICAgICAgICAgICAgICB0cyA8PCAiXG4iOwotICAgICAgICAgICAgICAg
IHRzLndyaXRlSW5kZW50KCk7Ci0gICAgICAgICAgICAgICAgdHMgPDwgcmVjdDsKKyAgICAgICAg
ICAgIGZvciAoY29uc3QgYXV0byYgc3luY2hyb25vdXNFdmVudFJlZ2lvbiA6IG5vZGUuZXZlbnRU
cmFja2luZ1JlZ2lvbnMoKS5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMp
IHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8gcmVjdCA6IHN5bmNocm9ub3VzRXZlbnRSZWdp
b24udmFsdWUucmVjdHMoKSkgeworICAgICAgICAgICAgICAgICAgICB0cyA8PCAiXG4iOworICAg
ICAgICAgICAgICAgICAgICB0cy53cml0ZUluZGVudCgpOworICAgICAgICAgICAgICAgICAgICB0
cyA8PCByZWN0OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKaW5kZXggOTI0NmVlN2RkOTI3NmVlY2EzYjAxOTUzYWNhOWUwMDFlZTNjMTI4OC4uM2U1MmM5
ZmI2OTkwZTgyYzZjMGFkMTc2MzY3NzAwM2UwYWY2NDNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgQWZmaW5lVHJhbgogdm9pZCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdS
ZWdpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXZlbnRUcmFj
a2luZ1JlZ2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQogewogICAgIGVuY29kZXIgPDwgZXZl
bnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247Ci0gICAgZW5jb2Rl
ciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5zeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOworICAg
IGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb25zOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1Jl
Z2lvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNraW5nUmVn
aW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCkBAIC0xMTksMTEgKzExOSwxMSBAQCBib29sIEFy
Z3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBFdmVudAogICAgIFJlZ2lvbiBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFJlZ2lvbiBzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9u
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbikpCisg
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0
Y2hSZWdpb25zOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGV2ZW50VHJh
Y2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID0gV1RGTW92ZShhc3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbik7Ci0gICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7Cisg
ICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb25zID0gV1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMp
OwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LmNwcAppbmRleCBhYzg0MGRkNWU4NTJlMTdjZGFhYjBjOWJjZWI3Yjg0NjY3OTI1ZWU0
Li5hYzk4YzY0ODA5NjkxMWEzMDNlYTQ5ZTQ3MGM3YWE1NjMyZDhjNTEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTE0OSw5ICsxNDksOSBAQCBib29s
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JgogICAgIHJldHVybiByZXN1bHQgPT0gU2Nyb2xsaW5nVHJlZTo6
RGlkSGFuZGxlRXZlbnQ7IC8vIEZJWE1FOiBoYW5kbGUgb3RoZXIgdmFsdWVzLgogfQogCi1UcmFj
a2luZ1R5cGUgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6ZXZlbnRUcmFja2luZ1R5
cGVGb3JQb2ludChJbnRQb2ludCBwKSBjb25zdAorVHJhY2tpbmdUeXBlIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50IHApIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fc2Ny
b2xsaW5nVHJlZS0+ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChwKTsKKyAgICByZXR1cm4gbV9z
Y3JvbGxpbmdUcmVlLT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGV2ZW50TmFtZSwgcCk7CiB9
CiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6dmlld3BvcnRDaGFuZ2Vk
VmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0
UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBzY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggMGRkYjUwNjkxMmY2MTdjMzA2NDViOTlkMTAwOTY4
MTY5NDdiYTg3ZC4uY2Y1MGRkMDYyNzkxMzM0YTI3MjQ4NGU0NzEwYTRjOTY5ODQxMzE4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9s
bGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU2LDcgKzU2LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlv
biwgV2ViQ29yZTo6U2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAgICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiAKLSAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgZXZlbnRU
cmFja2luZ1R5cGVGb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CisgICAgV2ViQ29y
ZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIAogICAgIC8vIENhbGxl
ZCBleHRlcm5hbGx5IHdoZW4gbmF0aXZlIHZpZXdzIG1vdmUgYXJvdW5kLgogICAgIHZvaWQgdmll
d3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNj
YWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDk3
Y2ZjNWUxZWU2NzRkZDk0NDI2NDk4OGYyZjk4MzE5YTcwMDEzOS4uZDQ0NzkyN2U4MTVjMDhmYzRl
YjJkNTE2YTU3YjY2ODFhMTM1MDgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTE5MzYsMjQgKzE5MzYsNzMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZp
bmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNv
bnMKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKLVRyYWNraW5nVHlwZSBXZWJQYWdlUHJv
eHk6OnRvdWNoRXZlbnRUcmFja2luZ1R5cGUoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hTdGFy
dEV2ZW50KSBjb25zdAorc3RhdGljIFRyYWNraW5nVHlwZSBtZXJnZVRyYWNraW5nVHlwZXMoVHJh
Y2tpbmdUeXBlIGEsIFRyYWNraW5nVHlwZSBiKQoreworICAgIGlmIChzdGF0aWNfY2FzdDx1aW50
cHRyX3Q+KGIpID4gc3RhdGljX2Nhc3Q8dWludHB0cl90PihhKSkKKyAgICAgICAgcmV0dXJuIGI7
CisgICAgcmV0dXJuIGE7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVUb3VjaEV2ZW50
VHJhY2tpbmcoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hTdGFydEV2ZW50KQogewogI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgVHJhY2tpbmdUeXBlIHRyYWNraW5nVHlwZSA9IFRy
YWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgY29uc3QgRXZlbnROYW1lcyYgbmFtZXMgPSBl
dmVudE5hbWVzKCk7CiAgICAgZm9yIChhdXRvJiB0b3VjaFBvaW50IDogdG91Y2hTdGFydEV2ZW50
LnRvdWNoUG9pbnRzKCkpIHsKLSAgICAgICAgVHJhY2tpbmdUeXBlIHRvdWNoUG9pbnRUcmFja2lu
Z1R5cGUgPSBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHktPmV2ZW50VHJhY2tpbmdUeXBlRm9y
UG9pbnQodG91Y2hQb2ludC5sb2NhdGlvbigpKTsKLSAgICAgICAgaWYgKHRvdWNoUG9pbnRUcmFj
a2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91cykKLSAgICAgICAgICAgIHJldHVy
biBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOworICAgICAgICBJbnRQb2ludCBsb2NhdGlvbiA9
IHRvdWNoUG9pbnQubG9jYXRpb24oKTsKKyAgICAgICAgYXV0byB1cGRhdGVUcmFja2luZ1R5cGUg
PSBbdGhpcywgbG9jYXRpb25dKFRyYWNraW5nVHlwZSYgdHJhY2tpbmdUeXBlLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50TmFtZSkgeworICAgICAgICAgICAgaWYgKHRyYWNraW5nVHlwZSA9PSBU
cmFja2luZ1R5cGU6OlN5bmNocm9ub3VzKQorICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBpZiAodG91Y2hQb2ludFRyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6OkFzeW5jaHJv
bm91cykKLSAgICAgICAgICAgIHRyYWNraW5nVHlwZSA9IHRvdWNoUG9pbnRUcmFja2luZ1R5cGU7
Ci0gICAgfQorICAgICAgICAgICAgVHJhY2tpbmdUeXBlIHRyYWNraW5nVHlwZUZvckxvY2F0aW9u
ID0gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50
KGV2ZW50TmFtZSwgbG9jYXRpb24pOwogCi0gICAgcmV0dXJuIHRyYWNraW5nVHlwZTsKKyAgICAg
ICAgICAgIHRyYWNraW5nVHlwZSA9IG1lcmdlVHJhY2tpbmdUeXBlcyh0cmFja2luZ1R5cGUsIHRy
YWNraW5nVHlwZUZvckxvY2F0aW9uKTsKKyAgICAgICAgfTsKKyAgICAgICAgdXBkYXRlVHJhY2tp
bmdUeXBlKG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoRm9yY2VDaGFuZ2VkVHJhY2tpbmcsIG5h
bWVzLnRvdWNoZm9yY2VjaGFuZ2VFdmVudCk7CisgICAgICAgIHVwZGF0ZVRyYWNraW5nVHlwZSht
X3RvdWNoRXZlbnRUcmFja2luZy50b3VjaFN0YXJ0VHJhY2tpbmcsIG5hbWVzLnRvdWNoc3RhcnRF
dmVudCk7CisgICAgICAgIHVwZGF0ZVRyYWNraW5nVHlwZShtX3RvdWNoRXZlbnRUcmFja2luZy50
b3VjaE1vdmVUcmFja2luZywgbmFtZXMudG91Y2htb3ZlRXZlbnQpOworICAgICAgICB1cGRhdGVU
cmFja2luZ1R5cGUobV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hFbmRUcmFja2luZywgbmFtZXMu
dG91Y2hlbmRFdmVudCk7CisgICAgfQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odG91Y2hTdGFy
dEV2ZW50KTsKKyAgICBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEZvcmNlQ2hhbmdlZFRyYWNr
aW5nID0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICBtX3RvdWNoRXZlbnRUcmFja2lu
Zy50b3VjaFN0YXJ0VHJhY2tpbmcgPSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOworICAgIG1f
dG91Y2hFdmVudFRyYWNraW5nLnRvdWNoTW92ZVRyYWNraW5nID0gVHJhY2tpbmdUeXBlOjpTeW5j
aHJvbm91czsKKyAgICBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEVuZFRyYWNraW5nID0gVHJh
Y2tpbmdUeXBlOjpTeW5jaHJvbm91czsKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQotICAgIHJldHVybiBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOworfQorCitUcmFja2luZ1R5
cGUgV2ViUGFnZVByb3h5Ojp0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGNvbnN0IFdlYlRvdWNoRXZl
bnQmIHRvdWNoU3RhcnRFdmVudCkgY29uc3QKK3sKKyAgICAvLyBXZSBzZW5kIGFsbCBldmVudHMg
aWYgYW55IG9mIHRoZW0gaXMgbmVlZGVkLCB3ZSBqdXN0IGRvIGl0IGFzeW5jaHJvbm91c2x5Lgor
ICAgIC8vCisgICAgLy8gVG91Y2ggZXZlbnRzIGRlZmluZSBhIHNlcXVlbmNlIHdpdGggc3Ryb25n
IGRlcGVuZGVuY2llcy4gRm9yIGV4YW1wbGUsIHdlIGNhbiBleHBlY3QKKyAgICAvLyBhIFRvdWNo
TW92ZSB0byBvbmx5IGFwcGVhciBhZnRlciBhIFRvdWNoU3RhcnQsIGFuZCB0aGUgaWRzIG9mIHRo
ZSB0b3VjaCBwb2ludHMgaXMgY29uc2lzdGVudCBiZXR3ZWVuCisgICAgLy8gdGhlIHR3by4KKyAg
ICAvLworICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gV2ViQ29yZSB0byBiZSBhYmxlIHRvIHNldHVw
IGl0cyBzdGF0ZSBjb3JyZWN0bHkgYWZ0ZXIgc29tZQorICAgIC8vIGV2ZW50cyB3ZXJlIGRpc21p
c3NlZC4gV2Ugc2VuZCBldmVyeXRoaW5nLCBXZWJDb3JlIHVwZGF0ZXMgaXRzIGludGVybmFsIHN0
YXRlIGFuZCBkaXNwYXRjaCB3aGF0IGlzIG5lZWRlZC4KKyAgICBUcmFja2luZ1R5cGUgZ2xvYmFs
VHJhY2tpbmdUeXBlID0gbV90b3VjaEV2ZW50VHJhY2tpbmcuaXNUcmFja2luZ0FueXRoaW5nKCkg
PyBUcmFja2luZ1R5cGU6OkFzeW5jaHJvbm91cyA6IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7
CisKKyAgICBnbG9iYWxUcmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMoZ2xvYmFsVHJh
Y2tpbmdUeXBlLCBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5n
KTsKKyAgICBmb3IgKGF1dG8mIHRvdWNoUG9pbnQgOiB0b3VjaFN0YXJ0RXZlbnQudG91Y2hQb2lu
dHMoKSkgeworICAgICAgICBzd2l0Y2ggKHRvdWNoUG9pbnQuc3RhdGUoKSkgeworICAgICAgICBj
YXNlIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZDoKKyAgICAgICAgICAgIGds
b2JhbFRyYWNraW5nVHlwZSA9IG1lcmdlVHJhY2tpbmdUeXBlcyhnbG9iYWxUcmFja2luZ1R5cGUs
IG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoRW5kVHJhY2tpbmcpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQ6Cisg
ICAgICAgICAgICBnbG9iYWxUcmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMoZ2xvYmFs
VHJhY2tpbmdUeXBlLCBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaFN0YXJ0VHJhY2tpbmcpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaE1vdmVkOgorICAgICAgICBjYXNlIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0
aW9uYXJ5OgorICAgICAgICAgICAgZ2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5
cGVzKGdsb2JhbFRyYWNraW5nVHlwZSwgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hNb3ZlVHJh
Y2tpbmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3Vj
aFBvaW50OjpUb3VjaENhbmNlbGxlZDoKKyAgICAgICAgICAgIGdsb2JhbFRyYWNraW5nVHlwZSA9
IG1lcmdlVHJhY2tpbmdUeXBlcyhnbG9iYWxUcmFja2luZ1R5cGUsIFRyYWNraW5nVHlwZTo6QXN5
bmNocm9ub3VzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIGdsb2JhbFRyYWNraW5nVHlwZTsKIH0KIAogI2VuZGlmCkBAIC0xOTc5LDE0ICsyMDI4
LDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseShO
YXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGV2
ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6VG91Y2hTdGFydCkgewotICAgICAgICBtX3RvdWNoRXZl
bnRzVHJhY2tpbmdUeXBlID0gdG91Y2hFdmVudFRyYWNraW5nVHlwZShldmVudCk7CisgICAgICAg
IHVwZGF0ZVRvdWNoRXZlbnRUcmFja2luZyhldmVudCk7CiAgICAgICAgIG1fbGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQgPSBkb3duY2FzdDxSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5PigqZHJhd2luZ0FyZWEoKSkubGFzdENvbW1pdHRlZExheWVyVHJlZVRyYW5z
YWN0aW9uSUQoKTsKICAgICB9CiAKLSAgICBpZiAobV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9
PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQorICAgIFRyYWNraW5nVHlwZSB0b3VjaEV2ZW50
c1RyYWNraW5nVHlwZSA9IHRvdWNoRXZlbnRUcmFja2luZ1R5cGUoZXZlbnQpOworICAgIGlmICh0
b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAobV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFj
a2luZ1R5cGU6OkFzeW5jaHJvbm91cykgeworICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlw
ZSA9PSBUcmFja2luZ1R5cGU6OkFzeW5jaHJvbm91cykgewogICAgICAgICAvLyBXZSBjYW4gZW5k
IHVwIGhlcmUgaWYgYSBuYXRpdmUgZ2VzdHVyZSBoYXMgbm90IHN0YXJ0ZWQgYnV0IHRoZSBldmVu
dCBoYW5kbGVycyBhcmUgcGFzc2l2ZS4KICAgICAgICAgLy8KICAgICAgICAgLy8gVGhlIGNsaWVu
dCBvZiBXZWJQYWdlUHJveHkgYXNrcyB0aGUgZXZlbnQgdG8gYmUgc2VudCBzeW5jaHJvbm91c2x5
IHNpbmNlIHRoZSB0b3VjaCBldmVudApAQCAtMjAwNyw3ICsyMDU3LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQm
IGV2ZW50KQogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKIAog
ICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCi0gICAgICAgIG1fdG91
Y2hFdmVudHNUcmFja2luZ1R5cGUgPSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAg
ICBtX3RvdWNoRXZlbnRUcmFja2luZy5yZXNldCgpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQm
IGV2ZW50KQpAQCAtMjAxNSwxMyArMjA2NSwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
VG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZQog
ICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV90b3VjaEV2
ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQorICAgIFRyYWNr
aW5nVHlwZSB0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IHRvdWNoRXZlbnRUcmFja2luZ1R5cGUo
ZXZlbnQpOworICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6
Ok5vdFRyYWNraW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudChtX3BhZ2VJRCwgZXZlbnQpLCAwKTsK
IAogICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCi0gICAgICAgIG1f
dG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAg
ICAgICBtX3RvdWNoRXZlbnRUcmFja2luZy5yZXNldCgpOwogfQogCiAjZWxpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQpAQCAtMjAzMSw5ICsyMDgyLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRs
ZVRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQpCi0g
ICAgICAgIG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSB0b3VjaEV2ZW50VHJhY2tpbmdUeXBl
KGV2ZW50KTsKKyAgICAgICAgdXBkYXRlVG91Y2hFdmVudFRyYWNraW5nKGV2ZW50KTsKIAotICAg
IGlmIChtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tp
bmcpCisgICAgaWYgKHRvdWNoRXZlbnRUcmFja2luZ1R5cGUoZXZlbnQpID09IFRyYWNraW5nVHlw
ZTo6Tm90VHJhY2tpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIHRoZSBwYWdlIGlz
IHN1c3BlbmRlZCwgd2hpY2ggc2hvdWxkIGJlIHRoZSBjYXNlIGR1cmluZyBwYW5uaW5nLCBwaW5j
aGluZwpAQCAtMjA1Niw3ICsyMTA3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNo
RXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgfQogCiAgICAgaWYg
KGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkKLSAgICAgICAgbV90b3VjaEV2ZW50
c1RyYWNraW5nVHlwZSA9IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgICAgIG1fdG91
Y2hFdmVudFRyYWNraW5nLnJlc2V0KCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5U
UykKIApAQCAtNTA3NSw3ICs1MTI2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUo
UmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRlUmVhc29uKQogICAgIH0KIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCi0gICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IFRyYWNraW5nVHlw
ZTo6Tm90VHJhY2tpbmc7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcucmVzZXQoKTsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggNjQzNjI0MmQ2YTZhZmFjYmI3MzI4YzUzN2I1MjMwYzgwMzYy
ZTUxYS4uMjNhODUzM2Y4ZDE5OGUyNzhhMmI3ZDAwZWQzM2I1ZjU5Y2ZiNzgxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQ2NCw2ICsxNDY0LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNlbmRXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgdm9pZCB1cGRhdGVUb3VjaEV2ZW50VHJhY2tp
bmcoY29uc3QgV2ViVG91Y2hFdmVudCYpOwogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSB0b3Vj
aEV2ZW50VHJhY2tpbmdUeXBlKGNvbnN0IFdlYlRvdWNoRXZlbnQmKSBjb25zdDsKICNlbmRpZgog
CkBAIC0xNjkxLDcgKzE2OTIsMjkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmF0
aXZlV2ViTW91c2VFdmVudD4gbV9jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudDsKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIG1fdG91
Y2hFdmVudHNUcmFja2luZ1R5cGUgeyBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5n
IH07CisgICAgc3RydWN0IFRvdWNoRXZlbnRUcmFja2luZyB7CisgICAgICAgIFdlYkNvcmU6OlRy
YWNraW5nVHlwZSB0b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5nIHsgV2ViQ29yZTo6VHJhY2tpbmdU
eXBlOjpOb3RUcmFja2luZyB9OworICAgICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgdG91Y2hT
dGFydFRyYWNraW5nIHsgV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZyB9OworICAg
ICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgdG91Y2hNb3ZlVHJhY2tpbmcgeyBXZWJDb3JlOjpU
cmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nIH07CisgICAgICAgIFdlYkNvcmU6OlRyYWNraW5nVHlw
ZSB0b3VjaEVuZFRyYWNraW5nIHsgV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZyB9
OworCisgICAgICAgIGJvb2wgaXNUcmFja2luZ0FueXRoaW5nKCkgY29uc3QKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIHRvdWNoRm9yY2VDaGFuZ2VkVHJhY2tpbmcgIT0gV2ViQ29yZTo6
VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZworICAgICAgICAgICAgICAgIHx8IHRvdWNoU3RhcnRU
cmFja2luZyAhPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nCisgICAgICAgICAg
ICAgICAgfHwgdG91Y2hNb3ZlVHJhY2tpbmcgIT0gV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RU
cmFja2luZworICAgICAgICAgICAgICAgIHx8IHRvdWNoRW5kVHJhY2tpbmcgIT0gV2ViQ29yZTo6
VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcmVz
ZXQoKQorICAgICAgICB7CisgICAgICAgICAgICB0b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5nID0g
V2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICAgICAgICAgIHRvdWNoU3Rh
cnRUcmFja2luZyA9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgICAg
ICAgICB0b3VjaE1vdmVUcmFja2luZyA9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tp
bmc7CisgICAgICAgICAgICB0b3VjaEVuZFRyYWNraW5nID0gV2ViQ29yZTo6VHJhY2tpbmdUeXBl
OjpOb3RUcmFja2luZzsKKyAgICAgICAgfQorICAgIH07CisgICAgVG91Y2hFdmVudFRyYWNraW5n
IG1fdG91Y2hFdmVudFRyYWNraW5nOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykg
JiYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIERlcXVlPFF1ZXVlZFRvdWNoRXZlbnRz
PiBtX3RvdWNoRXZlbnRRdWV1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMzE5ZjU0ZjIyNzg0Y2JiYzI2ZTRjZWVhYTFj
ZGQ5MmQ2Nzc5OWFkLi4wYzY5Nzg1YjRmNWNjZjM2ZDg5YmRiNTkyNDZhODFiNzkzMTZmZDk1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTYtMDYtMTUgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5q
YW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFNwZWNpYWxpemUgc3luY2hyb25vdXMgZXZlbnQg
dHJhY2tpbmcgcGVyIGV2ZW50IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1ODgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1s
aXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2
ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlz
dGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUtbGlzdGVuZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxp
c3RlbmVyLWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5k
LWxpc3RlbmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXIt
aW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFz
c2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLWVu
ZC1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUt
dG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUt
dG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFy
dC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbDogQWRkZWQuCisK
IDIwMTYtMDYtMTUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBE
ZWNvdXBsZSB0aGUgcGVyY2VudCBoZWlnaHQgYW5kIHBvc2l0aW9uZWQgZGVzY2VuZGFudHMgbWFw
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgt
YWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3NpdmUtbGlzdGVuZXItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MmY5ZjM4ZDI1MmM2ZWE2OGQ5MjNmNzkyOGI5NzUzZTQ4
NmQzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3NpdmUt
bGlzdGVuZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK0NhbmNlbGxlZCBkcmFnIG9u
IFRhcmdldDEgKGdyZWVuKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNo
c3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgNTAsIDUwCitMaXN0ZW5lciBkb2N1bWVu
dCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUw
LCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92
ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCAxMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQg
cmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdl
dDEgYXQgMTAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVu
dCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MQorTGlzdGVuZXIgZG9jdW1lbnQgcmVj
ZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MQor
RG9uZQorQ2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKQorCitMaXN0ZW5lciB0YXJnZXQx
IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMTUw
LCA1MAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MiBhdCAxNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNh
bmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDIwMCwg
MTAwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92
ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAyMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MSBy
ZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQy
CitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQyCitEb25lCitDYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQzIChi
bHVlKQorCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0
dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBl
dmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3Rl
bmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRh
cmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2
ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlzdGVu
ZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5n
IGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2Fu
Y2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAx
MDAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxh
YmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5lciBkb2N1
bWVudCByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQzCitEb25lCitVc2VsZXNzIENsaWNrIGluIHRoZSBkb2N1bWVudCwgc2hvdWxkIGJlIHBh
c3NpdmUKKworTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJn
ZXR0aW5nIGF0IDMwMCwgMzAwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3Vj
aGVuZCB0YXJnZXR0aW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBh
c3NpdmUtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90
YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0
ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzZDNmODMzMzRjOWVjZGU3NmU2ZjZjMmI0ZWE0YzIwMDll
ZmQ4ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3NpdmUt
bGlzdGVuZXIuaHRtbApAQCAtMCwwICsxLDEzOSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0
Q2xpY2tVSVNjcmlwdCh4LCB5KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAg
ICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5zaW5n
bGVUYXBBdFBvaW50KCR7eH0sICR7eX0sIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBn
ZXREcmFnVUlTY3JpcHQoc3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFkpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgdWlDb250cm9sbGVyLmRyYWdGcm9tUG9pbnRUb1BvaW50KCR7c3RhcnRYfSwgJHtzdGFy
dFl9LCAke2VuZFh9LCAke2VuZFl9LCAwLjE1LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxFRCE6IE5vIG1v
dXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQudHlwZTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92
ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91
dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50
ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxl
YXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vk
b3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vt
b3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1
cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywg
ZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZmFp
bCk7CisKKyAgICAgICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGdldExvZ0V2ZW50KGxpc3RlbmVyLCBzaG91bGRQcmV2ZW50RGVmYXVsdCA9IGZhbHNlKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnTGlzdGVuZXIgJyArIGxpc3RlbmVyICsgJyByZWNlaXZl
ZCcgKyAoZXZlbnQuY2FuY2VsYWJsZSA/ICcgY2FuY2VsYWJsZScgOiAnJykgKyAnIGV2ZW50ICcg
KyBldmVudC50eXBlICsgJyB0YXJnZXR0aW5nICcgKyBldmVudC50YXJnZXQuaWQ7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChldmVudC50b3VjaGVzWzBdICYmIGV2ZW50LnRvdWNoZXNbMF0uY2xp
ZW50WCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICcgYXQgJyArIGV2ZW50
LnRvdWNoZXNbMF0uY2xpZW50WCArICcsICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICAnPGJy
Pic7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZFByZXZlbnREZWZhdWx0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6
IHRydWUgfSk7CisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1v
dmUnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAg
ICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50
KCJkb2N1bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoImRvY3VtZW50Iiks
IHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworCisgICAgICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdldDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEu
YWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsg
J3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVy
KCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIsIHRydWUpKTsKKyAgICAgICAgICAg
IHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0
MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZl
JzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIGxldCB0YXJnZXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2V2ZW50VGFyZ2V0MycpOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3Rl
bmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRy
dWUgfSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScs
IGdldExvZ0V2ZW50KCJ0YXJnZXQzIiwgdHJ1ZSkpOworICAgICAgICAgICAgdGFyZ2V0My5hZGRF
dmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3Np
dmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3Vj
aGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOwor
CisgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChn
cmVlbik8L2gxPiI7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdV
SVNjcmlwdCg1MCwgNTAsIDEwMCwgMTAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5D
YW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQyIChyZWQpPC9oMT4iOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDE1MCwgNTAsIDIwMCwgMTAwKSwg
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7
CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRh
cmdldDMgKGJsdWUpPC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGdldERyYWdVSVNjcmlwdCgyNTAsIDUwLCAzMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlVzZWxlc3MgQ2xpY2sgaW4gdGhlIGRvY3Vt
ZW50LCBzaG91bGQgYmUgcGFzc2l2ZTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0Q2xpY2tVSVNjcmlwdCgzMDAsIDMwMCksIGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdvdXRwdXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAg
ICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAgICAgIGJvZHkgewor
ICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEs
ICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRU
YXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9
CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDog
MTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgYm9keSB7CisgICAg
ICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAgICAgPGRpdiBpZD1ldmVudFRh
cmdldDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mz4KKyAgICAgICAgICAgIDwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPW91dHB1dD4KKyAg
ICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KKyAgICA8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBh
c3NpdmUtbGlzdGVuZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2
ZS1saXN0ZW5lci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcyZjlmMzhkMjUyYzZlYTY4ZDky
M2Y3OTI4Yjk3NTNlNDg2ZDNlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13
aXRoLXBhc3NpdmUtbGlzdGVuZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK0NhbmNl
bGxlZCBkcmFnIG9uIFRhcmdldDEgKGdyZWVuKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVk
IGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgNTAsIDUwCitMaXN0
ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQxIGF0IDUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2
ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCAxMDAsIDEwMAorTGlzdGVu
ZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGlu
ZyBldmVudFRhcmdldDEgYXQgMTAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2Fu
Y2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MQorTGlzdGVuZXIg
ZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MQorRG9uZQorQ2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKQorCitMaXN0
ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRh
cmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hz
dGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAxNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQx
IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJn
ZXQyIGF0IDIwMCwgMTAwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBjYW5jZWxhYmxlIGV2
ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAyMDAsIDEwMAorTGlzdGVu
ZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcg
ZXZlbnRUYXJnZXQyCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50
IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyCitEb25lCitDYW5jZWxsZWQgZHJhZyBv
biBUYXJnZXQzIChibHVlKQorCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGV2ZW50IHRvdWNo
c3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0
MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1
MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0
dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBj
YW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAs
IDEwMAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92
ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQg
cmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdl
dDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVu
dCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworTGlzdGVuZXIgdGFyZ2V0MSByZWNl
aXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitM
aXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQzCitEb25lCitVc2VsZXNzIENsaWNrIGluIHRoZSBkb2N1bWVudCwg
c2hvdWxkIGJlIHBhc3NpdmUKKworTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91
Y2hzdGFydCB0YXJnZXR0aW5nIGF0IDMwMCwgMzAwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZl
ZCBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5k
b3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0aC1wYXNz
aXZlLWxpc3RlbmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDgwMzg0MDUyM2RmODk1OWIwNjg5NGE4Nzc0
MjQ0MzMyZWYzMDdiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBh
c3NpdmUtbGlzdGVuZXIuaHRtbApAQCAtMCwwICsxLDEzOSBAQAorPCFET0NUWVBFIGh0bWw+CisK
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gZ2V0Q2xpY2tVSVNjcmlwdCh4LCB5KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
YAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci5zaW5nbGVUYXBBdFBvaW50KCR7eH0sICR7eX0sIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBnZXREcmFnVUlTY3JpcHQoc3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFkpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgdWlDb250cm9sbGVyLmRyYWdGcm9tUG9pbnRUb1BvaW50KCR7c3RhcnRYfSwg
JHtzdGFydFl9LCAke2VuZFh9LCAke2VuZFl9LCAwLjE1LCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxFRCE6
IE5vIG1vdXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQudHlw
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZW92ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZW91dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21v
dXNlZW50ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdt
b3VzZWxlYXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2Vkb3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2Vtb3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2V1cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xs
JywgZmFpbCk7CisKKyAgICAgICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGdldExvZ0V2ZW50KGxpc3RlbmVyLCBzaG91bGRQcmV2ZW50RGVmYXVsdCA9IGZhbHNl
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnTGlzdGVuZXIgJyArIGxpc3RlbmVyICsgJyBy
ZWNlaXZlZCcgKyAoZXZlbnQuY2FuY2VsYWJsZSA/ICcgY2FuY2VsYWJsZScgOiAnJykgKyAnIGV2
ZW50ICcgKyBldmVudC50eXBlICsgJyB0YXJnZXR0aW5nICcgKyBldmVudC50YXJnZXQuaWQ7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50b3VjaGVzWzBdICYmIGV2ZW50LnRvdWNoZXNb
MF0uY2xpZW50WCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICcgYXQgJyAr
IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCArICcsICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVu
dFk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICAnPGJyPic7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZFByZXZlbnREZWZhdWx0
KQorICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3Np
dmUnOiB0cnVlIH0pOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNo
bW92ZScsIGdldExvZ0V2ZW50KCJkb2N1bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50
KCJkb2N1bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJkb2N1bWVudCIpLCB7
ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdw
YXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiLCB0cnVlKSk7CisgICAgICAgICAgICB0
YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEi
KSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFzc2l2ZSc6
IHRydWUgfSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVl
IH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBn
ZXRMb2dFdmVudCgidGFyZ2V0MyIsIHRydWUpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZl
bnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZl
JzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hj
YW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKwor
ICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MSAoZ3Jl
ZW4pPC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlT
Y3JpcHQoNTAsIDUwLCAxMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAg
ICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2Fu
Y2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCgxNTAsIDUwLCAyMDAsIDEwMCksIGZ1
bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0Owor
ICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBvbiBUYXJn
ZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNj
cmlwdChnZXREcmFnVUlTY3JpcHQoMjUwLCA1MCwgMzAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5Vc2VsZXNzIENsaWNrIGluIHRoZSBkb2N1bWVu
dCwgc2hvdWxkIGJlIHBhc3NpdmU8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGdldENsaWNrVUlTY3JpcHQoMzAwLCAzMDApLCBmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAg
ICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5IHsKKyAg
ICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAj
ZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFy
Z2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQor
ICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJl
ZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEw
MHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgIGJvZHkgeworICAgICAg
ICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJn
ZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+CisgICAgICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+CisgICAg
VGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uCisgICAgPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNo
LWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY2YjllMzg2MTNiYzRmYjQ4
ZWI3YjViYTFiODdkNGFjODM0NDNkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitUYXAgb24gVGFyZ2V0MSAoZ3JlZW4pCisKKyhG
cmFtZSBzY3JvbGxpbmcgbm9kZQorICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgODAwIDYwMCkKKyAg
KGNvbnRlbnRzIHNpemUgODAwIDYwMCkKKyAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJl
Z2lvbgorICAgIGF0ICgwLDApIHNpemUgMzAweDEwMCkKKykKK0xpc3RlbmVyIHRhcmdldDEgcmVj
ZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MQor
RG9uZQorVGFwIG9uIFRhcmdldDIgKHJlZCkKKworKEZyYW1lIHNjcm9sbGluZyBub2RlCisgIChz
Y3JvbGxhYmxlIGFyZWEgc2l6ZSA4MDAgNjAwKQorICAoY29udGVudHMgc2l6ZSA4MDAgNjAwKQor
ICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uCisgICAgYXQgKDAsMCkgc2l6ZSAz
MDB4MTAwKQorKQorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRv
dWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyCitEb25lCitUYXAgb24gVGFyZ2V0MyAoYmx1
ZSkKKworKEZyYW1lIHNjcm9sbGluZyBub2RlCisgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA4MDAg
NjAwKQorICAoY29udGVudHMgc2l6ZSA4MDAgNjAwKQorICAoc3luY2hyb25vdXMgZXZlbnQgZGlz
cGF0Y2ggcmVnaW9uCisgICAgYXQgKDAsMCkgc2l6ZSAzMDB4MTAwKQorKQorTGlzdGVuZXIgdGFy
Z2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90
YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ0MzZiMzNlZmU0NmQzZDQ4Zjg3ODkxYzdmMjA3ODBiNjExZTY5OTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sCkBAIC0wLDAgKzEsMTA2IEBACis8IURP
Q1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBnZXRVSVNjcmlwdCh4LCB5KQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHVp
Q29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KCR7eH0sICR7eX0sIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gZmFpbChldmVudCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJ
TEVEITogTm8gbW91c2UgZXZlbnQgc2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcgKyBldmVu
dC50eXBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlb3ZlcicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlb3V0JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2VlbnRlcicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlbGVhdmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZWRvd24nLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZW1vdmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZXVwJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBmYWlsKTsKKworICAgICAgICAgICAgbGV0IG91dHB1dCA9ICcnOworICAgICAg
ICAgICAgZnVuY3Rpb24gZ2V0TG9nRXZlbnQobGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICc8cHJlPicgKyB3aW5kb3cuaW50ZXJuYWxzLnNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4
dCgpICsgJzwvcHJlPic7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnTGlzdGVuZXIg
JyArIGxpc3RlbmVyICsgJyByZWNlaXZlZCcgKyAoZXZlbnQuY2FuY2VsYWJsZSA/ICcgY2FuY2Vs
YWJsZScgOiAnJykgKyAnIGV2ZW50ICcgKyBldmVudC50eXBlICsgJyB0YXJnZXR0aW5nICcgKyBl
dmVudC50YXJnZXQuaWQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50b3VjaGVzWzBd
ICYmIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICcgYXQgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCArICcsICcgKyBldmVu
dC50b3VjaGVzWzBdLmNsaWVudFk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0ICs9ICAnPGJyPic7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdldmVudFRhcmdldDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpKTsKKworICAgICAgICAgICAgb3V0cHV0
ICs9ICI8aDE+VGFwIG9uIFRhcmdldDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDMgKGJsdWUpPC9oMT4iOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDI1MCwg
NTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2Up
OworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjog
bWFuaXB1bGF0aW9uOyB9CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOwor
ICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRh
cmdldDMgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIg
eworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAg
ICAgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwor
ICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7
CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVu
dFRhcmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRp
diBpZD1ldmVudFRhcmdldDM+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJ
U2NyaXB0Q29udHJvbGxlciB0byBydW4uCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFz
c2l2ZS1saXN0ZW5lci1pbnNpZGUtYWN0aXZlLWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1pbnNpZGUtYWN0
aXZlLWxpc3RlbmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NjOWE1MDMzZmUyMGNkNWM5YTVkZTllY2Vl
YTFhZjFkZmExMmM4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWluc2lkZS1hY3RpdmUtbGlzdGVu
ZXIuaHRtbApAQCAtMCwwICsxLDExNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3Jp
cHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2lu
dCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoZXZlbnQpIHsK
KyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxFRCE6IE5vIG1vdXNlIGV2ZW50IHNob3Vs
ZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQudHlwZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGZhaWwpOworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZhaWwpOworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZmFpbCk7CisKKyAgICAg
ICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldExvZ0V2ZW50
KGxpc3RlbmVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2
ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnTGlzdGVuZXIgJyArIGxpc3Rl
bmVyICsgJyByZWNlaXZlZCcgKyAoZXZlbnQuY2FuY2VsYWJsZSA/ICcgY2FuY2VsYWJsZScgOiAn
JykgKyAnIGV2ZW50ICcgKyBldmVudC50eXBlICsgJyB0YXJnZXR0aW5nICcgKyBldmVudC50YXJn
ZXQuaWQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50b3VjaGVzWzBdICYmIGV2ZW50
LnRvdWNoZXNbMF0uY2xpZW50WCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9
ICcgYXQgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCArICcsICcgKyBldmVudC50b3VjaGVz
WzBdLmNsaWVudFk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICc8YnI+JzsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdkZWZhdWx0
UHJldmVudGVkIGJlZm9yZSBwcmV2ZW50RGVmYXVsdCgpOiAnICsgZXZlbnQuZGVmYXVsdFByZXZl
bnRlZCArICc8YnI+JzsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdkZWZhdWx0UHJldmVudGVkIGFmdGVy
IHByZXZlbnREZWZhdWx0KCk6ICcgKyBldmVudC5kZWZhdWx0UHJldmVudGVkICsgJzxicj4nOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGV0IHRhcmdl
dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAg
ICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFy
Z2V0MSIpKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3Zl
JywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50
TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAg
ICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRh
cmdldDEiKSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVl
IH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBn
ZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAg
IHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0
MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZl
JzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDEg
KGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlT
Y3JpcHQoNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0
ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0
MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdl
dFVJU2NyaXB0KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+
VGFwIG9uIFRhcmdldDMgKGJsdWUpPC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDI1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQn
KS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxz
dHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAgICAg
IGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNldmVu
dFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAg
ICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwor
ICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAg
ICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7CisgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxkaXYg
aWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+CisgICAg
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD1v
dXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4u
CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRo
LXBhc3NpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWRh
ZGI2MTE4OTI4ZTg3ODRmNWUwYWY1ZWIzZTM5NTcxN2VlZTkxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gt
ZW5kLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUYXAgb24gVGFyZ2V0
MSAoZ3JlZW4pCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hlbmQgdGFy
Z2V0dGluZyBldmVudFRhcmdldDEKK0RvbmUKK1RhcCBvbiBUYXJnZXQyIChyZWQpCisKK0xpc3Rl
bmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdl
dDIKK0RvbmUKK1RhcCBvbiBUYXJnZXQzIChibHVlKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2Vp
dmVkIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNo
LWVuZC1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Rh
cC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjI2MDVk
MjI5NGEwOGVhMTVjZjU3OTZiNTg0N2E4ZjBhMTcwZDFhZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVu
ZC1saXN0ZW5lci5odG1sCkBAIC0wLDAgKzEsMTA1IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBn
ZXRVSVNjcmlwdCh4LCB5KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAg
ICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5zaW5nbGVU
YXBBdFBvaW50KCR7eH0sICR7eX0sIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1
aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZnVuY3Rpb24gZmFpbChl
dmVudCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTEVEITogTm8gbW91c2UgZXZl
bnQgc2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcgKyBldmVudC50eXBlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZh
aWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgZmFp
bCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZh
aWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBm
YWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBm
YWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBm
YWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZmFp
bCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmYWlsKTsK
KworICAgICAgICAgICAgbGV0IG91dHB1dCA9ICcnOworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0
TG9nRXZlbnQobGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gbG9n
RXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdMaXN0ZW5lciAn
ICsgbGlzdGVuZXIgKyAnIHJlY2VpdmVkJyArIChldmVudC5jYW5jZWxhYmxlID8gJyBjYW5jZWxh
YmxlJyA6ICcnKSArICcgZXZlbnQgJyArIGV2ZW50LnR5cGUgKyAnIHRhcmdldHRpbmcgJyArIGV2
ZW50LnRhcmdldC5pZDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXNbMF0g
JiYgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gJyBhdCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYICsgJywgJyArIGV2ZW50
LnRvdWNoZXNbMF0uY2xpZW50WTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gICc8YnI+JzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGxldCB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2V2ZW50VGFyZ2V0MScpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0
b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOwor
CisgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0MSAoZ3JlZW4pPC9oMT4i
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCg1MCwgNTAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0Owor
ICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQyIChyZWQpPC9oMT4i
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoMTUw
LCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
cmVzdWx0OworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0
MyAoYmx1ZSk8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQoZ2V0VUlTY3JpcHQoMjUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVySFRNTCA9
IG91dHB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAg
ICAqIHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAgICAgICAgYm9keSB7CisgICAg
ICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSwgI2V2
ZW50VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdl
dDEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKyAg
ICAgICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAxMDBw
eDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdl
dDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mz4KKyAgICAgICAgICAgIDwvZGl2
PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPW91dHB1dD4KKyAgICBU
aGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KKyAgICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlz
dGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQt
bGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2EzMmZkYzQw
NzY3NmM3ZDMyMGNlZjA2NWFhMzMzMTMxYzljZjU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQt
YWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTcgQEAKK1RhcCBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSBy
ZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1
MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitUYXAgb24gVGFyZ2V0MiAocmVkKQorCitMaXN0
ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRh
cmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2
ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyCitEb25lCitUYXAgb24gVGFyZ2V0
MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitM
aXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0
dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBl
dmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFy
dC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0
aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTU5
YmY1NTEwNTA0MTU1ZTBhZDE1YzJkYThlOGMxZjg1YzYwMTUwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gt
c3RhcnQtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbApAQCAtMCww
ICsxLDExMyBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoeCwgeSkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29t
cGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gJ0ZBSUxFRCE6IE5vIG1vdXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3
ZSBnb3QgYSAnICsgZXZlbnQudHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZmFpbCk7CisKKyAgICAgICAgICAgIGxldCBvdXRw
dXQgPSAnJzsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldExvZ0V2ZW50KGxpc3RlbmVyKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAnTGlzdGVuZXIgJyArIGxpc3RlbmVyICsgJyByZWNlaXZl
ZCcgKyAoZXZlbnQuY2FuY2VsYWJsZSA/ICcgY2FuY2VsYWJsZScgOiAnJykgKyAnIGV2ZW50ICcg
KyBldmVudC50eXBlICsgJyB0YXJnZXR0aW5nICcgKyBldmVudC50YXJnZXQuaWQ7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChldmVudC50b3VjaGVzWzBdICYmIGV2ZW50LnRvdWNoZXNbMF0uY2xp
ZW50WCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICcgYXQgJyArIGV2ZW50
LnRvdWNoZXNbMF0uY2xpZW50WCArICcsICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICAnPGJy
Pic7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQg
dGFyZ2V0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdldDEnKTsKKyAgICAg
ICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50
KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0MS5h
ZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdw
YXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpKTsKKyAgICAgICAgICAgIHRhcmdldDEu
YWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpKTsK
KyAgICAgICAgICAgIGxldCB0YXJnZXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50
VGFyZ2V0MycpOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0
YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAg
ICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50
KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5h
ZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIikpOworICAg
ICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2
ZW50KCJ0YXJnZXQzIikpOworCisgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFy
Z2V0MSAoZ3JlZW4pPC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChn
ZXRVSVNjcmlwdCg1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBU
YXJnZXQyIChyZWQpPC9oMT4iOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQoZ2V0VUlTY3JpcHQoMTUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
IjxoMT5UYXAgb24gVGFyZ2V0MyAoYmx1ZSk8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoMjUwLCA1MCksIGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291
dHB1dCcpLmlubmVySFRNTCA9IG91dHB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cisg
ICAgPHN0eWxlPgorICAgICAgICAqIHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAg
ICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAg
I2V2ZW50VGFyZ2V0MSwgI2V2ZW50VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAg
ICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9Cisg
ICAgICAgICNldmVudFRhcmdldDEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsK
KyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9
MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAgICAg
PGRpdiBpZD1ldmVudFRhcmdldDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mz4K
KyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGlkPW91dHB1dD4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRv
IHJ1bi4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFj
dGl2ZS10b3VjaC1tb3ZlLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFy
dC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBmYzQ0YzFjZWExMzcxMTBiZGQ3YmZlMTVhMmM1ODhkM2JkZTUyYTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgt
cGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVu
dHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdl
dDEgKGdyZWVuKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQg
dGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2Vp
dmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0
IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91
Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRh
cmdldDIgKHJlZCkKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0
IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVj
ZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIg
YXQgMjAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0
b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorQ2FuY2VsbGVkIGRyYWcgb24g
VGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBldmVudCB0b3VjaHN0
YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEg
cmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAs
IDUwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3Zl
IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJl
Y2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQz
IGF0IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQg
dG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFz
c2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZl
LXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1tb3ZlLWxpc3RlbmVycy1vbi1lbGVtZW50cy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVmMTZmOWYwZDQ2OTlhYTUyN2IyYTJiODQ0YTE1OTI0YmQyZjVhZGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxl
bWVudHMuaHRtbApAQCAtMCwwICsxLDEyMCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgor
PGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0RHJh
Z1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZKQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgke3N0YXJ0WH0sICR7c3RhcnRZfSwg
JHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBmYWls
KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBl
dmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywg
ZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBm
YWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywg
ZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScs
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bics
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScs
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBm
YWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGZhaWwpOwor
CisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRM
b2dFdmVudChsaXN0ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dF
dmVudChldmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcg
KyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFi
bGUnIDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZl
bnQudGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAm
JiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQu
dG91Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAgJzxicj4nOworCisgICAgICAgICAgICAgICAgICAgIGlmIChldmVu
dC50eXBlID09PSAndG91Y2htb3ZlJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdl
dDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcs
IGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAg
ICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgidGFy
Z2V0MSIpKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQn
LCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpKTsKKyAgICAgICAg
ICAgIGxldCB0YXJnZXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0Mycp
OworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0
TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0
YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQz
IikpOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdl
dExvZ0V2ZW50KCJ0YXJnZXQzIikpOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3Rl
bmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIikpOworCisgICAgICAgICAg
ICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCg1MCwg
NTAsIDEwMCwgMTAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0
ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJh
ZyBvbiBUYXJnZXQyIChyZWQpPC9oMT4iOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDE1MCwgNTAsIDIwMCwgMTAwKSwgZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDMgKGJsdWUp
PC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERy
YWdVSVNjcmlwdCgyNTAsIDUwLCAzMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVy
SFRNTCA9IG91dHB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgor
ICAgICAgICAqIHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAgICAgICAgYm9keSB7
CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0
MSwgI2V2ZW50VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVu
dFRhcmdldDEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAg
IH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0
OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICBib2R5IHsKKyAg
ICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50
VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAg
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0Pgor
ICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281932</attachid>
            <date>2016-06-23 14:42:17 -0700</date>
            <delta_ts>2016-06-23 17:39:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158826-20160623144207.patch</filename>
            <type>text/plain</type>
            <size>93432</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FiMjY3N2JmOGM3MmFl
YjdmOTNkMDRkYzY3ZjljMTBjNjA0NWI2ZS4uMzE4MDUyMGRlNTdhYjgyNGMzMzY3MjVmNDczZjNi
MmI3MmE5ZTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTA2LTIyICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBTcGVjaWFsaXpl
IHN5bmNocm9ub3VzIGV2ZW50IHRyYWNraW5nIHBlciBldmVudCB0eXBlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4MjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgRmlyc3QsIGt1ZG9zIHRvIFJpY2sgQnll
cnMgZm9yIGFsbCBoaXMgaGVscHMgb24gcGFzc2l2ZSBldmVudCBkaXNwYXRjaC4KKyAgICAgICAg
VGhlIHNwZWNzIGFyZSBwcmV0dHkgZGFtbiBnb29kIGFuZCBoaXMgaGVscCByZXZpZXdpbmcgcGF0
Y2hlcyBpcyB2ZXJ5IHVzZWZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZSBzeW5jaHJv
bm91cyBldmVudCBkaXNwYXRjaCB0byBoYXBwZW4gcGVyIGV2ZW50CisgICAgICAgIGluc3RlYWQg
b2YgcGVyIHNlcXVlbmNlIHRvdWNoc3RhcnQtPnRvdWNoZW5kLgorCisgICAgICAgIFRoZSBiaWcg
YWR2YW50YWdlIG9mIHRoaXMgaXMgd2UgY2FuIGRpc3BhdGNoIG1vcmUgZXZlbnRzIGFzeW5jaHJv
bm91c2x5LgorICAgICAgICBGb3IgZXhhbXBsZSwgdG8gaGFuZGxlIGEgdGFwIHByb2dyYW1tYXRp
Y2FsbHksIHlvdSBjYW4gbGltaXQgdGhlIGFjdGl2ZSBsaXN0ZW5lcgorICAgICAgICB0byB0aGUg
dG91Y2hlbmQgZXZlbnQuIFRoZSB0b3VjaHN0YXJ0IGFuZCB0b3VjaG1vdmUgYXJlIG5vdyBkaXNw
YXRjaGVkIGFzeW5jaHJvbm91c2x5LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBh
IHNpbXBsZSBleHRlbnNpb24gdG8gRXZlbnRUcmFja2luZ1JlZ2lvbnMuCisgICAgICAgIEluc3Rl
YWQgb2YgYSBzaW5nbGUgc3luY2hyb25vdXMgcmVnaW9uLCB3ZSBoYXZlIG9uZSByZWdpb24gcGVy
IGV2ZW50IHR5cGUuCisgICAgICAgIFdoZW4gcHJvY2Vzc2luZyB0aGUgZXZlbnRzLCB3ZSBvbmx5
IG5lZWQgdG8gc2VuZCB0aGUgZXZlbnRzIHN5bmNocm9ub3VzbHkKKyAgICAgICAgaWYgdGhhdCBw
YXJ0aWN1bGFyIGV2ZW50IHR5cGUgaGFzIGEgc3luY2hyb25vdXMgcmVnaW9uLgorCisgICAgICAg
IE5vdGUgdGhhdCBFdmVudERpc3BhdGNoZXIncyB0b3VjaCBldmVudCBzdXBwb3J0IGFscmVhZHkg
c3VwcG9ydHMKKyAgICAgICAgbWl4aW5nIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgZXZl
bnRzLiBUaGUgZXZlbnRzIGFyZSBhbHdheXMgcHJvY2Vzc2VkCisgICAgICAgIGluIG9yZGVyIGV2
ZW4gaWYgYXN5bmNocm9ub3VzIGV2ZW50cyBhcmUgcGVuZGluZyB3aGVuIGEgc3luY2hyb25vdXMg
ZGlzcGF0Y2gKKyAgICAgICAgaGFwcGVucy4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1w
YXNzaXZlLWxpc3RlbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUtbGlz
dGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRo
LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0
ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgt
cGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLWVu
ZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUt
bGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBk
b20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6Omhhc0Fj
dGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FdmVudFRh
cmdldC5oOgorICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25PdmVybGF5Ojp1cGRhdGVSZWdpb24pOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub25GYXN0
U2Nyb2xsYWJsZVJlY3RzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6YWJz
b2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMpOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2luZ1R5cGVGb3JQ
b2ludCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjp0cmFja2lu
Z1R5cGVGb3JQb2ludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KTog
RGVsZXRlZC4KKwogMjAxNi0wNi0yMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRGF0YWJhc2VQcm9jZXNzIGRvZXNuJ3QgaGFuZGxlIFdlYlByb2Nlc3NlcyBn
b2luZyBhd2F5IHVuY2xlYW5seS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMzFmYmY5OTU5NDFjOTQ4Zjk0MzVh
MzUzOTA5NTEwNDI4ODY1YjZmLi5mNmQ4OTljZTBiNmQ3OTAzYWZhY2M3ZTFlYTg5NmNiMzQxMDU4
YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTYtMDYtMjIgIEJlbmphbWluIFBv
dWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFNwZWNpYWxpemUgc3luY2hy
b25vdXMgZXZlbnQgdHJhY2tpbmcgcGVyIGV2ZW50IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODgyNgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9u
cz46OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludCk6CisgICAgICAgICog
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1l
cmdlVHJhY2tpbmdUeXBlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRl
VG91Y2hFdmVudFRyYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0b3Vj
aEV2ZW50VHJhY2tpbmdUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5k
bGVUb3VjaEV2ZW50U3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXNldFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6VG91Y2hFdmVudFRyYWNraW5nOjppc1RyYWNr
aW5nQW55dGhpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OlRvdWNoRXZlbnRU
cmFja2luZzo6cmVzZXQpOgorCiAyMDE2LTA2LTIyICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBEYXRhYmFzZVByb2Nlc3MgZG9lc24ndCBoYW5kbGUgV2ViUHJv
Y2Vzc2VzIGdvaW5nIGF3YXkgdW5jbGVhbmx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4NzJl
MDNlYWQ4NWY4Yzk2NTg2YjEyYWU3NDE4MmU5MDRhZDI0OGQyLi40MWM0ZGFlZDBlZGUwYmFiN2Y4
YmRmOTg5MDYyNDdlMGRjNmU5NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjExMyw2ICsy
MTEzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0Rpc3BsYXlTbGVlcERp
c2FibGVyLmNwcAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRmb3JtL0RyYWdJ
bWFnZS5jcHAKKyAgICBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKICAgICBwbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcAogICAgIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2Q2NDRjZGMwNzY3YmQyMmNlMzY2Njk3ZjA4N2Mx
NTlhZDUwODQzMS4uODY5NGFjN2JlYWQzZjNmM2E3NjJlMmRiY2FkOGQ0M2QwZWU3ZDFkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTA3NSw2ICsxMDc1LDcgQEAKIAkJMjYyNTVGMDMxODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJB
Z2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYy
NTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2MjU1RjA0MTg4NzhFMTEwMDA2RTFGRCAv
KiBVc2VyQWdlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFjLm1tICovOyB9
OwogCQkyNjJFQzQxQTFEMDc4RkI5MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkVDNDE5MUQw
NzhGM0QwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTI2MkVDNDFEMUQxMTBCOTAwMEJBNzhG
QyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJFQzQxQzFEMTEwQjFGMDBCQTc4RkMgLyogRXZlbnRUcmFj
a2luZ1JlZ2lvbnMuY3BwICovOyB9OwogCQkyNjU1NDEzOTE0ODk4MTFDMDAwREZDNUQgLyogS2V5
RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNjU1NDEzQTE0
ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZl
bnRJT1MubW0gKi87IH07CiAJCTI2NTU0MTUyMTQ4OUIyMzMwMDBERkM1RCAvKiBDdXJzb3JJT1Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY1NTQx
NEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi87IH07CkBAIC04NjA4LDYgKzg2
MDksNyBAQAogCQkyNjI1NUYwMTE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckFnZW50TWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJFQzQxOTFEMDc4RjNEMDBCQTc4RkMg
LyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MjYyRUM0MUMxRDExMEIxRjAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50VHJhY2tpbmdSZWdpb25zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzcxNDg5ODExQzAwMERGQzVE
IC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
S2V5RXZlbnRDb2Rlc0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjU1NDEz
ODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBLZXlFdmVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXJzb3JJT1MuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjMxMjgsNiArMjMxMzAsNyBAQAogCQkJCUE3Q0ZCM0NGMEI3
RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0QwMEI3RUQxMEEw
MDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKIAkJCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQg
LyogRXZlbnRMb29wLmggKi8sCisJCQkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZDIC8qIEV2ZW50
VHJhY2tpbmdSZWdpb25zLmNwcCAqLywKIAkJCQkyNjJFQzQxOTFEMDc4RjNEMDBCQTc4RkMgLyog
RXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRGRTlFNDBCNUNBNTM5MDAzRTRBNzMg
LyogRmlsZUNob29zZXIuY3BwICovLAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBG
aWxlQ2hvb3Nlci5oICovLApAQCAtMzA2NjgsNiArMzA2NzEsNyBAQAogCQkJCUE3QkJFMjY2MTFB
RkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFFMkFCMjkwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTE1vZEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMzMDVDNzkwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYyRUM0MUQxRDExMEI5MDAwQkE3OEZDIC8q
IEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA1Q0E0MEMw
NzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBODVCMUVBMEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxPTGlzdEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdFOUMwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRN
TE9wdEdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuY3BwCmluZGV4IDgyNmZhYjQ1MTY1MjBmZmIyYzA0YTc3ODY2ODQxYWMwNDEyZjBmNWEuLjlk
NTVlNTVkNTY4MmYwNzY1MmE0M2I2ZWYwNDRmMzU1MmVkYWViZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmNwcApAQCAtMjQzLDE2ICsyNDMsNiBAQCBib29sIEV2ZW50VGFyZ2V0OjpmaXJl
RXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiAhZXZlbnQuZGVmYXVsdFBy
ZXZlbnRlZCgpOwogfQogCi1ib29sIEV2ZW50VGFyZ2V0OjpoYXNBY3RpdmVUb3VjaEV2ZW50TGlz
dGVuZXJzKCkgY29uc3QKLXsKLSAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1lcyA9IGV2ZW50TmFt
ZXMoKTsKLSAgICByZXR1cm4gaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMudG91Y2hzdGFy
dEV2ZW50KQotICAgICAgICB8fCBoYXNBY3RpdmVFdmVudExpc3RlbmVycyhuYW1lcy50b3VjaG1v
dmVFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMudG91Y2hl
bmRFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMudG91Y2hj
YW5jZWxFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMudG91
Y2hmb3JjZWNoYW5nZUV2ZW50KTsKLX0KLQogdm9pZCBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlz
dGVuZXJzKEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXREYXRhKiBkLCBFdmVudExpc3RlbmVyVmVj
dG9yJiBlbnRyeSkKIHsKICAgICBSZWY8RXZlbnRUYXJnZXQ+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCBlM2RhYWZjNzk1Yjc3MzQ4OTgwODNjZTBl
MmFlYTliYWRhM2ZiOTNhLi4xNWY1YTY2YTRmMzcwMDA2NDFlMjJiYjgwZWE4N2QyNTBlZDQ5ZWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtMTY4LDggKzE2OCw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHZpc2l0SlNFdmVudExpc3RlbmVycyhKU0M6OlNsb3RWaXNpdG9yJik7CiAgICAg
dm9pZCBpbnZhbGlkYXRlSlNFdmVudExpc3RlbmVycyhKU0M6OkpTT2JqZWN0Kik7CiAKLSAgICBi
b29sIGhhc0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMoKSBjb25zdDsKLQogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgfkV2ZW50VGFyZ2V0KCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVi
dWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IDU3MjA4OGIxZDIyY2M4NTdiMTk5YThmZGVlYzZiMmFl
NThjM2U0N2YuLmNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUxNDczZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC0xMzMsNyArMTMzLDgg
QEAgYm9vbCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJlZ2lvbigpCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICBpZiAoU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29v
cmRpbmF0b3IoKSkgewogICAgICAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgZXZlbnRUcmFj
a2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVudFRyYWNraW5n
UmVnaW9ucygpOwotICAgICAgICAgICAgKnJlZ2lvbiA9IGV2ZW50VHJhY2tpbmdSZWdpb25zLnN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5
bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICAgICAgcmVnaW9uLT51bml0
ZShzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggYzM3MjA5NWI4YmRlNWZiYzQwZTA3YWVkNmNlMDgyMWZlNjAzYWM5
MC4uYmEwODk2MDQ5NTQxZDQwOTAyODBiYjgxMzU1ZTkwMGU0MTllNjA3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0zNzIsOCArMzcyLDExIEBAIFJlZjxDbGllbnRSZWN0TGlzdD4gUGFnZTo6bm9u
RmFzdFNjcm9sbGFibGVSZWN0cygpCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsK
IAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKLSAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0
b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkK
LSAgICAgICAgcmVjdHMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVudFRyYWNr
aW5nUmVnaW9ucygpLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVjdHMoKTsKKyAgICBpZiAo
U2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xs
aW5nQ29vcmRpbmF0b3IoKSkgeworICAgICAgICBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVu
dFRyYWNraW5nUmVnaW9ucygpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5bmNocm9ub3Vz
RXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICByZWN0cy5hcHBlbmRWZWN0b3Ioc3luY2hy
b25vdXNFdmVudFJlZ2lvbi52YWx1ZS5yZWN0cygpKTsKKyAgICB9CiAKICAgICBWZWN0b3I8Rmxv
YXRRdWFkPiBxdWFkcyhyZWN0cy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
cmVjdHMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMDRhZGY4YTM2ZmVlZDQ4MWU5MjM0
OWQ1NDVlYTJmNTQyZWI3MTQzNS4uZDgzMDJlZGJmODAxNzg2MzM5N2U2MWFlYWNjODVlNzgwYzkz
MzFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVy
LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtMTQ0LDE4ICsxNDUsMTkgQEAgRXZlbnRUcmFj
a2luZ1JlZ2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1Jl
Z2lvbnNGb3JGcmFtZSgKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6IGlmIHdlJ3ZlIGFscmVh
ZHkgYWNjb3VudGVkIGZvciB0aGlzIHN1YmZyYW1lIGFzIGEgc2Nyb2xsYWJsZSBhcmVhLCB3ZSBj
YW4gYXZvaWQgcmVjdXJzaW5nIGludG8gaXQgaGVyZS4KKyAgICBFdmVudFRyYWNraW5nUmVnaW9u
cyBldmVudFRyYWNraW5nUmVnaW9uczsKICAgICBmb3IgKEZyYW1lKiBzdWJmcmFtZSA9IGZyYW1l
LnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZyYW1lLT50cmVl
KCkubmV4dFNpYmxpbmcoKSkgewogICAgICAgICBGcmFtZVZpZXcqIHN1YmZyYW1lVmlldyA9IHN1
YmZyYW1lLT52aWV3KCk7CiAgICAgICAgIGlmICghc3ViZnJhbWVWaWV3KQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgUmVnaW9uIHN1YmZyYW1lUmVnaW9uID0gYWJzb2x1dGVFdmVu
dFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKCpzdWJmcmFtZSkuc3luY2hyb25vdXNEaXNwYXRjaFJl
Z2lvbjsKKyAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgc3ViZnJhbWVSZWdpb24gPSBhYnNv
bHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUoKnN1YmZyYW1lKTsKICAgICAgICAgLy8g
TWFwIGZyb20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KICAgICAgICAgSW50
UG9pbnQgb2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmluZ1ZpZXdDb250
ZW50cyhJbnRQb2ludCgpKTsKIAogICAgICAgICAvLyBGSVhNRTogdGhpcyB0cmFuc2xhdGlvbiBp
Z25vcmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0aGUgZnJhbWUuCiAgICAgICAgIHN1YmZy
YW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7Ci0gICAgICAgIG5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uLnVuaXRlKHN1YmZyYW1lUmVnaW9uKTsKKyAgICAgICAgZXZlbnRUcmFj
a2luZ1JlZ2lvbnMudW5pdGUoc3ViZnJhbWVSZWdpb24pOwogICAgIH0KIAogICAgIERvY3VtZW50
OjpSZWdpb25GaXhlZFBhaXIgd2hlZWxIYW5kbGVyUmVnaW9uID0gZnJhbWUuZG9jdW1lbnQoKS0+
YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+d2hlZWxFdmVu
dFRhcmdldHMoKSk7CkBAIC0xNjksNyArMTcxLDggQEAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSgK
ICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZSh3aGVlbEhhbmRsZXJSZWdpb24uZmly
c3QpOwogCiAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgbm90IHRoZSBtYWluIGZyYW1lLCB3ZSBj
b3VsZCBjbGlwIHRoZSByZWdpb24gdG8gdGhlIGZyYW1lJ3MgYm91bmRzLgotICAgIHJldHVybiBF
dmVudFRyYWNraW5nUmVnaW9ucyB7IFJlZ2lvbigpLCBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiB9
OworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnVuaXRlU3luY2hyb25vdXNSZWdpb24oZXZlbnRO
YW1lcygpLndoZWVsRXZlbnQsIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKKyAgICByZXR1cm4g
ZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9s
bGluZ05vZGUuY3BwCmluZGV4IDRjYjM3MWUxZTZmMmRiYjhjYzk4NjcwYjI1ZTdmODczMTc2OGE1
YjQuLmZiZDQ2ZmZjNDlkYmExMTEwMmIwYjczN2FjOGNiOTJhNTMzZjVmNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI0NSwxOCArMjQ1LDIwIEBAIHZvaWQgU2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0m
IHRzLCBpbnQgaW5kZW50CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgICAgICBpbmRlbnQgLT0g
MjsKICAgICB9Ci0gICAgaWYgKCFtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNocm9ub3VzRGlz
cGF0Y2hSZWdpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgICsraW5kZW50OwotICAgICAgICB3cml0
ZUluZGVudCh0cywgaW5kZW50KTsKLSAgICAgICAgdHMgPDwgIihzeW5jaHJvbm91cyBldmVudCBk
aXNwYXRjaCByZWdpb24iOwotICAgICAgICArK2luZGVudDsKLSAgICAgICAgZm9yIChhdXRvIHJl
Y3QgOiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVj
dHMoKSkgewotICAgICAgICAgICAgdHMgPDwgIlxuIjsKKyAgICBpZiAoIW1fZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zLmlzRW1wdHko
KSkgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5bmNocm9ub3VzRXZlbnRSZWdpb24gOiBt
X2V2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9ucykgeworICAgICAgICAgICAgKytpbmRlbnQ7CiAgICAgICAgICAgICB3cml0ZUluZGVudCh0
cywgaW5kZW50KTsKLSAgICAgICAgICAgIHRzIDw8IHJlY3Q7CisgICAgICAgICAgICB0cyA8PCAi
KHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiBmb3IgZXZlbnQgIiA8PCBzeW5jaHJv
bm91c0V2ZW50UmVnaW9uLmtleTsKKyAgICAgICAgICAgICsraW5kZW50OworICAgICAgICAgICAg
Zm9yIChhdXRvIHJlY3QgOiBzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlLnJlY3RzKCkpIHsK
KyAgICAgICAgICAgICAgICB0cyA8PCAiXG4iOworICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50
KHRzLCBpbmRlbnQpOworICAgICAgICAgICAgICAgIHRzIDw8IHJlY3Q7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB0cyA8PCAiKVxuIjsKKyAgICAgICAgICAgIGluZGVudCAtPSAyOwogICAg
ICAgICB9Ci0gICAgICAgIHRzIDw8ICIpXG4iOwotICAgICAgICBpbmRlbnQgLT0gMjsKICAgICB9
CiAKICAgICBpZiAobV9zeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMzc2ODBiOTc2
YWQwZDBlMTRiMjA2Zjc3MWFhZjk0ODBkZDhkMTE2Ni4uZDIwY2RlODI2ZjNkMjFlZmNjNTE5MmQy
MjQ0ZjkxMTYxOWUzOGRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCiAKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0
YXRlVHJlZS5oIgpAQCAtNjYsNyArNjcsMTAgQEAgYm9vbCBTY3JvbGxpbmdUcmVlOjpzaG91bGRI
YW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQKICAg
ICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKICAgICAg
ICAgcG9zaXRpb24ubW92ZShmcmFtZVNjcm9sbGluZ05vZGUudmlld1RvQ29udGVudHNPZmZzZXQo
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbikpOwogCi0gICAgICAgIGJvb2wgaXNTeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uID0gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQ
b2ludChyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9u
b3VzOworICAgICAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1lcyA9IGV2ZW50TmFtZXMoKTsKKyAg
ICAgICAgSW50UG9pbnQgcm91bmRlZFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KHBvc2l0aW9u
KTsKKyAgICAgICAgYm9vbCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPSBtX2V2ZW50VHJh
Y2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KG5hbWVzLndoZWVsRXZlbnQsIHJvdW5k
ZWRQb3NpdGlvbikgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91cworICAgICAgICAgICAgfHwg
bV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2ludChuYW1lcy5tb3VzZXdo
ZWVsRXZlbnQsIHJvdW5kZWRQb3NpdGlvbikgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsK
ICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdU
cmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseTogd2hlZWxFdmVudCBhdCAi
IDw8IHdoZWVsRXZlbnQucG9zaXRpb24oKSA8PCAiIG1hcHBlZCB0byBjb250ZW50IHBvaW50ICIg
PDwgcG9zaXRpb24gPDwgIiwgaW4gbm9uLWZhc3QgcmVnaW9uICIgPDwgaXNTeW5jaHJvbm91c0Rp
c3BhdGNoUmVnaW9uKTsKIAogICAgICAgICBpZiAoaXNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9u
KQpAQCAtMjMzLDExICsyMzcsMTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbihGbG9hdFBvaW50IHBvc2l0aW9uKQogICAgIG1fbWFpbkZyYW1lU2Nyb2xs
UG9zaXRpb24gPSBwb3NpdGlvbjsKIH0KIAotVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2
ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoSW50UG9pbnQgcCkKK1RyYWNraW5nVHlwZSBTY3JvbGxp
bmdUcmVlOjpldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnROYW1lLCBJbnRQb2ludCBwKQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAg
ICAKLSAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2lu
dChwKTsKKyAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQ
b2ludChldmVudE5hbWUsIHApOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFu
ZEluUHJvZ3Jlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oCmluZGV4IDI2MTdiZmJhZDFkZTI3ZDE0OTMxNGRmMmUyZWQzNDlhZWYzNGRmMDIuLjEw
OWQxM2FiN2VmZTExNzAzMmE5YjVmNTMzMTM1NzI2MzA0NThmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkg
eyB9CiAjZW5kaWYKIAotICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBldmVudFRyYWNr
aW5nVHlwZUZvclBvaW50KEludFBvaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBUcmFja2luZ1R5
cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFt
ZSwgSW50UG9pbnQpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2U3NjNjODk1M2RjYThlNmRkN2NhY2FkNjI1MjQwN2M3MGM1Zjg2MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNw
cApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFRyYWNraW5nUmVn
aW9ucy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RyYWNraW5nVHlwZSBFdmVudFRyYWNr
aW5nUmVnaW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUs
IGNvbnN0IEludFBvaW50JiBwb2ludCkKK3sKKyAgICBhdXRvIHN5bmNocm9ub3VzUmVnaW9uSXRl
cmF0b3IgPSBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMuZmluZChldmVu
dE5hbWUpOworICAgIGlmIChzeW5jaHJvbm91c1JlZ2lvbkl0ZXJhdG9yICE9IGV2ZW50U3BlY2lm
aWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5lbmQoKSkgeworICAgICAgICBpZiAoc3luY2hy
b25vdXNSZWdpb25JdGVyYXRvci0+dmFsdWUuY29udGFpbnMocG9pbnQpKQorICAgICAgICAgICAg
cmV0dXJuIFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAgfQorCisgICAgaWYgKGFzeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uLmNvbnRhaW5zKHBvaW50KSkKKyAgICAgICAgcmV0dXJuIFRy
YWNraW5nVHlwZTo6QXN5bmNocm9ub3VzOworICAgIHJldHVybiBUcmFja2luZ1R5cGU6Ok5vdFRy
YWNraW5nOworfQorCitib29sIEV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpICYmIGV2
ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5pc0VtcHR5KCk7Cit9CisKK3Zv
aWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZShJbnRTaXplIG9mZnNldCkKK3sKKyAg
ICBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi50cmFuc2xhdGUob2Zmc2V0KTsKKyAgICBmb3Ig
KGF1dG8mIHNsb3QgOiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisg
ICAgICAgIHNsb3QudmFsdWUudHJhbnNsYXRlKG9mZnNldCk7Cit9CisKK3ZvaWQgRXZlbnRUcmFj
a2luZ1JlZ2lvbnM6OnVuaXRlU3luY2hyb25vdXNSZWdpb24oY29uc3QgU3RyaW5nJiBldmVudE5h
bWUsIGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQoreworICAgIGlmIChyZWdpb24uaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGFkZFJlc3VsdCA9IGV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5hZGQoZXZlbnROYW1lLCByZWdpb24pOworICAgIGlmICgh
YWRkUmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUu
dW5pdGUocmVnaW9uKTsKK30KKwordm9pZCBFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUoY29u
c3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQoreworICAgIGFz
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uLnVuaXRlKGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uKTsKKyAgICBmb3IgKGF1dG8mIHNsb3QgOiBldmVudFRyYWNr
aW5nUmVnaW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAg
ICAgIHVuaXRlU3luY2hyb25vdXNSZWdpb24oc2xvdC5rZXksIHNsb3QudmFsdWUpOworfQorCiti
b29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50
VHJhY2tpbmdSZWdpb25zJiBiKQoreworICAgIHJldHVybiBhLmFzeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24KKyAgICAgICAgJiYgYS5ldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmljU3lu
Y2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCmluZGV4IDFm
MDU1NjQwMTQ0MzhjYTM1MTg1ZWE1N2IwMDYzMTA4MzU5ZTczZTEuLjNkNThiYTU1ZWZkNjNlZDli
YWU0MDUwMWUzMDliODYxZmM5ZTljMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtMjYsNiArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJSZWdpb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSwzMiArNDIsMjAgQEAgc3RydWN0IEV2ZW50
VHJhY2tpbmdSZWdpb25zIHsKICAgICAvLyBSZWdpb24gZm9yIHdoaWNoIGV2ZW50cyBjYW4gYmUg
ZGlzcGF0Y2hlZCB3aXRob3V0IGJsb2NraW5nIHNjcm9sbGluZy4KICAgICBSZWdpb24gYXN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb247CiAKLSAgICAvLyBSZWdpb24gZm9yIHdoaWNoIGV2ZW50cyBt
dXN0IGJlIHNlbnQgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGRlZmF1bHQgYmVoYXZpb3IuCi0gICAg
UmVnaW9uIHN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgLy8gUmVnaW9ucyBmb3Igd2hp
Y2ggZXZlbnRzIG11c3QgYmUgc2VudCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBiZWhh
dmlvci4KKyAgICAvLyBUaGUga2V5IGlzIHRoZSBFdmVudCBOYW1lIHdpdGggYW4gYWN0aXZlIGhh
bmRsZXIuCisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKLSAgICBU
cmFja2luZ1R5cGUgdHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKTsKLX07Ci0K
LWlubGluZSBib29sIEV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpICYmIHN5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpOwotfQorICAgIHZvaWQgdHJhbnNsYXRlKEludFNp
emUpOworICAgIHZvaWQgdW5pdGVTeW5jaHJvbm91c1JlZ2lvbihjb25zdCBTdHJpbmcmIGV2ZW50
TmFtZSwgY29uc3QgUmVnaW9uJik7CisgICAgdm9pZCB1bml0ZShjb25zdCBFdmVudFRyYWNraW5n
UmVnaW9ucyYpOwogCi1pbmxpbmUgVHJhY2tpbmdUeXBlIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp0
cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCi17Ci0gICAgaWYgKHN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uY29udGFpbnMocG9pbnQpKQotICAgICAgICByZXR1cm4g
VHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKLSAgICBpZiAoYXN5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24uY29udGFpbnMocG9pbnQpKQotICAgICAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpBc3lu
Y2hyb25vdXM7Ci0gICAgcmV0dXJuIFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7Ci19CisgICAg
VHJhY2tpbmdUeXBlIHRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1l
LCBjb25zdCBJbnRQb2ludCYpOworfTsKIAotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBF
dmVudFRyYWNraW5nUmVnaW9ucyYgYSwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGIpCi17
Ci0gICAgcmV0dXJuIGEuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPT0gYi5hc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbgotICAgICAgICAmJiBhLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24g
PT0gYi5zeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwotfQorYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEV2ZW50VHJhY2tpbmdSZWdpb25zJiwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmKTsKK2lu
bGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0
IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24u
aAppbmRleCA1NDVlNzY0N2E2MjBkZjRhMjJhNGU4Mzg0Y2NjNjhlOTZmYzM4YWMzLi5kNzJlYzRi
MjY5NDY4MWVkMjFjNGJmOGE0MTZmNGMzMmQyMWE3MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZWdpb24uaApAQCAtMTk4LDYgKzE5OCwxMCBAQCBpbmxpbmUgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFJlZ2lvbiYgYSwgY29uc3QgUmVnaW9uJiBiKQogewogICAgIHJldHVy
biBhLm1fYm91bmRzID09IGIubV9ib3VuZHMgJiYgYS5tX3NoYXBlID09IGIubV9zaGFwZTsKIH0K
K2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVnaW9uJiBhLCBjb25zdCBSZWdpb24mIGIp
Cit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBSZWdpb246OlNoYXBlJiBhLCBjb25zdCBSZWdpb246OlNoYXBlJiBiKQogewpAQCAtMjA4
LDYgKzIxMiwxMCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZ2lvbjo6U3BhbiYg
YSwgY29uc3QgUmVnaW9uOjpTcGFuJiBiKQogewogICAgIHJldHVybiBhLnkgPT0gYi55ICYmIGEu
c2VnbWVudEluZGV4ID09IGIuc2VnbWVudEluZGV4OwogfQoraW5saW5lIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBSZWdpb246OlNwYW4mIGEsIGNvbnN0IFJlZ2lvbjo6U3BhbiYgYikKK3sKKyAgICBy
ZXR1cm4gIShhID09IGIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IDM1Nzg3MjgzNWU3
YTI1NjliZjk5ODVhYjdjZjQ1OTY4M2ZmYmFjYmIuLjg4NWU4ZWIwMGI5OWQwYzkyN2RiMmU3YmZj
ZDBmMGRiMTNkY2JiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcApAQCAtNDk0LDEwICs0OTQsMTEgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUmIG5vZGUsIGIK
ICAgICAgICAgICAgICAgICB0cyA8PCByZWN0OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0g
ICAgICAgIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzeW5jaHJvbm91c0V2ZW50UmVnaW9u
IDogbm9kZS5ldmVudFRyYWNraW5nUmVnaW9ucygpLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rp
c3BhdGNoUmVnaW9ucykgewogICAgICAgICAgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBncm91
cCh0cyk7Ci0gICAgICAgICAgICB0cyA8PCAic3luY2hyb25vdXMtZXZlbnQtdHJhY2tpbmctcmVn
aW9uIjsKLSAgICAgICAgICAgIGZvciAoYXV0byByZWN0IDogbm9kZS5ldmVudFRyYWNraW5nUmVn
aW9ucygpLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVjdHMoKSkgeworICAgICAgICAgICAg
dHMgPDwgInN5bmNocm9ub3VzLWV2ZW50LXRyYWNraW5nLXJlZ2lvbiBmb3IgZXZlbnQgIiA8PCBz
eW5jaHJvbm91c0V2ZW50UmVnaW9uLmtleTsKKworICAgICAgICAgICAgZm9yIChhdXRvIHJlY3Qg
OiBzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlLnJlY3RzKCkpIHsKICAgICAgICAgICAgICAg
ICB0cyA8PCAiXG4iOwogICAgICAgICAgICAgICAgIHRzLndyaXRlSW5kZW50KCk7CiAgICAgICAg
ICAgICAgICAgdHMgPDwgcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKaW5kZXggOTI0NmVlN2RkOTI3NmVlY2EzYjAxOTUzYWNhOWUwMDFl
ZTNjMTI4OC4uM2U1MmM5ZmI2OTkwZTgyYzZjMGFkMTc2MzY3NzAwM2UwYWY2NDNmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTEx
MSw3ICsxMTEsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbgogdm9pZCBBcmd1bWVudENvZGVy
PEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQogewogICAg
IGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b247Ci0gICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5zeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uOworICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVj
aWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8
RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBF
dmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCkBAIC0xMTksMTEgKzEx
OSwxMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBFdmVudAogICAgIFJlZ2lvbiBhc3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbjsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFzeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFJlZ2lvbiBzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3luY2hyb25vdXNEaXNw
YXRjaFJlZ2lvbikpCisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZXZlbnRT
cGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID0g
V1RGTW92ZShhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7Ci0gICAgZXZlbnRUcmFja2luZ1Jl
Z2lvbnMuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoc3luY2hyb25vdXNEaXNw
YXRjaFJlZ2lvbik7CisgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb25zID0gV1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbnMpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCBhYzg0MGRkNWU4NTJlMTdjZGFhYjBjOWJj
ZWI3Yjg0NjY3OTI1ZWU0Li5hYzk4YzY0ODA5NjkxMWEzMDNlYTQ5ZTQ3MGM3YWE1NjMyZDhjNTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTE0OSw5
ICsxNDksOSBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JgogICAgIHJldHVybiByZXN1bHQgPT0g
U2Nyb2xsaW5nVHJlZTo6RGlkSGFuZGxlRXZlbnQ7IC8vIEZJWE1FOiBoYW5kbGUgb3RoZXIgdmFs
dWVzLgogfQogCi1UcmFja2luZ1R5cGUgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChJbnRQb2ludCBwKSBjb25zdAorVHJhY2tpbmdUeXBl
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9p
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50IHApIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS0+ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChwKTsK
KyAgICByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGV2
ZW50TmFtZSwgcCk7CiB9CiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQsIGNvbnN0IEZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBzY2FsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggMGRkYjUwNjkxMmY2MTdj
MzA2NDViOTlkMTAwOTY4MTY5NDdiYTg3ZC4uY2Y1MGRkMDYyNzkxMzM0YTI3MjQ4NGU0NzEwYTRj
OTY5ODQxMzE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3Jv
bGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBu
ZXdTY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bik7CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiAKLSAgICBXZWJDb3JlOjpUcmFj
a2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludCkgY29u
c3Q7CisgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsK
IAogICAgIC8vIENhbGxlZCBleHRlcm5hbGx5IHdoZW4gbmF0aXZlIHZpZXdzIG1vdmUgYXJvdW5k
LgogICAgIHZvaWQgdmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9u
UmVjdCwgZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggMTdkYzkxZWY4NjE2N2U3NGE4YzcwZjM4NjRhYzMxODkxZGM3NzFkZC4uMmRk
YzY0OGJmMDdlZTFiMWIzYzZhZTMzOGNkY2VhMzlkNmQ2MzU2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE5NTAsMjQgKzE5NTAsNzQgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3Qg
cHJvY2Vzc1R5cGUsIGNvbnMKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKLVRyYWNraW5n
VHlwZSBXZWJQYWdlUHJveHk6OnRvdWNoRXZlbnRUcmFja2luZ1R5cGUoY29uc3QgV2ViVG91Y2hF
dmVudCYgdG91Y2hTdGFydEV2ZW50KSBjb25zdAorc3RhdGljIFRyYWNraW5nVHlwZSBtZXJnZVRy
YWNraW5nVHlwZXMoVHJhY2tpbmdUeXBlIGEsIFRyYWNraW5nVHlwZSBiKQoreworICAgIGlmIChz
dGF0aWNfY2FzdDx1aW50cHRyX3Q+KGIpID4gc3RhdGljX2Nhc3Q8dWludHB0cl90PihhKSkKKyAg
ICAgICAgcmV0dXJuIGI7CisgICAgcmV0dXJuIGE7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVUb3VjaEV2ZW50VHJhY2tpbmcoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hTdGFydEV2
ZW50KQogewogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgVHJhY2tpbmdUeXBlIHRy
YWNraW5nVHlwZSA9IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgY29uc3QgRXZlbnRO
YW1lcyYgbmFtZXMgPSBldmVudE5hbWVzKCk7CiAgICAgZm9yIChhdXRvJiB0b3VjaFBvaW50IDog
dG91Y2hTdGFydEV2ZW50LnRvdWNoUG9pbnRzKCkpIHsKLSAgICAgICAgVHJhY2tpbmdUeXBlIHRv
dWNoUG9pbnRUcmFja2luZ1R5cGUgPSBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHktPmV2ZW50
VHJhY2tpbmdUeXBlRm9yUG9pbnQodG91Y2hQb2ludC5sb2NhdGlvbigpKTsKLSAgICAgICAgaWYg
KHRvdWNoUG9pbnRUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91cykKLSAg
ICAgICAgICAgIHJldHVybiBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOworICAgICAgICBJbnRQ
b2ludCBsb2NhdGlvbiA9IHRvdWNoUG9pbnQubG9jYXRpb24oKTsKKyAgICAgICAgYXV0byB1cGRh
dGVUcmFja2luZ1R5cGUgPSBbdGhpcywgbG9jYXRpb25dKFRyYWNraW5nVHlwZSYgdHJhY2tpbmdU
eXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSkgeworICAgICAgICAgICAgaWYgKHRy
YWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzKQorICAgICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBpZiAodG91Y2hQb2ludFRyYWNraW5nVHlwZSA9PSBUcmFja2lu
Z1R5cGU6OkFzeW5jaHJvbm91cykKLSAgICAgICAgICAgIHRyYWNraW5nVHlwZSA9IHRvdWNoUG9p
bnRUcmFja2luZ1R5cGU7Ci0gICAgfQorICAgICAgICAgICAgVHJhY2tpbmdUeXBlIHRyYWNraW5n
VHlwZUZvckxvY2F0aW9uID0gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LT5ldmVudFRyYWNr
aW5nVHlwZUZvclBvaW50KGV2ZW50TmFtZSwgbG9jYXRpb24pOwogCi0gICAgcmV0dXJuIHRyYWNr
aW5nVHlwZTsKKyAgICAgICAgICAgIHRyYWNraW5nVHlwZSA9IG1lcmdlVHJhY2tpbmdUeXBlcyh0
cmFja2luZ1R5cGUsIHRyYWNraW5nVHlwZUZvckxvY2F0aW9uKTsKKyAgICAgICAgfTsKKyAgICAg
ICAgdXBkYXRlVHJhY2tpbmdUeXBlKG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoRm9yY2VDaGFu
Z2VkVHJhY2tpbmcsIG5hbWVzLnRvdWNoZm9yY2VjaGFuZ2VFdmVudCk7CisgICAgICAgIHVwZGF0
ZVRyYWNraW5nVHlwZShtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaFN0YXJ0VHJhY2tpbmcsIG5h
bWVzLnRvdWNoc3RhcnRFdmVudCk7CisgICAgICAgIHVwZGF0ZVRyYWNraW5nVHlwZShtX3RvdWNo
RXZlbnRUcmFja2luZy50b3VjaE1vdmVUcmFja2luZywgbmFtZXMudG91Y2htb3ZlRXZlbnQpOwor
ICAgICAgICB1cGRhdGVUcmFja2luZ1R5cGUobV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hFbmRU
cmFja2luZywgbmFtZXMudG91Y2hlbmRFdmVudCk7CisgICAgfQogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0odG91Y2hTdGFydEV2ZW50KTsKKyAgICBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEZv
cmNlQ2hhbmdlZFRyYWNraW5nID0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICBtX3Rv
dWNoRXZlbnRUcmFja2luZy50b3VjaFN0YXJ0VHJhY2tpbmcgPSBUcmFja2luZ1R5cGU6OlN5bmNo
cm9ub3VzOworICAgIG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoTW92ZVRyYWNraW5nID0gVHJh
Y2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEVu
ZFRyYWNraW5nID0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKICNlbmRpZiAvLyBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQotICAgIHJldHVybiBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwor
fQorCitUcmFja2luZ1R5cGUgV2ViUGFnZVByb3h5Ojp0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGNv
bnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoU3RhcnRFdmVudCkgY29uc3QKK3sKKyAgICAvLyBXZSBz
ZW5kIGFsbCBldmVudHMgaWYgYW55IHR5cGUgaXMgbmVlZGVkLCB3ZSBqdXN0IGRvIGl0IGFzeW5j
aHJvbm91c2x5IGZvciB0aGUgdHlwZXMgdGhhdCBhcmUgbm90IHRyYWNrZWQuCisgICAgLy8KKyAg
ICAvLyBUb3VjaCBldmVudHMgZGVmaW5lIGEgc2VxdWVuY2Ugd2l0aCBzdHJvbmcgZGVwZW5kZW5j
aWVzLiBGb3IgZXhhbXBsZSwgd2UgY2FuIGV4cGVjdAorICAgIC8vIGEgVG91Y2hNb3ZlIHRvIG9u
bHkgYXBwZWFyIGFmdGVyIGEgVG91Y2hTdGFydCwgYW5kIHRoZSBpZHMgb2YgdGhlIHRvdWNoIHBv
aW50cyBpcyBjb25zaXN0ZW50IGJldHdlZW4KKyAgICAvLyB0aGUgdHdvLgorICAgIC8vCisgICAg
Ly8gV2ViQ29yZSBzaG91bGQgbm90IGhhdmUgdG8gc2V0IHVwIGl0cyBzdGF0ZSBjb3JyZWN0bHkg
YWZ0ZXIgc29tZSBldmVudHMgd2VyZSBkaXNtaXNzZWQuCisgICAgLy8gRm9yIGV4YW1wbGUsIHdl
IGRvbid0IHdhbnQgdG8gc2VuZCBhIFRvdWNoTW92ZWQgd2l0aG91dCBhIFRvdWNoUHJlc3NlZC4K
KyAgICAvLyBXZSBzZW5kIGV2ZXJ5dGhpbmcsIFdlYkNvcmUgdXBkYXRlcyBpdHMgaW50ZXJuYWwg
c3RhdGUgYW5kIGRpc3BhdGNoIHdoYXQgaXMgbmVlZGVkIHRvIHRoZSBwYWdlLgorICAgIFRyYWNr
aW5nVHlwZSBnbG9iYWxUcmFja2luZ1R5cGUgPSBtX3RvdWNoRXZlbnRUcmFja2luZy5pc1RyYWNr
aW5nQW55dGhpbmcoKSA/IFRyYWNraW5nVHlwZTo6QXN5bmNocm9ub3VzIDogVHJhY2tpbmdUeXBl
OjpOb3RUcmFja2luZzsKKworICAgIGdsb2JhbFRyYWNraW5nVHlwZSA9IG1lcmdlVHJhY2tpbmdU
eXBlcyhnbG9iYWxUcmFja2luZ1R5cGUsIG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoRm9yY2VD
aGFuZ2VkVHJhY2tpbmcpOworICAgIGZvciAoYXV0byYgdG91Y2hQb2ludCA6IHRvdWNoU3RhcnRF
dmVudC50b3VjaFBvaW50cygpKSB7CisgICAgICAgIHN3aXRjaCAodG91Y2hQb2ludC5zdGF0ZSgp
KSB7CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOgor
ICAgICAgICAgICAgZ2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5cGVzKGdsb2Jh
bFRyYWNraW5nVHlwZSwgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hFbmRUcmFja2luZyk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRv
dWNoUHJlc3NlZDoKKyAgICAgICAgICAgIGdsb2JhbFRyYWNraW5nVHlwZSA9IG1lcmdlVHJhY2tp
bmdUeXBlcyhnbG9iYWxUcmFja2luZ1R5cGUsIG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoU3Rh
cnRUcmFja2luZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJQbGF0Zm9y
bVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQ6CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFN0YXRpb25hcnk6CisgICAgICAgICAgICBnbG9iYWxUcmFja2luZ1R5cGUgPSBt
ZXJnZVRyYWNraW5nVHlwZXMoZ2xvYmFsVHJhY2tpbmdUeXBlLCBtX3RvdWNoRXZlbnRUcmFja2lu
Zy50b3VjaE1vdmVUcmFja2luZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkOgorICAgICAgICAgICAgZ2xvYmFs
VHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5cGVzKGdsb2JhbFRyYWNraW5nVHlwZSwgVHJh
Y2tpbmdUeXBlOjpBc3luY2hyb25vdXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm4gZ2xvYmFsVHJhY2tpbmdUeXBlOwogfQogCiAjZW5kaWYKQEAg
LTE5OTMsMTQgKzIwNDMsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRT
eW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogICAgICAgICByZXR1cm47
CiAKICAgICBpZiAoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaFN0YXJ0KSB7Ci0gICAg
ICAgIG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSB0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGV2
ZW50KTsKKyAgICAgICAgdXBkYXRlVG91Y2hFdmVudFRyYWNraW5nKGV2ZW50KTsKICAgICAgICAg
bV9sYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCA9IGRvd25jYXN0PFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk+KCpkcmF3aW5nQXJlYSgpKS5sYXN0Q29tbWl0dGVk
TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpOwogICAgIH0KIAotICAgIGlmIChtX3RvdWNoRXZlbnRz
VHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcpCisgICAgVHJhY2tpbmdU
eXBlIHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gdG91Y2hFdmVudFRyYWNraW5nVHlwZShldmVu
dCk7CisgICAgaWYgKHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6Tm90
VHJhY2tpbmcpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3RvdWNoRXZlbnRzVHJhY2tp
bmdUeXBlID09IFRyYWNraW5nVHlwZTo6QXN5bmNocm9ub3VzKSB7CisgICAgaWYgKHRvdWNoRXZl
bnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6QXN5bmNocm9ub3VzKSB7CiAgICAgICAg
IC8vIFdlIGNhbiBlbmQgdXAgaGVyZSBpZiBhIG5hdGl2ZSBnZXN0dXJlIGhhcyBub3Qgc3RhcnRl
ZCBidXQgdGhlIGV2ZW50IGhhbmRsZXJzIGFyZSBwYXNzaXZlLgogICAgICAgICAvLwogICAgICAg
ICAvLyBUaGUgY2xpZW50IG9mIFdlYlBhZ2VQcm94eSBhc2tzIHRoZSBldmVudCB0byBiZSBzZW50
IHN5bmNocm9ub3VzbHkgc2luY2UgdGhlIHRvdWNoIGV2ZW50CkBAIC0yMDIxLDcgKzIwNzIsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkoTmF0aXZl
V2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVy
KCkuc3RvcCgpOwogCiAgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkK
LSAgICAgICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IFRyYWNraW5nVHlwZTo6Tm90VHJh
Y2tpbmc7CisgICAgICAgIG1fdG91Y2hFdmVudFRyYWNraW5nLnJlc2V0KCk7CiB9CiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkoY29uc3QgTmF0aXZl
V2ViVG91Y2hFdmVudCYgZXZlbnQpCkBAIC0yMDI5LDEzICsyMDgwLDE0IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkoY29uc3QgTmF0aXZlV2ViVG91
Y2hFdmVudCYgZXZlCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tp
bmcpCisgICAgVHJhY2tpbmdUeXBlIHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gdG91Y2hFdmVu
dFRyYWNraW5nVHlwZShldmVudCk7CisgICAgaWYgKHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09
IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVyOjpUb3VjaEV2ZW50KG1fcGFnZUlE
LCBldmVudCksIDApOwogCiAgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQo
KSkKLSAgICAgICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IFRyYWNraW5nVHlwZTo6Tm90
VHJhY2tpbmc7CisgICAgICAgIG1fdG91Y2hFdmVudFRyYWNraW5nLnJlc2V0KCk7CiB9CiAKICNl
bGlmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yMDQ1LDkgKzIwOTcsOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVu
dCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6
VG91Y2hTdGFydCkKLSAgICAgICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IHRvdWNoRXZl
bnRUcmFja2luZ1R5cGUoZXZlbnQpOworICAgICAgICB1cGRhdGVUb3VjaEV2ZW50VHJhY2tpbmco
ZXZlbnQpOwogCi0gICAgaWYgKG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdU
eXBlOjpOb3RUcmFja2luZykKKyAgICBpZiAodG91Y2hFdmVudFRyYWNraW5nVHlwZShldmVudCkg
PT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
SWYgdGhlIHBhZ2UgaXMgc3VzcGVuZGVkLCB3aGljaCBzaG91bGQgYmUgdGhlIGNhc2UgZHVyaW5n
IHBhbm5pbmcsIHBpbmNoaW5nCkBAIC0yMDcwLDcgKzIxMjIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAg
ICB9CiAKICAgICBpZiAoZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKQotICAgICAg
ICBtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsK
KyAgICAgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcucmVzZXQoKTsKIH0KICNlbmRpZiAvLyBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQogCkBAIC01MDg5LDcgKzUxNDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uIHJlc2V0U3RhdGVSZWFzb24pCiAgICAgfQog
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBl
ID0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICBtX3RvdWNoRXZlbnRUcmFja2luZy5y
ZXNldCgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmNzE4NWQwYmQ3MzdiZGJkZGU4ODQ5
MDg3ZTk2ZTk2MmI2ZjRkZjcyLi5mNGRkZTM2OGFkOWUwZGRjM2I2ODczMjQ5MmUyMmFlMjk4YzU2
ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDY4LDYg
KzE0NjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZFdoZWVsRXZlbnQoY29uc3QgV2ViV2hl
ZWxFdmVudCYpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICB2b2lkIHVwZGF0ZVRv
dWNoRXZlbnRUcmFja2luZyhjb25zdCBXZWJUb3VjaEV2ZW50Jik7CiAgICAgV2ViQ29yZTo6VHJh
Y2tpbmdUeXBlIHRvdWNoRXZlbnRUcmFja2luZ1R5cGUoY29uc3QgV2ViVG91Y2hFdmVudCYpIGNv
bnN0OwogI2VuZGlmCiAKQEAgLTE2OTUsNyArMTY5NiwyOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6
dW5pcXVlX3B0cjxOYXRpdmVXZWJNb3VzZUV2ZW50PiBtX2N1cnJlbnRseVByb2Nlc3NlZE1vdXNl
RG93bkV2ZW50OwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBXZWJDb3JlOjpUcmFj
a2luZ1R5cGUgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSB7IFdlYkNvcmU6OlRyYWNraW5nVHlw
ZTo6Tm90VHJhY2tpbmcgfTsKKyAgICBzdHJ1Y3QgVG91Y2hFdmVudFRyYWNraW5nIHsKKyAgICAg
ICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIHRvdWNoRm9yY2VDaGFuZ2VkVHJhY2tpbmcgeyBXZWJD
b3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nIH07CisgICAgICAgIFdlYkNvcmU6OlRyYWNr
aW5nVHlwZSB0b3VjaFN0YXJ0VHJhY2tpbmcgeyBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRy
YWNraW5nIH07CisgICAgICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSB0b3VjaE1vdmVUcmFja2lu
ZyB7IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmcgfTsKKyAgICAgICAgV2ViQ29y
ZTo6VHJhY2tpbmdUeXBlIHRvdWNoRW5kVHJhY2tpbmcgeyBXZWJDb3JlOjpUcmFja2luZ1R5cGU6
Ok5vdFRyYWNraW5nIH07CisKKyAgICAgICAgYm9vbCBpc1RyYWNraW5nQW55dGhpbmcoKSBjb25z
dAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdG91Y2hGb3JjZUNoYW5nZWRUcmFja2lu
ZyAhPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nCisgICAgICAgICAgICAgICAg
fHwgdG91Y2hTdGFydFRyYWNraW5nICE9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tp
bmcKKyAgICAgICAgICAgICAgICB8fCB0b3VjaE1vdmVUcmFja2luZyAhPSBXZWJDb3JlOjpUcmFj
a2luZ1R5cGU6Ok5vdFRyYWNraW5nCisgICAgICAgICAgICAgICAgfHwgdG91Y2hFbmRUcmFja2lu
ZyAhPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCByZXNldCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRvdWNoRm9yY2VDaGFu
Z2VkVHJhY2tpbmcgPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAg
ICAgICAgdG91Y2hTdGFydFRyYWNraW5nID0gV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFj
a2luZzsKKyAgICAgICAgICAgIHRvdWNoTW92ZVRyYWNraW5nID0gV2ViQ29yZTo6VHJhY2tpbmdU
eXBlOjpOb3RUcmFja2luZzsKKyAgICAgICAgICAgIHRvdWNoRW5kVHJhY2tpbmcgPSBXZWJDb3Jl
OjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAgICB9CisgICAgfTsKKyAgICBUb3Vj
aEV2ZW50VHJhY2tpbmcgbV90b3VjaEV2ZW50VHJhY2tpbmc7CiAjZW5kaWYKICNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgRGVxdWU8UXVl
dWVkVG91Y2hFdmVudHM+IG1fdG91Y2hFdmVudFF1ZXVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY0ZGI0NjFjODA4MThk
MDk1NzI1ZTA5YTMwNzExN2U1MTczYzc1YjEuLjk5NzI5MjQyZDAwNzBhMGJjZjJhODUzOTNiODYw
MzgzYzRjNDEyYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNi0wNi0yMiAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3BlY2lhbGl6ZSBzeW5j
aHJvbm91cyBldmVudCB0cmFja2luZyBwZXIgZXZlbnQgdHlwZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODI2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Rh
cC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3Rl
bmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUtbGlzdGVuZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdp
dGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3Rp
dmUtdG91Y2gtZW5kLWxpc3RlbmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3Np
dmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVu
ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
dGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0
aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1z
dGFydC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1z
dGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2
ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRt
bDogQWRkZWQuCisKIDIwMTYtMDYtMjIgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVg6IEFkZCBzdXBwb3J0IGZvciBDU1M0IDpmb2N1cy13aXRoaW4g
cHNldWRvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFw
LXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3NpdmUtbGlzdGVu
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzJmOWYzOGQyNTJjNmVhNjhkOTIzZjc5MjhiOTc1
M2U0ODZkM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNz
aXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitDYW5jZWxsZWQgZHJh
ZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0
b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAorTGlzdGVuZXIgZG9j
dW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBh
dCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3Vj
aG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgMTAwLCAxMDAKK0xpc3RlbmVyIGRvY3Vt
ZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUg
ZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0xpc3RlbmVyIGRvY3VtZW50
IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdl
dDEKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCkKKworTGlzdGVuZXIgdGFy
Z2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0
IDE1MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFy
Z2V0dGluZyBldmVudFRhcmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZl
ZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAy
MDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3Vj
aG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMjAwLCAxMDAKK0xpc3RlbmVyIHRhcmdl
dDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFy
Z2V0MgorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVu
ZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorQ2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0
MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2
ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitM
aXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZl
bnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xp
c3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0
dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDMw
MCwgMTAwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hl
bmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2Fu
Y2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworTGlzdGVuZXIg
ZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MworRG9uZQorVXNlbGVzcyBDbGljayBpbiB0aGUgZG9jdW1lbnQsIHNob3VsZCBi
ZSBwYXNzaXZlCisKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQg
dGFyZ2V0dGluZyBhdCAzMDAsIDMwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQg
dG91Y2hlbmQgdGFyZ2V0dGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0
aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS1kb2N1bWVudC13aXRoLXBhc3NpdmUt
bGlzdGVuZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2QzZjgzMzM0YzllY2RlNzZlNmY2YzJiNGVhNGMy
MDA5ZWZkOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNz
aXZlLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8
aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGdldENsaWNrVUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAK
KyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
c2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gZ2V0RHJhZ1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgke3N0YXJ0WH0sICR7
c3RhcnRZfSwgJHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5j
dGlvbiBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBO
byBtb3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91
c2VvdmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91
c2VvdXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3Vz
ZWVudGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91
c2VsZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21v
dXNlZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21v
dXNlbW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21v
dXNldXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcs
IGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5j
dGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lciwgc2hvdWxkUHJldmVudERlZmF1bHQgPSBmYWxzZSkg
eworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChldmVudCkgeworICAg
ICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVj
ZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsgJyBldmVu
dCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAg
ICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBd
LmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBl
dmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZ
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAg
Jzxicj4nOworCisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRQcmV2ZW50RGVmYXVsdCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3Np
dmUnOiB0cnVlIH0pOworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91
Y2htb3ZlJywgZ2V0TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOwor
ICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dF
dmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICBkb2N1
bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJkb2N1bWVu
dCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJn
ZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIp
LCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0
ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiLCB0cnVlKSk7CisgICAgICAg
ICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRh
cmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2
ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFz
c2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdldmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUn
OiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1v
dmUnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIsIHRydWUpKTsKKyAgICAgICAgICAgIHRhcmdldDMu
YWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdw
YXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9
KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0
MSAoZ3JlZW4pPC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRE
cmFnVUlTY3JpcHQoNTAsIDUwLCAxMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8
aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCgxNTAsIDUwLCAyMDAsIDEw
MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVz
dWx0OworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBv
biBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMjUwLCA1MCwgMzAwLCAxMDApLCBmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAg
ICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5Vc2VsZXNzIENsaWNrIGluIHRoZSBk
b2N1bWVudCwgc2hvdWxkIGJlIHBhc3NpdmU8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldENsaWNrVUlTY3JpcHQoMzAwLCAzMDApLCBmdW5j
dGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+
CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5
IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJn
ZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2
ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAg
ICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxl
ZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgIGJvZHkgewor
ICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFk
PgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZl
bnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+CisgICAgICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+
CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uCisgICAg
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0
aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBh
c3NpdmUtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MmY5ZjM4ZDI1MmM2ZWE2
OGQ5MjNmNzkyOGI5NzUzZTQ4NmQzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5k
b3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitD
YW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNl
aXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAor
TGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgMTAwLCAxMDAKK0xp
c3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVk
IGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEKK0xpc3Rl
bmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGlu
ZyBldmVudFRhcmdldDEKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCkKKwor
TGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZl
bnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRv
dWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgdGFy
Z2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MiBhdCAyMDAsIDEwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMjAwLCAxMDAKK0xp
c3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0
aW5nIGV2ZW50VGFyZ2V0MgorTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBl
dmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorQ2FuY2VsbGVkIGRy
YWcgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBldmVudCB0
b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRh
cmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBh
dCAyNTAsIDUwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2
ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQg
MzAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3Vj
aG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIGRvY3Vt
ZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUg
ZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIHRhcmdldDEg
cmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MworTGlzdGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworRG9uZQorVXNlbGVzcyBDbGljayBpbiB0aGUgZG9jdW1l
bnQsIHNob3VsZCBiZSBwYXNzaXZlCisKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50
IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBhdCAzMDAsIDMwMAorTGlzdGVuZXIgZG9jdW1lbnQgcmVj
ZWl2ZWQgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUt
d2luZG93LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdpdGgt
cGFzc2l2ZS1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MDM4NDA1MjNkZjg5NTliMDY4OTRh
ODc3NDI0NDMzMmVmMzA3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0
aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGdldENsaWNrVUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRy
b2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gZ2V0RHJhZ1VJU2NyaXB0KHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kcmFnRnJvbVBvaW50VG9Qb2ludCgke3N0YXJ0
WH0sICR7c3RhcnRZfSwgJHtlbmRYfSwgJHtlbmRZfSwgMC4xNSwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlM
RUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50
LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2VvdmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2VsZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdjbGljaycsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Nj
cm9sbCcsIGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAg
ICBmdW5jdGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lciwgc2hvdWxkUHJldmVudERlZmF1bHQgPSBm
YWxzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChldmVudCkg
eworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciAr
ICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsg
JyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0Lmlk
OworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3Vj
aGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0
ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5j
bGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAgJzxicj4nOworCisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRQcmV2ZW50RGVm
YXVsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJkb2N1bWVudCIpLCB7ICdw
YXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0
b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dF
dmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQi
KSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGxldCB0YXJnZXQxID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAgICAgICAgICAgdGFyZ2V0
MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwg
eyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiwgdHJ1ZSkpOworICAgICAgICAg
ICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJn
ZXQxIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVu
dExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3Np
dmUnOiB0cnVlIH0pOworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZXZlbnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzog
dHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3Zl
JywgZ2V0TG9nRXZlbnQoInRhcmdldDMiLCB0cnVlKSk7CisgICAgICAgICAgICB0YXJnZXQzLmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFz
c2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3Rv
dWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7
CisKKyAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDEg
KGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJh
Z1VJU2NyaXB0KDUwLCA1MCwgMTAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgx
PkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMTUwLCA1MCwgMjAwLCAxMDAp
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3Vs
dDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24g
VGFyZ2V0MyAoYmx1ZSk8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDI1MCwgNTAsIDMwMCwgMTAwKSwgZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VXNlbGVzcyBDbGljayBpbiB0aGUgZG9j
dW1lbnQsIHNob3VsZCBiZSBwYXNzaXZlPC9oMT4iOworICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRDbGlja1VJU2NyaXB0KDMwMCwgMzAwKSwgZnVuY3Rp
b24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ291dHB1dCcpLmlubmVySFRNTCA9IG91dHB1dDsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgor
ICAgICAgICAqIHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAgICAgICAgYm9keSB7
CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0
MSwgI2V2ZW50VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVu
dFRhcmdldDEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAg
IH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0
OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICBib2R5IHsKKyAg
ICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50
VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAg
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0Pgor
ICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10
b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NmI5ZTM4NjEzYmM0
ZmI0OGViN2I1YmExYjg3ZDRhYzgzNDQzZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5l
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGFwIG9uIFRhcmdldDEgKGdyZWVuKQor
CisoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKKyAgKHNjcm9sbGFibGUgYXJlYSBzaXplIDgwMCA2MDAp
CisgIChjb250ZW50cyBzaXplIDgwMCA2MDApCisgIChzeW5jaHJvbm91cyBldmVudCBkaXNwYXRj
aCByZWdpb24KKyAgICBhdCAoMCwwKSBzaXplIDMwMHgxMDApCispCitMaXN0ZW5lciB0YXJnZXQx
IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdl
dDEKK0RvbmUKK1RhcCBvbiBUYXJnZXQyIChyZWQpCisKKyhGcmFtZSBzY3JvbGxpbmcgbm9kZQor
ICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgODAwIDYwMCkKKyAgKGNvbnRlbnRzIHNpemUgODAwIDYw
MCkKKyAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAgIGF0ICgwLDApIHNp
emUgMzAweDEwMCkKKykKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVu
dCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorVGFwIG9uIFRhcmdldDMg
KGJsdWUpCisKKyhGcmFtZSBzY3JvbGxpbmcgbm9kZQorICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUg
ODAwIDYwMCkKKyAgKGNvbnRlbnRzIHNpemUgODAwIDYwMCkKKyAgKHN5bmNocm9ub3VzIGV2ZW50
IGRpc3BhdGNoIHJlZ2lvbgorICAgIGF0ICgwLDApIHNpemUgMzAweDEwMCkKKykKK0xpc3RlbmVy
IHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NDM2YjMzZWZlNDZkM2Q0OGY4Nzg5MWM3ZjIwNzgwYjYxMWU2OTk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Rh
cC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbApAQCAtMCwwICsxLDEwNiBAQAor
PCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUi
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIGZhaWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
J0ZBSUxFRCE6IE5vIG1vdXNlIGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsg
ZXZlbnQudHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZW92ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZW91dCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ21vdXNlZW50ZXInLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdtb3VzZWxlYXZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2Vkb3duJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2Vtb3ZlJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2V1cCcsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2NsaWNrJywgZmFpbCk7CisKKyAgICAgICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIGdldExvZ0V2ZW50KGxpc3RlbmVyKSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnPHByZT4nICsgd2luZG93LmludGVybmFscy5zY3JvbGxpbmdTdGF0ZVRyZWVB
c1RleHQoKSArICc8L3ByZT4nOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3Rl
bmVyICcgKyBsaXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNh
bmNlbGFibGUnIDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAn
ICsgZXZlbnQudGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hl
c1swXSAmJiBldmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsg
ZXZlbnQudG91Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAgJzxicj4nOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZXZlbnRUYXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisKKyAgICAgICAgICAgIG91
dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDUwLCA1MCksIGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgxNTAsIDUwKSwgZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAg
ICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQzIChibHVlKTwvaDE+IjsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgy
NTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZh
bHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICogeyB0b3VjaC1hY3Rp
b246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjog
MDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZl
bnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7CisgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJn
ZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9Cisg
ICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEw
MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9
ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAg
IDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMgdGVzdCByZXF1aXJl
cyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRo
LXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRl
LWFjdGl2ZS1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjYzlhNTAzM2ZlMjBjZDVjOWE1ZGU5
ZWNlZWExYWYxZGZhMTJjODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1pbnNpZGUtYWN0aXZlLWxp
c3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFVJ
U2NyaXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAg
ICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0
UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29u
dHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50
KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBz
aG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsK
KyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsK
KyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworCisg
ICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dF
dmVudChsaXN0ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVu
dChldmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBs
aXN0ZW5lciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUn
IDogJycpICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQu
dGFyZ2V0LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBl
dmVudC50b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnIGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91
Y2hlc1swXS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAnPGJyPic7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnZGVm
YXVsdFByZXZlbnRlZCBiZWZvcmUgcHJldmVudERlZmF1bHQoKTogJyArIGV2ZW50LmRlZmF1bHRQ
cmV2ZW50ZWQgKyAnPGJyPic7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZh
dWx0KCk7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnZGVmYXVsdFByZXZlbnRlZCBh
ZnRlciBwcmV2ZW50RGVmYXVsdCgpOiAnICsgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCArICc8YnI+
JzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCB0
YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAgICAg
ICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQo
InRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNo
bW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRF
dmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAg
ICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50
KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZXZlbnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzog
dHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3Zl
JywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAg
ICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRh
cmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2
ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFz
c2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJn
ZXQxIChncmVlbik8L2gxPiI7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdl
dFVJU2NyaXB0KDUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIG91
dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRh
cmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlw
dChnZXRVSVNjcmlwdCgxNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAg
ICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAi
PGgxPlRhcCBvbiBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgyNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0
cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAg
ICA8c3R5bGU+CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAg
ICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAj
ZXZlbnRUYXJnZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAg
ICAgICAgI2V2ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
ICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgPC9z
dHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0x
Ij4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8
ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgor
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYg
aWQ9b3V0cHV0PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8g
cnVuLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxpc3Rl
bmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAt
d2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjVkYWRiNjExODkyOGU4Nzg0ZjVlMGFmNWViM2UzOTU3MTdlZWU5MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRv
dWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGFwIG9uIFRh
cmdldDEgKGdyZWVuKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoZW5k
IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitUYXAgb24gVGFyZ2V0MiAocmVkKQorCitM
aXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQyCitEb25lCitUYXAgb24gVGFyZ2V0MyAoYmx1ZSkKKworTGlzdGVuZXIgdGFyZ2V0MSBy
ZWNlaXZlZCBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10
b3VjaC1lbmQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYy
NjA1ZDIyOTRhMDhlYTE1Y2Y1Nzk2YjU4NDdhOGYwYTE3MGQxYWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3Vj
aC1lbmQtbGlzdGVuZXIuaHRtbApAQCAtMCwwICsxLDEwNSBAQAorPCFET0NUWVBFIGh0bWw+CisK
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gZ2V0VUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAg
ICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2lu
Z2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNj
cmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGZh
aWwoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxFRCE6IE5vIG1vdXNl
IGV2ZW50IHNob3VsZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQudHlwZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXIn
LCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcs
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXIn
LCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZl
JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3du
JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3Zl
JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcs
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZmFp
bCk7CisKKyAgICAgICAgICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGdldExvZ0V2ZW50KGxpc3RlbmVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
IGxvZ0V2ZW50KGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnTGlzdGVu
ZXIgJyArIGxpc3RlbmVyICsgJyByZWNlaXZlZCcgKyAoZXZlbnQuY2FuY2VsYWJsZSA/ICcgY2Fu
Y2VsYWJsZScgOiAnJykgKyAnIGV2ZW50ICcgKyBldmVudC50eXBlICsgJyB0YXJnZXR0aW5nICcg
KyBldmVudC50YXJnZXQuaWQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50b3VjaGVz
WzBdICYmIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICcgYXQgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCArICcsICcgKyBl
dmVudC50b3VjaGVzWzBdLmNsaWVudFk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICAnPGJyPic7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdldmVudFRhcmdldDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5l
cigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9
KTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDEgKGdyZWVuKTwv
aDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoNTAs
IDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3Vs
dDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0MiAocmVkKTwv
aDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0
KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0
ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRh
cmdldDMgKGJsdWUpPC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGdldFVJU2NyaXB0KDI1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5pbm5lckhU
TUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAg
ICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAgICAgIGJvZHkgewor
ICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEs
ICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRU
YXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9
CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDog
MTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgor
PGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZlbnRU
YXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+CisgICAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+Cisg
ICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uCisgICAgPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtZW5k
LWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gt
ZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNhMzJm
ZGM0MDc2NzZjN2QzMjBjZWYwNjVhYTMzMzEzMWM5Y2Y1NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0
YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE3IEBACitUYXAgb24gVGFyZ2V0MSAoZ3JlZW4pCisKK0xpc3RlbmVyIHRhcmdl
dDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCA1
MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVu
ZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MQorRG9uZQorVGFwIG9uIFRhcmdldDIgKHJlZCkKKwor
TGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZl
bnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJs
ZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQorVGFwIG9uIFRh
cmdldDMgKGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFy
dCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJl
Y2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1
MAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFi
bGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gt
c3RhcnQtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0
LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTE1OWJmNTUxMDUwNDE1NWUwYWQxNWMyZGE4ZThjMWY4NWM2MDE1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRv
dWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKQEAg
LTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFVJU2NyaXB0KHgsIHkpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9pbnQoJHt4fSwgJHt5
fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlw
dENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgp
O2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7CisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2
ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7CisgICAgICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAgICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOworICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworCisgICAgICAgICAgICBsZXQg
b3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lcikg
eworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChldmVudCkgeworICAg
ICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5lciArICcgcmVj
ZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycpICsgJyBldmVu
dCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0LmlkOworICAg
ICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50b3VjaGVzWzBd
LmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnIGF0ICcgKyBl
dmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRZ
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAg
Jzxicj4nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
bGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQxJyk7Cisg
ICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dF
dmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdl
dDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwg
eyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJn
ZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDEi
KSk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
dmVudFRhcmdldDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91
Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOwor
ICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dF
dmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdl
dDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsK
KyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRM
b2dFdmVudCgidGFyZ2V0MyIpKTsKKworICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9u
IFRhcmdldDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQoZ2V0VUlTY3JpcHQoNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAg
b24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGdldFVJU2NyaXB0KDE1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0
ICs9ICI8aDE+VGFwIG9uIFRhcmdldDMgKGJsdWUpPC9oMT4iOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDI1MCwgNTApLCBmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdvdXRwdXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0
PgorICAgIDxzdHlsZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAg
ICAgICNldmVudFRhcmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
fQorICAgICAgICAjZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0
MyB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAg
ICA8L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNj
YWxlPTEiPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAg
ICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQyPgorICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdl
dDM+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAg
PGRpdiBpZD1vdXRwdXQ+CisgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxl
ciB0byBydW4uCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFy
dC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gt
c3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wZmM0NGMxY2VhMTM3MTEwYmRkN2JmZTE1YTJjNTg4ZDNiZGU1MmEwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13
aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVs
ZW1lbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitDYW5jZWxsZWQgZHJhZyBvbiBU
YXJnZXQxIChncmVlbikKKworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaHN0
YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSBy
ZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MSBhdCAxMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50
IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitDYW5jZWxsZWQgZHJhZyBv
biBUYXJnZXQyIChyZWQpCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hz
dGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAxNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQx
IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJn
ZXQyIGF0IDIwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZl
bnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIKK0RvbmUKK0NhbmNlbGxlZCBkcmFn
IG9uIFRhcmdldDMgKGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgZXZlbnQgdG91
Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciB0YXJn
ZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQg
MjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNo
bW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0
MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFy
Z2V0MyBhdCAzMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2
ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5lciB0YXJnZXQxIHJl
Y2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRo
LXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1l
bnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFz
c2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gtbW92ZS1saXN0ZW5lcnMtb24tZWxlbWVudHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZjE2ZjlmMGQ0Njk5YWE1MjdiMmEyYjg0NGExNTkyNGJkMmY1YWRh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Rh
cC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9u
LWVsZW1lbnRzLmh0bWwKQEAgLTAsMCArMSwxMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRt
bD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdl
dERyYWdVSVNjcmlwdChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIuZHJhZ0Zyb21Qb2ludFRvUG9pbnQoJHtzdGFydFh9LCAke3N0YXJ0
WX0sICR7ZW5kWH0sICR7ZW5kWX0sIDAuMTUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZnVuY3Rpb24g
ZmFpbChldmVudCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTEVEITogTm8gbW91
c2UgZXZlbnQgc2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcgKyBldmVudC50eXBlOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3Zl
cicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0
JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRl
cicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVh
dmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRv
d24nLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1v
dmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVw
JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBm
YWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmYWls
KTsKKworICAgICAgICAgICAgbGV0IG91dHB1dCA9ICcnOworICAgICAgICAgICAgZnVuY3Rpb24g
Z2V0TG9nRXZlbnQobGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24g
bG9nRXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdMaXN0ZW5l
ciAnICsgbGlzdGVuZXIgKyAnIHJlY2VpdmVkJyArIChldmVudC5jYW5jZWxhYmxlID8gJyBjYW5j
ZWxhYmxlJyA6ICcnKSArICcgZXZlbnQgJyArIGV2ZW50LnR5cGUgKyAnIHRhcmdldHRpbmcgJyAr
IGV2ZW50LnRhcmdldC5pZDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXNb
MF0gJiYgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBvdXRwdXQgKz0gJyBhdCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYICsgJywgJyArIGV2
ZW50LnRvdWNoZXNbMF0uY2xpZW50WTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQgKz0gICc8YnI+JzsKKworICAgICAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQudHlwZSA9PT0gJ3RvdWNobW92ZScpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRU
YXJnZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3Rh
cnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAg
ICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQo
InRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNo
ZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2
ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSk7CisgICAg
ICAgICAgICBsZXQgdGFyZ2V0MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdl
dDMnKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcs
IGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAg
ICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dFdmVudCgidGFy
Z2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQn
LCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpKTsKKworICAgICAg
ICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MSAoZ3JlZW4pPC9o
MT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQo
NTAsIDUwLCAxMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIG91
dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVk
IGRyYWcgb24gVGFyZ2V0MiAocmVkKTwvaDE+IjsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCgxNTAsIDUwLCAyMDAsIDEwMCksIGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQzIChi
bHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChn
ZXREcmFnVUlTY3JpcHQoMjUwLCA1MCwgMzAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRwdXQnKS5p
bm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHls
ZT4KKyAgICAgICAgKiB7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAgICAgIGJv
ZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNldmVudFRh
cmdldDEsICNldmVudFRhcmdldDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAj
ZXZlbnRUYXJnZXQxIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAg
ICAgICB9CisgICAgICAgICNldmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmVkOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAg
bGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgYm9keSB7
CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAgICAgPGRpdiBpZD1l
dmVudFRhcmdldDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mz4KKyAgICAgICAg
ICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPW91dHB1
dD4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KKyAg
ICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL2ZpeGVkL2ZpeGVkLWluLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZpeGVkL2ZpeGVkLWluLW92ZXJm
bG93LWV4cGVjdGVkLnR4dAppbmRleCA3MWRmYWIyZmFjZjA4YTU4MzlkMDA4MzRjMWRkOGE2Nzhl
Nzc1YWYwLi5kNmE1MGU5M2Q5MTU3YmJmNmJmZTcxMWU2MzBiYzNiZDdkNzg0YWU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9maXhlZC9maXhlZC1pbi1v
dmVyZmxvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvZml4ZWQvZml4ZWQtaW4tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBA
QAogICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgNzg1IDYwMCkKICAgKGNvbnRlbnRzIHNpemUgNzg1
IDIyMTMpCiAgIChyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIDAgMjAwKQotICAoc3luY2hyb25v
dXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uCisgIChzeW5jaHJvbm91cyBldmVudCBkaXNwYXRjaCBy
ZWdpb24gZm9yIGV2ZW50IHdoZWVsCiAgICAgYXQgKDAsMTMpIHNpemUgMjA0eDIwNCkKICAgKGNo
aWxkcmVuIDEKICAgICAoRml4ZWQgbm9kZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1m
cmFtZS1leHBlY3RlZC50eHQKaW5kZXggMzA5ZWU3MzIwNDE0YTgwOGQyYzFmNzczMzQ3NmExOTg4
OWZhNmRkZC4uMDU3ZGRmMTYwYzdiZjFiNTBjMjhiYTZkNzY1NDZjNjBiNTVlZDZlMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5h
dGVkLWZyYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEs
NyBAQAogKEZyYW1lIHNjcm9sbGluZyBub2RlCiAgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA3ODUg
NjAwKQogICAoY29udGVudHMgc2l6ZSA3ODUgMTAxNikKLSAgKHN5bmNocm9ub3VzIGV2ZW50IGRp
c3BhdGNoIHJlZ2lvbgorICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uIGZvciBl
dmVudCB3aGVlbAogICAgIGF0ICg0NSw0Nykgc2l6ZSA0MDR4MzA0KQogICAoY2hpbGRyZW4gMQog
ICAgIChGcmFtZSBzY3JvbGxpbmcgbm9kZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWdhaW4tc2Nyb2xsaW5n
LWFuY2VzdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1nYWluLXNjcm9sbGluZy1hbmNlc3Rvci1leHBl
Y3RlZC50eHQKaW5kZXggYzA0MjYzMGZkMDE5YTg2MjQ4N2VhMjk1ZTcwMTA3MjZjMmZlM2ZjZC4u
MTY3Nzc3NjI5M2E5OGFhZjZjNTAzYTIwZWY4ZmU4NDA1YmU3N2E0NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1l
LWdhaW4tc2Nyb2xsaW5nLWFuY2VzdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUtZ2Fpbi1zY3Jv
bGxpbmctYW5jZXN0b3ItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogKEZyYW1lIHNjcm9s
bGluZyBub2RlCiAgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA3ODUgNjAwKQogICAoY29udGVudHMg
c2l6ZSA3ODUgMTAxNikKLSAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAo
c3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uIGZvciBldmVudCB3aGVlbAogICAgIGF0
ICg0NSw0Nykgc2l6ZSA0MDR4MzA0KQogICAoY2hpbGRyZW4gMQogICAgIChGaXhlZCBub2RlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29v
cmRpbmF0ZWQtZnJhbWUtaW4tZml4ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWluLWZpeGVkLWV4cGVj
dGVkLnR4dAppbmRleCAwZmMyNGY5MTQ4N2MxY2E3YTY2MzQ1YWIyYTdjZDUxOWZkODQyMTUwLi5m
YzJjM2ZmMDc1Y2U5NDA1ZjQxMDBhM2MzMmNiY2I4YzNjYWY1M2JmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUt
aW4tZml4ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1pbi1maXhlZC1leHBlY3RlZC50eHQKQEAg
LTEsNyArMSw3IEBACiAoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKICAgKHNjcm9sbGFibGUgYXJlYSBz
aXplIDc4NSA2MDApCiAgIChjb250ZW50cyBzaXplIDc4NSAxMDE2KQotICAoc3luY2hyb25vdXMg
ZXZlbnQgZGlzcGF0Y2ggcmVnaW9uCisgIChzeW5jaHJvbm91cyBldmVudCBkaXNwYXRjaCByZWdp
b24gZm9yIGV2ZW50IHdoZWVsCiAgICAgYXQgKDQ1LDM3KSBzaXplIDQwNHgzMDQpCiAgIChjaGls
ZHJlbiAxCiAgICAgKEZpeGVkIG5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1sb3NlLXNjcm9sbGluZy1h
bmNlc3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUtbG9zZS1zY3JvbGxpbmctYW5jZXN0b3ItZXhwZWN0
ZWQudHh0CmluZGV4IDNkNDYzNzgyNjRhZjNlOWM2ODYwYmFkYjUxZjY1ZmQxMDhmMWUzOTUuLjky
OTdiNzNlYjI4YWY2NjM3MjQzYWIzZTlkYmY4ZGNjZGY5NDE4M2IgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1s
b3NlLXNjcm9sbGluZy1hbmNlc3Rvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWxvc2Utc2Nyb2xs
aW5nLWFuY2VzdG9yLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIChGcmFtZSBzY3JvbGxp
bmcgbm9kZQogICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgNzg1IDYwMCkKICAgKGNvbnRlbnRzIHNp
emUgNzg1IDEwMTYpCi0gIChzeW5jaHJvbm91cyBldmVudCBkaXNwYXRjaCByZWdpb24KKyAgKHN5
bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiBmb3IgZXZlbnQgd2hlZWwKICAgICBhdCAo
NDUsNDcpIHNpemUgNDA0eDMwNCkKICAgKGNoaWxkcmVuIDEKICAgICAoRnJhbWUgc2Nyb2xsaW5n
IG5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2Zy
YW1lcy9mcmFtZXNldC1mcmFtZS1zY3JvbGxhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9mcmFtZXNldC1mcmFtZS1zY3JvbGxh
YmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCBjMDEwNjcyYTM3MDRiOTE4MGJlZjJiM2U2MmQyOTZj
NjUxZGFkNTE2Li5hNjViZjE4M2Q2NjdhNGU5ZDFmZDQ1OWY1MGZiZGFiYzZiZmZhYjhmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvZnJhbWVz
ZXQtZnJhbWUtc2Nyb2xsYWJpbGl0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2ZyYW1lc2V0LWZyYW1lLXNjcm9sbGFiaWxpdHkt
ZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogKEZyYW1lIHNjcm9sbGluZyBub2RlCiAgIChz
Y3JvbGxhYmxlIGFyZWEgc2l6ZSA4MDAgNjAwKQogICAoY29udGVudHMgc2l6ZSA4MDAgNjAwKQot
ICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uCisgIChzeW5jaHJvbm91cyBldmVu
dCBkaXNwYXRjaCByZWdpb24gZm9yIGV2ZW50IHdoZWVsCiAgICAgYXQgKDAsMCkgc2l6ZSA4MDB4
NTk0KQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9mcmFtZXMvZnJhbWVzZXQtbmVzdGVkLWZyYW1lLXNjcm9sbGFiaWxpdHktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2ZyYW1lc2V0LW5l
c3RlZC1mcmFtZS1zY3JvbGxhYmlsaXR5LWV4cGVjdGVkLnR4dAppbmRleCA0YjUxMGNkZGJhNTQ1
NGIzMTE1NjkwMTgwODMyODcwMWU1NmY4NTMxLi44NDUwMzkyMTkyYTVlZDBkNzhlZTQ0ZjQ3OWEw
NTRhM2E4NjEyYjc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9mcmFtZXMvZnJhbWVzZXQtbmVzdGVkLWZyYW1lLXNjcm9sbGFiaWxpdHktZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9mcmFt
ZXNldC1uZXN0ZWQtZnJhbWUtc2Nyb2xsYWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3
IEBACiAoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKICAgKHNjcm9sbGFibGUgYXJlYSBzaXplIDgwMCA2
MDApCiAgIChjb250ZW50cyBzaXplIDgwMCA2MDApCi0gIChzeW5jaHJvbm91cyBldmVudCBkaXNw
YXRjaCByZWdpb24KKyAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiBmb3IgZXZl
bnQgd2hlZWwKICAgICBhdCAoMCwxNjYpIHNpemUgMjgweDQzNCkKICkKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL3Njcm9sbC1yZWdpb24t
YWZ0ZXItZnJhbWUtbGF5b3V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL2ZyYW1lcy9zY3JvbGwtcmVnaW9uLWFmdGVyLWZyYW1lLWxheW91dC1leHBl
Y3RlZC50eHQKaW5kZXggMTlmNmQwYzc4ODM1YmY4NjhlZWYyM2Q5MzM4MTMyYzlkZjc3MjIxMy4u
NDVjMTNjMDVkNTFmOTY5MDVkZjY2MmM2ZTQ3MWE3YjFjMmRmMGM4MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL3Njcm9sbC1yZWdpb24tYWZ0
ZXItZnJhbWUtbGF5b3V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9mcmFtZXMvc2Nyb2xsLXJlZ2lvbi1hZnRlci1mcmFtZS1sYXlvdXQtZXhw
ZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQAogKEZyYW1lIHNjcm9sbGluZyBub2RlCiAgIChzY3Jv
bGxhYmxlIGFyZWEgc2l6ZSA3ODUgNjAwKQogICAoY29udGVudHMgc2l6ZSA3ODUgNzU3KQotICAo
c3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uCisgIChzeW5jaHJvbm91cyBldmVudCBk
aXNwYXRjaCByZWdpb24gZm9yIGV2ZW50IHdoZWVsCiAgICAgYXQgKDY4LDY4KSBzaXplIDMwMHgz
MDApCiApCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281946</attachid>
            <date>2016-06-23 17:39:06 -0700</date>
            <delta_ts>2016-06-23 17:39:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158826-20160623173855.patch</filename>
            <type>text/plain</type>
            <size>93760</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2FiMjY3N2JmOGM3MmFl
YjdmOTNkMDRkYzY3ZjljMTBjNjA0NWI2ZS4uMzE4MDUyMGRlNTdhYjgyNGMzMzY3MjVmNDczZjNi
MmI3MmE5ZTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE2LTA2LTIyICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBTcGVjaWFsaXpl
IHN5bmNocm9ub3VzIGV2ZW50IHRyYWNraW5nIHBlciBldmVudCB0eXBlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg4MjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgRmlyc3QsIGt1ZG9zIHRvIFJpY2sgQnll
cnMgZm9yIGFsbCBoaXMgaGVscHMgb24gcGFzc2l2ZSBldmVudCBkaXNwYXRjaC4KKyAgICAgICAg
VGhlIHNwZWNzIGFyZSBwcmV0dHkgZGFtbiBnb29kIGFuZCBoaXMgaGVscCByZXZpZXdpbmcgcGF0
Y2hlcyBpcyB2ZXJ5IHVzZWZ1bC4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZSBzeW5jaHJv
bm91cyBldmVudCBkaXNwYXRjaCB0byBoYXBwZW4gcGVyIGV2ZW50CisgICAgICAgIGluc3RlYWQg
b2YgcGVyIHNlcXVlbmNlIHRvdWNoc3RhcnQtPnRvdWNoZW5kLgorCisgICAgICAgIFRoZSBiaWcg
YWR2YW50YWdlIG9mIHRoaXMgaXMgd2UgY2FuIGRpc3BhdGNoIG1vcmUgZXZlbnRzIGFzeW5jaHJv
bm91c2x5LgorICAgICAgICBGb3IgZXhhbXBsZSwgdG8gaGFuZGxlIGEgdGFwIHByb2dyYW1tYXRp
Y2FsbHksIHlvdSBjYW4gbGltaXQgdGhlIGFjdGl2ZSBsaXN0ZW5lcgorICAgICAgICB0byB0aGUg
dG91Y2hlbmQgZXZlbnQuIFRoZSB0b3VjaHN0YXJ0IGFuZCB0b3VjaG1vdmUgYXJlIG5vdyBkaXNw
YXRjaGVkIGFzeW5jaHJvbm91c2x5LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBh
IHNpbXBsZSBleHRlbnNpb24gdG8gRXZlbnRUcmFja2luZ1JlZ2lvbnMuCisgICAgICAgIEluc3Rl
YWQgb2YgYSBzaW5nbGUgc3luY2hyb25vdXMgcmVnaW9uLCB3ZSBoYXZlIG9uZSByZWdpb24gcGVy
IGV2ZW50IHR5cGUuCisgICAgICAgIFdoZW4gcHJvY2Vzc2luZyB0aGUgZXZlbnRzLCB3ZSBvbmx5
IG5lZWQgdG8gc2VuZCB0aGUgZXZlbnRzIHN5bmNocm9ub3VzbHkKKyAgICAgICAgaWYgdGhhdCBw
YXJ0aWN1bGFyIGV2ZW50IHR5cGUgaGFzIGEgc3luY2hyb25vdXMgcmVnaW9uLgorCisgICAgICAg
IE5vdGUgdGhhdCBFdmVudERpc3BhdGNoZXIncyB0b3VjaCBldmVudCBzdXBwb3J0IGFscmVhZHkg
c3VwcG9ydHMKKyAgICAgICAgbWl4aW5nIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgZXZl
bnRzLiBUaGUgZXZlbnRzIGFyZSBhbHdheXMgcHJvY2Vzc2VkCisgICAgICAgIGluIG9yZGVyIGV2
ZW4gaWYgYXN5bmNocm9ub3VzIGV2ZW50cyBhcmUgcGVuZGluZyB3aGVuIGEgc3luY2hyb25vdXMg
ZGlzcGF0Y2gKKyAgICAgICAgaGFwcGVucy4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1w
YXNzaXZlLWxpc3RlbmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL2lv
cy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUtbGlz
dGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRo
LWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0
ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgt
cGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLWVu
ZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLW1vdmUt
bGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBk
b20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6Omhhc0Fj
dGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FdmVudFRh
cmdldC5oOgorICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25PdmVybGF5Ojp1cGRhdGVSZWdpb24pOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub25GYXN0
U2Nyb2xsYWJsZVJlY3RzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6YWJz
b2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMpOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2luZ1R5cGVGb3JQ
b2ludCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OmlzRW1wdHkpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGVTeW5jaHJvbm91c1JlZ2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lv
bnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zOjp0cmFja2lu
Z1R5cGVGb3JQb2ludCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KTog
RGVsZXRlZC4KKwogMjAxNi0wNi0yMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRGF0YWJhc2VQcm9jZXNzIGRvZXNuJ3QgaGFuZGxlIFdlYlByb2Nlc3NlcyBn
b2luZyBhd2F5IHVuY2xlYW5seS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMzFmYmY5OTU5NDFjOTQ4Zjk0MzVh
MzUzOTA5NTEwNDI4ODY1YjZmLi5mNmQ4OTljZTBiNmQ3OTAzYWZhY2M3ZTFlYTg5NmNiMzQxMDU4
YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTYtMDYtMjIgIEJlbmphbWluIFBv
dWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFNwZWNpYWxpemUgc3luY2hy
b25vdXMgZXZlbnQgdHJhY2tpbmcgcGVyIGV2ZW50IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODgyNgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6
ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9u
cz46OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludCk6CisgICAgICAgICog
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1l
cmdlVHJhY2tpbmdUeXBlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRl
VG91Y2hFdmVudFRyYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0b3Vj
aEV2ZW50VHJhY2tpbmdUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5k
bGVUb3VjaEV2ZW50U3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXNldFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6VG91Y2hFdmVudFRyYWNraW5nOjppc1RyYWNr
aW5nQW55dGhpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OlRvdWNoRXZlbnRU
cmFja2luZzo6cmVzZXQpOgorCiAyMDE2LTA2LTIyICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBEYXRhYmFzZVByb2Nlc3MgZG9lc24ndCBoYW5kbGUgV2ViUHJv
Y2Vzc2VzIGdvaW5nIGF3YXkgdW5jbGVhbmx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4NzJl
MDNlYWQ4NWY4Yzk2NTg2YjEyYWU3NDE4MmU5MDRhZDI0OGQyLi40MWM0ZGFlZDBlZGUwYmFiN2Y4
YmRmOTg5MDYyNDdlMGRjNmU5NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjExMyw2ICsy
MTEzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0Rpc3BsYXlTbGVlcERp
c2FibGVyLmNwcAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmNwcAogICAgIHBsYXRmb3JtL0RyYWdJ
bWFnZS5jcHAKKyAgICBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKICAgICBwbGF0
Zm9ybS9GaWxlQ2hvb3Nlci5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcAogICAgIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2Q2NDRjZGMwNzY3YmQyMmNlMzY2Njk3ZjA4N2Mx
NTlhZDUwODQzMS4uODY5NGFjN2JlYWQzZjNmM2E3NjJlMmRiY2FkOGQ0M2QwZWU3ZDFkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTA3NSw2ICsxMDc1LDcgQEAKIAkJMjYyNTVGMDMxODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJB
Z2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYy
NTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2MjU1RjA0MTg4NzhFMTEwMDA2RTFGRCAv
KiBVc2VyQWdlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFjLm1tICovOyB9
OwogCQkyNjJFQzQxQTFEMDc4RkI5MDBCQTc4RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkVDNDE5MUQw
NzhGM0QwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTI2MkVDNDFEMUQxMTBCOTAwMEJBNzhG
QyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJFQzQxQzFEMTEwQjFGMDBCQTc4RkMgLyogRXZlbnRUcmFj
a2luZ1JlZ2lvbnMuY3BwICovOyB9OwogCQkyNjU1NDEzOTE0ODk4MTFDMDAwREZDNUQgLyogS2V5
RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNjU1NDEzQTE0
ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZl
bnRJT1MubW0gKi87IH07CiAJCTI2NTU0MTUyMTQ4OUIyMzMwMDBERkM1RCAvKiBDdXJzb3JJT1Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY1NTQx
NEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi87IH07CkBAIC04NjA4LDYgKzg2
MDksNyBAQAogCQkyNjI1NUYwMTE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckFnZW50TWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJFQzQxOTFEMDc4RjNEMDBCQTc4RkMg
LyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MjYyRUM0MUMxRDExMEIxRjAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50VHJhY2tpbmdSZWdpb25zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzcxNDg5ODExQzAwMERGQzVE
IC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
S2V5RXZlbnRDb2Rlc0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjU1NDEz
ODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBLZXlFdmVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXJzb3JJT1MuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjMxMjgsNiArMjMxMzAsNyBAQAogCQkJCUE3Q0ZCM0NGMEI3
RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLAogCQkJCUE3Q0ZCM0QwMEI3RUQxMEEw
MDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCAqLywKIAkJCQkxQ0ExOUUxNTBEQzI1NUNBMDA2NUE5OTQg
LyogRXZlbnRMb29wLmggKi8sCisJCQkJMjYyRUM0MUMxRDExMEIxRjAwQkE3OEZDIC8qIEV2ZW50
VHJhY2tpbmdSZWdpb25zLmNwcCAqLywKIAkJCQkyNjJFQzQxOTFEMDc4RjNEMDBCQTc4RkMgLyog
RXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRGRTlFNDBCNUNBNTM5MDAzRTRBNzMg
LyogRmlsZUNob29zZXIuY3BwICovLAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBG
aWxlQ2hvb3Nlci5oICovLApAQCAtMzA2NjgsNiArMzA2NzEsNyBAQAogCQkJCUE3QkJFMjY2MTFB
RkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFFMkFCMjkwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTE1vZEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMzMDVDNzkwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYyRUM0MUQxRDExMEI5MDAwQkE3OEZDIC8q
IEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzA1Q0E0MEMw
NzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBODVCMUVBMEExQjI0MDUwMEQ4Qzg3QyAvKiBKU0hUTUxPTGlzdEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdFOUMwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRN
TE9wdEdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuY3BwCmluZGV4IDgyNmZhYjQ1MTY1MjBmZmIyYzA0YTc3ODY2ODQxYWMwNDEyZjBmNWEuLjlk
NTVlNTVkNTY4MmYwNzY1MmE0M2I2ZWYwNDRmMzU1MmVkYWViZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmNwcApAQCAtMjQzLDE2ICsyNDMsNiBAQCBib29sIEV2ZW50VGFyZ2V0OjpmaXJl
RXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiAhZXZlbnQuZGVmYXVsdFBy
ZXZlbnRlZCgpOwogfQogCi1ib29sIEV2ZW50VGFyZ2V0OjpoYXNBY3RpdmVUb3VjaEV2ZW50TGlz
dGVuZXJzKCkgY29uc3QKLXsKLSAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1lcyA9IGV2ZW50TmFt
ZXMoKTsKLSAgICByZXR1cm4gaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMudG91Y2hzdGFy
dEV2ZW50KQotICAgICAgICB8fCBoYXNBY3RpdmVFdmVudExpc3RlbmVycyhuYW1lcy50b3VjaG1v
dmVFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMudG91Y2hl
bmRFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMudG91Y2hj
YW5jZWxFdmVudCkKLSAgICAgICAgfHwgaGFzQWN0aXZlRXZlbnRMaXN0ZW5lcnMobmFtZXMudG91
Y2hmb3JjZWNoYW5nZUV2ZW50KTsKLX0KLQogdm9pZCBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlz
dGVuZXJzKEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXREYXRhKiBkLCBFdmVudExpc3RlbmVyVmVj
dG9yJiBlbnRyeSkKIHsKICAgICBSZWY8RXZlbnRUYXJnZXQ+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAppbmRleCBlM2RhYWZjNzk1Yjc3MzQ4OTgwODNjZTBl
MmFlYTliYWRhM2ZiOTNhLi4xNWY1YTY2YTRmMzcwMDA2NDFlMjJiYjgwZWE4N2QyNTBlZDQ5ZWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaApAQCAtMTY4LDggKzE2OCw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHZpc2l0SlNFdmVudExpc3RlbmVycyhKU0M6OlNsb3RWaXNpdG9yJik7CiAgICAg
dm9pZCBpbnZhbGlkYXRlSlNFdmVudExpc3RlbmVycyhKU0M6OkpTT2JqZWN0Kik7CiAKLSAgICBi
b29sIGhhc0FjdGl2ZVRvdWNoRXZlbnRMaXN0ZW5lcnMoKSBjb25zdDsKLQogcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgfkV2ZW50VGFyZ2V0KCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVi
dWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IDU3MjA4OGIxZDIyY2M4NTdiMTk5YThmZGVlYzZiMmFl
NThjM2U0N2YuLmNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUxNDczZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC0xMzMsNyArMTMzLDgg
QEAgYm9vbCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJlZ2lvbigpCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICBpZiAoU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29v
cmRpbmF0b3IoKSkgewogICAgICAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgZXZlbnRUcmFj
a2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVudFRyYWNraW5n
UmVnaW9ucygpOwotICAgICAgICAgICAgKnJlZ2lvbiA9IGV2ZW50VHJhY2tpbmdSZWdpb25zLnN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5
bmNocm9ub3VzRXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICAgICAgcmVnaW9uLT51bml0
ZShzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggYzM3MjA5NWI4YmRlNWZiYzQwZTA3YWVkNmNlMDgyMWZlNjAzYWM5
MC4uYmEwODk2MDQ5NTQxZDQwOTAyODBiYjgxMzU1ZTkwMGU0MTllNjA3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0zNzIsOCArMzcyLDExIEBAIFJlZjxDbGllbnRSZWN0TGlzdD4gUGFnZTo6bm9u
RmFzdFNjcm9sbGFibGVSZWN0cygpCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsK
IAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKLSAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0
b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkK
LSAgICAgICAgcmVjdHMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVudFRyYWNr
aW5nUmVnaW9ucygpLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVjdHMoKTsKKyAgICBpZiAo
U2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xs
aW5nQ29vcmRpbmF0b3IoKSkgeworICAgICAgICBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YWJzb2x1dGVFdmVu
dFRyYWNraW5nUmVnaW9ucygpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5bmNocm9ub3Vz
RXZlbnRSZWdpb24gOiBldmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbnMpCisgICAgICAgICAgICByZWN0cy5hcHBlbmRWZWN0b3Ioc3luY2hy
b25vdXNFdmVudFJlZ2lvbi52YWx1ZS5yZWN0cygpKTsKKyAgICB9CiAKICAgICBWZWN0b3I8Rmxv
YXRRdWFkPiBxdWFkcyhyZWN0cy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
cmVjdHMuc2l6ZSgpOyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMDRhZGY4YTM2ZmVlZDQ4MWU5MjM0
OWQ1NDVlYTJmNTQyZWI3MTQzNS4uZDgzMDJlZGJmODAxNzg2MzM5N2U2MWFlYWNjODVlNzgwYzkz
MzFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVy
LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtMTQ0LDE4ICsxNDUsMTkgQEAgRXZlbnRUcmFj
a2luZ1JlZ2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1Jl
Z2lvbnNGb3JGcmFtZSgKICAgICB9CiAgICAgCiAgICAgLy8gRklYTUU6IGlmIHdlJ3ZlIGFscmVh
ZHkgYWNjb3VudGVkIGZvciB0aGlzIHN1YmZyYW1lIGFzIGEgc2Nyb2xsYWJsZSBhcmVhLCB3ZSBj
YW4gYXZvaWQgcmVjdXJzaW5nIGludG8gaXQgaGVyZS4KKyAgICBFdmVudFRyYWNraW5nUmVnaW9u
cyBldmVudFRyYWNraW5nUmVnaW9uczsKICAgICBmb3IgKEZyYW1lKiBzdWJmcmFtZSA9IGZyYW1l
LnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZyYW1lLT50cmVl
KCkubmV4dFNpYmxpbmcoKSkgewogICAgICAgICBGcmFtZVZpZXcqIHN1YmZyYW1lVmlldyA9IHN1
YmZyYW1lLT52aWV3KCk7CiAgICAgICAgIGlmICghc3ViZnJhbWVWaWV3KQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgUmVnaW9uIHN1YmZyYW1lUmVnaW9uID0gYWJzb2x1dGVFdmVu
dFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKCpzdWJmcmFtZSkuc3luY2hyb25vdXNEaXNwYXRjaFJl
Z2lvbjsKKyAgICAgICAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgc3ViZnJhbWVSZWdpb24gPSBhYnNv
bHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUoKnN1YmZyYW1lKTsKICAgICAgICAgLy8g
TWFwIGZyb20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KICAgICAgICAgSW50
UG9pbnQgb2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmluZ1ZpZXdDb250
ZW50cyhJbnRQb2ludCgpKTsKIAogICAgICAgICAvLyBGSVhNRTogdGhpcyB0cmFuc2xhdGlvbiBp
Z25vcmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0aGUgZnJhbWUuCiAgICAgICAgIHN1YmZy
YW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7Ci0gICAgICAgIG5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uLnVuaXRlKHN1YmZyYW1lUmVnaW9uKTsKKyAgICAgICAgZXZlbnRUcmFj
a2luZ1JlZ2lvbnMudW5pdGUoc3ViZnJhbWVSZWdpb24pOwogICAgIH0KIAogICAgIERvY3VtZW50
OjpSZWdpb25GaXhlZFBhaXIgd2hlZWxIYW5kbGVyUmVnaW9uID0gZnJhbWUuZG9jdW1lbnQoKS0+
YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+d2hlZWxFdmVu
dFRhcmdldHMoKSk7CkBAIC0xNjksNyArMTcxLDggQEAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSgK
ICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZSh3aGVlbEhhbmRsZXJSZWdpb24uZmly
c3QpOwogCiAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgbm90IHRoZSBtYWluIGZyYW1lLCB3ZSBj
b3VsZCBjbGlwIHRoZSByZWdpb24gdG8gdGhlIGZyYW1lJ3MgYm91bmRzLgotICAgIHJldHVybiBF
dmVudFRyYWNraW5nUmVnaW9ucyB7IFJlZ2lvbigpLCBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiB9
OworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnVuaXRlU3luY2hyb25vdXNSZWdpb24oZXZlbnRO
YW1lcygpLndoZWVsRXZlbnQsIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKKyAgICByZXR1cm4g
ZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9s
bGluZ05vZGUuY3BwCmluZGV4IDRjYjM3MWUxZTZmMmRiYjhjYzk4NjcwYjI1ZTdmODczMTc2OGE1
YjQuLmZiZDQ2ZmZjNDlkYmExMTEwMmIwYjczN2FjOGNiOTJhNTMzZjVmNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTI0NSwxOCArMjQ1LDIwIEBAIHZvaWQgU2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0m
IHRzLCBpbnQgaW5kZW50CiAgICAgICAgIHRzIDw8ICIpXG4iOwogICAgICAgICBpbmRlbnQgLT0g
MjsKICAgICB9Ci0gICAgaWYgKCFtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNocm9ub3VzRGlz
cGF0Y2hSZWdpb24uaXNFbXB0eSgpKSB7Ci0gICAgICAgICsraW5kZW50OwotICAgICAgICB3cml0
ZUluZGVudCh0cywgaW5kZW50KTsKLSAgICAgICAgdHMgPDwgIihzeW5jaHJvbm91cyBldmVudCBk
aXNwYXRjaCByZWdpb24iOwotICAgICAgICArK2luZGVudDsKLSAgICAgICAgZm9yIChhdXRvIHJl
Y3QgOiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVj
dHMoKSkgewotICAgICAgICAgICAgdHMgPDwgIlxuIjsKKyAgICBpZiAoIW1fZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zLmlzRW1wdHko
KSkgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN5bmNocm9ub3VzRXZlbnRSZWdpb24gOiBt
X2V2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9ucykgeworICAgICAgICAgICAgKytpbmRlbnQ7CiAgICAgICAgICAgICB3cml0ZUluZGVudCh0
cywgaW5kZW50KTsKLSAgICAgICAgICAgIHRzIDw8IHJlY3Q7CisgICAgICAgICAgICB0cyA8PCAi
KHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiBmb3IgZXZlbnQgIiA8PCBzeW5jaHJv
bm91c0V2ZW50UmVnaW9uLmtleTsKKyAgICAgICAgICAgICsraW5kZW50OworICAgICAgICAgICAg
Zm9yIChhdXRvIHJlY3QgOiBzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlLnJlY3RzKCkpIHsK
KyAgICAgICAgICAgICAgICB0cyA8PCAiXG4iOworICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50
KHRzLCBpbmRlbnQpOworICAgICAgICAgICAgICAgIHRzIDw8IHJlY3Q7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB0cyA8PCAiKVxuIjsKKyAgICAgICAgICAgIGluZGVudCAtPSAyOwogICAg
ICAgICB9Ci0gICAgICAgIHRzIDw8ICIpXG4iOwotICAgICAgICBpbmRlbnQgLT0gMjsKICAgICB9
CiAKICAgICBpZiAobV9zeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMzc2ODBiOTc2
YWQwZDBlMTRiMjA2Zjc3MWFhZjk0ODBkZDhkMTE2Ni4uZDIwY2RlODI2ZjNkMjFlZmNjNTE5MmQy
MjQ0ZjkxMTYxOWUzOGRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpCiAKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0
YXRlVHJlZS5oIgpAQCAtNjYsNyArNjcsMTAgQEAgYm9vbCBTY3JvbGxpbmdUcmVlOjpzaG91bGRI
YW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQKICAg
ICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKICAgICAg
ICAgcG9zaXRpb24ubW92ZShmcmFtZVNjcm9sbGluZ05vZGUudmlld1RvQ29udGVudHNPZmZzZXQo
bV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbikpOwogCi0gICAgICAgIGJvb2wgaXNTeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uID0gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQ
b2ludChyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9u
b3VzOworICAgICAgICBjb25zdCBFdmVudE5hbWVzJiBuYW1lcyA9IGV2ZW50TmFtZXMoKTsKKyAg
ICAgICAgSW50UG9pbnQgcm91bmRlZFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KHBvc2l0aW9u
KTsKKyAgICAgICAgYm9vbCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPSBtX2V2ZW50VHJh
Y2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KG5hbWVzLndoZWVsRXZlbnQsIHJvdW5k
ZWRQb3NpdGlvbikgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91cworICAgICAgICAgICAgfHwg
bV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2ludChuYW1lcy5tb3VzZXdo
ZWVsRXZlbnQsIHJvdW5kZWRQb3NpdGlvbikgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsK
ICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdU
cmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseTogd2hlZWxFdmVudCBhdCAi
IDw8IHdoZWVsRXZlbnQucG9zaXRpb24oKSA8PCAiIG1hcHBlZCB0byBjb250ZW50IHBvaW50ICIg
PDwgcG9zaXRpb24gPDwgIiwgaW4gbm9uLWZhc3QgcmVnaW9uICIgPDwgaXNTeW5jaHJvbm91c0Rp
c3BhdGNoUmVnaW9uKTsKIAogICAgICAgICBpZiAoaXNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9u
KQpAQCAtMjMzLDExICsyMzcsMTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbihGbG9hdFBvaW50IHBvc2l0aW9uKQogICAgIG1fbWFpbkZyYW1lU2Nyb2xs
UG9zaXRpb24gPSBwb3NpdGlvbjsKIH0KIAotVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2
ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoSW50UG9pbnQgcCkKK1RyYWNraW5nVHlwZSBTY3JvbGxp
bmdUcmVlOjpldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnROYW1lLCBJbnRQb2ludCBwKQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAg
ICAKLSAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2lu
dChwKTsKKyAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQ
b2ludChldmVudE5hbWUsIHApOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFu
ZEluUHJvZ3Jlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oCmluZGV4IDI2MTdiZmJhZDFkZTI3ZDE0OTMxNGRmMmUyZWQzNDlhZWYzNGRmMDIuLjEw
OWQxM2FiN2VmZTExNzAzMmE5YjVmNTMzMTM1NzI2MzA0NThmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkg
eyB9CiAjZW5kaWYKIAotICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBldmVudFRyYWNr
aW5nVHlwZUZvclBvaW50KEludFBvaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBUcmFja2luZ1R5
cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFt
ZSwgSW50UG9pbnQpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2U3NjNjODk1M2RjYThlNmRkN2NhY2FkNjI1MjQwN2M3MGM1Zjg2MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNw
cApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFRyYWNraW5nUmVn
aW9ucy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RyYWNraW5nVHlwZSBFdmVudFRyYWNr
aW5nUmVnaW9uczo6dHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUs
IGNvbnN0IEludFBvaW50JiBwb2ludCkKK3sKKyAgICBhdXRvIHN5bmNocm9ub3VzUmVnaW9uSXRl
cmF0b3IgPSBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMuZmluZChldmVu
dE5hbWUpOworICAgIGlmIChzeW5jaHJvbm91c1JlZ2lvbkl0ZXJhdG9yICE9IGV2ZW50U3BlY2lm
aWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5lbmQoKSkgeworICAgICAgICBpZiAoc3luY2hy
b25vdXNSZWdpb25JdGVyYXRvci0+dmFsdWUuY29udGFpbnMocG9pbnQpKQorICAgICAgICAgICAg
cmV0dXJuIFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAgfQorCisgICAgaWYgKGFzeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uLmNvbnRhaW5zKHBvaW50KSkKKyAgICAgICAgcmV0dXJuIFRy
YWNraW5nVHlwZTo6QXN5bmNocm9ub3VzOworICAgIHJldHVybiBUcmFja2luZ1R5cGU6Ok5vdFRy
YWNraW5nOworfQorCitib29sIEV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpICYmIGV2
ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5pc0VtcHR5KCk7Cit9CisKK3Zv
aWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnRyYW5zbGF0ZShJbnRTaXplIG9mZnNldCkKK3sKKyAg
ICBhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbi50cmFuc2xhdGUob2Zmc2V0KTsKKyAgICBmb3Ig
KGF1dG8mIHNsb3QgOiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisg
ICAgICAgIHNsb3QudmFsdWUudHJhbnNsYXRlKG9mZnNldCk7Cit9CisKK3ZvaWQgRXZlbnRUcmFj
a2luZ1JlZ2lvbnM6OnVuaXRlU3luY2hyb25vdXNSZWdpb24oY29uc3QgU3RyaW5nJiBldmVudE5h
bWUsIGNvbnN0IFJlZ2lvbiYgcmVnaW9uKQoreworICAgIGlmIChyZWdpb24uaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGFkZFJlc3VsdCA9IGV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9ucy5hZGQoZXZlbnROYW1lLCByZWdpb24pOworICAgIGlmICgh
YWRkUmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUu
dW5pdGUocmVnaW9uKTsKK30KKwordm9pZCBFdmVudFRyYWNraW5nUmVnaW9uczo6dW5pdGUoY29u
c3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQoreworICAgIGFz
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uLnVuaXRlKGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uKTsKKyAgICBmb3IgKGF1dG8mIHNsb3QgOiBldmVudFRyYWNr
aW5nUmVnaW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpCisgICAg
ICAgIHVuaXRlU3luY2hyb25vdXNSZWdpb24oc2xvdC5rZXksIHNsb3QudmFsdWUpOworfQorCiti
b29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50
VHJhY2tpbmdSZWdpb25zJiBiKQoreworICAgIHJldHVybiBhLmFzeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24KKyAgICAgICAgJiYgYS5ldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmljU3lu
Y2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCmluZGV4IDFm
MDU1NjQwMTQ0MzhjYTM1MTg1ZWE1N2IwMDYzMTA4MzU5ZTczZTEuLjNkNThiYTU1ZWZkNjNlZDli
YWU0MDUwMWUzMDliODYxZmM5ZTljMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtMjYsNiArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJSZWdpb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSwzMiArNDIsMjAgQEAgc3RydWN0IEV2ZW50
VHJhY2tpbmdSZWdpb25zIHsKICAgICAvLyBSZWdpb24gZm9yIHdoaWNoIGV2ZW50cyBjYW4gYmUg
ZGlzcGF0Y2hlZCB3aXRob3V0IGJsb2NraW5nIHNjcm9sbGluZy4KICAgICBSZWdpb24gYXN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb247CiAKLSAgICAvLyBSZWdpb24gZm9yIHdoaWNoIGV2ZW50cyBt
dXN0IGJlIHNlbnQgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGRlZmF1bHQgYmVoYXZpb3IuCi0gICAg
UmVnaW9uIHN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CisgICAgLy8gUmVnaW9ucyBmb3Igd2hp
Y2ggZXZlbnRzIG11c3QgYmUgc2VudCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgZGVmYXVsdCBiZWhh
dmlvci4KKyAgICAvLyBUaGUga2V5IGlzIHRoZSBFdmVudCBOYW1lIHdpdGggYW4gYWN0aXZlIGhh
bmRsZXIuCisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKLSAgICBU
cmFja2luZ1R5cGUgdHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKTsKLX07Ci0K
LWlubGluZSBib29sIEV2ZW50VHJhY2tpbmdSZWdpb25zOjppc0VtcHR5KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpICYmIHN5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb24uaXNFbXB0eSgpOwotfQorICAgIHZvaWQgdHJhbnNsYXRlKEludFNp
emUpOworICAgIHZvaWQgdW5pdGVTeW5jaHJvbm91c1JlZ2lvbihjb25zdCBTdHJpbmcmIGV2ZW50
TmFtZSwgY29uc3QgUmVnaW9uJik7CisgICAgdm9pZCB1bml0ZShjb25zdCBFdmVudFRyYWNraW5n
UmVnaW9ucyYpOwogCi1pbmxpbmUgVHJhY2tpbmdUeXBlIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp0
cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCi17Ci0gICAgaWYgKHN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24uY29udGFpbnMocG9pbnQpKQotICAgICAgICByZXR1cm4g
VHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKLSAgICBpZiAoYXN5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24uY29udGFpbnMocG9pbnQpKQotICAgICAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpBc3lu
Y2hyb25vdXM7Ci0gICAgcmV0dXJuIFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7Ci19CisgICAg
VHJhY2tpbmdUeXBlIHRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1l
LCBjb25zdCBJbnRQb2ludCYpOworfTsKIAotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBF
dmVudFRyYWNraW5nUmVnaW9ucyYgYSwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGIpCi17
Ci0gICAgcmV0dXJuIGEuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24gPT0gYi5hc3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbgotICAgICAgICAmJiBhLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24g
PT0gYi5zeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwotfQorYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEV2ZW50VHJhY2tpbmdSZWdpb25zJiwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmKTsKK2lu
bGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0
IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24u
aAppbmRleCA1NDVlNzY0N2E2MjBkZjRhMjJhNGU4Mzg0Y2NjNjhlOTZmYzM4YWMzLi5kNzJlYzRi
MjY5NDY4MWVkMjFjNGJmOGE0MTZmNGMzMmQyMWE3MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZWdpb24uaApAQCAtMTk4LDYgKzE5OCwxMCBAQCBpbmxpbmUgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFJlZ2lvbiYgYSwgY29uc3QgUmVnaW9uJiBiKQogewogICAgIHJldHVy
biBhLm1fYm91bmRzID09IGIubV9ib3VuZHMgJiYgYS5tX3NoYXBlID09IGIubV9zaGFwZTsKIH0K
K2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgUmVnaW9uJiBhLCBjb25zdCBSZWdpb24mIGIp
Cit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBSZWdpb246OlNoYXBlJiBhLCBjb25zdCBSZWdpb246OlNoYXBlJiBiKQogewpAQCAtMjA4
LDYgKzIxMiwxMCBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZ2lvbjo6U3BhbiYg
YSwgY29uc3QgUmVnaW9uOjpTcGFuJiBiKQogewogICAgIHJldHVybiBhLnkgPT0gYi55ICYmIGEu
c2VnbWVudEluZGV4ID09IGIuc2VnbWVudEluZGV4OwogfQoraW5saW5lIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBSZWdpb246OlNwYW4mIGEsIGNvbnN0IFJlZ2lvbjo6U3BhbiYgYikKK3sKKyAgICBy
ZXR1cm4gIShhID09IGIpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCmluZGV4IDM1Nzg3MjgzNWU3
YTI1NjliZjk5ODVhYjdjZjQ1OTY4M2ZmYmFjYmIuLjg4NWU4ZWIwMGI5OWQwYzkyN2RiMmU3YmZj
ZDBmMGRiMTNkY2JiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5z
YWN0aW9uLmNwcApAQCAtNDk0LDEwICs0OTQsMTEgQEAgc3RhdGljIHZvaWQgZHVtcChUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGUmIG5vZGUsIGIK
ICAgICAgICAgICAgICAgICB0cyA8PCByZWN0OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0g
ICAgICAgIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzeW5jaHJvbm91c0V2ZW50UmVnaW9u
IDogbm9kZS5ldmVudFRyYWNraW5nUmVnaW9ucygpLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rp
c3BhdGNoUmVnaW9ucykgewogICAgICAgICAgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBncm91
cCh0cyk7Ci0gICAgICAgICAgICB0cyA8PCAic3luY2hyb25vdXMtZXZlbnQtdHJhY2tpbmctcmVn
aW9uIjsKLSAgICAgICAgICAgIGZvciAoYXV0byByZWN0IDogbm9kZS5ldmVudFRyYWNraW5nUmVn
aW9ucygpLnN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24ucmVjdHMoKSkgeworICAgICAgICAgICAg
dHMgPDwgInN5bmNocm9ub3VzLWV2ZW50LXRyYWNraW5nLXJlZ2lvbiBmb3IgZXZlbnQgIiA8PCBz
eW5jaHJvbm91c0V2ZW50UmVnaW9uLmtleTsKKworICAgICAgICAgICAgZm9yIChhdXRvIHJlY3Qg
OiBzeW5jaHJvbm91c0V2ZW50UmVnaW9uLnZhbHVlLnJlY3RzKCkpIHsKICAgICAgICAgICAgICAg
ICB0cyA8PCAiXG4iOwogICAgICAgICAgICAgICAgIHRzLndyaXRlSW5kZW50KCk7CiAgICAgICAg
ICAgICAgICAgdHMgPDwgcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKaW5kZXggOTI0NmVlN2RkOTI3NmVlY2EzYjAxOTUzYWNhOWUwMDFl
ZTNjMTI4OC4uM2U1MmM5ZmI2OTkwZTgyYzZjMGFkMTc2MzY3NzAwM2UwYWY2NDNmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTEx
MSw3ICsxMTEsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQWZmaW5lVHJhbgogdm9pZCBBcmd1bWVudENvZGVy
PEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQogewogICAg
IGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b247Ci0gICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5zeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uOworICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVj
aWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8
RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBF
dmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCkBAIC0xMTksMTEgKzEx
OSwxMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBFdmVudAogICAgIFJlZ2lvbiBhc3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbjsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFzeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFJlZ2lvbiBzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3luY2hyb25vdXNEaXNw
YXRjaFJlZ2lvbikpCisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZXZlbnRT
cGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID0g
V1RGTW92ZShhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7Ci0gICAgZXZlbnRUcmFja2luZ1Jl
Z2lvbnMuc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoc3luY2hyb25vdXNEaXNw
YXRjaFJlZ2lvbik7CisgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb25zID0gV1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbnMpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCBhYzg0MGRkNWU4NTJlMTdjZGFhYjBjOWJj
ZWI3Yjg0NjY3OTI1ZWU0Li5hYzk4YzY0ODA5NjkxMWEzMDNlYTQ5ZTQ3MGM3YWE1NjMyZDhjNTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTE0OSw5
ICsxNDksOSBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JgogICAgIHJldHVybiByZXN1bHQgPT0g
U2Nyb2xsaW5nVHJlZTo6RGlkSGFuZGxlRXZlbnQ7IC8vIEZJWE1FOiBoYW5kbGUgb3RoZXIgdmFs
dWVzLgogfQogCi1UcmFja2luZ1R5cGUgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChJbnRQb2ludCBwKSBjb25zdAorVHJhY2tpbmdUeXBl
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9p
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50IHApIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS0+ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChwKTsK
KyAgICByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGV2
ZW50TmFtZSwgcCk7CiB9CiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQsIGNvbnN0IEZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBzY2FsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggMGRkYjUwNjkxMmY2MTdj
MzA2NDViOTlkMTAwOTY4MTY5NDdiYTg3ZC4uY2Y1MGRkMDYyNzkxMzM0YTI3MjQ4NGU0NzEwYTRj
OTY5ODQxMzE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3Jv
bGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBu
ZXdTY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bik7CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGJvb2wgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiAKLSAgICBXZWJDb3JlOjpUcmFj
a2luZ1R5cGUgZXZlbnRUcmFja2luZ1R5cGVGb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludCkgY29u
c3Q7CisgICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsK
IAogICAgIC8vIENhbGxlZCBleHRlcm5hbGx5IHdoZW4gbmF0aXZlIHZpZXdzIG1vdmUgYXJvdW5k
LgogICAgIHZvaWQgdmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9u
UmVjdCwgZG91YmxlIHNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggMTdkYzkxZWY4NjE2N2U3NGE4YzcwZjM4NjRhYzMxODkxZGM3NzFkZC4uMDIw
YmVjZGQzMTM4ODRiZWZkZWIxMDNkZWQ5NjY0NjMxNmNkMGI2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTExMCw2ICsxMTAsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Ry
YWdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRXZlbnROYW1lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNE
T01CaW5kaW5nLmg+CkBAIC0xOTUwLDI0ICsxOTUxLDc0IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpm
aW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBj
b25zCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCi1UcmFja2luZ1R5cGUgV2ViUGFnZVBy
b3h5Ojp0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoU3Rh
cnRFdmVudCkgY29uc3QKK3N0YXRpYyBUcmFja2luZ1R5cGUgbWVyZ2VUcmFja2luZ1R5cGVzKFRy
YWNraW5nVHlwZSBhLCBUcmFja2luZ1R5cGUgYikKK3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8dWlu
dHB0cl90PihiKSA+IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oYSkpCisgICAgICAgIHJldHVybiBi
OworICAgIHJldHVybiBhOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlVG91Y2hFdmVu
dFRyYWNraW5nKGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoU3RhcnRFdmVudCkKIHsKICNpZiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIFRyYWNraW5nVHlwZSB0cmFja2luZ1R5cGUgPSBU
cmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgIGNvbnN0IEV2ZW50TmFtZXMmIG5hbWVzID0g
ZXZlbnROYW1lcygpOwogICAgIGZvciAoYXV0byYgdG91Y2hQb2ludCA6IHRvdWNoU3RhcnRFdmVu
dC50b3VjaFBvaW50cygpKSB7Ci0gICAgICAgIFRyYWNraW5nVHlwZSB0b3VjaFBvaW50VHJhY2tp
bmdUeXBlID0gbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LT5ldmVudFRyYWNraW5nVHlwZUZv
clBvaW50KHRvdWNoUG9pbnQubG9jYXRpb24oKSk7Ci0gICAgICAgIGlmICh0b3VjaFBvaW50VHJh
Y2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXMpCi0gICAgICAgICAgICByZXR1
cm4gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICAgICAgSW50UG9pbnQgbG9jYXRpb24g
PSB0b3VjaFBvaW50LmxvY2F0aW9uKCk7CisgICAgICAgIGF1dG8gdXBkYXRlVHJhY2tpbmdUeXBl
ID0gW3RoaXMsIGxvY2F0aW9uXShUcmFja2luZ1R5cGUmIHRyYWNraW5nVHlwZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudE5hbWUpIHsKKyAgICAgICAgICAgIGlmICh0cmFja2luZ1R5cGUgPT0g
VHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91cykKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgaWYgKHRvdWNoUG9pbnRUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpBc3luY2hy
b25vdXMpCi0gICAgICAgICAgICB0cmFja2luZ1R5cGUgPSB0b3VjaFBvaW50VHJhY2tpbmdUeXBl
OwotICAgIH0KKyAgICAgICAgICAgIFRyYWNraW5nVHlwZSB0cmFja2luZ1R5cGVGb3JMb2NhdGlv
biA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS0+ZXZlbnRUcmFja2luZ1R5cGVGb3JQb2lu
dChldmVudE5hbWUsIGxvY2F0aW9uKTsKIAotICAgIHJldHVybiB0cmFja2luZ1R5cGU7CisgICAg
ICAgICAgICB0cmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXModHJhY2tpbmdUeXBlLCB0
cmFja2luZ1R5cGVGb3JMb2NhdGlvbik7CisgICAgICAgIH07CisgICAgICAgIHVwZGF0ZVRyYWNr
aW5nVHlwZShtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5nLCBu
YW1lcy50b3VjaGZvcmNlY2hhbmdlRXZlbnQpOworICAgICAgICB1cGRhdGVUcmFja2luZ1R5cGUo
bV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hTdGFydFRyYWNraW5nLCBuYW1lcy50b3VjaHN0YXJ0
RXZlbnQpOworICAgICAgICB1cGRhdGVUcmFja2luZ1R5cGUobV90b3VjaEV2ZW50VHJhY2tpbmcu
dG91Y2hNb3ZlVHJhY2tpbmcsIG5hbWVzLnRvdWNobW92ZUV2ZW50KTsKKyAgICAgICAgdXBkYXRl
VHJhY2tpbmdUeXBlKG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoRW5kVHJhY2tpbmcsIG5hbWVz
LnRvdWNoZW5kRXZlbnQpOworICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRvdWNoU3Rh
cnRFdmVudCk7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hGb3JjZUNoYW5nZWRUcmFj
a2luZyA9IFRyYWNraW5nVHlwZTo6U3luY2hyb25vdXM7CisgICAgbV90b3VjaEV2ZW50VHJhY2tp
bmcudG91Y2hTdGFydFRyYWNraW5nID0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKKyAgICBt
X3RvdWNoRXZlbnRUcmFja2luZy50b3VjaE1vdmVUcmFja2luZyA9IFRyYWNraW5nVHlwZTo6U3lu
Y2hyb25vdXM7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hFbmRUcmFja2luZyA9IFRy
YWNraW5nVHlwZTo6U3luY2hyb25vdXM7CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKLSAgICByZXR1cm4gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91czsKK30KKworVHJhY2tpbmdU
eXBlIFdlYlBhZ2VQcm94eTo6dG91Y2hFdmVudFRyYWNraW5nVHlwZShjb25zdCBXZWJUb3VjaEV2
ZW50JiB0b3VjaFN0YXJ0RXZlbnQpIGNvbnN0Cit7CisgICAgLy8gV2Ugc2VuZCBhbGwgZXZlbnRz
IGlmIGFueSB0eXBlIGlzIG5lZWRlZCwgd2UganVzdCBkbyBpdCBhc3luY2hyb25vdXNseSBmb3Ig
dGhlIHR5cGVzIHRoYXQgYXJlIG5vdCB0cmFja2VkLgorICAgIC8vCisgICAgLy8gVG91Y2ggZXZl
bnRzIGRlZmluZSBhIHNlcXVlbmNlIHdpdGggc3Ryb25nIGRlcGVuZGVuY2llcy4gRm9yIGV4YW1w
bGUsIHdlIGNhbiBleHBlY3QKKyAgICAvLyBhIFRvdWNoTW92ZSB0byBvbmx5IGFwcGVhciBhZnRl
ciBhIFRvdWNoU3RhcnQsIGFuZCB0aGUgaWRzIG9mIHRoZSB0b3VjaCBwb2ludHMgaXMgY29uc2lz
dGVudCBiZXR3ZWVuCisgICAgLy8gdGhlIHR3by4KKyAgICAvLworICAgIC8vIFdlYkNvcmUgc2hv
dWxkIG5vdCBoYXZlIHRvIHNldCB1cCBpdHMgc3RhdGUgY29ycmVjdGx5IGFmdGVyIHNvbWUgZXZl
bnRzIHdlcmUgZGlzbWlzc2VkLgorICAgIC8vIEZvciBleGFtcGxlLCB3ZSBkb24ndCB3YW50IHRv
IHNlbmQgYSBUb3VjaE1vdmVkIHdpdGhvdXQgYSBUb3VjaFByZXNzZWQuCisgICAgLy8gV2Ugc2Vu
ZCBldmVyeXRoaW5nLCBXZWJDb3JlIHVwZGF0ZXMgaXRzIGludGVybmFsIHN0YXRlIGFuZCBkaXNw
YXRjaCB3aGF0IGlzIG5lZWRlZCB0byB0aGUgcGFnZS4KKyAgICBUcmFja2luZ1R5cGUgZ2xvYmFs
VHJhY2tpbmdUeXBlID0gbV90b3VjaEV2ZW50VHJhY2tpbmcuaXNUcmFja2luZ0FueXRoaW5nKCkg
PyBUcmFja2luZ1R5cGU6OkFzeW5jaHJvbm91cyA6IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7
CisKKyAgICBnbG9iYWxUcmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMoZ2xvYmFsVHJh
Y2tpbmdUeXBlLCBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5n
KTsKKyAgICBmb3IgKGF1dG8mIHRvdWNoUG9pbnQgOiB0b3VjaFN0YXJ0RXZlbnQudG91Y2hQb2lu
dHMoKSkgeworICAgICAgICBzd2l0Y2ggKHRvdWNoUG9pbnQuc3RhdGUoKSkgeworICAgICAgICBj
YXNlIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZDoKKyAgICAgICAgICAgIGds
b2JhbFRyYWNraW5nVHlwZSA9IG1lcmdlVHJhY2tpbmdUeXBlcyhnbG9iYWxUcmFja2luZ1R5cGUs
IG1fdG91Y2hFdmVudFRyYWNraW5nLnRvdWNoRW5kVHJhY2tpbmcpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQ6Cisg
ICAgICAgICAgICBnbG9iYWxUcmFja2luZ1R5cGUgPSBtZXJnZVRyYWNraW5nVHlwZXMoZ2xvYmFs
VHJhY2tpbmdUeXBlLCBtX3RvdWNoRXZlbnRUcmFja2luZy50b3VjaFN0YXJ0VHJhY2tpbmcpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaE1vdmVkOgorICAgICAgICBjYXNlIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0
aW9uYXJ5OgorICAgICAgICAgICAgZ2xvYmFsVHJhY2tpbmdUeXBlID0gbWVyZ2VUcmFja2luZ1R5
cGVzKGdsb2JhbFRyYWNraW5nVHlwZSwgbV90b3VjaEV2ZW50VHJhY2tpbmcudG91Y2hNb3ZlVHJh
Y2tpbmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViUGxhdGZvcm1Ub3Vj
aFBvaW50OjpUb3VjaENhbmNlbGxlZDoKKyAgICAgICAgICAgIGdsb2JhbFRyYWNraW5nVHlwZSA9
IG1lcmdlVHJhY2tpbmdUeXBlcyhnbG9iYWxUcmFja2luZ1R5cGUsIFRyYWNraW5nVHlwZTo6QXN5
bmNocm9ub3VzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIGdsb2JhbFRyYWNraW5nVHlwZTsKIH0KIAogI2VuZGlmCkBAIC0xOTkzLDE0ICsyMDQ0
LDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseShO
YXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGV2
ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6VG91Y2hTdGFydCkgewotICAgICAgICBtX3RvdWNoRXZl
bnRzVHJhY2tpbmdUeXBlID0gdG91Y2hFdmVudFRyYWNraW5nVHlwZShldmVudCk7CisgICAgICAg
IHVwZGF0ZVRvdWNoRXZlbnRUcmFja2luZyhldmVudCk7CiAgICAgICAgIG1fbGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQgPSBkb3duY2FzdDxSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5PigqZHJhd2luZ0FyZWEoKSkubGFzdENvbW1pdHRlZExheWVyVHJlZVRyYW5z
YWN0aW9uSUQoKTsKICAgICB9CiAKLSAgICBpZiAobV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9
PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQorICAgIFRyYWNraW5nVHlwZSB0b3VjaEV2ZW50
c1RyYWNraW5nVHlwZSA9IHRvdWNoRXZlbnRUcmFja2luZ1R5cGUoZXZlbnQpOworICAgIGlmICh0
b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAobV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFj
a2luZ1R5cGU6OkFzeW5jaHJvbm91cykgeworICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlw
ZSA9PSBUcmFja2luZ1R5cGU6OkFzeW5jaHJvbm91cykgewogICAgICAgICAvLyBXZSBjYW4gZW5k
IHVwIGhlcmUgaWYgYSBuYXRpdmUgZ2VzdHVyZSBoYXMgbm90IHN0YXJ0ZWQgYnV0IHRoZSBldmVu
dCBoYW5kbGVycyBhcmUgcGFzc2l2ZS4KICAgICAgICAgLy8KICAgICAgICAgLy8gVGhlIGNsaWVu
dCBvZiBXZWJQYWdlUHJveHkgYXNrcyB0aGUgZXZlbnQgdG8gYmUgc2VudCBzeW5jaHJvbm91c2x5
IHNpbmNlIHRoZSB0b3VjaCBldmVudApAQCAtMjAyMSw3ICsyMDczLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQm
IGV2ZW50KQogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKIAog
ICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCi0gICAgICAgIG1fdG91
Y2hFdmVudHNUcmFja2luZ1R5cGUgPSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAgICAg
ICBtX3RvdWNoRXZlbnRUcmFja2luZy5yZXNldCgpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQm
IGV2ZW50KQpAQCAtMjAyOSwxMyArMjA4MSwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
VG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZQog
ICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV90b3VjaEV2
ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQorICAgIFRyYWNr
aW5nVHlwZSB0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IHRvdWNoRXZlbnRUcmFja2luZ1R5cGUo
ZXZlbnQpOworICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6
Ok5vdFRyYWNraW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudChtX3BhZ2VJRCwgZXZlbnQpLCAwKTsK
IAogICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCi0gICAgICAgIG1f
dG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nOworICAg
ICAgICBtX3RvdWNoRXZlbnRUcmFja2luZy5yZXNldCgpOwogfQogCiAjZWxpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQpAQCAtMjA0NSw5ICsyMDk4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRs
ZVRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQpCi0g
ICAgICAgIG1fdG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPSB0b3VjaEV2ZW50VHJhY2tpbmdUeXBl
KGV2ZW50KTsKKyAgICAgICAgdXBkYXRlVG91Y2hFdmVudFRyYWNraW5nKGV2ZW50KTsKIAotICAg
IGlmIChtX3RvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tp
bmcpCisgICAgaWYgKHRvdWNoRXZlbnRUcmFja2luZ1R5cGUoZXZlbnQpID09IFRyYWNraW5nVHlw
ZTo6Tm90VHJhY2tpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIHRoZSBwYWdlIGlz
IHN1c3BlbmRlZCwgd2hpY2ggc2hvdWxkIGJlIHRoZSBjYXNlIGR1cmluZyBwYW5uaW5nLCBwaW5j
aGluZwpAQCAtMjA3MCw3ICsyMTIzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNo
RXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgfQogCiAgICAgaWYg
KGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkKLSAgICAgICAgbV90b3VjaEV2ZW50
c1RyYWNraW5nVHlwZSA9IFRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgICAgIG1fdG91
Y2hFdmVudFRyYWNraW5nLnJlc2V0KCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5U
UykKIApAQCAtNTA4OSw3ICs1MTQyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUo
UmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRlUmVhc29uKQogICAgIH0KIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCi0gICAgbV90b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IFRyYWNraW5nVHlw
ZTo6Tm90VHJhY2tpbmc7CisgICAgbV90b3VjaEV2ZW50VHJhY2tpbmcucmVzZXQoKTsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggZjcxODVkMGJkNzM3YmRiZGRlODg0OTA4N2U5NmU5NjJiNmY0
ZGY3Mi4uZjRkZGUzNjhhZDllMGRkYzNiNjg3MzI0OTJlMjJhZTI5OGM1NmQ1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQ2OCw2ICsxNDY4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNlbmRXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgdm9pZCB1cGRhdGVUb3VjaEV2ZW50VHJhY2tp
bmcoY29uc3QgV2ViVG91Y2hFdmVudCYpOwogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSB0b3Vj
aEV2ZW50VHJhY2tpbmdUeXBlKGNvbnN0IFdlYlRvdWNoRXZlbnQmKSBjb25zdDsKICNlbmRpZgog
CkBAIC0xNjk1LDcgKzE2OTYsMjkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmF0
aXZlV2ViTW91c2VFdmVudD4gbV9jdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudDsKIAog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIG1fdG91
Y2hFdmVudHNUcmFja2luZ1R5cGUgeyBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5n
IH07CisgICAgc3RydWN0IFRvdWNoRXZlbnRUcmFja2luZyB7CisgICAgICAgIFdlYkNvcmU6OlRy
YWNraW5nVHlwZSB0b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5nIHsgV2ViQ29yZTo6VHJhY2tpbmdU
eXBlOjpOb3RUcmFja2luZyB9OworICAgICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgdG91Y2hT
dGFydFRyYWNraW5nIHsgV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZyB9OworICAg
ICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgdG91Y2hNb3ZlVHJhY2tpbmcgeyBXZWJDb3JlOjpU
cmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nIH07CisgICAgICAgIFdlYkNvcmU6OlRyYWNraW5nVHlw
ZSB0b3VjaEVuZFRyYWNraW5nIHsgV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZyB9
OworCisgICAgICAgIGJvb2wgaXNUcmFja2luZ0FueXRoaW5nKCkgY29uc3QKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIHRvdWNoRm9yY2VDaGFuZ2VkVHJhY2tpbmcgIT0gV2ViQ29yZTo6
VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZworICAgICAgICAgICAgICAgIHx8IHRvdWNoU3RhcnRU
cmFja2luZyAhPSBXZWJDb3JlOjpUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nCisgICAgICAgICAg
ICAgICAgfHwgdG91Y2hNb3ZlVHJhY2tpbmcgIT0gV2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RU
cmFja2luZworICAgICAgICAgICAgICAgIHx8IHRvdWNoRW5kVHJhY2tpbmcgIT0gV2ViQ29yZTo6
VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcmVz
ZXQoKQorICAgICAgICB7CisgICAgICAgICAgICB0b3VjaEZvcmNlQ2hhbmdlZFRyYWNraW5nID0g
V2ViQ29yZTo6VHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZzsKKyAgICAgICAgICAgIHRvdWNoU3Rh
cnRUcmFja2luZyA9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tpbmc7CisgICAgICAg
ICAgICB0b3VjaE1vdmVUcmFja2luZyA9IFdlYkNvcmU6OlRyYWNraW5nVHlwZTo6Tm90VHJhY2tp
bmc7CisgICAgICAgICAgICB0b3VjaEVuZFRyYWNraW5nID0gV2ViQ29yZTo6VHJhY2tpbmdUeXBl
OjpOb3RUcmFja2luZzsKKyAgICAgICAgfQorICAgIH07CisgICAgVG91Y2hFdmVudFRyYWNraW5n
IG1fdG91Y2hFdmVudFRyYWNraW5nOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykg
JiYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIERlcXVlPFF1ZXVlZFRvdWNoRXZlbnRz
PiBtX3RvdWNoRXZlbnRRdWV1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NGRiNDYxYzgwODE4ZDA5NTcyNWUwOWEzMDcx
MTdlNTE3M2M3NWIxLi45OTcyOTI0MmQwMDcwYTBiY2YyYTg1MzkzYjg2MDM4M2M0YzQxMmI2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTYtMDYtMjIgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5q
YW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFNwZWNpYWxpemUgc3luY2hyb25vdXMgZXZlbnQg
dHJhY2tpbmcgcGVyIGV2ZW50IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1ODgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlz
dGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUt
bGlzdGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLWxpc3Rl
bmVyLWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0
ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtYWN0aXZlLXRvdWNoLWVuZC1s
aXN0ZW5lci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNo
L2lvcy90YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWlu
c2lkZS1hY3RpdmUtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3Np
dmUtdG91Y2gtZW5kLWxpc3RlbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1lbmQt
bGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRv
dWNoLWVuZC1saXN0ZW5lcnMtb24tZWxlbWVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRv
dWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQt
YWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWw6IEFkZGVkLgorCiAy
MDE2LTA2LTIyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFYOiBBZGQgc3VwcG9ydCBmb3IgQ1NTNCA6Zm9jdXMtd2l0aGluIHBzZXVkbwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1s
aXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlz
dGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTcyZjlmMzhkMjUyYzZlYTY4ZDkyM2Y3OTI4Yjk3NTNlNDg2ZDNlOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorQ2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MSAo
Z3JlZW4pCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJn
ZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVk
IGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgNTAsIDUwCitMaXN0
ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRp
bmcgZXZlbnRUYXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBj
YW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCAxMDAs
IDEwMAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5k
IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBjYW5j
ZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitEb25lCitDYW5j
ZWxsZWQgZHJhZyBvbiBUYXJnZXQyIChyZWQpCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQg
ZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAxNTAsIDUwCitMaXN0
ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRU
YXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBl
dmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMjAwLCAxMDAKK0xpc3Rl
bmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRp
bmcgZXZlbnRUYXJnZXQyIGF0IDIwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNh
bmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIKK0xpc3RlbmVy
IGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBl
dmVudFRhcmdldDIKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDMgKGJsdWUpCisKK0xp
c3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNo
c3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgZG9jdW1l
bnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAy
NTAsIDUwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2ht
b3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQx
IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJn
ZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBjYW5jZWxhYmxlIGV2
ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAsIDEwMAorTGlzdGVu
ZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcg
ZXZlbnRUYXJnZXQzCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQg
dG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2Vp
dmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0Rv
bmUKK1VzZWxlc3MgQ2xpY2sgaW4gdGhlIGRvY3VtZW50LCBzaG91bGQgYmUgcGFzc2l2ZQorCitM
aXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgYXQg
MzAwLCAzMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoZW5kIHRhcmdl
dHRpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90
YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0
ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFj
dGl2ZS1saXN0ZW5lci1pbnNpZGUtZG9jdW1lbnQtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDNkM2Y4MzMzNGM5ZWNkZTc2ZTZmNmMyYjRlYTRjMjAwOWVmZDhmNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0
aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLWRvY3VtZW50LXdpdGgtcGFzc2l2ZS1saXN0ZW5lci5o
dG1sCkBAIC0wLDAgKzEsMTM5IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBnZXRDbGlja1VJU2Ny
aXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9p
bnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJv
bGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldERyYWdVSVNj
cmlwdChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSkKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIuZHJhZ0Zyb21Qb2ludFRvUG9pbnQoJHtzdGFydFh9LCAke3N0YXJ0WX0sICR7ZW5k
WH0sICR7ZW5kWX0sIDAuMTUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZnVuY3Rpb24gZmFpbChldmVu
dCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTEVEITogTm8gbW91c2UgZXZlbnQg
c2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcgKyBldmVudC50eXBlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZhaWwp
OworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmYWls
KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmYWls
KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmYWls
KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZmFpbCk7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmYWlsKTsKKworICAg
ICAgICAgICAgbGV0IG91dHB1dCA9ICcnOworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0TG9nRXZl
bnQobGlzdGVuZXIsIHNob3VsZFByZXZlbnREZWZhdWx0ID0gZmFsc2UpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdMaXN0ZW5lciAnICsgbGlzdGVuZXIgKyAnIHJlY2VpdmVkJyArIChldmVu
dC5jYW5jZWxhYmxlID8gJyBjYW5jZWxhYmxlJyA6ICcnKSArICcgZXZlbnQgJyArIGV2ZW50LnR5
cGUgKyAnIHRhcmdldHRpbmcgJyArIGV2ZW50LnRhcmdldC5pZDsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGV2ZW50LnRvdWNoZXNbMF0gJiYgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJyBhdCAnICsgZXZlbnQudG91Y2hlc1sw
XS5jbGllbnRYICsgJywgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gICc8YnI+JzsKKworICAg
ICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkUHJldmVudERlZmF1bHQpCisgICAgICAgICAgICAg
ICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91
Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJkb2N1bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsK
KyAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdldExv
Z0V2ZW50KCJkb2N1bWVudCIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoImRvY3VtZW50
IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2
ZSc6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGxldCB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExp
c3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFzc2l2ZSc6
IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92
ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiwgdHJ1ZSkpOworICAgICAgICAgICAgdGFyZ2V0MS5h
ZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bh
c3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0
b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0p
OworICAgICAgICAgICAgbGV0IHRhcmdldDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZl
bnRUYXJnZXQzJyk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNo
c3RhcnQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAg
ICAgICAgICAgIHRhcmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZl
bnQoInRhcmdldDMiLCB0cnVlKSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUg
fSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywg
Z2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAg
ICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDEgKGdyZWVuKTwvaDE+
IjsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDUw
LCA1MCwgMTAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBvdXRw
dXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBk
cmFnIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChnZXREcmFnVUlTY3JpcHQoMTUwLCA1MCwgMjAwLCAxMDApLCBmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MyAoYmx1
ZSk8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0
RHJhZ1VJU2NyaXB0KDI1MCwgNTAsIDMwMCwgMTAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICI8aDE+VXNlbGVzcyBDbGljayBpbiB0aGUgZG9jdW1lbnQsIHNob3Vs
ZCBiZSBwYXNzaXZlPC9oMT4iOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChnZXRDbGlja1VJU2NyaXB0KDMwMCwgMzAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291
dHB1dCcpLmlubmVySFRNTCA9IG91dHB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBy
dW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAqIHsg
dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAgICAgICAgYm9keSB7CisgICAgICAgICAg
ICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSwgI2V2ZW50VGFy
Z2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKyAgICAgICAg
I2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAg
ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAg
ICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAg
ICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGhl
aWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAg
ICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMgdGVz
dCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1saXN0
ZW5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFw
LXdpdGgtYWN0aXZlLWxpc3RlbmVyLWluc2lkZS13aW5kb3ctd2l0aC1wYXNzaXZlLWxpc3RlbmVy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzJmOWYzOGQyNTJjNmVhNjhkOTIzZjc5MjhiOTc1
M2U0ODZkM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2
ZS1saXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorQ2FuY2VsbGVkIGRyYWcg
b24gVGFyZ2V0MSAoZ3JlZW4pCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91
Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIGRvY3Vt
ZW50IHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQg
NTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2ht
b3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxIGF0IDEwMCwgMTAwCitMaXN0ZW5lciBkb2N1bWVu
dCByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFy
Z2V0MSBhdCAxMDAsIDEwMAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2
ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQxCitMaXN0ZW5lciBkb2N1bWVudCBy
ZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQx
CitEb25lCitDYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQyIChyZWQpCisKK0xpc3RlbmVyIHRhcmdl
dDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAx
NTAsIDUwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRhcmdl
dHRpbmcgZXZlbnRUYXJnZXQyIGF0IDE1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQg
Y2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDIgYXQgMjAw
LCAxMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2ht
b3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQyIGF0IDIwMCwgMTAwCitMaXN0ZW5lciB0YXJnZXQx
IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdl
dDIKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQg
dGFyZ2V0dGluZyBldmVudFRhcmdldDIKK0RvbmUKK0NhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDMg
KGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJn
ZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVk
IGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1MAorTGlz
dGVuZXIgZG9jdW1lbnQgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MyBhdCAyNTAsIDUwCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGNhbmNlbGFibGUg
ZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0
ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2htb3ZlIHRhcmdldHRp
bmcgZXZlbnRUYXJnZXQzIGF0IDMwMCwgMTAwCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBj
YW5jZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MyBhdCAzMDAs
IDEwMAorTGlzdGVuZXIgdGFyZ2V0MyByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5k
IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNl
bGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKK0xpc3RlbmVyIGRv
Y3VtZW50IHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVu
dFRhcmdldDMKK0RvbmUKK1VzZWxlc3MgQ2xpY2sgaW4gdGhlIGRvY3VtZW50LCBzaG91bGQgYmUg
cGFzc2l2ZQorCitMaXN0ZW5lciBkb2N1bWVudCByZWNlaXZlZCBldmVudCB0b3VjaHN0YXJ0IHRh
cmdldHRpbmcgYXQgMzAwLCAzMDAKK0xpc3RlbmVyIGRvY3VtZW50IHJlY2VpdmVkIGV2ZW50IHRv
dWNoZW5kIHRhcmdldHRpbmcgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBh
c3NpdmUtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90
YXAtd2l0aC1hY3RpdmUtbGlzdGVuZXItaW5zaWRlLXdpbmRvdy13aXRoLXBhc3NpdmUtbGlzdGVu
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ODAzODQwNTIzZGY4OTU5YjA2ODk0YTg3NzQyNDQzMzJlZjMw
N2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3RhcC13aXRoLWFjdGl2ZS1saXN0ZW5lci1pbnNpZGUtd2luZG93LXdpdGgtcGFzc2l2ZS1saXN0
ZW5lci5odG1sCkBAIC0wLDAgKzEsMTM5IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBnZXRDbGlj
a1VJU2NyaXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAg
ICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRh
cEF0UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVp
Q29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldERy
YWdVSVNjcmlwdChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIuZHJhZ0Zyb21Qb2ludFRvUG9pbnQoJHtzdGFydFh9LCAke3N0YXJ0WX0s
ICR7ZW5kWH0sICR7ZW5kWX0sIDAuMTUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBy
dW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZnVuY3Rpb24gZmFp
bChldmVudCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSAnRkFJTEVEITogTm8gbW91c2Ug
ZXZlbnQgc2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcgKyBldmVudC50eXBlOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3Zlcics
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0Jywg
ZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcics
IGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUn
LCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24n
LCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUn
LCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywg
ZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmYWls
KTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmYWlsKTsK
KworICAgICAgICAgICAgbGV0IG91dHB1dCA9ICcnOworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0
TG9nRXZlbnQobGlzdGVuZXIsIHNob3VsZFByZXZlbnREZWZhdWx0ID0gZmFsc2UpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0ICs9ICdMaXN0ZW5lciAnICsgbGlzdGVuZXIgKyAnIHJlY2VpdmVkJyAr
IChldmVudC5jYW5jZWxhYmxlID8gJyBjYW5jZWxhYmxlJyA6ICcnKSArICcgZXZlbnQgJyArIGV2
ZW50LnR5cGUgKyAnIHRhcmdldHRpbmcgJyArIGV2ZW50LnRhcmdldC5pZDsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXNbMF0gJiYgZXZlbnQudG91Y2hlc1swXS5jbGllbnRY
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJyBhdCAnICsgZXZlbnQudG91
Y2hlc1swXS5jbGllbnRYICsgJywgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gICc8YnI+JzsK
KworICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkUHJldmVudERlZmF1bHQpCisgICAgICAg
ICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgiZG9jdW1lbnQiKSwgeyAncGFzc2l2ZSc6IHRydWUg
fSk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0
TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoImRvY3VtZW50
IiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoImRvY3VtZW50IiksIHsgJ3Bhc3NpdmUn
OiB0cnVlIH0pOworCisgICAgICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdldmVudFRhcmdldDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0
ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0
cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUn
LCBnZXRMb2dFdmVudCgidGFyZ2V0MSIsIHRydWUpKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRk
RXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNz
aXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigndG91
Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsK
KyAgICAgICAgICAgIGxldCB0YXJnZXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50
VGFyZ2V0MycpOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0
YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAg
ICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50
KCJ0YXJnZXQzIiwgdHJ1ZSkpOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVy
KCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0p
OworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdl
dExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworCisgICAgICAgICAg
ICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERyYWdVSVNjcmlwdCg1MCwg
NTAsIDEwMCwgMTAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0
ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5DYW5jZWxsZWQgZHJh
ZyBvbiBUYXJnZXQyIChyZWQpPC9oMT4iOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDE1MCwgNTAsIDIwMCwgMTAwKSwgZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAg
ICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDMgKGJsdWUp
PC9oMT4iOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldERy
YWdVSVNjcmlwdCgyNTAsIDUwLCAzMDAsIDEwMCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCArPSAiPGgxPlVzZWxlc3MgQ2xpY2sgaW4gdGhlIGRvY3VtZW50LCBzaG91bGQg
YmUgcGFzc2l2ZTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoZ2V0Q2xpY2tVSVNjcmlwdCgzMDAsIDMwMCksIGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRw
dXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVu
VGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgKiB7IHRv
dWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAg
bWFyZ2luOiAwOworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEsICNldmVudFRhcmdl
dDIsICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxIHsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisgICAgICAgICNl
dmVudFRhcmdldDIgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAg
ICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBibHVlOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAg
bGVmdDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWln
aHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDI+CisgICAg
ICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mz4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPW91dHB1dD4KKyAgICBUaGlzIHRlc3Qg
cmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KKyAgICA8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90
YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5kLWxpc3Rl
bmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWU3ODZmMTcwNjczMzk1ZTAwYjlhMzliYjc3
M2ZiNjc2Njk3M2NiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3RhcC13aXRoLWFjdGl2ZS10b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzAgQEAKK1RhcCBvbiBUYXJnZXQxIChncmVlbikKKworKEZyYW1lIHNjcm9s
bGluZyBub2RlCisgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA4MDAgNjAwKQorICAoY29udGVudHMg
c2l6ZSA4MDAgNjAwKQorICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uIGZvciBl
dmVudCB0b3VjaGVuZAorICAgIGF0ICgwLDApIHNpemUgMzAweDEwMCkKKykKK0xpc3RlbmVyIHRh
cmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MQorRG9uZQorVGFwIG9uIFRhcmdldDIgKHJlZCkKKworKEZyYW1lIHNjcm9sbGluZyBu
b2RlCisgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA4MDAgNjAwKQorICAoY29udGVudHMgc2l6ZSA4
MDAgNjAwKQorICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uIGZvciBldmVudCB0
b3VjaGVuZAorICAgIGF0ICgwLDApIHNpemUgMzAweDEwMCkKKykKK0xpc3RlbmVyIHRhcmdldDEg
cmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0
MgorRG9uZQorVGFwIG9uIFRhcmdldDMgKGJsdWUpCisKKyhGcmFtZSBzY3JvbGxpbmcgbm9kZQor
ICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgODAwIDYwMCkKKyAgKGNvbnRlbnRzIHNpemUgODAwIDYw
MCkKKyAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiBmb3IgZXZlbnQgdG91Y2hl
bmQKKyAgICBhdCAoMCwwKSBzaXplIDMwMHgxMDApCispCitMaXN0ZW5lciB0YXJnZXQxIHJlY2Vp
dmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLWFj
dGl2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy90YXAtd2l0aC1hY3RpdmUtdG91Y2gtZW5kLWxpc3RlbmVyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDQzNmIzM2VmZTQ2ZDNkNDhmODc4OTFjN2YyMDc4MGI2MTFlNjk5NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1hY3RpdmUt
dG91Y2gtZW5kLWxpc3RlbmVyLmh0bWwKQEAgLTAsMCArMSwxMDYgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGdldFVJU2NyaXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBg
CisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LnNpbmdsZVRhcEF0UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlv
biBmYWlsKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBt
b3VzZSBldmVudCBzaG91bGQgYmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dmVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vv
dXQnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVu
dGVyJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vs
ZWF2ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
ZG93bicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
bW92ZScsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNl
dXAnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycs
IGZhaWwpOworCisgICAgICAgICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5j
dGlvbiBnZXRMb2dFdmVudChsaXN0ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5j
dGlvbiBsb2dFdmVudChldmVudCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJzxw
cmU+JyArIHdpbmRvdy5pbnRlcm5hbHMuc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KCkgKyAnPC9w
cmU+JzsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdMaXN0ZW5lciAnICsgbGlzdGVu
ZXIgKyAnIHJlY2VpdmVkJyArIChldmVudC5jYW5jZWxhYmxlID8gJyBjYW5jZWxhYmxlJyA6ICcn
KSArICcgZXZlbnQgJyArIGV2ZW50LnR5cGUgKyAnIHRhcmdldHRpbmcgJyArIGV2ZW50LnRhcmdl
dC5pZDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXNbMF0gJiYgZXZlbnQu
dG91Y2hlc1swXS5jbGllbnRYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
JyBhdCAnICsgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYICsgJywgJyArIGV2ZW50LnRvdWNoZXNb
MF0uY2xpZW50WTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gICc8YnI+JzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGxldCB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFy
Z2V0MScpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcs
IGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworCisgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5U
YXAgb24gVGFyZ2V0MSAoZ3JlZW4pPC9oMT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChnZXRVSVNjcmlwdCg1MCwgNTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
ICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgx
PlRhcCBvbiBUYXJnZXQyIChyZWQpPC9oMT4iOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoMTUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
ICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0MyAoYmx1ZSk8L2gxPiI7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoMjUwLCA1MCksIGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ291dHB1dCcpLmlubmVySFRNTCA9IG91dHB1dDsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9z
Y3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAqIHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRp
b247IH0KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0K
KyAgICAgICAgI2V2ZW50VGFyZ2V0MSwgI2V2ZW50VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAg
ICAgICB9CisgICAgICAgICNldmVudFRhcmdldDEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRU
YXJnZXQzIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAg
fQorICAgIDwvc3R5bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRp
YWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4K
KyAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50
VGFyZ2V0Mz4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGlkPW91dHB1dD4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250
cm9sbGVyIHRvIHJ1bi4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLWxpc3Rl
bmVyLWluc2lkZS1hY3RpdmUtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLWxpc3RlbmVyLWluc2lkZS1hY3RpdmUtbGlzdGVu
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jY2M5YTUwMzNmZTIwY2Q1YzlhNWRlOWVjZWVhMWFmMWRmYTEy
Yzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3RhcC13aXRoLXBhc3NpdmUtbGlzdGVuZXItaW5zaWRlLWFjdGl2ZS1saXN0ZW5lci5odG1sCkBA
IC0wLDAgKzEsMTE2IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBnZXRVSVNjcmlwdCh4LCB5KQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KCR7eH0sICR7
eX0sIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3Jp
cHRDb21wbGV0ZSgiRG9uZSIpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSko
KTtgCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgZnVuY3Rpb24gZmFpbChldmVudCkgeworICAgICAgICAg
ICAgICAgIG91dHB1dCArPSAnRkFJTEVEITogTm8gbW91c2UgZXZlbnQgc2hvdWxkIGJlIHJlY2Vp
dmUsIHdlIGdvdCBhICcgKyBldmVudC50eXBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZhaWwpOworICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgZmFpbCk7CisgICAgICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZhaWwpOworICAgICAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmYWlsKTsKKyAgICAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmYWlsKTsKKyAgICAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmYWlsKTsKKyAgICAgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZmFpbCk7CisgICAgICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmYWlsKTsKKworICAgICAgICAgICAgbGV0
IG91dHB1dCA9ICcnOworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0TG9nRXZlbnQobGlzdGVuZXIp
IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdMaXN0ZW5lciAnICsgbGlzdGVuZXIgKyAnIHJl
Y2VpdmVkJyArIChldmVudC5jYW5jZWxhYmxlID8gJyBjYW5jZWxhYmxlJyA6ICcnKSArICcgZXZl
bnQgJyArIGV2ZW50LnR5cGUgKyAnIHRhcmdldHRpbmcgJyArIGV2ZW50LnRhcmdldC5pZDsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXNbMF0gJiYgZXZlbnQudG91Y2hlc1sw
XS5jbGllbnRYKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJyBhdCAnICsg
ZXZlbnQudG91Y2hlc1swXS5jbGllbnRYICsgJywgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50
WTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0g
Jzxicj4nOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ2RlZmF1bHRQcmV2ZW50ZWQg
YmVmb3JlIHByZXZlbnREZWZhdWx0KCk6ICcgKyBldmVudC5kZWZhdWx0UHJldmVudGVkICsgJzxi
cj4nOworICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQgKz0gJ2RlZmF1bHRQcmV2ZW50ZWQgYWZ0ZXIgcHJldmVudERl
ZmF1bHQoKTogJyArIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgKyAnPGJyPic7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgdGFyZ2V0MSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdldmVudFRhcmdldDEnKTsKKyAgICAgICAgICAgIHRhcmdldDEu
YWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOwor
ICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBnZXRMb2dF
dmVudCgidGFyZ2V0MSIpKTsKKyAgICAgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcign
dG91Y2hlbmQnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpKTsKKyAgICAgICAgICAgIHRhcmdldDEu
YWRkRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBnZXRMb2dFdmVudCgidGFyZ2V0MSIpKTsK
KyAgICAgICAgICAgIGxldCB0YXJnZXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50
VGFyZ2V0MycpOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0
YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAg
ICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50
KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5h
ZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bh
c3NpdmUnOiB0cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0My5hZGRFdmVudExpc3RlbmVyKCd0
b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQzIiksIHsgJ3Bhc3NpdmUnOiB0cnVlIH0p
OworCisgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFyZ2V0MSAoZ3JlZW4pPC9o
MT4iOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCg1MCwg
NTApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0
OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQyIChyZWQpPC9o
MT4iOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQo
MTUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQg
Kz0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gIjxoMT5UYXAgb24gVGFy
Z2V0MyAoYmx1ZSk8L2gxPiI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQoZ2V0VUlTY3JpcHQoMjUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ291dHB1dCcpLmlubmVySFRN
TCA9IG91dHB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAg
ICAgICAqIHsgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH0KKyAgICAgICAgYm9keSB7Cisg
ICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSwg
I2V2ZW50VGFyZ2V0MiwgI2V2ZW50VGFyZ2V0MyB7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRh
cmdldDEgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0K
KyAgICAgICAgI2V2ZW50VGFyZ2V0MiB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAx
MDBweDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0MT4KKyAgICAgICAgPGRpdiBpZD1ldmVudFRh
cmdldDI+CisgICAgICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mz4KKyAgICAgICAgICAgIDwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPW91dHB1dD4KKyAg
ICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KKyAgICA8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLWVuZC1saXN0ZW5lci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10
b3VjaC1lbmQtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZGFkYjYxMTg5Mjhl
ODc4NGY1ZTBhZjVlYjNlMzk1NzE3ZWVlOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1lbmQtbGlzdGVu
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1RhcCBvbiBUYXJnZXQxIChncmVlbikK
KworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2
ZW50VGFyZ2V0MQorRG9uZQorVGFwIG9uIFRhcmdldDIgKHJlZCkKKworTGlzdGVuZXIgdGFyZ2V0
MSByZWNlaXZlZCBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MgorRG9uZQor
VGFwIG9uIFRhcmdldDMgKGJsdWUpCisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQg
dG91Y2hlbmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxpc3Rl
bmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFz
c2l2ZS10b3VjaC1lbmQtbGlzdGVuZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjYwNWQyMjk0YTA4ZWEx
NWNmNTc5NmI1ODQ3YThmMGExNzBkMWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtZW5kLWxpc3RlbmVy
Lmh0bWwKQEAgLTAsMCArMSwxMDUgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFVJU2NyaXB0
KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9pbnQo
JHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci51aVNjcmlwdENvbXBsZXRlKCJEb25lIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbiBmYWlsKGV2ZW50KSB7Cisg
ICAgICAgICAgICAgICAgb3V0cHV0ICs9ICdGQUlMRUQhOiBObyBtb3VzZSBldmVudCBzaG91bGQg
YmUgcmVjZWl2ZSwgd2UgZ290IGEgJyArIGV2ZW50LnR5cGU7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZmFpbCk7CisgICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmYWlsKTsKKyAgICAg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZmFpbCk7CisgICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZhaWwpOworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZhaWwpOworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZhaWwpOworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBmYWlsKTsKKyAgICAg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZhaWwpOworCisgICAgICAg
ICAgICBsZXQgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRMb2dFdmVudChs
aXN0ZW5lcikgeworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBsb2dFdmVudChldmVu
dCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0xpc3RlbmVyICcgKyBsaXN0ZW5l
ciArICcgcmVjZWl2ZWQnICsgKGV2ZW50LmNhbmNlbGFibGUgPyAnIGNhbmNlbGFibGUnIDogJycp
ICsgJyBldmVudCAnICsgZXZlbnQudHlwZSArICcgdGFyZ2V0dGluZyAnICsgZXZlbnQudGFyZ2V0
LmlkOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQudG91Y2hlc1swXSAmJiBldmVudC50
b3VjaGVzWzBdLmNsaWVudFgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAn
IGF0ICcgKyBldmVudC50b3VjaGVzWzBdLmNsaWVudFggKyAnLCAnICsgZXZlbnQudG91Y2hlc1sw
XS5jbGllbnRZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSAgJzxicj4nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgbGV0IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJn
ZXQxJyk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywg
Z2V0TG9nRXZlbnQoInRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisKKyAgICAgICAg
ICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQxIChncmVlbik8L2gxPiI7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KDUwLCA1MCksIGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDIgKHJlZCk8L2gxPiI7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNjcmlwdCgxNTAsIDUwKSwgZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSByZXN1bHQ7Cisg
ICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQzIChibHVlKTwv
aDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNj
cmlwdCgyNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0cHV0Owor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRl
c3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICogeyB0b3Vj
aC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1h
cmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRUYXJnZXQy
LCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7CisgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICAjZXZl
bnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAg
ICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxl
ZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxk
aXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2ZW50VGFyZ2V0Mj4KKyAgICAg
ICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAg
IDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0PgorICAgIFRoaXMgdGVzdCBy
ZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAgIDwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Rh
cC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMtb24t
ZWxlbWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNoLWVuZC1saXN0ZW5lcnMt
b24tZWxlbWVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzYTMyZmRjNDA3Njc2YzdkMzIw
Y2VmMDY1YWEzMzMxMzFjOWNmNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91
Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBA
QAorVGFwIG9uIFRhcmdldDEgKGdyZWVuKQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2
ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgNTAsIDUwCitMaXN0ZW5l
ciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hlbmQgdGFyZ2V0dGluZyBl
dmVudFRhcmdldDEKK0RvbmUKK1RhcCBvbiBUYXJnZXQyIChyZWQpCisKK0xpc3RlbmVyIHRhcmdl
dDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAx
NTAsIDUwCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGNhbmNlbGFibGUgZXZlbnQgdG91Y2hl
bmQgdGFyZ2V0dGluZyBldmVudFRhcmdldDIKK0RvbmUKK1RhcCBvbiBUYXJnZXQzIChibHVlKQor
CitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGluZyBl
dmVudFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBldmVudCB0
b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3RlbmVyIHRh
cmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJnZXR0aW5nIGV2ZW50
VGFyZ2V0MworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNo
ZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10
b3VjaC1lbmQtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3RpdmUtdG91Y2gt
ZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxNTliZjU1MTA1MDQx
NTVlMGFkMTVjMmRhOGU4YzFmODVjNjAxNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvdGFwLXdpdGgtcGFzc2l2ZS10b3VjaC1zdGFydC1hY3Rp
dmUtdG91Y2gtZW5kLWxpc3RlbmVycy1vbi1lbGVtZW50cy5odG1sCkBAIC0wLDAgKzEsMTEzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBnZXRVSVNjcmlwdCh4LCB5KQorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KCR7eH0sICR7eX0sIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiRG9u
ZSIpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgZnVuY3Rpb24gZmFpbChldmVudCkgeworICAgICAgICAgICAgICAgIG91dHB1dCAr
PSAnRkFJTEVEITogTm8gbW91c2UgZXZlbnQgc2hvdWxkIGJlIHJlY2VpdmUsIHdlIGdvdCBhICcg
KyBldmVudC50eXBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNlb3V0JywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2VlbnRlcicsIGZhaWwpOworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdtb3VzZWRvd24nLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmYWlsKTsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdtb3VzZXVwJywgZmFpbCk7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignY2xpY2snLCBmYWlsKTsKKworICAgICAgICAgICAgbGV0IG91dHB1dCA9ICcnOwor
ICAgICAgICAgICAgZnVuY3Rpb24gZ2V0TG9nRXZlbnQobGlzdGVuZXIpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZnVuY3Rpb24gbG9nRXZlbnQoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0ICs9ICdMaXN0ZW5lciAnICsgbGlzdGVuZXIgKyAnIHJlY2VpdmVkJyArIChldmVu
dC5jYW5jZWxhYmxlID8gJyBjYW5jZWxhYmxlJyA6ICcnKSArICcgZXZlbnQgJyArIGV2ZW50LnR5
cGUgKyAnIHRhcmdldHRpbmcgJyArIGV2ZW50LnRhcmdldC5pZDsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGV2ZW50LnRvdWNoZXNbMF0gJiYgZXZlbnQudG91Y2hlc1swXS5jbGllbnRYKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJyBhdCAnICsgZXZlbnQudG91Y2hlc1sw
XS5jbGllbnRYICsgJywgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gICc8YnI+JzsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCB0YXJnZXQxID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAgICAgICAgICAgdGFy
Z2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZlbnQoInRhcmdldDEi
KSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQxLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIiksIHsgJ3Bhc3NpdmUnOiB0
cnVlIH0pOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcs
IGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExp
c3RlbmVyKCd0b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAg
ICAgbGV0IHRhcmdldDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQzJyk7
CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRM
b2dFdmVudCgidGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRh
cmdldDMuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDMi
KSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlz
dGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSk7CisgICAgICAgICAgICB0
YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdl
dDMiKSk7CisKKyAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBvbiBUYXJnZXQxIChncmVl
bik8L2gxPiI7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0
KDUwLCA1MCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIG91dHB1dCArPSBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICI8aDE+VGFwIG9uIFRhcmdldDIgKHJl
ZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRVSVNj
cmlwdCgxNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIG91
dHB1dCArPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPlRhcCBv
biBUYXJnZXQzIChibHVlKTwvaDE+IjsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChnZXRVSVNjcmlwdCgyNTAsIDUwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5u
ZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+
CisgICAgICAgICogeyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5
IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJn
ZXQxLCAjZXZlbnRUYXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2
ZW50VGFyZ2V0MSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAg
ICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHJlZDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxl
ZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAg
ICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQxPgorICAgICAgICA8ZGl2IGlkPWV2
ZW50VGFyZ2V0Mj4KKyAgICAgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQzPgorICAgICAgICAg
ICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9b3V0cHV0
PgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorICAg
IDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3RhcnQtYWN0aXZlLXRvdWNo
LW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNoLXN0YXJ0LWFjdGl2ZS10
b3VjaC1tb3ZlLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGZjNDRjMWNlYTEzNzExMGJkZDdiZmUxNWEyYzU4OGQzYmRlNTJhMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRv
dWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1tb3ZlLWxpc3RlbmVycy1vbi1lbGVtZW50cy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMSBAQAorQ2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MSAoZ3JlZW4p
CisKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgZXZlbnQgdG91Y2hzdGFydCB0YXJnZXR0aW5n
IGV2ZW50VGFyZ2V0MSBhdCA1MCwgNTAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2Vs
YWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDEgYXQgMTAwLCAxMDAK
K0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0YXJn
ZXR0aW5nIGV2ZW50VGFyZ2V0MQorRG9uZQorQ2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MiAocmVk
KQorCitMaXN0ZW5lciB0YXJnZXQxIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0dGlu
ZyBldmVudFRhcmdldDIgYXQgMTUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5j
ZWxhYmxlIGV2ZW50IHRvdWNobW92ZSB0YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MiBhdCAyMDAsIDEw
MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxhYmxlIGV2ZW50IHRvdWNoZW5kIHRh
cmdldHRpbmcgZXZlbnRUYXJnZXQyCitEb25lCitDYW5jZWxsZWQgZHJhZyBvbiBUYXJnZXQzIChi
bHVlKQorCitMaXN0ZW5lciB0YXJnZXQzIHJlY2VpdmVkIGV2ZW50IHRvdWNoc3RhcnQgdGFyZ2V0
dGluZyBldmVudFRhcmdldDMgYXQgMjUwLCA1MAorTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBl
dmVudCB0b3VjaHN0YXJ0IHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzIGF0IDI1MCwgNTAKK0xpc3Rl
bmVyIHRhcmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGlu
ZyBldmVudFRhcmdldDMgYXQgMzAwLCAxMDAKK0xpc3RlbmVyIHRhcmdldDEgcmVjZWl2ZWQgY2Fu
Y2VsYWJsZSBldmVudCB0b3VjaG1vdmUgdGFyZ2V0dGluZyBldmVudFRhcmdldDMgYXQgMzAwLCAx
MDAKK0xpc3RlbmVyIHRhcmdldDMgcmVjZWl2ZWQgY2FuY2VsYWJsZSBldmVudCB0b3VjaGVuZCB0
YXJnZXR0aW5nIGV2ZW50VGFyZ2V0MworTGlzdGVuZXIgdGFyZ2V0MSByZWNlaXZlZCBjYW5jZWxh
YmxlIGV2ZW50IHRvdWNoZW5kIHRhcmdldHRpbmcgZXZlbnRUYXJnZXQzCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZlLXRvdWNo
LXN0YXJ0LWFjdGl2ZS10b3VjaC1tb3ZlLWxpc3RlbmVycy1vbi1lbGVtZW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3RhcC13aXRoLXBhc3NpdmUtdG91Y2gtc3Rh
cnQtYWN0aXZlLXRvdWNoLW1vdmUtbGlzdGVuZXJzLW9uLWVsZW1lbnRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWYxNmY5ZjBkNDY5OWFhNTI3YjJhMmI4NDRhMTU5MjRiZDJmNWFkYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy90YXAtd2l0aC1wYXNzaXZl
LXRvdWNoLXN0YXJ0LWFjdGl2ZS10b3VjaC1tb3ZlLWxpc3RlbmVycy1vbi1lbGVtZW50cy5odG1s
CkBAIC0wLDAgKzEsMTIwIEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBnZXREcmFnVUlTY3JpcHQo
c3RhcnRYLCBzdGFydFksIGVuZFgsIGVuZFkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBgCisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLmRyYWdGcm9tUG9pbnRUb1BvaW50KCR7c3RhcnRYfSwgJHtzdGFydFl9LCAke2VuZFh9LCAk
e2VuZFl9LCAwLjE1LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLnVpU2NyaXB0Q29tcGxldGUoIkRvbmUiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0pKCk7YAorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGZhaWwoZXZlbnQpIHsK
KyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ0ZBSUxFRCE6IE5vIG1vdXNlIGV2ZW50IHNob3Vs
ZCBiZSByZWNlaXZlLCB3ZSBnb3QgYSAnICsgZXZlbnQudHlwZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGZhaWwpOworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmYWlsKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZmFpbCk7Cisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGZhaWwpOworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZmFpbCk7CisgICAgICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZmFpbCk7CisKKyAgICAgICAg
ICAgIGxldCBvdXRwdXQgPSAnJzsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldExvZ0V2ZW50KGxp
c3RlbmVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvZ0V2ZW50KGV2ZW50
KSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSAnTGlzdGVuZXIgJyArIGxpc3RlbmVy
ICsgJyByZWNlaXZlZCcgKyAoZXZlbnQuY2FuY2VsYWJsZSA/ICcgY2FuY2VsYWJsZScgOiAnJykg
KyAnIGV2ZW50ICcgKyBldmVudC50eXBlICsgJyB0YXJnZXR0aW5nICcgKyBldmVudC50YXJnZXQu
aWQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50b3VjaGVzWzBdICYmIGV2ZW50LnRv
dWNoZXNbMF0uY2xpZW50WCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9ICcg
YXQgJyArIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCArICcsICcgKyBldmVudC50b3VjaGVzWzBd
LmNsaWVudFk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3V0
cHV0ICs9ICAnPGJyPic7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09
ICd0b3VjaG1vdmUnKQorICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxl
dCB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V2ZW50VGFyZ2V0MScpOworICAg
ICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZ2V0TG9nRXZl
bnQoInRhcmdldDEiKSwgeyAncGFzc2l2ZSc6IHRydWUgfSk7CisgICAgICAgICAgICB0YXJnZXQx
LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOwor
ICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIGdldExvZ0V2
ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCd0
b3VjaGNhbmNlbCcsIGdldExvZ0V2ZW50KCJ0YXJnZXQxIikpOworICAgICAgICAgICAgbGV0IHRh
cmdldDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXZlbnRUYXJnZXQzJyk7CisgICAgICAg
ICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBnZXRMb2dFdmVudCgi
dGFyZ2V0MyIpLCB7ICdwYXNzaXZlJzogdHJ1ZSB9KTsKKyAgICAgICAgICAgIHRhcmdldDMuYWRk
RXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSk7CisgICAg
ICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgZ2V0TG9nRXZlbnQo
InRhcmdldDMiKSk7CisgICAgICAgICAgICB0YXJnZXQzLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNo
Y2FuY2VsJywgZ2V0TG9nRXZlbnQoInRhcmdldDMiKSk7CisKKyAgICAgICAgICAgIG91dHB1dCAr
PSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdldDEgKGdyZWVuKTwvaDE+IjsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KDUwLCA1MCwgMTAwLCAx
MDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gcmVzdWx0
OworICAgICAgICAgICAgICAgIG91dHB1dCArPSAiPGgxPkNhbmNlbGxlZCBkcmFnIG9uIFRhcmdl
dDIgKHJlZCk8L2gxPiI7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChn
ZXREcmFnVUlTY3JpcHQoMTUwLCA1MCwgMjAwLCAxMDApLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAg
b3V0cHV0ICs9ICI8aDE+Q2FuY2VsbGVkIGRyYWcgb24gVGFyZ2V0MyAoYmx1ZSk8L2gxPiI7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0
KDI1MCwgNTAsIDMwMCwgMTAwKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0JykuaW5uZXJIVE1MID0gb3V0
cHV0OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICog
eyB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgfQorICAgICAgICBib2R5IHsKKyAgICAgICAg
ICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorICAgICAgICAjZXZlbnRUYXJnZXQxLCAjZXZlbnRU
YXJnZXQyLCAjZXZlbnRUYXJnZXQzIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
ICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKyAgICAgICAgI2V2ZW50VGFyZ2V0MSB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAg
ICAjZXZlbnRUYXJnZXQyIHsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAg
ICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4Owor
ICAgICAgICB9CisgICAgICAgICNldmVudFRhcmdldDMgeworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
ICAgIGxlZnQ6IDEwMHB4OworICAgICAgICB9CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAg
aGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD1ldmVudFRhcmdldDE+CisgICAgICAgIDxkaXYgaWQ9ZXZlbnRUYXJnZXQyPgor
ICAgICAgICAgICAgPGRpdiBpZD1ldmVudFRhcmdldDM+CisgICAgICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD1vdXRwdXQ+CisgICAgVGhpcyB0
ZXN0IHJlcXVpcmVzIFVJU2NyaXB0Q29udHJvbGxlciB0byBydW4uCisgICAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9maXhlZC9maXhlZC1pbi1vdmVyZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9maXhlZC9maXhlZC1pbi1vdmVyZmxvdy1leHBlY3RlZC50
eHQKaW5kZXggNzFkZmFiMmZhY2YwOGE1ODM5ZDAwODM0YzFkZDhhNjc4ZTc3NWFmMC4uZDZhNTBl
OTNkOTE1N2JiZjZiZmU3MTFlNjMwYmMzYmQ3ZDc4NGFlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZml4ZWQvZml4ZWQtaW4tb3ZlcmZsb3ctZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZpeGVkL2Zp
eGVkLWluLW92ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDcgQEAKICAgKHNjcm9sbGFi
bGUgYXJlYSBzaXplIDc4NSA2MDApCiAgIChjb250ZW50cyBzaXplIDc4NSAyMjEzKQogICAocmVx
dWVzdGVkIHNjcm9sbCBwb3NpdGlvbiAwIDIwMCkKLSAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3Bh
dGNoIHJlZ2lvbgorICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uIGZvciBldmVu
dCB3aGVlbAogICAgIGF0ICgwLDEzKSBzaXplIDIwNHgyMDQpCiAgIChjaGlsZHJlbiAxCiAgICAg
KEZpeGVkIG5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUtZXhwZWN0ZWQu
dHh0CmluZGV4IDMwOWVlNzMyMDQxNGE4MDhkMmMxZjc3MzM0NzZhMTk4ODlmYTZkZGQuLjA1N2Rk
ZjE2MGM3YmYxYjUwYzI4YmE2ZDc2NTQ2YzYwYjU1ZWQ2ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVz
L2Nvb3JkaW5hdGVkLWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIChGcmFtZSBz
Y3JvbGxpbmcgbm9kZQogICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgNzg1IDYwMCkKICAgKGNvbnRl
bnRzIHNpemUgNzg1IDEwMTYpCi0gIChzeW5jaHJvbm91cyBldmVudCBkaXNwYXRjaCByZWdpb24K
KyAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoIHJlZ2lvbiBmb3IgZXZlbnQgd2hlZWwKICAg
ICBhdCAoNDUsNDcpIHNpemUgNDA0eDMwNCkKICAgKGNoaWxkcmVuIDEKICAgICAoRnJhbWUgc2Ny
b2xsaW5nIG5vZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1nYWluLXNjcm9sbGluZy1hbmNlc3Rvci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29v
cmRpbmF0ZWQtZnJhbWUtZ2Fpbi1zY3JvbGxpbmctYW5jZXN0b3ItZXhwZWN0ZWQudHh0CmluZGV4
IGMwNDI2MzBmZDAxOWE4NjI0ODdlYTI5NWU3MDEwNzI2YzJmZTNmY2QuLjE2Nzc3NzYyOTNhOThh
YWY2YzUwM2EyMGVmOGZlODQwNWJlNzdhNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1nYWluLXNjcm9sbGlu
Zy1hbmNlc3Rvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWdhaW4tc2Nyb2xsaW5nLWFuY2VzdG9y
LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIChGcmFtZSBzY3JvbGxpbmcgbm9kZQogICAo
c2Nyb2xsYWJsZSBhcmVhIHNpemUgNzg1IDYwMCkKICAgKGNvbnRlbnRzIHNpemUgNzg1IDEwMTYp
Ci0gIChzeW5jaHJvbm91cyBldmVudCBkaXNwYXRjaCByZWdpb24KKyAgKHN5bmNocm9ub3VzIGV2
ZW50IGRpc3BhdGNoIHJlZ2lvbiBmb3IgZXZlbnQgd2hlZWwKICAgICBhdCAoNDUsNDcpIHNpemUg
NDA0eDMwNCkKICAgKGNoaWxkcmVuIDEKICAgICAoRml4ZWQgbm9kZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1l
LWluLWZpeGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1pbi1maXhlZC1leHBlY3RlZC50eHQKaW5kZXgg
MGZjMjRmOTE0ODdjMWNhN2E2NjM0NWFiMmE3Y2Q1MTlmZDg0MjE1MC4uZmMyYzNmZjA3NWNlOTQw
NWY0MTAwYTNjMzJjYmNiOGMzY2FmNTNiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWluLWZpeGVkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMv
Y29vcmRpbmF0ZWQtZnJhbWUtaW4tZml4ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAog
KEZyYW1lIHNjcm9sbGluZyBub2RlCiAgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA3ODUgNjAwKQog
ICAoY29udGVudHMgc2l6ZSA3ODUgMTAxNikKLSAgKHN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNo
IHJlZ2lvbgorICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uIGZvciBldmVudCB3
aGVlbAogICAgIGF0ICg0NSwzNykgc2l6ZSA0MDR4MzA0KQogICAoY2hpbGRyZW4gMQogICAgIChG
aXhlZCBub2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUtbG9zZS1zY3JvbGxpbmctYW5jZXN0b3ItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3Jk
aW5hdGVkLWZyYW1lLWxvc2Utc2Nyb2xsaW5nLWFuY2VzdG9yLWV4cGVjdGVkLnR4dAppbmRleCAz
ZDQ2Mzc4MjY0YWYzZTljNjg2MGJhZGI1MWY2NWZkMTA4ZjFlMzk1Li45Mjk3YjczZWIyOGFmNjYz
NzI0M2FiM2U5ZGJmOGRjY2RmOTQxODNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy90aWxlZC1k
cmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUtbG9zZS1zY3JvbGxpbmct
YW5jZXN0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1sb3NlLXNjcm9sbGluZy1hbmNlc3Rvci1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKICAgKHNj
cm9sbGFibGUgYXJlYSBzaXplIDc4NSA2MDApCiAgIChjb250ZW50cyBzaXplIDc4NSAxMDE2KQot
ICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uCisgIChzeW5jaHJvbm91cyBldmVu
dCBkaXNwYXRjaCByZWdpb24gZm9yIGV2ZW50IHdoZWVsCiAgICAgYXQgKDQ1LDQ3KSBzaXplIDQw
NHgzMDQpCiAgIChjaGlsZHJlbiAxCiAgICAgKEZyYW1lIHNjcm9sbGluZyBub2RlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvZnJhbWVzZXQt
ZnJhbWUtc2Nyb2xsYWJpbGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9mcmFtZXMvZnJhbWVzZXQtZnJhbWUtc2Nyb2xsYWJpbGl0eS1leHBlY3Rl
ZC50eHQKaW5kZXggYzAxMDY3MmEzNzA0YjkxODBiZWYyYjNlNjJkMjk2YzY1MWRhZDUxNi4uYTY1
YmYxODNkNjY3YTRlOWQxZmQ0NTlmNTBmYmRhYmM2YmZmYWI4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2ZyYW1lc2V0LWZyYW1lLXNjcm9s
bGFiaWxpdHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2ZyYW1lcy9mcmFtZXNldC1mcmFtZS1zY3JvbGxhYmlsaXR5LWV4cGVjdGVkLnR4dApA
QCAtMSw3ICsxLDcgQEAKIChGcmFtZSBzY3JvbGxpbmcgbm9kZQogICAoc2Nyb2xsYWJsZSBhcmVh
IHNpemUgODAwIDYwMCkKICAgKGNvbnRlbnRzIHNpemUgODAwIDYwMCkKLSAgKHN5bmNocm9ub3Vz
IGV2ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVn
aW9uIGZvciBldmVudCB3aGVlbAogICAgIGF0ICgwLDApIHNpemUgODAweDU5NCkKICkKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2ZyYW1l
c2V0LW5lc3RlZC1mcmFtZS1zY3JvbGxhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9mcmFtZXNldC1uZXN0ZWQtZnJhbWUtc2Ny
b2xsYWJpbGl0eS1leHBlY3RlZC50eHQKaW5kZXggNGI1MTBjZGRiYTU0NTRiMzExNTY5MDE4MDgz
Mjg3MDFlNTZmODUzMS4uODQ1MDM5MjE5MmE1ZWQwZDc4ZWU0NGY0NzlhMDU0YTNhODYxMmI3NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Zy
YW1lc2V0LW5lc3RlZC1mcmFtZS1zY3JvbGxhYmlsaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvZnJhbWVzZXQtbmVzdGVkLWZy
YW1lLXNjcm9sbGFiaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogKEZyYW1lIHNj
cm9sbGluZyBub2RlCiAgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA4MDAgNjAwKQogICAoY29udGVu
dHMgc2l6ZSA4MDAgNjAwKQotICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9uCisg
IChzeW5jaHJvbm91cyBldmVudCBkaXNwYXRjaCByZWdpb24gZm9yIGV2ZW50IHdoZWVsCiAgICAg
YXQgKDAsMTY2KSBzaXplIDI4MHg0MzQpCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9zY3JvbGwtcmVnaW9uLWFmdGVyLWZyYW1lLWxh
eW91dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9m
cmFtZXMvc2Nyb2xsLXJlZ2lvbi1hZnRlci1mcmFtZS1sYXlvdXQtZXhwZWN0ZWQudHh0CmluZGV4
IDE5ZjZkMGM3ODgzNWJmODY4ZWVmMjNkOTMzODEzMmM5ZGY3NzIyMTMuLjQ1YzEzYzA1ZDUxZjk2
OTA1ZGY2NjJjNmU0NzFhN2IxYzJkZjBjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9zY3JvbGwtcmVnaW9uLWFmdGVyLWZyYW1lLWxheW91
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
ZnJhbWVzL3Njcm9sbC1yZWdpb24tYWZ0ZXItZnJhbWUtbGF5b3V0LWV4cGVjdGVkLnR4dApAQCAt
Miw3ICsyLDcgQEAKIChGcmFtZSBzY3JvbGxpbmcgbm9kZQogICAoc2Nyb2xsYWJsZSBhcmVhIHNp
emUgNzg1IDYwMCkKICAgKGNvbnRlbnRzIHNpemUgNzg1IDc1NykKLSAgKHN5bmNocm9ub3VzIGV2
ZW50IGRpc3BhdGNoIHJlZ2lvbgorICAoc3luY2hyb25vdXMgZXZlbnQgZGlzcGF0Y2ggcmVnaW9u
IGZvciBldmVudCB3aGVlbAogICAgIGF0ICg2OCw2OCkgc2l6ZSAzMDB4MzAwKQogKQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>