<?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>87276</bug_id>
          
          <creation_ts>2012-05-23 10:14:58 -0700</creation_ts>
          <short_desc>IndexedDB: Align codes and names for IDB-specific and DOM-specific errors/exceptions</short_desc>
          <delta_ts>2012-06-08 14:58:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>631758</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-23 10:14:58 -0700</bug_when>
    <thetext>IndexedDB: Align codes and names for IDB-specific and DOM-specific errors/exceptions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631796</commentid>
    <comment_count>1</comment_count>
      <attachid>143595</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-23 10:50:15 -0700</bug_when>
    <thetext>Created attachment 143595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631800</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-23 10:52:11 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631805</commentid>
    <comment_count>3</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-23 10:55:37 -0700</bug_when>
    <thetext>jsbell@, dgrogan@ mind taking a look - this patch is entirely about teasing out system (DOM) exception/error codes from IDB-specific exception codes, and providing a hook to let DOM exceptions have IDB-specific error messages:
http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#exceptions

All of the legacy constants hang off of IDBDatabaseException (as they do today)- and I&apos;m introducing new constants because I&apos;ve added name constants to avoid some of the issues we hit with the IDBCursor.NEXT/etc landing - in case someone does something like:

if (IDBDatabaseException[exception.name] == IDBDatabaseException.VERSION_ERR)

which is admittedly kind of a degenerate case, but it&apos;s mostly defensive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631866</commentid>
    <comment_count>4</comment_count>
      <attachid>143595</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-23 11:50:34 -0700</bug_when>
    <thetext>Comment on attachment 143595
Patch

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

&gt; LayoutTests/storage/indexeddb/constants-expected.txt:8
&gt; +PASS IDBDatabaseException.UnknownError is 1

My understanding of the spec is that IDBDatabaseException goes away completely, and that exceptions are all DOMExceptions thrown by name. Is there any benefit in introducing IDBDatabaseException.UnknownError (new name) if we are only keeping IDBDatabaseException.UNKNOWN_ERR for compatibility?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632100</commentid>
    <comment_count>5</comment_count>
      <attachid>143595</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-23 15:13:05 -0700</bug_when>
    <thetext>Comment on attachment 143595
Patch

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

&gt;&gt; LayoutTests/storage/indexeddb/constants-expected.txt:8
&gt;&gt; +PASS IDBDatabaseException.UnknownError is 1
&gt; 
&gt; My understanding of the spec is that IDBDatabaseException goes away completely, and that exceptions are all DOMExceptions thrown by name. Is there any benefit in introducing IDBDatabaseException.UnknownError (new name) if we are only keeping IDBDatabaseException.UNKNOWN_ERR for compatibility?

It&apos;s there entirely for backwards compatibility - if APIs were previously looking at the exception&apos;s name field.

See my previous comment in the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632116</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-23 15:32:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; It&apos;s there entirely for backwards compatibility - if APIs were previously looking at the exception&apos;s name field.
&gt; 
&gt; See my previous comment in the bug

Ah, yes, sorry - the &quot;degenerate case&quot;. For me, that falls below the threshold for compat support. IMHO we should break those now than add extra surface area to the API to support them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632136</commentid>
    <comment_count>7</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-23 15:56:07 -0700</bug_when>
    <thetext>sounds fine to me..new patch comin&apos; up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632920</commentid>
    <comment_count>8</comment_count>
      <attachid>143846</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-24 10:33:10 -0700</bug_when>
    <thetext>Created attachment 143846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632942</commentid>
    <comment_count>9</comment_count>
      <attachid>143846</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-24 10:55:03 -0700</bug_when>
    <thetext>Comment on attachment 143846
Patch

Attachment 143846 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12807166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632952</commentid>
    <comment_count>10</comment_count>
      <attachid>143852</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-24 11:04:55 -0700</bug_when>
    <thetext>Created attachment 143852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633041</commentid>
    <comment_count>11</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-24 12:17:06 -0700</bug_when>
    <thetext>ok jsbell@ ready for review again - removed the &quot;new legacy&quot; constants...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633269</commentid>
    <comment_count>12</comment_count>
      <attachid>143852</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-24 14:57:23 -0700</bug_when>
    <thetext>Comment on attachment 143852
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        The IDB spec has evolved to MixedCase, string-based style names

I&apos;d explicitly mention &quot;DOM4-style DOMExceptions&quot; here as a keyword for people to look for.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseException.cpp:38
&gt;      const char* const name;

MAYBE:  in DOM4 parlance this is now |type| (per http://www.w3.org/TR/dom/#exception-domexception) - rename? (probably save that for later)

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseException.cpp:40
&gt; +    const ExceptionCode domCode;

Suggest just |code| instead of |domCode| which matches http://www.w3.org/TR/dom/#exception-domexception - or maybe |legacyCode|

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseException.cpp:42
&gt; +    { &quot;UnknownError&quot;, &quot;An unknown error occurred within Indexed Database.&quot;, 0 },

Add a comment that these names/descriptions are from the spec and are IDB specific

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseException.cpp:51
&gt; +    { &quot;NotFoundError&quot;, &quot;An operation failed because the requested database object could not be found.&quot;, NOT_FOUND_ERR },

Add  a comment that these are standard DOM4 exception names, but have IDB-specific descriptions

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseException.h:48
&gt;          NON_TRANSIENT_ERR,

Add a FIXME that NON_TRANSIENT_ERR will be removed (no longer in IDB spec)

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseException.h:51
&gt;          NOT_ALLOWED_ERR,

Add a FIXME that NOT_ALLOWED_ERR will be removed (no longer in IDB spec)

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseException.idl:45
&gt; +        const unsigned short CONSTRAINT_ERR = 3;

This renumbering may break code that has hardcoded the number (e.g. via Closure compiler). Should we keep the legacy numbers intact until we actually remove IDBDatabaseException? Would require dummy entries in the C++ code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633357</commentid>
    <comment_count>13</comment_count>
      <attachid>143922</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-24 16:39:00 -0700</bug_when>
    <thetext>Created attachment 143922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634140</commentid>
    <comment_count>14</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-25 11:54:45 -0700</bug_when>
    <thetext>jsbell@ - ping - hopefully this is just a rubber stamp at this point, comments have been addressed.

(I have another patch coming up which is dependent on this and has more extensive tests too)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634144</commentid>
    <comment_count>15</comment_count>
      <attachid>143922</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-05-25 11:56:37 -0700</bug_when>
    <thetext>Comment on attachment 143922
Patch

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

lgtm with nit

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:216
&gt; +        // FIXME: IDBDatabaseError doesn&apos;t yet do proper translation of IDB-specifc uses of error codes, this should be IDB_ABORT_ERR

Typo: &quot;specifc&quot; -&gt; &quot;specific&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634287</commentid>
    <comment_count>16</comment_count>
      <attachid>144147</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-25 14:28:52 -0700</bug_when>
    <thetext>Created attachment 144147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636182</commentid>
    <comment_count>17</comment_count>
      <attachid>144582</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-29 10:22:49 -0700</bug_when>
    <thetext>Created attachment 144582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636184</commentid>
    <comment_count>18</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-29 10:23:32 -0700</bug_when>
    <thetext>tony@ - r? cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636275</commentid>
    <comment_count>19</comment_count>
      <attachid>144582</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-29 11:41:27 -0700</bug_when>
    <thetext>Comment on attachment 144582
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseException.cpp:45
&gt; +    { &quot;NonTransientError&quot;, &quot;NonTransientError&quot;, 0 }, // FIXME: No longer in the spec
&gt; +    { 0, 0, 0 }, // FIXME: Previous/legacy value NOT_FOUND_ERR.

Keeping parallel arrays seems fragile.  Are there plans to move away from this?  E.g., maybe we could use a map or a static sized array where we assign each entry based on the enum values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636281</commentid>
    <comment_count>20</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-29 11:46:09 -0700</bug_when>
    <thetext>Totally agree on parallel arrays, it&apos;s very fragile - this happens to be getting a lot of attention right now (read: 2-3 more patches this week against it) so it will stay in sync but long term we&apos;ll be moving away from that to a map...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636431</commentid>
    <comment_count>21</comment_count>
      <attachid>144582</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 14:20:47 -0700</bug_when>
    <thetext>Comment on attachment 144582
Patch

Clearing flags on attachment: 144582

Committed r118835: &lt;http://trac.webkit.org/changeset/118835&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636432</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 14:20:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143595</attachid>
            <date>2012-05-23 10:50:15 -0700</date>
            <delta_ts>2012-05-24 10:33:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87276-20120523105015.patch</filename>
            <type>text/plain</type>
            <size>28467</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ5Zjc0N2Q3ZTk0MTVj
MGRmMjk1MGNmYTQ3MzFjNmFlOGU1NTU5Zi4uODBjNjA5ZWVmZGI1NWMxMGMzZGRjMmQ5NDgzYzc0
ODc5ZjkzNTBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA1LTIzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFs
aWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJy
b3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1
c2UgdGhlIG5ldworICAgICAgICBleGNlcHRpb24gY29uc3RhbnQgdmFsdWVzLgorCisgICAgICAg
IFRoZSBJREIgc3BlYyBoYXMgZXZvbHZlZCB0byBNaXhlZENhc2UsIHN0cmluZy1iYXNlZCBzdHls
ZSBuYW1lcworICAgICAgICBmb3IgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiBVTkRFUlNDT1JFX0NP
TlNUQU5UX0VSUiBjb2Rlcy4gQ2hhbmdlCisgICAgICAgIHRvIHVzZSBNaXhlZENhc2UgZXJyb3Iv
ZXhjZXB0aW9uIG5hbWVzLCBhbmQgdGVhc2Ugb3V0IHRoZQorICAgICAgICBJREItc3BlY2lmaWMg
ZXhjZXB0aW9uL2Vycm9yIGNvZGVzL25hbWVzIGZyb20gdGhlIHN5c3RlbS1sZXZlbAorICAgICAg
ICBjb2Rlcy4gTWFrZSBzdXJlIHRoYXQgdGhlIGxlZ2FjeSBJREItbWFza2VkIGV4Y2VwdGlvbiBj
b2RlIHZhbHVlcworICAgICAgICBtYXRjaCB0aGUgRE9NIGV4Y2VwdGlvbiB2YWx1ZXMuIE1ha2Ug
c3VyZSB0aGF0CisgICAgICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uW2V4Y2VwdGlvbi5uYW1lXSBz
dGlsbCB3b3Jrcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwOgorICAgICAgICAo
SURCRGF0YWJhc2VFeGNlcHRpb25OYW1lRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2Ny
aXB0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlv
bi5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6aW5kZXgpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbDo6b2JqZWN0U3RvcmUpOgorCiAyMDEyLTA1LTIyICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgIUhBVkUoQUNDRVNTSUJJTElUWSkgZGVwZW5kcyBvbiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY3Rpb25WZXJiIGluIHRoZSBDaHJvbWl1bSBBbmRyb2lkIGJ1
aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNlMmU0MjhmYTQ3NzNjMjVmOTc1ZWFm
MDhiMzMyOGM3N2EwNTY2OWUuLjJlZjhjOWI3NzkzMTlmMmViZDg5NmZmOTU4MThiZTA3NzY3YjA3
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDUt
MjMgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4
ZWREQjogQWxpZ24gY29kZXMgYW5kIG5hbWVzIGZvciBJREItc3BlY2lmaWMgYW5kIERPTS1zcGVj
aWZpYyBlcnJvcnMvZXhjZXB0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODcyNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oOgorICAgICAg
ICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKwogMjAxMi0wNS0yMiAgSWFuIFZvbGxp
Y2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1vdmUgYXNz
ZXJ0cyBpbiBDQ0xheWVyVHJlZUhvc3RUZXN0OjpkaXNwYXRjaCoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4IDc4MjMwNDJkZGMzMTA3OWNl
MGE5M2U1Njc3MTc0MzQ0YmYxZGQ1MjcuLjIyNTM4YzNlMDcyYmNjNjlmZmFlYzQ5ZmI4YTRjMjIx
MWY2MDg3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmNwcApAQCAtMTI1LDEzICsxMjUsMTMgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJD
dXJzb3I6OnVwZGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmUKICAg
ICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6dXBkYXRlIik7CiAKICAgICBpZiAoIW1fZ290VmFsdWUp
IHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6SURCX0lOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBwcnBWYWx1
ZTsKICAgICBpZiAodmFsdWUtPmJsb2JVUkxzKCkuc2l6ZSgpID4gMCkgewogICAgICAgICAvLyBG
SVhNRTogQWRkIEJsb2IvRmlsZS9GaWxlTGlzdCBzdXBwb3J0Ci0gICAgICAgIGVjID0gREFUQV9D
TE9ORV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9EQVRBX0NM
T05FX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC0xNDgsNyArMTQ4LDcgQEAg
dm9pZCBJREJDdXJzb3I6OmFkdmFuY2UodW5zaWduZWQgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgSURCX1RSQUNFKCJJREJDdXJzb3I6OmFkdmFuY2UiKTsKICAgICBpZiAo
IW1fZ290VmFsdWUpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0lOVkFMSURfU1RBVEVfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xODYsNyArMTg2LDcgQEAgdm9pZCBJREJDdXJzb3I6OmNv
bnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgfQogCiAgICAgaWYgKCFtX2dvdFZhbHVlKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElE
X1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjA0LDcgKzIwNCw3IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjpkZWxldGVGdW5jdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0CiB7CiAgICAgSURCX1RSQUNFKCJJREJDdXJzb3I6OmRl
bGV0ZSIpOwogICAgIGlmICghbV9nb3RWYWx1ZSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfSU5WQUxJRF9T
VEFURV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBSZWZQdHI8SURCUmVxdWVz
dD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0
aGlzKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggNzQ4MTZiOGI4NWIxMTlhYjBiN2Y1ODE2
YTRkNTEzNGZiMGUzMTljYy4uZTFmNDRjZDUwNjBhNWM1ODAxY2RhMGY0ZWY5MmE1MGEwMmNlNzI2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
LmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IElEQkRh
dGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvCiAgICAgfQog
CiAgICAgaWYgKCFrZXlQYXRoLmlzTnVsbCgpICYmICFrZXlQYXRoLmlzVmFsaWQoKSkgewotICAg
ICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246
OklEQl9TWU5UQVhfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTExMiw3ICsx
MTIsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJEYXRhYmFzZTo6Y3JlYXRlT2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjbwogICAgICAgICBvcHRpb25zLmdldCgiYXV0
b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQpOwogCiAgICAgaWYgKGF1dG9JbmNyZW1lbnQgJiYg
KChrZXlQYXRoLnR5cGUoKSA9PSBJREJLZXlQYXRoOjpTdHJpbmdUeXBlICYmIGtleVBhdGguc3Ry
aW5nKCkuaXNFbXB0eSgpKSB8fCBrZXlQYXRoLnR5cGUoKSA9PSBJREJLZXlQYXRoOjpBcnJheVR5
cGUpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICBlYyA9IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKQEAgLTE1NCw3ICsxNTQsNyBAQCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uPiBJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dAogewogICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBzdG9yZU5hbWVzID0gcHJwU3RvcmVOYW1l
czsKICAgICBpZiAoIXN0b3JlTmFtZXMgfHwgc3RvcmVOYW1lcy0+aXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpJREJfSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggMDEwYTEyMGU1MTU2ZTE2YzA3MWQ0NTA2Mjg3
MDQ5NGRmYWE2MzI1MS4uNmMxOWJkZTliMWM5YTVhMWU5MGRmMDg3ZmIxNjc3ZTc2NjkxMWUzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VC
YWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgSURC
VHJhbnNhY3RpbwogewogICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmpl
Y3RTdG9yZSA9IG1fb2JqZWN0U3RvcmVzLmdldChuYW1lKTsKICAgICBpZiAoIW9iamVjdFN0b3Jl
KSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7Cisg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1RfRk9VTkRfRVJSOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiBk
YXRhYmFzZSA9IHRoaXM7CkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpzZXRWZXJzaW9uKGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJD
YWwKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MgPSBwcnBDYWxsYmFja3M7CiAg
ICAgUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcyA9IHBycERh
dGFiYXNlQ2FsbGJhY2tzOwogICAgIGlmICghbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5jb250YWlu
cyhkYXRhYmFzZUNhbGxiYWNrcykpIHsKLSAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRh
dGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6QUJPUlRfRVJSLCAiQ29u
bmVjdGlvbiB3YXMgY2xvc2VkIGJlZm9yZSBzZXQgdmVyc2lvbiB0cmFuc2FjdGlvbiB3YXMgY3Jl
YXRlZCIpKTsKKyAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNy
ZWF0ZVdpdGhvdXRPZmZzZXQoQUJPUlRfRVJSLCAiQ29ubmVjdGlvbiB3YXMgY2xvc2VkIGJlZm9y
ZSBzZXQgdmVyc2lvbiB0cmFuc2FjdGlvbiB3YXMgY3JlYXRlZCIpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBmb3IgKERhdGFiYXNlQ2FsbGJhY2tzU2V0Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYmVnaW4oKTsgaXQgIT0gbV9kYXRhYmFzZUNhbGxi
YWNrc1NldC5lbmQoKTsgKytpdCkgewpAQCAtMzEyLDcgKzMxMiw3IEBAIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFu
c2FjdGlvbihECiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYmplY3RTdG9yZU5hbWVz
LT5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIGlmICghbV9vYmplY3RTdG9yZXMuY29udGFpbnMo
b2JqZWN0U3RvcmVOYW1lcy0+aXRlbShpKSkpIHsKLSAgICAgICAgICAgIGVjID0gSURCRGF0YWJh
c2VFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7CisgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwCmluZGV4IGQ4NmE1NTJkYjNjNWZjNGQyNjU2
NDBkODczOGIxMGVkMzc3MzIzOGIuLjUwMzk4OTM4MDMzZGYwMjMxOGUwNDcyN2VkNDE0ZDlmOGZm
MzdkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHAKQEAgLTM0LDIyICszNCwyOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBzdHJ1Y3QgSURCRGF0YWJhc2VFeGNlcHRpb25OYW1lRGVz
Y3JpcHRpb24geworc3RhdGljIGNvbnN0IHN0cnVjdCBJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVE
ZXNjcmlwdGlvbiB7CiAgICAgY29uc3QgY2hhciogY29uc3QgbmFtZTsKICAgICBjb25zdCBjaGFy
KiBjb25zdCBkZXNjcmlwdGlvbjsKKyAgICBjb25zdCBFeGNlcHRpb25Db2RlIGRvbUNvZGU7CiB9
IGlkYkRhdGFiYXNlRXhjZXB0aW9uc1tdID0gewotICAgIHsgIlVOS05PV05fRVJSIiwgIkFuIHVu
a25vd24gZXJyb3Igb2NjdXJyZWQgd2l0aGluIEluZGV4ZWQgRGF0YWJhc2UuIiB9LAotICAgIHsg
Ik5PTl9UUkFOU0lFTlRfRVJSIiwgIk5PTl9UUkFOU0lFTlRfRVJSIiB9LCAvLyBGSVhNRTogV3Jp
dGUgYSBiZXR0ZXIgbWVzc2FnZSBpZiBpdCdzIGV2ZXIgcG9zc2libGUgdGhpcyBpcyB0aHJvd24u
Ci0gICAgeyAiTk9UX0ZPVU5EX0VSUiIsICJUaGUgbmFtZSBzdXBwbGllZCBkb2VzIG5vdCBtYXRj
aCBhbnkgZXhpc3RpbmcgaXRlbS4iIH0sCi0gICAgeyAiQ09OU1RSQUlOVF9FUlIiLCAiVGhlIHJl
cXVlc3QgY2Fubm90IGJlIGNvbXBsZXRlZCBkdWUgdG8gYSBmYWlsZWQgY29uc3RyYWludC4iIH0s
Ci0gICAgeyAiREFUQV9FUlIiLCAiVGhlIGRhdGEgcHJvdmlkZWQgZG9lcyBub3QgbWVldCB0aGUg
cmVxdWlyZW1lbnRzIG9mIHRoZSBmdW5jdGlvbi4iIH0sCi0gICAgeyAiTk9UX0FMTE9XRURfRVJS
IiwgIlRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgdG8gYmUgY2FsbGVkIGluIHN1Y2ggYSBj
b250ZXh0LiIgfSwKLSAgICB7ICJUUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAiQSByZXF1ZXN0
IHdhcyBwbGFjZWQgYWdhaW5zdCBhIHRyYW5zYWN0aW9uIHdoaWNoIGlzIGVpdGhlciBjdXJyZW50
bHkgbm90IGFjdGl2ZSwgb3Igd2hpY2ggaXMgZmluaXNoZWQuIiB9LAotICAgIHsgIkFCT1JUX0VS
UiIsICJUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0IGNhbm5vdCBi
ZSBmdWxmaWxsZWQuIiB9LAotICAgIHsgIlJFQURfT05MWV9FUlIiLCAiQSB3cml0ZSBvcGVyYXRp
b24gd2FzIGF0dGVtcHRlZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbi4iIH0sCi0gICAgeyAi
VElNRU9VVF9FUlIiLCAiQSBsb2NrIGZvciB0aGUgdHJhbnNhY3Rpb24gY291bGQgbm90IGJlIG9i
dGFpbmVkIGluIGEgcmVhc29uYWJsZSB0aW1lLiIgfSwgLy8gRklYTUU6IFRoaXMgaXNuJ3QgdXNl
ZCB5ZXQuCi0gICAgeyAiUVVPVEFfRVJSIiwgIlRoZSBvcGVyYXRpb24gZmFpbGVkIGJlY2F1c2Ug
dGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBzdG9y
YWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBkZWNsaW5lZCB0byBnaXZlIG1vcmUg
c3BhY2UgdG8gdGhlIGRhdGFiYXNlLiIgfSwgLy8gRklYTUU6IFRoaXMgaXNuJ3QgdXNlZCB5ZXQK
LSAgICB7ICJWRVJfRVJSIiwgIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNl
IHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIgfSAvLyBG
SVhNRTogVGhpcyBpc24ndCB1c2VkIHlldAorICAgIHsgIlVua25vd25FcnJvciIsICJBbiB1bmtu
b3duIGVycm9yIG9jY3VycmVkIHdpdGhpbiBJbmRleGVkIERhdGFiYXNlLiIsIDAgfSwKKyAgICB7
ICJOb25UcmFuc2llbnRFcnJvciIsICJOb25UcmFuc2llbnRFcnJvciIsIDAgfSwgLy8gRklYTUU6
IE5vIGxvbmdlciBpbiB0aGUgc3BlYworICAgIHsgIkNvbnN0cmFpbnRFcnJvciIsICJBIG11dGF0
aW9uIG9wZXJhdGlvbiBpbiB0aGUgdHJhbnNhY3Rpb24gZmFpbGVkIGJlY2F1c2UgYSBjb25zdHJh
aW50IHdhcyBub3Qgc2F0aXNmaWVkLiIsIDAgfSwKKyAgICB7ICJEYXRhRXJyb3IiLCAiVGhlIGRh
dGEgcHJvdmlkZWQgZG9lcyBub3QgbWVldCByZXF1aXJlbWVudHMuIiwgMCB9LAorICAgIHsgIk5v
dEFsbG93ZWRFcnJvciIsICJUaGlzIGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkIHRvIGJlIGNhbGxl
ZCBpbiBzdWNoIGEgY29udGV4dC4iLCAwfSwgLy8gRklYTUU6IG5vIGxvbmdlciBpbiB0aGUgc3Bl
YworICAgIHsgIlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciIsICJBIHJlcXVlc3Qgd2FzIHBsYWNl
ZCBhZ2FpbnN0IGEgdHJhbnNhY3Rpb24gd2hpY2ggaXMgZWl0aGVyIGN1cnJlbnRseSBub3QgYWN0
aXZlLCBvciB3aGljaCBpcyBmaW5pc2hlZC4iLCAwIH0sCisgICAgeyAiUmVhZE9ubHlFcnJvciIs
ICJBIHdyaXRlIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0
aW9uLiIsIDAgfSwKKyAgICB7ICJWZXJzaW9uRXJyb3IiLCAiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0
byBvcGVuIGEgZGF0YWJhc2UgdXNpbmcgYSBsb3dlciB2ZXJzaW9uIHRoYW4gdGhlIGV4aXN0aW5n
IHZlcnNpb24uIiwgMCB9LCAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldAorCisgICAgeyAi
Tm90Rm91bmRFcnJvciIsICJBbiBvcGVyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHJlcXVlc3Rl
ZCBkYXRhYmFzZSBvYmplY3QgY291bGQgbm90IGJlIGZvdW5kLiIsIE5PVF9GT1VORF9FUlIgfSwK
KyAgICB7ICJJbnZhbGlkU3RhdGVFcnJvciIsICJBbiBvcGVyYXRpb24gd2FzIGNhbGxlZCBvbiBh
biBvYmplY3Qgb24gd2hpY2ggaXQgaXMgbm90IGFsbG93ZWQgb3IgYXQgYSB0aW1lIHdoZW4gaXQg
aXMgbm90IGFsbG93ZWQuIiwgSU5WQUxJRF9TVEFURV9FUlIgfSwKKyAgICB7ICJJbnZhbGlkQWNj
ZXNzRXJyb3IiLCAiQW4gaW52YWxpZCBvcGVyYXRpb24gd2FzIHBlcmZvcm1lZCBvbiBhbiBvYmpl
Y3QuIiwgSU5WQUxJRF9BQ0NFU1NfRVJSIH0sCisgICAgeyAiQWJvcnRFcnJvciIsICJUaGUgdHJh
bnNhY3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0IGNhbm5vdCBiZSBmdWxmaWxsZWQu
IiwgQUJPUlRfRVJSIH0sCisgICAgeyAiVGltZW91dEVycm9yIiwgIkEgbG9jayBmb3IgdGhlIHRy
YW5zYWN0aW9uIGNvdWxkIG5vdCBiZSBvYnRhaW5lZCBpbiBhIHJlYXNvbmFibGUgdGltZS4iLCBU
SU1FT1VUX0VSUiB9LCAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldC4KKyAgICB7ICJRdW90
YUV4Y2VlZGVkRXJyb3IiLCAiVGhlIG9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGVyZSB3YXMg
bm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEg
d2FzIHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVkIHRvIGdpdmUgbW9yZSBzcGFjZSB0byB0
aGUgZGF0YWJhc2UuIiwgUVVPVEFfRVhDRUVERURfRVJSIH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0
IHVzZWQgeWV0CisgICAgeyAiU3ludGF4RXJyb3IiLCAiVGhlIGtleXBhdGggYXJndW1lbnQgY29u
dGFpbnMgYW4gaW52YWxpZCBrZXkgcGF0aC4iLCBTWU5UQVhfRVJSIH0sCisgICAgeyAiRGF0YUNs
b25lRXJyb3IiLCAiVGhlIGRhdGEgYmVpbmcgc3RvcmVkIGNvdWxkIG5vdCBiZSBjbG9uZWQgYnkg
dGhlIGludGVybmFsIHN0cnVjdHVyZWQgY2xvbmluZyBhbGdvcml0aG0uIiwgREFUQV9DTE9ORV9F
UlIgfQogfTsKIAogYm9vbCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0
aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiogZGVzY3JpcHRp
b24pCkBAIC01NywxNSArNjMsMTggQEAgYm9vbCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6aW5pdGlh
bGl6ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGUKICAgICBpZiAo
ZWMgPCBJREJEYXRhYmFzZUV4Y2VwdGlvbk9mZnNldCB8fCBlYyA+IElEQkRhdGFiYXNlRXhjZXB0
aW9uTWF4KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBzaXplX3QgdGFibGVTaXplID0g
V1RGX0FSUkFZX0xFTkdUSChpZGJEYXRhYmFzZUV4Y2VwdGlvbnMpOworICAgIHNpemVfdCB0YWJs
ZUluZGV4ID0gZWMgLSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CisKKyAgICBj
b25zdCBJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbiogZW50cnkgPSB0YWJsZUlu
ZGV4IDwgdGFibGVTaXplID8gJmlkYkRhdGFiYXNlRXhjZXB0aW9uc1t0YWJsZUluZGV4XSA6IDA7
CisKICAgICBkZXNjcmlwdGlvbi0+dHlwZU5hbWUgPSAiRE9NIElEQkRhdGFiYXNlIjsKLSAgICBk
ZXNjcmlwdGlvbi0+Y29kZSA9IGVjIC0gSURCRGF0YWJhc2VFeGNlcHRpb25PZmZzZXQ7CisgICAg
ZGVzY3JpcHRpb24tPmNvZGUgPSAoZW50cnkgJiYgZW50cnktPmRvbUNvZGUpID8gZW50cnktPmRv
bUNvZGUgOiBlYyAtIElEQkRhdGFiYXNlRXhjZXB0aW9uT2Zmc2V0OwogICAgIGRlc2NyaXB0aW9u
LT50eXBlID0gSURCRGF0YWJhc2VFeGNlcHRpb25UeXBlOwogCi0gICAgc2l6ZV90IHRhYmxlU2l6
ZSA9IFdURl9BUlJBWV9MRU5HVEgoaWRiRGF0YWJhc2VFeGNlcHRpb25zKTsKLSAgICBzaXplX3Qg
dGFibGVJbmRleCA9IGVjIC0gVU5LTk9XTl9FUlI7CiAKLSAgICBkZXNjcmlwdGlvbi0+bmFtZSA9
IHRhYmxlSW5kZXggPCB0YWJsZVNpemUgPyBpZGJEYXRhYmFzZUV4Y2VwdGlvbnNbdGFibGVJbmRl
eF0ubmFtZSA6IDA7Ci0gICAgZGVzY3JpcHRpb24tPmRlc2NyaXB0aW9uID0gdGFibGVJbmRleCA8
IHRhYmxlU2l6ZSA/IGlkYkRhdGFiYXNlRXhjZXB0aW9uc1t0YWJsZUluZGV4XS5kZXNjcmlwdGlv
biA6IDA7CisgICAgZGVzY3JpcHRpb24tPm5hbWUgPSBlbnRyeSA/IGVudHJ5LT5uYW1lIDogMDsK
KyAgICBkZXNjcmlwdGlvbi0+ZGVzY3JpcHRpb24gPSBlbnRyeSA/IGVudHJ5LT5kZXNjcmlwdGlv
biA6IDA7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oCmluZGV4IDU3MGEyZmNk
NjRmNTgzODNlNzZmZDA1MzZkYzcwOTBmOGNjZThiMmUuLjA4YmU1OGE4YzY0ZmRlNWM2OGY5ZjBm
ZTMwMzM5YjRiMTEyMGQyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaApAQCAtNDYsMTYgKzQ2LDIxIEBAIHB1
YmxpYzoKICAgICAgICAgTk9fRVJSID0gSURCRGF0YWJhc2VFeGNlcHRpb25PZmZzZXQsCiAgICAg
ICAgIFVOS05PV05fRVJSLAogICAgICAgICBOT05fVFJBTlNJRU5UX0VSUiwKLSAgICAgICAgTk9U
X0ZPVU5EX0VSUiwKICAgICAgICAgQ09OU1RSQUlOVF9FUlIsCiAgICAgICAgIERBVEFfRVJSLAog
ICAgICAgICBOT1RfQUxMT1dFRF9FUlIsCiAgICAgICAgIFRSQU5TQUNUSU9OX0lOQUNUSVZFX0VS
UiwKLSAgICAgICAgQUJPUlRfRVJSLAogICAgICAgICBSRUFEX09OTFlfRVJSLAotICAgICAgICBU
SU1FT1VUX0VSUiwKLSAgICAgICAgUVVPVEFfRVJSLAotICAgICAgICBWRVJfRVJSCisgICAgICAg
IFZFUl9FUlIsCisKKyAgICAgICAgSURCX05PVF9GT1VORF9FUlIsCisgICAgICAgIElEQl9JTlZB
TElEX1NUQVRFX0VSUiwKKyAgICAgICAgSURCX0lOVkFMSURfQUNDRVNTX0VSUiwKKyAgICAgICAg
SURCX0FCT1JUX0VSUiwKKyAgICAgICAgSURCX1RJTUVPVVRfRVJSLAorICAgICAgICBJREJfUVVP
VEFfRVhDRUVERURfRVJSLAorICAgICAgICBJREJfU1lOVEFYX0VSUiwKKyAgICAgICAgSURCX0RB
VEFfQ0xPTkVfRVJSLAogICAgIH07CiAKICAgICBzdGF0aWMgaW50IEVycm9yQ29kZVRvRXhjZXB0
aW9uQ29kZShpbnQgZXJyb3JDb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsCmluZGV4IGI0ZjE5ZTFiOWY1
YTlhNTQ2ZDVlZjNiMWFkYTNmMmQwMjk2ZmI1YTQuLmUyNmQ5NTExZmQ2ZWQxNGM5ZTg2MmRhOWRj
ZmRkYmM2NjdlNGRmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKQEAgLTM5LDE5ICszOSwzMiBAQCBt
b2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBET01TdHJpbmcgdG9TdHJp
bmcoKTsKICNlbmRpZgogCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFVua25vd25FcnJv
ciA9IDE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5vblRyYW5zaWVudEVycm9yID0g
MjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ29uc3RyYWludEVycm9yID0gMzsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRGF0YUVycm9yID0gNDsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgTm90QWxsb3dlZEVycm9yID0gNTsKKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yID0gNjsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgUmVhZE9ubHlFcnJvciA9IDc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFZlcnNpb25FcnJvciA9IDg7CisKKyAgICAgICAgLy8gRklYTUU6IExlZ2FjeSBjb25zdGFu
dHMgZnJvbSBlYXJsaWVyIHZlcnNpb25zIG9mIHRoZSBzcGVjIHRvIGJlIHJlbW92ZWQuCiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PX0VSUiA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFVOS05PV05fRVJSID0gMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
Tk9OX1RSQU5TSUVOVF9FUlIgPSAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT1Rf
Rk9VTkRfRVJSID0gMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ09OU1RSQUlOVF9F
UlIgPSA0OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBEQVRBX0VSUiA9IDU7Ci0gICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PVF9BTExPV0VEX0VSUiA9IDY7Ci0gICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiA9IDc7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IEFCT1JUX0VSUiA9IDg7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFJFQURfT05MWV9FUlIgPSA5OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBUSU1FT1VUX0VSUiA9IDEwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBRVU9UQV9F
UlIgPSAxMTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVkVSX0VSUiA9IDEyOworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT05TVFJBSU5UX0VSUiA9IDM7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IERBVEFfRVJSID0gNDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgTk9UX0FMTE9XRURfRVJSID0gNTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSID0gNjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgUkVBRF9PTkxZX0VSUiA9IDc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFZFUl9F
UlIgPSA4OworCisgICAgICAgIC8vIEZJWE1FOiBsZWdhY3kgb3ZlcmxhcCB3aXRoIHRoZSBET00s
IHRvIGJlIHJlbW92ZWQuCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PVF9GT1VORF9F
UlIgPSA4OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBQk9SVF9FUlIgPSAyMDsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVElNRU9VVF9FUlIgPSAyMzsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgUVVPVEFfRVJSID0gMjI7CisKICAgICB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5k
ZXggMDRlYmE1MDIxMTJkY2MxMGY0OWNkNjdjMDQ3ZTA2MDFkODgzM2IyZS4uNGQyYTE5YzAwMDU5
ZDdhNmFmNmI0Y2NlNDE0OGE3NzZiYTU4MmVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmFkZChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzCiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUgPSBwcnBWYWx1ZTsKICAgICBpZiAodmFsdWUtPmJsb2JVUkxzKCkuc2l6ZSgpID4g
MCkgewogICAgICAgICAvLyBGSVhNRTogQWRkIEJsb2IvRmlsZS9GaWxlTGlzdCBzdXBwb3J0Ci0g
ICAgICAgIGVjID0gREFUQV9DTE9ORV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNl
cHRpb246OklEQl9EQVRBX0NMT05FX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBA
IC0xNTAsNyArMTUwLDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6
cHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICBSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+Ymxv
YlVSTHMoKS5zaXplKCkgPiAwKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxlL0Zp
bGVMaXN0IHN1cHBvcnQKLSAgICAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAgZWMg
PSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKQEAgLTIyNyw3ICsyMjcsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4PiBJ
REJPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJL
ZQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4Iik7CiAgICAg
aWYgKCFrZXlQYXRoLmlzVmFsaWQoKSkgewotICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAg
ICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9TWU5UQVhfRVJSOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggNWNhZjc5
NzQwNGU4Y2U4ZGJkNTc4NTJiZmQ5Y2M1ZTQwZjUzZTk3YS4uZWI0MjM5NTM3NjQ5MTIwYzA0NTg0
MWU4NWE5OWVjZDc1YzE3YmI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTU1
NCw3ICs1NTQsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbDo6aW5kZXgoY29uc3QgU3RyaQogewogICAgIFJlZlB0cjxJREJJ
bmRleEJhY2tlbmRJbnRlcmZhY2U+IGluZGV4ID0gbV9pbmRleGVzLmdldChuYW1lKTsKICAgICBp
ZiAoIWluZGV4KSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9GT1VO
RF9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1RfRk9VTkRf
RVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcmV0dXJuIGluZGV4LnJlbGVhc2Uo
KTsKQEAgLTU2OSw3ICs1NjksNyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmRl
bGV0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYQogCiAgICAgUmVm
UHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gbV9pbmRleGVzLmdldChuYW1lKTsKICAg
ICBpZiAoIWluZGV4KSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9G
T1VORF9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1RfRk9V
TkRfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDU4OTA0MmVjMGVmNDg0M2IzOGNl
ZTAxMTlkNTBjNDk4MTY4MTE4NjYuLmVlMzQwYzcxMWFiYTI5M2E2Yjg4YTFlN2NmYzg2ZDhjMDAz
ODFmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjphYm9ydCgpCiAgICAg
bV9lcnJvckNvZGUgPSAwOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7CiAgICAgbV9y
ZXN1bHQuY2xlYXIoKTsKLSAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6QUJPUlRfRVJSLCAiVGhlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVk
LCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVkLiIpKTsKKyAgICBvbkVycm9yKElE
QkRhdGFiYXNlRXJyb3I6OmNyZWF0ZVdpdGhvdXRPZmZzZXQoQUJPUlRfRVJSLCAiVGhlIHRyYW5z
YWN0aW9uIHdhcyBhYm9ydGVkLCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVkLiIp
KTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpzZXRDdXJzb3JUeXBlKElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5j
cHAKaW5kZXggMGE3OWE5N2ExNWVlMjNlOTc2NGEyZGUyZjc0ZmUwOGMwNDk0Y2FhZC4uZDkxMGM2
YzJjMGQ5YmNhZjk4NGIzY2U0ZTU5OTlkMGRiMDY1NzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tl
bmRJbnRlcmZhY2U+IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Om9iamVjdFN0b3IKIAogICAg
IC8vIERvZXMgYSBsaW5lYXIgc2VhcmNoLCBidXQgaXQgcmVhbGx5IHNob3VsZG4ndCBiZSB0aGF0
IHNsb3cgaW4gcHJhY3RpY2UuCiAgICAgaWYgKG1fbW9kZSAhPSBJREJUcmFuc2FjdGlvbjo6VkVS
U0lPTl9DSEFOR0UgJiYgIW1fb2JqZWN0U3RvcmVOYW1lcy0+Y29udGFpbnMobmFtZSkpIHsKLSAg
ICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KIApAQCAtODIsNyArODIsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlQmFja2VuZEludGVyZmFjZT4gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6b2JqZWN0U3Rv
cgogICAgIC8vICAgICAgICBUaGVyZSdzIGEgYnVnIHRvIG1ha2UgdGhpcyBpbXBvc3NpYmxlIGlu
IHRoZSBzcGVjLiBXaGVuIHdlIG1ha2UgaXQgaW1wb3NzaWJsZSBoZXJlLCB3ZQogICAgIC8vICAg
ICAgICBjYW4gcmVtb3ZlIHRoaXMgY2hlY2suCiAgICAgaWYgKCFvYmplY3RTdG9yZSkgewotICAg
ICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfRk9VTkRfRVJSOworICAgICAgICBl
YyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogICAgIHJldHVybiBvYmplY3RTdG9yZS5yZWxlYXNlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlv
bi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VFeGNlcHRp
b24uaAppbmRleCA4MWI4Mzg2Njc1NWI5NWQ0N2UzMjY3MDg3ZmRkMmVhYTc1OGIwZGMzLi5jMzI2
ZmRiOTJiNGUwNmEwNDk1MGE5ZWE5MTE0ZDA2NmFmNzc4YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmgKQEAg
LTM0LDggKzM0LDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIFdlYklEQkRhdGFiYXNl
RXhjZXB0aW9uIHsKLSAgICBXZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciA9IDEyMDUs
Ci0gICAgV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9yID0gMTIxMSwKKyAgICBXZWJJ
REJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciA9IDEyMDQsCisgICAgV2ViSURCRGF0YWJhc2VF
eGNlcHRpb25RdW90YUVycm9yID0gMTIxNCwKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVt
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNw
cAppbmRleCBkYzlmYjI0YTdmZmViY2QyODViN2NmN2I1Yzc2YjRmYTI0ZWQ1NjliLi5iNGY3NmEy
ZmNjYTc5ZjBmZmVhZWMxYWIwNmQ5OGY4Y2ViMDZlZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNDU4LDcgKzQ1OCw3
IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6VXNlclN0eWxlSW5qZWN0
SW5FeGlzdGluZ0RvY3VtZW50cywgSW5qZWN0CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYlZpZXc6OlVzZXJTdHlsZUluamVjdEluU3Vic2VxdWVudERvY3VtZW50cywgSW5qZWN0SW5T
dWJzZXF1ZW50RG9jdW1lbnRzKTsKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJ
REJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciwgSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFf
RVJSKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNlcHRp
b25RdW90YUVycm9yLCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6UVVPVEFfRVJSKTsKK0NPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9yLCBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1FVT1RBX0VYQ0VFREVEX0VSUik7CiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURC
S2V5OjpJbnZhbGlkVHlwZSwgSURCS2V5OjpJbnZhbGlkVHlwZSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2UyOWUyMGZl
YmEyMmNmZTFjNmNiNWQyOWFhNjY4ZmI5NmY0MTA5ZC4uZTAxNjg0MzJkYTUyZDYxNmZlNTgwOGE1
NTQ3NTQ1NWQzNDRjYzkwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA1LTIzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFs
aWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJy
b3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanM6CisgICAgICAgICh0
ZXN0KToKKwogMjAxMi0wNS0yMiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBBcnJheS10eXBlIGtleSBwYXRocwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQK
aW5kZXggZTliOTNhNTUxNTA5ZTA2NThkNDdmYTkyMzVhNWUyYzlhYTI1Y2VkNy4uZjQwNjdhMTU0
YmY3M2M2YjIxNjQ5OGJhN2JmMjFlNDBhYWU1N2IxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMtZXhwZWN0ZWQudHh0CkBAIC01LDE4ICs1LDI2
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9u
LlVOS05PV05fRVJSIGlzIDEKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVO
VF9FUlIgaXMgMgotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIGlzIDMK
LVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIgaXMgNAotUEFTUyBJREJE
YXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiBpcyA1Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9u
Lk5PVF9BTExPV0VEX0VSUiBpcyA2Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNU
SU9OX0lOQUNUSVZFX0VSUiBpcyA3Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VS
UiBpcyA4Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIgaXMgOQotUEFT
UyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiBpcyAxMAotUEFTUyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5RVU9UQV9FUlIgaXMgMTEKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uVkVS
X0VSUiBpcyAxMgorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5Vbmtub3duRXJyb3IgaXMgMQor
UEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5Ob25UcmFuc2llbnRFcnJvciBpcyAyCitQQVNTIElE
QkRhdGFiYXNlRXhjZXB0aW9uLkNvbnN0cmFpbnRFcnJvciBpcyAzCitQQVNTIElEQkRhdGFiYXNl
RXhjZXB0aW9uLkRhdGFFcnJvciBpcyA0CitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5vdEFs
bG93ZWRFcnJvciBpcyA1CitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlRyYW5zYWN0aW9uSW5h
Y3RpdmVFcnJvciBpcyA2CitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJlYWRPbmx5RXJyb3Ig
aXMgNworUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5WZXJzaW9uRXJyb3IgaXMgOAorUEFTUyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5VTktOT1dOX0VSUiBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5V
bmtub3duRXJyb3IKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIg
aXMgSURCRGF0YWJhc2VFeGNlcHRpb24uTm9uVHJhbnNpZW50RXJyb3IKK1BBU1MgSURCRGF0YWJh
c2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uQ29uc3Ry
YWludEVycm9yCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIGlzIElEQkRhdGFi
YXNlRXhjZXB0aW9uLkRhdGFFcnJvcgorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxM
T1dFRF9FUlIgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uTm90QWxsb3dlZEVycm9yCitQQVNTIElE
QkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiBpcyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5UcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IKK1BBU1MgSURCRGF0YWJhc2VFeGNl
cHRpb24uUkVBRF9PTkxZX0VSUiBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SZWFkT25seUVycm9y
CitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlZFUl9FUlIgaXMgSURCRGF0YWJhc2VFeGNlcHRp
b24uVmVyc2lvbkVycm9yCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlRJTUVPVVRfRVJSIGlz
IERPTUV4Y2VwdGlvbi5USU1FT1VUX0VSUgorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9U
QV9FUlIgaXMgRE9NRXhjZXB0aW9uLlFVT1RBX0VYQ0VFREVEX0VSUgorUEFTUyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5BQk9SVF9FUlIgaXMgRE9NRXhjZXB0aW9uLkFCT1JUX0VSUgorUEFTUyBJREJE
YXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIGlzIERPTUV4Y2VwdGlvbi5OT1RfRk9VTkRf
RVJSCiBQQVNTIElEQkN1cnNvci5ORVhUIGlzIDAKIFBBU1MgSURCQ3Vyc29yLk5FWFRfTk9fRFVQ
TElDQVRFIGlzIDEKIFBBU1MgSURCQ3Vyc29yLlBSRVYgaXMgMgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NvbnN0YW50cy5qcyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanMKaW5kZXggNTk2ZWFh
ODNhMDM2MTU5YzRiZDlmMGJmNDM1ZTI0ZDNlYTczZTAyOC4uYzI5NmEzYWI0MmY2MzRlZmE0YTVi
NjRhN2RmZmRlN2JjZmU0N2M2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2NvbnN0YW50cy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvY29uc3RhbnRzLmpzCkBAIC04LDE4ICs4LDI4IEBAIGRlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQidzIGNvbnN0YW50cy4iKTsKIGZ1bmN0aW9uIHRlc3QoKQogewog
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLlVOS05PV05fRVJSIiwgIjEiKTsKLSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNl
cHRpb24uTk9OX1RSQU5TSUVOVF9FUlIiLCAiMiIpOwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIiwgIjMiKTsKLSAgICBzaG91bGRCZSgiSURCRGF0YWJh
c2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAiNCIpOwotICAgIHNob3VsZEJlKCJJREJEYXRh
YmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICI1Iik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNl
RXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIsICI2Iik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFi
YXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICI3Iik7Ci0gICAgc2hvdWxk
QmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VSUiIsICI4Iik7Ci0gICAgc2hvdWxkQmUo
IklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiLCAiOSIpOwotICAgIHNob3VsZEJl
KCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIsICIxMCIpOwotICAgIHNob3VsZEJl
KCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIiLCAiMTEiKTsKLSAgICBzaG91bGRCZSgi
SURCRGF0YWJhc2VFeGNlcHRpb24uVkVSX0VSUiIsICIxMiIpOworICAgIHNob3VsZEJlKCJJREJE
YXRhYmFzZUV4Y2VwdGlvbi5Vbmtub3duRXJyb3IiLCAiMSIpOworICAgIHNob3VsZEJlKCJJREJE
YXRhYmFzZUV4Y2VwdGlvbi5Ob25UcmFuc2llbnRFcnJvciIsICIyIik7CisgICAgc2hvdWxkQmUo
IklEQkRhdGFiYXNlRXhjZXB0aW9uLkNvbnN0cmFpbnRFcnJvciIsICIzIik7CisgICAgc2hvdWxk
QmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRhdGFFcnJvciIsICI0Iik7CisgICAgc2hvdWxkQmUo
IklEQkRhdGFiYXNlRXhjZXB0aW9uLk5vdEFsbG93ZWRFcnJvciIsICI1Iik7CisgICAgc2hvdWxk
QmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciIsICI2Iik7
CisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJlYWRPbmx5RXJyb3IiLCAiNyIp
OworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5WZXJzaW9uRXJyb3IiLCAiOCIp
OworCisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlVOS05PV05fRVJSIiwgIklE
QkRhdGFiYXNlRXhjZXB0aW9uLlVua25vd25FcnJvciIpOworICAgIHNob3VsZEJlKCJJREJEYXRh
YmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUiIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5O
b25UcmFuc2llbnRFcnJvciIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5D
T05TVFJBSU5UX0VSUiIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5Db25zdHJhaW50RXJyb3IiKTsK
KyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiSURCRGF0YWJh
c2VFeGNlcHRpb24uRGF0YUVycm9yIik7CisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0
aW9uLk5PVF9BTExPV0VEX0VSUiIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5Ob3RBbGxvd2VkRXJy
b3IiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5B
Q1RJVkVfRVJSIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJv
ciIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlfRVJSIiwg
IklEQkRhdGFiYXNlRXhjZXB0aW9uLlJlYWRPbmx5RXJyb3IiKTsKKyAgICBzaG91bGRCZSgiSURC
RGF0YWJhc2VFeGNlcHRpb24uVkVSX0VSUiIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5WZXJzaW9u
RXJyb3IiKTsKKworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VS
UiIsICJET01FeGNlcHRpb24uVElNRU9VVF9FUlIiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJh
c2VFeGNlcHRpb24uUVVPVEFfRVJSIiwgIkRPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIi
KTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uQUJPUlRfRVJSIiwgIkRPTUV4
Y2VwdGlvbi5BQk9SVF9FUlIiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24u
Tk9UX0ZPVU5EX0VSUiIsICJET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogCiAgICAgc2hv
dWxkQmUoIklEQkN1cnNvci5ORVhUIiwgIjAiKTsKICAgICBzaG91bGRCZSgiSURCQ3Vyc29yLk5F
WFRfTk9fRFVQTElDQVRFIiwgIjEiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143846</attachid>
            <date>2012-05-24 10:33:10 -0700</date>
            <delta_ts>2012-05-24 11:04:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87276-20120524103309.patch</filename>
            <type>text/plain</type>
            <size>26192</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyODM1NjRhZjJkMzBh
N2YxYTllYTQ2MzBjZjc3YjkwYzUyNTYzYS4uYWRiYjEyMGIzZTFkZTI1MzhmNTQ2MTBiM2FjMzBk
NDMwNmVjYzkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA1LTIzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFs
aWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJy
b3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1
c2UgdGhlIG5ldworICAgICAgICBleGNlcHRpb24gY29uc3RhbnQgdmFsdWVzLgorCisgICAgICAg
IFRoZSBJREIgc3BlYyBoYXMgZXZvbHZlZCB0byBNaXhlZENhc2UsIHN0cmluZy1iYXNlZCBzdHls
ZSBuYW1lcworICAgICAgICBmb3IgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiBVTkRFUlNDT1JFX0NP
TlNUQU5UX0VSUiBjb2Rlcy4gQ2hhbmdlCisgICAgICAgIHRvIHVzZSBNaXhlZENhc2UgZXJyb3Iv
ZXhjZXB0aW9uIG5hbWVzLCBhbmQgdGVhc2Ugb3V0IHRoZQorICAgICAgICBJREItc3BlY2lmaWMg
ZXhjZXB0aW9uL2Vycm9yIGNvZGVzL25hbWVzIGZyb20gdGhlIHN5c3RlbS1sZXZlbAorICAgICAg
ICBjb2Rlcy4gTWFrZSBzdXJlIHRoYXQgdGhlIGxlZ2FjeSBJREItbWFza2VkIGV4Y2VwdGlvbiBj
b2RlIHZhbHVlcworICAgICAgICBtYXRjaCB0aGUgRE9NIGV4Y2VwdGlvbiB2YWx1ZXMuIE1ha2Ug
c3VyZSB0aGF0CisgICAgICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uW2V4Y2VwdGlvbi5uYW1lXSBz
dGlsbCB3b3Jrcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwOgorICAgICAgICAo
SURCRGF0YWJhc2VFeGNlcHRpb25OYW1lRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2Ny
aXB0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlv
bi5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6aW5kZXgpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbDo6b2JqZWN0U3RvcmUpOgorCiAyMDEyLTA1LTI0ICBOaWtvbGFzIFppbW1lcm1hbm4g
IDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFNWR1pvb21BbmRQYW4gY29uc3RhbnRz
IGFyZSBtaXNzaW5nIGZyb20gd2luZG93IG9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA3MGEyYzFlMGFlNjY2NmNlOWUxZjY5OGZkMjc4OWUxODZiOTg0ODA0Li4zNTdhZWI0ODUy
ZjNlZjU2OTJkM2RlOTBlYWE1NWI1OWVjZDY0MmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTIzICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFsaWduIGNvZGVzIGFuZCBuYW1lcyBm
b3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJyb3JzL2V4Y2VwdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3Mjc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURC
RGF0YWJhc2VFeGNlcHRpb24uaDoKKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHA6CisKIDIwMTItMDUtMjQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgRW5hYmxlIGdyYW1tYXIgY2hlY2tpbmcgb24gQ2hyb21pdW0gd2hlbiB3ZSBwYXN0
ZSB0ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAKaW5kZXggNzgyMzA0MmRkYzMxMDc5Y2UwYTkzZTU2NzcxNzQzNDRiZjFkZDUyNy4uMjI1Mzhj
M2UwNzJiY2M2OWZmYWVjNDlmYjhhNGMyMjExZjYwODdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0xMjUsMTMgKzEyNSwxMyBAQCBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkN1cnNvcjo6dXBkYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZQogICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yOjp1cGRhdGUi
KTsKIAogICAgIGlmICghbV9nb3RWYWx1ZSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVf
RVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfSU5WQUxJRF9TVEFU
RV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+YmxvYlVSTHMoKS5z
aXplKCkgPiAwKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxlL0ZpbGVMaXN0IHN1
cHBvcnQKLSAgICAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIElEQkN1cnNvcjo6YWR2YW5jZSh1bnNpZ25l
ZCBsb25nIGNvdW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1
cnNvcjo6YWR2YW5jZSIpOwogICAgIGlmICghbV9nb3RWYWx1ZSkgewotICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJf
SU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4Niw3ICsx
ODYsNyBAQCB2b2lkIElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktl
eT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICBpZiAoIW1fZ290VmFsdWUp
IHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6SURCX0lOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC0yMDQsNyArMjA0LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJDdXJz
b3I6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQKIHsKICAg
ICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6ZGVsZXRlIik7CiAgICAgaWYgKCFtX2dvdFZhbHVlKSB7
Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJh
c2VFeGNlcHRpb246OklEQl9JTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRl
KGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRl
eCA3NDgxNmI4Yjg1YjExOWFiMGI3ZjU4MTZhNGQ1MTM0ZmIwZTMxOWNjLi5lMWY0NGNkNTA2MGE1
YzU4MDFjZGEwZjRlZjkyYTUwYTAyY2U3MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZT4gSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY28KICAgICB9CiAKICAgICBpZiAoIWtleVBhdGguaXNOdWxsKCkgJiYg
IWtleVBhdGguaXNWYWxpZCgpKSB7Ci0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1NZTlRBWF9FUlI7CiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3Rv
cmU+IElEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
CiAgICAgICAgIG9wdGlvbnMuZ2V0KCJhdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudCk7CiAK
ICAgICBpZiAoYXV0b0luY3JlbWVudCAmJiAoKGtleVBhdGgudHlwZSgpID09IElEQktleVBhdGg6
OlN0cmluZ1R5cGUgJiYga2V5UGF0aC5zdHJpbmcoKS5pc0VtcHR5KCkpIHx8IGtleVBhdGgudHlw
ZSgpID09IElEQktleVBhdGg6OkFycmF5VHlwZSkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElE
X0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMTU0LDcgKzE1NCw3
IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250CiB7CiAgICAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+
IHN0b3JlTmFtZXMgPSBwcnBTdG9yZU5hbWVzOwogICAgIGlmICghc3RvcmVOYW1lcyB8fCBzdG9y
ZU5hbWVzLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElEX0FDQ0VTU19FUlI7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAw
MTBhMTIwZTUxNTZlMTZjMDcxZDQ1MDYyODcwNDk0ZGZhYTYzMjUxLi4zNzdlMjE5YTIyNTg5ZGIy
MGU4NWQ1MGJhMGFiMjVhY2FiY2EyMjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMTg5
LDcgKzE4OSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlT2JqZWN0U3Rv
cmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGlvCiB7CiAgICAgUmVmUHRyPElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9yZXMuZ2V0KG5h
bWUpOwogICAgIGlmICghb2JqZWN0U3RvcmUpIHsKLSAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZEltcGw+IGRhdGFiYXNlID0gdGhpczsKQEAgLTIxMyw3ICsyMTMs
OCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldFZlcnNpb24oY29uc3QgU3RyaW5n
JiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbAogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcyA9IHBycENhbGxiYWNrczsKICAgICBSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IGRhdGFiYXNlQ2FsbGJhY2tzID0gcHJwRGF0YWJhc2VDYWxsYmFja3M7CiAgICAgaWYgKCFtX2Rh
dGFiYXNlQ2FsbGJhY2tzU2V0LmNvbnRhaW5zKGRhdGFiYXNlQ2FsbGJhY2tzKSkgewotICAgICAg
ICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpBQk9SVF9FUlIsICJDb25uZWN0aW9uIHdhcyBjbG9zZWQgYmVmb3JlIHNldCB2
ZXJzaW9uIHRyYW5zYWN0aW9uIHdhcyBjcmVhdGVkIikpOworICAgICAgICAvLyBGSVhNRTogSURC
RGF0YWJhc2VFcnJvciBkb2Vzbid0IHlldCBkbyBwcm9wZXIgdHJhbnNsYXRpb24gb2YgSURCLXNw
ZWNpZmMgdXNlcyBvZiBlcnJvciBjb2RlcywgdGhpcyBzaG91bGQgYmUgSURCX0FCT1JUX0VSUgor
ICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlV2l0aG91
dE9mZnNldChBQk9SVF9FUlIsICJDb25uZWN0aW9uIHdhcyBjbG9zZWQgYmVmb3JlIHNldCB2ZXJz
aW9uIHRyYW5zYWN0aW9uIHdhcyBjcmVhdGVkIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGZvciAoRGF0YWJhc2VDYWxsYmFja3NTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9kYXRh
YmFzZUNhbGxiYWNrc1NldC5iZWdpbigpOyBpdCAhPSBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmVu
ZCgpOyArK2l0KSB7CkBAIC0zMTIsNyArMzEzLDcgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uKEQK
IHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlTmFtZXMtPmxlbmd0aCgp
OyArK2kpIHsKICAgICAgICAgaWYgKCFtX29iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9y
ZU5hbWVzLT5pdGVtKGkpKSkgewotICAgICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246
OklEQl9OT1RfRk9VTkRfRVJSOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUV4Y2VwdGlvbi5jcHAKaW5kZXggZDg2YTU1MmRiM2M1ZmM0ZDI2NTY0MGQ4NzM4YjEw
ZWQzNzczMjM4Yi4uNTAzOTg5MzgwMzNkZjAyMzE4ZTA0NzI3ZWQ0MTRkOWY4ZmYzN2Q2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNl
cHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlRXhjZXB0aW9uLmNwcApAQCAtMzQsMjIgKzM0LDI4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotc3RhdGljIHN0cnVjdCBJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbiB7
CitzdGF0aWMgY29uc3Qgc3RydWN0IElEQkRhdGFiYXNlRXhjZXB0aW9uTmFtZURlc2NyaXB0aW9u
IHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOwogICAgIGNvbnN0IGNoYXIqIGNvbnN0IGRl
c2NyaXB0aW9uOworICAgIGNvbnN0IEV4Y2VwdGlvbkNvZGUgZG9tQ29kZTsKIH0gaWRiRGF0YWJh
c2VFeGNlcHRpb25zW10gPSB7Ci0gICAgeyAiVU5LTk9XTl9FUlIiLCAiQW4gdW5rbm93biBlcnJv
ciBvY2N1cnJlZCB3aXRoaW4gSW5kZXhlZCBEYXRhYmFzZS4iIH0sCi0gICAgeyAiTk9OX1RSQU5T
SUVOVF9FUlIiLCAiTk9OX1RSQU5TSUVOVF9FUlIiIH0sIC8vIEZJWE1FOiBXcml0ZSBhIGJldHRl
ciBtZXNzYWdlIGlmIGl0J3MgZXZlciBwb3NzaWJsZSB0aGlzIGlzIHRocm93bi4KLSAgICB7ICJO
T1RfRk9VTkRfRVJSIiwgIlRoZSBuYW1lIHN1cHBsaWVkIGRvZXMgbm90IG1hdGNoIGFueSBleGlz
dGluZyBpdGVtLiIgfSwKLSAgICB7ICJDT05TVFJBSU5UX0VSUiIsICJUaGUgcmVxdWVzdCBjYW5u
b3QgYmUgY29tcGxldGVkIGR1ZSB0byBhIGZhaWxlZCBjb25zdHJhaW50LiIgfSwKLSAgICB7ICJE
QVRBX0VSUiIsICJUaGUgZGF0YSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRoZSByZXF1aXJlbWVu
dHMgb2YgdGhlIGZ1bmN0aW9uLiIgfSwKLSAgICB7ICJOT1RfQUxMT1dFRF9FUlIiLCAiVGhpcyBm
dW5jdGlvbiBpcyBub3QgYWxsb3dlZCB0byBiZSBjYWxsZWQgaW4gc3VjaCBhIGNvbnRleHQuIiB9
LAotICAgIHsgIlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICJBIHJlcXVlc3Qgd2FzIHBsYWNl
ZCBhZ2FpbnN0IGEgdHJhbnNhY3Rpb24gd2hpY2ggaXMgZWl0aGVyIGN1cnJlbnRseSBub3QgYWN0
aXZlLCBvciB3aGljaCBpcyBmaW5pc2hlZC4iIH0sCi0gICAgeyAiQUJPUlRfRVJSIiwgIlRoZSB0
cmFuc2FjdGlvbiB3YXMgYWJvcnRlZCwgc28gdGhlIHJlcXVlc3QgY2Fubm90IGJlIGZ1bGZpbGxl
ZC4iIH0sCi0gICAgeyAiUkVBRF9PTkxZX0VSUiIsICJBIHdyaXRlIG9wZXJhdGlvbiB3YXMgYXR0
ZW1wdGVkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uLiIgfSwKLSAgICB7ICJUSU1FT1VUX0VS
UiIsICJBIGxvY2sgZm9yIHRoZSB0cmFuc2FjdGlvbiBjb3VsZCBub3QgYmUgb2J0YWluZWQgaW4g
YSByZWFzb25hYmxlIHRpbWUuIiB9LCAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldC4KLSAg
ICB7ICJRVU9UQV9FUlIiLCAiVGhlIG9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGVyZSB3YXMg
bm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEg
d2FzIHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVkIHRvIGdpdmUgbW9yZSBzcGFjZSB0byB0
aGUgZGF0YWJhc2UuIiB9LCAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldAotICAgIHsgIlZF
Ul9FUlIiLCAiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBvcGVuIGEgZGF0YWJhc2UgdXNpbmcgYSBs
b3dlciB2ZXJzaW9uIHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24uIiB9IC8vIEZJWE1FOiBUaGlz
IGlzbid0IHVzZWQgeWV0CisgICAgeyAiVW5rbm93bkVycm9yIiwgIkFuIHVua25vd24gZXJyb3Ig
b2NjdXJyZWQgd2l0aGluIEluZGV4ZWQgRGF0YWJhc2UuIiwgMCB9LAorICAgIHsgIk5vblRyYW5z
aWVudEVycm9yIiwgIk5vblRyYW5zaWVudEVycm9yIiwgMCB9LCAvLyBGSVhNRTogTm8gbG9uZ2Vy
IGluIHRoZSBzcGVjCisgICAgeyAiQ29uc3RyYWludEVycm9yIiwgIkEgbXV0YXRpb24gb3BlcmF0
aW9uIGluIHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQgYmVjYXVzZSBhIGNvbnN0cmFpbnQgd2FzIG5v
dCBzYXRpc2ZpZWQuIiwgMCB9LAorICAgIHsgIkRhdGFFcnJvciIsICJUaGUgZGF0YSBwcm92aWRl
ZCBkb2VzIG5vdCBtZWV0IHJlcXVpcmVtZW50cy4iLCAwIH0sCisgICAgeyAiTm90QWxsb3dlZEVy
cm9yIiwgIlRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgdG8gYmUgY2FsbGVkIGluIHN1Y2gg
YSBjb250ZXh0LiIsIDB9LCAvLyBGSVhNRTogbm8gbG9uZ2VyIGluIHRoZSBzcGVjCisgICAgeyAi
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgIkEgcmVxdWVzdCB3YXMgcGxhY2VkIGFnYWluc3Qg
YSB0cmFuc2FjdGlvbiB3aGljaCBpcyBlaXRoZXIgY3VycmVudGx5IG5vdCBhY3RpdmUsIG9yIHdo
aWNoIGlzIGZpbmlzaGVkLiIsIDAgfSwKKyAgICB7ICJSZWFkT25seUVycm9yIiwgIkEgd3JpdGUg
b3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24uIiwgMCB9
LAorICAgIHsgIlZlcnNpb25FcnJvciIsICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIG9wZW4gYSBk
YXRhYmFzZSB1c2luZyBhIGxvd2VyIHZlcnNpb24gdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbi4i
LCAwIH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0IHVzZWQgeWV0CisKKyAgICB7ICJOb3RGb3VuZEVy
cm9yIiwgIkFuIG9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGUgcmVxdWVzdGVkIGRhdGFiYXNl
IG9iamVjdCBjb3VsZCBub3QgYmUgZm91bmQuIiwgTk9UX0ZPVU5EX0VSUiB9LAorICAgIHsgIklu
dmFsaWRTdGF0ZUVycm9yIiwgIkFuIG9wZXJhdGlvbiB3YXMgY2FsbGVkIG9uIGFuIG9iamVjdCBv
biB3aGljaCBpdCBpcyBub3QgYWxsb3dlZCBvciBhdCBhIHRpbWUgd2hlbiBpdCBpcyBub3QgYWxs
b3dlZC4iLCBJTlZBTElEX1NUQVRFX0VSUiB9LAorICAgIHsgIkludmFsaWRBY2Nlc3NFcnJvciIs
ICJBbiBpbnZhbGlkIG9wZXJhdGlvbiB3YXMgcGVyZm9ybWVkIG9uIGFuIG9iamVjdC4iLCBJTlZB
TElEX0FDQ0VTU19FUlIgfSwKKyAgICB7ICJBYm9ydEVycm9yIiwgIlRoZSB0cmFuc2FjdGlvbiB3
YXMgYWJvcnRlZCwgc28gdGhlIHJlcXVlc3QgY2Fubm90IGJlIGZ1bGZpbGxlZC4iLCBBQk9SVF9F
UlIgfSwKKyAgICB7ICJUaW1lb3V0RXJyb3IiLCAiQSBsb2NrIGZvciB0aGUgdHJhbnNhY3Rpb24g
Y291bGQgbm90IGJlIG9idGFpbmVkIGluIGEgcmVhc29uYWJsZSB0aW1lLiIsIFRJTUVPVVRfRVJS
IH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0IHVzZWQgeWV0LgorICAgIHsgIlF1b3RhRXhjZWVkZWRF
cnJvciIsICJUaGUgb3BlcmF0aW9uIGZhaWxlZCBiZWNhdXNlIHRoZXJlIHdhcyBub3QgZW5vdWdo
IHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlLCBvciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hl
ZCBhbmQgdGhlIHVzZXIgZGVjbGluZWQgdG8gZ2l2ZSBtb3JlIHNwYWNlIHRvIHRoZSBkYXRhYmFz
ZS4iLCBRVU9UQV9FWENFRURFRF9FUlIgfSwgLy8gRklYTUU6IFRoaXMgaXNuJ3QgdXNlZCB5ZXQK
KyAgICB7ICJTeW50YXhFcnJvciIsICJUaGUga2V5cGF0aCBhcmd1bWVudCBjb250YWlucyBhbiBp
bnZhbGlkIGtleSBwYXRoLiIsIFNZTlRBWF9FUlIgfSwKKyAgICB7ICJEYXRhQ2xvbmVFcnJvciIs
ICJUaGUgZGF0YSBiZWluZyBzdG9yZWQgY291bGQgbm90IGJlIGNsb25lZCBieSB0aGUgaW50ZXJu
YWwgc3RydWN0dXJlZCBjbG9uaW5nIGFsZ29yaXRobS4iLCBEQVRBX0NMT05FX0VSUiB9CiB9Owog
CiBib29sIElEQkRhdGFiYXNlRXhjZXB0aW9uOjppbml0aWFsaXplRGVzY3JpcHRpb24oRXhjZXB0
aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKiBkZXNjcmlwdGlvbikKQEAgLTU3
LDE1ICs2MywxOCBAQCBib29sIElEQkRhdGFiYXNlRXhjZXB0aW9uOjppbml0aWFsaXplRGVzY3Jp
cHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZQogICAgIGlmIChlYyA8IElEQkRh
dGFiYXNlRXhjZXB0aW9uT2Zmc2V0IHx8IGVjID4gSURCRGF0YWJhc2VFeGNlcHRpb25NYXgpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIHNpemVfdCB0YWJsZVNpemUgPSBXVEZfQVJSQVlf
TEVOR1RIKGlkYkRhdGFiYXNlRXhjZXB0aW9ucyk7CisgICAgc2l6ZV90IHRhYmxlSW5kZXggPSBl
YyAtIElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKKworICAgIGNvbnN0IElEQkRh
dGFiYXNlRXhjZXB0aW9uTmFtZURlc2NyaXB0aW9uKiBlbnRyeSA9IHRhYmxlSW5kZXggPCB0YWJs
ZVNpemUgPyAmaWRiRGF0YWJhc2VFeGNlcHRpb25zW3RhYmxlSW5kZXhdIDogMDsKKwogICAgIGRl
c2NyaXB0aW9uLT50eXBlTmFtZSA9ICJET00gSURCRGF0YWJhc2UiOwotICAgIGRlc2NyaXB0aW9u
LT5jb2RlID0gZWMgLSBJREJEYXRhYmFzZUV4Y2VwdGlvbk9mZnNldDsKKyAgICBkZXNjcmlwdGlv
bi0+Y29kZSA9IChlbnRyeSAmJiBlbnRyeS0+ZG9tQ29kZSkgPyBlbnRyeS0+ZG9tQ29kZSA6IGVj
IC0gSURCRGF0YWJhc2VFeGNlcHRpb25PZmZzZXQ7CiAgICAgZGVzY3JpcHRpb24tPnR5cGUgPSBJ
REJEYXRhYmFzZUV4Y2VwdGlvblR5cGU7CiAKLSAgICBzaXplX3QgdGFibGVTaXplID0gV1RGX0FS
UkFZX0xFTkdUSChpZGJEYXRhYmFzZUV4Y2VwdGlvbnMpOwotICAgIHNpemVfdCB0YWJsZUluZGV4
ID0gZWMgLSBVTktOT1dOX0VSUjsKIAotICAgIGRlc2NyaXB0aW9uLT5uYW1lID0gdGFibGVJbmRl
eCA8IHRhYmxlU2l6ZSA/IGlkYkRhdGFiYXNlRXhjZXB0aW9uc1t0YWJsZUluZGV4XS5uYW1lIDog
MDsKLSAgICBkZXNjcmlwdGlvbi0+ZGVzY3JpcHRpb24gPSB0YWJsZUluZGV4IDwgdGFibGVTaXpl
ID8gaWRiRGF0YWJhc2VFeGNlcHRpb25zW3RhYmxlSW5kZXhdLmRlc2NyaXB0aW9uIDogMDsKKyAg
ICBkZXNjcmlwdGlvbi0+bmFtZSA9IGVudHJ5ID8gZW50cnktPm5hbWUgOiAwOworICAgIGRlc2Ny
aXB0aW9uLT5kZXNjcmlwdGlvbiA9IGVudHJ5ID8gZW50cnktPmRlc2NyaXB0aW9uIDogMDsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgKaW5kZXggNTcwYTJmY2Q2NGY1ODM4M2U3
NmZkMDUzNmRjNzA5MGY4Y2NlOGIyZS4uMDhiZTU4YThjNjRmZGU1YzY4ZjlmMGZlMzAzMzliNGIx
MTIwZDI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oCkBAIC00NiwxNiArNDYsMjEgQEAgcHVibGljOgogICAg
ICAgICBOT19FUlIgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbk9mZnNldCwKICAgICAgICAgVU5LTk9X
Tl9FUlIsCiAgICAgICAgIE5PTl9UUkFOU0lFTlRfRVJSLAotICAgICAgICBOT1RfRk9VTkRfRVJS
LAogICAgICAgICBDT05TVFJBSU5UX0VSUiwKICAgICAgICAgREFUQV9FUlIsCiAgICAgICAgIE5P
VF9BTExPV0VEX0VSUiwKICAgICAgICAgVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSLAotICAgICAg
ICBBQk9SVF9FUlIsCiAgICAgICAgIFJFQURfT05MWV9FUlIsCi0gICAgICAgIFRJTUVPVVRfRVJS
LAotICAgICAgICBRVU9UQV9FUlIsCi0gICAgICAgIFZFUl9FUlIKKyAgICAgICAgVkVSX0VSUiwK
KworICAgICAgICBJREJfTk9UX0ZPVU5EX0VSUiwKKyAgICAgICAgSURCX0lOVkFMSURfU1RBVEVf
RVJSLAorICAgICAgICBJREJfSU5WQUxJRF9BQ0NFU1NfRVJSLAorICAgICAgICBJREJfQUJPUlRf
RVJSLAorICAgICAgICBJREJfVElNRU9VVF9FUlIsCisgICAgICAgIElEQl9RVU9UQV9FWENFRURF
RF9FUlIsCisgICAgICAgIElEQl9TWU5UQVhfRVJSLAorICAgICAgICBJREJfREFUQV9DTE9ORV9F
UlIsCiAgICAgfTsKIAogICAgIHN0YXRpYyBpbnQgRXJyb3JDb2RlVG9FeGNlcHRpb25Db2RlKGlu
dCBlcnJvckNvZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKaW5kZXggYjRmMTllMWI5ZjVhOWE1NDZkNWVm
M2IxYWRhM2YyZDAyOTZmYjVhNC4uYzk3NDZmMWUzMGY3NzM0OTI5MjZmMThhODhiZTg5YmNhNzZm
ODkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VFeGNlcHRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbApAQCAtNDIsMTYgKzQyLDE3IEBAIG1vZHVsZSBzdG9y
YWdlIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9fRVJSID0gMDsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgVU5LTk9XTl9FUlIgPSAxOwogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBOT05fVFJBTlNJRU5UX0VSUiA9IDI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IE5PVF9GT1VORF9FUlIgPSAzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
T05TVFJBSU5UX0VSUiA9IDQ7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERBVEFfRVJS
ID0gNTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0FMTE9XRURfRVJSID0gNjsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSID0g
NzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQUJPUlRfRVJSID0gODsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgUkVBRF9PTkxZX0VSUiA9IDk7Ci0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFRJTUVPVVRfRVJSID0gMTA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFFVT1RBX0VSUiA9IDExOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBWRVJfRVJS
ID0gMTI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUUkFJTlRfRVJSID0gMzsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgREFUQV9FUlIgPSA0OworICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBOT1RfQUxMT1dFRF9FUlIgPSA1OworICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBUUkFOU0FDVElPTl9JTkFDVElWRV9FUlIgPSA2OworICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBSRUFEX09OTFlfRVJSID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgVkVSX0VSUiA9IDg7CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0ZP
VU5EX0VSUiA9IDg7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFCT1JUX0VSUiA9IDIw
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUSU1FT1VUX0VSUiA9IDIzOworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBRVU9UQV9FUlIgPSAyMjsKICAgICB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAK
aW5kZXggMDRlYmE1MDIxMTJkY2MxMGY0OWNkNjdjMDQ3ZTA2MDFkODgzM2IyZS4uNGQyYTE5YzAw
MDU5ZDdhNmFmNmI0Y2NlNDE0OGE3NzZiYTU4MmVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtMTI2LDcgKzEyNiw3
IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmFkZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzCiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gdmFsdWUgPSBwcnBWYWx1ZTsKICAgICBpZiAodmFsdWUtPmJsb2JVUkxzKCkuc2l6ZSgp
ID4gMCkgewogICAgICAgICAvLyBGSVhNRTogQWRkIEJsb2IvRmlsZS9GaWxlTGlzdCBzdXBwb3J0
Ci0gICAgICAgIGVjID0gREFUQV9DTE9ORV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OklEQl9EQVRBX0NMT05FX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
CkBAIC0xNTAsNyArMTUwLDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9y
ZTo6cHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+
YmxvYlVSTHMoKS5zaXplKCkgPiAwKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxl
L0ZpbGVMaXN0IHN1cHBvcnQKLSAgICAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAKQEAgLTIyNyw3ICsyMjcsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4
PiBJREJPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJ
REJLZQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4Iik7CiAg
ICAgaWYgKCFrZXlQYXRoLmlzVmFsaWQoKSkgewotICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Cisg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9TWU5UQVhfRVJSOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggNWNh
Zjc5NzQwNGU4Y2U4ZGJkNTc4NTJiZmQ5Y2M1ZTQwZjUzZTk3YS4uZWI0MjM5NTM3NjQ5MTIwYzA0
NTg0MWU4NWE5OWVjZDc1YzE3YmI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAg
LTU1NCw3ICs1NTQsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6aW5kZXgoY29uc3QgU3RyaQogewogICAgIFJlZlB0cjxJ
REJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGluZGV4ID0gbV9pbmRleGVzLmdldChuYW1lKTsKICAg
ICBpZiAoIWluZGV4KSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9G
T1VORF9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1RfRk9V
TkRfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcmV0dXJuIGluZGV4LnJlbGVh
c2UoKTsKQEAgLTU2OSw3ICs1NjksNyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6
OmRlbGV0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYQogCiAgICAg
UmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gbV9pbmRleGVzLmdldChuYW1lKTsK
ICAgICBpZiAoIWluZGV4KSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5P
VF9GT1VORF9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1Rf
Rk9VTkRfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDU4OTA0MmVjMGVmNDg0M2Iz
OGNlZTAxMTlkNTBjNDk4MTY4MTE4NjYuLmVlMzQwYzcxMWFiYTI5M2E2Yjg4YTFlN2NmYzg2ZDhj
MDAzODFmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjphYm9ydCgpCiAg
ICAgbV9lcnJvckNvZGUgPSAwOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7CiAgICAg
bV9yZXN1bHQuY2xlYXIoKTsKLSAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6QUJPUlRfRVJSLCAiVGhlIHRyYW5zYWN0aW9uIHdhcyBhYm9y
dGVkLCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVkLiIpKTsKKyAgICBvbkVycm9y
KElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZVdpdGhvdXRPZmZzZXQoQUJPUlRfRVJSLCAiVGhlIHRy
YW5zYWN0aW9uIHdhcyBhYm9ydGVkLCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVk
LiIpKTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpzZXRDdXJzb3JUeXBlKElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bC5jcHAKaW5kZXggMGE3OWE5N2ExNWVlMjNlOTc2NGEyZGUyZjc0ZmUwOGMwNDk0Y2FhZC4uZDkx
MGM2YzJjMGQ5YmNhZjk4NGIzY2U0ZTU5OTlkMGRiMDY1NzY0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbnRlcmZhY2U+IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Om9iamVjdFN0b3IKIAog
ICAgIC8vIERvZXMgYSBsaW5lYXIgc2VhcmNoLCBidXQgaXQgcmVhbGx5IHNob3VsZG4ndCBiZSB0
aGF0IHNsb3cgaW4gcHJhY3RpY2UuCiAgICAgaWYgKG1fbW9kZSAhPSBJREJUcmFuc2FjdGlvbjo6
VkVSU0lPTl9DSEFOR0UgJiYgIW1fb2JqZWN0U3RvcmVOYW1lcy0+Y29udGFpbnMobmFtZSkpIHsK
LSAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAg
ICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KIApAQCAtODIsNyArODIsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZT4gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6b2JqZWN0
U3RvcgogICAgIC8vICAgICAgICBUaGVyZSdzIGEgYnVnIHRvIG1ha2UgdGhpcyBpbXBvc3NpYmxl
IGluIHRoZSBzcGVjLiBXaGVuIHdlIG1ha2UgaXQgaW1wb3NzaWJsZSBoZXJlLCB3ZQogICAgIC8v
ICAgICAgICBjYW4gcmVtb3ZlIHRoaXMgY2hlY2suCiAgICAgaWYgKCFvYmplY3RTdG9yZSkgewot
ICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfRk9VTkRfRVJSOworICAgICAg
ICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VSUjsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogICAgIHJldHVybiBvYmplY3RTdG9yZS5yZWxlYXNlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VFeGNl
cHRpb24uaAppbmRleCA4MWI4Mzg2Njc1NWI5NWQ0N2UzMjY3MDg3ZmRkMmVhYTc1OGIwZGMzLi5j
MzI2ZmRiOTJiNGUwNmEwNDk1MGE5ZWE5MTE0ZDA2NmFmNzc4YTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmgK
QEAgLTM0LDggKzM0LDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIFdlYklEQkRhdGFi
YXNlRXhjZXB0aW9uIHsKLSAgICBXZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciA9IDEy
MDUsCi0gICAgV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9yID0gMTIxMSwKKyAgICBX
ZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciA9IDEyMDQsCisgICAgV2ViSURCRGF0YWJh
c2VFeGNlcHRpb25RdW90YUVycm9yID0gMTIxNCwKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdF
bnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcAppbmRleCAzNzU0Mjg5MjNjYjVlNzMwZDZhMzYwMDFjYTg5Y2U3ODg0NmNmYmRiLi45NDk4
NWIyMGM4ZTNkYzc2ZDYxNTNmZDQyOWMwOGZlYTI5MWQwMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNDU4LDcgKzQ1
OCw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6VXNlclN0eWxlSW5q
ZWN0SW5FeGlzdGluZ0RvY3VtZW50cywgSW5qZWN0CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYlZpZXc6OlVzZXJTdHlsZUluamVjdEluU3Vic2VxdWVudERvY3VtZW50cywgSW5qZWN0
SW5TdWJzZXF1ZW50RG9jdW1lbnRzKTsKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciwgSURCRGF0YWJhc2VFeGNlcHRpb246OkRB
VEFfRVJSKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNl
cHRpb25RdW90YUVycm9yLCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6UVVPVEFfRVJSKTsKK0NPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9y
LCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1FVT1RBX0VYQ0VFREVEX0VSUik7CiAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
SURCS2V5OjpJbnZhbGlkVHlwZSwgSURCS2V5OjpJbnZhbGlkVHlwZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTE3ZWI3
MTIxMjAzY2Q3MDI3MTU4NTBjYWMwMmZmYzVkOWE5ZDIzZi4uY2UzNzI4YjJiYzk2MjU1OTdhNGRm
MjJlOWI2YTQ4NTIxMWFlOTRkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA1LTIzICBB
bGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6
IEFsaWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMg
ZXJyb3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanM6CisgICAgICAg
ICh0ZXN0KToKKwogMjAxMi0wNS0yNCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5A
cmltLmNvbT4KIAogICAgICAgICBTVkdab29tQW5kUGFuIGNvbnN0YW50cyBhcmUgbWlzc2luZyBm
cm9tIHdpbmRvdyBvYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jb25zdGFudHMtZXhwZWN0ZWQudHh0CmluZGV4IGU5YjkzYTU1MTUwOWUwNjU4ZDQ3ZmE5MjM1
YTVlMmM5YWEyNWNlZDcuLjZhMTBiNzk3ZTJkZDc0MGRhNDFiYTI2YWJmNjFjNTZmZjg5N2Q5MzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4
cGVjdGVkLnR4dApAQCAtNywxNiArNywxNiBAQCBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLgogCiBQ
QVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlVOS05PV05fRVJSIGlzIDEKIFBBU1MgSURCRGF0YWJh
c2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIgaXMgMgotUEFTUyBJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5OT1RfRk9VTkRfRVJSIGlzIDMKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RS
QUlOVF9FUlIgaXMgNAotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiBpcyA1Ci1Q
QVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiBpcyA2Ci1QQVNTIElEQkRh
dGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiBpcyA3Ci1QQVNTIElEQkRh
dGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VSUiBpcyA4Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9u
LlJFQURfT05MWV9FUlIgaXMgOQotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VS
UiBpcyAxMAotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIgaXMgMTEKLVBBU1Mg
SURCRGF0YWJhc2VFeGNlcHRpb24uVkVSX0VSUiBpcyAxMgorUEFTUyBJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5DT05TVFJBSU5UX0VSUiBpcyAzCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFf
RVJSIGlzIDQKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIGlzIDUK
K1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIGlzIDYK
K1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiBpcyA3CitQQVNTIElEQkRh
dGFiYXNlRXhjZXB0aW9uLlZFUl9FUlIgaXMgOAorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5U
SU1FT1VUX0VSUiBpcyBET01FeGNlcHRpb24uVElNRU9VVF9FUlIKK1BBU1MgSURCRGF0YWJhc2VF
eGNlcHRpb24uUVVPVEFfRVJSIGlzIERPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIKK1BB
U1MgSURCRGF0YWJhc2VFeGNlcHRpb24uQUJPUlRfRVJSIGlzIERPTUV4Y2VwdGlvbi5BQk9SVF9F
UlIKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiBpcyBET01FeGNlcHRp
b24uTk9UX0ZPVU5EX0VSUgogUEFTUyBJREJDdXJzb3IuTkVYVCBpcyAwCiBQQVNTIElEQkN1cnNv
ci5ORVhUX05PX0RVUExJQ0FURSBpcyAxCiBQQVNTIElEQkN1cnNvci5QUkVWIGlzIDIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY29uc3RhbnRzLmpz
CmluZGV4IDU5NmVhYTgzYTAzNjE1OWM0YmQ5ZjBiZjQzNWUyNGQzZWE3M2UwMjguLmI1NTk5N2I4
OGVjMmI2ZGVkNmVmZTNiNTIxMTNiOGE3YzExOWUyNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanMKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NvbnN0YW50cy5qcwpAQCAtMTAsMTYgKzEw
LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CiAgICAg
c2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlVOS05PV05fRVJSIiwgIjEiKTsKICAgICBz
aG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIiLCAiMiIpOwot
ICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIiwgIjMiKTsK
LSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAiNCIp
OwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICI1Iik7Ci0g
ICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIsICI2Iik7
Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZF
X0VSUiIsICI3Iik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VS
UiIsICI4Iik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9F
UlIiLCAiOSIpOwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VS
UiIsICIxMCIpOwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIi
LCAiMTEiKTsKLSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVkVSX0VSUiIsICIx
MiIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIs
ICIzIik7CisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIjQi
KTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIiwg
IjUiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5B
Q1RJVkVfRVJSIiwgIjYiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVB
RF9PTkxZX0VSUiIsICI3Iik7CisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlZF
Ul9FUlIiLCAiOCIpOworCisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRJTUVP
VVRfRVJSIiwgIkRPTUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIpOworICAgIHNob3VsZEJlKCJJREJE
YXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIiLCAiRE9NRXhjZXB0aW9uLlFVT1RBX0VYQ0VFREVE
X0VSUiIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5BQk9SVF9FUlIiLCAi
RE9NRXhjZXB0aW9uLkFCT1JUX0VSUiIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5OT1RfRk9VTkRfRVJSIiwgIkRPTUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIik7CiAKICAg
ICBzaG91bGRCZSgiSURCQ3Vyc29yLk5FWFQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJJREJDdXJz
b3IuTkVYVF9OT19EVVBMSUNBVEUiLCAiMSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143852</attachid>
            <date>2012-05-24 11:04:55 -0700</date>
            <delta_ts>2012-05-24 16:38:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87276-20120524110454.patch</filename>
            <type>text/plain</type>
            <size>26192</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyODM1NjRhZjJkMzBh
N2YxYTllYTQ2MzBjZjc3YjkwYzUyNTYzYS4uYWRiYjEyMGIzZTFkZTI1MzhmNTQ2MTBiM2FjMzBk
NDMwNmVjYzkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA1LTIzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFs
aWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJy
b3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1
c2UgdGhlIG5ldworICAgICAgICBleGNlcHRpb24gY29uc3RhbnQgdmFsdWVzLgorCisgICAgICAg
IFRoZSBJREIgc3BlYyBoYXMgZXZvbHZlZCB0byBNaXhlZENhc2UsIHN0cmluZy1iYXNlZCBzdHls
ZSBuYW1lcworICAgICAgICBmb3IgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiBVTkRFUlNDT1JFX0NP
TlNUQU5UX0VSUiBjb2Rlcy4gQ2hhbmdlCisgICAgICAgIHRvIHVzZSBNaXhlZENhc2UgZXJyb3Iv
ZXhjZXB0aW9uIG5hbWVzLCBhbmQgdGVhc2Ugb3V0IHRoZQorICAgICAgICBJREItc3BlY2lmaWMg
ZXhjZXB0aW9uL2Vycm9yIGNvZGVzL25hbWVzIGZyb20gdGhlIHN5c3RlbS1sZXZlbAorICAgICAg
ICBjb2Rlcy4gTWFrZSBzdXJlIHRoYXQgdGhlIGxlZ2FjeSBJREItbWFza2VkIGV4Y2VwdGlvbiBj
b2RlIHZhbHVlcworICAgICAgICBtYXRjaCB0aGUgRE9NIGV4Y2VwdGlvbiB2YWx1ZXMuIE1ha2Ug
c3VyZSB0aGF0CisgICAgICAgIElEQkRhdGFiYXNlRXhjZXB0aW9uW2V4Y2VwdGlvbi5uYW1lXSBz
dGlsbCB3b3Jrcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwOgorICAgICAgICAo
SURCRGF0YWJhc2VFeGNlcHRpb25OYW1lRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2Ny
aXB0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlv
bi5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6aW5kZXgpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbDo6b2JqZWN0U3RvcmUpOgorCiAyMDEyLTA1LTI0ICBOaWtvbGFzIFppbW1lcm1hbm4g
IDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFNWR1pvb21BbmRQYW4gY29uc3RhbnRz
IGFyZSBtaXNzaW5nIGZyb20gd2luZG93IG9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA3MGEyYzFlMGFlNjY2NmNlOWUxZjY5OGZkMjc4OWUxODZiOTg0ODA0Li4zNTdhZWI0ODUy
ZjNlZjU2OTJkM2RlOTBlYWE1NWI1OWVjZDY0MmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTIzICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFsaWduIGNvZGVzIGFuZCBuYW1lcyBm
b3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJyb3JzL2V4Y2VwdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3Mjc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURC
RGF0YWJhc2VFeGNlcHRpb24uaDoKKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHA6CisKIDIwMTItMDUtMjQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgRW5hYmxlIGdyYW1tYXIgY2hlY2tpbmcgb24gQ2hyb21pdW0gd2hlbiB3ZSBwYXN0
ZSB0ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAKaW5kZXggNzgyMzA0MmRkYzMxMDc5Y2UwYTkzZTU2NzcxNzQzNDRiZjFkZDUyNy4uMjI1Mzhj
M2UwNzJiY2M2OWZmYWVjNDlmYjhhNGMyMjExZjYwODdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0xMjUsMTMgKzEyNSwxMyBAQCBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkN1cnNvcjo6dXBkYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NSZQogICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yOjp1cGRhdGUi
KTsKIAogICAgIGlmICghbV9nb3RWYWx1ZSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVf
RVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfSU5WQUxJRF9TVEFU
RV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+YmxvYlVSTHMoKS5z
aXplKCkgPiAwKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxlL0ZpbGVMaXN0IHN1
cHBvcnQKLSAgICAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIElEQkN1cnNvcjo6YWR2YW5jZSh1bnNpZ25l
ZCBsb25nIGNvdW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1
cnNvcjo6YWR2YW5jZSIpOwogICAgIGlmICghbV9nb3RWYWx1ZSkgewotICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJf
SU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4Niw3ICsx
ODYsNyBAQCB2b2lkIElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktl
eT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICBpZiAoIW1fZ290VmFsdWUp
IHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6SURCX0lOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC0yMDQsNyArMjA0LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJDdXJz
b3I6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQKIHsKICAg
ICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6ZGVsZXRlIik7CiAgICAgaWYgKCFtX2dvdFZhbHVlKSB7
Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJh
c2VFeGNlcHRpb246OklEQl9JTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRl
KGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRl
eCA3NDgxNmI4Yjg1YjExOWFiMGI3ZjU4MTZhNGQ1MTM0ZmIwZTMxOWNjLi5lMWY0NGNkNTA2MGE1
YzU4MDFjZGEwZjRlZjkyYTUwYTAyY2U3MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZT4gSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY28KICAgICB9CiAKICAgICBpZiAoIWtleVBhdGguaXNOdWxsKCkgJiYg
IWtleVBhdGguaXNWYWxpZCgpKSB7Ci0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1NZTlRBWF9FUlI7CiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3Rv
cmU+IElEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
CiAgICAgICAgIG9wdGlvbnMuZ2V0KCJhdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudCk7CiAK
ICAgICBpZiAoYXV0b0luY3JlbWVudCAmJiAoKGtleVBhdGgudHlwZSgpID09IElEQktleVBhdGg6
OlN0cmluZ1R5cGUgJiYga2V5UGF0aC5zdHJpbmcoKS5pc0VtcHR5KCkpIHx8IGtleVBhdGgudHlw
ZSgpID09IElEQktleVBhdGg6OkFycmF5VHlwZSkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElE
X0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMTU0LDcgKzE1NCw3
IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250CiB7CiAgICAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+
IHN0b3JlTmFtZXMgPSBwcnBTdG9yZU5hbWVzOwogICAgIGlmICghc3RvcmVOYW1lcyB8fCBzdG9y
ZU5hbWVzLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElEX0FDQ0VTU19FUlI7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAw
MTBhMTIwZTUxNTZlMTZjMDcxZDQ1MDYyODcwNDk0ZGZhYTYzMjUxLi4zNzdlMjE5YTIyNTg5ZGIy
MGU4NWQ1MGJhMGFiMjVhY2FiY2EyMjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMTg5
LDcgKzE4OSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlT2JqZWN0U3Rv
cmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGlvCiB7CiAgICAgUmVmUHRyPElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9yZXMuZ2V0KG5h
bWUpOwogICAgIGlmICghb2JqZWN0U3RvcmUpIHsKLSAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZEltcGw+IGRhdGFiYXNlID0gdGhpczsKQEAgLTIxMyw3ICsyMTMs
OCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldFZlcnNpb24oY29uc3QgU3RyaW5n
JiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbAogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcyA9IHBycENhbGxiYWNrczsKICAgICBSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IGRhdGFiYXNlQ2FsbGJhY2tzID0gcHJwRGF0YWJhc2VDYWxsYmFja3M7CiAgICAgaWYgKCFtX2Rh
dGFiYXNlQ2FsbGJhY2tzU2V0LmNvbnRhaW5zKGRhdGFiYXNlQ2FsbGJhY2tzKSkgewotICAgICAg
ICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpBQk9SVF9FUlIsICJDb25uZWN0aW9uIHdhcyBjbG9zZWQgYmVmb3JlIHNldCB2
ZXJzaW9uIHRyYW5zYWN0aW9uIHdhcyBjcmVhdGVkIikpOworICAgICAgICAvLyBGSVhNRTogSURC
RGF0YWJhc2VFcnJvciBkb2Vzbid0IHlldCBkbyBwcm9wZXIgdHJhbnNsYXRpb24gb2YgSURCLXNw
ZWNpZmMgdXNlcyBvZiBlcnJvciBjb2RlcywgdGhpcyBzaG91bGQgYmUgSURCX0FCT1JUX0VSUgor
ICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlV2l0aG91
dE9mZnNldChBQk9SVF9FUlIsICJDb25uZWN0aW9uIHdhcyBjbG9zZWQgYmVmb3JlIHNldCB2ZXJz
aW9uIHRyYW5zYWN0aW9uIHdhcyBjcmVhdGVkIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGZvciAoRGF0YWJhc2VDYWxsYmFja3NTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9kYXRh
YmFzZUNhbGxiYWNrc1NldC5iZWdpbigpOyBpdCAhPSBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmVu
ZCgpOyArK2l0KSB7CkBAIC0zMTIsNyArMzEzLDcgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uKEQK
IHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlTmFtZXMtPmxlbmd0aCgp
OyArK2kpIHsKICAgICAgICAgaWYgKCFtX29iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9y
ZU5hbWVzLT5pdGVtKGkpKSkgewotICAgICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246
OklEQl9OT1RfRk9VTkRfRVJSOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUV4Y2VwdGlvbi5jcHAKaW5kZXggZDg2YTU1MmRiM2M1ZmM0ZDI2NTY0MGQ4NzM4YjEw
ZWQzNzczMjM4Yi4uNTAzOTg5MzgwMzNkZjAyMzE4ZTA0NzI3ZWQ0MTRkOWY4ZmYzN2Q2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNl
cHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlRXhjZXB0aW9uLmNwcApAQCAtMzQsMjIgKzM0LDI4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotc3RhdGljIHN0cnVjdCBJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbiB7
CitzdGF0aWMgY29uc3Qgc3RydWN0IElEQkRhdGFiYXNlRXhjZXB0aW9uTmFtZURlc2NyaXB0aW9u
IHsKICAgICBjb25zdCBjaGFyKiBjb25zdCBuYW1lOwogICAgIGNvbnN0IGNoYXIqIGNvbnN0IGRl
c2NyaXB0aW9uOworICAgIGNvbnN0IEV4Y2VwdGlvbkNvZGUgZG9tQ29kZTsKIH0gaWRiRGF0YWJh
c2VFeGNlcHRpb25zW10gPSB7Ci0gICAgeyAiVU5LTk9XTl9FUlIiLCAiQW4gdW5rbm93biBlcnJv
ciBvY2N1cnJlZCB3aXRoaW4gSW5kZXhlZCBEYXRhYmFzZS4iIH0sCi0gICAgeyAiTk9OX1RSQU5T
SUVOVF9FUlIiLCAiTk9OX1RSQU5TSUVOVF9FUlIiIH0sIC8vIEZJWE1FOiBXcml0ZSBhIGJldHRl
ciBtZXNzYWdlIGlmIGl0J3MgZXZlciBwb3NzaWJsZSB0aGlzIGlzIHRocm93bi4KLSAgICB7ICJO
T1RfRk9VTkRfRVJSIiwgIlRoZSBuYW1lIHN1cHBsaWVkIGRvZXMgbm90IG1hdGNoIGFueSBleGlz
dGluZyBpdGVtLiIgfSwKLSAgICB7ICJDT05TVFJBSU5UX0VSUiIsICJUaGUgcmVxdWVzdCBjYW5u
b3QgYmUgY29tcGxldGVkIGR1ZSB0byBhIGZhaWxlZCBjb25zdHJhaW50LiIgfSwKLSAgICB7ICJE
QVRBX0VSUiIsICJUaGUgZGF0YSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRoZSByZXF1aXJlbWVu
dHMgb2YgdGhlIGZ1bmN0aW9uLiIgfSwKLSAgICB7ICJOT1RfQUxMT1dFRF9FUlIiLCAiVGhpcyBm
dW5jdGlvbiBpcyBub3QgYWxsb3dlZCB0byBiZSBjYWxsZWQgaW4gc3VjaCBhIGNvbnRleHQuIiB9
LAotICAgIHsgIlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICJBIHJlcXVlc3Qgd2FzIHBsYWNl
ZCBhZ2FpbnN0IGEgdHJhbnNhY3Rpb24gd2hpY2ggaXMgZWl0aGVyIGN1cnJlbnRseSBub3QgYWN0
aXZlLCBvciB3aGljaCBpcyBmaW5pc2hlZC4iIH0sCi0gICAgeyAiQUJPUlRfRVJSIiwgIlRoZSB0
cmFuc2FjdGlvbiB3YXMgYWJvcnRlZCwgc28gdGhlIHJlcXVlc3QgY2Fubm90IGJlIGZ1bGZpbGxl
ZC4iIH0sCi0gICAgeyAiUkVBRF9PTkxZX0VSUiIsICJBIHdyaXRlIG9wZXJhdGlvbiB3YXMgYXR0
ZW1wdGVkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uLiIgfSwKLSAgICB7ICJUSU1FT1VUX0VS
UiIsICJBIGxvY2sgZm9yIHRoZSB0cmFuc2FjdGlvbiBjb3VsZCBub3QgYmUgb2J0YWluZWQgaW4g
YSByZWFzb25hYmxlIHRpbWUuIiB9LCAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldC4KLSAg
ICB7ICJRVU9UQV9FUlIiLCAiVGhlIG9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGVyZSB3YXMg
bm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEg
d2FzIHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVkIHRvIGdpdmUgbW9yZSBzcGFjZSB0byB0
aGUgZGF0YWJhc2UuIiB9LCAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldAotICAgIHsgIlZF
Ul9FUlIiLCAiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBvcGVuIGEgZGF0YWJhc2UgdXNpbmcgYSBs
b3dlciB2ZXJzaW9uIHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24uIiB9IC8vIEZJWE1FOiBUaGlz
IGlzbid0IHVzZWQgeWV0CisgICAgeyAiVW5rbm93bkVycm9yIiwgIkFuIHVua25vd24gZXJyb3Ig
b2NjdXJyZWQgd2l0aGluIEluZGV4ZWQgRGF0YWJhc2UuIiwgMCB9LAorICAgIHsgIk5vblRyYW5z
aWVudEVycm9yIiwgIk5vblRyYW5zaWVudEVycm9yIiwgMCB9LCAvLyBGSVhNRTogTm8gbG9uZ2Vy
IGluIHRoZSBzcGVjCisgICAgeyAiQ29uc3RyYWludEVycm9yIiwgIkEgbXV0YXRpb24gb3BlcmF0
aW9uIGluIHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQgYmVjYXVzZSBhIGNvbnN0cmFpbnQgd2FzIG5v
dCBzYXRpc2ZpZWQuIiwgMCB9LAorICAgIHsgIkRhdGFFcnJvciIsICJUaGUgZGF0YSBwcm92aWRl
ZCBkb2VzIG5vdCBtZWV0IHJlcXVpcmVtZW50cy4iLCAwIH0sCisgICAgeyAiTm90QWxsb3dlZEVy
cm9yIiwgIlRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgdG8gYmUgY2FsbGVkIGluIHN1Y2gg
YSBjb250ZXh0LiIsIDB9LCAvLyBGSVhNRTogbm8gbG9uZ2VyIGluIHRoZSBzcGVjCisgICAgeyAi
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgIkEgcmVxdWVzdCB3YXMgcGxhY2VkIGFnYWluc3Qg
YSB0cmFuc2FjdGlvbiB3aGljaCBpcyBlaXRoZXIgY3VycmVudGx5IG5vdCBhY3RpdmUsIG9yIHdo
aWNoIGlzIGZpbmlzaGVkLiIsIDAgfSwKKyAgICB7ICJSZWFkT25seUVycm9yIiwgIkEgd3JpdGUg
b3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24uIiwgMCB9
LAorICAgIHsgIlZlcnNpb25FcnJvciIsICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIG9wZW4gYSBk
YXRhYmFzZSB1c2luZyBhIGxvd2VyIHZlcnNpb24gdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbi4i
LCAwIH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0IHVzZWQgeWV0CisKKyAgICB7ICJOb3RGb3VuZEVy
cm9yIiwgIkFuIG9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGUgcmVxdWVzdGVkIGRhdGFiYXNl
IG9iamVjdCBjb3VsZCBub3QgYmUgZm91bmQuIiwgTk9UX0ZPVU5EX0VSUiB9LAorICAgIHsgIklu
dmFsaWRTdGF0ZUVycm9yIiwgIkFuIG9wZXJhdGlvbiB3YXMgY2FsbGVkIG9uIGFuIG9iamVjdCBv
biB3aGljaCBpdCBpcyBub3QgYWxsb3dlZCBvciBhdCBhIHRpbWUgd2hlbiBpdCBpcyBub3QgYWxs
b3dlZC4iLCBJTlZBTElEX1NUQVRFX0VSUiB9LAorICAgIHsgIkludmFsaWRBY2Nlc3NFcnJvciIs
ICJBbiBpbnZhbGlkIG9wZXJhdGlvbiB3YXMgcGVyZm9ybWVkIG9uIGFuIG9iamVjdC4iLCBJTlZB
TElEX0FDQ0VTU19FUlIgfSwKKyAgICB7ICJBYm9ydEVycm9yIiwgIlRoZSB0cmFuc2FjdGlvbiB3
YXMgYWJvcnRlZCwgc28gdGhlIHJlcXVlc3QgY2Fubm90IGJlIGZ1bGZpbGxlZC4iLCBBQk9SVF9F
UlIgfSwKKyAgICB7ICJUaW1lb3V0RXJyb3IiLCAiQSBsb2NrIGZvciB0aGUgdHJhbnNhY3Rpb24g
Y291bGQgbm90IGJlIG9idGFpbmVkIGluIGEgcmVhc29uYWJsZSB0aW1lLiIsIFRJTUVPVVRfRVJS
IH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0IHVzZWQgeWV0LgorICAgIHsgIlF1b3RhRXhjZWVkZWRF
cnJvciIsICJUaGUgb3BlcmF0aW9uIGZhaWxlZCBiZWNhdXNlIHRoZXJlIHdhcyBub3QgZW5vdWdo
IHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlLCBvciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hl
ZCBhbmQgdGhlIHVzZXIgZGVjbGluZWQgdG8gZ2l2ZSBtb3JlIHNwYWNlIHRvIHRoZSBkYXRhYmFz
ZS4iLCBRVU9UQV9FWENFRURFRF9FUlIgfSwgLy8gRklYTUU6IFRoaXMgaXNuJ3QgdXNlZCB5ZXQK
KyAgICB7ICJTeW50YXhFcnJvciIsICJUaGUga2V5cGF0aCBhcmd1bWVudCBjb250YWlucyBhbiBp
bnZhbGlkIGtleSBwYXRoLiIsIFNZTlRBWF9FUlIgfSwKKyAgICB7ICJEYXRhQ2xvbmVFcnJvciIs
ICJUaGUgZGF0YSBiZWluZyBzdG9yZWQgY291bGQgbm90IGJlIGNsb25lZCBieSB0aGUgaW50ZXJu
YWwgc3RydWN0dXJlZCBjbG9uaW5nIGFsZ29yaXRobS4iLCBEQVRBX0NMT05FX0VSUiB9CiB9Owog
CiBib29sIElEQkRhdGFiYXNlRXhjZXB0aW9uOjppbml0aWFsaXplRGVzY3JpcHRpb24oRXhjZXB0
aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKiBkZXNjcmlwdGlvbikKQEAgLTU3
LDE1ICs2MywxOCBAQCBib29sIElEQkRhdGFiYXNlRXhjZXB0aW9uOjppbml0aWFsaXplRGVzY3Jp
cHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXhjZXB0aW9uQ29kZQogICAgIGlmIChlYyA8IElEQkRh
dGFiYXNlRXhjZXB0aW9uT2Zmc2V0IHx8IGVjID4gSURCRGF0YWJhc2VFeGNlcHRpb25NYXgpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIHNpemVfdCB0YWJsZVNpemUgPSBXVEZfQVJSQVlf
TEVOR1RIKGlkYkRhdGFiYXNlRXhjZXB0aW9ucyk7CisgICAgc2l6ZV90IHRhYmxlSW5kZXggPSBl
YyAtIElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKKworICAgIGNvbnN0IElEQkRh
dGFiYXNlRXhjZXB0aW9uTmFtZURlc2NyaXB0aW9uKiBlbnRyeSA9IHRhYmxlSW5kZXggPCB0YWJs
ZVNpemUgPyAmaWRiRGF0YWJhc2VFeGNlcHRpb25zW3RhYmxlSW5kZXhdIDogMDsKKwogICAgIGRl
c2NyaXB0aW9uLT50eXBlTmFtZSA9ICJET00gSURCRGF0YWJhc2UiOwotICAgIGRlc2NyaXB0aW9u
LT5jb2RlID0gZWMgLSBJREJEYXRhYmFzZUV4Y2VwdGlvbk9mZnNldDsKKyAgICBkZXNjcmlwdGlv
bi0+Y29kZSA9IChlbnRyeSAmJiBlbnRyeS0+ZG9tQ29kZSkgPyBlbnRyeS0+ZG9tQ29kZSA6IGVj
IC0gSURCRGF0YWJhc2VFeGNlcHRpb25PZmZzZXQ7CiAgICAgZGVzY3JpcHRpb24tPnR5cGUgPSBJ
REJEYXRhYmFzZUV4Y2VwdGlvblR5cGU7CiAKLSAgICBzaXplX3QgdGFibGVTaXplID0gV1RGX0FS
UkFZX0xFTkdUSChpZGJEYXRhYmFzZUV4Y2VwdGlvbnMpOwotICAgIHNpemVfdCB0YWJsZUluZGV4
ID0gZWMgLSBVTktOT1dOX0VSUjsKIAotICAgIGRlc2NyaXB0aW9uLT5uYW1lID0gdGFibGVJbmRl
eCA8IHRhYmxlU2l6ZSA/IGlkYkRhdGFiYXNlRXhjZXB0aW9uc1t0YWJsZUluZGV4XS5uYW1lIDog
MDsKLSAgICBkZXNjcmlwdGlvbi0+ZGVzY3JpcHRpb24gPSB0YWJsZUluZGV4IDwgdGFibGVTaXpl
ID8gaWRiRGF0YWJhc2VFeGNlcHRpb25zW3RhYmxlSW5kZXhdLmRlc2NyaXB0aW9uIDogMDsKKyAg
ICBkZXNjcmlwdGlvbi0+bmFtZSA9IGVudHJ5ID8gZW50cnktPm5hbWUgOiAwOworICAgIGRlc2Ny
aXB0aW9uLT5kZXNjcmlwdGlvbiA9IGVudHJ5ID8gZW50cnktPmRlc2NyaXB0aW9uIDogMDsKIAog
ICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgKaW5kZXggNTcwYTJmY2Q2NGY1ODM4M2U3
NmZkMDUzNmRjNzA5MGY4Y2NlOGIyZS4uMDhiZTU4YThjNjRmZGU1YzY4ZjlmMGZlMzAzMzliNGIx
MTIwZDI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oCkBAIC00NiwxNiArNDYsMjEgQEAgcHVibGljOgogICAg
ICAgICBOT19FUlIgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbk9mZnNldCwKICAgICAgICAgVU5LTk9X
Tl9FUlIsCiAgICAgICAgIE5PTl9UUkFOU0lFTlRfRVJSLAotICAgICAgICBOT1RfRk9VTkRfRVJS
LAogICAgICAgICBDT05TVFJBSU5UX0VSUiwKICAgICAgICAgREFUQV9FUlIsCiAgICAgICAgIE5P
VF9BTExPV0VEX0VSUiwKICAgICAgICAgVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSLAotICAgICAg
ICBBQk9SVF9FUlIsCiAgICAgICAgIFJFQURfT05MWV9FUlIsCi0gICAgICAgIFRJTUVPVVRfRVJS
LAotICAgICAgICBRVU9UQV9FUlIsCi0gICAgICAgIFZFUl9FUlIKKyAgICAgICAgVkVSX0VSUiwK
KworICAgICAgICBJREJfTk9UX0ZPVU5EX0VSUiwKKyAgICAgICAgSURCX0lOVkFMSURfU1RBVEVf
RVJSLAorICAgICAgICBJREJfSU5WQUxJRF9BQ0NFU1NfRVJSLAorICAgICAgICBJREJfQUJPUlRf
RVJSLAorICAgICAgICBJREJfVElNRU9VVF9FUlIsCisgICAgICAgIElEQl9RVU9UQV9FWENFRURF
RF9FUlIsCisgICAgICAgIElEQl9TWU5UQVhfRVJSLAorICAgICAgICBJREJfREFUQV9DTE9ORV9F
UlIsCiAgICAgfTsKIAogICAgIHN0YXRpYyBpbnQgRXJyb3JDb2RlVG9FeGNlcHRpb25Db2RlKGlu
dCBlcnJvckNvZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKaW5kZXggYjRmMTllMWI5ZjVhOWE1NDZkNWVm
M2IxYWRhM2YyZDAyOTZmYjVhNC4uYzk3NDZmMWUzMGY3NzM0OTI5MjZmMThhODhiZTg5YmNhNzZm
ODkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VFeGNlcHRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbApAQCAtNDIsMTYgKzQyLDE3IEBAIG1vZHVsZSBzdG9y
YWdlIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9fRVJSID0gMDsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgVU5LTk9XTl9FUlIgPSAxOwogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBOT05fVFJBTlNJRU5UX0VSUiA9IDI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IE5PVF9GT1VORF9FUlIgPSAzOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
T05TVFJBSU5UX0VSUiA9IDQ7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERBVEFfRVJS
ID0gNTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0FMTE9XRURfRVJSID0gNjsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSID0g
NzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQUJPUlRfRVJSID0gODsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgUkVBRF9PTkxZX0VSUiA9IDk7Ci0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFRJTUVPVVRfRVJSID0gMTA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFFVT1RBX0VSUiA9IDExOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBWRVJfRVJS
ID0gMTI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUUkFJTlRfRVJSID0gMzsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgREFUQV9FUlIgPSA0OworICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBOT1RfQUxMT1dFRF9FUlIgPSA1OworICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBUUkFOU0FDVElPTl9JTkFDVElWRV9FUlIgPSA2OworICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBSRUFEX09OTFlfRVJSID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgVkVSX0VSUiA9IDg7CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0ZP
VU5EX0VSUiA9IDg7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFCT1JUX0VSUiA9IDIw
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUSU1FT1VUX0VSUiA9IDIzOworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBRVU9UQV9FUlIgPSAyMjsKICAgICB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAK
aW5kZXggMDRlYmE1MDIxMTJkY2MxMGY0OWNkNjdjMDQ3ZTA2MDFkODgzM2IyZS4uNGQyYTE5YzAw
MDU5ZDdhNmFmNmI0Y2NlNDE0OGE3NzZiYTU4MmVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtMTI2LDcgKzEyNiw3
IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmFkZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzCiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gdmFsdWUgPSBwcnBWYWx1ZTsKICAgICBpZiAodmFsdWUtPmJsb2JVUkxzKCkuc2l6ZSgp
ID4gMCkgewogICAgICAgICAvLyBGSVhNRTogQWRkIEJsb2IvRmlsZS9GaWxlTGlzdCBzdXBwb3J0
Ci0gICAgICAgIGVjID0gREFUQV9DTE9ORV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OklEQl9EQVRBX0NMT05FX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
CkBAIC0xNTAsNyArMTUwLDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9y
ZTo6cHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+
YmxvYlVSTHMoKS5zaXplKCkgPiAwKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxl
L0ZpbGVMaXN0IHN1cHBvcnQKLSAgICAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAKQEAgLTIyNyw3ICsyMjcsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4
PiBJREJPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJ
REJLZQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4Iik7CiAg
ICAgaWYgKCFrZXlQYXRoLmlzVmFsaWQoKSkgewotICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Cisg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9TWU5UQVhfRVJSOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggNWNh
Zjc5NzQwNGU4Y2U4ZGJkNTc4NTJiZmQ5Y2M1ZTQwZjUzZTk3YS4uZWI0MjM5NTM3NjQ5MTIwYzA0
NTg0MWU4NWE5OWVjZDc1YzE3YmI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAg
LTU1NCw3ICs1NTQsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6aW5kZXgoY29uc3QgU3RyaQogewogICAgIFJlZlB0cjxJ
REJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGluZGV4ID0gbV9pbmRleGVzLmdldChuYW1lKTsKICAg
ICBpZiAoIWluZGV4KSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9G
T1VORF9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1RfRk9V
TkRfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcmV0dXJuIGluZGV4LnJlbGVh
c2UoKTsKQEAgLTU2OSw3ICs1NjksNyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6
OmRlbGV0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYQogCiAgICAg
UmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gbV9pbmRleGVzLmdldChuYW1lKTsK
ICAgICBpZiAoIWluZGV4KSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5P
VF9GT1VORF9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1Rf
Rk9VTkRfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDU4OTA0MmVjMGVmNDg0M2Iz
OGNlZTAxMTlkNTBjNDk4MTY4MTE4NjYuLmVlMzQwYzcxMWFiYTI5M2E2Yjg4YTFlN2NmYzg2ZDhj
MDAzODFmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjphYm9ydCgpCiAg
ICAgbV9lcnJvckNvZGUgPSAwOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7CiAgICAg
bV9yZXN1bHQuY2xlYXIoKTsKLSAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6QUJPUlRfRVJSLCAiVGhlIHRyYW5zYWN0aW9uIHdhcyBhYm9y
dGVkLCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVkLiIpKTsKKyAgICBvbkVycm9y
KElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZVdpdGhvdXRPZmZzZXQoQUJPUlRfRVJSLCAiVGhlIHRy
YW5zYWN0aW9uIHdhcyBhYm9ydGVkLCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVk
LiIpKTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpzZXRDdXJzb3JUeXBlKElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bC5jcHAKaW5kZXggMGE3OWE5N2ExNWVlMjNlOTc2NGEyZGUyZjc0ZmUwOGMwNDk0Y2FhZC4uZDkx
MGM2YzJjMGQ5YmNhZjk4NGIzY2U0ZTU5OTlkMGRiMDY1NzY0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbnRlcmZhY2U+IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Om9iamVjdFN0b3IKIAog
ICAgIC8vIERvZXMgYSBsaW5lYXIgc2VhcmNoLCBidXQgaXQgcmVhbGx5IHNob3VsZG4ndCBiZSB0
aGF0IHNsb3cgaW4gcHJhY3RpY2UuCiAgICAgaWYgKG1fbW9kZSAhPSBJREJUcmFuc2FjdGlvbjo6
VkVSU0lPTl9DSEFOR0UgJiYgIW1fb2JqZWN0U3RvcmVOYW1lcy0+Y29udGFpbnMobmFtZSkpIHsK
LSAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAg
ICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KIApAQCAtODIsNyArODIsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZT4gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6b2JqZWN0
U3RvcgogICAgIC8vICAgICAgICBUaGVyZSdzIGEgYnVnIHRvIG1ha2UgdGhpcyBpbXBvc3NpYmxl
IGluIHRoZSBzcGVjLiBXaGVuIHdlIG1ha2UgaXQgaW1wb3NzaWJsZSBoZXJlLCB3ZQogICAgIC8v
ICAgICAgICBjYW4gcmVtb3ZlIHRoaXMgY2hlY2suCiAgICAgaWYgKCFvYmplY3RTdG9yZSkgewot
ICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfRk9VTkRfRVJSOworICAgICAg
ICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VSUjsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogICAgIHJldHVybiBvYmplY3RTdG9yZS5yZWxlYXNlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VFeGNl
cHRpb24uaAppbmRleCA4MWI4Mzg2Njc1NWI5NWQ0N2UzMjY3MDg3ZmRkMmVhYTc1OGIwZGMzLi5j
MzI2ZmRiOTJiNGUwNmEwNDk1MGE5ZWE5MTE0ZDA2NmFmNzc4YTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmgK
QEAgLTM0LDggKzM0LDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIFdlYklEQkRhdGFi
YXNlRXhjZXB0aW9uIHsKLSAgICBXZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciA9IDEy
MDUsCi0gICAgV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9yID0gMTIxMSwKKyAgICBX
ZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciA9IDEyMDQsCisgICAgV2ViSURCRGF0YWJh
c2VFeGNlcHRpb25RdW90YUVycm9yID0gMTIxNCwKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdF
bnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcAppbmRleCAzNzU0Mjg5MjNjYjVlNzMwZDZhMzYwMDFjYTg5Y2U3ODg0NmNmYmRiLi45NDk4
NWIyMGM4ZTNkYzc2ZDYxNTNmZDQyOWMwOGZlYTI5MWQwMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNDU4LDcgKzQ1
OCw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6VXNlclN0eWxlSW5q
ZWN0SW5FeGlzdGluZ0RvY3VtZW50cywgSW5qZWN0CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYlZpZXc6OlVzZXJTdHlsZUluamVjdEluU3Vic2VxdWVudERvY3VtZW50cywgSW5qZWN0
SW5TdWJzZXF1ZW50RG9jdW1lbnRzKTsKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciwgSURCRGF0YWJhc2VFeGNlcHRpb246OkRB
VEFfRVJSKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNl
cHRpb25RdW90YUVycm9yLCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6UVVPVEFfRVJSKTsKK0NPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9y
LCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1FVT1RBX0VYQ0VFREVEX0VSUik7CiAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
SURCS2V5OjpJbnZhbGlkVHlwZSwgSURCS2V5OjpJbnZhbGlkVHlwZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTE3ZWI3
MTIxMjAzY2Q3MDI3MTU4NTBjYWMwMmZmYzVkOWE5ZDIzZi4uY2UzNzI4YjJiYzk2MjU1OTdhNGRm
MjJlOWI2YTQ4NTIxMWFlOTRkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA1LTIzICBB
bGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6
IEFsaWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMg
ZXJyb3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanM6CisgICAgICAg
ICh0ZXN0KToKKwogMjAxMi0wNS0yNCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5A
cmltLmNvbT4KIAogICAgICAgICBTVkdab29tQW5kUGFuIGNvbnN0YW50cyBhcmUgbWlzc2luZyBm
cm9tIHdpbmRvdyBvYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jb25zdGFudHMtZXhwZWN0ZWQudHh0CmluZGV4IGU5YjkzYTU1MTUwOWUwNjU4ZDQ3ZmE5MjM1
YTVlMmM5YWEyNWNlZDcuLjZhMTBiNzk3ZTJkZDc0MGRhNDFiYTI2YWJmNjFjNTZmZjg5N2Q5MzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4
cGVjdGVkLnR4dApAQCAtNywxNiArNywxNiBAQCBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLgogCiBQ
QVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlVOS05PV05fRVJSIGlzIDEKIFBBU1MgSURCRGF0YWJh
c2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIgaXMgMgotUEFTUyBJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5OT1RfRk9VTkRfRVJSIGlzIDMKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RS
QUlOVF9FUlIgaXMgNAotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiBpcyA1Ci1Q
QVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiBpcyA2Ci1QQVNTIElEQkRh
dGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiBpcyA3Ci1QQVNTIElEQkRh
dGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VSUiBpcyA4Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9u
LlJFQURfT05MWV9FUlIgaXMgOQotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VS
UiBpcyAxMAotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIgaXMgMTEKLVBBU1Mg
SURCRGF0YWJhc2VFeGNlcHRpb24uVkVSX0VSUiBpcyAxMgorUEFTUyBJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5DT05TVFJBSU5UX0VSUiBpcyAzCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFf
RVJSIGlzIDQKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIGlzIDUK
K1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIGlzIDYK
K1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uUkVBRF9PTkxZX0VSUiBpcyA3CitQQVNTIElEQkRh
dGFiYXNlRXhjZXB0aW9uLlZFUl9FUlIgaXMgOAorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5U
SU1FT1VUX0VSUiBpcyBET01FeGNlcHRpb24uVElNRU9VVF9FUlIKK1BBU1MgSURCRGF0YWJhc2VF
eGNlcHRpb24uUVVPVEFfRVJSIGlzIERPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIKK1BB
U1MgSURCRGF0YWJhc2VFeGNlcHRpb24uQUJPUlRfRVJSIGlzIERPTUV4Y2VwdGlvbi5BQk9SVF9F
UlIKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiBpcyBET01FeGNlcHRp
b24uTk9UX0ZPVU5EX0VSUgogUEFTUyBJREJDdXJzb3IuTkVYVCBpcyAwCiBQQVNTIElEQkN1cnNv
ci5ORVhUX05PX0RVUExJQ0FURSBpcyAxCiBQQVNTIElEQkN1cnNvci5QUkVWIGlzIDIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY29uc3RhbnRzLmpz
CmluZGV4IDU5NmVhYTgzYTAzNjE1OWM0YmQ5ZjBiZjQzNWUyNGQzZWE3M2UwMjguLmI1NTk5N2I4
OGVjMmI2ZGVkNmVmZTNiNTIxMTNiOGE3YzExOWUyNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanMKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NvbnN0YW50cy5qcwpAQCAtMTAsMTYgKzEw
LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CiAgICAg
c2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlVOS05PV05fRVJSIiwgIjEiKTsKICAgICBz
aG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIiLCAiMiIpOwot
ICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIiwgIjMiKTsK
LSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAiNCIp
OwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICI1Iik7Ci0g
ICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIsICI2Iik7
Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZF
X0VSUiIsICI3Iik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VS
UiIsICI4Iik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9F
UlIiLCAiOSIpOwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VS
UiIsICIxMCIpOwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIi
LCAiMTEiKTsKLSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVkVSX0VSUiIsICIx
MiIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIs
ICIzIik7CisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIjQi
KTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIiwg
IjUiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5B
Q1RJVkVfRVJSIiwgIjYiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uUkVB
RF9PTkxZX0VSUiIsICI3Iik7CisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlZF
Ul9FUlIiLCAiOCIpOworCisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRJTUVP
VVRfRVJSIiwgIkRPTUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIpOworICAgIHNob3VsZEJlKCJJREJE
YXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIiLCAiRE9NRXhjZXB0aW9uLlFVT1RBX0VYQ0VFREVE
X0VSUiIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5BQk9SVF9FUlIiLCAi
RE9NRXhjZXB0aW9uLkFCT1JUX0VSUiIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5OT1RfRk9VTkRfRVJSIiwgIkRPTUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIik7CiAKICAg
ICBzaG91bGRCZSgiSURCQ3Vyc29yLk5FWFQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJJREJDdXJz
b3IuTkVYVF9OT19EVVBMSUNBVEUiLCAiMSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143922</attachid>
            <date>2012-05-24 16:39:00 -0700</date>
            <delta_ts>2012-05-25 14:28:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87276-20120524163859.patch</filename>
            <type>text/plain</type>
            <size>26108</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAyODM1NjRhZjJkMzBh
N2YxYTllYTQ2MzBjZjc3YjkwYzUyNTYzYS4uMzNmMjgxMDhkN2NiOTI2ZmM3YTg1ZDEzNTk3MzA3
YzYwOGQ4ODAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTIzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFs
aWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJy
b3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1
c2UgdGhlIG5ldworICAgICAgICBleGNlcHRpb24gY29uc3RhbnQgdmFsdWVzLgorCisgICAgICAg
IFRoZSBJREIgc3BlYyBoYXMgZXZvbHZlZCB0byBET000LXN0eWxlIERPTUV4Y2VwdGlvbnMsIHdo
aWNoIGFyZQorICAgICAgICByZWZlcnJlZCB0byB3aXRoIE1peGVkQ2FzZSwgc3RyaW5nLWJhc2Vk
IHN0eWxlIG5hbWVzIGZvcgorICAgICAgICBleGNlcHRpb25zIHJhdGhlciB0aGFuIFVOREVSU0NP
UkVfQ09OU1RBTlRfRVJSIGNvZGVzLiBDaGFuZ2UgdG8KKyAgICAgICAgdXNlIE1peGVkQ2FzZSBl
cnJvci9leGNlcHRpb24gbmFtZXMsIGFuZCB0ZWFzZSBvdXQgdGhlCisgICAgICAgIElEQi1zcGVj
aWZpYyBleGNlcHRpb24vZXJyb3IgY29kZXMvbmFtZXMgZnJvbSB0aGUgc3lzdGVtLWxldmVsCisg
ICAgICAgIGNvZGVzLiBNYWtlIHN1cmUgdGhhdCB0aGUgbGVnYWN5IElEQi1tYXNrZWQgZXhjZXB0
aW9uIGNvZGUgdmFsdWVzCisgICAgICAgIG1hdGNoIHRoZSBET00gZXhjZXB0aW9uIHZhbHVlcy4g
TWFrZSBzdXJlIHRoYXQKKyAgICAgICAgSURCRGF0YWJhc2VFeGNlcHRpb25bZXhjZXB0aW9uLm5h
bWVdIHN0aWxsIHdvcmtzLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpkZWxldGVPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHA6CisgICAg
ICAgIChJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlRXhjZXB0aW9uOjppbml0aWFsaXpl
RGVzY3JpcHRpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhj
ZXB0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjppbmRleCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpkZWxldGVJbmRleCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsOjpvYmplY3RTdG9yZSk6CisKIDIwMTItMDUtMjQgIE5pa29sYXMgWmltbWVy
bWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgU1ZHWm9vbUFuZFBhbiBjb25z
dGFudHMgYXJlIG1pc3NpbmcgZnJvbSB3aW5kb3cgb2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDcwYTJjMWUwYWU2NjY2Y2U5ZTFmNjk4ZmQyNzg5ZTE4NmI5ODQ4MDQuLjM1N2Fl
YjQ4NTJmM2VmNTY5MmQzZGU5MGVhYTU1YjU5ZWNkNjQyZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDUtMjMgIEFsZWMgRmxldHQgIDxhbGVjZmxl
dHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogQWxpZ24gY29kZXMgYW5kIG5h
bWVzIGZvciBJREItc3BlY2lmaWMgYW5kIERPTS1zcGVjaWZpYyBlcnJvcnMvZXhjZXB0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcyNzYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0Vu
dW1zLmNwcDoKKwogMjAxMi0wNS0yNCAgSGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBFbmFibGUgZ3JhbW1hciBjaGVja2luZyBvbiBDaHJvbWl1bSB3aGVuIHdl
IHBhc3RlIHRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmNwcAppbmRleCA3ODIzMDQyZGRjMzEwNzljZTBhOTNlNTY3NzE3NDM0NGJmMWRkNTI3Li4y
MjUzOGMzZTA3MmJjYzY5ZmZhZWM0OWZiOGE0YzIyMTFmNjA4N2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTEyNSwxMyArMTI1LDEz
IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjp1cGRhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlCiAgICAgSURCX1RSQUNFKCJJREJDdXJzb3I6OnVw
ZGF0ZSIpOwogCiAgICAgaWYgKCFtX2dvdFZhbHVlKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElE
X1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IHZhbHVlID0gcHJwVmFsdWU7CiAgICAgaWYgKHZhbHVlLT5ibG9iVVJM
cygpLnNpemUoKSA+IDApIHsKICAgICAgICAgLy8gRklYTUU6IEFkZCBCbG9iL0ZpbGUvRmlsZUxp
c3Qgc3VwcG9ydAotICAgICAgICBlYyA9IERBVEFfQ0xPTkVfRVJSOworICAgICAgICBlYyA9IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfREFUQV9DTE9ORV9FUlI7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KIApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgSURCQ3Vyc29yOjphZHZhbmNlKHVu
c2lnbmVkIGxvbmcgY291bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9UUkFDRSgi
SURCQ3Vyc29yOjphZHZhbmNlIik7CiAgICAgaWYgKCFtX2dvdFZhbHVlKSB7Ci0gICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246
OklEQl9JTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTg2
LDcgKzE4Niw3IEBAIHZvaWQgSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8
SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIGlmICghbV9nb3RW
YWx1ZSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICBlYyA9IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTIwNCw3ICsyMDQsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
QkN1cnNvcjo6ZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dAog
ewogICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yOjpkZWxldGUiKTsKICAgICBpZiAoIW1fZ290VmFs
dWUpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgZWMgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6SURCX0lOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0Ojpj
cmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIG1fdHJhbnNhY3Rpb24uZ2V0KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CmluZGV4IDc0ODE2YjhiODViMTE5YWIwYjdmNTgxNmE0ZDUxMzRmYjBlMzE5Y2MuLmUxZjQ0Y2Q1
MDYwYTVjNTgwMWNkYTBmNGVmOTJhNTBhMDJjZTcyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBQ
YXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjbwogICAgIH0KIAogICAgIGlmICgha2V5UGF0aC5pc051bGwo
KSAmJiAha2V5UGF0aC5pc1ZhbGlkKCkpIHsKLSAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAg
ICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfU1lOVEFYX0VSUjsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCkBAIC0xMTIsNyArMTEyLDcgQEAgUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZT4gSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY28KICAgICAgICAgb3B0aW9ucy5nZXQoImF1dG9JbmNyZW1lbnQiLCBhdXRvSW5jcmVtZW50
KTsKIAogICAgIGlmIChhdXRvSW5jcmVtZW50ICYmICgoa2V5UGF0aC50eXBlKCkgPT0gSURCS2V5
UGF0aDo6U3RyaW5nVHlwZSAmJiBrZXlQYXRoLnN0cmluZygpLmlzRW1wdHkoKSkgfHwga2V5UGF0
aC50eXBlKCkgPT0gSURCS2V5UGF0aDo6QXJyYXlUeXBlKSkgewotICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0lO
VkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC0xNTQsNyAr
MTU0LDcgQEAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gSURCRGF0YWJhc2U6OnRyYW5zYWN0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnQKIHsKICAgICBSZWZQdHI8RE9NU3RyaW5n
TGlzdD4gc3RvcmVOYW1lcyA9IHBycFN0b3JlTmFtZXM7CiAgICAgaWYgKCFzdG9yZU5hbWVzIHx8
IHN0b3JlTmFtZXMtPmlzRW1wdHkoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0lOVkFMSURfQUNDRVNT
X0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmlu
ZGV4IDAxMGExMjBlNTE1NmUxNmMwNzFkNDUwNjI4NzA0OTRkZmFhNjMyNTEuLjM3N2UyMTlhMjI1
ODlkYjIwZTg1ZDUwYmEwYWIyNWFjYWJjYTIyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBA
IC0xODksNyArMTg5LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpkZWxldGVPYmpl
Y3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIElEQlRyYW5zYWN0aW8KIHsKICAgICBSZWZQdHI8
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUgPSBtX29iamVjdFN0b3Jlcy5n
ZXQobmFtZSk7CiAgICAgaWYgKCFvYmplY3RTdG9yZSkgewotICAgICAgICBlYyA9IElEQkRhdGFi
YXNlRXhjZXB0aW9uOjpOT1RfRk9VTkRfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBS
ZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UgPSB0aGlzOwpAQCAtMjEzLDcg
KzIxMyw4IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbihjb25zdCBT
dHJpbmcmIHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsCiAgICAgUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzID0gcHJwQ2FsbGJhY2tzOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrcz4gZGF0YWJhc2VDYWxsYmFja3MgPSBwcnBEYXRhYmFzZUNhbGxiYWNrczsKICAgICBpZiAo
IW1fZGF0YWJhc2VDYWxsYmFja3NTZXQuY29udGFpbnMoZGF0YWJhc2VDYWxsYmFja3MpKSB7Ci0g
ICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0
YWJhc2VFeGNlcHRpb246OkFCT1JUX0VSUiwgIkNvbm5lY3Rpb24gd2FzIGNsb3NlZCBiZWZvcmUg
c2V0IHZlcnNpb24gdHJhbnNhY3Rpb24gd2FzIGNyZWF0ZWQiKSk7CisgICAgICAgIC8vIEZJWE1F
OiBJREJEYXRhYmFzZUVycm9yIGRvZXNuJ3QgeWV0IGRvIHByb3BlciB0cmFuc2xhdGlvbiBvZiBJ
REItc3BlY2lmYyB1c2VzIG9mIGVycm9yIGNvZGVzLCB0aGlzIHNob3VsZCBiZSBJREJfQUJPUlRf
RVJSCisgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGVX
aXRob3V0T2Zmc2V0KEFCT1JUX0VSUiwgIkNvbm5lY3Rpb24gd2FzIGNsb3NlZCBiZWZvcmUgc2V0
IHZlcnNpb24gdHJhbnNhY3Rpb24gd2FzIGNyZWF0ZWQiKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgZm9yIChEYXRhYmFzZUNhbGxiYWNrc1NldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmJlZ2luKCk7IGl0ICE9IG1fZGF0YWJhc2VDYWxsYmFja3NT
ZXQuZW5kKCk7ICsraXQpIHsKQEAgLTMxMiw3ICszMTMsNyBAQCBQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rp
b24oRAogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVOYW1lcy0+bGVu
Z3RoKCk7ICsraSkgewogICAgICAgICBpZiAoIW1fb2JqZWN0U3RvcmVzLmNvbnRhaW5zKG9iamVj
dFN0b3JlTmFtZXMtPml0ZW0oaSkpKSB7Ci0gICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpOT1RfRk9VTkRfRVJSOworICAgICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlRXhjZXB0aW9uLmNwcAppbmRleCBkODZhNTUyZGIzYzVmYzRkMjY1NjQwZDg3
MzhiMTBlZDM3NzMyMzhiLi4wZTFlNWM0OWFkZGNhMDFlNWE0N2NkYzA1OGRhOTM0YmIxZjg0Njg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VFeGNlcHRpb24uY3BwCkBAIC0zNCwyMiArMzQsMzQgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1zdGF0aWMgc3RydWN0IElEQkRhdGFiYXNlRXhjZXB0aW9uTmFtZURlc2NyaXB0
aW9uIHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgSURCRGF0YWJhc2VFeGNlcHRpb25OYW1lRGVzY3Jp
cHRpb24gewogICAgIGNvbnN0IGNoYXIqIGNvbnN0IG5hbWU7CiAgICAgY29uc3QgY2hhciogY29u
c3QgZGVzY3JpcHRpb247CisgICAgY29uc3QgRXhjZXB0aW9uQ29kZSBsZWdhY3lDb2RlOwogfSBp
ZGJEYXRhYmFzZUV4Y2VwdGlvbnNbXSA9IHsKLSAgICB7ICJVTktOT1dOX0VSUiIsICJBbiB1bmtu
b3duIGVycm9yIG9jY3VycmVkIHdpdGhpbiBJbmRleGVkIERhdGFiYXNlLiIgfSwKLSAgICB7ICJO
T05fVFJBTlNJRU5UX0VSUiIsICJOT05fVFJBTlNJRU5UX0VSUiIgfSwgLy8gRklYTUU6IFdyaXRl
IGEgYmV0dGVyIG1lc3NhZ2UgaWYgaXQncyBldmVyIHBvc3NpYmxlIHRoaXMgaXMgdGhyb3duLgot
ICAgIHsgIk5PVF9GT1VORF9FUlIiLCAiVGhlIG5hbWUgc3VwcGxpZWQgZG9lcyBub3QgbWF0Y2gg
YW55IGV4aXN0aW5nIGl0ZW0uIiB9LAotICAgIHsgIkNPTlNUUkFJTlRfRVJSIiwgIlRoZSByZXF1
ZXN0IGNhbm5vdCBiZSBjb21wbGV0ZWQgZHVlIHRvIGEgZmFpbGVkIGNvbnN0cmFpbnQuIiB9LAot
ICAgIHsgIkRBVEFfRVJSIiwgIlRoZSBkYXRhIHByb3ZpZGVkIGRvZXMgbm90IG1lZXQgdGhlIHJl
cXVpcmVtZW50cyBvZiB0aGUgZnVuY3Rpb24uIiB9LAotICAgIHsgIk5PVF9BTExPV0VEX0VSUiIs
ICJUaGlzIGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkIHRvIGJlIGNhbGxlZCBpbiBzdWNoIGEgY29u
dGV4dC4iIH0sCi0gICAgeyAiVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIiwgIkEgcmVxdWVzdCB3
YXMgcGxhY2VkIGFnYWluc3QgYSB0cmFuc2FjdGlvbiB3aGljaCBpcyBlaXRoZXIgY3VycmVudGx5
IG5vdCBhY3RpdmUsIG9yIHdoaWNoIGlzIGZpbmlzaGVkLiIgfSwKLSAgICB7ICJBQk9SVF9FUlIi
LCAiVGhlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkLCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUg
ZnVsZmlsbGVkLiIgfSwKLSAgICB7ICJSRUFEX09OTFlfRVJSIiwgIkEgd3JpdGUgb3BlcmF0aW9u
IHdhcyBhdHRlbXB0ZWQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24uIiB9LAotICAgIHsgIlRJ
TUVPVVRfRVJSIiwgIkEgbG9jayBmb3IgdGhlIHRyYW5zYWN0aW9uIGNvdWxkIG5vdCBiZSBvYnRh
aW5lZCBpbiBhIHJlYXNvbmFibGUgdGltZS4iIH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0IHVzZWQg
eWV0LgotICAgIHsgIlFVT1RBX0VSUiIsICJUaGUgb3BlcmF0aW9uIGZhaWxlZCBiZWNhdXNlIHRo
ZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlLCBvciB0aGUgc3RvcmFn
ZSBxdW90YSB3YXMgcmVhY2hlZCBhbmQgdGhlIHVzZXIgZGVjbGluZWQgdG8gZ2l2ZSBtb3JlIHNw
YWNlIHRvIHRoZSBkYXRhYmFzZS4iIH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0IHVzZWQgeWV0Ci0g
ICAgeyAiVkVSX0VSUiIsICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIG9wZW4gYSBkYXRhYmFzZSB1
c2luZyBhIGxvd2VyIHZlcnNpb24gdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbi4iIH0gLy8gRklY
TUU6IFRoaXMgaXNuJ3QgdXNlZCB5ZXQKKyAgICAvLyBUaGVzZSBhcmUgSURCLXNwZWNpZmljIGVy
cm9ycyBmcm9tIHRoZSBzcGVjLgorICAgIHsgIlVua25vd25FcnJvciIsICJBbiB1bmtub3duIGVy
cm9yIG9jY3VycmVkIHdpdGhpbiBJbmRleGVkIERhdGFiYXNlLiIsIDAgfSwKKyAgICB7ICJOb25U
cmFuc2llbnRFcnJvciIsICJOb25UcmFuc2llbnRFcnJvciIsIDAgfSwgLy8gRklYTUU6IE5vIGxv
bmdlciBpbiB0aGUgc3BlYworICAgIHsgMCwgMCwgMCB9LCAvLyBGSVhNRTogUHJldmlvdXMvbGVn
YWN5IHZhbHVlIE5PVF9GT1VORF9FUlIuCisgICAgeyAiQ29uc3RyYWludEVycm9yIiwgIkEgbXV0
YXRpb24gb3BlcmF0aW9uIGluIHRoZSB0cmFuc2FjdGlvbiBmYWlsZWQgYmVjYXVzZSBhIGNvbnN0
cmFpbnQgd2FzIG5vdCBzYXRpc2ZpZWQuIiwgMCB9LAorICAgIHsgIkRhdGFFcnJvciIsICJUaGUg
ZGF0YSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHJlcXVpcmVtZW50cy4iLCAwIH0sCisgICAgeyAi
Tm90QWxsb3dlZEVycm9yIiwgIlRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgdG8gYmUgY2Fs
bGVkIGluIHN1Y2ggYSBjb250ZXh0LiIsIDB9LCAvLyBGSVhNRTogbm8gbG9uZ2VyIGluIHRoZSBz
cGVjCisgICAgeyAiVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwgIkEgcmVxdWVzdCB3YXMgcGxh
Y2VkIGFnYWluc3QgYSB0cmFuc2FjdGlvbiB3aGljaCBpcyBlaXRoZXIgY3VycmVudGx5IG5vdCBh
Y3RpdmUsIG9yIHdoaWNoIGlzIGZpbmlzaGVkLiIsIDAgfSwKKyAgICB7IDAsIDAsIDAgfSwgLy8g
RklYTUU6IFByZXZpb3VzL2xlZ2FjeSB2YWx1ZSB3YXMgQUJPUlRfRVJSLgorICAgIHsgIlJlYWRP
bmx5RXJyb3IiLCAiQSB3cml0ZSBvcGVyYXRpb24gd2FzIGF0dGVtcHRlZCBpbiBhIHJlYWQtb25s
eSB0cmFuc2FjdGlvbi4iLCAwIH0sCisgICAgeyAwLCAwLCAwIH0sIC8vIEZJWE1FOiBQcmV2aW91
cy9sZWdhY3kgdmFsdWUgd2FzIFRJTUVPVVRfRVJSLgorICAgIHsgMCwgMCwgMCB9LCAvLyBGSVhN
RTogUHJldmlvdXMvbGVnYWN5IHZhbHVlIHdhcyBRVU9UQV9FUlIuCisgICAgeyAiVmVyc2lvbkVy
cm9yIiwgIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93
ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIsIDAgfSwgLy8gRklYTUU6IFRo
aXMgaXNuJ3QgdXNlZCB5ZXQKKworICAgIC8vIFRoZXNlIGFyZSBJREItc3BlY2lmaWMgZGVzY3Jp
cHRpb25zIG9mIGdlbmVyaWMgRE9NIEV4Y2VwdGlvbnMgd2hlbiB0aGV5IGFyZSB0aHJvd24gZnJv
bSBJREIgQVBJcworICAgIHsgIk5vdEZvdW5kRXJyb3IiLCAiQW4gb3BlcmF0aW9uIGZhaWxlZCBi
ZWNhdXNlIHRoZSByZXF1ZXN0ZWQgZGF0YWJhc2Ugb2JqZWN0IGNvdWxkIG5vdCBiZSBmb3VuZC4i
LCBOT1RfRk9VTkRfRVJSIH0sCisgICAgeyAiSW52YWxpZFN0YXRlRXJyb3IiLCAiQW4gb3BlcmF0
aW9uIHdhcyBjYWxsZWQgb24gYW4gb2JqZWN0IG9uIHdoaWNoIGl0IGlzIG5vdCBhbGxvd2VkIG9y
IGF0IGEgdGltZSB3aGVuIGl0IGlzIG5vdCBhbGxvd2VkLiIsIElOVkFMSURfU1RBVEVfRVJSIH0s
CisgICAgeyAiSW52YWxpZEFjY2Vzc0Vycm9yIiwgIkFuIGludmFsaWQgb3BlcmF0aW9uIHdhcyBw
ZXJmb3JtZWQgb24gYW4gb2JqZWN0LiIsIElOVkFMSURfQUNDRVNTX0VSUiB9LAorICAgIHsgIkFi
b3J0RXJyb3IiLCAiVGhlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkLCBzbyB0aGUgcmVxdWVzdCBj
YW5ub3QgYmUgZnVsZmlsbGVkLiIsIEFCT1JUX0VSUiB9LAorICAgIHsgIlRpbWVvdXRFcnJvciIs
ICJBIGxvY2sgZm9yIHRoZSB0cmFuc2FjdGlvbiBjb3VsZCBub3QgYmUgb2J0YWluZWQgaW4gYSBy
ZWFzb25hYmxlIHRpbWUuIiwgVElNRU9VVF9FUlIgfSwgLy8gRklYTUU6IFRoaXMgaXNuJ3QgdXNl
ZCB5ZXQuCisgICAgeyAiUXVvdGFFeGNlZWRlZEVycm9yIiwgIlRoZSBvcGVyYXRpb24gZmFpbGVk
IGJlY2F1c2UgdGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UsIG9y
IHRoZSBzdG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBkZWNsaW5lZCB0byBn
aXZlIG1vcmUgc3BhY2UgdG8gdGhlIGRhdGFiYXNlLiIsIFFVT1RBX0VYQ0VFREVEX0VSUiB9LCAv
LyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldAorICAgIHsgIlN5bnRheEVycm9yIiwgIlRoZSBr
ZXlwYXRoIGFyZ3VtZW50IGNvbnRhaW5zIGFuIGludmFsaWQga2V5IHBhdGguIiwgU1lOVEFYX0VS
UiB9LAorICAgIHsgIkRhdGFDbG9uZUVycm9yIiwgIlRoZSBkYXRhIGJlaW5nIHN0b3JlZCBjb3Vs
ZCBub3QgYmUgY2xvbmVkIGJ5IHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmVkIGNsb25pbmcgYWxnb3Jp
dGhtLiIsIERBVEFfQ0xPTkVfRVJSIH0KIH07CiAKIGJvb2wgSURCRGF0YWJhc2VFeGNlcHRpb246
OmluaXRpYWxpemVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBFeGNlcHRpb25Db2RlRGVz
Y3JpcHRpb24qIGRlc2NyaXB0aW9uKQpAQCAtNTcsMTUgKzY5LDE4IEBAIGJvb2wgSURCRGF0YWJh
c2VFeGNlcHRpb246OmluaXRpYWxpemVEZXNjcmlwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBFeGNl
cHRpb25Db2RlCiAgICAgaWYgKGVjIDwgSURCRGF0YWJhc2VFeGNlcHRpb25PZmZzZXQgfHwgZWMg
PiBJREJEYXRhYmFzZUV4Y2VwdGlvbk1heCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
c2l6ZV90IHRhYmxlU2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgoaWRiRGF0YWJhc2VFeGNlcHRpb25z
KTsKKyAgICBzaXplX3QgdGFibGVJbmRleCA9IGVjIC0gSURCRGF0YWJhc2VFeGNlcHRpb246OlVO
S05PV05fRVJSOworCisgICAgY29uc3QgSURCRGF0YWJhc2VFeGNlcHRpb25OYW1lRGVzY3JpcHRp
b24qIGVudHJ5ID0gdGFibGVJbmRleCA8IHRhYmxlU2l6ZSA/ICZpZGJEYXRhYmFzZUV4Y2VwdGlv
bnNbdGFibGVJbmRleF0gOiAwOworCiAgICAgZGVzY3JpcHRpb24tPnR5cGVOYW1lID0gIkRPTSBJ
REJEYXRhYmFzZSI7Ci0gICAgZGVzY3JpcHRpb24tPmNvZGUgPSBlYyAtIElEQkRhdGFiYXNlRXhj
ZXB0aW9uT2Zmc2V0OworICAgIGRlc2NyaXB0aW9uLT5jb2RlID0gKGVudHJ5ICYmIGVudHJ5LT5s
ZWdhY3lDb2RlKSA/IGVudHJ5LT5sZWdhY3lDb2RlIDogZWMgLSBJREJEYXRhYmFzZUV4Y2VwdGlv
bk9mZnNldDsKICAgICBkZXNjcmlwdGlvbi0+dHlwZSA9IElEQkRhdGFiYXNlRXhjZXB0aW9uVHlw
ZTsKIAotICAgIHNpemVfdCB0YWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKGlkYkRhdGFiYXNl
RXhjZXB0aW9ucyk7Ci0gICAgc2l6ZV90IHRhYmxlSW5kZXggPSBlYyAtIFVOS05PV05fRVJSOwog
Ci0gICAgZGVzY3JpcHRpb24tPm5hbWUgPSB0YWJsZUluZGV4IDwgdGFibGVTaXplID8gaWRiRGF0
YWJhc2VFeGNlcHRpb25zW3RhYmxlSW5kZXhdLm5hbWUgOiAwOwotICAgIGRlc2NyaXB0aW9uLT5k
ZXNjcmlwdGlvbiA9IHRhYmxlSW5kZXggPCB0YWJsZVNpemUgPyBpZGJEYXRhYmFzZUV4Y2VwdGlv
bnNbdGFibGVJbmRleF0uZGVzY3JpcHRpb24gOiAwOworICAgIGRlc2NyaXB0aW9uLT5uYW1lID0g
ZW50cnkgPyBlbnRyeS0+bmFtZSA6IDA7CisgICAgZGVzY3JpcHRpb24tPmRlc2NyaXB0aW9uID0g
ZW50cnkgPyBlbnRyeS0+ZGVzY3JpcHRpb24gOiAwOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4
Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VF
eGNlcHRpb24uaAppbmRleCA1NzBhMmZjZDY0ZjU4MzgzZTc2ZmQwNTM2ZGM3MDkwZjhjY2U4YjJl
Li5lZGM4Y2IwOTQxZDA0YmU1YzU4NjVkYjU3N2ZhOWNjNDE2MWMyZDkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9u
LmgKQEAgLTQ1LDE3ICs0NSwyNiBAQCBwdWJsaWM6CiAgICAgZW51bSBJREJEYXRhYmFzZUV4Y2Vw
dGlvbkNvZGUgewogICAgICAgICBOT19FUlIgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbk9mZnNldCwK
ICAgICAgICAgVU5LTk9XTl9FUlIsCi0gICAgICAgIE5PTl9UUkFOU0lFTlRfRVJSLAotICAgICAg
ICBOT1RfRk9VTkRfRVJSLAorICAgICAgICBOT05fVFJBTlNJRU5UX0VSUiwgLy8gRklYTUU6IE5v
IGxvbmdlciBpbiB0aGUgc3BlYworICAgICAgICBMRUdBQ1lfTk9UX0ZPVU5EX0VSUiwgLy8gRklY
TUU6IFBsYWNlaG9sZGVyLgogICAgICAgICBDT05TVFJBSU5UX0VSUiwKICAgICAgICAgREFUQV9F
UlIsCi0gICAgICAgIE5PVF9BTExPV0VEX0VSUiwKKyAgICAgICAgTk9UX0FMTE9XRURfRVJSLCAv
LyBGSVhNRTogTm8gbG9uZ2VyIGluIHRoZSBzcGVjCiAgICAgICAgIFRSQU5TQUNUSU9OX0lOQUNU
SVZFX0VSUiwKLSAgICAgICAgQUJPUlRfRVJSLAorICAgICAgICBMRUdBQ1lfQUJPUlRfRVJSLCAv
LyBGSVhNRTogUGxhY2Vob2xkZXIuCiAgICAgICAgIFJFQURfT05MWV9FUlIsCi0gICAgICAgIFRJ
TUVPVVRfRVJSLAotICAgICAgICBRVU9UQV9FUlIsCi0gICAgICAgIFZFUl9FUlIKKyAgICAgICAg
TEVHQUNZX1RJTUVPVVRfRVJSLCAvLyBGSVhNRTogUGxhY2Vob2xkZXIuCisgICAgICAgIExFR0FD
WV9RVU9UQV9FUlIsIC8vIEZJWE1FOiBQbGFjZWhvbGRlci4KKyAgICAgICAgVkVSX0VSUiwKKwor
ICAgICAgICBJREJfTk9UX0ZPVU5EX0VSUiwKKyAgICAgICAgSURCX0lOVkFMSURfU1RBVEVfRVJS
LAorICAgICAgICBJREJfSU5WQUxJRF9BQ0NFU1NfRVJSLAorICAgICAgICBJREJfQUJPUlRfRVJS
LAorICAgICAgICBJREJfVElNRU9VVF9FUlIsCisgICAgICAgIElEQl9RVU9UQV9FWENFRURFRF9F
UlIsCisgICAgICAgIElEQl9TWU5UQVhfRVJSLAorICAgICAgICBJREJfREFUQV9DTE9ORV9FUlIs
CiAgICAgfTsKIAogICAgIHN0YXRpYyBpbnQgRXJyb3JDb2RlVG9FeGNlcHRpb25Db2RlKGludCBl
cnJvckNvZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKaW5kZXggYjRmMTllMWI5ZjVhOWE1NDZkNWVmM2Ix
YWRhM2YyZDAyOTZmYjVhNC4uNjdkODExYzNlYWYzMjBiNDQ2MThjNmVjMDRkNGU1Njg2MTkyNGIz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VFeGNlcHRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlRXhjZXB0aW9uLmlkbApAQCAtNDIsMTYgKzQyLDE3IEBAIG1vZHVsZSBzdG9yYWdl
IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9fRVJSID0gMDsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgVU5LTk9XTl9FUlIgPSAxOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBOT05fVFJBTlNJRU5UX0VSUiA9IDI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IE5PVF9GT1VORF9FUlIgPSAzOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT05T
VFJBSU5UX0VSUiA9IDQ7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERBVEFfRVJSID0g
NTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0FMTE9XRURfRVJSID0gNjsKICAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSID0gNzsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQUJPUlRfRVJSID0gODsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgUkVBRF9PTkxZX0VSUiA9IDk7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFRJTUVPVVRfRVJSID0gMTA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFFVT1RBX0VSUiA9IDExOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBWRVJfRVJSID0g
MTI7CisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0ZPVU5EX0VSUiA9IDg7Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFCT1JUX0VSUiA9IDIwOworICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBUSU1FT1VUX0VSUiA9IDIzOworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBRVU9UQV9FUlIgPSAyMjsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggMDRlYmE1MDIx
MTJkY2MxMGY0OWNkNjdjMDQ3ZTA2MDFkODgzM2IyZS4uNGQyYTE5YzAwMDU5ZDdhNmFmNmI0Y2Nl
NDE0OGE3NzZiYTU4MmVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzCiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUgPSBw
cnBWYWx1ZTsKICAgICBpZiAodmFsdWUtPmJsb2JVUkxzKCkuc2l6ZSgpID4gMCkgewogICAgICAg
ICAvLyBGSVhNRTogQWRkIEJsb2IvRmlsZS9GaWxlTGlzdCBzdXBwb3J0Ci0gICAgICAgIGVjID0g
REFUQV9DTE9ORV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9E
QVRBX0NMT05FX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC0xNTAsNyArMTUw
LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6cHV0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+YmxvYlVSTHMoKS5zaXpl
KCkgPiAwKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxlL0ZpbGVMaXN0IHN1cHBv
cnQKLSAgICAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9
CiAKQEAgLTIyNyw3ICsyMjcsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4PiBJREJPYmplY3RTdG9y
ZTo6Y3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZQogewogICAgIElE
Ql9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4Iik7CiAgICAgaWYgKCFrZXlQYXRo
LmlzVmFsaWQoKSkgewotICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIGVjID0gSURC
RGF0YWJhc2VFeGNlcHRpb246OklEQl9TWU5UQVhfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggNWNhZjc5NzQwNGU4Y2U4ZGJk
NTc4NTJiZmQ5Y2M1ZTQwZjUzZTk3YS4uZWI0MjM5NTM3NjQ5MTIwYzA0NTg0MWU4NWE5OWVjZDc1
YzE3YmI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTU1NCw3ICs1NTQsNyBA
QCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbDo6aW5kZXgoY29uc3QgU3RyaQogewogICAgIFJlZlB0cjxJREJJbmRleEJhY2tlbmRJ
bnRlcmZhY2U+IGluZGV4ID0gbV9pbmRleGVzLmdldChuYW1lKTsKICAgICBpZiAoIWluZGV4KSB7
Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7CisgICAg
ICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1RfRk9VTkRfRVJSOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAgICAgcmV0dXJuIGluZGV4LnJlbGVhc2UoKTsKQEAgLTU2OSw3
ICs1NjksNyBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmRlbGV0ZUluZGV4KGNv
bnN0IFN0cmluZyYgbmFtZSwgSURCVHJhbnNhY3Rpb25CYQogCiAgICAgUmVmUHRyPElEQkluZGV4
QmFja2VuZEltcGw+IGluZGV4ID0gbV9pbmRleGVzLmdldChuYW1lKTsKICAgICBpZiAoIWluZGV4
KSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7Cisg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1RfRk9VTkRfRVJSOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDU4OTA0MmVjMGVmNDg0M2IzOGNlZTAxMTlkNTBjNDk4
MTY4MTE4NjYuLmVlMzQwYzcxMWFiYTI5M2E2Yjg4YTFlN2NmYzg2ZDhjMDAzODFmOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0x
NzQsNyArMTc0LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjphYm9ydCgpCiAgICAgbV9lcnJvckNvZGUg
PSAwOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7CiAgICAgbV9yZXN1bHQuY2xlYXIo
KTsKLSAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6QUJPUlRfRVJSLCAiVGhlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkLCBzbyB0aGUgcmVx
dWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVkLiIpKTsKKyAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJy
b3I6OmNyZWF0ZVdpdGhvdXRPZmZzZXQoQUJPUlRfRVJSLCAiVGhlIHRyYW5zYWN0aW9uIHdhcyBh
Ym9ydGVkLCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVkLiIpKTsKIH0KIAogdm9p
ZCBJREJSZXF1ZXN0OjpzZXRDdXJzb3JUeXBlKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1
cnNvclR5cGUgY3Vyc29yVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKaW5kZXggMGE3
OWE5N2ExNWVlMjNlOTc2NGEyZGUyZjc0ZmUwOGMwNDk0Y2FhZC4uZDkxMGM2YzJjMGQ5YmNhZjk4
NGIzY2U0ZTU5OTlkMGRiMDY1NzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKQEAg
LTcyLDcgKzcyLDcgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Om9iamVjdFN0b3IKIAogICAgIC8vIERvZXMgYSBs
aW5lYXIgc2VhcmNoLCBidXQgaXQgcmVhbGx5IHNob3VsZG4ndCBiZSB0aGF0IHNsb3cgaW4gcHJh
Y3RpY2UuCiAgICAgaWYgKG1fbW9kZSAhPSBJREJUcmFuc2FjdGlvbjo6VkVSU0lPTl9DSEFOR0Ug
JiYgIW1fb2JqZWN0U3RvcmVOYW1lcy0+Y29udGFpbnMobmFtZSkpIHsKLSAgICAgICAgZWMgPSBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KIApAQCAtODIsNyArODIsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZT4gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6b2JqZWN0U3RvcgogICAgIC8vICAg
ICAgICBUaGVyZSdzIGEgYnVnIHRvIG1ha2UgdGhpcyBpbXBvc3NpYmxlIGluIHRoZSBzcGVjLiBX
aGVuIHdlIG1ha2UgaXQgaW1wb3NzaWJsZSBoZXJlLCB3ZQogICAgIC8vICAgICAgICBjYW4gcmVt
b3ZlIHRoaXMgY2hlY2suCiAgICAgaWYgKCFvYmplY3RTdG9yZSkgewotICAgICAgICBlYyA9IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfRk9VTkRfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFi
YXNlRXhjZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogICAgIHJldHVybiBvYmplY3RTdG9yZS5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VFeGNlcHRpb24uaAppbmRleCA4
MWI4Mzg2Njc1NWI5NWQ0N2UzMjY3MDg3ZmRkMmVhYTc1OGIwZGMzLi5iMGU2M2Q0MjZlMDcwMDlm
MjdmOGY2OGExMDlkNDU4ZTM4ZjQ1NTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmgKQEAgLTM1LDcgKzM1LDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gV2ViSURCRGF0YWJhc2VFeGNlcHRpb24gewog
ICAgIFdlYklEQkRhdGFiYXNlRXhjZXB0aW9uRGF0YUVycm9yID0gMTIwNSwKLSAgICBXZWJJREJE
YXRhYmFzZUV4Y2VwdGlvblF1b3RhRXJyb3IgPSAxMjExLAorICAgIFdlYklEQkRhdGFiYXNlRXhj
ZXB0aW9uUXVvdGFFcnJvciA9IDEyMTgsCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAK
aW5kZXggMzc1NDI4OTIzY2I1ZTczMGQ2YTM2MDAxY2E4OWNlNzg4NDZjZmJkYi4uOTQ5ODViMjBj
OGUzZGM3NmQ2MTUzZmQ0MjljMDhmZWEyOTFkMDM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTQ1OCw3ICs0NTgsNyBA
QCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlZpZXc6OlVzZXJTdHlsZUluamVjdElu
RXhpc3RpbmdEb2N1bWVudHMsIEluamVjdAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJWaWV3OjpVc2VyU3R5bGVJbmplY3RJblN1YnNlcXVlbnREb2N1bWVudHMsIEluamVjdEluU3Vi
c2VxdWVudERvY3VtZW50cyk7CiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURC
RGF0YWJhc2VFeGNlcHRpb25EYXRhRXJyb3IsIElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VS
Uik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkRhdGFiYXNlRXhjZXB0aW9u
UXVvdGFFcnJvciwgSURCRGF0YWJhc2VFeGNlcHRpb246OlFVT1RBX0VSUik7CitDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkRhdGFiYXNlRXhjZXB0aW9uUXVvdGFFcnJvciwgSURC
RGF0YWJhc2VFeGNlcHRpb246OklEQl9RVU9UQV9FWENFRURFRF9FUlIpOwogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQktl
eTo6SW52YWxpZFR5cGUsIElEQktleTo6SW52YWxpZFR5cGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUxN2ViNzEyMTIw
M2NkNzAyNzE1ODUwY2FjMDJmZmM1ZDlhOWQyM2YuLmNlMzcyOGIyYmM5NjI1NTk3YTRkZjIyZTli
NmE0ODUyMTFhZTk0ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNS0yMyAgQWxlYyBG
bGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBbGln
biBjb2RlcyBhbmQgbmFtZXMgZm9yIElEQi1zcGVjaWZpYyBhbmQgRE9NLXNwZWNpZmljIGVycm9y
cy9leGNlcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NzI3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY29uc3RhbnRzLmpzOgorICAgICAgICAodGVz
dCk6CisKIDIwMTItMDUtMjQgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5j
b20+CiAKICAgICAgICAgU1ZHWm9vbUFuZFBhbiBjb25zdGFudHMgYXJlIG1pc3NpbmcgZnJvbSB3
aW5kb3cgb2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9j
b25zdGFudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29u
c3RhbnRzLWV4cGVjdGVkLnR4dAppbmRleCBlOWI5M2E1NTE1MDllMDY1OGQ0N2ZhOTIzNWE1ZTJj
OWFhMjVjZWQ3Li4yZjk4ZjA0ZmY2YjY0NjFiMmQ5OTkwZWNkNTYyOTM3ZTczM2M3MzhmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3Rl
ZC50eHQKQEAgLTcsMTYgKzcsMTYgQEAgaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi4KIAogUEFTUyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5VTktOT1dOX0VSUiBpcyAxCiBQQVNTIElEQkRhdGFiYXNlRXhj
ZXB0aW9uLk5PTl9UUkFOU0lFTlRfRVJSIGlzIDIKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24u
Tk9UX0ZPVU5EX0VSUiBpcyAzCiBQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkNPTlNUUkFJTlRf
RVJSIGlzIDQKIFBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIgaXMgNQogUEFTUyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIgaXMgNgogUEFTUyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElWRV9FUlIgaXMgNwotUEFTUyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5BQk9SVF9FUlIgaXMgOAogUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFE
X09OTFlfRVJSIGlzIDkKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uVElNRU9VVF9FUlIgaXMg
MTAKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uUVVPVEFfRVJSIGlzIDExCiBQQVNTIElEQkRh
dGFiYXNlRXhjZXB0aW9uLlZFUl9FUlIgaXMgMTIKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24u
VElNRU9VVF9FUlIgaXMgRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSCitQQVNTIElEQkRhdGFiYXNl
RXhjZXB0aW9uLlFVT1RBX0VSUiBpcyBET01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSCitQ
QVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VSUiBpcyBET01FeGNlcHRpb24uQUJPUlRf
RVJSCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIgaXMgRE9NRXhjZXB0
aW9uLk5PVF9GT1VORF9FUlIKIFBBU1MgSURCQ3Vyc29yLk5FWFQgaXMgMAogUEFTUyBJREJDdXJz
b3IuTkVYVF9OT19EVVBMSUNBVEUgaXMgMQogUEFTUyBJREJDdXJzb3IuUFJFViBpcyAyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY29uc3RhbnRz
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NvbnN0YW50cy5q
cwppbmRleCA1OTZlYWE4M2EwMzYxNTljNGJkOWYwYmY0MzVlMjRkM2VhNzNlMDI4Li5mZjdhNzM3
ZDA2MzIyMDM5NDg1NzVlNjIzMGEwNDA5ZWM5MWUxZDYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY29uc3RhbnRzLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanMKQEAgLTEwLDE3ICsx
MCwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwogICAg
IHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5VTktOT1dOX0VSUiIsICIxIik7CiAgICAg
c2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lFTlRfRVJSIiwgIjIiKTsK
LSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIsICIzIik7
CiAgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkNPTlNUUkFJTlRfRVJSIiwgIjQi
KTsKICAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiNSIpOwog
ICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIiLCAiNiIp
OwogICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFOU0FDVElPTl9JTkFDVElW
RV9FUlIiLCAiNyIpOwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5BQk9SVF9F
UlIiLCAiOCIpOwogICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUFEX09OTFlf
RVJSIiwgIjkiKTsKLSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVElNRU9VVF9F
UlIiLCAiMTAiKTsKLSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uUVVPVEFfRVJS
IiwgIjExIik7CiAgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLlZFUl9FUlIiLCAi
MTIiKTsKIAorICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIs
ICJET01FeGNlcHRpb24uVElNRU9VVF9FUlIiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VF
eGNlcHRpb24uUVVPVEFfRVJSIiwgIkRPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIiKTsK
KyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uQUJPUlRfRVJSIiwgIkRPTUV4Y2Vw
dGlvbi5BQk9SVF9FUlIiKTsKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9U
X0ZPVU5EX0VSUiIsICJET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOworCiAgICAgc2hvdWxk
QmUoIklEQkN1cnNvci5ORVhUIiwgIjAiKTsKICAgICBzaG91bGRCZSgiSURCQ3Vyc29yLk5FWFRf
Tk9fRFVQTElDQVRFIiwgIjEiKTsKICAgICBzaG91bGRCZSgiSURCQ3Vyc29yLlBSRVYiLCAiMiIp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144147</attachid>
            <date>2012-05-25 14:28:52 -0700</date>
            <delta_ts>2012-05-29 10:22:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87276-20120525142851.patch</filename>
            <type>text/plain</type>
            <size>26121</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJjZDVlMjM3ZTg5Yjk5
NmU1YWY0NTNiMjQyYWRiZThlNzZhMTE0Zi4uZTBjMWQ4M2U4OGI5ZDU3N2IwN2ZlY2FkNTQ4YjIw
ODJmNDRlM2FlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTIzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFs
aWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJy
b3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1
c2UgdGhlIG5ldworICAgICAgICBleGNlcHRpb24gY29uc3RhbnQgdmFsdWVzLgorCisgICAgICAg
IFRoZSBJREIgc3BlYyBoYXMgZXZvbHZlZCB0byBET000LXN0eWxlIERPTUV4Y2VwdGlvbnMsIHdo
aWNoIGFyZQorICAgICAgICByZWZlcnJlZCB0byB3aXRoIE1peGVkQ2FzZSwgc3RyaW5nLWJhc2Vk
IHN0eWxlIG5hbWVzIGZvcgorICAgICAgICBleGNlcHRpb25zIHJhdGhlciB0aGFuIFVOREVSU0NP
UkVfQ09OU1RBTlRfRVJSIGNvZGVzLiBDaGFuZ2UgdG8KKyAgICAgICAgdXNlIE1peGVkQ2FzZSBl
cnJvci9leGNlcHRpb24gbmFtZXMsIGFuZCB0ZWFzZSBvdXQgdGhlCisgICAgICAgIElEQi1zcGVj
aWZpYyBleGNlcHRpb24vZXJyb3IgY29kZXMvbmFtZXMgZnJvbSB0aGUgc3lzdGVtLWxldmVsCisg
ICAgICAgIGNvZGVzLiBNYWtlIHN1cmUgdGhhdCB0aGUgbGVnYWN5IElEQi1tYXNrZWQgZXhjZXB0
aW9uIGNvZGUgdmFsdWVzCisgICAgICAgIG1hdGNoIHRoZSBET00gZXhjZXB0aW9uIHZhbHVlcy4g
TWFrZSBzdXJlIHRoYXQKKyAgICAgICAgSURCRGF0YWJhc2VFeGNlcHRpb25bZXhjZXB0aW9uLm5h
bWVdIHN0aWxsIHdvcmtzLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpkZWxldGVPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHA6CisgICAg
ICAgIChJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlRXhjZXB0aW9uOjppbml0aWFsaXpl
RGVzY3JpcHRpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhj
ZXB0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjppbmRleCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpkZWxldGVJbmRleCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsOjpvYmplY3RTdG9yZSk6CisKIDIwMTItMDUtMjUgIEFsZXhhbmRlciBQYXZs
b3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDbGVh
biB1cCBJbnNwZWN0b3IuanNvbiBhZnRlciByMTE4MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDZkZTQ1NjUzMDhkZWM2M2ZmOWQwNGJhZmJmMzYwMTJiOGVhOTcwNjYuLjVhMTAyMjcw
MmRmNTNjY2JmMDQ5MTAzYmVlNTY3MGJlZTIyNDllZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDUtMjMgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogQWxpZ24gY29kZXMgYW5kIG5hbWVz
IGZvciBJREItc3BlY2lmaWMgYW5kIERPTS1zcGVjaWZpYyBlcnJvcnMvZXhjZXB0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcyNzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5oOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcDoKKwogMjAxMi0wNS0yNSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZDsgcm9sbGluZyBjaHJvbWl1bSBkZXBzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggNzgyMzA0MmRk
YzMxMDc5Y2UwYTkzZTU2NzcxNzQzNDRiZjFkZDUyNy4uMjI1MzhjM2UwNzJiY2M2OWZmYWVjNDlm
YjhhNGMyMjExZjYwODdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwCkBAIC0xMjUsMTMgKzEyNSwxMyBAQCBQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IElEQkN1cnNvcjo6dXBkYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZQogICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yOjp1cGRhdGUiKTsKIAogICAgIGlmICghbV9n
b3RWYWx1ZSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICBlYyA9
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9
IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+YmxvYlVSTHMoKS5zaXplKCkgPiAwKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxlL0ZpbGVMaXN0IHN1cHBvcnQKLSAgICAgICAgZWMg
PSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURC
X0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTE0OCw3ICsx
NDgsNyBAQCB2b2lkIElEQkN1cnNvcjo6YWR2YW5jZSh1bnNpZ25lZCBsb25nIGNvdW50LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6YWR2YW5jZSIpOwog
ICAgIGlmICghbV9nb3RWYWx1ZSkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwor
ICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfSU5WQUxJRF9TVEFURV9FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIElEQkN1
cnNvcjo6Y29udGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICB9CiAKICAgICBpZiAoIW1fZ290VmFsdWUpIHsKLSAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURC
X0lOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDQsNyAr
MjA0LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJDdXJzb3I6OmRlbGV0ZUZ1bmN0aW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1
cnNvcjo6ZGVsZXRlIik7CiAgICAgaWYgKCFtX2dvdFZhbHVlKSB7Ci0gICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9J
TlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIFJlZlB0cjxJ
REJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6
Y3JlYXRlKHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCA3NDgxNmI4Yjg1YjExOWFi
MGI3ZjU4MTZhNGQ1MTM0ZmIwZTMxOWNjLi5lMWY0NGNkNTA2MGE1YzU4MDFjZGEwZjRlZjkyYTUw
YTAyY2U3MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9y
ZT4gSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY28K
ICAgICB9CiAKICAgICBpZiAoIWtleVBhdGguaXNOdWxsKCkgJiYgIWtleVBhdGguaXNWYWxpZCgp
KSB7Ci0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6SURCX1NZTlRBWF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAt
MTEyLDcgKzExMiw3IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IElEQkRhdGFiYXNlOjpj
cmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvCiAgICAgICAgIG9wdGlvbnMu
Z2V0KCJhdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudCk7CiAKICAgICBpZiAoYXV0b0luY3Jl
bWVudCAmJiAoKGtleVBhdGgudHlwZSgpID09IElEQktleVBhdGg6OlN0cmluZ1R5cGUgJiYga2V5
UGF0aC5zdHJpbmcoKS5pc0VtcHR5KCkpIHx8IGtleVBhdGgudHlwZSgpID09IElEQktleVBhdGg6
OkFycmF5VHlwZSkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAg
IGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElEX0FDQ0VTU19FUlI7CiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMTU0LDcgKzE1NCw3IEBAIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb24+IElEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250CiB7CiAgICAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN0b3JlTmFtZXMgPSBwcnBT
dG9yZU5hbWVzOwogICAgIGlmICghc3RvcmVOYW1lcyB8fCBzdG9yZU5hbWVzLT5pc0VtcHR5KCkp
IHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIGVjID0gSURCRGF0
YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAwMTBhMTIwZTUxNTZlMTZjMDcx
ZDQ1MDYyODcwNDk0ZGZhYTYzMjUxLi4wOTZlZTg1ZTk5YmY5YjliZTNhOTI0MWFjZTJlOTg2MzA1
MzQ5MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBu
YW1lLCBJREJUcmFuc2FjdGlvCiB7CiAgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZElt
cGw+IG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9yZXMuZ2V0KG5hbWUpOwogICAgIGlmICghb2Jq
ZWN0U3RvcmUpIHsKLSAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5E
X0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2Vu
ZEltcGw+IGRhdGFiYXNlID0gdGhpczsKQEAgLTIxMyw3ICsyMTMsOCBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnNldFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVm
UHRyPElEQkNhbAogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyA9IHBycENhbGxi
YWNrczsKICAgICBSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tz
ID0gcHJwRGF0YWJhc2VDYWxsYmFja3M7CiAgICAgaWYgKCFtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0
LmNvbnRhaW5zKGRhdGFiYXNlQ2FsbGJhY2tzKSkgewotICAgICAgICBjYWxsYmFja3MtPm9uRXJy
b3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpBQk9SVF9F
UlIsICJDb25uZWN0aW9uIHdhcyBjbG9zZWQgYmVmb3JlIHNldCB2ZXJzaW9uIHRyYW5zYWN0aW9u
IHdhcyBjcmVhdGVkIikpOworICAgICAgICAvLyBGSVhNRTogSURCRGF0YWJhc2VFcnJvciBkb2Vz
bid0IHlldCBkbyBwcm9wZXIgdHJhbnNsYXRpb24gb2YgSURCLXNwZWNpZmljIHVzZXMgb2YgZXJy
b3IgY29kZXMsIHRoaXMgc2hvdWxkIGJlIElEQl9BQk9SVF9FUlIKKyAgICAgICAgY2FsbGJhY2tz
LT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZVdpdGhvdXRPZmZzZXQoQUJPUlRfRVJS
LCAiQ29ubmVjdGlvbiB3YXMgY2xvc2VkIGJlZm9yZSBzZXQgdmVyc2lvbiB0cmFuc2FjdGlvbiB3
YXMgY3JlYXRlZCIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBmb3IgKERhdGFiYXNl
Q2FsbGJhY2tzU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQu
YmVnaW4oKTsgaXQgIT0gbV9kYXRhYmFzZUNhbGxiYWNrc1NldC5lbmQoKTsgKytpdCkgewpAQCAt
MzEyLDcgKzMxMyw3IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbihECiB7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBvYmplY3RTdG9yZU5hbWVzLT5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAg
IGlmICghbV9vYmplY3RTdG9yZXMuY29udGFpbnMob2JqZWN0U3RvcmVOYW1lcy0+aXRlbShpKSkp
IHsKLSAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7
CisgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VS
UjsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24u
Y3BwCmluZGV4IGQ4NmE1NTJkYjNjNWZjNGQyNjU2NDBkODczOGIxMGVkMzc3MzIzOGIuLjBlMWU1
YzQ5YWRkY2EwMWU1YTQ3Y2RjMDU4ZGE5MzRiYjFmODQ2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHAK
QEAgLTM0LDIyICszNCwzNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBzdHJ1
Y3QgSURCRGF0YWJhc2VFeGNlcHRpb25OYW1lRGVzY3JpcHRpb24geworc3RhdGljIGNvbnN0IHN0
cnVjdCBJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbiB7CiAgICAgY29uc3QgY2hh
ciogY29uc3QgbmFtZTsKICAgICBjb25zdCBjaGFyKiBjb25zdCBkZXNjcmlwdGlvbjsKKyAgICBj
b25zdCBFeGNlcHRpb25Db2RlIGxlZ2FjeUNvZGU7CiB9IGlkYkRhdGFiYXNlRXhjZXB0aW9uc1td
ID0gewotICAgIHsgIlVOS05PV05fRVJSIiwgIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQgd2l0
aGluIEluZGV4ZWQgRGF0YWJhc2UuIiB9LAotICAgIHsgIk5PTl9UUkFOU0lFTlRfRVJSIiwgIk5P
Tl9UUkFOU0lFTlRfRVJSIiB9LCAvLyBGSVhNRTogV3JpdGUgYSBiZXR0ZXIgbWVzc2FnZSBpZiBp
dCdzIGV2ZXIgcG9zc2libGUgdGhpcyBpcyB0aHJvd24uCi0gICAgeyAiTk9UX0ZPVU5EX0VSUiIs
ICJUaGUgbmFtZSBzdXBwbGllZCBkb2VzIG5vdCBtYXRjaCBhbnkgZXhpc3RpbmcgaXRlbS4iIH0s
Ci0gICAgeyAiQ09OU1RSQUlOVF9FUlIiLCAiVGhlIHJlcXVlc3QgY2Fubm90IGJlIGNvbXBsZXRl
ZCBkdWUgdG8gYSBmYWlsZWQgY29uc3RyYWludC4iIH0sCi0gICAgeyAiREFUQV9FUlIiLCAiVGhl
IGRhdGEgcHJvdmlkZWQgZG9lcyBub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBmdW5j
dGlvbi4iIH0sCi0gICAgeyAiTk9UX0FMTE9XRURfRVJSIiwgIlRoaXMgZnVuY3Rpb24gaXMgbm90
IGFsbG93ZWQgdG8gYmUgY2FsbGVkIGluIHN1Y2ggYSBjb250ZXh0LiIgfSwKLSAgICB7ICJUUkFO
U0FDVElPTl9JTkFDVElWRV9FUlIiLCAiQSByZXF1ZXN0IHdhcyBwbGFjZWQgYWdhaW5zdCBhIHRy
YW5zYWN0aW9uIHdoaWNoIGlzIGVpdGhlciBjdXJyZW50bHkgbm90IGFjdGl2ZSwgb3Igd2hpY2gg
aXMgZmluaXNoZWQuIiB9LAotICAgIHsgIkFCT1JUX0VSUiIsICJUaGUgdHJhbnNhY3Rpb24gd2Fz
IGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0IGNhbm5vdCBiZSBmdWxmaWxsZWQuIiB9LAotICAgIHsg
IlJFQURfT05MWV9FUlIiLCAiQSB3cml0ZSBvcGVyYXRpb24gd2FzIGF0dGVtcHRlZCBpbiBhIHJl
YWQtb25seSB0cmFuc2FjdGlvbi4iIH0sCi0gICAgeyAiVElNRU9VVF9FUlIiLCAiQSBsb2NrIGZv
ciB0aGUgdHJhbnNhY3Rpb24gY291bGQgbm90IGJlIG9idGFpbmVkIGluIGEgcmVhc29uYWJsZSB0
aW1lLiIgfSwgLy8gRklYTUU6IFRoaXMgaXNuJ3QgdXNlZCB5ZXQuCi0gICAgeyAiUVVPVEFfRVJS
IiwgIlRoZSBvcGVyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVt
YWluaW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBzdG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFu
ZCB0aGUgdXNlciBkZWNsaW5lZCB0byBnaXZlIG1vcmUgc3BhY2UgdG8gdGhlIGRhdGFiYXNlLiIg
fSwgLy8gRklYTUU6IFRoaXMgaXNuJ3QgdXNlZCB5ZXQKLSAgICB7ICJWRVJfRVJSIiwgIkFuIGF0
dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFiYXNlIHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0
aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIgfSAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHll
dAorICAgIC8vIFRoZXNlIGFyZSBJREItc3BlY2lmaWMgZXJyb3JzIGZyb20gdGhlIHNwZWMuCisg
ICAgeyAiVW5rbm93bkVycm9yIiwgIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQgd2l0aGluIElu
ZGV4ZWQgRGF0YWJhc2UuIiwgMCB9LAorICAgIHsgIk5vblRyYW5zaWVudEVycm9yIiwgIk5vblRy
YW5zaWVudEVycm9yIiwgMCB9LCAvLyBGSVhNRTogTm8gbG9uZ2VyIGluIHRoZSBzcGVjCisgICAg
eyAwLCAwLCAwIH0sIC8vIEZJWE1FOiBQcmV2aW91cy9sZWdhY3kgdmFsdWUgTk9UX0ZPVU5EX0VS
Ui4KKyAgICB7ICJDb25zdHJhaW50RXJyb3IiLCAiQSBtdXRhdGlvbiBvcGVyYXRpb24gaW4gdGhl
IHRyYW5zYWN0aW9uIGZhaWxlZCBiZWNhdXNlIGEgY29uc3RyYWludCB3YXMgbm90IHNhdGlzZmll
ZC4iLCAwIH0sCisgICAgeyAiRGF0YUVycm9yIiwgIlRoZSBkYXRhIHByb3ZpZGVkIGRvZXMgbm90
IG1lZXQgcmVxdWlyZW1lbnRzLiIsIDAgfSwKKyAgICB7ICJOb3RBbGxvd2VkRXJyb3IiLCAiVGhp
cyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCB0byBiZSBjYWxsZWQgaW4gc3VjaCBhIGNvbnRleHQu
IiwgMH0sIC8vIEZJWE1FOiBubyBsb25nZXIgaW4gdGhlIHNwZWMKKyAgICB7ICJUcmFuc2FjdGlv
bkluYWN0aXZlRXJyb3IiLCAiQSByZXF1ZXN0IHdhcyBwbGFjZWQgYWdhaW5zdCBhIHRyYW5zYWN0
aW9uIHdoaWNoIGlzIGVpdGhlciBjdXJyZW50bHkgbm90IGFjdGl2ZSwgb3Igd2hpY2ggaXMgZmlu
aXNoZWQuIiwgMCB9LAorICAgIHsgMCwgMCwgMCB9LCAvLyBGSVhNRTogUHJldmlvdXMvbGVnYWN5
IHZhbHVlIHdhcyBBQk9SVF9FUlIuCisgICAgeyAiUmVhZE9ubHlFcnJvciIsICJBIHdyaXRlIG9w
ZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uLiIsIDAgfSwK
KyAgICB7IDAsIDAsIDAgfSwgLy8gRklYTUU6IFByZXZpb3VzL2xlZ2FjeSB2YWx1ZSB3YXMgVElN
RU9VVF9FUlIuCisgICAgeyAwLCAwLCAwIH0sIC8vIEZJWE1FOiBQcmV2aW91cy9sZWdhY3kgdmFs
dWUgd2FzIFFVT1RBX0VSUi4KKyAgICB7ICJWZXJzaW9uRXJyb3IiLCAiQW4gYXR0ZW1wdCB3YXMg
bWFkZSB0byBvcGVuIGEgZGF0YWJhc2UgdXNpbmcgYSBsb3dlciB2ZXJzaW9uIHRoYW4gdGhlIGV4
aXN0aW5nIHZlcnNpb24uIiwgMCB9LCAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldAorCisg
ICAgLy8gVGhlc2UgYXJlIElEQi1zcGVjaWZpYyBkZXNjcmlwdGlvbnMgb2YgZ2VuZXJpYyBET00g
RXhjZXB0aW9ucyB3aGVuIHRoZXkgYXJlIHRocm93biBmcm9tIElEQiBBUElzCisgICAgeyAiTm90
Rm91bmRFcnJvciIsICJBbiBvcGVyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHJlcXVlc3RlZCBk
YXRhYmFzZSBvYmplY3QgY291bGQgbm90IGJlIGZvdW5kLiIsIE5PVF9GT1VORF9FUlIgfSwKKyAg
ICB7ICJJbnZhbGlkU3RhdGVFcnJvciIsICJBbiBvcGVyYXRpb24gd2FzIGNhbGxlZCBvbiBhbiBv
YmplY3Qgb24gd2hpY2ggaXQgaXMgbm90IGFsbG93ZWQgb3IgYXQgYSB0aW1lIHdoZW4gaXQgaXMg
bm90IGFsbG93ZWQuIiwgSU5WQUxJRF9TVEFURV9FUlIgfSwKKyAgICB7ICJJbnZhbGlkQWNjZXNz
RXJyb3IiLCAiQW4gaW52YWxpZCBvcGVyYXRpb24gd2FzIHBlcmZvcm1lZCBvbiBhbiBvYmplY3Qu
IiwgSU5WQUxJRF9BQ0NFU1NfRVJSIH0sCisgICAgeyAiQWJvcnRFcnJvciIsICJUaGUgdHJhbnNh
Y3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0IGNhbm5vdCBiZSBmdWxmaWxsZWQuIiwg
QUJPUlRfRVJSIH0sCisgICAgeyAiVGltZW91dEVycm9yIiwgIkEgbG9jayBmb3IgdGhlIHRyYW5z
YWN0aW9uIGNvdWxkIG5vdCBiZSBvYnRhaW5lZCBpbiBhIHJlYXNvbmFibGUgdGltZS4iLCBUSU1F
T1VUX0VSUiB9LCAvLyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldC4KKyAgICB7ICJRdW90YUV4
Y2VlZGVkRXJyb3IiLCAiVGhlIG9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSB0aGVyZSB3YXMgbm90
IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2Fz
IHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVkIHRvIGdpdmUgbW9yZSBzcGFjZSB0byB0aGUg
ZGF0YWJhc2UuIiwgUVVPVEFfRVhDRUVERURfRVJSIH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0IHVz
ZWQgeWV0CisgICAgeyAiU3ludGF4RXJyb3IiLCAiVGhlIGtleXBhdGggYXJndW1lbnQgY29udGFp
bnMgYW4gaW52YWxpZCBrZXkgcGF0aC4iLCBTWU5UQVhfRVJSIH0sCisgICAgeyAiRGF0YUNsb25l
RXJyb3IiLCAiVGhlIGRhdGEgYmVpbmcgc3RvcmVkIGNvdWxkIG5vdCBiZSBjbG9uZWQgYnkgdGhl
IGludGVybmFsIHN0cnVjdHVyZWQgY2xvbmluZyBhbGdvcml0aG0uIiwgREFUQV9DTE9ORV9FUlIg
fQogfTsKIAogYm9vbCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0aW9u
KEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiogZGVzY3JpcHRpb24p
CkBAIC01NywxNSArNjksMTggQEAgYm9vbCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6aW5pdGlhbGl6
ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNvZGUKICAgICBpZiAoZWMg
PCBJREJEYXRhYmFzZUV4Y2VwdGlvbk9mZnNldCB8fCBlYyA+IElEQkRhdGFiYXNlRXhjZXB0aW9u
TWF4KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBzaXplX3QgdGFibGVTaXplID0gV1RG
X0FSUkFZX0xFTkdUSChpZGJEYXRhYmFzZUV4Y2VwdGlvbnMpOworICAgIHNpemVfdCB0YWJsZUlu
ZGV4ID0gZWMgLSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CisKKyAgICBjb25z
dCBJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbiogZW50cnkgPSB0YWJsZUluZGV4
IDwgdGFibGVTaXplID8gJmlkYkRhdGFiYXNlRXhjZXB0aW9uc1t0YWJsZUluZGV4XSA6IDA7CisK
ICAgICBkZXNjcmlwdGlvbi0+dHlwZU5hbWUgPSAiRE9NIElEQkRhdGFiYXNlIjsKLSAgICBkZXNj
cmlwdGlvbi0+Y29kZSA9IGVjIC0gSURCRGF0YWJhc2VFeGNlcHRpb25PZmZzZXQ7CisgICAgZGVz
Y3JpcHRpb24tPmNvZGUgPSAoZW50cnkgJiYgZW50cnktPmxlZ2FjeUNvZGUpID8gZW50cnktPmxl
Z2FjeUNvZGUgOiBlYyAtIElEQkRhdGFiYXNlRXhjZXB0aW9uT2Zmc2V0OwogICAgIGRlc2NyaXB0
aW9uLT50eXBlID0gSURCRGF0YWJhc2VFeGNlcHRpb25UeXBlOwogCi0gICAgc2l6ZV90IHRhYmxl
U2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgoaWRiRGF0YWJhc2VFeGNlcHRpb25zKTsKLSAgICBzaXpl
X3QgdGFibGVJbmRleCA9IGVjIC0gVU5LTk9XTl9FUlI7CiAKLSAgICBkZXNjcmlwdGlvbi0+bmFt
ZSA9IHRhYmxlSW5kZXggPCB0YWJsZVNpemUgPyBpZGJEYXRhYmFzZUV4Y2VwdGlvbnNbdGFibGVJ
bmRleF0ubmFtZSA6IDA7Ci0gICAgZGVzY3JpcHRpb24tPmRlc2NyaXB0aW9uID0gdGFibGVJbmRl
eCA8IHRhYmxlU2l6ZSA/IGlkYkRhdGFiYXNlRXhjZXB0aW9uc1t0YWJsZUluZGV4XS5kZXNjcmlw
dGlvbiA6IDA7CisgICAgZGVzY3JpcHRpb24tPm5hbWUgPSBlbnRyeSA/IGVudHJ5LT5uYW1lIDog
MDsKKyAgICBkZXNjcmlwdGlvbi0+ZGVzY3JpcHRpb24gPSBlbnRyeSA/IGVudHJ5LT5kZXNjcmlw
dGlvbiA6IDA7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oCmluZGV4IDU3MGEy
ZmNkNjRmNTgzODNlNzZmZDA1MzZkYzcwOTBmOGNjZThiMmUuLmVkYzhjYjA5NDFkMDRiZTVjNTg2
NWRiNTc3ZmE5Y2M0MTYxYzJkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaApAQCAtNDUsMTcgKzQ1LDI2IEBA
IHB1YmxpYzoKICAgICBlbnVtIElEQkRhdGFiYXNlRXhjZXB0aW9uQ29kZSB7CiAgICAgICAgIE5P
X0VSUiA9IElEQkRhdGFiYXNlRXhjZXB0aW9uT2Zmc2V0LAogICAgICAgICBVTktOT1dOX0VSUiwK
LSAgICAgICAgTk9OX1RSQU5TSUVOVF9FUlIsCi0gICAgICAgIE5PVF9GT1VORF9FUlIsCisgICAg
ICAgIE5PTl9UUkFOU0lFTlRfRVJSLCAvLyBGSVhNRTogTm8gbG9uZ2VyIGluIHRoZSBzcGVjCisg
ICAgICAgIExFR0FDWV9OT1RfRk9VTkRfRVJSLCAvLyBGSVhNRTogUGxhY2Vob2xkZXIuCiAgICAg
ICAgIENPTlNUUkFJTlRfRVJSLAogICAgICAgICBEQVRBX0VSUiwKLSAgICAgICAgTk9UX0FMTE9X
RURfRVJSLAorICAgICAgICBOT1RfQUxMT1dFRF9FUlIsIC8vIEZJWE1FOiBObyBsb25nZXIgaW4g
dGhlIHNwZWMKICAgICAgICAgVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSLAotICAgICAgICBBQk9S
VF9FUlIsCisgICAgICAgIExFR0FDWV9BQk9SVF9FUlIsIC8vIEZJWE1FOiBQbGFjZWhvbGRlci4K
ICAgICAgICAgUkVBRF9PTkxZX0VSUiwKLSAgICAgICAgVElNRU9VVF9FUlIsCi0gICAgICAgIFFV
T1RBX0VSUiwKLSAgICAgICAgVkVSX0VSUgorICAgICAgICBMRUdBQ1lfVElNRU9VVF9FUlIsIC8v
IEZJWE1FOiBQbGFjZWhvbGRlci4KKyAgICAgICAgTEVHQUNZX1FVT1RBX0VSUiwgLy8gRklYTUU6
IFBsYWNlaG9sZGVyLgorICAgICAgICBWRVJfRVJSLAorCisgICAgICAgIElEQl9OT1RfRk9VTkRf
RVJSLAorICAgICAgICBJREJfSU5WQUxJRF9TVEFURV9FUlIsCisgICAgICAgIElEQl9JTlZBTElE
X0FDQ0VTU19FUlIsCisgICAgICAgIElEQl9BQk9SVF9FUlIsCisgICAgICAgIElEQl9USU1FT1VU
X0VSUiwKKyAgICAgICAgSURCX1FVT1RBX0VYQ0VFREVEX0VSUiwKKyAgICAgICAgSURCX1NZTlRB
WF9FUlIsCisgICAgICAgIElEQl9EQVRBX0NMT05FX0VSUiwKICAgICB9OwogCiAgICAgc3RhdGlj
IGludCBFcnJvckNvZGVUb0V4Y2VwdGlvbkNvZGUoaW50IGVycm9yQ29kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9u
LmlkbAppbmRleCBiNGYxOWUxYjlmNWE5YTU0NmQ1ZWYzYjFhZGEzZjJkMDI5NmZiNWE0Li42N2Q4
MTFjM2VhZjMyMGI0NDYxOGM2ZWMwNGQ0ZTU2ODYxOTI0YjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRs
CkBAIC00MiwxNiArNDIsMTcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBOT19FUlIgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBVTktO
T1dOX0VSUiA9IDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PTl9UUkFOU0lFTlRf
RVJSID0gMjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0ZPVU5EX0VSUiA9IDM7
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUUkFJTlRfRVJSID0gNDsKICAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgREFUQV9FUlIgPSA1OwogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBOT1RfQUxMT1dFRF9FUlIgPSA2OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBUUkFOU0FDVElPTl9JTkFDVElWRV9FUlIgPSA3OwotICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBBQk9SVF9FUlIgPSA4OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBSRUFE
X09OTFlfRVJSID0gOTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVElNRU9VVF9FUlIg
PSAxMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUVVPVEFfRVJSID0gMTE7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFZFUl9FUlIgPSAxMjsKKworICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBOT1RfRk9VTkRfRVJSID0gODsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgQUJPUlRfRVJSID0gMjA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRJTUVP
VVRfRVJSID0gMjM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFFVT1RBX0VSUiA9IDIy
OwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCAwNGViYTUwMjExMmRjYzEwZjQ5Y2Q2N2MwNDdlMDYw
MWQ4ODMzYjJlLi40ZDJhMTljMDAwNTlkN2E2YWY2YjRjY2U0MTQ4YTc3NmJhNTgyZWQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
Y3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RT
dG9yZTo6YWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICBSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1
ZS0+YmxvYlVSTHMoKS5zaXplKCkgPiAwKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9G
aWxlL0ZpbGVMaXN0IHN1cHBvcnQKLSAgICAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAg
ICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzcwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gcHJwVmFs
dWU7CiAgICAgaWYgKHZhbHVlLT5ibG9iVVJMcygpLnNpemUoKSA+IDApIHsKICAgICAgICAgLy8g
RklYTUU6IEFkZCBCbG9iL0ZpbGUvRmlsZUxpc3Qgc3VwcG9ydAotICAgICAgICBlYyA9IERBVEFf
Q0xPTkVfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfREFUQV9D
TE9ORV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMjI3LDcgKzIyNyw3IEBA
IFBhc3NSZWZQdHI8SURCSW5kZXg+IElEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleChjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IElEQktlCiB7CiAgICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9y
ZTo6Y3JlYXRlSW5kZXgiKTsKICAgICBpZiAoIWtleVBhdGguaXNWYWxpZCgpKSB7Ci0gICAgICAg
IGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURC
X1NZTlRBWF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmNwcAppbmRleCA1Y2FmNzk3NDA0ZThjZThkYmQ1Nzg1MmJmZDljYzVlNDBmNTNlOTdh
Li5lYjQyMzk1Mzc2NDkxMjBjMDQ1ODQxZTg1YTk5ZWNkNzVjMTdiYjljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIFBhc3NSZWZQdHI8SURCSW5kZXhC
YWNrZW5kSW50ZXJmYWNlPiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjppbmRleChjb25zdCBT
dHJpCiB7CiAgICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXggPSBtX2lu
ZGV4ZXMuZ2V0KG5hbWUpOwogICAgIGlmICghaW5kZXgpIHsKLSAgICAgICAgZWMgPSBJREJEYXRh
YmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAg
ICByZXR1cm4gaW5kZXgucmVsZWFzZSgpOwpAQCAtNTY5LDcgKzU2OSw3IEBAIHZvaWQgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJU
cmFuc2FjdGlvbkJhCiAKICAgICBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXggPSBt
X2luZGV4ZXMuZ2V0KG5hbWUpOwogICAgIGlmICghaW5kZXgpIHsKLSAgICAgICAgZWMgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5k
ZXggNTg5MDQyZWMwZWY0ODQzYjM4Y2VlMDExOWQ1MGM0OTgxNjgxMTg2Ni4uZWUzNDBjNzExYWJh
MjkzYTZiODhhMWU3Y2ZjODZkOGMwMDM4MWY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2Vycm9yQ29kZSA9IDA7CiAgICAgbV9lcnJvck1lc3Nh
Z2UgPSBTdHJpbmcoKTsKICAgICBtX3Jlc3VsdC5jbGVhcigpOwotICAgIG9uRXJyb3IoSURCRGF0
YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpBQk9SVF9FUlIsICJUaGUg
dHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0IGNhbm5vdCBiZSBmdWxmaWxs
ZWQuIikpOworICAgIG9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlV2l0aG91dE9mZnNl
dChBQk9SVF9FUlIsICJUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0
IGNhbm5vdCBiZSBmdWxmaWxsZWQuIikpOwogfQogCiB2b2lkIElEQlJlcXVlc3Q6OnNldEN1cnNv
clR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAppbmRleCAwYTc5YTk3YTE1ZWUyM2U5NzY0YTJkZTJm
NzRmZTA4YzA0OTRjYWFkLi5kOTEwYzZjMmMwZDliY2FmOTg0YjNjZTRlNTk5OWQwZGIwNjU3NjQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcApAQCAtNzIsNyArNzIsNyBAQCBQYXNzUmVm
UHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbDo6b2JqZWN0U3RvcgogCiAgICAgLy8gRG9lcyBhIGxpbmVhciBzZWFyY2gsIGJ1dCBpdCBy
ZWFsbHkgc2hvdWxkbid0IGJlIHRoYXQgc2xvdyBpbiBwcmFjdGljZS4KICAgICBpZiAobV9tb2Rl
ICE9IElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NIQU5HRSAmJiAhbV9vYmplY3RTdG9yZU5hbWVz
LT5jb250YWlucyhuYW1lKSkgewotICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpO
T1RfRk9VTkRfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfTk9U
X0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC04Miw3ICs4Miw3IEBA
IFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsOjpvYmplY3RTdG9yCiAgICAgLy8gICAgICAgIFRoZXJlJ3MgYSBidWcgdG8g
bWFrZSB0aGlzIGltcG9zc2libGUgaW4gdGhlIHNwZWMuIFdoZW4gd2UgbWFrZSBpdCBpbXBvc3Np
YmxlIGhlcmUsIHdlCiAgICAgLy8gICAgICAgIGNhbiByZW1vdmUgdGhpcyBjaGVjay4KICAgICBp
ZiAoIW9iamVjdFN0b3JlKSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5P
VF9GT1VORF9FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1Rf
Rk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcmV0dXJuIG9iamVjdFN0
b3JlLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oCmluZGV4IDgxYjgzODY2NzU1Yjk1ZDQ3ZTMyNjcw
ODdmZGQyZWFhNzU4YjBkYzMuLmIwZTYzZDQyNmUwNzAwOWYyN2Y4ZjY4YTEwOWQ0NThlMzhmNDU1
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFi
YXNlRXhjZXB0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURC
RGF0YWJhc2VFeGNlcHRpb24uaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogZW51bSBXZWJJREJEYXRhYmFzZUV4Y2VwdGlvbiB7CiAgICAgV2ViSURCRGF0YWJhc2VFeGNl
cHRpb25EYXRhRXJyb3IgPSAxMjA1LAotICAgIFdlYklEQkRhdGFiYXNlRXhjZXB0aW9uUXVvdGFF
cnJvciA9IDEyMTEsCisgICAgV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9yID0gMTIx
OCwKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCAzNzU0Mjg5MjNjYjVlNzMw
ZDZhMzYwMDFjYTg5Y2U3ODg0NmNmYmRiLi45NDk4NWIyMGM4ZTNkYzc2ZDYxNTNmZDQyOWMwOGZl
YTI5MWQwMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRN
YXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRN
YXRjaGluZ0VudW1zLmNwcApAQCAtNDU4LDcgKzQ1OCw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViVmlldzo6VXNlclN0eWxlSW5qZWN0SW5FeGlzdGluZ0RvY3VtZW50cywgSW5q
ZWN0CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlZpZXc6OlVzZXJTdHlsZUluamVj
dEluU3Vic2VxdWVudERvY3VtZW50cywgSW5qZWN0SW5TdWJzZXF1ZW50RG9jdW1lbnRzKTsKIAog
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFF
cnJvciwgSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9yLCBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6UVVPVEFfRVJSKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
SURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9yLCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURC
X1FVT1RBX0VYQ0VFREVEX0VSUik7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIENP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCS2V5OjpJbnZhbGlkVHlwZSwgSURCS2V5
OjpJbnZhbGlkVHlwZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTM5ZTUyNmQ5ZmM2YTQyY2JjZjBhMTNlMjVkY2ZlNmNl
ZTg4NzIxMi4uMmQyMjg4ZDM0YzNhZjRkMDU4MDg5MjViYjVmZjE2Y2IwM2UxNmI1NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTA1LTIzICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFsaWduIGNvZGVzIGFuZCBuYW1lcyBmb3Ig
SURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJyb3JzL2V4Y2VwdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3Mjc2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9jb25zdGFudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9jb25zdGFudHMuanM6CisgICAgICAgICh0ZXN0KToKKwogMjAxMi0wNS0yNSAgSm9z
aHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gV2lk
ZW4gQ1JBU0ggZXhwZWN0YXRpb24gZm9yIHZpc2liaWxpdHktc2ltcGxlLWNhbnZhczJkLWxheWVy
Lmh0bWwgdG8gaW5jbHVkZSBNYWMxMC42LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQKaW5kZXggZTliOTNhNTUxNTA5ZTA2NThk
NDdmYTkyMzVhNWUyYzlhYTI1Y2VkNy4uMmY5OGYwNGZmNmI2NDYxYjJkOTk5MGVjZDU2MjkzN2U3
MzNjNzM4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3Rh
bnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25z
dGFudHMtZXhwZWN0ZWQudHh0CkBAIC03LDE2ICs3LDE2IEBAIGluZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYuCiAKIFBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uVU5LTk9XTl9FUlIgaXMgMQogUEFTUyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUiBpcyAyCi1QQVNTIElEQkRhdGFi
YXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIgaXMgMwogUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlv
bi5DT05TVFJBSU5UX0VSUiBpcyA0CiBQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJS
IGlzIDUKIFBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIGlzIDYKIFBB
U1MgSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSIGlzIDcKLVBB
U1MgSURCRGF0YWJhc2VFeGNlcHRpb24uQUJPUlRfRVJSIGlzIDgKIFBBU1MgSURCRGF0YWJhc2VF
eGNlcHRpb24uUkVBRF9PTkxZX0VSUiBpcyA5Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlRJ
TUVPVVRfRVJSIGlzIDEwCi1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlFVT1RBX0VSUiBpcyAx
MQogUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5WRVJfRVJSIGlzIDEyCitQQVNTIElEQkRhdGFi
YXNlRXhjZXB0aW9uLlRJTUVPVVRfRVJSIGlzIERPTUV4Y2VwdGlvbi5USU1FT1VUX0VSUgorUEFT
UyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIgaXMgRE9NRXhjZXB0aW9uLlFVT1RBX0VY
Q0VFREVEX0VSUgorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5BQk9SVF9FUlIgaXMgRE9NRXhj
ZXB0aW9uLkFCT1JUX0VSUgorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJS
IGlzIERPTUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCiBQQVNTIElEQkN1cnNvci5ORVhUIGlzIDAK
IFBBU1MgSURCQ3Vyc29yLk5FWFRfTk9fRFVQTElDQVRFIGlzIDEKIFBBU1MgSURCQ3Vyc29yLlBS
RVYgaXMgMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2NvbnN0YW50cy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jb25zdGFudHMuanMKaW5kZXggNTk2ZWFhODNhMDM2MTU5YzRiZDlmMGJmNDM1ZTI0ZDNlYTcz
ZTAyOC4uZmY3YTczN2QwNjMyMjAzOTQ4NTc1ZTYyMzBhMDQwOWVjOTFlMWQ2MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NvbnN0YW50cy5qcwor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY29uc3RhbnRzLmpz
CkBAIC0xMCwxNyArMTAsMTggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKICAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVU5LTk9XTl9FUlIi
LCAiMSIpOwogICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5U
X0VSUiIsICIyIik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VO
RF9FUlIiLCAiMyIpOwogICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJB
SU5UX0VSUiIsICI0Iik7CiAgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFf
RVJSIiwgIjUiKTsKICAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9X
RURfRVJSIiwgIjYiKTsKICAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNB
Q1RJT05fSU5BQ1RJVkVfRVJSIiwgIjciKTsKLSAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNl
cHRpb24uQUJPUlRfRVJSIiwgIjgiKTsKICAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRp
b24uUkVBRF9PTkxZX0VSUiIsICI5Iik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0
aW9uLlRJTUVPVVRfRVJSIiwgIjEwIik7Ci0gICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0
aW9uLlFVT1RBX0VSUiIsICIxMSIpOwogICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlv
bi5WRVJfRVJSIiwgIjEyIik7CiAKKyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24u
VElNRU9VVF9FUlIiLCAiRE9NRXhjZXB0aW9uLlRJTUVPVVRfRVJSIik7CisgICAgc2hvdWxkQmUo
IklEQkRhdGFiYXNlRXhjZXB0aW9uLlFVT1RBX0VSUiIsICJET01FeGNlcHRpb24uUVVPVEFfRVhD
RUVERURfRVJSIik7CisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VS
UiIsICJET01FeGNlcHRpb24uQUJPUlRfRVJSIik7CisgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNl
RXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiLCAiRE9NRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiKTsK
KwogICAgIHNob3VsZEJlKCJJREJDdXJzb3IuTkVYVCIsICIwIik7CiAgICAgc2hvdWxkQmUoIklE
QkN1cnNvci5ORVhUX05PX0RVUExJQ0FURSIsICIxIik7CiAgICAgc2hvdWxkQmUoIklEQkN1cnNv
ci5QUkVWIiwgIjIiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144582</attachid>
            <date>2012-05-29 10:22:49 -0700</date>
            <delta_ts>2012-05-29 14:20:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87276-20120529102248.patch</filename>
            <type>text/plain</type>
            <size>26080</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRiNTAyNjEwMWFkNzc2
NzlmNjgwOGM0NzgyODc4ODZjYjIzNWMwMi4uMWU2NGViZTUyOGNhNzNkNGFjZjg5Y2U1NTkwYmRm
NDAxMDE1ODQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTIzICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFs
aWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMgZXJy
b3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBoYXZlIGJlZW4gdXBkYXRlZCB0byB1
c2UgdGhlIG5ldworICAgICAgICBleGNlcHRpb24gY29uc3RhbnQgdmFsdWVzLgorCisgICAgICAg
IFRoZSBJREIgc3BlYyBoYXMgZXZvbHZlZCB0byBET000LXN0eWxlIERPTUV4Y2VwdGlvbnMsIHdo
aWNoIGFyZQorICAgICAgICByZWZlcnJlZCB0byB3aXRoIE1peGVkQ2FzZSwgc3RyaW5nLWJhc2Vk
IHN0eWxlIG5hbWVzIGZvcgorICAgICAgICBleGNlcHRpb25zIHJhdGhlciB0aGFuIFVOREVSU0NP
UkVfQ09OU1RBTlRfRVJSIGNvZGVzLiBDaGFuZ2UgdG8KKyAgICAgICAgdXNlIE1peGVkQ2FzZSBl
cnJvci9leGNlcHRpb24gbmFtZXMsIGFuZCB0ZWFzZSBvdXQgdGhlCisgICAgICAgIElEQi1zcGVj
aWZpYyBleGNlcHRpb24vZXJyb3IgY29kZXMvbmFtZXMgZnJvbSB0aGUgc3lzdGVtLWxldmVsCisg
ICAgICAgIGNvZGVzLiBNYWtlIHN1cmUgdGhhdCB0aGUgbGVnYWN5IElEQi1tYXNrZWQgZXhjZXB0
aW9uIGNvZGUgdmFsdWVzCisgICAgICAgIG1hdGNoIHRoZSBET00gZXhjZXB0aW9uIHZhbHVlcy4g
TWFrZSBzdXJlIHRoYXQKKyAgICAgICAgSURCRGF0YWJhc2VFeGNlcHRpb25bZXhjZXB0aW9uLm5h
bWVdIHN0aWxsIHdvcmtzLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjp0cmFuc2FjdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpkZWxldGVPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHA6CisgICAg
ICAgIChJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlRXhjZXB0aW9uOjppbml0aWFsaXpl
RGVzY3JpcHRpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhj
ZXB0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjppbmRleCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpkZWxldGVJbmRleCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsOjpvYmplY3RTdG9yZSk6CisKIDIwMTItMDUtMjUgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTIx
NTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDZkZTQ1NjUzMDhkZWM2M2ZmOWQwNGJh
ZmJmMzYwMTJiOGVhOTcwNjYuLjVhMTAyMjcwMmRmNTNjY2JmMDQ5MTAzYmVlNTY3MGJlZTIyNDll
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDUt
MjMgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4
ZWREQjogQWxpZ24gY29kZXMgYW5kIG5hbWVzIGZvciBJREItc3BlY2lmaWMgYW5kIERPTS1zcGVj
aWZpYyBlcnJvcnMvZXhjZXB0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODcyNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oOgorICAgICAg
ICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKwogMjAxMi0wNS0yNSAgS2ludWtvIFlh
c3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZDsgcm9sbGlu
ZyBjaHJvbWl1bSBkZXBzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvci5jcHAKaW5kZXggNzgyMzA0MmRkYzMxMDc5Y2UwYTkzZTU2NzcxNzQzNDRiZjFkZDUy
Ny4uMjI1MzhjM2UwNzJiY2M2OWZmYWVjNDlmYjhhNGMyMjExZjYwODdjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0xMjUsMTMgKzEy
NSwxMyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkN1cnNvcjo6dXBkYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZQogICAgIElEQl9UUkFDRSgiSURCQ3Vyc29y
Ojp1cGRhdGUiKTsKIAogICAgIGlmICghbV9nb3RWYWx1ZSkgewotICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfSU5W
QUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+Ymxv
YlVSTHMoKS5zaXplKCkgPiAwKSB7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxlL0Zp
bGVMaXN0IHN1cHBvcnQKLSAgICAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAgZWMg
PSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIElEQkN1cnNvcjo6YWR2YW5j
ZSh1bnNpZ25lZCBsb25nIGNvdW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJB
Q0UoIklEQkN1cnNvcjo6YWR2YW5jZSIpOwogICAgIGlmICghbV9nb3RWYWx1ZSkgewotICAgICAg
ICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpJREJfSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTE4Niw3ICsxODYsNyBAQCB2b2lkIElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlvbihQYXNzUmVm
UHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB9CiAKICAgICBpZiAoIW1f
Z290VmFsdWUpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgZWMg
PSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0lOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0yMDQsNyArMjA0LDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJDdXJzb3I6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6ZGVsZXRlIik7CiAgICAgaWYgKCFtX2dv
dFZhbHVlKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIGVjID0g
SURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVz
dDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdl
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
LmNwcAppbmRleCA3NDgxNmI4Yjg1YjExOWFiMGI3ZjU4MTZhNGQ1MTM0ZmIwZTMxOWNjLi5lMWY0
NGNkNTA2MGE1YzU4MDFjZGEwZjRlZjkyYTUwYTAyY2U3MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0xMDMsNyArMTAzLDcg
QEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0
b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY28KICAgICB9CiAKICAgICBpZiAoIWtleVBhdGguaXNO
dWxsKCkgJiYgIWtleVBhdGguaXNWYWxpZCgpKSB7Ci0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsK
KyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1NZTlRBWF9FUlI7CiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMTEyLDcgKzExMiw3IEBAIFBhc3NSZWZQdHI8SURC
T2JqZWN0U3RvcmU+IElEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvCiAgICAgICAgIG9wdGlvbnMuZ2V0KCJhdXRvSW5jcmVtZW50IiwgYXV0b0luY3Jl
bWVudCk7CiAKICAgICBpZiAoYXV0b0luY3JlbWVudCAmJiAoKGtleVBhdGgudHlwZSgpID09IElE
QktleVBhdGg6OlN0cmluZ1R5cGUgJiYga2V5UGF0aC5zdHJpbmcoKS5pc0VtcHR5KCkpIHx8IGtl
eVBhdGgudHlwZSgpID09IElEQktleVBhdGg6OkFycmF5VHlwZSkpIHsKLSAgICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklE
Ql9JTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMTU0
LDcgKzE1NCw3IEBAIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IElEQkRhdGFiYXNlOjp0cmFu
c2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250CiB7CiAgICAgUmVmUHRyPERPTVN0
cmluZ0xpc3Q+IHN0b3JlTmFtZXMgPSBwcnBTdG9yZU5hbWVzOwogICAgIGlmICghc3RvcmVOYW1l
cyB8fCBzdG9yZU5hbWVzLT5pc0VtcHR5KCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElEX0FD
Q0VTU19FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNw
cAppbmRleCAwMTBhMTIwZTUxNTZlMTZjMDcxZDQ1MDYyODcwNDk0ZGZhYTYzMjUxLi4wOTZlZTg1
ZTk5YmY5YjliZTNhOTI0MWFjZTJlOTg2MzA1MzQ5MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNw
cApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRl
T2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGlvCiB7CiAgICAgUmVm
UHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9y
ZXMuZ2V0KG5hbWUpOwogICAgIGlmICghb2JqZWN0U3RvcmUpIHsKLSAgICAgICAgZWMgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+IGRhdGFiYXNlID0gdGhpczsKQEAgLTIx
Myw3ICsyMTMsOCBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldFZlcnNpb24oY29u
c3QgU3RyaW5nJiB2ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkNhbAogICAgIFJlZlB0cjxJREJDYWxs
YmFja3M+IGNhbGxiYWNrcyA9IHBycENhbGxiYWNrczsKICAgICBSZWZQdHI8SURCRGF0YWJhc2VD
YWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzID0gcHJwRGF0YWJhc2VDYWxsYmFja3M7CiAgICAg
aWYgKCFtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmNvbnRhaW5zKGRhdGFiYXNlQ2FsbGJhY2tzKSkg
ewotICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpBQk9SVF9FUlIsICJDb25uZWN0aW9uIHdhcyBjbG9zZWQgYmVm
b3JlIHNldCB2ZXJzaW9uIHRyYW5zYWN0aW9uIHdhcyBjcmVhdGVkIikpOworICAgICAgICAvLyBG
SVhNRTogSURCRGF0YWJhc2VFcnJvciBkb2Vzbid0IHlldCBkbyBwcm9wZXIgdHJhbnNsYXRpb24g
b2YgSURCLXNwZWNpZmljIHVzZXMgb2YgZXJyb3IgY29kZXMsIHRoaXMgc2hvdWxkIGJlIElEQl9B
Qk9SVF9FUlIKKyAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNy
ZWF0ZVdpdGhvdXRPZmZzZXQoQUJPUlRfRVJSLCAiQ29ubmVjdGlvbiB3YXMgY2xvc2VkIGJlZm9y
ZSBzZXQgdmVyc2lvbiB0cmFuc2FjdGlvbiB3YXMgY3JlYXRlZCIpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBmb3IgKERhdGFiYXNlQ2FsbGJhY2tzU2V0Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYmVnaW4oKTsgaXQgIT0gbV9kYXRhYmFzZUNhbGxi
YWNrc1NldC5lbmQoKTsgKytpdCkgewpAQCAtMzEyLDcgKzMxMyw3IEBAIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFu
c2FjdGlvbihECiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYmplY3RTdG9yZU5hbWVz
LT5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIGlmICghbV9vYmplY3RTdG9yZXMuY29udGFpbnMo
b2JqZWN0U3RvcmVOYW1lcy0+aXRlbShpKSkpIHsKLSAgICAgICAgICAgIGVjID0gSURCRGF0YWJh
c2VFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7CisgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwCmluZGV4IGQ4NmE1NTJkYjNjNWZjNGQyNjU2
NDBkODczOGIxMGVkMzc3MzIzOGIuLjBlMWU1YzQ5YWRkY2EwMWU1YTQ3Y2RjMDU4ZGE5MzRiYjFm
ODQ2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5jcHAKQEAgLTM0LDIyICszNCwzNCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBzdHJ1Y3QgSURCRGF0YWJhc2VFeGNlcHRpb25OYW1lRGVz
Y3JpcHRpb24geworc3RhdGljIGNvbnN0IHN0cnVjdCBJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVE
ZXNjcmlwdGlvbiB7CiAgICAgY29uc3QgY2hhciogY29uc3QgbmFtZTsKICAgICBjb25zdCBjaGFy
KiBjb25zdCBkZXNjcmlwdGlvbjsKKyAgICBjb25zdCBFeGNlcHRpb25Db2RlIGxlZ2FjeUNvZGU7
CiB9IGlkYkRhdGFiYXNlRXhjZXB0aW9uc1tdID0gewotICAgIHsgIlVOS05PV05fRVJSIiwgIkFu
IHVua25vd24gZXJyb3Igb2NjdXJyZWQgd2l0aGluIEluZGV4ZWQgRGF0YWJhc2UuIiB9LAotICAg
IHsgIk5PTl9UUkFOU0lFTlRfRVJSIiwgIk5PTl9UUkFOU0lFTlRfRVJSIiB9LCAvLyBGSVhNRTog
V3JpdGUgYSBiZXR0ZXIgbWVzc2FnZSBpZiBpdCdzIGV2ZXIgcG9zc2libGUgdGhpcyBpcyB0aHJv
d24uCi0gICAgeyAiTk9UX0ZPVU5EX0VSUiIsICJUaGUgbmFtZSBzdXBwbGllZCBkb2VzIG5vdCBt
YXRjaCBhbnkgZXhpc3RpbmcgaXRlbS4iIH0sCi0gICAgeyAiQ09OU1RSQUlOVF9FUlIiLCAiVGhl
IHJlcXVlc3QgY2Fubm90IGJlIGNvbXBsZXRlZCBkdWUgdG8gYSBmYWlsZWQgY29uc3RyYWludC4i
IH0sCi0gICAgeyAiREFUQV9FUlIiLCAiVGhlIGRhdGEgcHJvdmlkZWQgZG9lcyBub3QgbWVldCB0
aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBmdW5jdGlvbi4iIH0sCi0gICAgeyAiTk9UX0FMTE9XRURf
RVJSIiwgIlRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgdG8gYmUgY2FsbGVkIGluIHN1Y2gg
YSBjb250ZXh0LiIgfSwKLSAgICB7ICJUUkFOU0FDVElPTl9JTkFDVElWRV9FUlIiLCAiQSByZXF1
ZXN0IHdhcyBwbGFjZWQgYWdhaW5zdCBhIHRyYW5zYWN0aW9uIHdoaWNoIGlzIGVpdGhlciBjdXJy
ZW50bHkgbm90IGFjdGl2ZSwgb3Igd2hpY2ggaXMgZmluaXNoZWQuIiB9LAotICAgIHsgIkFCT1JU
X0VSUiIsICJUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0IGNhbm5v
dCBiZSBmdWxmaWxsZWQuIiB9LAotICAgIHsgIlJFQURfT05MWV9FUlIiLCAiQSB3cml0ZSBvcGVy
YXRpb24gd2FzIGF0dGVtcHRlZCBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbi4iIH0sCi0gICAg
eyAiVElNRU9VVF9FUlIiLCAiQSBsb2NrIGZvciB0aGUgdHJhbnNhY3Rpb24gY291bGQgbm90IGJl
IG9idGFpbmVkIGluIGEgcmVhc29uYWJsZSB0aW1lLiIgfSwgLy8gRklYTUU6IFRoaXMgaXNuJ3Qg
dXNlZCB5ZXQuCi0gICAgeyAiUVVPVEFfRVJSIiwgIlRoZSBvcGVyYXRpb24gZmFpbGVkIGJlY2F1
c2UgdGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBz
dG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBkZWNsaW5lZCB0byBnaXZlIG1v
cmUgc3BhY2UgdG8gdGhlIGRhdGFiYXNlLiIgfSwgLy8gRklYTUU6IFRoaXMgaXNuJ3QgdXNlZCB5
ZXQKLSAgICB7ICJWRVJfRVJSIiwgIkFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gb3BlbiBhIGRhdGFi
YXNlIHVzaW5nIGEgbG93ZXIgdmVyc2lvbiB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uLiIgfSAv
LyBGSVhNRTogVGhpcyBpc24ndCB1c2VkIHlldAorICAgIC8vIFRoZXNlIGFyZSBJREItc3BlY2lm
aWMgZXJyb3JzIGZyb20gdGhlIHNwZWMuCisgICAgeyAiVW5rbm93bkVycm9yIiwgIkFuIHVua25v
d24gZXJyb3Igb2NjdXJyZWQgd2l0aGluIEluZGV4ZWQgRGF0YWJhc2UuIiwgMCB9LAorICAgIHsg
Ik5vblRyYW5zaWVudEVycm9yIiwgIk5vblRyYW5zaWVudEVycm9yIiwgMCB9LCAvLyBGSVhNRTog
Tm8gbG9uZ2VyIGluIHRoZSBzcGVjCisgICAgeyAwLCAwLCAwIH0sIC8vIEZJWE1FOiBQcmV2aW91
cy9sZWdhY3kgdmFsdWUgTk9UX0ZPVU5EX0VSUi4KKyAgICB7ICJDb25zdHJhaW50RXJyb3IiLCAi
QSBtdXRhdGlvbiBvcGVyYXRpb24gaW4gdGhlIHRyYW5zYWN0aW9uIGZhaWxlZCBiZWNhdXNlIGEg
Y29uc3RyYWludCB3YXMgbm90IHNhdGlzZmllZC4iLCAwIH0sCisgICAgeyAiRGF0YUVycm9yIiwg
IlRoZSBkYXRhIHByb3ZpZGVkIGRvZXMgbm90IG1lZXQgcmVxdWlyZW1lbnRzLiIsIDAgfSwKKyAg
ICB7ICJOb3RBbGxvd2VkRXJyb3IiLCAiVGhpcyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCB0byBi
ZSBjYWxsZWQgaW4gc3VjaCBhIGNvbnRleHQuIiwgMH0sIC8vIEZJWE1FOiBubyBsb25nZXIgaW4g
dGhlIHNwZWMKKyAgICB7ICJUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IiLCAiQSByZXF1ZXN0IHdh
cyBwbGFjZWQgYWdhaW5zdCBhIHRyYW5zYWN0aW9uIHdoaWNoIGlzIGVpdGhlciBjdXJyZW50bHkg
bm90IGFjdGl2ZSwgb3Igd2hpY2ggaXMgZmluaXNoZWQuIiwgMCB9LAorICAgIHsgMCwgMCwgMCB9
LCAvLyBGSVhNRTogUHJldmlvdXMvbGVnYWN5IHZhbHVlIHdhcyBBQk9SVF9FUlIuCisgICAgeyAi
UmVhZE9ubHlFcnJvciIsICJBIHdyaXRlIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIGluIGEgcmVh
ZC1vbmx5IHRyYW5zYWN0aW9uLiIsIDAgfSwKKyAgICB7IDAsIDAsIDAgfSwgLy8gRklYTUU6IFBy
ZXZpb3VzL2xlZ2FjeSB2YWx1ZSB3YXMgVElNRU9VVF9FUlIuCisgICAgeyAwLCAwLCAwIH0sIC8v
IEZJWE1FOiBQcmV2aW91cy9sZWdhY3kgdmFsdWUgd2FzIFFVT1RBX0VSUi4KKyAgICB7ICJWZXJz
aW9uRXJyb3IiLCAiQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byBvcGVuIGEgZGF0YWJhc2UgdXNpbmcg
YSBsb3dlciB2ZXJzaW9uIHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24uIiwgMCB9LCAvLyBGSVhN
RTogVGhpcyBpc24ndCB1c2VkIHlldAorCisgICAgLy8gVGhlc2UgYXJlIElEQi1zcGVjaWZpYyBk
ZXNjcmlwdGlvbnMgb2YgZ2VuZXJpYyBET00gRXhjZXB0aW9ucyB3aGVuIHRoZXkgYXJlIHRocm93
biBmcm9tIElEQiBBUElzCisgICAgeyAiTm90Rm91bmRFcnJvciIsICJBbiBvcGVyYXRpb24gZmFp
bGVkIGJlY2F1c2UgdGhlIHJlcXVlc3RlZCBkYXRhYmFzZSBvYmplY3QgY291bGQgbm90IGJlIGZv
dW5kLiIsIE5PVF9GT1VORF9FUlIgfSwKKyAgICB7ICJJbnZhbGlkU3RhdGVFcnJvciIsICJBbiBv
cGVyYXRpb24gd2FzIGNhbGxlZCBvbiBhbiBvYmplY3Qgb24gd2hpY2ggaXQgaXMgbm90IGFsbG93
ZWQgb3IgYXQgYSB0aW1lIHdoZW4gaXQgaXMgbm90IGFsbG93ZWQuIiwgSU5WQUxJRF9TVEFURV9F
UlIgfSwKKyAgICB7ICJJbnZhbGlkQWNjZXNzRXJyb3IiLCAiQW4gaW52YWxpZCBvcGVyYXRpb24g
d2FzIHBlcmZvcm1lZCBvbiBhbiBvYmplY3QuIiwgSU5WQUxJRF9BQ0NFU1NfRVJSIH0sCisgICAg
eyAiQWJvcnRFcnJvciIsICJUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1
ZXN0IGNhbm5vdCBiZSBmdWxmaWxsZWQuIiwgQUJPUlRfRVJSIH0sCisgICAgeyAiVGltZW91dEVy
cm9yIiwgIkEgbG9jayBmb3IgdGhlIHRyYW5zYWN0aW9uIGNvdWxkIG5vdCBiZSBvYnRhaW5lZCBp
biBhIHJlYXNvbmFibGUgdGltZS4iLCBUSU1FT1VUX0VSUiB9LCAvLyBGSVhNRTogVGhpcyBpc24n
dCB1c2VkIHlldC4KKyAgICB7ICJRdW90YUV4Y2VlZGVkRXJyb3IiLCAiVGhlIG9wZXJhdGlvbiBm
YWlsZWQgYmVjYXVzZSB0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFj
ZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2FzIHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVk
IHRvIGdpdmUgbW9yZSBzcGFjZSB0byB0aGUgZGF0YWJhc2UuIiwgUVVPVEFfRVhDRUVERURfRVJS
IH0sIC8vIEZJWE1FOiBUaGlzIGlzbid0IHVzZWQgeWV0CisgICAgeyAiU3ludGF4RXJyb3IiLCAi
VGhlIGtleXBhdGggYXJndW1lbnQgY29udGFpbnMgYW4gaW52YWxpZCBrZXkgcGF0aC4iLCBTWU5U
QVhfRVJSIH0sCisgICAgeyAiRGF0YUNsb25lRXJyb3IiLCAiVGhlIGRhdGEgYmVpbmcgc3RvcmVk
IGNvdWxkIG5vdCBiZSBjbG9uZWQgYnkgdGhlIGludGVybmFsIHN0cnVjdHVyZWQgY2xvbmluZyBh
bGdvcml0aG0uIiwgREFUQV9DTE9ORV9FUlIgfQogfTsKIAogYm9vbCBJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEV4Y2VwdGlvbkNv
ZGVEZXNjcmlwdGlvbiogZGVzY3JpcHRpb24pCkBAIC01NywxNSArNjksMTggQEAgYm9vbCBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6aW5pdGlhbGl6ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMs
IEV4Y2VwdGlvbkNvZGUKICAgICBpZiAoZWMgPCBJREJEYXRhYmFzZUV4Y2VwdGlvbk9mZnNldCB8
fCBlYyA+IElEQkRhdGFiYXNlRXhjZXB0aW9uTWF4KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICBzaXplX3QgdGFibGVTaXplID0gV1RGX0FSUkFZX0xFTkdUSChpZGJEYXRhYmFzZUV4Y2Vw
dGlvbnMpOworICAgIHNpemVfdCB0YWJsZUluZGV4ID0gZWMgLSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6VU5LTk9XTl9FUlI7CisKKyAgICBjb25zdCBJREJEYXRhYmFzZUV4Y2VwdGlvbk5hbWVEZXNj
cmlwdGlvbiogZW50cnkgPSB0YWJsZUluZGV4IDwgdGFibGVTaXplID8gJmlkYkRhdGFiYXNlRXhj
ZXB0aW9uc1t0YWJsZUluZGV4XSA6IDA7CisKICAgICBkZXNjcmlwdGlvbi0+dHlwZU5hbWUgPSAi
RE9NIElEQkRhdGFiYXNlIjsKLSAgICBkZXNjcmlwdGlvbi0+Y29kZSA9IGVjIC0gSURCRGF0YWJh
c2VFeGNlcHRpb25PZmZzZXQ7CisgICAgZGVzY3JpcHRpb24tPmNvZGUgPSAoZW50cnkgJiYgZW50
cnktPmxlZ2FjeUNvZGUpID8gZW50cnktPmxlZ2FjeUNvZGUgOiBlYyAtIElEQkRhdGFiYXNlRXhj
ZXB0aW9uT2Zmc2V0OwogICAgIGRlc2NyaXB0aW9uLT50eXBlID0gSURCRGF0YWJhc2VFeGNlcHRp
b25UeXBlOwogCi0gICAgc2l6ZV90IHRhYmxlU2l6ZSA9IFdURl9BUlJBWV9MRU5HVEgoaWRiRGF0
YWJhc2VFeGNlcHRpb25zKTsKLSAgICBzaXplX3QgdGFibGVJbmRleCA9IGVjIC0gVU5LTk9XTl9F
UlI7CiAKLSAgICBkZXNjcmlwdGlvbi0+bmFtZSA9IHRhYmxlSW5kZXggPCB0YWJsZVNpemUgPyBp
ZGJEYXRhYmFzZUV4Y2VwdGlvbnNbdGFibGVJbmRleF0ubmFtZSA6IDA7Ci0gICAgZGVzY3JpcHRp
b24tPmRlc2NyaXB0aW9uID0gdGFibGVJbmRleCA8IHRhYmxlU2l6ZSA/IGlkYkRhdGFiYXNlRXhj
ZXB0aW9uc1t0YWJsZUluZGV4XS5kZXNjcmlwdGlvbiA6IDA7CisgICAgZGVzY3JpcHRpb24tPm5h
bWUgPSBlbnRyeSA/IGVudHJ5LT5uYW1lIDogMDsKKyAgICBkZXNjcmlwdGlvbi0+ZGVzY3JpcHRp
b24gPSBlbnRyeSA/IGVudHJ5LT5kZXNjcmlwdGlvbiA6IDA7CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlRXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUV4Y2VwdGlvbi5oCmluZGV4IDU3MGEyZmNkNjRmNTgzODNlNzZmZDA1MzZkYzcwOTBmOGNj
ZThiMmUuLmVkYzhjYjA5NDFkMDRiZTVjNTg2NWRiNTc3ZmE5Y2M0MTYxYzJkOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNl
cHRpb24uaApAQCAtNDUsMTcgKzQ1LDI2IEBAIHB1YmxpYzoKICAgICBlbnVtIElEQkRhdGFiYXNl
RXhjZXB0aW9uQ29kZSB7CiAgICAgICAgIE5PX0VSUiA9IElEQkRhdGFiYXNlRXhjZXB0aW9uT2Zm
c2V0LAogICAgICAgICBVTktOT1dOX0VSUiwKLSAgICAgICAgTk9OX1RSQU5TSUVOVF9FUlIsCi0g
ICAgICAgIE5PVF9GT1VORF9FUlIsCisgICAgICAgIE5PTl9UUkFOU0lFTlRfRVJSLCAvLyBGSVhN
RTogTm8gbG9uZ2VyIGluIHRoZSBzcGVjCisgICAgICAgIExFR0FDWV9OT1RfRk9VTkRfRVJSLCAv
LyBGSVhNRTogUGxhY2Vob2xkZXIuCiAgICAgICAgIENPTlNUUkFJTlRfRVJSLAogICAgICAgICBE
QVRBX0VSUiwKLSAgICAgICAgTk9UX0FMTE9XRURfRVJSLAorICAgICAgICBOT1RfQUxMT1dFRF9F
UlIsIC8vIEZJWE1FOiBObyBsb25nZXIgaW4gdGhlIHNwZWMKICAgICAgICAgVFJBTlNBQ1RJT05f
SU5BQ1RJVkVfRVJSLAotICAgICAgICBBQk9SVF9FUlIsCisgICAgICAgIExFR0FDWV9BQk9SVF9F
UlIsIC8vIEZJWE1FOiBQbGFjZWhvbGRlci4KICAgICAgICAgUkVBRF9PTkxZX0VSUiwKLSAgICAg
ICAgVElNRU9VVF9FUlIsCi0gICAgICAgIFFVT1RBX0VSUiwKLSAgICAgICAgVkVSX0VSUgorICAg
ICAgICBMRUdBQ1lfVElNRU9VVF9FUlIsIC8vIEZJWE1FOiBQbGFjZWhvbGRlci4KKyAgICAgICAg
TEVHQUNZX1FVT1RBX0VSUiwgLy8gRklYTUU6IFBsYWNlaG9sZGVyLgorICAgICAgICBWRVJfRVJS
LAorCisgICAgICAgIElEQl9OT1RfRk9VTkRfRVJSLAorICAgICAgICBJREJfSU5WQUxJRF9TVEFU
RV9FUlIsCisgICAgICAgIElEQl9JTlZBTElEX0FDQ0VTU19FUlIsCisgICAgICAgIElEQl9BQk9S
VF9FUlIsCisgICAgICAgIElEQl9USU1FT1VUX0VSUiwKKyAgICAgICAgSURCX1FVT1RBX0VYQ0VF
REVEX0VSUiwKKyAgICAgICAgSURCX1NZTlRBWF9FUlIsCisgICAgICAgIElEQl9EQVRBX0NMT05F
X0VSUiwKICAgICB9OwogCiAgICAgc3RhdGljIGludCBFcnJvckNvZGVUb0V4Y2VwdGlvbkNvZGUo
aW50IGVycm9yQ29kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAppbmRleCBiNGYxOWUxYjlmNWE5YTU0NmQ1
ZWYzYjFhZGEzZjJkMDI5NmZiNWE0Li42N2Q4MTFjM2VhZjMyMGI0NDYxOGM2ZWMwNGQ0ZTU2ODYx
OTI0YjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUV4Y2VwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsCkBAIC00MiwxNiArNDIsMTcgQEAgbW9kdWxlIHN0
b3JhZ2UgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT19FUlIgPSAwOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBVTktOT1dOX0VSUiA9IDE7CiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IE5PTl9UUkFOU0lFTlRfRVJSID0gMjsKLSAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgTk9UX0ZPVU5EX0VSUiA9IDM7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IENPTlNUUkFJTlRfRVJSID0gNDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgREFUQV9F
UlIgPSA1OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT1RfQUxMT1dFRF9FUlIgPSA2
OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUUkFOU0FDVElPTl9JTkFDVElWRV9FUlIg
PSA3OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBQk9SVF9FUlIgPSA4OwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBSRUFEX09OTFlfRVJSID0gOTsKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgVElNRU9VVF9FUlIgPSAxMDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgUVVPVEFfRVJSID0gMTE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFZFUl9F
UlIgPSAxMjsKKworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT1RfRk9VTkRfRVJSID0g
ODsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQUJPUlRfRVJSID0gMjA7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFRJTUVPVVRfRVJSID0gMjM7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFFVT1RBX0VSUiA9IDIyOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCAwNGVi
YTUwMjExMmRjYzEwZjQ5Y2Q2N2MwNDdlMDYwMWQ4ODMzYjJlLi40ZDJhMTljMDAwNTlkN2E2YWY2
YjRjY2U0MTQ4YTc3NmJhNTgyZWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6YWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3MKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1
ZSA9IHBycFZhbHVlOwogICAgIGlmICh2YWx1ZS0+YmxvYlVSTHMoKS5zaXplKCkgPiAwKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBBZGQgQmxvYi9GaWxlL0ZpbGVMaXN0IHN1cHBvcnQKLSAgICAgICAg
ZWMgPSBEQVRBX0NMT05FX0VSUjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
SURCX0RBVEFfQ0xPTkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTE1MCw3
ICsxNTAsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzcwogICAgIFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IHZhbHVlID0gcHJwVmFsdWU7CiAgICAgaWYgKHZhbHVlLT5ibG9iVVJMcygp
LnNpemUoKSA+IDApIHsKICAgICAgICAgLy8gRklYTUU6IEFkZCBCbG9iL0ZpbGUvRmlsZUxpc3Qg
c3VwcG9ydAotICAgICAgICBlYyA9IERBVEFfQ0xPTkVfRVJSOworICAgICAgICBlYyA9IElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpJREJfREFUQV9DTE9ORV9FUlI7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIApAQCAtMjI3LDcgKzIyNyw3IEBAIFBhc3NSZWZQdHI8SURCSW5kZXg+IElEQk9iamVj
dFN0b3JlOjpjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktlCiB7CiAg
ICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgiKTsKICAgICBpZiAoIWtl
eVBhdGguaXNWYWxpZCgpKSB7Ci0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgZWMg
PSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1NZTlRBWF9FUlI7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCA1Y2FmNzk3NDA0ZThj
ZThkYmQ1Nzg1MmJmZDljYzVlNDBmNTNlOTdhLi5lYjQyMzk1Mzc2NDkxMjBjMDQ1ODQxZTg1YTk5
ZWNkNzVjMTdiYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtNTU0LDcgKzU1
NCw3IEBAIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsOjppbmRleChjb25zdCBTdHJpCiB7CiAgICAgUmVmUHRyPElEQkluZGV4QmFj
a2VuZEludGVyZmFjZT4gaW5kZXggPSBtX2luZGV4ZXMuZ2V0KG5hbWUpOwogICAgIGlmICghaW5k
ZXgpIHsKLSAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VSUjsK
KyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7CiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICByZXR1cm4gaW5kZXgucmVsZWFzZSgpOwpAQCAt
NTY5LDcgKzU2OSw3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVsZXRlSW5k
ZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJUcmFuc2FjdGlvbkJhCiAKICAgICBSZWZQdHI8SURC
SW5kZXhCYWNrZW5kSW1wbD4gaW5kZXggPSBtX2luZGV4ZXMuZ2V0KG5hbWUpOwogICAgIGlmICgh
aW5kZXgpIHsKLSAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5EX0VS
UjsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX05PVF9GT1VORF9FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggNTg5MDQyZWMwZWY0ODQzYjM4Y2VlMDExOWQ1
MGM0OTgxNjgxMTg2Ni4uZWUzNDBjNzExYWJhMjkzYTZiODhhMWU3Y2ZjODZkOGMwMDM4MWY5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
QEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2Vycm9y
Q29kZSA9IDA7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmcoKTsKICAgICBtX3Jlc3VsdC5j
bGVhcigpOwotICAgIG9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpBQk9SVF9FUlIsICJUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRo
ZSByZXF1ZXN0IGNhbm5vdCBiZSBmdWxmaWxsZWQuIikpOworICAgIG9uRXJyb3IoSURCRGF0YWJh
c2VFcnJvcjo6Y3JlYXRlV2l0aG91dE9mZnNldChBQk9SVF9FUlIsICJUaGUgdHJhbnNhY3Rpb24g
d2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0IGNhbm5vdCBiZSBmdWxmaWxsZWQuIikpOwogfQog
CiB2b2lkIElEQlJlcXVlc3Q6OnNldEN1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZTo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAppbmRl
eCAwYTc5YTk3YTE1ZWUyM2U5NzY0YTJkZTJmNzRmZTA4YzA0OTRjYWFkLi5kOTEwYzZjMmMwZDli
Y2FmOTg0YjNjZTRlNTk5OWQwZGIwNjU3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNw
cApAQCAtNzIsNyArNzIsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZT4gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6b2JqZWN0U3RvcgogCiAgICAgLy8gRG9l
cyBhIGxpbmVhciBzZWFyY2gsIGJ1dCBpdCByZWFsbHkgc2hvdWxkbid0IGJlIHRoYXQgc2xvdyBp
biBwcmFjdGljZS4KICAgICBpZiAobV9tb2RlICE9IElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NI
QU5HRSAmJiAhbV9vYmplY3RTdG9yZU5hbWVzLT5jb250YWlucyhuYW1lKSkgewotICAgICAgICBl
YyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfRk9VTkRfRVJSOworICAgICAgICBlYyA9IElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfTk9UX0ZPVU5EX0VSUjsKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCkBAIC04Miw3ICs4Miw3IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlPiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpvYmplY3RTdG9yCiAgICAg
Ly8gICAgICAgIFRoZXJlJ3MgYSBidWcgdG8gbWFrZSB0aGlzIGltcG9zc2libGUgaW4gdGhlIHNw
ZWMuIFdoZW4gd2UgbWFrZSBpdCBpbXBvc3NpYmxlIGhlcmUsIHdlCiAgICAgLy8gICAgICAgIGNh
biByZW1vdmUgdGhpcyBjaGVjay4KICAgICBpZiAoIW9iamVjdFN0b3JlKSB7Ci0gICAgICAgIGVj
ID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7CisgICAgICAgIGVjID0gSURC
RGF0YWJhc2VFeGNlcHRpb246OklEQl9OT1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CiAgICAgcmV0dXJuIG9iamVjdFN0b3JlLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oCmlu
ZGV4IDgxYjgzODY2NzU1Yjk1ZDQ3ZTMyNjcwODdmZGQyZWFhNzU4YjBkYzMuLmIwZTYzZDQyNmUw
NzAwOWYyN2Y4ZjY4YTEwOWQ0NThlMzhmNDU1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2VFeGNlcHRpb24uaApAQCAtMzUsNyAr
MzUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBXZWJJREJEYXRhYmFzZUV4Y2VwdGlv
biB7CiAgICAgV2ViSURCRGF0YWJhc2VFeGNlcHRpb25EYXRhRXJyb3IgPSAxMjA1LAotICAgIFdl
YklEQkRhdGFiYXNlRXhjZXB0aW9uUXVvdGFFcnJvciA9IDEyMTEsCisgICAgV2ViSURCRGF0YWJh
c2VFeGNlcHRpb25RdW90YUVycm9yID0gMTIxOCwKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdF
bnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcAppbmRleCAzNzU0Mjg5MjNjYjVlNzMwZDZhMzYwMDFjYTg5Y2U3ODg0NmNmYmRiLi45NDk4
NWIyMGM4ZTNkYzc2ZDYxNTNmZDQyOWMwOGZlYTI5MWQwMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNDU4LDcgKzQ1
OCw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6VXNlclN0eWxlSW5q
ZWN0SW5FeGlzdGluZ0RvY3VtZW50cywgSW5qZWN0CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYlZpZXc6OlVzZXJTdHlsZUluamVjdEluU3Vic2VxdWVudERvY3VtZW50cywgSW5qZWN0
SW5TdWJzZXF1ZW50RG9jdW1lbnRzKTsKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJJREJEYXRhYmFzZUV4Y2VwdGlvbkRhdGFFcnJvciwgSURCRGF0YWJhc2VFeGNlcHRpb246OkRB
VEFfRVJSKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNl
cHRpb25RdW90YUVycm9yLCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6UVVPVEFfRVJSKTsKK0NPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2VFeGNlcHRpb25RdW90YUVycm9y
LCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1FVT1RBX0VYQ0VFREVEX0VSUik7CiAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
SURCS2V5OjpJbnZhbGlkVHlwZSwgSURCS2V5OjpJbnZhbGlkVHlwZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTFkMzAx
ZThiOGVlZTkzMjQ2YzUxNDMyZGE1NTM5MjYxN2Y2NzU0Ni4uNTExYjhlNDZmNWM3YTEzMzUyYzBj
NmI2ZmZjMmFkNjUxOTA1MzNjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA1LTIzICBB
bGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6
IEFsaWduIGNvZGVzIGFuZCBuYW1lcyBmb3IgSURCLXNwZWNpZmljIGFuZCBET00tc3BlY2lmaWMg
ZXJyb3JzL2V4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanM6CisgICAgICAg
ICh0ZXN0KToKKwogMjAxMi0wNS0yNSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDaHJvbWl1bV0gUmVtb3ZlIDYgaW5jb3JyZWN0IGJhc2VsaW5lcyBmcm9t
IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzExNzgyMS8KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMtZXhwZWN0ZWQudHh0CmluZGV4IGU5
YjkzYTU1MTUwOWUwNjU4ZDQ3ZmE5MjM1YTVlMmM5YWEyNWNlZDcuLjJmOThmMDRmZjZiNjQ2MWIy
ZDk5OTBlY2Q1NjI5MzdlNzMzYzczOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4dApAQCAtNywxNiArNywxNiBAQCBpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLgogCiBQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlVOS05PV05f
RVJSIGlzIDEKIFBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIgaXMg
MgotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIGlzIDMKIFBBU1MgSURC
RGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIgaXMgNAogUEFTUyBJREJEYXRhYmFzZUV4
Y2VwdGlvbi5EQVRBX0VSUiBpcyA1CiBQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExP
V0VEX0VSUiBpcyA2CiBQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNU
SVZFX0VSUiBpcyA3Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VSUiBpcyA4CiBQ
QVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIgaXMgOQotUEFTUyBJREJEYXRh
YmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiBpcyAxMAotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlv
bi5RVU9UQV9FUlIgaXMgMTEKIFBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uVkVSX0VSUiBpcyAx
MgorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiBpcyBET01FeGNlcHRpb24u
VElNRU9VVF9FUlIKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uUVVPVEFfRVJSIGlzIERPTUV4
Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uQUJP
UlRfRVJSIGlzIERPTUV4Y2VwdGlvbi5BQk9SVF9FUlIKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRp
b24uTk9UX0ZPVU5EX0VSUiBpcyBET01FeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgogUEFTUyBJREJD
dXJzb3IuTkVYVCBpcyAwCiBQQVNTIElEQkN1cnNvci5ORVhUX05PX0RVUExJQ0FURSBpcyAxCiBQ
QVNTIElEQkN1cnNvci5QUkVWIGlzIDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9jb25zdGFudHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvY29uc3RhbnRzLmpzCmluZGV4IDU5NmVhYTgzYTAzNjE1OWM0YmQ5
ZjBiZjQzNWUyNGQzZWE3M2UwMjguLmZmN2E3MzdkMDYzMjIwMzk0ODU3NWU2MjMwYTA0MDllYzkx
ZTFkNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jb25zdGFudHMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2NvbnN0YW50cy5qcwpAQCAtMTAsMTcgKzEwLDE4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CiAgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0
aW9uLlVOS05PV05fRVJSIiwgIjEiKTsKICAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRp
b24uTk9OX1RSQU5TSUVOVF9FUlIiLCAiMiIpOwotICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIiwgIjMiKTsKICAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VF
eGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAiNCIpOwogICAgIHNob3VsZEJlKCJJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICI1Iik7CiAgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLk5PVF9BTExPV0VEX0VSUiIsICI2Iik7CiAgICAgc2hvdWxkQmUoIklEQkRhdGFiYXNl
RXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUiIsICI3Iik7Ci0gICAgc2hvdWxkQmUo
IklEQkRhdGFiYXNlRXhjZXB0aW9uLkFCT1JUX0VSUiIsICI4Iik7CiAgICAgc2hvdWxkQmUoIklE
QkRhdGFiYXNlRXhjZXB0aW9uLlJFQURfT05MWV9FUlIiLCAiOSIpOwotICAgIHNob3VsZEJlKCJJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIsICIxMCIpOwotICAgIHNob3VsZEJlKCJJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIiLCAiMTEiKTsKICAgICBzaG91bGRCZSgiSURC
RGF0YWJhc2VFeGNlcHRpb24uVkVSX0VSUiIsICIxMiIpOwogCisgICAgc2hvdWxkQmUoIklEQkRh
dGFiYXNlRXhjZXB0aW9uLlRJTUVPVVRfRVJSIiwgIkRPTUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIp
OworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5RVU9UQV9FUlIiLCAiRE9NRXhj
ZXB0aW9uLlFVT1RBX0VYQ0VFREVEX0VSUiIpOworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5BQk9SVF9FUlIiLCAiRE9NRXhjZXB0aW9uLkFCT1JUX0VSUiIpOworICAgIHNob3Vs
ZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIiwgIkRPTUV4Y2VwdGlvbi5O
T1RfRk9VTkRfRVJSIik7CisKICAgICBzaG91bGRCZSgiSURCQ3Vyc29yLk5FWFQiLCAiMCIpOwog
ICAgIHNob3VsZEJlKCJJREJDdXJzb3IuTkVYVF9OT19EVVBMSUNBVEUiLCAiMSIpOwogICAgIHNo
b3VsZEJlKCJJREJDdXJzb3IuUFJFViIsICIyIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>