<?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>95313</bug_id>
          
          <creation_ts>2012-08-29 01:52:03 -0700</creation_ts>
          <short_desc>Convert more static Strings to use ASCIILiteral</short_desc>
          <delta_ts>2012-08-29 16:04:08 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>707223</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 01:52:03 -0700</bug_when>
    <thetext>Convert more static Strings to use ASCIILiteral</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707226</commentid>
    <comment_count>1</comment_count>
      <attachid>161161</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 01:54:08 -0700</bug_when>
    <thetext>Created attachment 161161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707234</commentid>
    <comment_count>2</comment_count>
      <attachid>161161</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-29 02:20:55 -0700</bug_when>
    <thetext>Comment on attachment 161161
Patch

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

&gt; Source/WebCore/Modules/mediasource/MediaSource.h:49
&gt; +    static const String&amp; openKeyword();
&gt; +    static const String&amp; closedKeyword();
&gt; +    static const String&amp; endedKeyword();

Thanks for saving the linker some work. :)

&gt; Source/WebCore/css/CSSWrapShapes.cpp:127
&gt; +            result.appendLiteral(&quot;, &quot;);

I assume the compiler uniques these strings?  It or the linker must... for sanity&apos;s sake.

&gt; Source/WebCore/css/StyleSheetContents.cpp:294
&gt; +        if (baseURL().string().endsWith(&quot;/KHTMLFixes.css&quot;) &amp;&amp; !sheetText.isNull() &amp;&amp; mediaWikiKHTMLFixesStyleSheet.startsWith(sheetText)

The web it an amazing place.

&gt; Source/WebCore/editing/markup.cpp:203
&gt;  const String StyledMarkupAccumulator::styleNodeCloseTag(bool isBlock)

This could be const String&amp;

&gt; Source/WebCore/editing/markup.cpp:555
&gt;          return &quot;&quot;;

Oh noes.

&gt; Source/WebCore/platform/KURLWTFURL.cpp:116
&gt; +    if (isNull())
&gt; +        return String();

Returning a reference to a temporary seems like a bad idea?  How does the compiler allow this?

&gt; Source/WebCore/platform/MIMETypeRegistry.cpp:641
&gt; +    mimeTypeMap-&gt;add(ASCIILiteral(&quot;image/x-ms-bmp&quot;), ASCIILiteral(&quot;image/bmp&quot;)));

I would have created an addLiterals(map, key, value) helper if I had writen this.

&gt; Source/WebCore/svg/SVGAnimatedBoolean.cpp:37
&gt; +    animtedType-&gt;boolean() = (string == &quot;true&quot;); // wat?

Yes.  Wat?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707469</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 08:26:44 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 161161 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161161&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/KURLWTFURL.cpp:116
&gt; &gt; +    if (isNull())
&gt; &gt; +        return String();
&gt; 
&gt; Returning a reference to a temporary seems like a bad idea?  How does the compiler allow this?

Hum...  You&apos;re right.  We should use nullAtom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707472</commentid>
    <comment_count>4</comment_count>
      <attachid>161161</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 08:27:58 -0700</bug_when>
    <thetext>Comment on attachment 161161
Patch

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

&gt;&gt; Source/WebCore/css/CSSWrapShapes.cpp:127
&gt;&gt; +            result.appendLiteral(&quot;, &quot;);
&gt; 
&gt; I assume the compiler uniques these strings?  It or the linker must... for sanity&apos;s sake.

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707522</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 09:28:50 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 161161 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161161&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/MIMETypeRegistry.cpp:641
&gt; &gt; +    mimeTypeMap-&gt;add(ASCIILiteral(&quot;image/x-ms-bmp&quot;), ASCIILiteral(&quot;image/bmp&quot;)));
&gt; 
&gt; I would have created an addLiterals(map, key, value) helper if I had writen this.

Yeah, the issue is that mimeTypeMap is a WTF template object and that sort of thing only makes sense for String.  We could make a subclass, but this seemed easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707524</commentid>
    <comment_count>6</comment_count>
      <attachid>161246</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 09:30:24 -0700</bug_when>
    <thetext>Created attachment 161246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707574</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-29 10:07:15 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 161161 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161161&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/MIMETypeRegistry.cpp:641
&gt; &gt; &gt; +    mimeTypeMap-&gt;add(ASCIILiteral(&quot;image/x-ms-bmp&quot;), ASCIILiteral(&quot;image/bmp&quot;)));
&gt; &gt; 
&gt; &gt; I would have created an addLiterals(map, key, value) helper if I had writen this.
&gt; 
&gt; Yeah, the issue is that mimeTypeMap is a WTF template object and that sort of thing only makes sense for String.  We could make a subclass, but this seemed easier.

I meant a static inline helper function. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707578</commentid>
    <comment_count>8</comment_count>
      <attachid>161246</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-29 10:08:08 -0700</bug_when>
    <thetext>Comment on attachment 161246
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707585</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 10:10:54 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (From update of attachment 161161 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161161&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/MIMETypeRegistry.cpp:641
&gt; &gt; &gt; &gt; +    mimeTypeMap-&gt;add(ASCIILiteral(&quot;image/x-ms-bmp&quot;), ASCIILiteral(&quot;image/bmp&quot;)));
&gt; &gt; &gt; 
&gt; &gt; &gt; I would have created an addLiterals(map, key, value) helper if I had writen this.
&gt; &gt; 
&gt; &gt; Yeah, the issue is that mimeTypeMap is a WTF template object and that sort of thing only makes sense for String.  We could make a subclass, but this seemed easier.
&gt; 
&gt; I meant a static inline helper function. :)

Ah...  Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707735</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-29 12:25:23 -0700</bug_when>
    <thetext>&gt; &gt;&gt; Source/WebCore/css/CSSWrapShapes.cpp:127
&gt; &gt;&gt; +            result.appendLiteral(&quot;, &quot;);
&gt; &gt; 
&gt; &gt; I assume the compiler uniques these strings?  It or the linker must... for sanity&apos;s sake.
&gt; 
&gt; Yes.

I can confirm this, I verified that a while ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707988</commentid>
    <comment_count>11</comment_count>
      <attachid>161246</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 16:04:03 -0700</bug_when>
    <thetext>Comment on attachment 161246
Patch

Clearing flags on attachment: 161246

Committed r127062: &lt;http://trac.webkit.org/changeset/127062&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707989</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 16:04:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161161</attachid>
            <date>2012-08-29 01:54:08 -0700</date>
            <delta_ts>2012-08-29 09:30:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95313-20120829015358.patch</filename>
            <type>text/plain</type>
            <size>45591</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljZmI5Zjg3N2U2ZGQ4
YWZlMTY1NjdmNmI5OTM3MWM0MTRhYjBmNC4uY2IzOGNlYmE4MWU0NDdjYjlhMjZlZjQ4ZjcwNzE0
NTVlZTdmZjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDkwIEBACiAyMDEyLTA4LTI5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgQ29udmVydCBtb3JlIHN0YXRp
YyBTdHJpbmdzIHRvIHVzZSBBU0NJSUxpdGVyYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjb252ZXJ0cyBhbm90aGVyIHN3YXRoIG9m
IHN0YXRpYyBzdHJpbmdzIHRvIHVzZSBBU0NJSUxpdGVyYWwKKyAgICAgICAgYXMgcmVjb21tZW5k
ZWQgYnkgaHR0cDovL3RyYWMud2Via2l0Lm9yZy93aWtpL0VmZmljaWVudFN0cmluZ3MuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU291cmNlOjpvcGVuS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU291cmNlOjplbmRlZEtleXdvcmQpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKE1lZGlhU291cmNlKToKKyAgICAgICAg
KiBNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3VzdG9tSGFuZGxlcnNTdGF0ZVN0cmluZyk6CisgICAgICAg
ICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOb3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y29udHJvbFR5cGVOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OnRpdGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjplbGVtZW50VHlwZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OmhlbHBUZXh0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0p
OgorICAgICAgICAoV2ViQ29yZTo6SlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZXZlbnRQYXJhbWV0ZXJOYW1lKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRF
dmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50UGFyYW1ldGVyTmFtZSk6
CisgICAgICAgICogY3NzL0NTU1dyYXBTaGFwZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
V3JhcFNoYXBlUmVjdGFuZ2xlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1dyYXBT
aGFwZUNpcmNsZTo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NXcmFwU2hhcGVFbGxp
cHNlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1dyYXBTaGFwZVBvbHlnb246OmNz
c1RleHQpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZUF1dGhvclN0eWxlU2hlZXQpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVh
ZHlTdGF0ZSk6CisgICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMpOgorICAgICAg
ICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFj
Y3VtdWxhdG9yOjphcHBlbmRTdHlsZU5vZGVPcGVuVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpzdHlsZU5vZGVDbG9zZVRhZyk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVNYXJrdXApOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0S2V5d29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjptaWRkbGVLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmVuZEtleXdvcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmVydGljYWxHcm93aW5nTGVmdEtleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmVydGljYWxHcm93aW5nUmlnaHRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
Q3VlOjpzZXR0aW5nTmFtZSk6CisgICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZWRpYUxvYWRl
ZEtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9h
ZGluZ0ZhaWxlZEtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnBsdWdpbkxvYWRlZEtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnBsdWdpbkxvYWRpbmdGYWlsZWRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNQbHVnaW5LZXkpOgorICAgICAgICAoV2ViQ29yZTo6
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNBdExlYXN0T25lUGx1Z2luS2V5KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFzc0tleSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmZhaWxLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZVZpc2liaWxp
dHlTdGF0ZVN0cmluZyk6CisgICAgICAgICogcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpwYXJzZSk6CisgICAg
ICAgICogcGxhdGZvcm0vS1VSTFdURlVSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjpz
dHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6ZGVmYXVsdE1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBl
QXNzb2NpYXRpb25NYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFR5cGVQYXJzZXI6OnBhcnNlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb3dubG9hZEJ1bmRsZTo6ZmlsZUV4dGVuc2lvbik6CisgICAgICAg
ICogc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdl
VHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRC
b29sZWFuQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorCisyMDEyLTA4LTI5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgSW1wcm92ZSBzdHJpbmcgZWZm
aWNpZW5jeSB1c2luZyBTdHJpbmdCdWlsZGVyIGFuZCBTdHJpbmdPcGVyYXRpb25zCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwNAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4
IGRhYzVkODYyNDQzMGQ4NTk2Mjc5Mjg0MGU1YmM2Nzg1YzUxMzU1ZjkuLjM0ZmExNWNhOThkNmEz
ZDliYWUzMDZkY2I2Mzc4ZTZjODE4NTdiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC01NSw2ICs1NSwyNCBAQCBNZWRp
YVNvdXJjZTo6TWVkaWFTb3VyY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAg
ICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBtX2FzeW5jRXZlbnRRdWV1ZS5nZXQoKSk7CiB9CiAKK2NvbnN0
IFN0cmluZyYgTWVkaWFTb3VyY2U6Om9wZW5LZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgb3BlbiwgKEFTQ0lJTGl0ZXJhbCgib3BlbiIpKSk7CisgICAg
cmV0dXJuIG9wZW47Cit9CisKK2NvbnN0IFN0cmluZyYgTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdv
cmQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjbG9zZWQsIChB
U0NJSUxpdGVyYWwoImNsb3NlZCIpKSk7CisgICAgcmV0dXJuIGNsb3NlZDsKK30KKworY29uc3Qg
U3RyaW5nJiBNZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgZW5kZWQsIChBU0NJSUxpdGVyYWwoImVuZGVkIikpKTsKKyAg
ICByZXR1cm4gZW5kZWQ7Cit9CisKIFNvdXJjZUJ1ZmZlckxpc3QqIE1lZGlhU291cmNlOjpzb3Vy
Y2VCdWZmZXJzKCkKIHsKICAgICByZXR1cm4gbV9zb3VyY2VCdWZmZXJzLmdldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4IGY3
NDgyNDY4NDdmZjNiYjMyMzIwNTQzY2Y1ZmM5OTQ3ZmI2ZDM1ZDcuLjhiZWRlMDM1Yzk3MWMxMjgz
ZmQ4ZDEwYzhmNzlmMzA3NjAzNDBlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmgKQEAgLTQ0LDIzICs0NCw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNv
dXJjZT4sIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBvcGVuS2V5d29yZCgpCi0g
ICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgb3BlbiwgKCJv
cGVuIikpOwotICAgICAgICByZXR1cm4gb3BlbjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgY29uc3Qg
U3RyaW5nJiBjbG9zZWRLZXl3b3JkKCkKLSAgICB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBjbG9zZWQsICgiY2xvc2VkIikpOwotICAgICAgICByZXR1cm4gY2xv
c2VkOwotICAgIH0KLQotICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGVuZGVkS2V5d29yZCgpCi0g
ICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZW5kZWQsICgi
ZW5kZWQiKSk7Ci0gICAgICAgIHJldHVybiBlbmRlZDsKLSAgICB9CisgICAgc3RhdGljIGNvbnN0
IFN0cmluZyYgb3BlbktleXdvcmQoKTsKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBjbG9zZWRL
ZXl3b3JkKCk7CisgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgZW5kZWRLZXl3b3JkKCk7CiAKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVu
dFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxz
L05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKaW5kZXggYjY4NzliZjBlN2ZkNjJlOTQ5OTM5OTcz
MmJmZDJhMmFlNGFkMDZkOS4uMGJjN2YxMmMyZDMxMzUzMzMwMGRmYmYwZDc5Yzg0ZTQ3MTFkZWIw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRp
bHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCkBAIC0xNDcs
OSArMTQ3LDkgQEAgdm9pZCBOYXZpZ2F0b3JDb250ZW50VXRpbHM6OnJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdAogI2lmIEVOQUJMRShDVVNUT01fU0NI
RU1FX0hBTkRMRVIpCiBzdGF0aWMgU3RyaW5nIGN1c3RvbUhhbmRsZXJzU3RhdGVTdHJpbmcoY29u
c3QgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlIHN0YXRl
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBuZXdIYW5kbGVyLCAo
Im5ldyIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcmVnaXN0ZXJl
ZEhhbmRsZXIsICgicmVnaXN0ZXJlZCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgZGVjbGluZWRIYW5kbGVyLCAoImRlY2xpbmVkIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBuZXdIYW5kbGVyLCAoQVNDSUlMaXRlcmFsKCJuZXciKSkp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCByZWdpc3RlcmVkSGFuZGxl
ciwgKEFTQ0lJTGl0ZXJhbCgicmVnaXN0ZXJlZCIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGRlY2xpbmVkSGFuZGxlciwgKEFTQ0lJTGl0ZXJhbCgiZGVjbGluZWQi
KSkpOwogCiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2UgTmF2aWdhdG9yQ29udGVudFV0
aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc05ldzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggOTI0OGUxYmJhOGU3
ZmUxMDcwNjZjMDliOWRiMTMyZGM0MWVkMDFmNC4uMzZhMWM4Y2JiZTYzOTcxYmQzMTI3MTU1YWEz
NGY0MzJkNTEwMzYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTI2Myw5ICsyNjMsMTAgQEAgY29uc3QgU3Ry
aW5nJiBOb3RpZmljYXRpb246OnBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKIAogY29uc3QgU3RyaW5nJiBOb3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcoTm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBlcm1pc3Npb24pCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGFsbG93ZWRQZXJtaXNzaW9uLCAoImdyYW50ZWQiKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlbmllZFBlcm1pc3Npb24s
ICgiZGVuaWVkIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWZh
dWx0UGVybWlzc2lvbiwgKCJkZWZhdWx0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBhbGxvd2VkUGVybWlzc2lvbiwgKEFTQ0lJTGl0ZXJhbCgiZ3JhbnRlZCIpKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlbmllZFBlcm1pc3Npb24s
IChBU0NJSUxpdGVyYWwoImRlbmllZCIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGRlZmF1bHRQZXJtaXNzaW9uLCAoQVNDSUlMaXRlcmFsKCJkZWZhdWx0IikpKTsK
KwogICAgIHN3aXRjaCAocGVybWlzc2lvbikgewogICAgIGNhc2UgTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uQWxsb3dlZDoKICAgICAgICAgcmV0dXJuIGFsbG93ZWRQZXJtaXNzaW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzLmNwcAppbmRleCA5Nzc4MzAxMzgzNGZjYWYzMThiNzdhZGExMGIyMzgx
NTMzZTE4ZTZjLi4zZDM4MGRmMWE1NjhlYjdhZTlkNGQ5ZTY5Zjk4ZmI3ZjY0NDg1ZTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzLmNwcApAQCAtODUsMjEgKzg1LDIxIEBAIE1lZGlhQ29udHJvbEVsZW1l
bnRUeXBlIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbnRyb2xUeXBlKCkgY29uc3QKIAog
U3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbnRyb2xUeXBlTmFtZSgpIGNvbnN0
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhRW50ZXJGdWxs
c2NyZWVuQnV0dG9uTmFtZSwgKCJFbnRlckZ1bGxzY3JlZW5CdXR0b24iKSk7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b25OYW1l
LCAoIkV4aXRGdWxsc2NyZWVuQnV0dG9uIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBtZWRpYU11dGVCdXR0b25OYW1lLCAoIk11dGVCdXR0b24iKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUGxheUJ1dHRvbk5hbWUsICgiUGxh
eUJ1dHRvbiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFT
ZWVrQmFja0J1dHRvbk5hbWUsICgiU2Vla0JhY2tCdXR0b24iKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2Vla0ZvcndhcmRCdXR0b25OYW1lLCAoIlNlZWtG
b3J3YXJkQnV0dG9uIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBt
ZWRpYVJld2luZEJ1dHRvbk5hbWUsICgiUmV3aW5kQnV0dG9uIikpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b25OYW1lLCAo
IlJldHVyblRvUmVhbHRpbWVCdXR0b24iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIG1lZGlhVW5NdXRlQnV0dG9uTmFtZSwgKCJVbk11dGVCdXR0b24iKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUGF1c2VCdXR0b25OYW1lLCAo
IlBhdXNlQnV0dG9uIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBt
ZWRpYVN0YXR1c0Rpc3BsYXlOYW1lLCAoIlN0YXR1c0Rpc3BsYXkiKSk7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhQ3VycmVudFRpbWVEaXNwbGF5LCAoIkN1cnJl
bnRUaW1lRGlzcGxheSIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
bWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheSwgKCJUaW1lUmVtYWluaW5nRGlzcGxheSIpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFTaG93Q2xvc2VkQ2FwdGlv
bnNCdXR0b25OYW1lLCAoIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b25O
YW1lLCAoIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgbWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25OYW1lLCAoQVNDSUlM
aXRlcmFsKCJFbnRlckZ1bGxzY3JlZW5CdXR0b24iKSkpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBtZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uTmFtZSwgKEFTQ0lJTGl0
ZXJhbCgiRXhpdEZ1bGxzY3JlZW5CdXR0b24iKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBtZWRpYU11dGVCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJNdXRlQnV0
dG9uIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFQbGF5
QnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUGxheUJ1dHRvbiIpKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2Vla0JhY2tCdXR0b25OYW1lLCAoQVNDSUlM
aXRlcmFsKCJTZWVrQmFja0J1dHRvbiIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIG1lZGlhU2Vla0ZvcndhcmRCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJTZWVr
Rm9yd2FyZEJ1dHRvbiIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IG1lZGlhUmV3aW5kQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUmV3aW5kQnV0dG9uIikpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhVW5NdXRlQnV0dG9u
TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiVW5NdXRlQnV0dG9uIikpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFQYXVzZUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwo
IlBhdXNlQnV0dG9uIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
bWVkaWFTdGF0dXNEaXNwbGF5TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU3RhdHVzRGlzcGxheSIpKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhQ3VycmVudFRpbWVE
aXNwbGF5LCAoQVNDSUlMaXRlcmFsKCJDdXJyZW50VGltZURpc3BsYXkiKSkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVRpbWVSZW1haW5pbmdEaXNwbGF5LCAo
QVNDSUlMaXRlcmFsKCJUaW1lUmVtYWluaW5nRGlzcGxheSIpKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uTmFtZSwg
KEFTQ0lJTGl0ZXJhbCgiU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uIikpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b25O
YW1lLCAoQVNDSUlMaXRlcmFsKCJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKSkpOwogCiAgICAg
c3dpdGNoIChjb250cm9sVHlwZSgpKSB7CiAgICAgY2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1
dHRvbjoKQEAgLTE0Miw3ICsxNDIsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bDo6Y29udHJvbFR5cGVOYW1lKCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2w6OnRpdGxlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgY29udHJvbHNQYW5lbCwgKCJDb250cm9sc1BhbmVsIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjb250cm9sc1BhbmVsLCAoQVNDSUlMaXRlcmFsKCJDb250
cm9sc1BhbmVsIikpKTsKIAogICAgIGlmIChjb250cm9sVHlwZSgpID09IE1lZGlhQ29udHJvbHNQ
YW5lbCkKICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmco
Y29udHJvbHNQYW5lbCk7CkBAIC0yMzcsOCArMjM3LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sc0NvbnRhaW5lcjo6Y29udHJvbGxpbmdWaWRlb0VsZW1lbnQoKSBjb25zdAogCiBj
b25zdCBTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmVsZW1lbnRU
eXBlTmFtZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IHZpZGVvRWxlbWVudCwgKCJWaWRlb0VsZW1lbnQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGF1ZGlvRWxlbWVudCwgKCJBdWRpb0VsZW1lbnQiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpZGVvRWxlbWVudCwgKEFTQ0lJTGl0ZXJh
bCgiVmlkZW9FbGVtZW50IikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgYXVkaW9FbGVtZW50LCAoQVNDSUlMaXRlcmFsKCJBdWRpb0VsZW1lbnQiKSkpOwogCiAgICAg
aWYgKGNvbnRyb2xsaW5nVmlkZW9FbGVtZW50KCkpCiAgICAgICAgIHJldHVybiB2aWRlb0VsZW1l
bnQ7CkBAIC0yNzMsNyArMjczLDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5l
Ojp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYVRp
bWVsaW5lOjpoZWxwVGV4dCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHNsaWRlciwgKCJTbGlkZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHNsaWRlciwgKEFTQ0lJTGl0ZXJhbCgiU2xpZGVyIikpKTsKICAgICByZXR1
cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KHNsaWRlcik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJv
bnRlbmRIb3N0Q3VzdG9tLmNwcAppbmRleCAzMzhmNGM0Nzk0MDEzYjY3M2VkZDU5Mzk3YmI3NzY5
MjI1NjdhMjBjLi4yOTc4ZGVhZjA0ZGM4YjYwZjQ4OGJjMTc4ZDI4NjdjMTdmMzUzMjllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9z
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwCkBAIC01NCwxOSArNTQsMTkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogSlNWYWx1ZSBKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0oRXhlY1N0YXRl
KiBleGVjU3RhdGUpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKCJtYWMiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJtYWMiKSkpOwogI2Vs
aWYgT1MoV0lORE9XUykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxh
dGZvcm0sICgid2luZG93cyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIndpbmRvd3MiKSkpOwogI2VsaWYgT1MoTElOVVgp
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoImxpbnV4
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFT
Q0lJTGl0ZXJhbCgibGludXgiKSkpOwogI2VsaWYgT1MoRlJFRUJTRCkKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sICgiZnJlZWJzZCIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoImZy
ZWVic2QiKSkpOwogI2VsaWYgT1MoT1BFTkJTRCkKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgcGxhdGZvcm0sICgib3BlbmJzZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIm9wZW5ic2QiKSkpOwog
I2VsaWYgT1MoU09MQVJJUykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
cGxhdGZvcm0sICgic29sYXJpcyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoInNvbGFyaXMiKSkpOwogI2Vsc2UKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sICgidW5rbm93biIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxp
dGVyYWwoInVua25vd24iKSkpOwogI2VuZGlmCiAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWNTdGF0
ZSwgcGxhdGZvcm0pOwogfQpAQCAtNzQsMTMgKzc0LDEzIEBAIEpTVmFsdWUgSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3Q6OnBsYXRmb3JtKEV4ZWNTdGF0ZSogZXhlY1N0YXRlKQogSlNWYWx1ZSBKU0lu
c3BlY3RvckZyb250ZW5kSG9zdDo6cG9ydChFeGVjU3RhdGUqIGV4ZWNTdGF0ZSkKIHsKICNpZiBQ
TEFURk9STShRVCkKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwg
KCJxdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwgKEFT
Q0lJTGl0ZXJhbCgicXQiKSkpOwogI2VsaWYgUExBVEZPUk0oR1RLKQotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAoImd0ayIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwgKEFTQ0lJTGl0ZXJhbCgiZ3RrIikpKTsKICNlbGlm
IFBMQVRGT1JNKFdYKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0
LCAoInd4IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAo
QVNDSUlMaXRlcmFsKCJ3eCIpKSk7CiAjZWxzZQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBwb3J0LCAoInVua25vd24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoInVua25vd24iKSkpOwogI2VuZGlmCiAg
ICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWNTdGF0ZSwgcG9ydCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDcyMTZiNmYz
NjczMTc1NmZhMWE0ZGIxOThjYTU5MDI4NTgxYTlmNGYuLmE3NjY1ZTE2ZTlmNjA1NTA0ZTE4Njg0
NThiY2M4OTQ3YzA5MTU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCkBAIC00Nyw4ICs0Nyw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIGNvbnN0IFN0cmluZyYgZXZlbnRQYXJhbWV0ZXJOYW1lKGJvb2wgaXNT
VkdFdmVudCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZXZlbnRT
dHJpbmcsICgiZXZlbnQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IGV2dFN0cmluZywgKCJldnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGV2ZW50U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJldmVudCIpKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGV2dFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiZXZ0Iikp
KTsKICAgICByZXR1cm4gaXNTVkdFdmVudCA/IGV2dFN0cmluZyA6IGV2ZW50U3RyaW5nOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3Rl
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIu
Y3BwCmluZGV4IDA4ZmEwZWE0ZjdjNzVhYjEzZWIwZTM2MjM2YjY2YWU1NjdhYTEzM2IuLmY0MmU1
ZmIwMDdjNzlmZjI4YzY1NWE3YmM4ZjMxYzNjODc0ZTk5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCkBAIC00NCw4ICs0NCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IFN0cmluZyYgZXZlbnRQYXJh
bWV0ZXJOYW1lKGJvb2wgaXNTVkdFdmVudCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgZXZlbnRTdHJpbmcsICgiZXZlbnQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIGV2dFN0cmluZywgKCJldnQiKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIGV2ZW50U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJldmVudCIp
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGV2dFN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgiZXZ0IikpKTsKICAgICByZXR1cm4gaXNTVkdFdmVudCA/IGV2dFN0cmluZyA6
IGV2ZW50U3RyaW5nOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTV3Jh
cFNoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTV3JhcFNoYXBlcy5jcHAKaW5kZXgg
MTZlY2M4MDIxMmJkM2UxOTAyNjNiOWNkNjA1ZjFiNTA1ZTAwYjJiMi4uNzc1MGYyZWY4ODdiNGQx
NTFiZTdhODdiMzhhNGZiZjZkMzIxNTBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1dyYXBTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NXcmFwU2hhcGVz
LmNwcApAQCAtMzksMzAgKzM5LDI4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIENT
U1dyYXBTaGFwZVJlY3RhbmdsZTo6Y3NzVGV4dCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHJlY3RhbmdsZVBhcmVuLCAoInJlY3RhbmdsZSgiKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGNvbW1hLCAoIiwgIikpOwotCiAg
ICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eSgzMik7
Ci0gICAgcmVzdWx0LmFwcGVuZChyZWN0YW5nbGVQYXJlbik7CisKKyAgICByZXN1bHQuYXBwZW5k
TGl0ZXJhbCgicmVjdGFuZ2xlKCIpOwogCiAgICAgcmVzdWx0LmFwcGVuZChtX3gtPmNzc1RleHQo
KSk7Ci0gICAgcmVzdWx0LmFwcGVuZChjb21tYSk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwo
IiwgIik7CiAKICAgICByZXN1bHQuYXBwZW5kKG1feS0+Y3NzVGV4dCgpKTsKLSAgICByZXN1bHQu
YXBwZW5kKGNvbW1hKTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKIAogICAgIHJl
c3VsdC5hcHBlbmQobV93aWR0aC0+Y3NzVGV4dCgpKTsKLSAgICByZXN1bHQuYXBwZW5kKGNvbW1h
KTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKIAogICAgIHJlc3VsdC5hcHBlbmQo
bV9oZWlnaHQtPmNzc1RleHQoKSk7CiAKICAgICBpZiAobV9yYWRpdXNYLmdldCgpKSB7Ci0gICAg
ICAgIHJlc3VsdC5hcHBlbmQoY29tbWEpOworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX3JhZGl1c1gtPmNzc1RleHQoKSk7CiAKICAg
ICAgICAgaWYgKG1fcmFkaXVzWS5nZXQoKSkgewotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChj
b21tYSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQobV9yYWRpdXNZLT5jc3NUZXh0KCkpOwogICAgICAgICB9CiAgICAg
fQpAQCAtNzQsMTggKzcyLDE2IEBAIFN0cmluZyBDU1NXcmFwU2hhcGVSZWN0YW5nbGU6OmNzc1Rl
eHQoKSBjb25zdAogCiBTdHJpbmcgQ1NTV3JhcFNoYXBlQ2lyY2xlOjpjc3NUZXh0KCkgY29uc3QK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY2lyY2xlUGFyZW4sICgi
Y2lyY2xlKCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY29tbWEs
ICgiLCAiKSk7Ci0KICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2
ZUNhcGFjaXR5KDMyKTsKLSAgICByZXN1bHQuYXBwZW5kKGNpcmNsZVBhcmVuKTsKKworICAgIHJl
c3VsdC5hcHBlbmRMaXRlcmFsKCJjaXJjbGUoIik7CiAKICAgICByZXN1bHQuYXBwZW5kKG1fY2Vu
dGVyWC0+Y3NzVGV4dCgpKTsKLSAgICByZXN1bHQuYXBwZW5kKGNvbW1hKTsKKyAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKIAogICAgIHJlc3VsdC5hcHBlbmQobV9jZW50ZXJZLT5jc3NU
ZXh0KCkpOwotICAgIHJlc3VsdC5hcHBlbmQoY29tbWEpOworICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIsICIpOwogCiAgICAgcmVzdWx0LmFwcGVuZChtX3JhZGl1cy0+Y3NzVGV4dCgpKTsKICAg
ICByZXN1bHQuYXBwZW5kKCcpJyk7CkBAIC05NSwyMSArOTEsMTggQEAgU3RyaW5nIENTU1dyYXBT
aGFwZUNpcmNsZTo6Y3NzVGV4dCgpIGNvbnN0CiAKIFN0cmluZyBDU1NXcmFwU2hhcGVFbGxpcHNl
Ojpjc3NUZXh0KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgZWxsaXBzZVBhcmVuLCAoImVsbGlwc2UoIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBjb21tYSwgKCIsICIpKTsKLQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0
OwogICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoMzIpOwotICAgIHJlc3VsdC5hcHBlbmQoZWxs
aXBzZVBhcmVuKTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiZWxsaXBzZSgiKTsKIAogICAg
IHJlc3VsdC5hcHBlbmQobV9jZW50ZXJYLT5jc3NUZXh0KCkpOwotICAgIHJlc3VsdC5hcHBlbmQo
Y29tbWEpOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIsICIpOwogCiAgICAgcmVzdWx0LmFw
cGVuZChtX2NlbnRlclktPmNzc1RleHQoKSk7Ci0gICAgcmVzdWx0LmFwcGVuZChjb21tYSk7Cisg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiwgIik7CiAKICAgICByZXN1bHQuYXBwZW5kKG1fcmFk
aXVzWC0+Y3NzVGV4dCgpKTsKLSAgICByZXN1bHQuYXBwZW5kKGNvbW1hKTsKKyAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKIAogICAgIHJlc3VsdC5hcHBlbmQobV9yYWRpdXNZLT5jc3NU
ZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKQEAgLTExOSwyNSArMTEyLDIxIEBAIFN0
cmluZyBDU1NXcmFwU2hhcGVFbGxpcHNlOjpjc3NUZXh0KCkgY29uc3QKIAogU3RyaW5nIENTU1dy
YXBTaGFwZVBvbHlnb246OmNzc1RleHQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBwb2x5Z29uUGFyZW5FdmVuT2RkLCAoInBvbHlnb24oZXZlbm9kZCwg
IikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb2x5Z29uUGFyZW5O
b25aZXJvLCAoInBvbHlnb24obm9uemVybywgIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBjb21tYSwgKCIsICIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgc3BhY2UsICgiICIpKTsKLQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0Owog
ICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoMzIpOworCiAgICAgaWYgKG1fd2luZFJ1bGUgPT0g
UlVMRV9FVkVOT0REKQotICAgICAgICByZXN1bHQuYXBwZW5kKHBvbHlnb25QYXJlbkV2ZW5PZGQp
OworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgicG9seWdvbihldmVub2RkLCAiKTsKICAg
ICBlbHNlCi0gICAgICAgIHJlc3VsdC5hcHBlbmQocG9seWdvblBhcmVuTm9uWmVybyk7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJwb2x5Z29uKG5vbnplcm8sICIpOwogCiAgICAgQVNT
RVJUKCEobV92YWx1ZXMuc2l6ZSgpICUgMikpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fdmFsdWVzLnNpemUoKTsgaSArPSAyKSB7CiAgICAgICAgIGlmIChpKQotICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZChjb21tYSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJh
bCgiLCAiKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX3ZhbHVlcy5hdChpKS0+Y3NzVGV4dCgp
KTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChzcGFjZSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
JyAnKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX3ZhbHVlcy5hdChpICsgMSktPmNzc1RleHQo
KSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENv
bnRlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCmlu
ZGV4IDNlYWEwZGEzNjkxMjBjZmYxMGJiOWNiY2U1M2I1YTc0Y2FkMmFmYWYuLmY4ZDYzMjE3NWQ5
ZGM3YTFiNGE5MWQ5MzNiM2I3ZjM4ZTYzZWFkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwCkBAIC0yODgsMTEgKzI4OCwxMCBAQCB2b2lkIFN0eWxlU2hlZXRD
b250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQq
IGNhY2hlZAogICAgIH0KICAgICBpZiAobV9wYXJzZXJDb250ZXh0Lm5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzICYmIGlzU3RyaWN0UGFyc2VyTW9kZShtX3BhcnNlckNvbnRleHQubW9kZSkpIHsKICAg
ICAgICAgLy8gV29yayBhcm91bmQgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yODM1MD4uCi0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBz
bGFzaEtIVE1MRml4ZXNEb3RDc3MsICgiL0tIVE1MRml4ZXMuY3NzIikpOwotICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hl
ZXQsICgiLyogS0hUTUwgZml4IHN0eWxlc2hlZXQgKi9cbi8qIHdvcmsgYXJvdW5kIHRoZSBob3Jp
em9udGFsIHNjcm9sbGJhcnMgKi9cbiNjb2x1bW4tY29udGVudCB7IG1hcmdpbi1sZWZ0OiAwOyB9
XG5cbiIpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlh
V2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LCAoQVNDSUlMaXRlcmFsKCIvKiBLSFRNTCBmaXggc3R5
bGVzaGVldCAqL1xuLyogd29yayBhcm91bmQgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFycyAqL1xu
I2NvbHVtbi1jb250ZW50IHsgbWFyZ2luLWxlZnQ6IDA7IH1cblxuIikpKTsKICAgICAgICAgLy8g
VGhlcmUgYXJlIHR3byB2YXJpYW50cyBvZiBLSFRNTEZpeGVzLmNzcy4gT25lIGlzIGVxdWFsIHRv
IG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LAogICAgICAgICAvLyB3aGlsZSB0aGUgb3Ro
ZXIgbGFja3MgdGhlIHNlY29uZCB0cmFpbGluZyBuZXdsaW5lLgotICAgICAgICBpZiAoYmFzZVVS
TCgpLnN0cmluZygpLmVuZHNXaXRoKHNsYXNoS0hUTUxGaXhlc0RvdENzcykgJiYgIXNoZWV0VGV4
dC5pc051bGwoKSAmJiBtZWRpYVdpa2lLSFRNTEZpeGVzU3R5bGVTaGVldC5zdGFydHNXaXRoKHNo
ZWV0VGV4dCkKKyAgICAgICAgaWYgKGJhc2VVUkwoKS5zdHJpbmcoKS5lbmRzV2l0aCgiL0tIVE1M
Rml4ZXMuY3NzIikgJiYgIXNoZWV0VGV4dC5pc051bGwoKSAmJiBtZWRpYVdpa2lLSFRNTEZpeGVz
U3R5bGVTaGVldC5zdGFydHNXaXRoKHNoZWV0VGV4dCkKICAgICAgICAgICAgICYmIHNoZWV0VGV4
dC5sZW5ndGgoKSA+PSBtZWRpYVdpa2lLSFRNTEZpeGVzU3R5bGVTaGVldC5sZW5ndGgoKSAtIDEp
IHsKICAgICAgICAgICAgIGNsZWFyUnVsZXMoKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGJlYjYzNTk4YmQzN2Q0YWRhYWYyOTUyNWIxY2VkMTAyNGVl
MTUzYTUuLjA5MGZjNzQzYWQxOWJhYzc4MTgwM2ZiZGY5MGY5NzkzZTFjMWVmNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMTE5Niw5ICsxMTk2LDkgQEAgUGFzc1JlZlB0cjxFbGVtZW50
PiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudE5TKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBj
b25zdAogCiBTdHJpbmcgRG9jdW1lbnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsb2FkaW5nLCAoImxvYWRpbmciKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGludGVyYWN0aXZlLCAoImludGVyYWN0
aXZlIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjb21wbGV0ZSwg
KCJjb21wbGV0ZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbG9h
ZGluZywgKEFTQ0lJTGl0ZXJhbCgibG9hZGluZyIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGludGVyYWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJpbnRlcmFjdGl2ZSIp
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGNvbXBsZXRlLCAoQVND
SUlMaXRlcmFsKCJjb21wbGV0ZSIpKSk7CiAKICAgICBzd2l0Y2ggKG1fcmVhZHlTdGF0ZSkgewog
ICAgIGNhc2UgTG9hZGluZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVs
YXRvci5jcHAKaW5kZXggMmRmMTE0YzMxNjM4MmI0YzE2YjJmY2VjNjM1NTA1ZDc1ZTJlMzA4MS4u
N2RmMDM4YWJjOTVlMTA2NWMzOTc1ZDFmZTIwYzcyYTcxMzBkZGYyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTQ3LDExICs0NywxMSBAQCB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiB2b2lkIGFwcGVuZENoYXJhY3RlcnNSZXBsYWNp
bmdFbnRpdGllcyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFVDaGFyKiBjb250ZW50LCBz
aXplX3QgbGVuZ3RoLCBFbnRpdHlNYXNrIGVudGl0eU1hc2spCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIGFtcFJlZmVyZW5jZSwgKCImYW1wOyIpKTsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbHRSZWZlcmVuY2UsICgiJmx0OyIpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZ3RSZWZlcmVuY2UsICgiJmd0OyIp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcXVvdFJlZmVyZW5jZSwg
KCImcXVvdDsiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG5ic3BS
ZWZlcmVuY2UsICgiJm5ic3A7IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBhbXBSZWZlcmVuY2UsIChBU0NJSUxpdGVyYWwoIiZhbXA7IikpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbHRSZWZlcmVuY2UsIChBU0NJSUxpdGVyYWwoIiZs
dDsiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBndFJlZmVyZW5j
ZSwgKEFTQ0lJTGl0ZXJhbCgiJmd0OyIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHF1b3RSZWZlcmVuY2UsIChBU0NJSUxpdGVyYWwoIiZxdW90OyIpKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG5ic3BSZWZlcmVuY2UsIChBU0NJSUxp
dGVyYWwoIiZuYnNwOyIpKSk7CiAKICAgICBzdGF0aWMgY29uc3QgRW50aXR5RGVzY3JpcHRpb24g
ZW50aXR5TWFwc1tdID0gewogICAgICAgICB7ICcmJywgYW1wUmVmZXJlbmNlLCBFbnRpdHlBbXAg
fSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCA5YWYxODgzZjc3NDNkNWMzMDJkMjJi
Y2M1MTRjNTVjMThkMTI3MWE0Li5mYjdjYjhiN2I3YjVkZTVjMWE1NzI1Mzc5MWE5NTBhNWFiY2Ex
MTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0xOTEsOSArMTkxLDEwIEBAIHZv
aWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFN0eWxlTm9kZU9wZW5UYWcoU3RyaW5n
QnVpbGRlciYgb3V0LCBTdHlsZVByCiB7CiAgICAgLy8gd3JhcHBpbmdTdHlsZUZvclNlcmlhbGl6
YXRpb24gc2hvdWxkIGhhdmUgcmVtb3ZlZCAtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZm
ZWN0CiAgICAgQVNTRVJUKHByb3BlcnR5TWlzc2luZ09yRXF1YWxUb05vbmUoc3R5bGUsIENTU1By
b3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QpKTsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2U3R5bGUsICgiPGRpdiBzdHlsZT1cIiIpKTsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3R5bGVTcGFuT3BlbiwgKCI8c3BhbiBz
dHlsZT1cIiIpKTsKLSAgICBvdXQuYXBwZW5kKGlzQmxvY2sgPyBkaXZTdHlsZSA6IHN0eWxlU3Bh
bk9wZW4pOworICAgIGlmIChpc0Jsb2NrKQorICAgICAgICBvdXQuYXBwZW5kTGl0ZXJhbCgiPGRp
diBzdHlsZT1cIiIpOworICAgIGVsc2UKKyAgICAgICAgb3V0LmFwcGVuZExpdGVyYWwoIjxzcGFu
IHN0eWxlPVwiIik7CiAgICAgYXBwZW5kQXR0cmlidXRlVmFsdWUob3V0LCBzdHlsZS0+YXNUZXh0
KCksIGRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKTsKICAgICBvdXQuYXBwZW5kKCdcIicpOwog
ICAgIG91dC5hcHBlbmQoJz4nKTsKQEAgLTIwMSw4ICsyMDIsOCBAQCB2b2lkIFN0eWxlZE1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRTdHlsZU5vZGVPcGVuVGFnKFN0cmluZ0J1aWxkZXImIG91dCwg
U3R5bGVQcgogCiBjb25zdCBTdHJpbmcgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OnN0eWxlTm9k
ZUNsb3NlVGFnKGJvb2wgaXNCbG9jaykKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgZGl2Q2xvc2UsICgiPC9kaXY+IikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBzdHlsZVNwYW5DbG9zZSwgKCI8L3NwYW4+IikpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkaXZDbG9zZSwgKEFTQ0lJTGl0ZXJhbCgiPC9kaXY+
IikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3R5bGVTcGFuQ2xv
c2UsIChBU0NJSUxpdGVyYWwoIjwvc3Bhbj4iKSkpOwogICAgIHJldHVybiBpc0Jsb2NrID8gZGl2
Q2xvc2UgOiBzdHlsZVNwYW5DbG9zZTsKIH0KIApAQCAtMzI4LDggKzMyOSw3IEBAIHZvaWQgU3R5
bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBF
bGVtZW50KiBlbGVtZW50CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW5ld0lubGluZVN0eWxl
LT5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBzdHlsZVByZWZpeCwgKCIgc3R5bGU9XCIiKSk7Ci0gICAgICAgICAgICBvdXQuYXBwZW5k
KHN0eWxlUHJlZml4KTsKKyAgICAgICAgICAgIG91dC5hcHBlbmRMaXRlcmFsKCIgc3R5bGU9XCIi
KTsKICAgICAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZVZhbHVlKG91dCwgbmV3SW5saW5lU3R5bGUt
PnN0eWxlKCktPmFzVGV4dCgpLCBkb2N1bWVudElzSFRNTCk7CiAgICAgICAgICAgICBvdXQuYXBw
ZW5kKCdcIicpOwogICAgICAgICB9CkBAIC01NDksNyArNTQ5LDcgQEAgc3RhdGljIE5vZGUqIGhp
Z2hlc3RBbmNlc3RvclRvV3JhcE1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIEVBbm5vdGF0ZUZv
ckludGVyY2gKIC8vIEZJWE1FOiBBdCBsZWFzdCwgYW5ub3RhdGlvbiBhbmQgc3R5bGUgaW5mbyBz
aG91bGQgcHJvYmFibHkgbm90IGJlIGluY2x1ZGVkIGluIHJhbmdlLm1hcmt1cFN0cmluZygpCiBT
dHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiByYW5nZSwgVmVjdG9yPE5vZGUqPiogbm9k
ZXMsIEVBbm5vdGF0ZUZvckludGVyY2hhbmdlIHNob3VsZEFubm90YXRlLCBib29sIGNvbnZlcnRC
bG9ja3NUb0lubGluZXMsIEVBYnNvbHV0ZVVSTHMgc2hvdWxkUmVzb2x2ZVVSTHMpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGludGVyY2hhbmdlTmV3bGluZVN0cmlu
ZywgKCI8YnIgY2xhc3M9XCIiIEFwcGxlSW50ZXJjaGFuZ2VOZXdsaW5lICJcIj4iKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGludGVyY2hhbmdlTmV3bGluZVN0cmlu
ZywgKEFTQ0lJTGl0ZXJhbCgiPGJyIGNsYXNzPVwiIiBBcHBsZUludGVyY2hhbmdlTmV3bGluZSAi
XCI+IikpKTsKIAogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybiAiIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCBlNzljZDFkZjliOGYyYmM2
NTBiYTRlMTdmYjAzZjIyYzQ4MWVlN2VhLi44ZmQxOTk2YjUxZGQ1ZTJkOTFmNDc3ZjA1Yjg4ZGU4
NzllMzM4Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
CkBAIC01NiwxOSArNTYsMTkgQEAgc3RhdGljIGNvbnN0IGludCBhdXRvU2l6ZSA9IDA7CiAKIHN0
YXRpYyBjb25zdCBTdHJpbmcmIHN0YXJ0S2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHN0YXJ0LCAoInN0YXJ0IikpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgU3RyaW5nLCBzdGFydCwgKEFTQ0lJTGl0ZXJhbCgic3RhcnQiKSkpOwogICAg
IHJldHVybiBzdGFydDsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgbWlkZGxlS2V5d29yZCgp
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1pZGRsZSwgKCJtaWRk
bGUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1pZGRsZSwgKEFT
Q0lJTGl0ZXJhbCgibWlkZGxlIikpKTsKICAgICByZXR1cm4gbWlkZGxlOwogfQogCiBzdGF0aWMg
Y29uc3QgU3RyaW5nJiBlbmRLZXl3b3JkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgZW5kLCAoImVuZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgZW5kLCAoQVNDSUlMaXRlcmFsKCJlbmQiKSkpOwogICAgIHJldHVybiBlbmQ7CiB9
CiAKQEAgLTc5LDEzICs3OSwxMyBAQCBzdGF0aWMgY29uc3QgU3RyaW5nJiBob3Jpem9udGFsS2V5
d29yZCgpCiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHZlcnRpY2FsR3Jvd2luZ0xlZnRLZXl3b3Jk
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxybCwg
KCJybCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxy
bCwgKEFTQ0lJTGl0ZXJhbCgicmwiKSkpOwogICAgIHJldHVybiB2ZXJ0aWNhbHJsOwogfQogCiBz
dGF0aWMgY29uc3QgU3RyaW5nJiB2ZXJ0aWNhbEdyb3dpbmdSaWdodEtleXdvcmQoKQogewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2ZXJ0aWNhbGxyLCAoImxyIikpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2ZXJ0aWNhbGxyLCAoQVNDSUlM
aXRlcmFsKCJsciIpKSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsbHI7CiB9CiAKQEAgLTY1MCw3ICs2
NTAsNyBAQCB2b2lkIFRleHRUcmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUoZmxvYXQgbW92aWVU
aW1lKQogewogICAgIC8vIFRoZSBkaXNwbGF5IHRyZWUgbWF5IGNvbnRhaW4gV2ViVlRUIHRpbWVz
dGFtcCBvYmplY3RzIHJlcHJlc2VudGluZwogICAgIC8vIHRpbWVzdGFtcHMgKHByb2Nlc3Npbmcg
aW5zdHJ1Y3Rpb25zKSwgYWxvbmcgd2l0aCBkaXNwbGF5YWJsZSBub2Rlcy4KLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFnLCAoInRpbWVzdGFtcCIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1wVGFnLCAoQVND
SUlMaXRlcmFsKCJ0aW1lc3RhbXAiKSkpOwogCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIHRyYWNrUGFzdE5vZGVzU2hhZG93UHNldWRvSWQsICgiLXdlYmtpdC1t
ZWRpYS10ZXh0LXRyYWNrLXBhc3Qtbm9kZXMiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBBdG9taWNTdHJpbmcsIHRyYWNrRnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCwgKCItd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzIikpOwpAQCAtNzg2LDExICs3ODYsMTEg
QEAgc3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPiBUZXh0VHJhY2tDdWU6OmdldFBvc2l0aW9uQ29v
cmRpbmF0ZXMoKSBjb25zdAogCiBUZXh0VHJhY2tDdWU6OkN1ZVNldHRpbmcgVGV4dFRyYWNrQ3Vl
OjpzZXR0aW5nTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHZlcnRpY2FsS2V5d29yZCwgKCJ2ZXJ0aWNhbCIpKTsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbGluZUtleXdvcmQsICgibGluZSIpKTsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9zaXRpb25LZXl3b3JkLCAo
InBvc2l0aW9uIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzaXpl
S2V5d29yZCwgKCJzaXplIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCBhbGlnbktleXdvcmQsICgiYWxpZ24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHZlcnRpY2FsS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgidmVydGljYWwiKSkpOwor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsaW5lS2V5d29yZCwgKEFTQ0lJ
TGl0ZXJhbCgibGluZSIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IHBvc2l0aW9uS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgicG9zaXRpb24iKSkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzaXplS2V5d29yZCwgKEFTQ0lJTGl0ZXJhbCgi
c2l6ZSIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGFsaWduS2V5
d29yZCwgKEFTQ0lJTGl0ZXJhbCgiYWxpZ24iKSkpOwogCiAgICAgaWYgKG5hbWUgPT0gdmVydGlj
YWxLZXl3b3JkKQogICAgICAgICByZXR1cm4gVmVydGljYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKaW5kZXggZDcxYTYwNWE4MjNhY2ZmZjQ4ZjJk
OWU3NzM0MjBmMWIzMGZmMjkyNi4uY2E1NDU0N2IwMzdiMGQ3ZjRlNmQ3NjE2YzdiNmNiNmExOTg5
YmYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tl
eXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNw
cApAQCAtMzAsNTUgKzMwLDU1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgU3RyaW5n
JiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGVkS2V5KCkKIHsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoIm1lZGlhTG9hZGVkIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBrZXksIChBU0NJSUxpdGVyYWwoIm1lZGlh
TG9hZGVkIikpKTsKICAgICByZXR1cm4ga2V5OwogfQogCiBjb25zdCBTdHJpbmcmIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bWVkaWFMb2FkaW5nRmFpbGVkS2V5KCkKIHsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoIm1lZGlhRmFpbGVkTG9hZGluZyIpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoQVNDSUlMaXRlcmFsKCJt
ZWRpYUZhaWxlZExvYWRpbmciKSkpOwogICAgIHJldHVybiBrZXk7CiB9CiAKIGNvbnN0IFN0cmlu
ZyYgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkZWRLZXkoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBrZXksICgicGx1Z2luTG9hZGVkIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBrZXksIChBU0NJSUxpdGVyYWwoInBs
dWdpbkxvYWRlZCIpKSk7CiAgICAgcmV0dXJuIGtleTsKIH0KIAogY29uc3QgU3RyaW5nJiBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnBsdWdpbkxvYWRpbmdGYWlsZWRLZXkoKQogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBrZXksICgicGx1Z2luRmFpbGVkTG9hZGluZyIp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoQVNDSUlMaXRl
cmFsKCJwbHVnaW5GYWlsZWRMb2FkaW5nIikpKTsKICAgICByZXR1cm4ga2V5OwogfQogCiBjb25z
dCBTdHJpbmcmIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNvbnRhaW5zUGx1Z2luS2V5KCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoInBhZ2VDb250
YWluc1BsdWdpbiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5
LCAoQVNDSUlMaXRlcmFsKCJwYWdlQ29udGFpbnNQbHVnaW4iKSkpOwogICAgIHJldHVybiBrZXk7
CiB9CiAKIGNvbnN0IFN0cmluZyYgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNB
dExlYXN0T25lUGx1Z2luS2V5KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywga2V5LCAoInBhZ2VDb250YWluc0F0TGVhc3RPbmVQbHVnaW4iKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKEFTQ0lJTGl0ZXJhbCgicGFnZUNvbnRh
aW5zQXRMZWFzdE9uZVBsdWdpbiIpKSk7CiAgICAgcmV0dXJuIGtleTsKIH0KIAogY29uc3QgU3Ry
aW5nJiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhc3NLZXkoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBrZXksICgicGFzcyIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoQVNDSUlMaXRlcmFsKCJwYXNzIikpKTsKICAgICBy
ZXR1cm4ga2V5OwogfQogCiBjb25zdCBTdHJpbmcmIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZmFp
bEtleSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKCJm
YWlsIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBrZXksIChBU0NJ
SUxpdGVyYWwoImZhaWwiKSkpOwogICAgIHJldHVybiBrZXk7CiB9CiAKIGNvbnN0IFN0cmluZyYg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywga2V5LCAoIm5vb3AiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGtleSwgKEFTQ0lJTGl0ZXJhbCgibm9vcCIpKSk7CiAgICAgcmV0dXJu
IGtleTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0
eVN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAK
aW5kZXggZGUxMTk2ZTgzY2YwYWI5MTczMWVjYjI1MGEwMzQ4OTJlYjRjZmMwMS4uZDlmNzc0ZTc5
NWM3YzE5OGZmYTVlZGI0YTQ2YjA1YTU0MTdiNTNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCkBAIC0zNywxMCArMzcsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBTdHJpbmcgcGFnZVZpc2liaWxpdHlTdGF0ZVN0cmluZyhQYWdlVmlzaWJpbGl0
eVN0YXRlIHN0YXRlKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2
aXNpYmxlLCAoInZpc2libGUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGhpZGRlbiwgKCJoaWRkZW4iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHByZXJlbmRlciwgKCJwcmVyZW5kZXIiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHByZXZpZXcsICgicHJldmlldyIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgdmlzaWJsZSwgKEFTQ0lJTGl0ZXJhbCgidmlzaWJsZSIpKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGhpZGRlbiwgKEFTQ0lJTGl0
ZXJhbCgiaGlkZGVuIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
cHJlcmVuZGVyLCAoQVNDSUlMaXRlcmFsKCJwcmVyZW5kZXIiKSkpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwcmV2aWV3LCAoQVNDSUlMaXRlcmFsKCJwcmV2aWV3Iikp
KTsKIAogICAgIHN3aXRjaCAoc3RhdGUpIHsKICAgICBjYXNlIFBhZ2VWaXNpYmlsaXR5U3RhdGVW
aXNpYmxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBh
dHRlcm4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
CmluZGV4IDI3MjI4NGE1YTlhNjEzNzgyNGZlZmJiZmExYWUzMzMwM2NkODc5MmEuLjY3NmI2NTU3
Mzk4YmQ3MzNmZWIwZmUxMDUyOWI1MjBkMDhlYWM1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgYm9vbCBVc2Vy
Q29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNQYXR0ZXJucyhjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFZlY3RvcjxTdHJpbmcKIAogYm9vbCBVc2VyQ29udGVudFVSTFBhdHRlcm46OnBhcnNlKGNvbnN0
IFN0cmluZyYgcGF0dGVybikKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
Zywgc2NoZW1lU2VwYXJhdG9yLCAoIjovLyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgc2NoZW1lU2VwYXJhdG9yLCAoQVNDSUlMaXRlcmFsKCI6Ly8iKSkpOwogCiAg
ICAgc2l6ZV90IHNjaGVtZUVuZFBvcyA9IHBhdHRlcm4uZmluZChzY2hlbWVTZXBhcmF0b3IpOwog
ICAgIGlmIChzY2hlbWVFbmRQb3MgPT0gbm90Rm91bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9LVVJMV1RGVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tV
UkxXVEZVUkwuY3BwCmluZGV4IDYyMzQ0MTljYjZmNjgwOTZiMDVlOWJmMDlhNmZkN2QxZWZhMTk3
NzkuLmEzMGQ0ZThjMTQ4YTNjYzFiNmY0YmVhYzdiNzU3ZDg5MDYzMDg3N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tVUkxXVEZVUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0tVUkxXVEZVUkwuY3BwCkBAIC0xMTIsMTAgKzExMiw4IEBAIGJvb2wgS1VS
TDo6aXNWYWxpZCgpIGNvbnN0CiAKIGNvbnN0IFN0cmluZyAmS1VSTDo6c3RyaW5nKCkgY29uc3QK
IHsKLSAgICBpZiAoaXNOdWxsKCkpIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIG51bGxTdHJpbmcsICgpKTsKLSAgICAgICAgcmV0dXJuIG51bGxTdHJpbmc7Ci0g
ICAgfQorICAgIGlmIChpc051bGwoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAg
aWYgKGlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG1fdXJsSW1wbC0+bV9wYXJzZWRVUkwuc3Bl
YygpLnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5
cGVSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5
LmNwcAppbmRleCAyODljNjY5OWIwNWY0OWZiNzE3YzBjNDAzYzJiNTcxYmJjOWMyOGI4Li5hMTk4
ZTg1MDAzZGJlMmJmNmI1NzgzODY2MTFkOTZjMmI4NmIxMmY5IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtNjIzLDcgKzYyMyw3IEBAIEhhc2hT
ZXQ8U3RyaW5nPiYgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0VW5zdXBwb3J0ZWRUZXh0TUlNRVR5cGVz
KCkKIAogY29uc3QgU3RyaW5nJiBkZWZhdWx0TUlNRVR5cGUoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWZhdWx0TUlNRVR5cGUsICgiYXBwbGljYXRpb24vb2N0
ZXQtc3RyZWFtIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWZh
dWx0TUlNRVR5cGUsIChBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpKSk7
CiAgICAgcmV0dXJuIGRlZmF1bHRNSU1FVHlwZTsKIH0KIApAQCAtNjM3LDUwICs2MzcsNTEgQEAg
c3RhdGljIGNvbnN0IE1JTUVUeXBlQXNzb2NpYXRpb25NYXAmIG1pbWVUeXBlQXNzb2NpYXRpb25N
YXAoKQogICAgICAgICByZXR1cm4gKm1pbWVUeXBlTWFwOwogCiAgICAgbWltZVR5cGVNYXAgPSBu
ZXcgTUlNRVR5cGVBc3NvY2lhdGlvbk1hcDsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJpbWFnZS94
LW1zLWJtcCIsICJpbWFnZS9ibXAiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJpbWFnZS94LXdp
bmRvd3MtYm1wIiwgImltYWdlL2JtcCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImltYWdlL3gt
Ym1wIiwgImltYWdlL2JtcCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImltYWdlL3gtYml0bWFw
IiwgImltYWdlL2JtcCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImltYWdlL3gtbXMtYml0bWFw
IiwgImltYWdlL2JtcCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImltYWdlL2pwZyIsICJpbWFn
ZS9qcGVnIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiaW1hZ2UvcGpwZWciLCAiaW1hZ2UvanBl
ZyIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImltYWdlL3gtcG5nIiwgImltYWdlL3BuZyIpOwot
ICAgIG1pbWVUeXBlTWFwLT5hZGQoImltYWdlL3ZuZC5yaW0ucG5nIiwgImltYWdlL3BuZyIpOwot
ICAgIG1pbWVUeXBlTWFwLT5hZGQoImltYWdlL2ljbyIsICJpbWFnZS92bmQubWljcm9zb2Z0Lmlj
b24iKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJpbWFnZS9pY29uIiwgImltYWdlL3ZuZC5taWNy
b3NvZnQuaWNvbiIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoInRleHQvaWNvIiwgImltYWdlL3Zu
ZC5taWNyb3NvZnQuaWNvbiIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImFwcGxpY2F0aW9uL2lj
byIsICJpbWFnZS92bmQubWljcm9zb2Z0Lmljb24iKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJp
bWFnZS94LWljb24iLCAiaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uIik7Ci0gICAgbWltZVR5cGVN
YXAtPmFkZCgiYXVkaW8vdm5kLnFjZWxwIiwgImF1ZGlvL3FjZWxwIik7Ci0gICAgbWltZVR5cGVN
YXAtPmFkZCgiYXVkaW8vcWNwIiwgImF1ZGlvL3FjZWxwIik7Ci0gICAgbWltZVR5cGVNYXAtPmFk
ZCgiYXVkaW8vdm5kLnFjcCIsICJhdWRpby9xY2VscCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQo
ImF1ZGlvL3dhdiIsICJhdWRpby94LXdhdiIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlv
L21pZCIsICJhdWRpby9taWRpIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiYXVkaW8vc3AtbWlk
aSIsICJhdWRpby9taWRpIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiYXVkaW8veC1taWQiLCAi
YXVkaW8vbWlkaSIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3gtbWlkaSIsICJhdWRp
by9taWRpIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiYXVkaW8veC1tcGVnIiwgImF1ZGlvL21w
ZWciKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJhdWRpby9tcDMiLCAiYXVkaW8vbXBlZyIpOwot
ICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3gtbXAzIiwgImF1ZGlvL21wZWciKTsKLSAgICBt
aW1lVHlwZU1hcC0+YWRkKCJhdWRpby9tcGVnMyIsICJhdWRpby9tcGVnIik7Ci0gICAgbWltZVR5
cGVNYXAtPmFkZCgiYXVkaW8veC1tcGVnMyIsICJhdWRpby9tcGVnIik7Ci0gICAgbWltZVR5cGVN
YXAtPmFkZCgiYXVkaW8vbXBnMyIsICJhdWRpby9tcGVnIik7Ci0gICAgbWltZVR5cGVNYXAtPmFk
ZCgiYXVkaW8vbXBnIiwgImF1ZGlvL21wZWciKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJhdWRp
by94LW1wZyIsICJhdWRpby9tcGVnIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiYXVkaW8vbTRh
IiwgImF1ZGlvL21wNCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3gtbTRhIiwgImF1
ZGlvL21wNCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3gtbXA0IiwgImF1ZGlvL21w
NCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3gtYWFjIiwgImF1ZGlvL2FhYyIpOwot
ICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3gtYW1yIiwgImF1ZGlvL2FtciIpOwotICAgIG1p
bWVUeXBlTWFwLT5hZGQoImF1ZGlvL21wZWd1cmwiLCAiYXVkaW8veC1tcGVndXJsIik7Ci0gICAg
bWltZVR5cGVNYXAtPmFkZCgiYXVkaW8vZmxhYyIsICJhdWRpby94LWZsYWMiKTsKLSAgICBtaW1l
VHlwZU1hcC0+YWRkKCJ2aWRlby8zZ3AiLCAidmlkZW8vM2dwcCIpOwotICAgIG1pbWVUeXBlTWFw
LT5hZGQoInZpZGVvL2F2aSIsICJ2aWRlby94LW1zdmlkZW8iKTsKLSAgICBtaW1lVHlwZU1hcC0+
YWRkKCJ2aWRlby94LW00diIsICJ2aWRlby9tcDQiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJ2
aWRlby94LXF1aWNrdGltZSIsICJ2aWRlby9xdWlja3RpbWUiKTsKLSAgICBtaW1lVHlwZU1hcC0+
YWRkKCJhcHBsaWNhdGlvbi9qYXZhIiwgImFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZSIpOwotICAg
IG1pbWVUeXBlTWFwLT5hZGQoImFwcGxpY2F0aW9uL3gtamF2YS1hcmNoaXZlIiwgImFwcGxpY2F0
aW9uL2phdmEtYXJjaGl2ZSIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImFwcGxpY2F0aW9uL3gt
emlwLWNvbXByZXNzZWQiLCAiYXBwbGljYXRpb24vemlwIik7CisKKyAgICBtaW1lVHlwZU1hcC0+
YWRkKEFTQ0lJTGl0ZXJhbCgiaW1hZ2UveC1tcy1ibXAiKSwgQVNDSUlMaXRlcmFsKCJpbWFnZS9i
bXAiKSkpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJpbWFnZS94LXdpbmRv
d3MtYm1wIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvYm1wIikpOworICAgIG1pbWVUeXBlTWFwLT5h
ZGQoQVNDSUlMaXRlcmFsKCJpbWFnZS94LWJtcCIpLCBBU0NJSUxpdGVyYWwoImltYWdlL2JtcCIp
KTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiaW1hZ2UveC1iaXRtYXAiKSwg
QVNDSUlMaXRlcmFsKCJpbWFnZS9ibXAiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxp
dGVyYWwoImltYWdlL3gtbXMtYml0bWFwIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvYm1wIikpOwor
ICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJpbWFnZS9qcGciKSwgQVNDSUlMaXRl
cmFsKCJpbWFnZS9qcGVnIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJp
bWFnZS9wanBlZyIpLCBBU0NJSUxpdGVyYWwoImltYWdlL2pwZWciKSk7CisgICAgbWltZVR5cGVN
YXAtPmFkZChBU0NJSUxpdGVyYWwoImltYWdlL3gtcG5nIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2Uv
cG5nIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJpbWFnZS92bmQucmlt
LnBuZyIpLCBBU0NJSUxpdGVyYWwoImltYWdlL3BuZyIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRk
KEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvaWNvIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2Uvdm5kLm1pY3Jv
c29mdC5pY29uIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJpbWFnZS9p
Y29uIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uIikpOworICAgIG1p
bWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJ0ZXh0L2ljbyIpLCBBU0NJSUxpdGVyYWwoImlt
YWdlL3ZuZC5taWNyb3NvZnQuaWNvbiIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0
ZXJhbCgiYXBwbGljYXRpb24vaWNvIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2Uvdm5kLm1pY3Jvc29m
dC5pY29uIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJpbWFnZS94LWlj
b24iKSwgQVNDSUlMaXRlcmFsKCJpbWFnZS92bmQubWljcm9zb2Z0Lmljb24iKSk7CisgICAgbWlt
ZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL3ZuZC5xY2VscCIpLCBBU0NJSUxpdGVy
YWwoImF1ZGlvL3FjZWxwIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJh
dWRpby9xY3AiKSwgQVNDSUlMaXRlcmFsKCJhdWRpby9xY2VscCIpKTsKKyAgICBtaW1lVHlwZU1h
cC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8vdm5kLnFjcCIpLCBBU0NJSUxpdGVyYWwoImF1ZGlv
L3FjZWxwIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpby93YXYi
KSwgQVNDSUlMaXRlcmFsKCJhdWRpby94LXdhdiIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFT
Q0lJTGl0ZXJhbCgiYXVkaW8vbWlkIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbWlkaSIpKTsKKyAg
ICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8vc3AtbWlkaSIpLCBBU0NJSUxp
dGVyYWwoImF1ZGlvL21pZGkiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwo
ImF1ZGlvL3gtbWlkIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbWlkaSIpKTsKKyAgICBtaW1lVHlw
ZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8veC1taWRpIiksIEFTQ0lJTGl0ZXJhbCgiYXVk
aW8vbWlkaSIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8veC1t
cGVnIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZyIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRk
KEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXAzIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZyIpKTsK
KyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8veC1tcDMiKSwgQVNDSUlM
aXRlcmFsKCJhdWRpby9tcGVnIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFs
KCJhdWRpby9tcGVnMyIpLCBBU0NJSUxpdGVyYWwoImF1ZGlvL21wZWciKSk7CisgICAgbWltZVR5
cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL3gtbXBlZzMiKSwgQVNDSUlMaXRlcmFsKCJh
dWRpby9tcGVnIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpby9t
cGczIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZyIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRk
KEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBnIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZyIpKTsK
KyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8veC1tcGciKSwgQVNDSUlM
aXRlcmFsKCJhdWRpby9tcGVnIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFs
KCJhdWRpby9tNGEiKSwgQVNDSUlMaXRlcmFsKCJhdWRpby9tcDQiKSk7CisgICAgbWltZVR5cGVN
YXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL3gtbTRhIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8v
bXA0IikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpby94LW1wNCIp
LCBBU0NJSUxpdGVyYWwoImF1ZGlvL21wNCIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJ
TGl0ZXJhbCgiYXVkaW8veC1hYWMiKSwgQVNDSUlMaXRlcmFsKCJhdWRpby9hYWMiKSk7CisgICAg
bWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL3gtYW1yIiksIEFTQ0lJTGl0ZXJh
bCgiYXVkaW8vYW1yIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRp
by9tcGVndXJsIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8veC1tcGVndXJsIikpOworICAgIG1pbWVU
eXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpby9mbGFjIiksIEFTQ0lJTGl0ZXJhbCgiYXVk
aW8veC1mbGFjIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJ2aWRlby8z
Z3AiKSwgQVNDSUlMaXRlcmFsKCJ2aWRlby8zZ3BwIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQo
QVNDSUlMaXRlcmFsKCJ2aWRlby9hdmkiKSwgQVNDSUlMaXRlcmFsKCJ2aWRlby94LW1zdmlkZW8i
KSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoInZpZGVvL3gtbTR2IiksIEFT
Q0lJTGl0ZXJhbCgidmlkZW8vbXA0IikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRl
cmFsKCJ2aWRlby94LXF1aWNrdGltZSIpLCBBU0NJSUxpdGVyYWwoInZpZGVvL3F1aWNrdGltZSIp
KTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YSIp
LCBBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZSIpKTsKKyAgICBtaW1lVHlw
ZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24veC1qYXZhLWFyY2hpdmUiKSwgQVND
SUlMaXRlcmFsKCJhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUiKSk7CisgICAgbWltZVR5cGVNYXAt
PmFkZChBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWQiKSwgQVNDSUlM
aXRlcmFsKCJhcHBsaWNhdGlvbi96aXAiKSk7CiAKICAgICByZXR1cm4gKm1pbWVUeXBlTWFwOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250ZW50VHlw
ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBl
UGFyc2VyLmNwcAppbmRleCA2NDc4ZDliYTdiMDBkNDQzNDU1ZWExYmYxM2VlYTM3ZGI4YTViZDM2
Li5kZGE0NTg4OTk5MTBlMTNiMmNiNmJjNTM2MmVkNTVlNDQ2MDhhODkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBlUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBlUGFyc2VyLmNwcApA
QCAtMTU3LDcgKzE1Nyw3IEBAIHNpemVfdCBDb250ZW50VHlwZVBhcnNlcjo6cGFyYW1ldGVyQ291
bnQoKSBjb25zdAogCiB2b2lkIENvbnRlbnRUeXBlUGFyc2VyOjpwYXJzZSgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGNvbnRlbnRUeXBlUGFyYW1ldGVyTmFtZSwg
KCJDb250ZW50LVR5cGUiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IGNvbnRlbnRUeXBlUGFyYW1ldGVyTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiQ29udGVudC1UeXBlIikp
KTsKIAogICAgIGlmICghbV9jb250ZW50VHlwZS5zdGFydHNXaXRoKGNvbnRlbnRUeXBlUGFyYW1l
dGVyTmFtZSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJJbnZhbGlkIENvbnRlbnQtVHlwZSBzdHJp
bmcgJyVzJyIsIG1fY29udGVudFR5cGUuYXNjaWkoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vRG93bmxvYWRCdW5kbGVXaW4uY3Bw
CmluZGV4IGYwZjMwMjdiODU4MTljYTgyNmM1NjZkZGQ4YmUxYmJhMDI1YTdkOWQuLjJiMzYxOTVh
ZDQ0MWU2ZDE2YTAxOGJlYzBiZTdlNjI4OWNjOWQwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Rvd25sb2FkQnVuZGxlV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHAKQEAg
LTQ0LDcgKzQ0LDcgQEAgc3RhdGljIFVJbnQzMiBtYWdpY051bWJlcigpCiAKIGNvbnN0IFN0cmlu
ZyYgZmlsZUV4dGVuc2lvbigpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGV4dGVuc2lvbiwgKCIuZG93bmxvYWQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGV4dGVuc2lvbiwgKEFTQ0lJTGl0ZXJhbCgiLmRvd25sb2FkIikpKTsKICAg
ICByZXR1cm4gZXh0ZW5zaW9uOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRy
YWNrZXIuY3BwCmluZGV4IDBiYjM0YjBjOGZiMzQ5YTk3MTFmZTc4ZWQ3YTJjZTQ1OTNhMzQzZGUu
LjQyYTUzNmY2OTNkYWVhYzAwNzIyOWFkMmUwZThhMDkwMmQ5MjY2ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCkBAIC0yNDIsOCArMjQyLDggQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UoKQogICAgIEFT
U0VSVChtX2lzQWN0aXZlKTsKIAogICAgIG1fZGF0YWJhc2VHdWFyZC5sb2NrKCk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGZpbGVNYXRjaFBhdHRlcm4sICgiKi5sb2Nh
bHN0b3JhZ2UiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGZpbGVF
eHQsICgiLmxvY2Fsc3RvcmFnZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgZmlsZU1hdGNoUGF0dGVybiwgKEFTQ0lJTGl0ZXJhbCgiKi5sb2NhbHN0b3JhZ2UiKSkp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBmaWxlRXh0LCAoQVNDSUlM
aXRlcmFsKCIubG9jYWxzdG9yYWdlIikpKTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZmls
ZUV4dExlbmd0aCA9IGZpbGVFeHQubGVuZ3RoKCk7CiAgICAgbV9kYXRhYmFzZUd1YXJkLnVubG9j
aygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwCmluZGV4IGY5
ODU4YmU1YjFlMjgwMTAzNDUyODAxNTZhODRhY2NlODg2NjUxOTkuLjczZjcyZTZhMmFjYjc5Njk4
ZjEwODBkYzhiOTU3M2ZmZTc0NWM3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEJvb2xlYW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEJvb2xlYW4uY3BwCkBAIC0zMSwxNiArMzEsMTAgQEAgU1ZHQW5pbWF0ZWRCb29sZWFuQW5pbWF0
b3I6OlNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqIGFuaW0K
IHsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzVHJ1ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdHJ1ZVN0cmlu
ZywgKCJ0cnVlIikpOwotICAgIHJldHVybiBzdHJpbmcgPT0gdHJ1ZVN0cmluZzsKLX0KLQogUGFz
c093blB0cjxTVkdBbmltYXRlZFR5cGU+IFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpjb25z
dHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIE93blB0cjxTVkdB
bmltYXRlZFR5cGU+IGFuaW10ZWRUeXBlID0gU1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGVCb29sZWFu
KG5ldyBib29sKTsKLSAgICBhbmltdGVkVHlwZS0+Ym9vbGVhbigpID0gaXNUcnVlU3RyaW5nKHN0
cmluZyk7CisgICAgYW5pbXRlZFR5cGUtPmJvb2xlYW4oKSA9IChzdHJpbmcgPT0gInRydWUiKTsg
Ly8gd2F0PwogICAgIHJldHVybiBhbmltdGVkVHlwZS5yZWxlYXNlKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161246</attachid>
            <date>2012-08-29 09:30:24 -0700</date>
            <delta_ts>2012-08-29 16:04:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95313-20120829093014.patch</filename>
            <type>text/plain</type>
            <size>46069</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2OTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljZmI5Zjg3N2U2ZGQ4
YWZlMTY1NjdmNmI5OTM3MWM0MTRhYjBmNC4uY2IzOGNlYmE4MWU0NDdjYjlhMjZlZjQ4ZjcwNzE0
NTVlZTdmZjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDkwIEBACiAyMDEyLTA4LTI5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgQ29udmVydCBtb3JlIHN0YXRp
YyBTdHJpbmdzIHRvIHVzZSBBU0NJSUxpdGVyYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjb252ZXJ0cyBhbm90aGVyIHN3YXRoIG9m
IHN0YXRpYyBzdHJpbmdzIHRvIHVzZSBBU0NJSUxpdGVyYWwKKyAgICAgICAgYXMgcmVjb21tZW5k
ZWQgYnkgaHR0cDovL3RyYWMud2Via2l0Lm9yZy93aWtpL0VmZmljaWVudFN0cmluZ3MuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU291cmNlOjpvcGVuS2V5d29yZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpjbG9zZWRLZXl3b3JkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU291cmNlOjplbmRlZEtleXdvcmQpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKE1lZGlhU291cmNlKToKKyAgICAgICAg
KiBNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y3VzdG9tSGFuZGxlcnNTdGF0ZVN0cmluZyk6CisgICAgICAg
ICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOb3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbDo6Y29udHJvbFR5cGVOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OnRpdGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyOjplbGVtZW50VHlwZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lZGlhVGltZWxpbmU6OmhlbHBUZXh0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0p
OgorICAgICAgICAoV2ViQ29yZTo6SlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnBvcnQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZXZlbnRQYXJhbWV0ZXJOYW1lKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRF
dmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50UGFyYW1ldGVyTmFtZSk6
CisgICAgICAgICogY3NzL0NTU1dyYXBTaGFwZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
V3JhcFNoYXBlUmVjdGFuZ2xlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1dyYXBT
aGFwZUNpcmNsZTo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NXcmFwU2hhcGVFbGxp
cHNlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1dyYXBTaGFwZVBvbHlnb246OmNz
c1RleHQpOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpwYXJzZUF1dGhvclN0eWxlU2hlZXQpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVh
ZHlTdGF0ZSk6CisgICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMpOgorICAgICAg
ICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFj
Y3VtdWxhdG9yOjphcHBlbmRTdHlsZU5vZGVPcGVuVGFnKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpzdHlsZU5vZGVDbG9zZVRhZyk6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZWRNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVNYXJrdXApOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0S2V5d29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjptaWRkbGVLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OmVuZEtleXdvcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6dmVydGljYWxHcm93aW5nTGVmdEtleXdvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6dmVydGljYWxHcm93aW5nUmlnaHRLZXl3b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
Q3VlOjpzZXR0aW5nTmFtZSk6CisgICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZWRpYUxvYWRl
ZEtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9h
ZGluZ0ZhaWxlZEtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnBsdWdpbkxvYWRlZEtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnBsdWdpbkxvYWRpbmdGYWlsZWRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNQbHVnaW5LZXkpOgorICAgICAgICAoV2ViQ29yZTo6
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ29udGFpbnNBdExlYXN0T25lUGx1Z2luS2V5KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFzc0tleSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmZhaWxLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub29wS2V5KToKKyAgICAgICAgKiBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZVZpc2liaWxp
dHlTdGF0ZVN0cmluZyk6CisgICAgICAgICogcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpwYXJzZSk6CisgICAg
ICAgICogcGxhdGZvcm0vS1VSTFdURlVSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLVVJMOjpz
dHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6ZGVmYXVsdE1JTUVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBl
QXNzb2NpYXRpb25NYXApOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFR5cGVQYXJzZXI6OnBhcnNlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1bmRsZVdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb3dubG9hZEJ1bmRsZTo6ZmlsZUV4dGVuc2lvbik6CisgICAgICAg
ICogc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdl
VHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UpOgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlZEJvb2xlYW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRC
b29sZWFuQW5pbWF0b3I6OmNvbnN0cnVjdEZyb21TdHJpbmcpOgorCisyMDEyLTA4LTI5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgSW1wcm92ZSBzdHJpbmcgZWZm
aWNpZW5jeSB1c2luZyBTdHJpbmdCdWlsZGVyIGFuZCBTdHJpbmdPcGVyYXRpb25zCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTMwNAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4
IGRhYzVkODYyNDQzMGQ4NTk2Mjc5Mjg0MGU1YmM2Nzg1YzUxMzU1ZjkuLjM0ZmExNWNhOThkNmEz
ZDliYWUzMDZkY2I2Mzc4ZTZjODE4NTdiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC01NSw2ICs1NSwyNCBAQCBNZWRp
YVNvdXJjZTo6TWVkaWFTb3VyY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAg
ICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMgPSBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBtX2FzeW5jRXZlbnRRdWV1ZS5nZXQoKSk7CiB9CiAKK2NvbnN0
IFN0cmluZyYgTWVkaWFTb3VyY2U6Om9wZW5LZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgb3BlbiwgKEFTQ0lJTGl0ZXJhbCgib3BlbiIpKSk7CisgICAg
cmV0dXJuIG9wZW47Cit9CisKK2NvbnN0IFN0cmluZyYgTWVkaWFTb3VyY2U6OmNsb3NlZEtleXdv
cmQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjbG9zZWQsIChB
U0NJSUxpdGVyYWwoImNsb3NlZCIpKSk7CisgICAgcmV0dXJuIGNsb3NlZDsKK30KKworY29uc3Qg
U3RyaW5nJiBNZWRpYVNvdXJjZTo6ZW5kZWRLZXl3b3JkKCkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgZW5kZWQsIChBU0NJSUxpdGVyYWwoImVuZGVkIikpKTsKKyAg
ICByZXR1cm4gZW5kZWQ7Cit9CisKIFNvdXJjZUJ1ZmZlckxpc3QqIE1lZGlhU291cmNlOjpzb3Vy
Y2VCdWZmZXJzKCkKIHsKICAgICByZXR1cm4gbV9zb3VyY2VCdWZmZXJzLmdldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5oCmluZGV4IGY3
NDgyNDY4NDdmZjNiYjMyMzIwNTQzY2Y1ZmM5OTQ3ZmI2ZDM1ZDcuLjhiZWRlMDM1Yzk3MWMxMjgz
ZmQ4ZDEwYzhmNzlmMzA3NjAzNDBlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmgKQEAgLTQ0LDIzICs0NCw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVNv
dXJjZT4sIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBvcGVuS2V5d29yZCgpCi0g
ICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgb3BlbiwgKCJv
cGVuIikpOwotICAgICAgICByZXR1cm4gb3BlbjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgY29uc3Qg
U3RyaW5nJiBjbG9zZWRLZXl3b3JkKCkKLSAgICB7Ci0gICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBjbG9zZWQsICgiY2xvc2VkIikpOwotICAgICAgICByZXR1cm4gY2xv
c2VkOwotICAgIH0KLQotICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGVuZGVkS2V5d29yZCgpCi0g
ICAgewotICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZW5kZWQsICgi
ZW5kZWQiKSk7Ci0gICAgICAgIHJldHVybiBlbmRlZDsKLSAgICB9CisgICAgc3RhdGljIGNvbnN0
IFN0cmluZyYgb3BlbktleXdvcmQoKTsKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBjbG9zZWRL
ZXl3b3JkKCk7CisgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgZW5kZWRLZXl3b3JkKCk7CiAKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYVNvdXJjZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVNvdXJjZSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVu
dFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxz
L05hdmlnYXRvckNvbnRlbnRVdGlscy5jcHAKaW5kZXggYjY4NzliZjBlN2ZkNjJlOTQ5OTM5OTcz
MmJmZDJhMmFlNGFkMDZkOS4uMGJjN2YxMmMyZDMxMzUzMzMwMGRmYmYwZDc5Yzg0ZTQ3MTFkZWIw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRp
bHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuY3BwCkBAIC0xNDcs
OSArMTQ3LDkgQEAgdm9pZCBOYXZpZ2F0b3JDb250ZW50VXRpbHM6OnJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKE5hdmlnYXRvciogbmF2aWdhdG9yLCBjb25zdAogI2lmIEVOQUJMRShDVVNUT01fU0NI
RU1FX0hBTkRMRVIpCiBzdGF0aWMgU3RyaW5nIGN1c3RvbUhhbmRsZXJzU3RhdGVTdHJpbmcoY29u
c3QgTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc1N0YXRlIHN0YXRl
KQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBuZXdIYW5kbGVyLCAo
Im5ldyIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcmVnaXN0ZXJl
ZEhhbmRsZXIsICgicmVnaXN0ZXJlZCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgZGVjbGluZWRIYW5kbGVyLCAoImRlY2xpbmVkIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBuZXdIYW5kbGVyLCAoQVNDSUlMaXRlcmFsKCJuZXciKSkp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCByZWdpc3RlcmVkSGFuZGxl
ciwgKEFTQ0lJTGl0ZXJhbCgicmVnaXN0ZXJlZCIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGRlY2xpbmVkSGFuZGxlciwgKEFTQ0lJTGl0ZXJhbCgiZGVjbGluZWQi
KSkpOwogCiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2UgTmF2aWdhdG9yQ29udGVudFV0
aWxzQ2xpZW50OjpDdXN0b21IYW5kbGVyc05ldzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggOTI0OGUxYmJhOGU3
ZmUxMDcwNjZjMDliOWRiMTMyZGM0MWVkMDFmNC4uMzZhMWM4Y2JiZTYzOTcxYmQzMTI3MTU1YWEz
NGY0MzJkNTEwMzYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTI2Myw5ICsyNjMsMTAgQEAgY29uc3QgU3Ry
aW5nJiBOb3RpZmljYXRpb246OnBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKIAogY29uc3QgU3RyaW5nJiBOb3RpZmljYXRpb246OnBlcm1pc3Npb25TdHJpbmcoTm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBlcm1pc3Npb24pCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGFsbG93ZWRQZXJtaXNzaW9uLCAoImdyYW50ZWQiKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlbmllZFBlcm1pc3Npb24s
ICgiZGVuaWVkIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBkZWZh
dWx0UGVybWlzc2lvbiwgKCJkZWZhdWx0IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBhbGxvd2VkUGVybWlzc2lvbiwgKEFTQ0lJTGl0ZXJhbCgiZ3JhbnRlZCIpKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGRlbmllZFBlcm1pc3Npb24s
IChBU0NJSUxpdGVyYWwoImRlbmllZCIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIGRlZmF1bHRQZXJtaXNzaW9uLCAoQVNDSUlMaXRlcmFsKCJkZWZhdWx0IikpKTsK
KwogICAgIHN3aXRjaCAocGVybWlzc2lvbikgewogICAgIGNhc2UgTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uQWxsb3dlZDoKICAgICAgICAgcmV0dXJuIGFsbG93ZWRQZXJtaXNzaW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzLmNwcAppbmRleCA5Nzc4MzAxMzgzNGZjYWYzMThiNzdhZGExMGIyMzgx
NTMzZTE4ZTZjLi4zZDM4MGRmMWE1NjhlYjdhZTlkNGQ5ZTY5Zjk4ZmI3ZjY0NDg1ZTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzLmNwcApAQCAtODUsMjEgKzg1LDIxIEBAIE1lZGlhQ29udHJvbEVsZW1l
bnRUeXBlIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbnRyb2xUeXBlKCkgY29uc3QKIAog
U3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2w6OmNvbnRyb2xUeXBlTmFtZSgpIGNvbnN0
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhRW50ZXJGdWxs
c2NyZWVuQnV0dG9uTmFtZSwgKCJFbnRlckZ1bGxzY3JlZW5CdXR0b24iKSk7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b25OYW1l
LCAoIkV4aXRGdWxsc2NyZWVuQnV0dG9uIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBtZWRpYU11dGVCdXR0b25OYW1lLCAoIk11dGVCdXR0b24iKSk7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUGxheUJ1dHRvbk5hbWUsICgiUGxh
eUJ1dHRvbiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFT
ZWVrQmFja0J1dHRvbk5hbWUsICgiU2Vla0JhY2tCdXR0b24iKSk7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2Vla0ZvcndhcmRCdXR0b25OYW1lLCAoIlNlZWtG
b3J3YXJkQnV0dG9uIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBt
ZWRpYVJld2luZEJ1dHRvbk5hbWUsICgiUmV3aW5kQnV0dG9uIikpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0b25OYW1lLCAo
IlJldHVyblRvUmVhbHRpbWVCdXR0b24iKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIG1lZGlhVW5NdXRlQnV0dG9uTmFtZSwgKCJVbk11dGVCdXR0b24iKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhUGF1c2VCdXR0b25OYW1lLCAo
IlBhdXNlQnV0dG9uIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBt
ZWRpYVN0YXR1c0Rpc3BsYXlOYW1lLCAoIlN0YXR1c0Rpc3BsYXkiKSk7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhQ3VycmVudFRpbWVEaXNwbGF5LCAoIkN1cnJl
bnRUaW1lRGlzcGxheSIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
bWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheSwgKCJUaW1lUmVtYWluaW5nRGlzcGxheSIpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFTaG93Q2xvc2VkQ2FwdGlv
bnNCdXR0b25OYW1lLCAoIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIpKTsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b25O
YW1lLCAoIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgbWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25OYW1lLCAoQVNDSUlM
aXRlcmFsKCJFbnRlckZ1bGxzY3JlZW5CdXR0b24iKSkpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBtZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uTmFtZSwgKEFTQ0lJTGl0
ZXJhbCgiRXhpdEZ1bGxzY3JlZW5CdXR0b24iKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBtZWRpYU11dGVCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJNdXRlQnV0
dG9uIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFQbGF5
QnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUGxheUJ1dHRvbiIpKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2Vla0JhY2tCdXR0b25OYW1lLCAoQVNDSUlM
aXRlcmFsKCJTZWVrQmFja0J1dHRvbiIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIG1lZGlhU2Vla0ZvcndhcmRCdXR0b25OYW1lLCAoQVNDSUlMaXRlcmFsKCJTZWVr
Rm9yd2FyZEJ1dHRvbiIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IG1lZGlhUmV3aW5kQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUmV3aW5kQnV0dG9uIikpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uTmFtZSwgKEFTQ0lJTGl0ZXJhbCgiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhVW5NdXRlQnV0dG9u
TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiVW5NdXRlQnV0dG9uIikpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFQYXVzZUJ1dHRvbk5hbWUsIChBU0NJSUxpdGVyYWwo
IlBhdXNlQnV0dG9uIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
bWVkaWFTdGF0dXNEaXNwbGF5TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiU3RhdHVzRGlzcGxheSIpKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhQ3VycmVudFRpbWVE
aXNwbGF5LCAoQVNDSUlMaXRlcmFsKCJDdXJyZW50VGltZURpc3BsYXkiKSkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtZWRpYVRpbWVSZW1haW5pbmdEaXNwbGF5LCAo
QVNDSUlMaXRlcmFsKCJUaW1lUmVtYWluaW5nRGlzcGxheSIpKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uTmFtZSwg
KEFTQ0lJTGl0ZXJhbCgiU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uIikpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b25O
YW1lLCAoQVNDSUlMaXRlcmFsKCJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKSkpOwogCiAgICAg
c3dpdGNoIChjb250cm9sVHlwZSgpKSB7CiAgICAgY2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1
dHRvbjoKQEAgLTE0Miw3ICsxNDIsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJv
bDo6Y29udHJvbFR5cGVOYW1lKCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2w6OnRpdGxlKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgY29udHJvbHNQYW5lbCwgKCJDb250cm9sc1BhbmVsIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjb250cm9sc1BhbmVsLCAoQVNDSUlMaXRlcmFsKCJDb250
cm9sc1BhbmVsIikpKTsKIAogICAgIGlmIChjb250cm9sVHlwZSgpID09IE1lZGlhQ29udHJvbHNQ
YW5lbCkKICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmco
Y29udHJvbHNQYW5lbCk7CkBAIC0yMzcsOCArMjM3LDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5TWVk
aWFDb250cm9sc0NvbnRhaW5lcjo6Y29udHJvbGxpbmdWaWRlb0VsZW1lbnQoKSBjb25zdAogCiBj
b25zdCBTdHJpbmcgQWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbHNDb250YWluZXI6OmVsZW1lbnRU
eXBlTmFtZSgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IHZpZGVvRWxlbWVudCwgKCJWaWRlb0VsZW1lbnQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGF1ZGlvRWxlbWVudCwgKCJBdWRpb0VsZW1lbnQiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpZGVvRWxlbWVudCwgKEFTQ0lJTGl0ZXJh
bCgiVmlkZW9FbGVtZW50IikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgYXVkaW9FbGVtZW50LCAoQVNDSUlMaXRlcmFsKCJBdWRpb0VsZW1lbnQiKSkpOwogCiAgICAg
aWYgKGNvbnRyb2xsaW5nVmlkZW9FbGVtZW50KCkpCiAgICAgICAgIHJldHVybiB2aWRlb0VsZW1l
bnQ7CkBAIC0yNzMsNyArMjczLDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYVRpbWVsaW5l
Ojp2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlNZWRpYVRp
bWVsaW5lOjpoZWxwVGV4dCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHNsaWRlciwgKCJTbGlkZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHNsaWRlciwgKEFTQ0lJTGl0ZXJhbCgiU2xpZGVyIikpKTsKICAgICByZXR1
cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KHNsaWRlcik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJv
bnRlbmRIb3N0Q3VzdG9tLmNwcAppbmRleCAzMzhmNGM0Nzk0MDEzYjY3M2VkZDU5Mzk3YmI3NzY5
MjI1NjdhMjBjLi4yOTc4ZGVhZjA0ZGM4YjYwZjQ4OGJjMTc4ZDI4NjdjMTdmMzUzMjllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9z
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwCkBAIC01NCwxOSArNTQsMTkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogSlNWYWx1ZSBKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cGxhdGZvcm0oRXhlY1N0YXRl
KiBleGVjU3RhdGUpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKCJtYWMiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoQVNDSUlMaXRlcmFsKCJtYWMiKSkpOwogI2Vs
aWYgT1MoV0lORE9XUykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxh
dGZvcm0sICgid2luZG93cyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIndpbmRvd3MiKSkpOwogI2VsaWYgT1MoTElOVVgp
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBsYXRmb3JtLCAoImxpbnV4
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwbGF0Zm9ybSwgKEFT
Q0lJTGl0ZXJhbCgibGludXgiKSkpOwogI2VsaWYgT1MoRlJFRUJTRCkKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sICgiZnJlZWJzZCIpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoImZy
ZWVic2QiKSkpOwogI2VsaWYgT1MoT1BFTkJTRCkKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgcGxhdGZvcm0sICgib3BlbmJzZCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoIm9wZW5ic2QiKSkpOwog
I2VsaWYgT1MoU09MQVJJUykKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywg
cGxhdGZvcm0sICgic29sYXJpcyIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgcGxhdGZvcm0sIChBU0NJSUxpdGVyYWwoInNvbGFyaXMiKSkpOwogI2Vsc2UKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sICgidW5rbm93biIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcGxhdGZvcm0sIChBU0NJSUxp
dGVyYWwoInVua25vd24iKSkpOwogI2VuZGlmCiAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWNTdGF0
ZSwgcGxhdGZvcm0pOwogfQpAQCAtNzQsMTMgKzc0LDEzIEBAIEpTVmFsdWUgSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3Q6OnBsYXRmb3JtKEV4ZWNTdGF0ZSogZXhlY1N0YXRlKQogSlNWYWx1ZSBKU0lu
c3BlY3RvckZyb250ZW5kSG9zdDo6cG9ydChFeGVjU3RhdGUqIGV4ZWNTdGF0ZSkKIHsKICNpZiBQ
TEFURk9STShRVCkKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwg
KCJxdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwgKEFT
Q0lJTGl0ZXJhbCgicXQiKSkpOwogI2VsaWYgUExBVEZPUk0oR1RLKQotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAoImd0ayIpKTsKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgcG9ydCwgKEFTQ0lJTGl0ZXJhbCgiZ3RrIikpKTsKICNlbGlm
IFBMQVRGT1JNKFdYKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0
LCAoInd4IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb3J0LCAo
QVNDSUlMaXRlcmFsKCJ3eCIpKSk7CiAjZWxzZQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBwb3J0LCAoInVua25vd24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHBvcnQsIChBU0NJSUxpdGVyYWwoInVua25vd24iKSkpOwogI2VuZGlmCiAg
ICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWNTdGF0ZSwgcG9ydCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDcyMTZiNmYz
NjczMTc1NmZhMWE0ZGIxOThjYTU5MDI4NTgxYTlmNGYuLmE3NjY1ZTE2ZTlmNjA1NTA0ZTE4Njg0
NThiY2M4OTQ3YzA5MTU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCkBAIC00Nyw4ICs0Nyw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIGNvbnN0IFN0cmluZyYgZXZlbnRQYXJhbWV0ZXJOYW1lKGJvb2wgaXNT
VkdFdmVudCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZXZlbnRT
dHJpbmcsICgiZXZlbnQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcs
IGV2dFN0cmluZywgKCJldnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGV2ZW50U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJldmVudCIpKSk7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGV2dFN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiZXZ0Iikp
KTsKICAgICByZXR1cm4gaXNTVkdFdmVudCA/IGV2dFN0cmluZyA6IGV2ZW50U3RyaW5nOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3Rl
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIu
Y3BwCmluZGV4IDA4ZmEwZWE0ZjdjNzVhYjEzZWIwZTM2MjM2YjY2YWU1NjdhYTEzM2IuLmY0MmU1
ZmIwMDdjNzlmZjI4YzY1NWE3YmM4ZjMxYzNjODc0ZTk5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCkBAIC00NCw4ICs0NCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IFN0cmluZyYgZXZlbnRQYXJh
bWV0ZXJOYW1lKGJvb2wgaXNTVkdFdmVudCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgZXZlbnRTdHJpbmcsICgiZXZlbnQiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIGV2dFN0cmluZywgKCJldnQiKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIGV2ZW50U3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJldmVudCIp
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGV2dFN0cmluZywgKEFT
Q0lJTGl0ZXJhbCgiZXZ0IikpKTsKICAgICByZXR1cm4gaXNTVkdFdmVudCA/IGV2dFN0cmluZyA6
IGV2ZW50U3RyaW5nOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTV3Jh
cFNoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTV3JhcFNoYXBlcy5jcHAKaW5kZXgg
MTZlY2M4MDIxMmJkM2UxOTAyNjNiOWNkNjA1ZjFiNTA1ZTAwYjJiMi4uNzc1MGYyZWY4ODdiNGQx
NTFiZTdhODdiMzhhNGZiZjZkMzIxNTBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1dyYXBTaGFwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NXcmFwU2hhcGVz
LmNwcApAQCAtMzksMzAgKzM5LDI4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIENT
U1dyYXBTaGFwZVJlY3RhbmdsZTo6Y3NzVGV4dCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIHJlY3RhbmdsZVBhcmVuLCAoInJlY3RhbmdsZSgiKSk7Ci0g
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGNvbW1hLCAoIiwgIikpOwotCiAg
ICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eSgzMik7
Ci0gICAgcmVzdWx0LmFwcGVuZChyZWN0YW5nbGVQYXJlbik7CisKKyAgICByZXN1bHQuYXBwZW5k
TGl0ZXJhbCgicmVjdGFuZ2xlKCIpOwogCiAgICAgcmVzdWx0LmFwcGVuZChtX3gtPmNzc1RleHQo
KSk7Ci0gICAgcmVzdWx0LmFwcGVuZChjb21tYSk7CisgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwo
IiwgIik7CiAKICAgICByZXN1bHQuYXBwZW5kKG1feS0+Y3NzVGV4dCgpKTsKLSAgICByZXN1bHQu
YXBwZW5kKGNvbW1hKTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKIAogICAgIHJl
c3VsdC5hcHBlbmQobV93aWR0aC0+Y3NzVGV4dCgpKTsKLSAgICByZXN1bHQuYXBwZW5kKGNvbW1h
KTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKIAogICAgIHJlc3VsdC5hcHBlbmQo
bV9oZWlnaHQtPmNzc1RleHQoKSk7CiAKICAgICBpZiAobV9yYWRpdXNYLmdldCgpKSB7Ci0gICAg
ICAgIHJlc3VsdC5hcHBlbmQoY29tbWEpOworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX3JhZGl1c1gtPmNzc1RleHQoKSk7CiAKICAg
ICAgICAgaWYgKG1fcmFkaXVzWS5nZXQoKSkgewotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChj
b21tYSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQobV9yYWRpdXNZLT5jc3NUZXh0KCkpOwogICAgICAgICB9CiAgICAg
fQpAQCAtNzQsMTggKzcyLDE2IEBAIFN0cmluZyBDU1NXcmFwU2hhcGVSZWN0YW5nbGU6OmNzc1Rl
eHQoKSBjb25zdAogCiBTdHJpbmcgQ1NTV3JhcFNoYXBlQ2lyY2xlOjpjc3NUZXh0KCkgY29uc3QK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY2lyY2xlUGFyZW4sICgi
Y2lyY2xlKCIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY29tbWEs
ICgiLCAiKSk7Ci0KICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2
ZUNhcGFjaXR5KDMyKTsKLSAgICByZXN1bHQuYXBwZW5kKGNpcmNsZVBhcmVuKTsKKworICAgIHJl
c3VsdC5hcHBlbmRMaXRlcmFsKCJjaXJjbGUoIik7CiAKICAgICByZXN1bHQuYXBwZW5kKG1fY2Vu
dGVyWC0+Y3NzVGV4dCgpKTsKLSAgICByZXN1bHQuYXBwZW5kKGNvbW1hKTsKKyAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKIAogICAgIHJlc3VsdC5hcHBlbmQobV9jZW50ZXJZLT5jc3NU
ZXh0KCkpOwotICAgIHJlc3VsdC5hcHBlbmQoY29tbWEpOworICAgIHJlc3VsdC5hcHBlbmRMaXRl
cmFsKCIsICIpOwogCiAgICAgcmVzdWx0LmFwcGVuZChtX3JhZGl1cy0+Y3NzVGV4dCgpKTsKICAg
ICByZXN1bHQuYXBwZW5kKCcpJyk7CkBAIC05NSwyMSArOTEsMTggQEAgU3RyaW5nIENTU1dyYXBT
aGFwZUNpcmNsZTo6Y3NzVGV4dCgpIGNvbnN0CiAKIFN0cmluZyBDU1NXcmFwU2hhcGVFbGxpcHNl
Ojpjc3NUZXh0KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
ZywgZWxsaXBzZVBhcmVuLCAoImVsbGlwc2UoIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBjb21tYSwgKCIsICIpKTsKLQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0
OwogICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoMzIpOwotICAgIHJlc3VsdC5hcHBlbmQoZWxs
aXBzZVBhcmVuKTsKKyAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiZWxsaXBzZSgiKTsKIAogICAg
IHJlc3VsdC5hcHBlbmQobV9jZW50ZXJYLT5jc3NUZXh0KCkpOwotICAgIHJlc3VsdC5hcHBlbmQo
Y29tbWEpOworICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIsICIpOwogCiAgICAgcmVzdWx0LmFw
cGVuZChtX2NlbnRlclktPmNzc1RleHQoKSk7Ci0gICAgcmVzdWx0LmFwcGVuZChjb21tYSk7Cisg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiwgIik7CiAKICAgICByZXN1bHQuYXBwZW5kKG1fcmFk
aXVzWC0+Y3NzVGV4dCgpKTsKLSAgICByZXN1bHQuYXBwZW5kKGNvbW1hKTsKKyAgICByZXN1bHQu
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKIAogICAgIHJlc3VsdC5hcHBlbmQobV9yYWRpdXNZLT5jc3NU
ZXh0KCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKQEAgLTExOSwyNSArMTEyLDIxIEBAIFN0
cmluZyBDU1NXcmFwU2hhcGVFbGxpcHNlOjpjc3NUZXh0KCkgY29uc3QKIAogU3RyaW5nIENTU1dy
YXBTaGFwZVBvbHlnb246OmNzc1RleHQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBwb2x5Z29uUGFyZW5FdmVuT2RkLCAoInBvbHlnb24oZXZlbm9kZCwg
IikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwb2x5Z29uUGFyZW5O
b25aZXJvLCAoInBvbHlnb24obm9uemVybywgIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBjb21tYSwgKCIsICIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgc3BhY2UsICgiICIpKTsKLQogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0Owog
ICAgIHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkoMzIpOworCiAgICAgaWYgKG1fd2luZFJ1bGUgPT0g
UlVMRV9FVkVOT0REKQotICAgICAgICByZXN1bHQuYXBwZW5kKHBvbHlnb25QYXJlbkV2ZW5PZGQp
OworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgicG9seWdvbihldmVub2RkLCAiKTsKICAg
ICBlbHNlCi0gICAgICAgIHJlc3VsdC5hcHBlbmQocG9seWdvblBhcmVuTm9uWmVybyk7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJwb2x5Z29uKG5vbnplcm8sICIpOwogCiAgICAgQVNT
RVJUKCEobV92YWx1ZXMuc2l6ZSgpICUgMikpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG1fdmFsdWVzLnNpemUoKTsgaSArPSAyKSB7CiAgICAgICAgIGlmIChpKQotICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZChjb21tYSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJh
bCgiLCAiKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX3ZhbHVlcy5hdChpKS0+Y3NzVGV4dCgp
KTsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChzcGFjZSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
JyAnKTsKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX3ZhbHVlcy5hdChpICsgMSktPmNzc1RleHQo
KSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENv
bnRlbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCmlu
ZGV4IDNlYWEwZGEzNjkxMjBjZmYxMGJiOWNiY2U1M2I1YTc0Y2FkMmFmYWYuLmY4ZDYzMjE3NWQ5
ZGM3YTFiNGE5MWQ5MzNiM2I3ZjM4ZTYzZWFkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwCkBAIC0yODgsMTEgKzI4OCwxMCBAQCB2b2lkIFN0eWxlU2hlZXRD
b250ZW50czo6cGFyc2VBdXRob3JTdHlsZVNoZWV0KGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQq
IGNhY2hlZAogICAgIH0KICAgICBpZiAobV9wYXJzZXJDb250ZXh0Lm5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzICYmIGlzU3RyaWN0UGFyc2VyTW9kZShtX3BhcnNlckNvbnRleHQubW9kZSkpIHsKICAg
ICAgICAgLy8gV29yayBhcm91bmQgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yODM1MD4uCi0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBz
bGFzaEtIVE1MRml4ZXNEb3RDc3MsICgiL0tIVE1MRml4ZXMuY3NzIikpOwotICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbWVkaWFXaWtpS0hUTUxGaXhlc1N0eWxlU2hl
ZXQsICgiLyogS0hUTUwgZml4IHN0eWxlc2hlZXQgKi9cbi8qIHdvcmsgYXJvdW5kIHRoZSBob3Jp
em9udGFsIHNjcm9sbGJhcnMgKi9cbiNjb2x1bW4tY29udGVudCB7IG1hcmdpbi1sZWZ0OiAwOyB9
XG5cbiIpKTsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG1lZGlh
V2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LCAoQVNDSUlMaXRlcmFsKCIvKiBLSFRNTCBmaXggc3R5
bGVzaGVldCAqL1xuLyogd29yayBhcm91bmQgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFycyAqL1xu
I2NvbHVtbi1jb250ZW50IHsgbWFyZ2luLWxlZnQ6IDA7IH1cblxuIikpKTsKICAgICAgICAgLy8g
VGhlcmUgYXJlIHR3byB2YXJpYW50cyBvZiBLSFRNTEZpeGVzLmNzcy4gT25lIGlzIGVxdWFsIHRv
IG1lZGlhV2lraUtIVE1MRml4ZXNTdHlsZVNoZWV0LAogICAgICAgICAvLyB3aGlsZSB0aGUgb3Ro
ZXIgbGFja3MgdGhlIHNlY29uZCB0cmFpbGluZyBuZXdsaW5lLgotICAgICAgICBpZiAoYmFzZVVS
TCgpLnN0cmluZygpLmVuZHNXaXRoKHNsYXNoS0hUTUxGaXhlc0RvdENzcykgJiYgIXNoZWV0VGV4
dC5pc051bGwoKSAmJiBtZWRpYVdpa2lLSFRNTEZpeGVzU3R5bGVTaGVldC5zdGFydHNXaXRoKHNo
ZWV0VGV4dCkKKyAgICAgICAgaWYgKGJhc2VVUkwoKS5zdHJpbmcoKS5lbmRzV2l0aCgiL0tIVE1M
Rml4ZXMuY3NzIikgJiYgIXNoZWV0VGV4dC5pc051bGwoKSAmJiBtZWRpYVdpa2lLSFRNTEZpeGVz
U3R5bGVTaGVldC5zdGFydHNXaXRoKHNoZWV0VGV4dCkKICAgICAgICAgICAgICYmIHNoZWV0VGV4
dC5sZW5ndGgoKSA+PSBtZWRpYVdpa2lLSFRNTEZpeGVzU3R5bGVTaGVldC5sZW5ndGgoKSAtIDEp
IHsKICAgICAgICAgICAgIGNsZWFyUnVsZXMoKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGJlYjYzNTk4YmQzN2Q0YWRhYWYyOTUyNWIxY2VkMTAyNGVl
MTUzYTUuLjA5MGZjNzQzYWQxOWJhYzc4MTgwM2ZiZGY5MGY5NzkzZTFjMWVmNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMTE5Niw5ICsxMTk2LDkgQEAgUGFzc1JlZlB0cjxFbGVtZW50
PiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudE5TKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBj
b25zdAogCiBTdHJpbmcgRG9jdW1lbnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogewotICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBsb2FkaW5nLCAoImxvYWRpbmciKSk7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGludGVyYWN0aXZlLCAoImludGVyYWN0
aXZlIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjb21wbGV0ZSwg
KCJjb21wbGV0ZSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbG9h
ZGluZywgKEFTQ0lJTGl0ZXJhbCgibG9hZGluZyIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGludGVyYWN0aXZlLCAoQVNDSUlMaXRlcmFsKCJpbnRlcmFjdGl2ZSIp
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGNvbXBsZXRlLCAoQVND
SUlMaXRlcmFsKCJjb21wbGV0ZSIpKSk7CiAKICAgICBzd2l0Y2ggKG1fcmVhZHlTdGF0ZSkgewog
ICAgIGNhc2UgTG9hZGluZzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVs
YXRvci5jcHAKaW5kZXggMmRmMTE0YzMxNjM4MmI0YzE2YjJmY2VjNjM1NTA1ZDc1ZTJlMzA4MS4u
N2RmMDM4YWJjOTVlMTA2NWMzOTc1ZDFmZTIwYzcyYTcxMzBkZGYyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKQEAgLTQ3LDExICs0NywxMSBAQCB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiB2b2lkIGFwcGVuZENoYXJhY3RlcnNSZXBsYWNp
bmdFbnRpdGllcyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFVDaGFyKiBjb250ZW50LCBz
aXplX3QgbGVuZ3RoLCBFbnRpdHlNYXNrIGVudGl0eU1hc2spCiB7Ci0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChjb25zdCBTdHJpbmcsIGFtcFJlZmVyZW5jZSwgKCImYW1wOyIpKTsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbHRSZWZlcmVuY2UsICgiJmx0OyIpKTsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZ3RSZWZlcmVuY2UsICgiJmd0OyIp
KTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcXVvdFJlZmVyZW5jZSwg
KCImcXVvdDsiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG5ic3BS
ZWZlcmVuY2UsICgiJm5ic3A7IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3Ry
aW5nLCBhbXBSZWZlcmVuY2UsIChBU0NJSUxpdGVyYWwoIiZhbXA7IikpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbHRSZWZlcmVuY2UsIChBU0NJSUxpdGVyYWwoIiZs
dDsiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBndFJlZmVyZW5j
ZSwgKEFTQ0lJTGl0ZXJhbCgiJmd0OyIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHF1b3RSZWZlcmVuY2UsIChBU0NJSUxpdGVyYWwoIiZxdW90OyIpKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIG5ic3BSZWZlcmVuY2UsIChBU0NJSUxp
dGVyYWwoIiZuYnNwOyIpKSk7CiAKICAgICBzdGF0aWMgY29uc3QgRW50aXR5RGVzY3JpcHRpb24g
ZW50aXR5TWFwc1tdID0gewogICAgICAgICB7ICcmJywgYW1wUmVmZXJlbmNlLCBFbnRpdHlBbXAg
fSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCA5YWYxODgzZjc3NDNkNWMzMDJkMjJi
Y2M1MTRjNTVjMThkMTI3MWE0Li4xMGVlYTAxNmI1NzQ4ZmEyZWEzNWU4YzZjZDgwMDIzNTBmNzQ2
NGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgYXBwZW5kU3R5bGVOb2RlT3BlblRhZyhTdHJpbmdC
dWlsZGVyJiwgU3R5bGVQcm9wZXJ0eVNldCosIERvY3VtZW50KiwgYm9vbCBpc0Jsb2NrID0gZmFs
c2UpOwotICAgIGNvbnN0IFN0cmluZyBzdHlsZU5vZGVDbG9zZVRhZyhib29sIGlzQmxvY2sgPSBm
YWxzZSk7CisgICAgY29uc3QgU3RyaW5nJiBzdHlsZU5vZGVDbG9zZVRhZyhib29sIGlzQmxvY2sg
PSBmYWxzZSk7CiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0
LCBUZXh0Kik7CiAgICAgU3RyaW5nIHJlbmRlcmVkVGV4dChjb25zdCBOb2RlKiwgY29uc3QgUmFu
Z2UqKTsKICAgICBTdHJpbmcgc3RyaW5nVmFsdWVGb3JSYW5nZShjb25zdCBOb2RlKiwgY29uc3Qg
UmFuZ2UqKTsKQEAgLTE5MSwxOCArMTkxLDE5IEBAIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0
b3I6OmFwcGVuZFN0eWxlTm9kZU9wZW5UYWcoU3RyaW5nQnVpbGRlciYgb3V0LCBTdHlsZVByCiB7
CiAgICAgLy8gd3JhcHBpbmdTdHlsZUZvclNlcmlhbGl6YXRpb24gc2hvdWxkIGhhdmUgcmVtb3Zl
ZCAtd2Via2l0LXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0CiAgICAgQVNTRVJUKHByb3BlcnR5
TWlzc2luZ09yRXF1YWxUb05vbmUoc3R5bGUsIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRp
b25zSW5FZmZlY3QpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2
U3R5bGUsICgiPGRpdiBzdHlsZT1cIiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgc3R5bGVTcGFuT3BlbiwgKCI8c3BhbiBzdHlsZT1cIiIpKTsKLSAgICBvdXQuYXBw
ZW5kKGlzQmxvY2sgPyBkaXZTdHlsZSA6IHN0eWxlU3Bhbk9wZW4pOworICAgIGlmIChpc0Jsb2Nr
KQorICAgICAgICBvdXQuYXBwZW5kTGl0ZXJhbCgiPGRpdiBzdHlsZT1cIiIpOworICAgIGVsc2UK
KyAgICAgICAgb3V0LmFwcGVuZExpdGVyYWwoIjxzcGFuIHN0eWxlPVwiIik7CiAgICAgYXBwZW5k
QXR0cmlidXRlVmFsdWUob3V0LCBzdHlsZS0+YXNUZXh0KCksIGRvY3VtZW50LT5pc0hUTUxEb2N1
bWVudCgpKTsKICAgICBvdXQuYXBwZW5kKCdcIicpOwogICAgIG91dC5hcHBlbmQoJz4nKTsKIH0K
IAotY29uc3QgU3RyaW5nIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpzdHlsZU5vZGVDbG9zZVRh
Zyhib29sIGlzQmxvY2spCitjb25zdCBTdHJpbmcmIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpz
dHlsZU5vZGVDbG9zZVRhZyhib29sIGlzQmxvY2spCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGRpdkNsb3NlLCAoIjwvZGl2PiIpKTsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKGNvbnN0IFN0cmluZywgc3R5bGVTcGFuQ2xvc2UsICgiPC9zcGFuPiIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2Q2xvc2UsIChBU0NJSUxpdGVyYWwo
IjwvZGl2PiIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0eWxl
U3BhbkNsb3NlLCAoQVNDSUlMaXRlcmFsKCI8L3NwYW4+IikpKTsKICAgICByZXR1cm4gaXNCbG9j
ayA/IGRpdkNsb3NlIDogc3R5bGVTcGFuQ2xvc2U7CiB9CiAKQEAgLTMyOCw4ICszMjksNyBAQCB2
b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXIm
IG91dCwgRWxlbWVudCogZWxlbWVudAogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFuZXdJbmxp
bmVTdHlsZS0+aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgc3R5bGVQcmVmaXgsICgiIHN0eWxlPVwiIikpOwotICAgICAgICAgICAgb3V0
LmFwcGVuZChzdHlsZVByZWZpeCk7CisgICAgICAgICAgICBvdXQuYXBwZW5kTGl0ZXJhbCgiIHN0
eWxlPVwiIik7CiAgICAgICAgICAgICBhcHBlbmRBdHRyaWJ1dGVWYWx1ZShvdXQsIG5ld0lubGlu
ZVN0eWxlLT5zdHlsZSgpLT5hc1RleHQoKSwgZG9jdW1lbnRJc0hUTUwpOwogICAgICAgICAgICAg
b3V0LmFwcGVuZCgnXCInKTsKICAgICAgICAgfQpAQCAtNTQ5LDcgKzU0OSw3IEBAIHN0YXRpYyBO
b2RlKiBoaWdoZXN0QW5jZXN0b3JUb1dyYXBNYXJrdXAoY29uc3QgUmFuZ2UqIHJhbmdlLCBFQW5u
b3RhdGVGb3JJbnRlcmNoCiAvLyBGSVhNRTogQXQgbGVhc3QsIGFubm90YXRpb24gYW5kIHN0eWxl
IGluZm8gc2hvdWxkIHByb2JhYmx5IG5vdCBiZSBpbmNsdWRlZCBpbiByYW5nZS5tYXJrdXBTdHJp
bmcoKQogU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIFZlY3RvcjxOb2Rl
Kj4qIG5vZGVzLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBzaG91bGRBbm5vdGF0ZSwgYm9vbCBj
b252ZXJ0QmxvY2tzVG9JbmxpbmVzLCBFQWJzb2x1dGVVUkxzIHNob3VsZFJlc29sdmVVUkxzKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBpbnRlcmNoYW5nZU5ld2xp
bmVTdHJpbmcsICgiPGJyIGNsYXNzPVwiIiBBcHBsZUludGVyY2hhbmdlTmV3bGluZSAiXCI+Iikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBpbnRlcmNoYW5nZU5ld2xp
bmVTdHJpbmcsIChBU0NJSUxpdGVyYWwoIjxiciBjbGFzcz1cIiIgQXBwbGVJbnRlcmNoYW5nZU5l
d2xpbmUgIlwiPiIpKSk7CiAKICAgICBpZiAoIXJhbmdlKQogICAgICAgICByZXR1cm4gIiI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggZTc5Y2QxZGY5
YjhmMmJjNjUwYmE0ZTE3ZmIwM2YyMmM0ODFlZTdlYS4uOGZkMTk5NmI1MWRkNWUyZDkxZjQ3N2Yw
NWI4OGRlODc5ZTMzOGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmNwcApAQCAtNTYsMTkgKzU2LDE5IEBAIHN0YXRpYyBjb25zdCBpbnQgYXV0b1NpemUgPSAw
OwogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiBzdGFydEtleXdvcmQoKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzdGFydCwgKCJzdGFydCIpKTsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3RhcnQsIChBU0NJSUxpdGVyYWwoInN0YXJ0Iikp
KTsKICAgICByZXR1cm4gc3RhcnQ7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIG1pZGRsZUtl
eXdvcmQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtaWRkbGUs
ICgibWlkZGxlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBtaWRk
bGUsIChBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKSk7CiAgICAgcmV0dXJuIG1pZGRsZTsKIH0KIAog
c3RhdGljIGNvbnN0IFN0cmluZyYgZW5kS2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIGVuZCwgKCJlbmQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIGVuZCwgKEFTQ0lJTGl0ZXJhbCgiZW5kIikpKTsKICAgICByZXR1cm4g
ZW5kOwogfQogCkBAIC03OSwxMyArNzksMTMgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgaG9yaXpv
bnRhbEtleXdvcmQoKQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2ZXJ0aWNhbEdyb3dpbmdMZWZ0
S2V5d29yZCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZlcnRp
Y2FscmwsICgicmwiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZl
cnRpY2FscmwsIChBU0NJSUxpdGVyYWwoInJsIikpKTsKICAgICByZXR1cm4gdmVydGljYWxybDsK
IH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdmVydGljYWxHcm93aW5nUmlnaHRLZXl3b3JkKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxsciwgKCJs
ciIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdmVydGljYWxsciwg
KEFTQ0lJTGl0ZXJhbCgibHIiKSkpOwogICAgIHJldHVybiB2ZXJ0aWNhbGxyOwogfQogCkBAIC02
NTAsNyArNjUwLDcgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0
IG1vdmllVGltZSkKIHsKICAgICAvLyBUaGUgZGlzcGxheSB0cmVlIG1heSBjb250YWluIFdlYlZU
VCB0aW1lc3RhbXAgb2JqZWN0cyByZXByZXNlbnRpbmcKICAgICAvLyB0aW1lc3RhbXBzIChwcm9j
ZXNzaW5nIGluc3RydWN0aW9ucyksIGFsb25nIHdpdGggZGlzcGxheWFibGUgbm9kZXMuCi0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHRpbWVzdGFtcFRhZywgKCJ0aW1lc3Rh
bXAiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHRpbWVzdGFtcFRh
ZywgKEFTQ0lJTGl0ZXJhbCgidGltZXN0YW1wIikpKTsKIAogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFja1Bhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkLCAoIi13
ZWJraXQtbWVkaWEtdGV4dC10cmFjay1wYXN0LW5vZGVzIikpOwogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFja0Z1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQs
ICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1ub2RlcyIpKTsKQEAgLTc4NiwxMSAr
Nzg2LDExIEBAIHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4gVGV4dFRyYWNrQ3VlOjpnZXRQb3Np
dGlvbkNvb3JkaW5hdGVzKCkgY29uc3QKIAogVGV4dFRyYWNrQ3VlOjpDdWVTZXR0aW5nIFRleHRU
cmFja0N1ZTo6c2V0dGluZ05hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB2ZXJ0aWNhbEtleXdvcmQsICgidmVydGljYWwiKSk7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGxpbmVLZXl3b3JkLCAoImxp
bmUiKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHBvc2l0aW9uS2V5
d29yZCwgKCJwb3NpdGlvbiIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
Zywgc2l6ZUtleXdvcmQsICgic2l6ZSIpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0
IFN0cmluZywgYWxpZ25LZXl3b3JkLCAoImFsaWduIikpOworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCB2ZXJ0aWNhbEtleXdvcmQsIChBU0NJSUxpdGVyYWwoInZlcnRpY2Fs
IikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbGluZUtleXdvcmQs
IChBU0NJSUxpdGVyYWwoImxpbmUiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBwb3NpdGlvbktleXdvcmQsIChBU0NJSUxpdGVyYWwoInBvc2l0aW9uIikpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc2l6ZUtleXdvcmQsIChBU0NJSUxp
dGVyYWwoInNpemUiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBh
bGlnbktleXdvcmQsIChBU0NJSUxpdGVyYWwoImFsaWduIikpKTsKIAogICAgIGlmIChuYW1lID09
IHZlcnRpY2FsS2V5d29yZCkKICAgICAgICAgcmV0dXJuIFZlcnRpY2FsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCmluZGV4IGQ3MWE2MDVhODIzYWNm
ZmY0OGYyZDllNzczNDIwZjFiMzBmZjI5MjYuLmNhNTQ1NDdiMDM3YjBkN2Y0ZTZkNzYxNmM3YjZj
YjZhMTk4OWJmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5n
S2V5cy5jcHAKQEAgLTMwLDU1ICszMCw1NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0
IFN0cmluZyYgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZWRpYUxvYWRlZEtleSgpCiB7Ci0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKCJtZWRpYUxvYWRlZCIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoQVNDSUlMaXRlcmFs
KCJtZWRpYUxvYWRlZCIpKSk7CiAgICAgcmV0dXJuIGtleTsKIH0KIAogY29uc3QgU3RyaW5nJiBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtleSgpCiB7Ci0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKCJtZWRpYUZhaWxlZExvYWRpbmci
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKEFTQ0lJTGl0
ZXJhbCgibWVkaWFGYWlsZWRMb2FkaW5nIikpKTsKICAgICByZXR1cm4ga2V5OwogfQogCiBjb25z
dCBTdHJpbmcmIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9hZGVkS2V5KCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoInBsdWdpbkxvYWRlZCIp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoQVNDSUlMaXRl
cmFsKCJwbHVnaW5Mb2FkZWQiKSkpOwogICAgIHJldHVybiBrZXk7CiB9CiAKIGNvbnN0IFN0cmlu
ZyYgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkaW5nRmFpbGVkS2V5KCkKIHsKLSAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoInBsdWdpbkZhaWxlZExv
YWRpbmciKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKEFT
Q0lJTGl0ZXJhbCgicGx1Z2luRmFpbGVkTG9hZGluZyIpKSk7CiAgICAgcmV0dXJuIGtleTsKIH0K
IAogY29uc3QgU3RyaW5nJiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDb250YWluc1BsdWdp
bktleSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKCJw
YWdlQ29udGFpbnNQbHVnaW4iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJp
bmcsIGtleSwgKEFTQ0lJTGl0ZXJhbCgicGFnZUNvbnRhaW5zUGx1Z2luIikpKTsKICAgICByZXR1
cm4ga2V5OwogfQogCiBjb25zdCBTdHJpbmcmIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNv
bnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGtleSwgKCJwYWdlQ29udGFpbnNBdExlYXN0T25lUGx1Z2luIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBrZXksIChBU0NJSUxpdGVyYWwoInBh
Z2VDb250YWluc0F0TGVhc3RPbmVQbHVnaW4iKSkpOwogICAgIHJldHVybiBrZXk7CiB9CiAKIGNv
bnN0IFN0cmluZyYgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYXNzS2V5KCkKIHsKLSAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5LCAoInBhc3MiKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKEFTQ0lJTGl0ZXJhbCgicGFzcyIpKSk7
CiAgICAgcmV0dXJuIGtleTsKIH0KIAogY29uc3QgU3RyaW5nJiBEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OmZhaWxLZXkoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBr
ZXksICgiZmFpbCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywga2V5
LCAoQVNDSUlMaXRlcmFsKCJmYWlsIikpKTsKICAgICByZXR1cm4ga2V5OwogfQogCiBjb25zdCBT
dHJpbmcmIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9vcEtleSgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGtleSwgKCJub29wIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBrZXksIChBU0NJSUxpdGVyYWwoIm5vb3AiKSkpOwogICAg
IHJldHVybiBrZXk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZp
c2liaWxpdHlTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuY3BwCmluZGV4IGRlMTE5NmU4M2NmMGFiOTE3MzFlY2IyNTBhMDM0ODkyZWI0Y2ZjMDEuLmQ5
Zjc3NGU3OTVjN2MxOThmZmE1ZWRiNGE0NmIwNWE1NDE3YjUzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIHBhZ2VWaXNpYmlsaXR5U3RhdGVTdHJpbmcoUGFnZVZp
c2liaWxpdHlTdGF0ZSBzdGF0ZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgdmlzaWJsZSwgKCJ2aXNpYmxlIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgU3RyaW5nLCBoaWRkZW4sICgiaGlkZGVuIikpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCBwcmVyZW5kZXIsICgicHJlcmVuZGVyIikpOwotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBwcmV2aWV3LCAoInByZXZpZXciKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHZpc2libGUsIChBU0NJSUxpdGVyYWwoInZpc2li
bGUiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBoaWRkZW4sIChB
U0NJSUxpdGVyYWwoImhpZGRlbiIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHByZXJlbmRlciwgKEFTQ0lJTGl0ZXJhbCgicHJlcmVuZGVyIikpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgcHJldmlldywgKEFTQ0lJTGl0ZXJhbCgicHJl
dmlldyIpKSk7CiAKICAgICBzd2l0Y2ggKHN0YXRlKSB7CiAgICAgY2FzZSBQYWdlVmlzaWJpbGl0
eVN0YXRlVmlzaWJsZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmNwcAppbmRleCAyNzIyODRhNWE5YTYxMzc4MjRmZWZiYmZhMWFlMzMzMDNjZDg3OTJhLi42
NzZiNjU1NzM5OGJkNzMzZmViMGZlMTA1MjliNTIwZDA4ZWFjNTRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCkBAIC02MSw3ICs2MSw3IEBAIGJv
b2wgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjptYXRjaGVzUGF0dGVybnMoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBWZWN0b3I8U3RyaW5nCiAKIGJvb2wgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpwYXJz
ZShjb25zdCBTdHJpbmcmIHBhdHRlcm4pCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBTdHJpbmcsIHNjaGVtZVNlcGFyYXRvciwgKCI6Ly8iKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHNjaGVtZVNlcGFyYXRvciwgKEFTQ0lJTGl0ZXJhbCgiOi8vIikp
KTsKIAogICAgIHNpemVfdCBzY2hlbWVFbmRQb3MgPSBwYXR0ZXJuLmZpbmQoc2NoZW1lU2VwYXJh
dG9yKTsKICAgICBpZiAoc2NoZW1lRW5kUG9zID09IG5vdEZvdW5kKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vS1VSTFdURlVSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9LVVJMV1RGVVJMLmNwcAppbmRleCA2MjM0NDE5Y2I2ZjY4MDk2YjA1ZTliZjA5YTZmZDdk
MWVmYTE5Nzc5Li5hZTJkYTFkMTVmNTkyNTI0Mzc4YzdhY2QwMjE2ZGM4OTAzMDljMTIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMV1RGVVJMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMV1RGVVJMLmNwcApAQCAtMTEwLDEyICsxMTAsMTAgQEAg
Ym9vbCBLVVJMOjppc1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4gaXNQYXJzZWRVUkxWYWxpZDsK
IH0KIAotY29uc3QgU3RyaW5nICZLVVJMOjpzdHJpbmcoKSBjb25zdAorY29uc3QgU3RyaW5nJiBL
VVJMOjpzdHJpbmcoKSBjb25zdAogewotICAgIGlmIChpc051bGwoKSkgewotICAgICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbnVsbFN0cmluZywgKCkpOwotICAgICAgICBy
ZXR1cm4gbnVsbFN0cmluZzsKLSAgICB9CisgICAgaWYgKGlzTnVsbCgpKQorICAgICAgICByZXR1
cm4gbnVsbEF0b20oKTsKIAogICAgIGlmIChpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBtX3Vy
bEltcGwtPm1fcGFyc2VkVVJMLnNwZWMoKS5zdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKaW5kZXggMjg5YzY2OTliMDVmNDlmYjcxN2MwYzQw
M2MyYjU3MWJiYzljMjhiOC4uYTE5OGU4NTAwM2RiZTJiZjZiNTc4Mzg2NjExZDk2YzJiODZiMTJm
OSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKQEAg
LTYyMyw3ICs2MjMsNyBAQCBIYXNoU2V0PFN0cmluZz4mIE1JTUVUeXBlUmVnaXN0cnk6OmdldFVu
c3VwcG9ydGVkVGV4dE1JTUVUeXBlcygpCiAKIGNvbnN0IFN0cmluZyYgZGVmYXVsdE1JTUVUeXBl
KCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGVmYXVsdE1JTUVU
eXBlLCAoImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgZGVmYXVsdE1JTUVUeXBlLCAoQVNDSUlMaXRlcmFsKCJhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0iKSkpOwogICAgIHJldHVybiBkZWZhdWx0TUlNRVR5cGU7CiB9CiAK
QEAgLTYzNyw1MCArNjM3LDUxIEBAIHN0YXRpYyBjb25zdCBNSU1FVHlwZUFzc29jaWF0aW9uTWFw
JiBtaW1lVHlwZUFzc29jaWF0aW9uTWFwKCkKICAgICAgICAgcmV0dXJuICptaW1lVHlwZU1hcDsK
IAogICAgIG1pbWVUeXBlTWFwID0gbmV3IE1JTUVUeXBlQXNzb2NpYXRpb25NYXA7Ci0gICAgbWlt
ZVR5cGVNYXAtPmFkZCgiaW1hZ2UveC1tcy1ibXAiLCAiaW1hZ2UvYm1wIik7Ci0gICAgbWltZVR5
cGVNYXAtPmFkZCgiaW1hZ2UveC13aW5kb3dzLWJtcCIsICJpbWFnZS9ibXAiKTsKLSAgICBtaW1l
VHlwZU1hcC0+YWRkKCJpbWFnZS94LWJtcCIsICJpbWFnZS9ibXAiKTsKLSAgICBtaW1lVHlwZU1h
cC0+YWRkKCJpbWFnZS94LWJpdG1hcCIsICJpbWFnZS9ibXAiKTsKLSAgICBtaW1lVHlwZU1hcC0+
YWRkKCJpbWFnZS94LW1zLWJpdG1hcCIsICJpbWFnZS9ibXAiKTsKLSAgICBtaW1lVHlwZU1hcC0+
YWRkKCJpbWFnZS9qcGciLCAiaW1hZ2UvanBlZyIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImlt
YWdlL3BqcGVnIiwgImltYWdlL2pwZWciKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJpbWFnZS94
LXBuZyIsICJpbWFnZS9wbmciKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJpbWFnZS92bmQucmlt
LnBuZyIsICJpbWFnZS9wbmciKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJpbWFnZS9pY28iLCAi
aW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiaW1hZ2Uv
aWNvbiIsICJpbWFnZS92bmQubWljcm9zb2Z0Lmljb24iKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRk
KCJ0ZXh0L2ljbyIsICJpbWFnZS92bmQubWljcm9zb2Z0Lmljb24iKTsKLSAgICBtaW1lVHlwZU1h
cC0+YWRkKCJhcHBsaWNhdGlvbi9pY28iLCAiaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uIik7Ci0g
ICAgbWltZVR5cGVNYXAtPmFkZCgiaW1hZ2UveC1pY29uIiwgImltYWdlL3ZuZC5taWNyb3NvZnQu
aWNvbiIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3ZuZC5xY2VscCIsICJhdWRpby9x
Y2VscCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3FjcCIsICJhdWRpby9xY2VscCIp
OwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3ZuZC5xY3AiLCAiYXVkaW8vcWNlbHAiKTsK
LSAgICBtaW1lVHlwZU1hcC0+YWRkKCJhdWRpby93YXYiLCAiYXVkaW8veC13YXYiKTsKLSAgICBt
aW1lVHlwZU1hcC0+YWRkKCJhdWRpby9taWQiLCAiYXVkaW8vbWlkaSIpOwotICAgIG1pbWVUeXBl
TWFwLT5hZGQoImF1ZGlvL3NwLW1pZGkiLCAiYXVkaW8vbWlkaSIpOwotICAgIG1pbWVUeXBlTWFw
LT5hZGQoImF1ZGlvL3gtbWlkIiwgImF1ZGlvL21pZGkiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRk
KCJhdWRpby94LW1pZGkiLCAiYXVkaW8vbWlkaSIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1
ZGlvL3gtbXBlZyIsICJhdWRpby9tcGVnIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiYXVkaW8v
bXAzIiwgImF1ZGlvL21wZWciKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJhdWRpby94LW1wMyIs
ICJhdWRpby9tcGVnIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiYXVkaW8vbXBlZzMiLCAiYXVk
aW8vbXBlZyIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL3gtbXBlZzMiLCAiYXVkaW8v
bXBlZyIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL21wZzMiLCAiYXVkaW8vbXBlZyIp
OwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL21wZyIsICJhdWRpby9tcGVnIik7Ci0gICAg
bWltZVR5cGVNYXAtPmFkZCgiYXVkaW8veC1tcGciLCAiYXVkaW8vbXBlZyIpOwotICAgIG1pbWVU
eXBlTWFwLT5hZGQoImF1ZGlvL200YSIsICJhdWRpby9tcDQiKTsKLSAgICBtaW1lVHlwZU1hcC0+
YWRkKCJhdWRpby94LW00YSIsICJhdWRpby9tcDQiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJh
dWRpby94LW1wNCIsICJhdWRpby9tcDQiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJhdWRpby94
LWFhYyIsICJhdWRpby9hYWMiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJhdWRpby94LWFtciIs
ICJhdWRpby9hbXIiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJhdWRpby9tcGVndXJsIiwgImF1
ZGlvL3gtbXBlZ3VybCIpOwotICAgIG1pbWVUeXBlTWFwLT5hZGQoImF1ZGlvL2ZsYWMiLCAiYXVk
aW8veC1mbGFjIik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgidmlkZW8vM2dwIiwgInZpZGVvLzNn
cHAiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJ2aWRlby9hdmkiLCAidmlkZW8veC1tc3ZpZGVv
Iik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgidmlkZW8veC1tNHYiLCAidmlkZW8vbXA0Iik7Ci0g
ICAgbWltZVR5cGVNYXAtPmFkZCgidmlkZW8veC1xdWlja3RpbWUiLCAidmlkZW8vcXVpY2t0aW1l
Iik7Ci0gICAgbWltZVR5cGVNYXAtPmFkZCgiYXBwbGljYXRpb24vamF2YSIsICJhcHBsaWNhdGlv
bi9qYXZhLWFyY2hpdmUiKTsKLSAgICBtaW1lVHlwZU1hcC0+YWRkKCJhcHBsaWNhdGlvbi94LWph
dmEtYXJjaGl2ZSIsICJhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUiKTsKLSAgICBtaW1lVHlwZU1h
cC0+YWRkKCJhcHBsaWNhdGlvbi94LXppcC1jb21wcmVzc2VkIiwgImFwcGxpY2F0aW9uL3ppcCIp
OworCisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImltYWdlL3gtbXMtYm1wIiks
IEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvYm1wIikpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJ
TGl0ZXJhbCgiaW1hZ2UveC13aW5kb3dzLWJtcCIpLCBBU0NJSUxpdGVyYWwoImltYWdlL2JtcCIp
KTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiaW1hZ2UveC1ibXAiKSwgQVND
SUlMaXRlcmFsKCJpbWFnZS9ibXAiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVy
YWwoImltYWdlL3gtYml0bWFwIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvYm1wIikpOworICAgIG1p
bWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJpbWFnZS94LW1zLWJpdG1hcCIpLCBBU0NJSUxp
dGVyYWwoImltYWdlL2JtcCIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgi
aW1hZ2UvanBnIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvanBlZyIpKTsKKyAgICBtaW1lVHlwZU1h
cC0+YWRkKEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvcGpwZWciKSwgQVNDSUlMaXRlcmFsKCJpbWFnZS9q
cGVnIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJpbWFnZS94LXBuZyIp
LCBBU0NJSUxpdGVyYWwoImltYWdlL3BuZyIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJ
TGl0ZXJhbCgiaW1hZ2Uvdm5kLnJpbS5wbmciKSwgQVNDSUlMaXRlcmFsKCJpbWFnZS9wbmciKSk7
CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImltYWdlL2ljbyIpLCBBU0NJSUxp
dGVyYWwoImltYWdlL3ZuZC5taWNyb3NvZnQuaWNvbiIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRk
KEFTQ0lJTGl0ZXJhbCgiaW1hZ2UvaWNvbiIpLCBBU0NJSUxpdGVyYWwoImltYWdlL3ZuZC5taWNy
b3NvZnQuaWNvbiIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgidGV4dC9p
Y28iKSwgQVNDSUlMaXRlcmFsKCJpbWFnZS92bmQubWljcm9zb2Z0Lmljb24iKSk7CisgICAgbWlt
ZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL2ljbyIpLCBBU0NJSUxpdGVy
YWwoImltYWdlL3ZuZC5taWNyb3NvZnQuaWNvbiIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFT
Q0lJTGl0ZXJhbCgiaW1hZ2UveC1pY29uIiksIEFTQ0lJTGl0ZXJhbCgiaW1hZ2Uvdm5kLm1pY3Jv
c29mdC5pY29uIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpby92
bmQucWNlbHAiKSwgQVNDSUlMaXRlcmFsKCJhdWRpby9xY2VscCIpKTsKKyAgICBtaW1lVHlwZU1h
cC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8vcWNwIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vcWNl
bHAiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL3ZuZC5xY3Ai
KSwgQVNDSUlMaXRlcmFsKCJhdWRpby9xY2VscCIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFT
Q0lJTGl0ZXJhbCgiYXVkaW8vd2F2IiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8veC13YXYiKSk7Cisg
ICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL21pZCIpLCBBU0NJSUxpdGVy
YWwoImF1ZGlvL21pZGkiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1
ZGlvL3NwLW1pZGkiKSwgQVNDSUlMaXRlcmFsKCJhdWRpby9taWRpIikpOworICAgIG1pbWVUeXBl
TWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpby94LW1pZCIpLCBBU0NJSUxpdGVyYWwoImF1ZGlv
L21pZGkiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL3gtbWlk
aSIpLCBBU0NJSUxpdGVyYWwoImF1ZGlvL21pZGkiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChB
U0NJSUxpdGVyYWwoImF1ZGlvL3gtbXBlZyIpLCBBU0NJSUxpdGVyYWwoImF1ZGlvL21wZWciKSk7
CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL21wMyIpLCBBU0NJSUxp
dGVyYWwoImF1ZGlvL21wZWciKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwo
ImF1ZGlvL3gtbXAzIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZyIpKTsKKyAgICBtaW1lVHlw
ZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZzMiKSwgQVNDSUlMaXRlcmFsKCJhdWRp
by9tcGVnIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpby94LW1w
ZWczIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZyIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRk
KEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBnMyIpLCBBU0NJSUxpdGVyYWwoImF1ZGlvL21wZWciKSk7
CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL21wZyIpLCBBU0NJSUxp
dGVyYWwoImF1ZGlvL21wZWciKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwo
ImF1ZGlvL3gtbXBnIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZyIpKTsKKyAgICBtaW1lVHlw
ZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbTRhIiksIEFTQ0lJTGl0ZXJhbCgiYXVkaW8v
bXA0IikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRpby94LW00YSIp
LCBBU0NJSUxpdGVyYWwoImF1ZGlvL21wNCIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJ
TGl0ZXJhbCgiYXVkaW8veC1tcDQiKSwgQVNDSUlMaXRlcmFsKCJhdWRpby9tcDQiKSk7CisgICAg
bWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImF1ZGlvL3gtYWFjIiksIEFTQ0lJTGl0ZXJh
bCgiYXVkaW8vYWFjIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhdWRp
by94LWFtciIpLCBBU0NJSUxpdGVyYWwoImF1ZGlvL2FtciIpKTsKKyAgICBtaW1lVHlwZU1hcC0+
YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8vbXBlZ3VybCIpLCBBU0NJSUxpdGVyYWwoImF1ZGlvL3gt
bXBlZ3VybCIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgiYXVkaW8vZmxh
YyIpLCBBU0NJSUxpdGVyYWwoImF1ZGlvL3gtZmxhYyIpKTsKKyAgICBtaW1lVHlwZU1hcC0+YWRk
KEFTQ0lJTGl0ZXJhbCgidmlkZW8vM2dwIiksIEFTQ0lJTGl0ZXJhbCgidmlkZW8vM2dwcCIpKTsK
KyAgICBtaW1lVHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgidmlkZW8vYXZpIiksIEFTQ0lJTGl0
ZXJhbCgidmlkZW8veC1tc3ZpZGVvIikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRl
cmFsKCJ2aWRlby94LW00diIpLCBBU0NJSUxpdGVyYWwoInZpZGVvL21wNCIpKTsKKyAgICBtaW1l
VHlwZU1hcC0+YWRkKEFTQ0lJTGl0ZXJhbCgidmlkZW8veC1xdWlja3RpbWUiKSwgQVNDSUlMaXRl
cmFsKCJ2aWRlby9xdWlja3RpbWUiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVy
YWwoImFwcGxpY2F0aW9uL2phdmEiKSwgQVNDSUlMaXRlcmFsKCJhcHBsaWNhdGlvbi9qYXZhLWFy
Y2hpdmUiKSk7CisgICAgbWltZVR5cGVNYXAtPmFkZChBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9u
L3gtamF2YS1hcmNoaXZlIiksIEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YS1hcmNoaXZl
IikpOworICAgIG1pbWVUeXBlTWFwLT5hZGQoQVNDSUlMaXRlcmFsKCJhcHBsaWNhdGlvbi94LXpp
cC1jb21wcmVzc2VkIiksIEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vemlwIikpOwogCiAgICAg
cmV0dXJuICptaW1lVHlwZU1hcDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Db250ZW50VHlwZVBhcnNlci5jcHAKaW5kZXggNjQ3OGQ5YmE3YjAwZDQ0MzQ1
NWVhMWJmMTNlZWEzN2RiOGE1YmQzNi4uZGRhNDU4ODk5OTEwZTEzYjJjYjZiYzUzNjJlZDU1ZTQ0
NjA4YTg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250
ZW50VHlwZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9D
b250ZW50VHlwZVBhcnNlci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzaXplX3QgQ29udGVudFR5
cGVQYXJzZXI6OnBhcmFtZXRlckNvdW50KCkgY29uc3QKIAogdm9pZCBDb250ZW50VHlwZVBhcnNl
cjo6cGFyc2UoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjb250
ZW50VHlwZVBhcmFtZXRlck5hbWUsICgiQ29udGVudC1UeXBlIikpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCBjb250ZW50VHlwZVBhcmFtZXRlck5hbWUsIChBU0NJSUxp
dGVyYWwoIkNvbnRlbnQtVHlwZSIpKSk7CiAKICAgICBpZiAoIW1fY29udGVudFR5cGUuc3RhcnRz
V2l0aChjb250ZW50VHlwZVBhcmFtZXRlck5hbWUpKSB7CiAgICAgICAgIExPR19FUlJPUigiSW52
YWxpZCBDb250ZW50LVR5cGUgc3RyaW5nICclcyciLCBtX2NvbnRlbnRUeXBlLmFzY2lpKCkuZGF0
YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL0Rv
d25sb2FkQnVuZGxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2lu
L0Rvd25sb2FkQnVuZGxlV2luLmNwcAppbmRleCBmMGYzMDI3Yjg1ODE5Y2E4MjZjNTY2ZGRkOGJl
MWJiYTAyNWE3ZDlkLi4yYjM2MTk1YWQ0NDFlNmQxNmEwMThiZWMwYmU3ZTYyODljYzlkMDU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Eb3dubG9hZEJ1
bmRsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vRG93
bmxvYWRCdW5kbGVXaW4uY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBVSW50MzIgbWFnaWNO
dW1iZXIoKQogCiBjb25zdCBTdHJpbmcmIGZpbGVFeHRlbnNpb24oKQogewotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBleHRlbnNpb24sICgiLmRvd25sb2FkIikpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBleHRlbnNpb24sIChBU0NJSUxpdGVy
YWwoIi5kb3dubG9hZCIpKSk7CiAgICAgcmV0dXJuIGV4dGVuc2lvbjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAppbmRleCAwYmIzNGIwYzhmYjM0OWE5NzEx
ZmU3OGVkN2EyY2U0NTkzYTM0M2RlLi40MmE1MzZmNjkzZGFlYWMwMDcyMjlhZDJlMGU4YTA5MDJk
OTI2NmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcApAQCAt
MjQyLDggKzI0Miw4IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHJh
Y2tlckRhdGFiYXNlKCkKICAgICBBU1NFUlQobV9pc0FjdGl2ZSk7CiAKICAgICBtX2RhdGFiYXNl
R3VhcmQubG9jaygpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBmaWxl
TWF0Y2hQYXR0ZXJuLCAoIioubG9jYWxzdG9yYWdlIikpOwotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoY29uc3QgU3RyaW5nLCBmaWxlRXh0LCAoIi5sb2NhbHN0b3JhZ2UiKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGZpbGVNYXRjaFBhdHRlcm4sIChBU0NJSUxpdGVy
YWwoIioubG9jYWxzdG9yYWdlIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgZmlsZUV4dCwgKEFTQ0lJTGl0ZXJhbCgiLmxvY2Fsc3RvcmFnZSIpKSk7CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGZpbGVFeHRMZW5ndGggPSBmaWxlRXh0Lmxlbmd0aCgpOwogICAg
IG1fZGF0YWJhc2VHdWFyZC51bmxvY2soKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRCb29sZWFuLmNwcAppbmRleCBmOTg1OGJlNWIxZTI4MDEwMzQ1MjgwMTU2YTg0YWNjZTg4NjY1
MTk5Li43M2Y3MmU2YTJhY2I3OTY5OGYxMDgwZGM4Yjk1NzNmZmU3NDVjNzBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcApAQCAtMzEsMTYgKzMxLDEwIEBAIFNW
R0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yOjpTVkdBbmltYXRlZEJvb2xlYW5BbmltYXRvcihTVkdB
bmltYXRpb25FbGVtZW50KiBhbmltCiB7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1RydWVT
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIHRydWVTdHJpbmcsICgidHJ1ZSIpKTsKLSAgICByZXR1cm4gc3RyaW5nID09
IHRydWVTdHJpbmc7Ci19Ci0KIFBhc3NPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBTVkdBbmltYXRl
ZEJvb2xlYW5BbmltYXRvcjo6Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKIHsKICAgICBPd25QdHI8U1ZHQW5pbWF0ZWRUeXBlPiBhbmltdGVkVHlwZSA9IFNWR0FuaW1h
dGVkVHlwZTo6Y3JlYXRlQm9vbGVhbihuZXcgYm9vbCk7Ci0gICAgYW5pbXRlZFR5cGUtPmJvb2xl
YW4oKSA9IGlzVHJ1ZVN0cmluZyhzdHJpbmcpOworICAgIGFuaW10ZWRUeXBlLT5ib29sZWFuKCkg
PSAoc3RyaW5nID09ICJ0cnVlIik7IC8vIHdhdD8KICAgICByZXR1cm4gYW5pbXRlZFR5cGUucmVs
ZWFzZSgpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>