<?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>99116</bug_id>
          
          <creation_ts>2012-10-11 16:32:20 -0700</creation_ts>
          <short_desc>[RequestAnimationFrame] Remove vendor prefix</short_desc>
          <delta_ts>2012-10-12 17:06:35 -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>528+ (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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="James Simonsen">simonjam</assigned_to>
          <cc>abarth</cc>
    
    <cc>dino</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>pf</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>740401</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-11 16:32:20 -0700</bug_when>
    <thetext>[RequestAnimationFrame] Remove vendor prefix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740402</commentid>
    <comment_count>1</comment_count>
      <attachid>168312</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-11 16:33:08 -0700</bug_when>
    <thetext>Created attachment 168312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740405</commentid>
    <comment_count>2</comment_count>
      <attachid>168312</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-11 16:36:50 -0700</bug_when>
    <thetext>Comment on attachment 168312
Patch

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

R=me

&gt; Source/WebCore/page/DOMWindow.idl:218
&gt;          // WebKit animation extensions, being standardized in the WebPerf WG

probably worth updating this comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740406</commentid>
    <comment_count>3</comment_count>
      <attachid>168312</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-11 16:38:08 -0700</bug_when>
    <thetext>Comment on attachment 168312
Patch

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

&gt; Source/WebCore/page/DOMWindow.idl:-221
&gt; -        long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
&gt; -        void webkitCancelAnimationFrame(in long id);
&gt; -        void webkitCancelRequestAnimationFrame(in long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.

Do we want to expose both sets of APIs for a while?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740409</commentid>
    <comment_count>4</comment_count>
      <attachid>168312</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-11 16:39:46 -0700</bug_when>
    <thetext>Comment on attachment 168312
Patch

This patch seems a bit aggressive for this API.  Have we measured the usage of the prefixed versions?  Will this patch break sites?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740410</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-11 16:40:35 -0700</bug_when>
    <thetext>IMHO, we should expose both versions for a while and use V8MeasureAs to measure how quickly web sites are transitioning from the prefixed to the unprefixed versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740413</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-11 16:43:38 -0700</bug_when>
    <thetext>See http://lists.webkit.org/pipermail/webkit-dev/2012-September/022239.html for instructions about how to use V8MeasureAs and FeatureObserver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740438</commentid>
    <comment_count>7</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-11 16:54:38 -0700</bug_when>
    <thetext>There were a couple of reasons for making the transition.

1. Everyone else is already (or in the process of) shipping unprefixed.
2. We&apos;ve changed our semantics to match the spec. So the old webkit* functions aren&apos;t compatible.
3. The major toolkits I checked already use the unprefixed version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740444</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-11 16:58:09 -0700</bug_when>
    <thetext>Would you be willing to email webkit-dev with this information?  Different folks in the community have different risk tolerances for these sorts of changes, and it&apos;s better to talk things through so that folks don&apos;t feel railroaded in one direction or another.

Here&apos;s a wiki page we wrote up based on previous discussions of similar changes:

https://trac.webkit.org/wiki/DeprecatingFeatures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741016</commentid>
    <comment_count>9</comment_count>
      <attachid>168445</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-12 10:40:02 -0700</bug_when>
    <thetext>Created attachment 168445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741063</commentid>
    <comment_count>10</comment_count>
      <attachid>168445</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-12 11:36:54 -0700</bug_when>
    <thetext>Comment on attachment 168445
Patch

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

&gt; Source/WebCore/page/DOMWindow.h:270
&gt; +        void webkitCancelAnimationFrame(int id) { cancelAnimationFrame(id); }
&gt; +        void webkitCancelRequestAnimationFrame(int id) { cancelAnimationFrame(id); }

You can just use ImplementedAs in the IDL rather than having these stub functions here.

&gt; Source/WebCore/page/DOMWindow.idl:216
&gt; +    // W3C Web Performance WG Request Animation Frame standard.

I would skip this comment.  It&apos;s not adding any information.

&gt; Source/WebCore/page/DOMWindow.idl:221
&gt; +    long requestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
&gt; +    void cancelAnimationFrame(in long id);
&gt;      long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
&gt;      void webkitCancelAnimationFrame(in long id);
&gt;      void webkitCancelRequestAnimationFrame(in long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.

Please add V8MeasureAs attributes so that we can measure how often the prefixed versions are used.  That way we&apos;ll know have more information about when we can remove them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741087</commentid>
    <comment_count>11</comment_count>
      <attachid>168457</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-12 11:54:00 -0700</bug_when>
    <thetext>Created attachment 168457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741093</commentid>
    <comment_count>12</comment_count>
      <attachid>168457</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-12 12:02:00 -0700</bug_when>
    <thetext>Comment on attachment 168457
Patch

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

&gt; Source/WebCore/page/DOMWindow.idl:220
&gt; +    long requestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
&gt; +    void cancelAnimationFrame(in long id);
&gt; +    [ImplementedAs=requestAnimationFrame, V8MeasureAs=PrefixedRequestAnimationFrame] long webkitRequestAnimationFrame(in [Callback] RequestAnimationFrameCallback callback);
&gt; +    [ImplementedAs=cancelAnimationFrame] void webkitCancelAnimationFrame(in long id);
&gt; +    [ImplementedAs=cancelAnimationFrame] void webkitCancelRequestAnimationFrame(in long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.

Should we measure the unprefixed one as well, so we can compare, like we do for IndexedDB?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741102</commentid>
    <comment_count>13</comment_count>
      <attachid>168460</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-12 12:09:33 -0700</bug_when>
    <thetext>Created attachment 168460
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741121</commentid>
    <comment_count>14</comment_count>
      <attachid>168460</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-12 12:48:38 -0700</bug_when>
    <thetext>Comment on attachment 168460
Patch for landing

Clearing flags on attachment: 168460

Committed r131214: &lt;http://trac.webkit.org/changeset/131214&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741122</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-12 12:48:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741240</commentid>
    <comment_count>16</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-10-12 14:52:30 -0700</bug_when>
    <thetext>Breaks gtk? http://queues.webkit.org/results/14267238</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741242</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-12 14:58:00 -0700</bug_when>
    <thetext>Sounds like the CPP bindings need to understand ImplementedAs.

DerivedSources/webkit/WebKitDOMDOMWindow.cpp: In function &apos;void webkit_dom_dom_window_webkit_cancel_animation_frame(WebKitDOMDOMWindow*, glong)&apos;:
DerivedSources/webkit/WebKitDOMDOMWindow.cpp:1116:11: error: &apos;class WebCore::DOMWindow&apos; has no member named &apos;webkitCancelAnimationFrame&apos;
DerivedSources/webkit/WebKitDOMDOMWindow.cpp: In function &apos;void webkit_dom_dom_window_webkit_cancel_request_animation_frame(WebKitDOMDOMWindow*, glong)&apos;:
DerivedSources/webkit/WebKitDOMDOMWindow.cpp:1125:11: error: &apos;class WebCore::DOMWindow&apos; has no member named &apos;webkitCancelRequestAnimationFrame&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741283</commentid>
    <comment_count>18</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-12 15:53:28 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Sounds like the CPP bindings need to understand ImplementedAs.

Is someone going to do that or should I go back to the old way of forwarding?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741284</commentid>
    <comment_count>19</comment_count>
    <who name="Pablo Flouret">pf</who>
    <bug_when>2012-10-12 15:54:24 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; Sounds like the CPP bindings need to understand ImplementedAs.
&gt; 
&gt; Is someone going to do that or should I go back to the old way of forwarding?

I have a patch almost ready. Filed bug 99214.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741329</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-12 16:59:58 -0700</bug_when>
    <thetext>The changelog and commit message don&apos;t say if the prefixed version was retained. Consensus on webkit-dev was to keep both prefixed and unprefixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741330</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-12 17:01:43 -0700</bug_when>
    <thetext>This patch should have been r- because of the lack of details in the changlog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741331</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-12 17:06:35 -0700</bug_when>
    <thetext>&gt; This patch should have been r- because of the lack of details in the changlog.

Thanks for the reminder.  I was somewhat distracted today with other disasters.  The code in the patch should be correct, however.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168312</attachid>
            <date>2012-10-11 16:33:08 -0700</date>
            <delta_ts>2012-10-12 10:40:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99116-20121011163205.patch</filename>
            <type>text/plain</type>
            <size>23641</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE2ODUyYTkzNWIyNmJm
MTkyYmQ2NjY4NDhhZjMwOWMyOTI4OGY2Yi4uYTljZmExYzg1NjhiNGI5MGRhNDA4ZjBmN2M2YTcw
MzcyNWI5NDFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTExICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVxdWVzdEFu
aW1hdGlvbkZyYW1lXSBSZW1vdmUgdmVuZG9yIHByZWZpeAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBFeGlzdGluZyByQUYgdGVzdHMgd2l0aG91
dCBwcmVmaXguCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmlkbDoKKwogMjAxMi0xMC0xMSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgog
CiAgICAgICAgIFtDTUFLRV0gRG8gbm90IGFkZCBpbmNsdWRlIGRpcnMgdHdpY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IGY0ZDE1OGQ4MTAxZGZmOTE4NmU4NTQ5MDgzYmE3N2RhZDg1YjE4
ZjIuLjEyMjQ2YTQyNWQ5MjBmNDg4MWJmNDE1NjM5MTMzN2Y5MzVhMmYwYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNTU0MSw3ICs1NTQxLDcgQEAgdm9pZCBEb2N1bWVudDo6bG9hZEV2
ZW50RGVsYXlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopCiB9CiAKICNpZiBFTkFCTEUoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpCi1pbnQgRG9jdW1lbnQ6OndlYmtpdFJlcXVlc3RBbmltYXRp
b25GcmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiBjYWxsYmFj
aykKK2ludCBEb2N1bWVudDo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+IGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIpIHsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
RElTUExBWV9NT05JVE9SKQpAQCAtNTU1OSw3ICs1NTU5LDcgQEAgaW50IERvY3VtZW50Ojp3ZWJr
aXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmEKICAgICByZXR1cm4gbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPnJlZ2lzdGVy
Q2FsbGJhY2soY2FsbGJhY2spOwogfQogCi12b2lkIERvY3VtZW50Ojp3ZWJraXRDYW5jZWxBbmlt
YXRpb25GcmFtZShpbnQgaWQpCit2b2lkIERvY3VtZW50OjpjYW5jZWxBbmltYXRpb25GcmFtZShp
bnQgaWQpCiB7CiAgICAgaWYgKCFtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1ZGY1YjZjYWU5N2NjMjE2MWU0ODU4
NTRhZmI4YWNiYmZkYTBjNjJhLi4xMTExN2ViMTgzYzRiNWEwNzgzMzgxMTM1ZGM1M2Y1YzVjOTEx
NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTA5MSw4ICsxMDkxLDggQEAgcHVibGljOgog
ICAgIGNvbnN0IERvY3VtZW50VGltaW5nKiB0aW1pbmcoKSBjb25zdCB7IHJldHVybiAmbV9kb2N1
bWVudFRpbWluZzsgfQogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotICAg
IGludCB3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVDYWxsYmFjaz4pOwotICAgIHZvaWQgd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUo
aW50IGlkKTsKKyAgICBpbnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+KTsKKyAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1l
KGludCBpZCk7CiAgICAgdm9pZCBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKERPTVRpbWVTdGFt
cCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDcxYWRlNDExYzFl
YjQ3MTQ2Zjg3ZDViNmYwOTUzN2ZmNGRmNWU1MWQuLmZhYTRiYTA0ODYxYzhmMzdjZTY5ODBjNTg4
YTJiN2QyZTJjOTk3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1MzMsMTcg
KzE1MzMsMTcgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCkK
IH0KIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKLWludCBET01XaW5kb3c6
OndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25G
cmFtZUNhbGxiYWNrPiBjYWxsYmFjaykKK2ludCBET01XaW5kb3c6OnJlcXVlc3RBbmltYXRpb25G
cmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiBjYWxsYmFjaykK
IHsKICAgICBpZiAoRG9jdW1lbnQqIGQgPSBkb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZC0+
d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTsKKyAgICAgICAgcmV0dXJuIGQt
PnJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZv
aWQgRE9NV2luZG93Ojp3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQpCit2b2lkIERP
TVdpbmRvdzo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKQogewogICAgIGlmIChEb2N1bWVu
dCogZCA9IGRvY3VtZW50KCkpCi0gICAgICAgIGQtPndlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1l
KGlkKTsKKyAgICAgICAgZC0+Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDg3Mzk2MTg1YzI1ZGIzNmFiNWM4NGQyYjgxYzM3
NmVlNzBlOTJjMjYuLjk1ZjZlZjFlZWRlY2U5M2JjZmQxZDBjNjYzYWI2NjZhYzVmZWZhNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMjYzLDkgKzI2Myw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICAvLyBXZWJLaXQgYW5pbWF0aW9uIGV4dGVuc2lvbnMKICNpZiBFTkFC
TEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi0gICAgICAgIGludCB3ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjaz4pOwot
ICAgICAgICB2b2lkIHdlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7Ci0gICAgICAg
IHZvaWQgd2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGludCBpZCkgeyB3ZWJraXRD
YW5jZWxBbmltYXRpb25GcmFtZShpZCk7IH0KKyAgICAgICAgaW50IHJlcXVlc3RBbmltYXRpb25G
cmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPik7CisgICAgICAg
IHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKTsKICNlbmRpZgogCiAgICAgICAgIC8v
IEV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDZkMGNmOTU5NjMwOGIyYWY3
OGRkODVhNmUwNDE2MTE0YTA3MzA0MmUuLmJkNzE4M2RmNGRmNjAxMGY1NjkwYzkyOTczODdlM2Jm
NjlkODA1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTIxNiw5ICsyMTYsOCBA
QCBtb2R1bGUgd2luZG93IHsKIAogI2lmIGRlZmluZWQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FKSAmJiBFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUKICAgICAgICAgLy8gV2Vi
S2l0IGFuaW1hdGlvbiBleHRlbnNpb25zLCBiZWluZyBzdGFuZGFyZGl6ZWQgaW4gdGhlIFdlYlBl
cmYgV0cKLSAgICAgICAgbG9uZyB3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW4gW0NhbGxi
YWNrXSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjayBjYWxsYmFjayk7Ci0gICAgICAgIHZv
aWQgd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaW4gbG9uZyBpZCk7Ci0gICAgICAgIHZvaWQg
d2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGluIGxvbmcgaWQpOyAvLyBUaGlzIGlz
IGEgZGVwcmVjYXRlZCBhbGlhcyBmb3Igd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoKS4gUmVt
b3ZlIHRoaXMgd2hlbiByZW1vdmluZyB2ZW5kb3IgcHJlZml4LgorICAgICAgICBsb25nIHJlcXVl
c3RBbmltYXRpb25GcmFtZShpbiBbQ2FsbGJhY2tdIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrIGNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCBjYW5jZWxBbmltYXRpb25GcmFtZShpbiBsb25n
IGlkKTsKICNlbmRpZgogCiAgICAgICAgIC8vIEJhc2U2NApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZiZTQwZjU1ZTBjN2Nh
NjlmZTJhYjYxMGJlNTQ3YjViMTZlZWVlMjguLmNkOTY1NjRkZDk2YTNiM2Y4ZjFlMDQxZGMxNWI5
ODk5ODRlZDgyOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMi0xMC0xMSAgSmFtZXMgU2lt
b25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1JlcXVlc3RBbmltYXRp
b25GcmFtZV0gUmVtb3ZlIHZlbmRvciBwcmVmaXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1jYWxsYmFjay1pZC5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLWNhbmNlbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVu
dDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1kdXJpbmctbW9kYWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJn
dW1lbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qczoKKyAgICAgICAgKHdpbmRvdyk6CisgICAgICAg
ICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNh
bmNlbDIuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1zdWJmcmFtZS5odG1sOgorICAgICAg
ICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10
aW1lc3RhbXBzLWFkdmFuY2UuanM6CisgICAgICAgICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lKToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtdGltZXN0YW1wcy5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzOgorICAg
ICAgICAod2luZG93KToKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUuanM6CisgICAgICAgICogZmFzdC9jYW52YXMvc2NyaXB0LXRl
c3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qczoKKyAgICAgICAgKEJy
b3dzZXJQYWludCk6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtdGV4dHVyZS1i
aW5kaW5nLXByZXNlcnZlZC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9wb3N0LW1l
c3NhZ2UtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
YW5pbWF0aW9uLWZyYW1lLmh0bWw6CisKIDIwMTItMTAtMTEgIEh1YW5nIERvbmdzdW5nICA8bHV4
dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgW0NTUyBTaGFkZXJzXSBJbXBsZW1lbnQg
YWxsIGNvbXBvc2l0ZSBvcGVyYXRvcnMgZXhjZXB0IGRlc3RpbmF0aW9uIGFuZCBsaWdodGVyLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtY2FsbGJhY2staWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWNhbGxiYWNrLWlkLmh0bWwKaW5kZXggOGRlZWQ0Y2M3MDFiNjI5
YTdmNDVhN2FmZDZmNzFhOTBiNDc1YTQ0My4uNjdlOWIyMDRhZWI2ZDJkMjFiMGQ4ZjI2NmRlNThj
ZWY5YmY3OGQ2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtY2FsbGJhY2staWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYWxsYmFjay1pZC5odG1sCkBAIC01
LDcgKzUsNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIH0KIAogZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgICB2YXIgaWQgPSB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1
bmN0aW9uICgpIHt9KTsKKyAgICB2YXIgaWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGZ1bmN0aW9uICgpIHt9KTsKICAgICB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHRzIik7CiAKICAgICBpZiAoaWQgPiAwKQpAQCAtMTksNCArMTksNCBAQCBmdW5j
dGlvbiBydW5UZXN0KCkgewogCiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1blRl
c3QsIGZhbHNlKTsKIDwvc2NyaXB0PgotPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5j
ZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtY2FuY2VsLWV4cGVjdGVkLnR4dAppbmRleCA3OTgyYTZjNGE1YzlmZTM4NWYy
NDdmMWJiOGI4ZGYxZmVhOTVmYzM3Li42ZmYzN2VkNTc5OWU4YmQwNzk2NTYwNjZhZTRiNmYyY2Q0
NzE2YzcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1jYW5jZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSw0IEBACi1UaGlzIHRlc3RzIGNhbmNlbGxpbmcgYSB3ZWJraXRSZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgY2FsbGJhY2sKK1RoaXMgdGVzdHMgY2FuY2VsbGluZyBhIHJlcXVlc3RBbmltYXRp
b25GcmFtZSBjYWxsYmFjawogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRl
dGFjaC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCmluZGV4IDExZDk5YWY2NGRkNDgyZGMx
NDEyOTU0ODcyNjA4NTFlMjg2Yzc0M2QuLjU2N2M3MmE0Nzc5NzAyZjdmMjdjODRjMWI4NDkxZGE4
N2NhYzMwYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbApA
QCAtNiwxMCArNiwxMCBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIH0KIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaWZyYW1lIilbMF07Ci0gICAgd2luZG93LmZyYW1lc1swXS53ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgd2luZG93LmZyYW1lc1swXS5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgICAgIGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hp
bGQoZWwpOwogICAgIH0pOwotICAgIHdpbmRvdy5mcmFtZXNbMV0ud2Via2l0UmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5mcmFtZXNbMV0ucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgIH0pOwogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYW5p
bWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCmluZGV4
IDZkMmEyOTAyMDZhNWE4Yjk5NTNiYTYzOGRhOWVhZGUyZTM5YWM2MmUuLjMwZTNjZjhkOTBlZGQ4
OTJiNzYzYWEzZGJlZDkwMGRjOWRlZDk5Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRl
dGFjaC1lbGVtZW50Mi5odG1sCkBAIC02LDcgKzYsNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKIH0KIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICB2YXIgZWwgPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07Ci0gICAgd2luZG93LmZyYW1lc1sw
XS53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgd2luZG93LmZy
YW1lc1swXS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgICAgIGVsLnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwpOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWR1cmluZy1tb2RhbC5odG1sCmluZGV4IDZkM2ZjMzQ2M2E5ZDg2YTg1MDZjMWI3ZmYyZDM0NmEx
NjY3MTMwYzguLmZlZjFhMGU3ZGI3ZTAwOWFlZmZlMTU5NjU5MGY3MDUwZGM3NjU3MjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWR1cmluZy1tb2RhbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGRl
c2NyaXB0aW9uKCdUZXN0cyB0aGF0IHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxsYmFja3MgYXJl
IG5vdCBpbnZva2VkIHdoaWxlIG1vCiBvbmxvYWQgPSBmdW5jdGlvbigpCiB7CiAgICAgZGVidWco
J1NldHRpbmcgY2FsbGJhY2snKTsKLSAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGZ1bmN0aW9uKCkgeyBkZWJ1ZygnQ2FsbGJhY2sgZmlyZWQnKTsgfSwgZG9jdW1lbnQuYm9k
eSk7CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsgZGVidWco
J0NhbGxiYWNrIGZpcmVkJyk7IH0sIGRvY3VtZW50LmJvZHkpOwogICAgIGRlYnVnKCdTaG93aW5n
IG1vZGFsIGRpYWxvZycpOwogICAgIHZhciBzcmMgPSAnaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
JyArCiAgICAgICAgICAgICAgICcgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7JyArCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1p
ZnJhbWUyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1pZnJhbWUyLmh0bWwKaW5kZXggNGY2M2JkMDU3NjEzMzAyY2EyNWZmOTE2NjRhYjI1
MTU3YWRmNDBlZC4uZjFkMTMzNmExNjdiMTY3MWY2OGM3ZTZjZTFlNjM3MDY4NGEwODk5YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtaWZyYW1lMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLWlmcmFtZTIuaHRtbApAQCAtMTYsNyArMTYsNyBAQAogICAgICAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIH0KIAotICAgICAgICB3aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgICAgICB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgbWFpbkZy
YW1lQ2FsbGJhY2tJbnZva2VkID0gdHJ1ZTsKICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3Npbmct
YXJndW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dAppbmRleCBk
NzBmY2NlMDIzMmYyYzVlMTE2Zjg0MDFhN2ExNzBhNjg5ZjYyMjhkLi4yMjhmNmIzZThlODFjYWIx
MDE3NWIwZTMxZjdmOGUzN2NhNzk1MDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1taXNzaW5nLWFyZ3VtZW50cy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtbWlzc2luZy1hcmd1bWVudHMtZXhwZWN0ZWQudHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0
IGhvdyBhbmltYXRpb24gbWV0aG9kcyByZWFjdCB0byB0b28gZmV3IGFyZ3VtZW50cy4KIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHdlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFt
ZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFT
UyB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY2FuY2Vs
QW5pbWF0aW9uRnJhbWUoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1lbnRzLmh0bWwKaW5kZXgg
YTA2OTZiM2RlYzMyNmViNGM3ZTgxZWU5ZjVlNTZhZDUwYjQ0NGQ5ZC4uNTUyYzBiOTg2OGM2Njcy
NDBhMTQ0ZDRkYWJkMDQwZTJlYzE4YzIxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1t
aXNzaW5nLWFyZ3VtZW50cy5odG1sCkBAIC02LDggKzYsOCBAQAogPGJvZHk+CiA8c2NyaXB0Pgog
ZGVzY3JpcHRpb24oJ1Rlc3QgaG93IGFuaW1hdGlvbiBtZXRob2RzIHJlYWN0IHRvIHRvbyBmZXcg
YXJndW1lbnRzLicpOwotc2hvdWxkVGhyb3coIndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSgp
Iik7Ci1zaG91bGRUaHJvdygid2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoKSIpOworc2hvdWxk
VGhyb3coInJlcXVlc3RBbmltYXRpb25GcmFtZSgpIik7CitzaG91bGRUaHJvdygiY2FuY2VsQW5p
bWF0aW9uRnJhbWUoKSIpOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
Y2FuY2VsLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwppbmRleCA0OGMxYTNmNGYyMTk4N2U2NWMwMWY2
OWRlYjEyMTA0Zjg1MDcxYjU1Li5lZDczZGUxMzJlZmNmMmI5YjE1ZmI3MWMwMTk1NmZjNWE0MTM5
MmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanMK
QEAgLTEsMTEgKzEsMTEgQEAKLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNhbmNlbGxpbmcgYSB3
ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2siKTsKK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIGNhbmNlbGxpbmcgYSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2siKTsKIAog
dmFyIGNhbGxiYWNrRmlyZWQgPSBmYWxzZTsKIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImUiKTsKLXZhciBpZCA9IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7Cit2YXIgaWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KCkgewogfSwgZSk7CiAKLXdpbmRvdy53ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpZCk7Cit3
aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIp
CiAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1jYW5jZWwyLmpzCmluZGV4IDFlMjMxMGI5MTdjZTMzNThlY2JhOGRiYTg2OGZh
OWI0NWRiMDBlOTUuLmViZWI0NGVkOWYwM2RlMjIwMDQ2MTc3ZjMxMDQ0NWE0M2QxNTdmMmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzCkBAIC01
LDEyICs1LDEyIEBAIHZhciBzZWNvbmRDYWxsYmFja0lkOwogdmFyIGNhbGxiYWNrRmlyZWQgPSBm
YWxzZTsKIHZhciBjYW5jZWxGaXJlZCA9IGZhbHNlOwogCi13aW5kb3cud2Via2l0UmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeword2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShm
dW5jdGlvbigpIHsKICAgICBjYW5jZWxGaXJlZCA9IHRydWU7Ci0gICAgd2luZG93LndlYmtpdENh
bmNlbEFuaW1hdGlvbkZyYW1lKHNlY29uZENhbGxiYWNrSWQpOworICAgIHdpbmRvdy5jYW5jZWxB
bmltYXRpb25GcmFtZShzZWNvbmRDYWxsYmFja0lkKTsKIH0sIGUpOwogCi1zZWNvbmRDYWxsYmFj
a0lkID0gd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKK3Nl
Y29uZENhbGxiYWNrSWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkg
ewogICAgIGNhbGxiYWNrRmlyZWQgPSB0cnVlOwogfSwgZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1kaXNhYmxlZC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwppbmRleCBiNGNiM2M0N2I5MTllNzhh
MmE5NDJjY2UxMjY3MDMwN2IyZGEwZjEwLi5lNjIyMDNjMjg2ZmYyNGJmZjAzN2M1MTEzOGI4YzJk
YjJjNDg1ZDljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRp
c2FibGVkLmpzCkBAIC0xLDcgKzEsNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lIGlzIGRpc2FibGVkIHdoZW4gdGhlIHNldHRpbmcvcHJlZmVyZW5jZSBp
cyBmYWxzZS4gTm90ZTogc2luY2UgdGhlIHNldHRpbmcgaXMgdHJ1ZSBieSBkZWZhdWx0LCB0aGlz
IHVzdWFsbHkgY2FuJ3QgYmUgdGVzdGVkIGRpcmVjdGx5IGluIGEgYnJvd3Nlci4iKTsKIAogdmFy
IGNhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwotd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25G
cmFtZShmdW5jdGlvbigpIHsKK3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24o
KSB7CiAgICAgY2FsbGJhY2tJbnZva2VkID0gdHJ1ZTsKIH0pOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1zdWJmcmFtZS5odG1sCmluZGV4IDM3NTJjODA4NDUz
NWZkNDU0NTE5NzJlM2E5YzQ1MDViMGUyNjlmZDAuLjE3MDdjZDllMTRmMzM2N2JhNTk5ZWI4NzUw
MDc0MzFjZmI0ZTA1NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1zdWJmcmFtZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1zdWJmcmFtZS5odG1sCkBAIC01LDcgKzUsNyBAQAogPC9oZWFkPgogPGJvZHk+CiA8c2Ny
aXB0PgotICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7
CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAg
cGFyZW50LmNhbGxiYWNrSW52b2tlZCA9IHRydWU7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpz
CmluZGV4IDdlNDRlZTgyNzEwNjU0YzAzYzA2NDA2NjlkMmE0ZTk2NzZjZWNmNGQuLjVkYzEwM2Fj
MTgwYzU3NzcwNzg2ZGI4YTBhYWU4NjE4MWVmZDRkODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1l
c3RhbXBzLWFkdmFuY2UuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMtYWR2YW5jZS5qcwpAQCAt
MTAsMTAgKzEwLDEwIEBAIGZ1bmN0aW9uIGJ1c3lXYWl0KG1pbGxpcykgewogdmFyIGZpcnN0VGlt
ZXN0YW1wID0gdW5kZWZpbmVkOwogdmFyIHNlY29uZFRpbWVzdGFtcCA9IHVuZGVmaW5lZDsKIAot
d2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXApIHsK
K3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24odGltZXN0YW1wKSB7CiAgICAg
Zmlyc3RUaW1lc3RhbXAgPSB0aW1lc3RhbXA7CiAgICAgc2hvdWxkQmVEZWZpbmVkKCJmaXJzdFRp
bWVzdGFtcCIpOwotICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rp
b24odGltZXN0YW1wKSB7CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlv
bih0aW1lc3RhbXApIHsKICAgICAgICAgc2Vjb25kVGltZXN0YW1wID0gdGltZXN0YW1wOwogICAg
ICAgICBzaG91bGRCZURlZmluZWQoInNlY29uZFRpbWVzdGFtcCIpOwogICAgICAgICBzaG91bGRC
ZVRydWUoInNlY29uZFRpbWVzdGFtcCA+IGZpcnN0VGltZXN0YW1wIik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtdGltZXN0YW1wcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCmluZGV4IDg3MTAwZmZh
YWU4Mzk1YTA4ZDFjZTZlOWYzOWNhNjQ2NGMyMWViODMuLjI1ODY2Yjk4MGQ0NWMwMzcyYjgwZDUw
MjAxNDRjY2EzN2ZiN2U4N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS10aW1lc3RhbXBzLmpzCkBAIC03LDE0ICs3LDE0IEBAIGZ1bmN0aW9uIGJ1c3lXYWl0
KG1pbGxpcykgewogCiB2YXIgZmlyc3RUaW1lc3RhbXAgPSB1bmRlZmluZWQ7CiAKLXdpbmRvdy53
ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24odGltZXN0YW1wKSB7Cit3aW5kb3cu
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpbWVzdGFtcCkgewogICAgIGZpcnN0VGlt
ZXN0YW1wID0gdGltZXN0YW1wOwogICAgIHNob3VsZEJlRGVmaW5lZCgiZmlyc3RUaW1lc3RhbXAi
KTsKICAgICBidXN5V2FpdCgxMCk7CiB9KTsKIAogdmFyIHNlY29uZFRpbWVzdGFtcCA9IHVuZGVm
aW5lZDsKLXdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24odGltZXN0
YW1wKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpbWVzdGFtcCkg
ewogICAgIHNlY29uZFRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKICAgICBzaG91bGRCZURlZmluZWQo
InNlY29uZFRpbWVzdGFtcCIpOwogICAgIHNob3VsZEJlKCJmaXJzdFRpbWVzdGFtcCIsICJzZWNv
bmRUaW1lc3RhbXAiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCmluZGV4IDk0M2NmNmZjYWIzMjE5YjdhMmYzNGFjYTQx
NzBhNzc0ZTVjMDQzMmYuLjRhZWIyNjZjMDUyNmY0NDNjYjlkOTE0M2Y3MzkxY2VlOWY4YTZhOWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suanMKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhp
bi1jYWxsYmFjay5qcwpAQCAtMiwxNSArMiwxNSBAQCBkZXNjcmlwdGlvbigiVGVzdHMgYWRkaW5n
IG9uZSBjYWxsYmFjayB3aXRoaW4gYW5vdGhlciIpOwogCiB2YXIgZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJlIik7CiB2YXIgc2FtZUZyYW1lOwotd2luZG93LndlYmtpdFJlcXVlc3RBbmlt
YXRpb25GcmFtZShmdW5jdGlvbigpIHsKK3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7CiAgICAgc2FtZUZyYW1lID0gdHJ1ZTsKIH0sIGUpOwotd2luZG93LndlYmtpdFJl
cXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKLSAgICB3aW5kb3cud2Via2l0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeword2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KCkgewogICAgICAgICBzaG91bGRCZUZhbHNlKCJzYW1lRnJhbWUiKTsKICAgICB9LCBlKTsKIH0s
IGUpOwotd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKK3dp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgc2FtZUZyYW1lID0g
ZmFsc2U7CiB9LCBlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzCmluZGV4
IDE2ZDQ3OWZjMGZhYjkxYjJkZmU2OGU1OGQyMTM0Y2FiM2I5OTZjOGMuLjA1MmMwMmU0MWI0ZGZl
ZjZjMDNkOGFiMDgxY2U3YTkyNWExNjBhYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcworKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUuanMKQEAgLTIsNyArMiw3IEBAIGRlc2NyaXB0aW9uKCJUZXN0cyBiYXNpYyB1c2Ugb2Yg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lIik7CiAKIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImUiKTsKIHZhciBjYWxsYmFja0ludm9rZWQgPSBmYWxzZTsKLXdpbmRvdy53ZWJraXRSZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGZ1bmN0aW9uKCkgewogICAgIGNhbGxiYWNrSW52b2tlZCA9IHRydWU7CiB9LCBlKTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1p
bWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3NjcmlwdC10ZXN0cy9jYW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMKaW5k
ZXggNjU3NmExYTA0ZDI5MjJhNmMyZTc5ZTE1MmI5NjdmNzM0NDM1NmQ4NS4uYjdiMDIzNDVkNmY0
NWU4N2Q1MDMyY2Y5NWY1NWZjOTkwOGNmZDgzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWlu
dC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWlt
YWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50LmpzCkBAIC01Myw3ICs1Myw3IEBAIGZ1bmN0aW9u
IEJyb3dzZXJQYWludCgpewogICAgIGRyYXcoKTsKIAlpZiAoZHJhd0l0ZXJhdGlvbnMgPiAwKSB7
CiAJCWRyYXdJdGVyYXRpb25zID0gZHJhd0l0ZXJhdGlvbnMgLSAxOwotCQl3aW5kb3cud2Via2l0
UmVxdWVzdEFuaW1hdGlvbkZyYW1lKEJyb3dzZXJQYWludCk7CisJCXdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoQnJvd3NlclBhaW50KTsKICAgICB9IGVsc2UgewogCSAgICB0ZXN0UmVzdWx0
KCk7CiAJfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wt
dGV4dHVyZS1iaW5kaW5nLXByZXNlcnZlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvd2ViZ2wtdGV4dHVyZS1iaW5kaW5nLXByZXNlcnZlZC5odG1sCmluZGV4IGY3YzkzZmMx
MzlhNTk0MjMyN2Y5OGZmOGFiN2JmZjE3ZDYzMWExZTYuLjJjYzg4YmRjY2Y5NGM5NGRiYjNkM2Rm
MWM1MmQ1M2M2YTVjNTc2ZGEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3dlYmdsLXRleHR1cmUtYmluZGluZy1wcmVzZXJ2ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC10ZXh0dXJlLWJpbmRpbmctcHJlc2VydmVkLmh0bWwK
QEAgLTQwLDggKzQwLDYgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKICAgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlYmdsLWNhbnZhcyIpOwogICBjb250ZXh0ID0gY3Jl
YXRlM0RDb250ZXh0KGNhbnZhcyk7CiAKLSAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gd2luZG93
LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZQotCiAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVw
VGV4dHVyZWRRdWFkKGNvbnRleHQpOwogICB2YXIgYnVmZmVyT2JqZWN0cyA9IHd0dS5zZXR1cFVu
aXRRdWFkKGNvbnRleHQpOwogICB2YXIgdGV4dHVyZSA9IHd0dS5jcmVhdGVDb2xvcmVkVGV4dHVy
ZShjb250ZXh0LCAxLCAxLCBbMCwgMCwgMjU1LCAyNTVdKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbAppbmRleCA5MDgxZTc3N2Qw
ZjdmODkwMTFmYTU3MWM4ZmU1ZWVjZDFjMTE4ZjlmLi5kMzE3MjgxZjQyNjc1ZDM5OTU5NzFiMGRj
MzQzY2M2ZTcyYWY3NTk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
cG9zdC1tZXNzYWdlLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3Bvc3QtbWVzc2FnZS1jcmFzaC5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIHdpbmRvdy5vbmVycm9y
ID0gZnVuY3Rpb24oKSB7CiAgICAgcmV0dXJuIHRydWU7CiB9OwogCi13ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUocG9zdE1lc3NhZ2UpOworcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHBvc3RNZXNz
YWdlKTsKIHNldFRpbWVvdXQocG9zdE1lc3NhZ2UpOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5p
bWF0aW9uLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxp
bmUtYW5pbWF0aW9uLWZyYW1lLmh0bWwKaW5kZXggNjU3YzM2YTRjZjdiZWQ3NTQ0OWUwOGFkZDJi
YWRmYmQwYzEzMjc1My4uMDlhZjY3N2UwMDIyMjI4YmFjYjAwMDNiMjk0OTA5NzQxMjQzYmZhYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1h
dGlvbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1l
bGluZS1hbmltYXRpb24tZnJhbWUuaHRtbApAQCAtNywxMCArNywxMCBAQAogZnVuY3Rpb24gcGVy
Zm9ybUFjdGlvbnMoKQogewogICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImFuaW1hdGlvbiIpOwotICAgIHZhciByZXF1ZXN0SWQgPSB3aW5kb3cud2Via2l0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGFuaW1hdGlvbkZyYW1lQ2FsbGJhY2ssIGVsZW1lbnQpOworICAgIHZh
ciByZXF1ZXN0SWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2ssIGVsZW1lbnQpOwogICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkZyYW1lQ2FsbGJhY2so
KQogICAgIHsKLSAgICAgICAgd2luZG93LndlYmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFt
ZShyZXF1ZXN0SWQpOworICAgICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUocmVxdWVz
dElkKTsKICAgICB9CiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168445</attachid>
            <date>2012-10-12 10:40:02 -0700</date>
            <delta_ts>2012-10-12 11:53:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99116-20121012103858.patch</filename>
            <type>text/plain</type>
            <size>24064</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3MTMwNWQ4ODNmODgx
OGZmNmYzNTFjOTc0NjBkNTQ1YjkwMmRlMi4uMDI0ZjhiNmU3OGQwZDIzZDVkYTQyYzZjNmMyZjg4
YmFlMDZmOTcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTExICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVxdWVzdEFu
aW1hdGlvbkZyYW1lXSBSZW1vdmUgdmVuZG9yIHByZWZpeAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBFeGlzdGluZyByQUYgdGVzdHMgd2l0aG91
dCBwcmVmaXguCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmlkbDoKKwogMjAxMi0xMC0xMiAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmVuZGVyQlIgc2hvdWxkIHNoYXJlIGl0cyBjb25zdGFudCBuZXds
aW5lIHN0cmluZyBiZXR3ZWVuIGluc3RhbmNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IGI1NjAwNWNiMzcxMTk5NmM0MDVmM2M3MzJiZDFkM2VlMDExMTg0MDAuLjU3MTQyMzU4MTcwMDZi
NjU2MjQ1YWQzYjFlMDQxMmM4NTVlNGUwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NTU0MSw3ICs1NTQxLDcgQEAgdm9pZCBEb2N1bWVudDo6bG9hZEV2ZW50RGVsYXlUaW1lckZpcmVk
KFRpbWVyPERvY3VtZW50PiopCiB9CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpCi1pbnQgRG9jdW1lbnQ6OndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShQYXNzUmVmUHRy
PFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiBjYWxsYmFjaykKK2ludCBEb2N1bWVudDo6
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2s+IGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIpIHsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQpA
QCAtNTU1OSw3ICs1NTU5LDcgQEAgaW50IERvY3VtZW50Ojp3ZWJraXRSZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmEKICAgICByZXR1cm4g
bV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2sp
OwogfQogCi12b2lkIERvY3VtZW50Ojp3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQp
Cit2b2lkIERvY3VtZW50OjpjYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQpCiB7CiAgICAgaWYg
KCFtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCAyOTBmMWMwODgzNTE5OGY4MDgxMGZiNzZjNzhmZDc1NDg5YTdjMDRm
Li4zNWRmN2EyZTU4YzFhZDZlNjhmYTM2NmY1MWJlOGY5ZDk5OWJjMjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTA5MSw4ICsxMDkxLDggQEAgcHVibGljOgogICAgIGNvbnN0IERvY3VtZW50
VGltaW5nKiB0aW1pbmcoKSBjb25zdCB7IHJldHVybiAmbV9kb2N1bWVudFRpbWluZzsgfQogCiAj
aWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgIGludCB3ZWJraXRSZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjaz4p
OwotICAgIHZvaWQgd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKTsKKyAgICBpbnQg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2s+KTsKKyAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7CiAgICAgdm9p
ZCBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNBbmltYXRpb25TdGFy
dFRpbWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA3MWFkZTQx
MWMxZWI0NzE0NmY4N2Q1YjZmMDk1MzdmZjRkZjVlNTFkLi41ZTFkYTU5NjE2ZGM1MjM5MmJhMmFh
MmFmZDViMWIyMTkyNzMyMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTMz
LDE3ICsxNTMzLDIyIEBAIHZvaWQgRE9NV2luZG93OjpjbGVhckludGVydmFsKGludCB0aW1lb3V0
SWQpCiB9CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi1pbnQgRE9NV2lu
ZG93Ojp3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVDYWxsYmFjaz4gY2FsbGJhY2spCitpbnQgRE9NV2luZG93OjpyZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjaz4gY2FsbGJh
Y2spCiB7CiAgICAgaWYgKERvY3VtZW50KiBkID0gZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJu
IGQtPndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7CisgICAgICAgIHJldHVy
biBkLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spOwogICAgIHJldHVybiAwOwogfQog
Ci12b2lkIERPTVdpbmRvdzo6d2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKQordm9p
ZCBET01XaW5kb3c6OmNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCkKIHsKICAgICBpZiAoRG9j
dW1lbnQqIGQgPSBkb2N1bWVudCgpKQotICAgICAgICBkLT53ZWJraXRDYW5jZWxBbmltYXRpb25G
cmFtZShpZCk7CisgICAgICAgIGQtPmNhbmNlbEFuaW1hdGlvbkZyYW1lKGlkKTsKK30KKworaW50
IERPTVdpbmRvdzo6d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAgIHJldHVybiByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5oCmluZGV4IDg3Mzk2MTg1YzI1ZGIzNmFiNWM4NGQyYjgxYzM3NmVlNzBlOTJjMjYuLjJkMzQ5
MDczNDFiZGMyZjU0MzM5ZGRiOWEzYmNhNGFmMDQxNTVmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaApAQCAtMjYzLDkgKzI2MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
Ly8gV2ViS2l0IGFuaW1hdGlvbiBleHRlbnNpb25zCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FKQorICAgICAgICBpbnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+KTsKKyAgICAgICAgdm9pZCBjYW5jZWxBbmlt
YXRpb25GcmFtZShpbnQgaWQpOwogICAgICAgICBpbnQgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZy
YW1lKFBhc3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+KTsKLSAgICAgICAg
dm9pZCB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQpOwotICAgICAgICB2b2lkIHdl
YmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQgaWQpIHsgd2Via2l0Q2FuY2VsQW5p
bWF0aW9uRnJhbWUoaWQpOyB9CisgICAgICAgIHZvaWQgd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJh
bWUoaW50IGlkKSB7IGNhbmNlbEFuaW1hdGlvbkZyYW1lKGlkKTsgfQorICAgICAgICB2b2lkIHdl
YmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQgaWQpIHsgY2FuY2VsQW5pbWF0aW9u
RnJhbWUoaWQpOyB9CiAjZW5kaWYKIAogICAgICAgICAvLyBFdmVudHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbAppbmRleCBjYjEyZWJkYjRiYmQ1ZWZmYjJmOTk0ZDljY2ZjNDllMjk4ZWNmNDEz
Li5mNWFjZjdjYmM5YjY0OTYwOWE2YTk3N2VmM2FmMTU4ZDViZGM5YTU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCkBAIC0yMTMsNyArMjEzLDkgQEAKICAgICB2b2lkIGNsZWFySW50ZXJ2
YWwoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBoYW5kbGUpOwogCiAjaWYg
ZGVmaW5lZChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICYmIEVOQUJMRV9SRVFVRVNU
X0FOSU1BVElPTl9GUkFNRQotICAgIC8vIFdlYktpdCBhbmltYXRpb24gZXh0ZW5zaW9ucywgYmVp
bmcgc3RhbmRhcmRpemVkIGluIHRoZSBXZWJQZXJmIFdHCisgICAgLy8gVzNDIFdlYiBQZXJmb3Jt
YW5jZSBXRyBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSBzdGFuZGFyZC4KKyAgICBsb25nIHJlcXVl
c3RBbmltYXRpb25GcmFtZShpbiBbQ2FsbGJhY2tdIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrIGNhbGxiYWNrKTsKKyAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGluIGxvbmcgaWQp
OwogICAgIGxvbmcgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGluIFtDYWxsYmFja10gUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2spOwogICAgIHZvaWQgd2Via2l0Q2Fu
Y2VsQW5pbWF0aW9uRnJhbWUoaW4gbG9uZyBpZCk7CiAgICAgdm9pZCB3ZWJraXRDYW5jZWxSZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoaW4gbG9uZyBpZCk7IC8vIFRoaXMgaXMgYSBkZXByZWNhdGVkIGFs
aWFzIGZvciB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZSgpLiBSZW1vdmUgdGhpcyB3aGVuIHJl
bW92aW5nIHZlbmRvciBwcmVmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzY3NGI4ZmZmMTUwYjY4NzY2MTQwM2Q5ZGFl
YzM5MGVkN2MyY2Q2Ni4uODllNzE4OGU5MTlhODAwMDc5NTYxOGE5YzJlNmNjMzIwYjE5M2M1NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTExICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9u
amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVxdWVzdEFuaW1hdGlvbkZyYW1lXSBSZW1v
dmUgdmVuZG9yIHByZWZpeAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTkxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbGxiYWNr
LWlkLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtY2FuY2VsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3QvYW5p
bWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sOgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2Rh
bC5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWlmcmFtZTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1taXNzaW5nLWFyZ3VtZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtY2FuY2VsLmpzOgorICAgICAgICAod2luZG93KToKKyAgICAgICAgKiBmYXN0L2FuaW1h
dGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qczoKKyAg
ICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtZGlzYWJsZWQuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLXN1YmZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9hbmlt
YXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMtYWR2
YW5jZS5qczoKKyAgICAgICAgKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAg
ICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10
aW1lc3RhbXBzLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suanM6CisgICAgICAgICh3aW5kb3cp
OgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS5qczoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWlt
YWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50LmpzOgorICAgICAgICAoQnJvd3NlclBhaW50KToK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC10ZXh0dXJlLWJpbmRpbmctcHJlc2Vy
dmVkLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaC5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRpb24tZnJh
bWUuaHRtbDoKKwogMjAxMi0xMC0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIE1vcmUgYmFzZWxpbmVzIHVwZGF0ZXMgYWZ0ZXIgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTMxMTM0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FsbGJhY2staWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbGxiYWNrLWlkLmh0
bWwKaW5kZXggOGRlZWQ0Y2M3MDFiNjI5YTdmNDVhN2FmZDZmNzFhOTBiNDc1YTQ0My4uNjdlOWIy
MDRhZWI2ZDJkMjFiMGQ4ZjI2NmRlNThjZWY5YmY3OGQ2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FsbGJhY2staWQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1jYWxsYmFjay1pZC5odG1sCkBAIC01LDcgKzUsNyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICB2YXIgaWQgPSB3aW5kb3cud2Via2l0
UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uICgpIHt9KTsKKyAgICB2YXIgaWQgPSB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uICgpIHt9KTsKICAgICB2YXIgcmVzdWx0
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHRzIik7CiAKICAgICBpZiAoaWQgPiAw
KQpAQCAtMTksNCArMTksNCBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIHJ1blRlc3QsIGZhbHNlKTsKIDwvc2NyaXB0PgotPGRpdiBpZD0i
cmVzdWx0cyI+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPGRpdiBpZD0icmVz
dWx0cyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLWV4cGVjdGVkLnR4dApp
bmRleCA3OTgyYTZjNGE1YzlmZTM4NWYyNDdmMWJiOGI4ZGYxZmVhOTVmYzM3Li42ZmYzN2VkNTc5
OWU4YmQwNzk2NTYwNjZhZTRiNmYyY2Q0NzE2YzcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWNhbmNlbC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1UaGlzIHRlc3RzIGNhbmNlbGxp
bmcgYSB3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2sKK1RoaXMgdGVzdHMgY2Fu
Y2VsbGluZyBhIHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxsYmFjawogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1s
CmluZGV4IDExZDk5YWY2NGRkNDgyZGMxNDEyOTU0ODcyNjA4NTFlMjg2Yzc0M2QuLjU2N2M3MmE0
Nzc5NzAyZjdmMjdjODRjMWI4NDkxZGE4N2NhYzMwYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtZGV0YWNoLWVsZW1lbnQuaHRtbApAQCAtNiwxMCArNiwxMCBAQCBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKIH0KIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICB2YXIgZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07Ci0gICAgd2luZG93LmZy
YW1lc1swXS53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgd2lu
ZG93LmZyYW1lc1swXS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgICAg
IGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwpOwogICAgIH0pOwotICAgIHdpbmRvdy5mcmFt
ZXNbMV0ud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgIHdpbmRv
dy5mcmFtZXNbMV0ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgIH0pOwog
CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRl
dGFjaC1lbGVtZW50Mi5odG1sCmluZGV4IDZkMmEyOTAyMDZhNWE4Yjk5NTNiYTYzOGRhOWVhZGUy
ZTM5YWM2MmUuLjMwZTNjZjhkOTBlZGQ4OTJiNzYzYWEzZGJlZDkwMGRjOWRlZDk5Y2QgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWRldGFjaC1lbGVtZW50Mi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sCkBAIC02LDcgKzYsNyBA
QCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIH0KIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigp
IHsKICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilb
MF07Ci0gICAgd2luZG93LmZyYW1lc1swXS53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7CisgICAgd2luZG93LmZyYW1lc1swXS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7CiAgICAgICAgIGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwpOwogICAgIH0p
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCmluZGV4IDZkM2ZjMzQ2
M2E5ZDg2YTg1MDZjMWI3ZmYyZDM0NmExNjY3MTMwYzguLmZlZjFhMGU3ZGI3ZTAwOWFlZmZlMTU5
NjU5MGY3MDUwZGM3NjU3MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5o
dG1sCkBAIC0xMiw3ICsxMiw3IEBAIGRlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IHJlcXVlc3RBbmlt
YXRpb25GcmFtZSBjYWxsYmFja3MgYXJlIG5vdCBpbnZva2VkIHdoaWxlIG1vCiBvbmxvYWQgPSBm
dW5jdGlvbigpCiB7CiAgICAgZGVidWcoJ1NldHRpbmcgY2FsbGJhY2snKTsKLSAgICB3aW5kb3cu
d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeyBkZWJ1ZygnQ2FsbGJhY2sg
ZmlyZWQnKTsgfSwgZG9jdW1lbnQuYm9keSk7CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZShmdW5jdGlvbigpIHsgZGVidWcoJ0NhbGxiYWNrIGZpcmVkJyk7IH0sIGRvY3VtZW50LmJv
ZHkpOwogICAgIGRlYnVnKCdTaG93aW5nIG1vZGFsIGRpYWxvZycpOwogICAgIHZhciBzcmMgPSAn
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7JyArCiAgICAgICAgICAgICAgICcgICAgdGVzdFJ1bm5l
ci5kaXNwbGF5KCk7JyArCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwKaW5kZXggNGY2M2Jk
MDU3NjEzMzAyY2EyNWZmOTE2NjRhYjI1MTU3YWRmNDBlZC4uZjFkMTMzNmExNjdiMTY3MWY2OGM3
ZTZjZTFlNjM3MDY4NGEwODk5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRp
b24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZTIuaHRtbApAQCAt
MTYsNyArMTYsNyBAQAogICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgICAgIH0KIAotICAgICAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1
bmN0aW9uKCkgeworICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgbWFpbkZyYW1lQ2FsbGJhY2tJbnZva2VkID0gdHJ1ZTsKICAgICAg
ICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1l
bnRzLWV4cGVjdGVkLnR4dAppbmRleCBkNzBmY2NlMDIzMmYyYzVlMTE2Zjg0MDFhN2ExNzBhNjg5
ZjYyMjhkLi4yMjhmNmIzZThlODFjYWIxMDE3NWIwZTMxZjdmOGUzN2NhNzk1MDY0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1t
aXNzaW5nLWFyZ3VtZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMtZXhwZWN0ZWQu
dHh0CkBAIC0zLDggKzMsOCBAQCBUZXN0IGhvdyBhbmltYXRpb24gbWV0aG9kcyByZWFjdCB0byB0
b28gZmV3IGFyZ3VtZW50cy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHdl
YmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZSgpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1MgY2FuY2VsQW5pbWF0aW9uRnJhbWUoKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3Np
bmctYXJndW1lbnRzLmh0bWwKaW5kZXggYTA2OTZiM2RlYzMyNmViNGM3ZTgxZWU5ZjVlNTZhZDUw
YjQ0NGQ5ZC4uNTUyYzBiOTg2OGM2NjcyNDBhMTQ0ZDRkYWJkMDQwZTJlYzE4YzIxMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
bWlzc2luZy1hcmd1bWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1taXNzaW5nLWFyZ3VtZW50cy5odG1sCkBAIC02LDggKzYs
OCBAQAogPGJvZHk+CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oJ1Rlc3QgaG93IGFuaW1hdGlvbiBt
ZXRob2RzIHJlYWN0IHRvIHRvbyBmZXcgYXJndW1lbnRzLicpOwotc2hvdWxkVGhyb3coIndlYmtp
dFJlcXVlc3RBbmltYXRpb25GcmFtZSgpIik7Ci1zaG91bGRUaHJvdygid2Via2l0Q2FuY2VsQW5p
bWF0aW9uRnJhbWUoKSIpOworc2hvdWxkVGhyb3coInJlcXVlc3RBbmltYXRpb25GcmFtZSgpIik7
CitzaG91bGRUaHJvdygiY2FuY2VsQW5pbWF0aW9uRnJhbWUoKSIpOwogPC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwppbmRl
eCA0OGMxYTNmNGYyMTk4N2U2NWMwMWY2OWRlYjEyMTA0Zjg1MDcxYjU1Li5lZDczZGUxMzJlZmNm
MmI5YjE1ZmI3MWMwMTk1NmZjNWE0MTM5MmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpz
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1jYW5jZWwuanMKQEAgLTEsMTEgKzEsMTEgQEAKLWRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIGNhbmNlbGxpbmcgYSB3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJh
Y2siKTsKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGNhbmNlbGxpbmcgYSByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUgY2FsbGJhY2siKTsKIAogdmFyIGNhbGxiYWNrRmlyZWQgPSBmYWxzZTsKIHZhciBl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImUiKTsKLXZhciBpZCA9IHdpbmRvdy53ZWJraXRS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cit2YXIgaWQgPSB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogfSwgZSk7CiAKLXdpbmRvdy53ZWJraXRDYW5j
ZWxBbmltYXRpb25GcmFtZShpZCk7Cit3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzCmluZGV4IDFlMjMx
MGI5MTdjZTMzNThlY2JhOGRiYTg2OGZhOWI0NWRiMDBlOTUuLmViZWI0NGVkOWYwM2RlMjIwMDQ2
MTc3ZjMxMDQ0NWE0M2QxNTdmMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1jYW5jZWwyLmpzCkBAIC01LDEyICs1LDEyIEBAIHZhciBzZWNvbmRDYWxsYmFja0lk
OwogdmFyIGNhbGxiYWNrRmlyZWQgPSBmYWxzZTsKIHZhciBjYW5jZWxGaXJlZCA9IGZhbHNlOwog
Ci13aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeword2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICBjYW5jZWxGaXJlZCA9IHRy
dWU7Ci0gICAgd2luZG93LndlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKHNlY29uZENhbGxiYWNr
SWQpOworICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShzZWNvbmRDYWxsYmFja0lkKTsK
IH0sIGUpOwogCi1zZWNvbmRDYWxsYmFja0lkID0gd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jdGlvbigpIHsKK3NlY29uZENhbGxiYWNrSWQgPSB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgIGNhbGxiYWNrRmlyZWQgPSB0cnVlOwogfSwg
ZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5q
cwppbmRleCBiNGNiM2M0N2I5MTllNzhhMmE5NDJjY2UxMjY3MDMwN2IyZGEwZjEwLi5lNjIyMDNj
Mjg2ZmYyNGJmZjAzN2M1MTEzOGI4YzJkYjJjNDg1ZDljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlz
YWJsZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzCkBAIC0xLDcgKzEsNyBAQAogZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGlzIGRpc2FibGVkIHdoZW4g
dGhlIHNldHRpbmcvcHJlZmVyZW5jZSBpcyBmYWxzZS4gTm90ZTogc2luY2UgdGhlIHNldHRpbmcg
aXMgdHJ1ZSBieSBkZWZhdWx0LCB0aGlzIHVzdWFsbHkgY2FuJ3QgYmUgdGVzdGVkIGRpcmVjdGx5
IGluIGEgYnJvd3Nlci4iKTsKIAogdmFyIGNhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwotd2luZG93
LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKK3dpbmRvdy5yZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgY2FsbGJhY2tJbnZva2VkID0gdHJ1ZTsK
IH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVz
dHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1zdWJmcmFt
ZS5odG1sCmluZGV4IDM3NTJjODA4NDUzNWZkNDU0NTE5NzJlM2E5YzQ1MDViMGUyNjlmZDAuLjE3
MDdjZDllMTRmMzM2N2JhNTk5ZWI4NzUwMDc0MzFjZmI0ZTA1NmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1zdWJmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1zdWJmcmFtZS5odG1sCkBAIC01LDcgKzUsNyBA
QAogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0PgotICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jdGlvbigpIHsKICAgICAgICAgcGFyZW50LmNhbGxiYWNrSW52b2tlZCA9IHRydWU7CiAg
ICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzCmluZGV4IDdlNDRlZTgyNzEwNjU0YzAzYzA2NDA2Njlk
MmE0ZTk2NzZjZWNmNGQuLjVkYzEwM2FjMTgwYzU3NzcwNzg2ZGI4YTBhYWU4NjE4MWVmZDRkODIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRp
bWVzdGFtcHMtYWR2YW5jZS5qcwpAQCAtMTAsMTAgKzEwLDEwIEBAIGZ1bmN0aW9uIGJ1c3lXYWl0
KG1pbGxpcykgewogdmFyIGZpcnN0VGltZXN0YW1wID0gdW5kZWZpbmVkOwogdmFyIHNlY29uZFRp
bWVzdGFtcCA9IHVuZGVmaW5lZDsKIAotd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFt
ZShmdW5jdGlvbih0aW1lc3RhbXApIHsKK3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24odGltZXN0YW1wKSB7CiAgICAgZmlyc3RUaW1lc3RhbXAgPSB0aW1lc3RhbXA7CiAgICAg
c2hvdWxkQmVEZWZpbmVkKCJmaXJzdFRpbWVzdGFtcCIpOwotICAgIHdpbmRvdy53ZWJraXRSZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24odGltZXN0YW1wKSB7CisgICAgd2luZG93LnJlcXVl
c3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXApIHsKICAgICAgICAgc2Vjb25kVGlt
ZXN0YW1wID0gdGltZXN0YW1wOwogICAgICAgICBzaG91bGRCZURlZmluZWQoInNlY29uZFRpbWVz
dGFtcCIpOwogICAgICAgICBzaG91bGRCZVRydWUoInNlY29uZFRpbWVzdGFtcCA+IGZpcnN0VGlt
ZXN0YW1wIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1l
c3RhbXBzLmpzCmluZGV4IDg3MTAwZmZhYWU4Mzk1YTA4ZDFjZTZlOWYzOWNhNjQ2NGMyMWViODMu
LjI1ODY2Yjk4MGQ0NWMwMzcyYjgwZDUwMjAxNDRjY2EzN2ZiN2U4N2IgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS10aW1lc3RhbXBzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCkBAIC03LDE0ICs3
LDE0IEBAIGZ1bmN0aW9uIGJ1c3lXYWl0KG1pbGxpcykgewogCiB2YXIgZmlyc3RUaW1lc3RhbXAg
PSB1bmRlZmluZWQ7CiAKLXdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rp
b24odGltZXN0YW1wKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRp
bWVzdGFtcCkgewogICAgIGZpcnN0VGltZXN0YW1wID0gdGltZXN0YW1wOwogICAgIHNob3VsZEJl
RGVmaW5lZCgiZmlyc3RUaW1lc3RhbXAiKTsKICAgICBidXN5V2FpdCgxMCk7CiB9KTsKIAogdmFy
IHNlY29uZFRpbWVzdGFtcCA9IHVuZGVmaW5lZDsKLXdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoZnVuY3Rpb24odGltZXN0YW1wKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGZ1bmN0aW9uKHRpbWVzdGFtcCkgewogICAgIHNlY29uZFRpbWVzdGFtcCA9IHRpbWVzdGFt
cDsKICAgICBzaG91bGRCZURlZmluZWQoInNlY29uZFRpbWVzdGFtcCIpOwogICAgIHNob3VsZEJl
KCJmaXJzdFRpbWVzdGFtcCIsICJzZWNvbmRUaW1lc3RhbXAiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS13aXRoaW4tY2FsbGJhY2suanMgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCmluZGV4IDk0
M2NmNmZjYWIzMjE5YjdhMmYzNGFjYTQxNzBhNzc0ZTVjMDQzMmYuLjRhZWIyNjZjMDUyNmY0NDNj
YjlkOTE0M2Y3MzkxY2VlOWY4YTZhOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5p
bWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJh
Y2suanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwpAQCAtMiwxNSArMiwxNSBAQCBk
ZXNjcmlwdGlvbigiVGVzdHMgYWRkaW5nIG9uZSBjYWxsYmFjayB3aXRoaW4gYW5vdGhlciIpOwog
CiB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlIik7CiB2YXIgc2FtZUZyYW1lOwot
d2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKK3dpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgc2FtZUZyYW1lID0gdHJ1ZTsK
IH0sIGUpOwotd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsK
LSAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeword2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgICAgICBzaG91bGRCZUZhbHNlKCJzYW1l
RnJhbWUiKTsKICAgICB9LCBlKTsKIH0sIGUpOwotd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jdGlvbigpIHsKK3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rp
b24oKSB7CiAgICAgc2FtZUZyYW1lID0gZmFsc2U7CiB9LCBlKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLmpzCmluZGV4IDE2ZDQ3OWZjMGZhYjkxYjJkZmU2OGU1OGQyMTM0Y2Fi
M2I5OTZjOGMuLjA1MmMwMmU0MWI0ZGZlZjZjMDNkOGFiMDgxY2U3YTkyNWExNjBhYzMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuanMKQEAgLTIsNyArMiw3IEBAIGRlc2NyaXB0
aW9uKCJUZXN0cyBiYXNpYyB1c2Ugb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIik7CiAKIHZhciBl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImUiKTsKIHZhciBjYWxsYmFja0ludm9rZWQgPSBm
YWxzZTsKLXdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cit3
aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgIGNhbGxiYWNrSW52
b2tlZCA9IHRydWU7CiB9LCBlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtaW1hZ2VTbW9vdGhp
bmdFbmFibGVkLXJlcGFpbnQuanMKaW5kZXggNjU3NmExYTA0ZDI5MjJhNmMyZTc5ZTE1MmI5Njdm
NzM0NDM1NmQ4NS4uYjdiMDIzNDVkNmY0NWU4N2Q1MDMyY2Y5NWY1NWZjOTkwOGNmZDgzOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFn
ZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50LmpzCkBA
IC01Myw3ICs1Myw3IEBAIGZ1bmN0aW9uIEJyb3dzZXJQYWludCgpewogICAgIGRyYXcoKTsKIAlp
ZiAoZHJhd0l0ZXJhdGlvbnMgPiAwKSB7CiAJCWRyYXdJdGVyYXRpb25zID0gZHJhd0l0ZXJhdGlv
bnMgLSAxOwotCQl3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKEJyb3dzZXJQYWlu
dCk7CisJCXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoQnJvd3NlclBhaW50KTsKICAgICB9
IGVsc2UgewogCSAgICB0ZXN0UmVzdWx0KCk7CiAJfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtdGV4dHVyZS1iaW5kaW5nLXByZXNlcnZlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtdGV4dHVyZS1iaW5kaW5nLXByZXNl
cnZlZC5odG1sCmluZGV4IGY3YzkzZmMxMzlhNTk0MjMyN2Y5OGZmOGFiN2JmZjE3ZDYzMWExZTYu
LjJjYzg4YmRjY2Y5NGM5NGRiYjNkM2RmMWM1MmQ1M2M2YTVjNTc2ZGEgMTAwNzU1Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLXRleHR1cmUtYmluZGluZy1wcmVzZXJ2
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC10ZXh0dXJl
LWJpbmRpbmctcHJlc2VydmVkLmh0bWwKQEAgLTQwLDggKzQwLDYgQEAgd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkKICAgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlYmdsLWNh
bnZhcyIpOwogICBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7CiAKLSAgcmVxdWVz
dEFuaW1hdGlvbkZyYW1lID0gd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZQotCiAg
IHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGNvbnRleHQpOwogICB2YXIgYnVm
ZmVyT2JqZWN0cyA9IHd0dS5zZXR1cFVuaXRRdWFkKGNvbnRleHQpOwogICB2YXIgdGV4dHVyZSA9
IHd0dS5jcmVhdGVDb2xvcmVkVGV4dHVyZShjb250ZXh0LCAxLCAxLCBbMCwgMCwgMjU1LCAyNTVd
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2Ut
Y3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jh
c2guaHRtbAppbmRleCA5MDgxZTc3N2QwZjdmODkwMTFmYTU3MWM4ZmU1ZWVjZDFjMTE4ZjlmLi5k
MzE3MjgxZjQyNjc1ZDM5OTU5NzFiMGRjMzQzY2M2ZTcyYWY3NTk3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaC5odG1sCkBAIC0yMyw3
ICsyMyw3IEBAIHdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24oKSB7CiAgICAgcmV0dXJuIHRydWU7
CiB9OwogCi13ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUocG9zdE1lc3NhZ2UpOworcmVxdWVz
dEFuaW1hdGlvbkZyYW1lKHBvc3RNZXNzYWdlKTsKIHNldFRpbWVvdXQocG9zdE1lc3NhZ2UpOwog
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLmh0bWwKaW5kZXggNjU3
YzM2YTRjZjdiZWQ3NTQ0OWUwOGFkZDJiYWRmYmQwYzEzMjc1My4uMDlhZjY3N2UwMDIyMjI4YmFj
YjAwMDNiMjk0OTA5NzQxMjQzYmZhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRpb24tZnJhbWUuaHRtbApAQCAtNywx
MCArNywxMCBAQAogZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMoKQogewogICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuaW1hdGlvbiIpOwotICAgIHZhciByZXF1ZXN0
SWQgPSB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2ssIGVsZW1lbnQpOworICAgIHZhciByZXF1ZXN0SWQgPSB3aW5kb3cucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGFuaW1hdGlvbkZyYW1lQ2FsbGJhY2ssIGVsZW1lbnQpOwogICAgIGZ1bmN0aW9u
IGFuaW1hdGlvbkZyYW1lQ2FsbGJhY2soKQogICAgIHsKLSAgICAgICAgd2luZG93LndlYmtpdENh
bmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZShyZXF1ZXN0SWQpOworICAgICAgICB3aW5kb3cuY2Fu
Y2VsQW5pbWF0aW9uRnJhbWUocmVxdWVzdElkKTsKICAgICB9CiAKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168457</attachid>
            <date>2012-10-12 11:54:00 -0700</date>
            <delta_ts>2012-10-12 12:09:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99116-20121012115256.patch</filename>
            <type>text/plain</type>
            <size>24720</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3MTMwNWQ4ODNmODgx
OGZmNmYzNTFjOTc0NjBkNTQ1YjkwMmRlMi4uMDI0ZjhiNmU3OGQwZDIzZDVkYTQyYzZjNmMyZjg4
YmFlMDZmOTcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTExICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVxdWVzdEFu
aW1hdGlvbkZyYW1lXSBSZW1vdmUgdmVuZG9yIHByZWZpeAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBFeGlzdGluZyByQUYgdGVzdHMgd2l0aG91
dCBwcmVmaXguCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnJlcXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmlkbDoKKwogMjAxMi0xMC0xMiAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmVuZGVyQlIgc2hvdWxkIHNoYXJlIGl0cyBjb25zdGFudCBuZXds
aW5lIHN0cmluZyBiZXR3ZWVuIGluc3RhbmNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IGI1NjAwNWNiMzcxMTk5NmM0MDVmM2M3MzJiZDFkM2VlMDExMTg0MDAuLjU3MTQyMzU4MTcwMDZi
NjU2MjQ1YWQzYjFlMDQxMmM4NTVlNGUwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NTU0MSw3ICs1NTQxLDcgQEAgdm9pZCBEb2N1bWVudDo6bG9hZEV2ZW50RGVsYXlUaW1lckZpcmVk
KFRpbWVyPERvY3VtZW50PiopCiB9CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpCi1pbnQgRG9jdW1lbnQ6OndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShQYXNzUmVmUHRy
PFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiBjYWxsYmFjaykKK2ludCBEb2N1bWVudDo6
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2s+IGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIpIHsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQpA
QCAtNTU1OSw3ICs1NTU5LDcgQEAgaW50IERvY3VtZW50Ojp3ZWJraXRSZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmEKICAgICByZXR1cm4g
bV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2sp
OwogfQogCi12b2lkIERvY3VtZW50Ojp3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQp
Cit2b2lkIERvY3VtZW50OjpjYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQpCiB7CiAgICAgaWYg
KCFtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCAyOTBmMWMwODgzNTE5OGY4MDgxMGZiNzZjNzhmZDc1NDg5YTdjMDRm
Li4zNWRmN2EyZTU4YzFhZDZlNjhmYTM2NmY1MWJlOGY5ZDk5OWJjMjMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTA5MSw4ICsxMDkxLDggQEAgcHVibGljOgogICAgIGNvbnN0IERvY3VtZW50
VGltaW5nKiB0aW1pbmcoKSBjb25zdCB7IHJldHVybiAmbV9kb2N1bWVudFRpbWluZzsgfQogCiAj
aWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgIGludCB3ZWJraXRSZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjaz4p
OwotICAgIHZvaWQgd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKTsKKyAgICBpbnQg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2s+KTsKKyAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7CiAgICAgdm9p
ZCBzZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNBbmltYXRpb25TdGFy
dFRpbWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA3MWFkZTQx
MWMxZWI0NzE0NmY4N2Q1YjZmMDk1MzdmZjRkZjVlNTFkLi5mYWE0YmEwNDg2MWM4ZjM3Y2U2OTgw
YzU4OGEyYjdkMmUyYzk5N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTMz
LDE3ICsxNTMzLDE3IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhckludGVydmFsKGludCB0aW1lb3V0
SWQpCiB9CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi1pbnQgRE9NV2lu
ZG93Ojp3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVDYWxsYmFjaz4gY2FsbGJhY2spCitpbnQgRE9NV2luZG93OjpyZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjaz4gY2FsbGJh
Y2spCiB7CiAgICAgaWYgKERvY3VtZW50KiBkID0gZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJu
IGQtPndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7CisgICAgICAgIHJldHVy
biBkLT5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spOwogICAgIHJldHVybiAwOwogfQog
Ci12b2lkIERPTVdpbmRvdzo6d2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKQordm9p
ZCBET01XaW5kb3c6OmNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCkKIHsKICAgICBpZiAoRG9j
dW1lbnQqIGQgPSBkb2N1bWVudCgpKQotICAgICAgICBkLT53ZWJraXRDYW5jZWxBbmltYXRpb25G
cmFtZShpZCk7CisgICAgICAgIGQtPmNhbmNlbEFuaW1hdGlvbkZyYW1lKGlkKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA4NzM5NjE4NWMyNWRiMzZhYjVjODRkMmI4
MWMzNzZlZTcwZTkyYzI2Li45NWY2ZWYxZWVkZWNlOTNiY2ZkMWQwYzY2M2FiNjY2YWM1ZmVmYTY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTI2Myw5ICsyNjMsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgLy8gV2ViS2l0IGFuaW1hdGlvbiBleHRlbnNpb25zCiAjaWYg
RU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgICAgICBpbnQgd2Via2l0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+
KTsKLSAgICAgICAgdm9pZCB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQpOwotICAg
ICAgICB2b2lkIHdlYmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZShpbnQgaWQpIHsgd2Vi
a2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOyB9CisgICAgICAgIGludCByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjaz4pOworICAg
ICAgICB2b2lkIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7CiAjZW5kaWYKIAogICAgICAg
ICAvLyBFdmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCBjYjEyZWJkYjRiYmQ1
ZWZmYjJmOTk0ZDljY2ZjNDllMjk4ZWNmNDEzLi4xODk2ZmFlMDllYTU5Mjk5N2NlNDM3ODkwYmFl
MGIzYTUxZDU2YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0yMTMsMTAgKzIx
MywxMSBAQAogICAgIHZvaWQgY2xlYXJJbnRlcnZhbChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBsb25nIGhhbmRsZSk7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRSkgJiYgRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FCi0gICAgLy8gV2Vi
S2l0IGFuaW1hdGlvbiBleHRlbnNpb25zLCBiZWluZyBzdGFuZGFyZGl6ZWQgaW4gdGhlIFdlYlBl
cmYgV0cKLSAgICBsb25nIHdlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShpbiBbQ2FsbGJhY2td
IFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrIGNhbGxiYWNrKTsKLSAgICB2b2lkIHdlYmtp
dENhbmNlbEFuaW1hdGlvbkZyYW1lKGluIGxvbmcgaWQpOwotICAgIHZvaWQgd2Via2l0Q2FuY2Vs
UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGluIGxvbmcgaWQpOyAvLyBUaGlzIGlzIGEgZGVwcmVjYXRl
ZCBhbGlhcyBmb3Igd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoKS4gUmVtb3ZlIHRoaXMgd2hl
biByZW1vdmluZyB2ZW5kb3IgcHJlZml4LgorICAgIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGluIFtDYWxsYmFja10gUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2spOwor
ICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaW4gbG9uZyBpZCk7CisgICAgW0ltcGxlbWVu
dGVkQXM9cmVxdWVzdEFuaW1hdGlvbkZyYW1lLCBWOE1lYXN1cmVBcz1QcmVmaXhlZFJlcXVlc3RB
bmltYXRpb25GcmFtZV0gbG9uZyB3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW4gW0NhbGxi
YWNrXSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjayBjYWxsYmFjayk7CisgICAgW0ltcGxl
bWVudGVkQXM9Y2FuY2VsQW5pbWF0aW9uRnJhbWVdIHZvaWQgd2Via2l0Q2FuY2VsQW5pbWF0aW9u
RnJhbWUoaW4gbG9uZyBpZCk7CisgICAgW0ltcGxlbWVudGVkQXM9Y2FuY2VsQW5pbWF0aW9uRnJh
bWVdIHZvaWQgd2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGluIGxvbmcgaWQpOyAv
LyBUaGlzIGlzIGEgZGVwcmVjYXRlZCBhbGlhcyBmb3Igd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJh
bWUoKS4gUmVtb3ZlIHRoaXMgd2hlbiByZW1vdmluZyB2ZW5kb3IgcHJlZml4LgogI2VuZGlmCiAK
ICAgICAvLyBCYXNlNjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9i
c2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oCmluZGV4IGFj
YThkN2ZkZDMwOGM2MTg3ZTkyMzIzMzRjOThjYzdiYWQ2MjE0ZGIuLjM2Y2FjMWM2MzZlYzQ2Yjhh
MjYxZGNjYzUyNTUwMzc1YTM3ZGFiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RmVhdHVyZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2
ZXIuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIE9wZW5XZWJEYXRhYmFzZSwK
ICAgICAgICAgTGVnYWN5SFRNTE5vdGlmaWNhdGlvbnMsCiAgICAgICAgIExlZ2FjeVRleHROb3Rp
ZmljYXRpb25zLAorICAgICAgICBQcmVmaXhlZFJlcXVlc3RBbmltYXRpb25GcmFtZSwKICAgICAg
ICAgLy8gQWRkIG5ldyBmZWF0dXJlcyBhYm92ZSB0aGlzIGxpbmUuCiAgICAgICAgIE51bWJlck9m
RmVhdHVyZXMsIC8vIFRoaXMgZW51bSB2YWx1ZSBtdXN0IGJlIGxhc3QuCiAgICAgfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBjNjc0YjhmZmYxNTBiNjg3NjYxNDAzZDlkYWVjMzkwZWQ3YzJjZDY2Li44OWU3MTg4ZTkxOWE4
MDAwNzk1NjE4YTljMmU2Y2MzMjBiMTkzYzU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTIt
MTAtMTEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFtSZXF1ZXN0QW5pbWF0aW9uRnJhbWVdIFJlbW92ZSB2ZW5kb3IgcHJlZml4CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTExNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtY2FsbGJhY2staWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVt
ZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtZGV0YWNoLWVsZW1lbnQyLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWw6CisgICAgICAgICogZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sOgorICAgICAgICAqIGZh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1lbnRzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1taXNzaW5nLWFyZ3VtZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanM6CisgICAgICAgICh3
aW5kb3cpOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qczoKKyAgICAgICAgKiBm
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtc3ViZnJh
bWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzOgorICAgICAgICAod2luZG93LnJl
cXVlc3RBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRl
c3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuanM6CisgICAgICAgICogZmFz
dC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1j
YWxsYmFjay5qczoKKyAgICAgICAgKHdpbmRvdyk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzOgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQu
anM6CisgICAgICAgIChCcm93c2VyUGFpbnQpOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmds
L3dlYmdsLXRleHR1cmUtYmluZGluZy1wcmVzZXJ2ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS5odG1sOgorCiAyMDEyLTEwLTEyICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSBiYXNlbGluZXMgdXBk
YXRlcyBhZnRlciBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzExMzQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1jYWxsYmFjay1pZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtY2FsbGJhY2staWQuaHRtbAppbmRleCA4ZGVlZDRjYzcwMWI2MjlhN2Y0
NWE3YWZkNmY3MWE5MGI0NzVhNDQzLi42N2U5YjIwNGFlYjZkMmQyMWIwZDhmMjY2ZGU1OGNlZjli
Zjc4ZDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1jYWxsYmFjay1pZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5p
bWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbGxiYWNrLWlkLmh0bWwKQEAgLTUsNyAr
NSw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogfQogCiBmdW5jdGlvbiBydW5UZXN0KCkg
ewotICAgIHZhciBpZCA9IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rp
b24gKCkge30pOworICAgIHZhciBpZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24gKCkge30pOwogICAgIHZhciByZXN1bHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlc3VsdHMiKTsKIAogICAgIGlmIChpZCA+IDApCkBAIC0xOSw0ICsxOSw0IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcnVuVGVzdCwg
ZmFsc2UpOwogPC9zY3JpcHQ+Ci08ZGl2IGlkPSJyZXN1bHRzIj48L2Rpdj4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCis8ZGl2IGlkPSJyZXN1bHRzIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1jYW5jZWwtZXhwZWN0ZWQudHh0CmluZGV4IDc5ODJhNmM0YTVjOWZlMzg1ZjI0N2Yx
YmI4YjhkZjFmZWE5NWZjMzcuLjZmZjM3ZWQ1Nzk5ZThiZDA3OTY1NjA2NmFlNGI2ZjJjZDQ3MTZj
NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWNhbmNlbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKLVRoaXMgdGVzdHMgY2FuY2VsbGluZyBhIHdlYmtpdFJlcXVlc3RBbmltYXRpb25G
cmFtZSBjYWxsYmFjaworVGhpcyB0ZXN0cyBjYW5jZWxsaW5nIGEgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lIGNhbGxiYWNrCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNo
LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWwKaW5kZXggMTFkOTlhZjY0ZGQ0ODJkYzE0MTI5
NTQ4NzI2MDg1MWUyODZjNzQzZC4uNTY3YzcyYTQ3Nzk3MDJmN2YyN2M4NGMxYjg0OTFkYTg3Y2Fj
MzBiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCkBAIC02
LDEwICs2LDEwIEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogfQogd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgewogICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpZnJhbWUiKVswXTsKLSAgICB3aW5kb3cuZnJhbWVzWzBdLndlYmtpdFJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cuZnJhbWVzWzBdLnJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAgZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChl
bCk7CiAgICAgfSk7Ci0gICAgd2luZG93LmZyYW1lc1sxXS53ZWJraXRSZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoZnVuY3Rpb24oKSB7CisgICAgd2luZG93LmZyYW1lc1sxXS5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgfSk7CiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50Mi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRp
b24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0bWwKaW5kZXggNmQy
YTI5MDIwNmE1YThiOTk1M2JhNjM4ZGE5ZWFkZTJlMzlhYzYyZS4uMzBlM2NmOGQ5MGVkZDg5MmI3
NjNhYTNkYmVkOTAwZGM5ZGVkOTljZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNo
LWVsZW1lbnQyLmh0bWwKQEAgLTYsNyArNiw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
fQogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgIHZhciBlbCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXTsKLSAgICB3aW5kb3cuZnJhbWVzWzBdLndl
YmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cuZnJhbWVz
WzBdLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAgZWwucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZChlbCk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVy
aW5nLW1vZGFsLmh0bWwKaW5kZXggNmQzZmMzNDYzYTlkODZhODUwNmMxYjdmZjJkMzQ2YTE2Njcx
MzBjOC4uZmVmMWEwZTdkYjdlMDA5YWVmZmUxNTk2NTkwZjcwNTBkYzc2NTcyNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVy
aW5nLW1vZGFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZGVzY3Jp
cHRpb24oJ1Rlc3RzIHRoYXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNrcyBhcmUgbm90
IGludm9rZWQgd2hpbGUgbW8KIG9ubG9hZCA9IGZ1bmN0aW9uKCkKIHsKICAgICBkZWJ1ZygnU2V0
dGluZyBjYWxsYmFjaycpOwotICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3Rpb24oKSB7IGRlYnVnKCdDYWxsYmFjayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5KTsK
KyAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeyBkZWJ1ZygnQ2Fs
bGJhY2sgZmlyZWQnKTsgfSwgZG9jdW1lbnQuYm9keSk7CiAgICAgZGVidWcoJ1Nob3dpbmcgbW9k
YWwgZGlhbG9nJyk7CiAgICAgdmFyIHNyYyA9ICdpZiAod2luZG93LnRlc3RSdW5uZXIpIHsnICsK
ICAgICAgICAgICAgICAgJyAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsnICsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFt
ZTIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWlmcmFtZTIuaHRtbAppbmRleCA0ZjYzYmQwNTc2MTMzMDJjYTI1ZmY5MTY2NGFiMjUxNTdh
ZGY0MGVkLi5mMWQxMzM2YTE2N2IxNjcxZjY4YzdlNmNlMWU2MzcwNjg0YTA4OTliIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1p
ZnJhbWUyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgfQogCi0gICAgICAgIHdpbmRvdy53
ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgICAgIHdpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBtYWluRnJhbWVD
YWxsYmFja0ludm9rZWQgPSB0cnVlOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1
bWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMtZXhwZWN0ZWQudHh0CmluZGV4IGQ3MGZj
Y2UwMjMyZjJjNWUxMTZmODQwMWE3YTE3MGE2ODlmNjIyOGQuLjIyOGY2YjNlOGU4MWNhYjEwMTc1
YjBlMzFmN2Y4ZTM3Y2E3OTUwNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1taXNzaW5nLWFyZ3VtZW50cy1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw4IEBAIFRlc3QgaG93
IGFuaW1hdGlvbiBtZXRob2RzIHJlYWN0IHRvIHRvbyBmZXcgYXJndW1lbnRzLgogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIHdl
YmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBjYW5jZWxBbmlt
YXRpb25GcmFtZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1taXNzaW5nLWFyZ3VtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMuaHRtbAppbmRleCBhMDY5
NmIzZGVjMzI2ZWI0YzdlODFlZTlmNWU1NmFkNTBiNDQ0ZDlkLi41NTJjMGI5ODY4YzY2NzI0MGEx
NDRkNGRhYmQwNDBlMmVjMThjMjEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1taXNzaW5nLWFyZ3VtZW50cy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3Np
bmctYXJndW1lbnRzLmh0bWwKQEAgLTYsOCArNiw4IEBACiA8Ym9keT4KIDxzY3JpcHQ+CiBkZXNj
cmlwdGlvbignVGVzdCBob3cgYW5pbWF0aW9uIG1ldGhvZHMgcmVhY3QgdG8gdG9vIGZldyBhcmd1
bWVudHMuJyk7Ci1zaG91bGRUaHJvdygid2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkiKTsK
LXNob3VsZFRocm93KCJ3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZSgpIik7CitzaG91bGRUaHJv
dygicmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkiKTsKK3Nob3VsZFRocm93KCJjYW5jZWxBbmltYXRp
b25GcmFtZSgpIik7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5j
ZWwuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCmluZGV4IDQ4YzFhM2Y0ZjIxOTg3ZTY1YzAxZjY5ZGVi
MTIxMDRmODUwNzFiNTUuLmVkNzNkZTEzMmVmY2YyYjliMTVmYjcxYzAxOTU2ZmM1YTQxMzkyYTUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcwpAQCAt
MSwxMSArMSwxMSBAQAotZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgY2FuY2VsbGluZyBhIHdlYmtp
dFJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxsYmFjayIpOworZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgY2FuY2VsbGluZyBhIHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxsYmFjayIpOwogCiB2YXIg
Y2FsbGJhY2tGaXJlZCA9IGZhbHNlOwogdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZSIpOwotdmFyIGlkID0gd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlv
bigpIHsKK3ZhciBpZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7
CiB9LCBlKTsKIAotd2luZG93LndlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKGlkKTsKK3dpbmRv
dy5jYW5jZWxBbmltYXRpb25GcmFtZShpZCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAg
ICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5p
bWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWNhbmNlbDIuanMKaW5kZXggMWUyMzEwYjkxN2NlMzM1OGVjYmE4ZGJhODY4ZmE5YjQ1
ZGIwMGU5NS4uZWJlYjQ0ZWQ5ZjAzZGUyMjAwNDYxNzdmMzEwNDQ1YTQzZDE1N2YyYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5p
bWF0aW9uLWZyYW1lLWNhbmNlbDIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuanMKQEAgLTUsMTIg
KzUsMTIgQEAgdmFyIHNlY29uZENhbGxiYWNrSWQ7CiB2YXIgY2FsbGJhY2tGaXJlZCA9IGZhbHNl
OwogdmFyIGNhbmNlbEZpcmVkID0gZmFsc2U7CiAKLXdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0
aW9uKCkgewogICAgIGNhbmNlbEZpcmVkID0gdHJ1ZTsKLSAgICB3aW5kb3cud2Via2l0Q2FuY2Vs
QW5pbWF0aW9uRnJhbWUoc2Vjb25kQ2FsbGJhY2tJZCk7CisgICAgd2luZG93LmNhbmNlbEFuaW1h
dGlvbkZyYW1lKHNlY29uZENhbGxiYWNrSWQpOwogfSwgZSk7CiAKLXNlY29uZENhbGxiYWNrSWQg
PSB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworc2Vjb25k
Q2FsbGJhY2tJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAg
ICAgY2FsbGJhY2tGaXJlZCA9IHRydWU7CiB9LCBlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRp
c2FibGVkLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzCmluZGV4IGI0Y2IzYzQ3YjkxOWU3OGEyYTk0
MmNjZTEyNjcwMzA3YjJkYTBmMTAuLmU2MjIwM2MyODZmZjI0YmZmMDM3YzUxMTM4YjhjMmRiMmM0
ODVkOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0
cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcworKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJs
ZWQuanMKQEAgLTEsNyArMSw3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUgaXMgZGlzYWJsZWQgd2hlbiB0aGUgc2V0dGluZy9wcmVmZXJlbmNlIGlzIGZh
bHNlLiBOb3RlOiBzaW5jZSB0aGUgc2V0dGluZyBpcyB0cnVlIGJ5IGRlZmF1bHQsIHRoaXMgdXN1
YWxseSBjYW4ndCBiZSB0ZXN0ZWQgZGlyZWN0bHkgaW4gYSBicm93c2VyLiIpOwogCiB2YXIgY2Fs
bGJhY2tJbnZva2VkID0gZmFsc2U7Ci13aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1l
KGZ1bmN0aW9uKCkgeword2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsK
ICAgICBjYWxsYmFja0ludm9rZWQgPSB0cnVlOwogfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1z
dWJmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLXN1YmZyYW1lLmh0bWwKaW5kZXggMzc1MmM4MDg0NTM1ZmQ0
NTQ1MTk3MmUzYTljNDUwNWIwZTI2OWZkMC4uMTcwN2NkOWUxNGYzMzY3YmE1OTllYjg3NTAwNzQz
MWNmYjRlMDU2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXN1YmZyYW1lLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LXN1YmZyYW1lLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+
Ci0gICAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgICAgICBwYXJl
bnQuY2FsbGJhY2tJbnZva2VkID0gdHJ1ZTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LXRpbWVzdGFtcHMtYWR2YW5jZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2UuanMKaW5k
ZXggN2U0NGVlODI3MTA2NTRjMDNjMDY0MDY2OWQyYTRlOTY3NmNlY2Y0ZC4uNWRjMTAzYWMxODBj
NTc3NzA3ODZkYjhhMGFhZTg2MTgxZWZkNGQ4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFt
cHMtYWR2YW5jZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVz
dHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzCkBAIC0xMCwx
MCArMTAsMTAgQEAgZnVuY3Rpb24gYnVzeVdhaXQobWlsbGlzKSB7CiB2YXIgZmlyc3RUaW1lc3Rh
bXAgPSB1bmRlZmluZWQ7CiB2YXIgc2Vjb25kVGltZXN0YW1wID0gdW5kZWZpbmVkOwogCi13aW5k
b3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpbWVzdGFtcCkgeword2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXApIHsKICAgICBmaXJz
dFRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKICAgICBzaG91bGRCZURlZmluZWQoImZpcnN0VGltZXN0
YW1wIik7Ci0gICAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0
aW1lc3RhbXApIHsKKyAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRp
bWVzdGFtcCkgewogICAgICAgICBzZWNvbmRUaW1lc3RhbXAgPSB0aW1lc3RhbXA7CiAgICAgICAg
IHNob3VsZEJlRGVmaW5lZCgic2Vjb25kVGltZXN0YW1wIik7CiAgICAgICAgIHNob3VsZEJlVHJ1
ZSgic2Vjb25kVGltZXN0YW1wID4gZmlyc3RUaW1lc3RhbXAiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS10aW1lc3RhbXBzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3Rz
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuanMKaW5kZXggODcxMDBmZmFhZTgz
OTVhMDhkMWNlNmU5ZjM5Y2E2NDY0YzIxZWI4My4uMjU4NjZiOTgwZDQ1YzAzNzJiODBkNTAyMDE0
NGNjYTM3ZmI3ZTg3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2Ny
aXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuanMKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLXRpbWVzdGFtcHMuanMKQEAgLTcsMTQgKzcsMTQgQEAgZnVuY3Rpb24gYnVzeVdhaXQobWls
bGlzKSB7CiAKIHZhciBmaXJzdFRpbWVzdGFtcCA9IHVuZGVmaW5lZDsKIAotd2luZG93LndlYmtp
dFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXApIHsKK3dpbmRvdy5yZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24odGltZXN0YW1wKSB7CiAgICAgZmlyc3RUaW1lc3Rh
bXAgPSB0aW1lc3RhbXA7CiAgICAgc2hvdWxkQmVEZWZpbmVkKCJmaXJzdFRpbWVzdGFtcCIpOwog
ICAgIGJ1c3lXYWl0KDEwKTsKIH0pOwogCiB2YXIgc2Vjb25kVGltZXN0YW1wID0gdW5kZWZpbmVk
Owotd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXAp
IHsKK3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24odGltZXN0YW1wKSB7CiAg
ICAgc2Vjb25kVGltZXN0YW1wID0gdGltZXN0YW1wOwogICAgIHNob3VsZEJlRGVmaW5lZCgic2Vj
b25kVGltZXN0YW1wIik7CiAgICAgc2hvdWxkQmUoImZpcnN0VGltZXN0YW1wIiwgInNlY29uZFRp
bWVzdGFtcCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS13aXRoaW4tY2FsbGJhY2suanMKaW5kZXggOTQzY2Y2ZmNhYjMyMTliN2EyZjM0YWNhNDE3MGE3
NzRlNWMwNDMyZi4uNGFlYjI2NmMwNTI2ZjQ0M2NiOWQ5MTQzZjczOTFjZWU5ZjhhNmE5ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3Qt
YW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNh
bGxiYWNrLmpzCkBAIC0yLDE1ICsyLDE1IEBAIGRlc2NyaXB0aW9uKCJUZXN0cyBhZGRpbmcgb25l
IGNhbGxiYWNrIHdpdGhpbiBhbm90aGVyIik7CiAKIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImUiKTsKIHZhciBzYW1lRnJhbWU7Ci13aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlv
bkZyYW1lKGZ1bmN0aW9uKCkgeword2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlv
bigpIHsKICAgICBzYW1lRnJhbWUgPSB0cnVlOwogfSwgZSk7Ci13aW5kb3cud2Via2l0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewotICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1
bmN0aW9uKCkgeworICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7
CiAgICAgICAgIHNob3VsZEJlRmFsc2UoInNhbWVGcmFtZSIpOwogICAgIH0sIGUpOwogfSwgZSk7
Ci13aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeword2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICBzYW1lRnJhbWUgPSBmYWxz
ZTsKIH0sIGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUuanMKaW5kZXggMTZk
NDc5ZmMwZmFiOTFiMmRmZTY4ZTU4ZDIxMzRjYWIzYjk5NmM4Yy4uMDUyYzAyZTQxYjRkZmVmNmMw
M2Q4YWIwODFjZTdhOTI1YTE2MGFjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS5qcwpAQCAtMiw3ICsyLDcgQEAgZGVzY3JpcHRpb24oIlRlc3RzIGJhc2ljIHVzZSBvZiByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUiKTsKIAogdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZSIpOwogdmFyIGNhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwotd2luZG93LndlYmtpdFJlcXVlc3RB
bmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKK3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3Rpb24oKSB7CiAgICAgY2FsbGJhY2tJbnZva2VkID0gdHJ1ZTsKIH0sIGUpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdl
U21vb3RoaW5nRW5hYmxlZC1yZXBhaW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2Ny
aXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcwppbmRleCA2
NTc2YTFhMDRkMjkyMmE2YzJlNzllMTUyYjk2N2Y3MzQ0MzU2ZDg1Li5iN2IwMjM0NWQ2ZjQ1ZTg3
ZDUwMzJjZjk1ZjU1ZmM5OTA4Y2ZkODM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5hYmxlZC1yZXBhaW50Lmpz
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtaW1hZ2VT
bW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMKQEAgLTUzLDcgKzUzLDcgQEAgZnVuY3Rpb24gQnJv
d3NlclBhaW50KCl7CiAgICAgZHJhdygpOwogCWlmIChkcmF3SXRlcmF0aW9ucyA+IDApIHsKIAkJ
ZHJhd0l0ZXJhdGlvbnMgPSBkcmF3SXRlcmF0aW9ucyAtIDE7Ci0JCXdpbmRvdy53ZWJraXRSZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoQnJvd3NlclBhaW50KTsKKwkJd2luZG93LnJlcXVlc3RBbmltYXRp
b25GcmFtZShCcm93c2VyUGFpbnQpOwogICAgIH0gZWxzZSB7CiAJICAgIHRlc3RSZXN1bHQoKTsK
IAl9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC10ZXh0
dXJlLWJpbmRpbmctcHJlc2VydmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC93ZWJnbC10ZXh0dXJlLWJpbmRpbmctcHJlc2VydmVkLmh0bWwKaW5kZXggZjdjOTNmYzEzOWE1
OTQyMzI3Zjk4ZmY4YWI3YmZmMTdkNjMxYTFlNi4uMmNjODhiZGNjZjk0Yzk0ZGJiM2QzZGYxYzUy
ZDUzYzZhNWM1NzZkYSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
d2ViZ2wtdGV4dHVyZS1iaW5kaW5nLXByZXNlcnZlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL3dlYmdsLXRleHR1cmUtYmluZGluZy1wcmVzZXJ2ZWQuaHRtbApAQCAt
NDAsOCArNDAsNiBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQogICBjYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgid2ViZ2wtY2FudmFzIik7CiAgIGNvbnRleHQgPSBjcmVhdGUz
RENvbnRleHQoY2FudmFzKTsKIAotICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cud2Vi
a2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lCi0KICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0
dXJlZFF1YWQoY29udGV4dCk7CiAgIHZhciBidWZmZXJPYmplY3RzID0gd3R1LnNldHVwVW5pdFF1
YWQoY29udGV4dCk7CiAgIHZhciB0ZXh0dXJlID0gd3R1LmNyZWF0ZUNvbG9yZWRUZXh0dXJlKGNv
bnRleHQsIDEsIDEsIFswLCAwLCAyNTUsIDI1NV0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaC5odG1sCmluZGV4IDkwODFlNzc3ZDBmN2Y4
OTAxMWZhNTcxYzhmZTVlZWNkMWMxMThmOWYuLmQzMTcyODFmNDI2NzVkMzk5NTk3MWIwZGMzNDNj
YzZlNzJhZjc1OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0
LW1lc3NhZ2UtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9z
dC1tZXNzYWdlLWNyYXNoLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgd2luZG93Lm9uZXJyb3IgPSBm
dW5jdGlvbigpIHsKICAgICByZXR1cm4gdHJ1ZTsKIH07CiAKLXdlYmtpdFJlcXVlc3RBbmltYXRp
b25GcmFtZShwb3N0TWVzc2FnZSk7CityZXF1ZXN0QW5pbWF0aW9uRnJhbWUocG9zdE1lc3NhZ2Up
Owogc2V0VGltZW91dChwb3N0TWVzc2FnZSk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRp
b24tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1h
bmltYXRpb24tZnJhbWUuaHRtbAppbmRleCA2NTdjMzZhNGNmN2JlZDc1NDQ5ZTA4YWRkMmJhZGZi
ZDBjMTMyNzUzLi4wOWFmNjc3ZTAwMjIyMjhiYWNiMDAwM2IyOTQ5MDk3NDEyNDNiZmFiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9u
LWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LWFuaW1hdGlvbi1mcmFtZS5odG1sCkBAIC03LDEwICs3LDEwIEBACiBmdW5jdGlvbiBwZXJmb3Jt
QWN0aW9ucygpCiB7CiAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YW5pbWF0aW9uIik7Ci0gICAgdmFyIHJlcXVlc3RJZCA9IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoYW5pbWF0aW9uRnJhbWVDYWxsYmFjaywgZWxlbWVudCk7CisgICAgdmFyIHJl
cXVlc3RJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0aW9uRnJhbWVDYWxs
YmFjaywgZWxlbWVudCk7CiAgICAgZnVuY3Rpb24gYW5pbWF0aW9uRnJhbWVDYWxsYmFjaygpCiAg
ICAgewotICAgICAgICB3aW5kb3cud2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJl
cXVlc3RJZCk7CisgICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShyZXF1ZXN0SWQp
OwogICAgIH0KIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168460</attachid>
            <date>2012-10-12 12:09:33 -0700</date>
            <delta_ts>2012-10-12 12:48:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99116-20121012120828.patch</filename>
            <type>text/plain</type>
            <size>24800</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E3MTMwNWQ4ODNmODgx
OGZmNmYzNTFjOTc0NjBkNTQ1YjkwMmRlMi4uNDJiZjZmYjU2NzVmZWY0NzJkYjQzMDBiZjlhZjM5
YzRjZGJlNGU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTExICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVxdWVzdEFu
aW1hdGlvbkZyYW1lXSBSZW1vdmUgdmVuZG9yIHByZWZpeAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkxMTYKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHJBRiB0ZXN0cyB3aXRob3V0IHBy
ZWZpeC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpjYW5jZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpjYW5jZWxBbmltYXRpb25GcmFtZSk6CisgICAgICAgICogcGFn
ZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOgorCiAyMDEyLTEwLTEyICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW5kZXJCUiBzaG91bGQgc2hhcmUgaXRzIGNvbnN0YW50IG5ld2xpbmUg
c3RyaW5nIGJldHdlZW4gaW5zdGFuY2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYjU2
MDA1Y2IzNzExOTk2YzQwNWYzYzczMmJkMWQzZWUwMTExODQwMC4uNTcxNDIzNTgxNzAwNmI2NTYy
NDVhZDNiMWUwNDEyYzg1NWU0ZTBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NTQx
LDcgKzU1NDEsNyBAQCB2b2lkIERvY3VtZW50Ojpsb2FkRXZlbnREZWxheVRpbWVyRmlyZWQoVGlt
ZXI8RG9jdW1lbnQ+KikKIH0KIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkK
LWludCBEb2N1bWVudDo6d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKFBhc3NSZWZQdHI8UmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s+IGNhbGxiYWNrKQoraW50IERvY3VtZW50OjpyZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
az4gY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikg
ewogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCkBAIC01
NTU5LDcgKzU1NTksNyBAQCBpbnQgRG9jdW1lbnQ6OndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFt
ZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYQogICAgIHJldHVybiBtX3Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjayk7CiB9
CiAKLXZvaWQgRG9jdW1lbnQ6OndlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCkKK3Zv
aWQgRG9jdW1lbnQ6OmNhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCkKIHsKICAgICBpZiAoIW1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDI5MGYxYzA4ODM1MTk4ZjgwODEwZmI3NmM3OGZkNzU0ODlhN2MwNGYuLjM1
ZGY3YTJlNThjMWFkNmU2OGZhMzY2ZjUxYmU4ZjlkOTk5YmMyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xMDkxLDggKzEwOTEsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgRG9jdW1lbnRUaW1p
bmcqIHRpbWluZygpIGNvbnN0IHsgcmV0dXJuICZtX2RvY3VtZW50VGltaW5nOyB9CiAKICNpZiBF
TkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi0gICAgaW50IHdlYmtpdFJlcXVlc3RBbmlt
YXRpb25GcmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPik7Ci0g
ICAgdm9pZCB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQpOworICAgIGludCByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
az4pOworICAgIHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKTsKICAgICB2b2lkIHNl
cnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0FuaW1hdGlvblN0YXJ0VGlt
ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDcxYWRlNDExYzFl
YjQ3MTQ2Zjg3ZDViNmYwOTUzN2ZmNGRmNWU1MWQuLmZhYTRiYTA0ODYxYzhmMzdjZTY5ODBjNTg4
YTJiN2QyZTJjOTk3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1MzMsMTcg
KzE1MzMsMTcgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCkK
IH0KIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKLWludCBET01XaW5kb3c6
OndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25G
cmFtZUNhbGxiYWNrPiBjYWxsYmFjaykKK2ludCBET01XaW5kb3c6OnJlcXVlc3RBbmltYXRpb25G
cmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPiBjYWxsYmFjaykK
IHsKICAgICBpZiAoRG9jdW1lbnQqIGQgPSBkb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZC0+
d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTsKKyAgICAgICAgcmV0dXJuIGQt
PnJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZv
aWQgRE9NV2luZG93Ojp3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbnQgaWQpCit2b2lkIERP
TVdpbmRvdzo6Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKQogewogICAgIGlmIChEb2N1bWVu
dCogZCA9IGRvY3VtZW50KCkpCi0gICAgICAgIGQtPndlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1l
KGlkKTsKKyAgICAgICAgZC0+Y2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDg3Mzk2MTg1YzI1ZGIzNmFiNWM4NGQyYjgxYzM3
NmVlNzBlOTJjMjYuLjk1ZjZlZjFlZWRlY2U5M2JjZmQxZDBjNjYzYWI2NjZhYzVmZWZhNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMjYzLDkgKzI2Myw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICAvLyBXZWJLaXQgYW5pbWF0aW9uIGV4dGVuc2lvbnMKICNpZiBFTkFC
TEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi0gICAgICAgIGludCB3ZWJraXRSZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoUGFzc1JlZlB0cjxSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjaz4pOwot
ICAgICAgICB2b2lkIHdlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKGludCBpZCk7Ci0gICAgICAg
IHZvaWQgd2Via2l0Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGludCBpZCkgeyB3ZWJraXRD
YW5jZWxBbmltYXRpb25GcmFtZShpZCk7IH0KKyAgICAgICAgaW50IHJlcXVlc3RBbmltYXRpb25G
cmFtZShQYXNzUmVmUHRyPFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrPik7CisgICAgICAg
IHZvaWQgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaW50IGlkKTsKICNlbmRpZgogCiAgICAgICAgIC8v
IEV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGNiMTJlYmRiNGJiZDVlZmZi
MmY5OTRkOWNjZmM0OWUyOThlY2Y0MTMuLjBlMTA0YjY5MjAzYmExNjRmMGQ1ZTNmYjMzNWRiMjRj
N2YwYWJiNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTIxMywxMCArMjEzLDEx
IEBACiAgICAgdm9pZCBjbGVhckludGVydmFsKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGxvbmcgaGFuZGxlKTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FKSAmJiBFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUKLSAgICAvLyBXZWJLaXQg
YW5pbWF0aW9uIGV4dGVuc2lvbnMsIGJlaW5nIHN0YW5kYXJkaXplZCBpbiB0aGUgV2ViUGVyZiBX
RwotICAgIGxvbmcgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGluIFtDYWxsYmFja10gUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2spOwotICAgIHZvaWQgd2Via2l0Q2Fu
Y2VsQW5pbWF0aW9uRnJhbWUoaW4gbG9uZyBpZCk7Ci0gICAgdm9pZCB3ZWJraXRDYW5jZWxSZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoaW4gbG9uZyBpZCk7IC8vIFRoaXMgaXMgYSBkZXByZWNhdGVkIGFs
aWFzIGZvciB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZSgpLiBSZW1vdmUgdGhpcyB3aGVuIHJl
bW92aW5nIHZlbmRvciBwcmVmaXguCisgICAgW1Y4TWVhc3VyZUFzPVVucHJlZml4ZWRSZXF1ZXN0
QW5pbWF0aW9uRnJhbWVdIGxvbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGluIFtDYWxsYmFja10g
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2spOworICAgIHZvaWQgY2FuY2Vs
QW5pbWF0aW9uRnJhbWUoaW4gbG9uZyBpZCk7CisgICAgW0ltcGxlbWVudGVkQXM9cmVxdWVzdEFu
aW1hdGlvbkZyYW1lLCBWOE1lYXN1cmVBcz1QcmVmaXhlZFJlcXVlc3RBbmltYXRpb25GcmFtZV0g
bG9uZyB3ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW4gW0NhbGxiYWNrXSBSZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFjayBjYWxsYmFjayk7CisgICAgW0ltcGxlbWVudGVkQXM9Y2FuY2Vs
QW5pbWF0aW9uRnJhbWVdIHZvaWQgd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaW4gbG9uZyBp
ZCk7CisgICAgW0ltcGxlbWVudGVkQXM9Y2FuY2VsQW5pbWF0aW9uRnJhbWVdIHZvaWQgd2Via2l0
Q2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGluIGxvbmcgaWQpOyAvLyBUaGlzIGlzIGEgZGVw
cmVjYXRlZCBhbGlhcyBmb3Igd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoKS4gUmVtb3ZlIHRo
aXMgd2hlbiByZW1vdmluZyB2ZW5kb3IgcHJlZml4LgogI2VuZGlmCiAKICAgICAvLyBCYXNlNjQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oCmluZGV4IGFjYThkN2ZkZDMwOGM2MTg3
ZTkyMzIzMzRjOThjYzdiYWQ2MjE0ZGIuLjhlMGU4NDU4ODQ1MWI0NjNjZjBkOGY2Yzc2OTQwOWMw
YWY4ZTgxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaApAQCAtNTIsNiAr
NTIsOCBAQCBwdWJsaWM6CiAgICAgICAgIE9wZW5XZWJEYXRhYmFzZSwKICAgICAgICAgTGVnYWN5
SFRNTE5vdGlmaWNhdGlvbnMsCiAgICAgICAgIExlZ2FjeVRleHROb3RpZmljYXRpb25zLAorICAg
ICAgICBVbnByZWZpeGVkUmVxdWVzdEFuaW1hdGlvbkZyYW1lLAorICAgICAgICBQcmVmaXhlZFJl
cXVlc3RBbmltYXRpb25GcmFtZSwKICAgICAgICAgLy8gQWRkIG5ldyBmZWF0dXJlcyBhYm92ZSB0
aGlzIGxpbmUuCiAgICAgICAgIE51bWJlck9mRmVhdHVyZXMsIC8vIFRoaXMgZW51bSB2YWx1ZSBt
dXN0IGJlIGxhc3QuCiAgICAgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNjc0YjhmZmYxNTBiNjg3NjYxNDAzZDlkYWVj
MzkwZWQ3YzJjZDY2Li4xYjE5MjhlYWI2MGFhYmRkZTUzN2JiZjA0ODEyYmM3Mzk3NThjYmUxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMTAtMTEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25q
YW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZXF1ZXN0QW5pbWF0aW9uRnJhbWVdIFJlbW92
ZSB2ZW5kb3IgcHJlZml4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTExNgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYWxsYmFjay1pZC5o
dG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNh
bmNlbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJh
bWUyLmh0bWw6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtbWlzc2luZy1hcmd1bWVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvYW5pbWF0
aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1lbnRzLmh0bWw6CisgICAg
ICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWNhbmNlbC5qczoKKyAgICAgICAgKHdpbmRvdyk6CisgICAgICAgICogZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbDIuanM6CisgICAgICAg
ICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRp
c2FibGVkLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1zdWJmcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2Uu
anM6CisgICAgICAgICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKToKKyAgICAgICAgKiBm
YXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0
YW1wcy5qczoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzOgorICAgICAgICAod2luZG93KToKKyAg
ICAgICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUuanM6CisgICAgICAgICogZmFzdC9jYW52YXMvc2NyaXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNt
b290aGluZ0VuYWJsZWQtcmVwYWludC5qczoKKyAgICAgICAgKEJyb3dzZXJQYWludCk6CisgICAg
ICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtdGV4dHVyZS1iaW5kaW5nLXByZXNlcnZlZC5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLmh0
bWw6CisKIDIwMTItMTAtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBNb3JlIGJhc2VsaW5lcyB1cGRhdGVzIGFmdGVyIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzEzMTEzNC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbGxiYWNrLWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYWxsYmFjay1pZC5odG1sCmlu
ZGV4IDhkZWVkNGNjNzAxYjYyOWE3ZjQ1YTdhZmQ2ZjcxYTkwYjQ3NWE0NDMuLjY3ZTliMjA0YWVi
NmQyZDIxYjBkOGYyNjZkZTU4Y2VmOWJmNzhkNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbGxiYWNrLWlkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2Fs
bGJhY2staWQuaHRtbApAQCAtNSw3ICs1LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiB9
CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgdmFyIGlkID0gd2luZG93LndlYmtpdFJlcXVl
c3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7fSk7CisgICAgdmFyIGlkID0gd2luZG93LnJl
cXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7fSk7CiAgICAgdmFyIHJlc3VsdHMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0cyIpOwogCiAgICAgaWYgKGlkID4gMCkKQEAg
LTE5LDQgKzE5LDQgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAogd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBydW5UZXN0LCBmYWxzZSk7CiA8L3NjcmlwdD4KLTxkaXYgaWQ9InJlc3Vs
dHMiPjwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzxkaXYgaWQ9InJlc3VsdHMi
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtY2FuY2VsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvYW5p
bWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC1leHBlY3RlZC50eHQKaW5kZXgg
Nzk4MmE2YzRhNWM5ZmUzODVmMjQ3ZjFiYjhiOGRmMWZlYTk1ZmMzNy4uNmZmMzdlZDU3OTllOGJk
MDc5NjU2MDY2YWU0YjZmMmNkNDcxNmM3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5j
ZWwtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotVGhpcyB0ZXN0cyBjYW5jZWxsaW5nIGEg
d2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNrCitUaGlzIHRlc3RzIGNhbmNlbGxp
bmcgYSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2sKIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbAppbmRl
eCAxMWQ5OWFmNjRkZDQ4MmRjMTQxMjk1NDg3MjYwODUxZTI4NmM3NDNkLi41NjdjNzJhNDc3OTcw
MmY3ZjI3Yzg0YzFiODQ5MWRhODdjYWMzMGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRl
dGFjaC1lbGVtZW50Lmh0bWwKQEAgLTYsMTAgKzYsMTAgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiB9CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgdmFyIGVsID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdOwotICAgIHdpbmRvdy5mcmFtZXNb
MF0ud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5m
cmFtZXNbMF0ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgICAgICBlbC5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsKICAgICB9KTsKLSAgICB3aW5kb3cuZnJhbWVzWzFd
LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cuZnJh
bWVzWzFdLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICB9KTsKIAogICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQyLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gt
ZWxlbWVudDIuaHRtbAppbmRleCA2ZDJhMjkwMjA2YTVhOGI5OTUzYmE2MzhkYTllYWRlMmUzOWFj
NjJlLi4zMGUzY2Y4ZDkwZWRkODkyYjc2M2FhM2RiZWQ5MDBkYzlkZWQ5OWNkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRh
Y2gtZWxlbWVudDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbApAQCAtNiw3ICs2LDcgQEAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiB9CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAg
ICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdOwot
ICAgIHdpbmRvdy5mcmFtZXNbMF0ud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KCkgeworICAgIHdpbmRvdy5mcmFtZXNbMF0ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KCkgewogICAgICAgICBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsKICAgICB9KTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAppbmRleCA2ZDNmYzM0NjNhOWQ4
NmE4NTA2YzFiN2ZmMmQzNDZhMTY2NzEzMGM4Li5mZWYxYTBlN2RiN2UwMDlhZWZmZTE1OTY1OTBm
NzA1MGRjNzY1NzI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbApA
QCAtMTIsNyArMTIsNyBAQCBkZXNjcmlwdGlvbignVGVzdHMgdGhhdCByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUgY2FsbGJhY2tzIGFyZSBub3QgaW52b2tlZCB3aGlsZSBtbwogb25sb2FkID0gZnVuY3Rp
b24oKQogewogICAgIGRlYnVnKCdTZXR0aW5nIGNhbGxiYWNrJyk7Ci0gICAgd2luZG93LndlYmtp
dFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsgZGVidWcoJ0NhbGxiYWNrIGZpcmVk
Jyk7IH0sIGRvY3VtZW50LmJvZHkpOworICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
ZnVuY3Rpb24oKSB7IGRlYnVnKCdDYWxsYmFjayBmaXJlZCcpOyB9LCBkb2N1bWVudC5ib2R5KTsK
ICAgICBkZWJ1ZygnU2hvd2luZyBtb2RhbCBkaWFsb2cnKTsKICAgICB2YXIgc3JjID0gJ2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeycgKwogICAgICAgICAgICAgICAnICAgIHRlc3RSdW5uZXIuZGlz
cGxheSgpOycgKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRp
b24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtaWZyYW1lMi5odG1sCmluZGV4IDRmNjNiZDA1NzYx
MzMwMmNhMjVmZjkxNjY0YWIyNTE1N2FkZjQwZWQuLmYxZDEzMzZhMTY3YjE2NzFmNjhjN2U2Y2Ux
ZTYzNzA2ODRhMDg5OWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUyLmh0bWwKQEAgLTE2LDcg
KzE2LDcgQEAKICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAg
ICB9CiAKLSAgICAgICAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlv
bigpIHsKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgIG1haW5GcmFtZUNhbGxiYWNrSW52b2tlZCA9IHRydWU7CiAgICAgICAgIH0p
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1taXNzaW5nLWFyZ3VtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1taXNzaW5nLWFyZ3VtZW50cy1l
eHBlY3RlZC50eHQKaW5kZXggZDcwZmNjZTAyMzJmMmM1ZTExNmY4NDAxYTdhMTcwYTY4OWY2MjI4
ZC4uMjI4ZjZiM2U4ZTgxY2FiMTAxNzViMGUzMWY3ZjhlMzdjYTc5NTA2NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtbWlzc2lu
Zy1hcmd1bWVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1lbnRzLWV4cGVjdGVkLnR4dApA
QCAtMyw4ICszLDggQEAgVGVzdCBob3cgYW5pbWF0aW9uIG1ldGhvZHMgcmVhY3QgdG8gdG9vIGZl
dyBhcmd1bWVudHMuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB3ZWJraXRS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KLVBBU1Mgd2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCitQQVNTIGNhbmNlbEFuaW1hdGlvbkZyYW1lKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0
aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3NpbmctYXJndW1lbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1taXNzaW5nLWFy
Z3VtZW50cy5odG1sCmluZGV4IGEwNjk2YjNkZWMzMjZlYjRjN2U4MWVlOWY1ZTU2YWQ1MGI0NDRk
OWQuLjU1MmMwYjk4NjhjNjY3MjQwYTE0NGQ0ZGFiZDA0MGUyZWMxOGMyMTAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLW1pc3Np
bmctYXJndW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtbWlzc2luZy1hcmd1bWVudHMuaHRtbApAQCAtNiw4ICs2LDggQEAK
IDxib2R5PgogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCdUZXN0IGhvdyBhbmltYXRpb24gbWV0aG9k
cyByZWFjdCB0byB0b28gZmV3IGFyZ3VtZW50cy4nKTsKLXNob3VsZFRocm93KCJ3ZWJraXRSZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoKSIpOwotc2hvdWxkVGhyb3coIndlYmtpdENhbmNlbEFuaW1hdGlv
bkZyYW1lKCkiKTsKK3Nob3VsZFRocm93KCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSIpOworc2hv
dWxkVGhyb3coImNhbmNlbEFuaW1hdGlvbkZyYW1lKCkiKTsKIDwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanMKaW5kZXggNDhj
MWEzZjRmMjE5ODdlNjVjMDFmNjlkZWIxMjEwNGY4NTA3MWI1NS4uZWQ3M2RlMTMyZWZjZjJiOWIx
NWZiNzFjMDE5NTZmYzVhNDEzOTJhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmlt
YXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWNhbmNlbC5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtY2FuY2VsLmpzCkBAIC0xLDExICsxLDExIEBACi1kZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyBjYW5jZWxsaW5nIGEgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNrIik7
CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBjYW5jZWxsaW5nIGEgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lIGNhbGxiYWNrIik7CiAKIHZhciBjYWxsYmFja0ZpcmVkID0gZmFsc2U7CiB2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJlIik7Ci12YXIgaWQgPSB3aW5kb3cud2Via2l0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewordmFyIGlkID0gd2luZG93LnJlcXVlc3RBbmlt
YXRpb25GcmFtZShmdW5jdGlvbigpIHsKIH0sIGUpOwogCi13aW5kb3cud2Via2l0Q2FuY2VsQW5p
bWF0aW9uRnJhbWUoaWQpOword2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGlkKTsKIAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWNhbmNlbDIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQt
dGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwppbmRleCAxZTIzMTBiOTE3
Y2UzMzU4ZWNiYThkYmE4NjhmYTliNDVkYjAwZTk1Li5lYmViNDRlZDlmMDNkZTIyMDA0NjE3N2Yz
MTA0NDVhNDNkMTU3ZjJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9z
Y3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJh
bWUtY2FuY2VsMi5qcwpAQCAtNSwxMiArNSwxMiBAQCB2YXIgc2Vjb25kQ2FsbGJhY2tJZDsKIHZh
ciBjYWxsYmFja0ZpcmVkID0gZmFsc2U7CiB2YXIgY2FuY2VsRmlyZWQgPSBmYWxzZTsKIAotd2lu
ZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKK3dpbmRvdy5yZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgY2FuY2VsRmlyZWQgPSB0cnVlOwot
ICAgIHdpbmRvdy53ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShzZWNvbmRDYWxsYmFja0lkKTsK
KyAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoc2Vjb25kQ2FsbGJhY2tJZCk7CiB9LCBl
KTsKIAotc2Vjb25kQ2FsbGJhY2tJZCA9IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoZnVuY3Rpb24oKSB7CitzZWNvbmRDYWxsYmFja0lkID0gd2luZG93LnJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jdGlvbigpIHsKICAgICBjYWxsYmFja0ZpcmVkID0gdHJ1ZTsKIH0sIGUpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1h
dGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuanMKaW5k
ZXggYjRjYjNjNDdiOTE5ZTc4YTJhOTQyY2NlMTI2NzAzMDdiMmRhMGYxMC4uZTYyMjAzYzI4NmZm
MjRiZmYwMzdjNTExMzhiOGMyZGIyYzQ4NWQ5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVk
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwpAQCAtMSw3ICsxLDcgQEAKIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IHJlcXVlc3RBbmltYXRpb25GcmFtZSBpcyBkaXNhYmxlZCB3aGVuIHRoZSBz
ZXR0aW5nL3ByZWZlcmVuY2UgaXMgZmFsc2UuIE5vdGU6IHNpbmNlIHRoZSBzZXR0aW5nIGlzIHRy
dWUgYnkgZGVmYXVsdCwgdGhpcyB1c3VhbGx5IGNhbid0IGJlIHRlc3RlZCBkaXJlY3RseSBpbiBh
IGJyb3dzZXIuIik7CiAKIHZhciBjYWxsYmFja0ludm9rZWQgPSBmYWxzZTsKLXdpbmRvdy53ZWJr
aXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgIGNhbGxiYWNrSW52b2tlZCA9IHRydWU7CiB9KTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtc3ViZnJhbWUuaHRt
bAppbmRleCAzNzUyYzgwODQ1MzVmZDQ1NDUxOTcyZTNhOWM0NTA1YjBlMjY5ZmQwLi4xNzA3Y2Q5
ZTE0ZjMzNjdiYTU5OWViODc1MDA3NDMxY2ZiNGUwNTZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtc3Vi
ZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtc3ViZnJhbWUuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDwv
aGVhZD4KIDxib2R5PgogPHNjcmlwdD4KLSAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlv
bkZyYW1lKGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24oKSB7CiAgICAgICAgIHBhcmVudC5jYWxsYmFja0ludm9rZWQgPSB0cnVlOwogICAgIH0p
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMv
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRp
bWVzdGFtcHMtYWR2YW5jZS5qcwppbmRleCA3ZTQ0ZWU4MjcxMDY1NGMwM2MwNjQwNjY5ZDJhNGU5
Njc2Y2VjZjRkLi41ZGMxMDNhYzE4MGM1Nzc3MDc4NmRiOGEwYWFlODYxODFlZmQ0ZDgyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3Rh
bXBzLWFkdmFuY2UuanMKQEAgLTEwLDEwICsxMCwxMCBAQCBmdW5jdGlvbiBidXN5V2FpdChtaWxs
aXMpIHsKIHZhciBmaXJzdFRpbWVzdGFtcCA9IHVuZGVmaW5lZDsKIHZhciBzZWNvbmRUaW1lc3Rh
bXAgPSB1bmRlZmluZWQ7CiAKLXdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVu
Y3Rpb24odGltZXN0YW1wKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KHRpbWVzdGFtcCkgewogICAgIGZpcnN0VGltZXN0YW1wID0gdGltZXN0YW1wOwogICAgIHNob3Vs
ZEJlRGVmaW5lZCgiZmlyc3RUaW1lc3RhbXAiKTsKLSAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFu
aW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRpbWVzdGFtcCkgeworICAgIHdpbmRvdy5yZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZnVuY3Rpb24odGltZXN0YW1wKSB7CiAgICAgICAgIHNlY29uZFRpbWVzdGFt
cCA9IHRpbWVzdGFtcDsKICAgICAgICAgc2hvdWxkQmVEZWZpbmVkKCJzZWNvbmRUaW1lc3RhbXAi
KTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCJzZWNvbmRUaW1lc3RhbXAgPiBmaXJzdFRpbWVzdGFt
cCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3Rz
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1w
cy5qcwppbmRleCA4NzEwMGZmYWFlODM5NWEwOGQxY2U2ZTlmMzljYTY0NjRjMjFlYjgzLi4yNTg2
NmI5ODBkNDVjMDM3MmI4MGQ1MDIwMTQ0Y2NhMzdmYjdlODdiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
dGltZXN0YW1wcy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVz
dHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy5qcwpAQCAtNywxNCArNywxNCBA
QCBmdW5jdGlvbiBidXN5V2FpdChtaWxsaXMpIHsKIAogdmFyIGZpcnN0VGltZXN0YW1wID0gdW5k
ZWZpbmVkOwogCi13aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKHRp
bWVzdGFtcCkgeword2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3Rh
bXApIHsKICAgICBmaXJzdFRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKICAgICBzaG91bGRCZURlZmlu
ZWQoImZpcnN0VGltZXN0YW1wIik7CiAgICAgYnVzeVdhaXQoMTApOwogfSk7CiAKIHZhciBzZWNv
bmRUaW1lc3RhbXAgPSB1bmRlZmluZWQ7Ci13aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZy
YW1lKGZ1bmN0aW9uKHRpbWVzdGFtcCkgeword2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShm
dW5jdGlvbih0aW1lc3RhbXApIHsKICAgICBzZWNvbmRUaW1lc3RhbXAgPSB0aW1lc3RhbXA7CiAg
ICAgc2hvdWxkQmVEZWZpbmVkKCJzZWNvbmRUaW1lc3RhbXAiKTsKICAgICBzaG91bGRCZSgiZmly
c3RUaW1lc3RhbXAiLCAic2Vjb25kVGltZXN0YW1wIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0
aGluLWNhbGxiYWNrLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3Rz
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwppbmRleCA5NDNjZjZm
Y2FiMzIxOWI3YTJmMzRhY2E0MTcwYTc3NGU1YzA0MzJmLi40YWViMjY2YzA1MjZmNDQzY2I5ZDkx
NDNmNzM5MWNlZTlmOGE2YTllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpz
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS13aXRoaW4tY2FsbGJhY2suanMKQEAgLTIsMTUgKzIsMTUgQEAgZGVzY3Jp
cHRpb24oIlRlc3RzIGFkZGluZyBvbmUgY2FsbGJhY2sgd2l0aGluIGFub3RoZXIiKTsKIAogdmFy
IGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZSIpOwogdmFyIHNhbWVGcmFtZTsKLXdpbmRv
dy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Cit3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewogICAgIHNhbWVGcmFtZSA9IHRydWU7CiB9LCBl
KTsKLXdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7Ci0gICAg
d2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKK3dpbmRvdy5y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgd2luZG93LnJlcXVlc3RBbmlt
YXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAgc2hvdWxkQmVGYWxzZSgic2FtZUZyYW1l
Iik7CiAgICAgfSwgZSk7CiB9LCBlKTsKLXdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJh
bWUoZnVuY3Rpb24oKSB7Cit3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkg
ewogICAgIHNhbWVGcmFtZSA9IGZhbHNlOwogfSwgZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS5qcwppbmRleCAxNmQ0NzlmYzBmYWI5MWIyZGZlNjhlNThkMjEzNGNhYjNiOTk2
YzhjLi4wNTJjMDJlNDFiNGRmZWY2YzAzZDhhYjA4MWNlN2E5MjVhMTYwYWMzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3Rz
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLmpzCkBAIC0yLDcgKzIsNyBAQCBkZXNjcmlwdGlvbigi
VGVzdHMgYmFzaWMgdXNlIG9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSIpOwogCiB2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJlIik7CiB2YXIgY2FsbGJhY2tJbnZva2VkID0gZmFsc2U7
Ci13aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeword2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICBjYWxsYmFja0ludm9rZWQg
PSB0cnVlOwogfSwgZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Nj
cmlwdC10ZXN0cy9jYW52YXMtaW1hZ2VTbW9vdGhpbmdFbmFibGVkLXJlcGFpbnQuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9zY3JpcHQtdGVzdHMvY2FudmFzLWltYWdlU21vb3RoaW5nRW5h
YmxlZC1yZXBhaW50LmpzCmluZGV4IDY1NzZhMWEwNGQyOTIyYTZjMmU3OWUxNTJiOTY3ZjczNDQz
NTZkODUuLmI3YjAyMzQ1ZDZmNDVlODdkNTAzMmNmOTVmNTVmYzk5MDhjZmQ4MzkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NjcmlwdC10ZXN0cy9jYW52YXMtaW1hZ2VTbW9v
dGhpbmdFbmFibGVkLXJlcGFpbnQuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2Ny
aXB0LXRlc3RzL2NhbnZhcy1pbWFnZVNtb290aGluZ0VuYWJsZWQtcmVwYWludC5qcwpAQCAtNTMs
NyArNTMsNyBAQCBmdW5jdGlvbiBCcm93c2VyUGFpbnQoKXsKICAgICBkcmF3KCk7CiAJaWYgKGRy
YXdJdGVyYXRpb25zID4gMCkgewogCQlkcmF3SXRlcmF0aW9ucyA9IGRyYXdJdGVyYXRpb25zIC0g
MTsKLQkJd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShCcm93c2VyUGFpbnQpOwor
CQl3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKEJyb3dzZXJQYWludCk7CiAgICAgfSBlbHNl
IHsKIAkgICAgdGVzdFJlc3VsdCgpOwogCX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL3dlYmdsLXRleHR1cmUtYmluZGluZy1wcmVzZXJ2ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLXRleHR1cmUtYmluZGluZy1wcmVzZXJ2ZWQu
aHRtbAppbmRleCBmN2M5M2ZjMTM5YTU5NDIzMjdmOThmZjhhYjdiZmYxN2Q2MzFhMWU2Li4yY2M4
OGJkY2NmOTRjOTRkYmIzZDNkZjFjNTJkNTNjNmE1YzU3NmRhIDEwMDc1NQotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC10ZXh0dXJlLWJpbmRpbmctcHJlc2VydmVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtdGV4dHVyZS1iaW5k
aW5nLXByZXNlcnZlZC5odG1sCkBAIC00MCw4ICs0MCw2IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpCiAgIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWJnbC1jYW52YXMi
KTsKICAgY29udGV4dCA9IGNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwogCi0gIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSA9IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUKLQogICB2YXIg
cHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChjb250ZXh0KTsKICAgdmFyIGJ1ZmZlck9i
amVjdHMgPSB3dHUuc2V0dXBVbml0UXVhZChjb250ZXh0KTsKICAgdmFyIHRleHR1cmUgPSB3dHUu
Y3JlYXRlQ29sb3JlZFRleHR1cmUoY29udGV4dCwgMSwgMSwgWzAsIDAsIDI1NSwgMjU1XSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcG9zdC1tZXNzYWdlLWNyYXNoLmh0
bWwKaW5kZXggOTA4MWU3NzdkMGY3Zjg5MDExZmE1NzFjOGZlNWVlY2QxYzExOGY5Zi4uZDMxNzI4
MWY0MjY3NWQzOTk1OTcxYjBkYzM0M2NjNmU3MmFmNzU5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3Bvc3QtbWVzc2FnZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9wb3N0LW1lc3NhZ2UtY3Jhc2guaHRtbApAQCAtMjMsNyArMjMs
NyBAQCB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKCkgewogICAgIHJldHVybiB0cnVlOwogfTsK
IAotd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKHBvc3RNZXNzYWdlKTsKK3JlcXVlc3RBbmlt
YXRpb25GcmFtZShwb3N0TWVzc2FnZSk7CiBzZXRUaW1lb3V0KHBvc3RNZXNzYWdlKTsKIAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS5odG1sCmluZGV4IDY1N2MzNmE0
Y2Y3YmVkNzU0NDllMDhhZGQyYmFkZmJkMGMxMzI3NTMuLjA5YWY2NzdlMDAyMjIyOGJhY2IwMDAz
YjI5NDkwOTc0MTI0M2JmYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1hbmltYXRpb24tZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLmh0bWwKQEAgLTcsMTAgKzcs
MTAgQEAKIGZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25zKCkKIHsKICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmltYXRpb24iKTsKLSAgICB2YXIgcmVxdWVzdElkID0g
d2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRpb25GcmFtZUNhbGxiYWNr
LCBlbGVtZW50KTsKKyAgICB2YXIgcmVxdWVzdElkID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZShhbmltYXRpb25GcmFtZUNhbGxiYWNrLCBlbGVtZW50KTsKICAgICBmdW5jdGlvbiBhbmlt
YXRpb25GcmFtZUNhbGxiYWNrKCkKICAgICB7Ci0gICAgICAgIHdpbmRvdy53ZWJraXRDYW5jZWxS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVxdWVzdElkKTsKKyAgICAgICAgd2luZG93LmNhbmNlbEFu
aW1hdGlvbkZyYW1lKHJlcXVlc3RJZCk7CiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>