<?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>84631</bug_id>
          
          <creation_ts>2012-04-23 14:00:15 -0700</creation_ts>
          <short_desc>[Chromium] IndexedDB: Use WebIDBKeyPath type for key paths in WebKit API</short_desc>
          <delta_ts>2012-04-26 12:19:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>hclam</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>607999</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-23 14:00:15 -0700</bug_when>
    <thetext>[Chromium] IndexedDB: Use WebIDBKeyPath type for key paths in WebKit API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608027</commentid>
    <comment_count>1</comment_count>
      <attachid>138428</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-23 14:41:50 -0700</bug_when>
    <thetext>Created attachment 138428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608032</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 14:45:41 -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>608033</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-23 14:46:33 -0700</bug_when>
    <thetext>dglazkov@ or fishd@ - r?

This is part 3 of 5, in a sequence:

(1) DONE - WebKit prep: keyPath -&gt; keyPathString rename - http://webkit.org/b/84208
(2) DONE - Chromium prep: keyPath -&gt; keyPathString rename - http://codereview.chromium.org/10041014/
(3) THIS - WebKit API change: WebIDBKeyPath type addition to the API, with compat shims
(4) Chromium use of the new API
(5) implementation in WebCore of the new IDB functionality (and drop shims) - http://webkit.org/b/84207

I probably put too many FIXME comments in this one, but a bunch of the code in this patch is just temporary scaffolding that will be removed in the last patch in the sequence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608947</commentid>
    <comment_count>4</comment_count>
      <attachid>138428</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-04-24 12:36:52 -0700</bug_when>
    <thetext>Comment on attachment 138428
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:60
&gt; +class WebIDBKeyPath; // FIXME: Does this belong in platform?

Do you need both this and the include on line 34?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609189</commentid>
    <comment_count>5</comment_count>
      <attachid>138428</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-24 15:57:46 -0700</bug_when>
    <thetext>Comment on attachment 138428
Patch

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

&gt;&gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:60
&gt;&gt; +class WebIDBKeyPath; // FIXME: Does this belong in platform?
&gt; 
&gt; Do you need both this and the include on line 34?

Nope. (The #include can be deleted when the temporary overloads are removed, but the forward declaration is then needed. I&apos;ll drop it for now though.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609815</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-25 08:57:36 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (The #include can be deleted when the temporary overloads are removed, but the forward declaration is then needed. I&apos;ll drop it for now though.)

Referencing the &quot;final&quot; bug in my ChangeLog confused webkit-patch; the patch with the above one-line modification. I&apos;ll re-up shortly.

However, something going awry in rebaselining the final patch (not this one) has led to a test failure (combo: cr-final + wk-final) which I need to track down, then re-verify combos (cr-final + wk-api-only) and (cr-current + wk-api-only). I&apos;ll hold off on re-upping the patch until all of that is sorted, just to be paranoid.

Any tentative r+ from fishd@ or glazkov@ in the meantime would be lovely. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609972</commentid>
    <comment_count>7</comment_count>
      <attachid>138856</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-25 12:35:07 -0700</bug_when>
    <thetext>Created attachment 138856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609973</commentid>
    <comment_count>8</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-25 12:36:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=138856) [details]
&gt; Patch

Test failure was unrelated to this patch (side effect of splitting out webkit.org/b/84217 from the &quot;final&quot; patch).

abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610040</commentid>
    <comment_count>9</comment_count>
      <attachid>138856</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-04-25 14:21:35 -0700</bug_when>
    <thetext>Comment on attachment 138856
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:34
&gt; +#include &quot;../WebIDBKeyPath.h&quot; // FIXME: Remove with: http://webkit.org/b/84207

Interested to see what the WebKit API reviewer says about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610041</commentid>
    <comment_count>10</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-04-25 14:21:48 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610055</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-25 14:36:21 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 138856 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138856&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:34
&gt; &gt; +#include &quot;../WebIDBKeyPath.h&quot; // FIXME: Remove with: http://webkit.org/b/84207
&gt; 
&gt; Interested to see what the WebKit API reviewer says about this.

This looks bad - WebKitPlatformSupport should not be getting any more dependencies on client things.  What is the long term plan for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610057</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-25 14:39:30 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 138856 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138856&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h:34
&gt; &gt; &gt; +#include &quot;../WebIDBKeyPath.h&quot; // FIXME: Remove with: http://webkit.org/b/84207
&gt; &gt; 
&gt; &gt; Interested to see what the WebKit API reviewer says about this.
&gt; 
&gt; This looks bad - WebKitPlatformSupport should not be getting any more dependencies on client things.  What is the long term plan for this?

Another way to put it - is WebIDBKeyPath something that belongs in the Platform API or the Client API long term (is it something that the embedder is using to talk to WebKit, something that WebCore is going to use to talk back to the embedder, or both?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610065</commentid>
    <comment_count>13</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-25 14:48:23 -0700</bug_when>
    <thetext> &gt; Interested to see what the WebKit API reviewer says about this.
&gt; &gt; 
&gt; &gt; This looks bad - WebKitPlatformSupport should not be getting any more dependencies on client things.  What is the long term plan for this?

As soon as this lands, the Chromium side (http://codereview.chromium.org/10204003/) lands and this #include can be removed (tracked as part of http://webkit.org/b/84207). It&apos;s replaced by a forward declaration of class WebIDBKeyPath, just like all the other forward declarations in WebKitPlatformSupport (with requisite &quot;// FIXME: Does this belong in platform?&quot; comment). Which is slightly better but still...

&gt; Another way to put it - is WebIDBKeyPath something that belongs in the Platform API or the Client API long term (is it something that the embedder is using to talk to WebKit, something that WebCore is going to use to talk back to the embedder, or both?).

It&apos;s a value type like WebIDBKey - there are APIs in WebKitPlatformSupport qhixh accept these types as arguments. Primarily, though, they are used by WebIDB{Database,ObjectStore,Index} interfaces implemented by embedders.

Longer term (i.e. as soon as we&apos;ve caught up with the IDB spec) we have a big refactor planned, which includes removing these methods from WebKitPlatformSupport. (The they are implemented in Chromium, through several levels of indirection, by a utility process called via sync IPC which we want to eliminate for performance reasons; the refactor will let us do it within WebCore.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610112</commentid>
    <comment_count>14</comment_count>
      <attachid>138856</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-25 15:48:32 -0700</bug_when>
    <thetext>Comment on attachment 138856
Patch

OK, then the public API changes seem fine to me. I would be happy to help you move whatever parts of WebIDB* into Platform/ if that would be useful.  I do not want to leave that #include in WebKitPlatformSupport.h for long

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610178</commentid>
    <comment_count>15</comment_count>
      <attachid>138856</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 17:06:54 -0700</bug_when>
    <thetext>Comment on attachment 138856
Patch

Clearing flags on attachment: 138856

Committed r115262: &lt;http://trac.webkit.org/changeset/115262&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610180</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-25 17:07:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610292</commentid>
    <comment_count>17</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-04-25 18:55:12 -0700</bug_when>
    <thetext>Reverted r115262 for reason:

r115262 is causing link error in WebKit Win Builder (dbg)

Committed r115279: &lt;http://trac.webkit.org/changeset/115279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610759</commentid>
    <comment_count>18</comment_count>
      <attachid>139031</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-04-26 11:28:08 -0700</bug_when>
    <thetext>Created attachment 139031
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610808</commentid>
    <comment_count>19</comment_count>
      <attachid>139031</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 12:19:13 -0700</bug_when>
    <thetext>Comment on attachment 139031
Patch for landing

Clearing flags on attachment: 139031

Committed r115339: &lt;http://trac.webkit.org/changeset/115339&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610809</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 12:19:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138428</attachid>
            <date>2012-04-23 14:41:50 -0700</date>
            <delta_ts>2012-04-25 12:35:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84631-20120423144149.patch</filename>
            <type>text/plain</type>
            <size>22466</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDUzZjc4ZmM0ZDE5YWNkZDMzMTRjZWE1YzYwMDU0MzQ3OTYyMDllZGQuLmUwM2MyMzMxZGU4NWY4
YjJjODdiOTI4NjgyZDljYmFjZTIwY2Q4NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMTItMDQtMjMgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEluZGV4ZWREQjogVXNlIFdlYklEQktleVBhdGgg
dHlwZSBmb3Iga2V5IHBhdGhzIGluIFdlYktpdCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSURCS2V5UGF0aCB3YXMgcHJldmlvdXNseSBhIHV0
aWxpdHkgY2xhc3MgZm9yIHBhcnNpbmcga2V5IHBhdGhzIGludG8gY29tcG9uZW50cywKKyAgICAg
ICAgYnV0IHRoZSBBUEkgZXhwb3NlZCBrZXkgcGF0aHMgb25seSBhcyBudWxsYWJsZSBzdHJpbmdz
LiBUbyBzdXBwb3J0IGFycmF5LXR5cGUga2V5cGF0aHMsCisgICAgICAgIFdlYklEQktleVBhdGgg
YmVjb21lcyBhIHZhbHVlIGNsYXNzIHdpdGggdHlwZSBmbGFncy4gRm9yIGxhbmRpbmcsIHNldmVy
YWwgbGVnYWN5IG1ldGhvZHMKKyAgICAgICAgYXJlIHJldGFpbmVkIGJ1dCB3aWxsIGJlIGNsZWFu
ZWQgdXAgYWZ0ZXIgYWxsIGNhbGxlcnMgaGF2ZSBiZWVuIHVwZGF0ZWQsIHRyYWNrZWQgYXM6Cisg
ICAgICAgIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKworICAgICAgICAqIHB1YmxpYy9XZWJJ
REJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6Y3JlYXRlT2Jq
ZWN0U3RvcmUpOiBBZGQgV2ViSURCS2V5UGF0aCBvdmVybG9hZDsgV2ViU3RyaW5nIG92ZXJsb2Fk
IGRlbGVnYXRlcyBzbyBpbXBsZW1lbnRlcnMgY2FuIHN3aXRjaC4KKyAgICAgICAgKiBwdWJsaWMv
V2ViSURCSW5kZXguaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXg6OmtleVBhdGgpOiBD
YWxscyBrZXlQYXRoU3RyaW5nIGlmIG5vdCBvdmVycmlkZGVuLgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJJbmRleDo6a2V5UGF0aFN0cmluZyk6IENvbW1lbnQgY2hhbmdlLgorICAgICAgICAqIHB1
YmxpYy9XZWJJREJLZXlQYXRoLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6OmNy
ZWF0ZSk6IE92ZXJsb2FkIGFkZGVkIGZvciBjcmVhdGluZyBhcnJheS10eXBlIGtleSBwYXRocy4K
KyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6YXJyYXkpOiBBY2Nlc3NvciBmb3IgYXJy
YXktdHlwZSBrZXkgcGF0aHMuCisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6Om9wZXJh
dG9yIGNvbnN0IFdlYlN0cmluZyApOiBUZW1wb3JhcnksIGZvciBjb21wYXRpYmlsaXR5LgorICAg
ICAgICAqIHB1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJPYmplY3RTdG9yZTo6a2V5UGF0aCk6IENhbGxzIGtleVBhdGhTdHJpbmcgaWYgbm90IG92ZXJy
aWRkZW4uCisgICAgICAgIChXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlOjprZXlQYXRoU3RyaW5n
KTogQ29tbWVudCBjaGFuZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYklEQk9iamVjdFN0b3JlOjpj
cmVhdGVJbmRleCk6IEFkZCBXZWJJREJLZXlQYXRoIG92ZXJsb2FkOyBXZWJTdHJpbmcgb3Zlcmxv
YWQgZGVsZWdhdGVzIHNvIGltcGxlbWVudGVycyBjYW4gc3dpdGNoLgorICAgICAgICAqIHB1Ymxp
Yy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaDoKKyAgICAgICAgKFdlYktpdFBsYXRm
b3JtU3VwcG9ydCk6IFdlYklEQktleVBhdGggb3ZlcmxvYWRzIGZvciB0aGVzZSBtZXRob2RzIGFk
ZGVkLCBkZWxlZ2F0ZSB0byBXZWJTdHJpbmcgdmVyc2lvbiB1bnRpbCBpbXBsZW1lbnRlcnMgYXJl
IHVwZGF0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktpdFBsYXRmb3JtU3VwcG9ydDo6Y3JlYXRl
SURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aCk6CisgICAgICAgIChXZWJLaXQ6
OldlYktpdFBsYXRmb3JtU3VwcG9ydDo6aW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRWYWx1ZSk6
CisgICAgICAgICogc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SURCSW5kZXhCYWNrZW5kUHJveHk6OmtleVBhdGgpOiBSZXR1cm5zIHRoZSBzdHJpbmcgdmVy
c2lvbiB1bnRpbCBXZWJDb3JlIGlzIHVwZGF0ZWQuCisgICAgICAgICogc3JjL0lEQk9iamVjdFN0
b3JlQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCT2JqZWN0U3RvcmVCYWNr
ZW5kUHJveHk6OmtleVBhdGgpOiBSZXR1cm5zIHRoZSBzdHJpbmcgdmVyc2lvbiB1bnRpbCBXZWJD
b3JlIGlzIHVwZGF0ZWQuCisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oOgorICAg
ICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKTogQWRkIGNyZWF0ZU9iamVjdFN0b3JlIG92ZXJsb2Fk
IGZvciBXZWJJREJLZXlQYXRoIHR5cGUsIGRlbGVnYXRlcyB0byBXZWJTdHJpbmcgdmVyc2lvbiB1
bnRpbCBjYWxsZXJzIGFyZSB1cGRhdGVkLgorICAgICAgICAqIHNyYy9XZWJJREJJbmRleEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJJbmRleEltcGw6OmtleVBhdGgpOiBJbXBsZW1l
bnRzIHRoZSBuZXcgV2ViSURCS2V5UGF0aCByZXR1cm4gdHlwZS4KKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogc3JjL1dlYklEQkluZGV4SW1wbC5oOgorICAgICAgICAoV2ViSURCSW5kZXhJ
bXBsKTogSW1wbGVtZW50cyB0aGUgbmV3IFdlYklEQktleVBhdGggcmV0dXJuIHR5cGUuCisgICAg
ICAgICogc3JjL1dlYklEQktleVBhdGguY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlQ
YXRoOjpjcmVhdGUpOiBTdXBwb3J0IG51bGwga2V5IHBhdGggdHlwZXMuCisgICAgICAgIChXZWJL
aXQ6OldlYklEQktleVBhdGg6OmNyZWF0ZU51bGwpOiBOZXcgQVBJLgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6aXNWYWxpZCk6IE5ldyBBUEkuCisg
ICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6OnR5cGUpOiBOZXcgQVBJLgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJLZXlQYXRoOjpzdHJpbmcpOiBOZXcgQVBJICh2YWx1ZSBhY2Nlc3Nvciku
CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6OldlYklEQktleVBhdGgpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJLZXlQYXRoOjphc3NpZ24pOiBUaGlzIEFQSSB3aWxsIGJlIHJlbW92
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6Om9wZXJhdG9yIGNvbnN0IFdURjo6
VmVjdG9yPFdURjo6U3RyaW5nLCAwPiYpOiBFbnN1cmUgaXQgaXMgbm9uLW51bGwgLSBvbmx5IHVz
ZWQgaW4gY29weSBjb25zdHJ1Y3RvciB3aGljaCBndWFyZHMgYWdhaW5zdCB0aGlzLgorICAgICAg
ICAqIHNyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJPYmplY3RTdG9yZUltcGw6OmtleVBhdGgpOiBJbXBsZW1lbnQgdGhlIG5ldyBXZWJJREJLZXlQ
YXRoIHJldHVybiB0eXBlLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViSURC
T2JqZWN0U3RvcmVJbXBsLmg6CisgICAgICAgIChXZWJJREJPYmplY3RTdG9yZUltcGwpOiBBZGQg
Y3JlYXRlSW5kZXggb3ZlcmxvYWQgZm9yIFdlYklEQktleVBhdGggdHlwZSwgZGVsZWdhdGVzIHRv
IFdlYlN0cmluZyB2ZXJzaW9uIHVudGlsIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisKIDIwMTItMDQt
MjMgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBXaGVuIHByZXBhcmVUb0RyYXcgZmFpbHMgZHVlIHRvIGFuaW1hdGlvbiBjaGVja2VyYm9h
cmQsIHdlIG5lZWQgdG8gY2FsbCBzZXROZWVkc0NvbW1pdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggZmY4ZTFjYTRhOTVjMjg2ZDI0Nzcz
MjVjZWU2ZGZmZmE4MmExNjE0My4uZjUzYjAyZTM5YTdiNzJmYWVkZmI1ZmJjMGYwNGU4ZmEzMGRh
MzExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0
YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFz
ZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJXZWJET01TdHJpbmdMaXN0LmgiCiAj
aW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIldlYklEQktleVBhdGguaCIK
ICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC01OCw3ICs1OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIFdlYkRPTVN0cmluZ0xpc3QoKTsKICAgICB9Ci0gICAgdmly
dHVhbCBXZWJJREJPYmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgY29u
c3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikKKyAgICAvLyBGSVhNRTog
UmVtb3ZlIFdlYlN0cmluZyBrZXlQYXRoIG92ZXJsb2FkIG9uY2UgY2FsbGVycyBhcmUgdXBkYXRl
ZC4KKyAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CisgICAgdmlydHVhbCBXZWJJREJP
YmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgY29uc3QgV2ViSURCVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKKyAgICB7CisgICAg
ICAgIHJldHVybiBjcmVhdGVPYmplY3RTdG9yZShuYW1lLCBXZWJJREJLZXlQYXRoKGtleVBhdGgp
LCBhdXRvSW5jcmVtZW50LCB0cmFuc2FjdGlvbiwgZWMpOworICAgIH0KKyAgICB2aXJ0dWFsIFdl
YklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJTdHJpbmcmLCBjb25z
dCBXZWJJREJLZXlQYXRoJiwgYm9vbCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNl
cHRpb25Db2RlJikKICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJJbmRleC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURC
SW5kZXguaAppbmRleCA1ZmU4YjdmMDhmNmY0NTcyNTAyNGIyODY4ZGY0NTAzOWMwM2M5MTg1Li42
NDUxMTc3ZTQxN2IzM2M0MGY3MjMzZjY2NjJlNTA4ZDRkZTIxNjAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkluZGV4LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZp
bmUgV2ViSURCSW5kZXhfaAogCiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIldlYklEQktleVBhdGguaCIKICNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgogCkBAIC01MSwxNCArNTIsMTQgQEAgcHVibGlj
OgogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBX
ZWJTdHJpbmcoKTsKICAgICB9Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0aCgpIGNvbnN0
CisgICAgdmlydHVhbCBXZWJJREJLZXlQYXRoIGtleVBhdGgoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGtleVBhdGhTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFdlYklEQktleVBhdGgo
a2V5UGF0aFN0cmluZygpKTsKICAgICB9CisgICAgLy8gRklYTUU6IFJlbW92ZSBtZXRob2Qgb25j
ZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcK
ICAgICB2aXJ0dWFsIFdlYlN0cmluZyBrZXlQYXRoU3RyaW5nKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkgdG8gYWxsb3cga2V5UGF0aCgpJ3MgcmV0dXJuIHR5cGUg
dG8gY2hhbmdlLgotICAgICAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CiAgICAgICAg
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFdlYlN0cmluZygp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QktleVBhdGguaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVBhdGgu
aAppbmRleCA0YzcyNTlmMDNiNTFkMWFjNTJjZjNhMWFlMTgzMGZhNTRkZTllYjhjLi44NTFkMmU5
ZDcwZWViODU2NGFmNGQ3ZmVhM2JiMWRlM2Y3YzdlOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXlQYXRoLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5UGF0aC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJQcml2YXRl
T3duUHRyLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViVmVjdG9yLmgiCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMzcsMTQgKzM4LDMxIEBA
IGNsYXNzIFN0cmluZzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYlN0cmluZzsK
LQogY2xhc3MgV2ViSURCS2V5UGF0aCB7CiBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0
aWMgV2ViSURCS2V5UGF0aCBjcmVhdGUoY29uc3QgV2ViU3RyaW5nJik7CisKKyAgICAvLyBGSVhN
RTogQXJyYXktdHlwZSBrZXkgcGF0aHMgbm90IHlldCBzdXBwb3J0ZWQuIGh0dHA6Ly93ZWJraXQu
b3JnL2IvODQyMDcKKyAgICBzdGF0aWMgV2ViSURCS2V5UGF0aCBjcmVhdGUoY29uc3QgV2ViVmVj
dG9yPFdlYlN0cmluZz4mKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGNy
ZWF0ZU51bGwoKTsgfQorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYklEQktleVBhdGggY3Jl
YXRlTnVsbCgpOwogICAgIFdlYklEQktleVBhdGgoY29uc3QgV2ViSURCS2V5UGF0aCYga2V5UGF0
aCkgeyBhc3NpZ24oa2V5UGF0aCk7IH0KICAgICB+V2ViSURCS2V5UGF0aCgpIHsgcmVzZXQoKTsg
fQogCisgICAgZW51bSBUeXBlIHsKKyAgICAgICAgTnVsbFR5cGUgPSAwLAorICAgICAgICBTdHJp
bmdUeXBlLAorICAgICAgICBBcnJheVR5cGUsCisgICAgfTsKKworICAgIFdFQktJVF9FWFBPUlQg
Ym9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBUeXBlIHR5cGUoKSBjb25z
dDsKKyAgICAvLyBGSVhNRTogQXJyYXktdHlwZSBrZXkgcGF0aHMgbm90IHlldCBzdXBwb3J0ZWQu
IGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICBXZWJWZWN0b3I8V2ViU3RyaW5nPiBhcnJh
eSgpIGNvbnN0IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gV2ViVmVjdG9y
PFdlYlN0cmluZz4oKTsgfQorICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHN0cmluZygpIGNv
bnN0OworCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0
ZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICBXZWJJREJLZXlQYXRoKGNvbnN0IFdl
YlN0cmluZyYpOworICAgIG9wZXJhdG9yIGNvbnN0IFdlYlN0cmluZyAoKSBjb25zdCB7IHJldHVy
biBzdHJpbmcoKTsgfQogICAgIFdFQktJVF9FWFBPUlQgaW50IHBhcnNlRXJyb3IoKSBjb25zdDsK
ICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYklEQktleVBhdGgmKTsKICAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oCmluZGV4IGUyNmRmNTY3YmUxODkyYTM5ZjQy
MmU1NDg0MGQwNzZjMzQ5YTViYzAuLjVlYTYxZmI0YjkxMDZmYmMyZjY3MWRjNmVmNmQ3ZTIxMzEw
NDcyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9i
amVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2Jq
ZWN0U3RvcmUuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkNvZGUu
aCIKICNpbmNsdWRlICJXZWJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJh
Y2tzLmgiCisjaW5jbHVkZSAiV2ViSURCS2V5UGF0aC5oIgogI2luY2x1ZGUgIldlYklEQlRyYW5z
YWN0aW9uLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ29tbW9uLmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViU3RyaW5nLmgiCkBAIC00OCwxNCArNDksMTIgQEAgcHVibGljOgogICAgICAgICBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsK
ICAgICB9Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0aCgpIGNvbnN0CisgICAgdmlydHVh
bCBXZWJJREJLZXlQYXRoIGtleVBhdGgoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGtl
eVBhdGhTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFdlYklEQktleVBhdGgoa2V5UGF0aFN0cmlu
ZygpKTsKICAgICB9CiAgICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0aFN0cmluZygpIGNvbnN0
CiAgICAgewotICAgICAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHRvIGFsbG93IGtleVBhdGgoKSdz
IHJldHVybiB0eXBlIHRvIGNoYW5nZS4KLSAgICAgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi84
NDIwNwogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBXZWJTdHJpbmcoKTsKICAgICB9CkBAIC03OSw4ICs3OCwxNSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYsIFdlYklEQkNhbGxiYWNr
cyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZ1bmN0aW9u
KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJh
bnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2Vi
SURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KKworICAgIC8vIEZJWE1FOiBSZW1vdmUgV2ViU3RyaW5nIGtleVBhdGggb3Zl
cmxvYWQgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3Jn
L2IvODQyMDcKICAgICB2aXJ0dWFsIFdlYklEQkluZGV4KiBjcmVhdGVJbmRleChjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wg
bXVsdGlFbnRyeSwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNl
cHRpb25Db2RlJiBlYykKICAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGVJbmRleChuYW1lLCBX
ZWJJREJLZXlQYXRoKGtleVBhdGgpLCB1bmlxdWUsIG11bHRpRW50cnksIHRyYW5zYWN0aW9uLCBl
Yyk7CisgICAgfQorICAgIHZpcnR1YWwgV2ViSURCSW5kZXgqIGNyZWF0ZUluZGV4KGNvbnN0IFdl
YlN0cmluZyYsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sLCBib29sLCBjb25zdCBXZWJJREJU
cmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKQorICAgIHsKICAgICAgICAgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1
cHBvcnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBs
YXRmb3JtU3VwcG9ydC5oCmluZGV4IGJhOWI1M2FmMDQ1ZGRlNmZiYzAwM2Y3YjM2MzNhMTRkM2U2
M2QwNDMuLjQ0YTVkNmM0YmNmNDg3YTRlMWU4OTE1ODQzNjlkZTYxN2RjNzZmN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3Jt
U3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFdlYktpdFBs
YXRmb3JtU3VwcG9ydF9oCiAjZGVmaW5lIFdlYktpdFBsYXRmb3JtU3VwcG9ydF9oCiAKKyNpbmNs
dWRlICIuLi9XZWJJREJLZXlQYXRoLmgiIC8vIEZJWE1FOiBSZW1vdmUgd2l0aDogaHR0cDovL3dl
YmtpdC5vcmcvYi84NDIwNwogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogI2luY2x1ZGUgIldlYkdy
YXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiV2ViTG9jYWxpemVkU3RyaW5nLmgiCkBAIC01
Niw2ICs1Nyw3IEBAIGNsYXNzIFdlYkZpbGVTeXN0ZW07CiBjbGFzcyBXZWJGaWxlVXRpbGl0aWVz
OwogY2xhc3MgV2ViSURCRmFjdG9yeTsgLy8gRklYTUU6IERvZXMgdGhpcyBiZWxvbmcgaW4gcGxh
dGZvcm0/CiBjbGFzcyBXZWJJREJLZXk7IC8vIEZJWE1FOiBEb2VzIHRoaXMgYmVsb25nIGluIHBs
YXRmb3JtPworY2xhc3MgV2ViSURCS2V5UGF0aDsgLy8gRklYTUU6IERvZXMgdGhpcyBiZWxvbmcg
aW4gcGxhdGZvcm0/CiBjbGFzcyBXZWJNZXNzYWdlUG9ydENoYW5uZWw7IC8vIEZJWE1FOiBEb2Vz
IHRoaXMgYmVsb25nIGluIHBsYXRmb3JtPwogY2xhc3MgV2ViUGx1Z2luTGlzdEJ1aWxkZXI7IC8v
IEZJWE1FOiBEb2VzIHRoaXMgYmVsb25nIGluIHBsYXRmb3JtPwogY2xhc3MgV2ViU2FuZGJveFN1
cHBvcnQ7CkBAIC0xMjYsOCArMTI4LDE0IEBAIHB1YmxpYzoKICAgICAvLyBJbmRleGVkIERhdGFi
YXNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAogICAgIHZpcnR1YWwgV2ViSURCRmFjdG9yeSogaWRiRmFjdG9yeSgpIHsgcmV0dXJuIDA7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5
UGF0aChjb25zdCBXZWJWZWN0b3I8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgdmFsdWVzLCAg
Y29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBXZWJWZWN0b3I8V2ViSURCS2V5PiYga2V5cykgeyB9
Ci0gICAgdmlydHVhbCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgaW5qZWN0SURCS2V5SW50b1Nl
cmlhbGl6ZWRWYWx1ZShjb25zdCBXZWJJREJLZXkmIGtleSwgY29uc3QgV2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlJiB2YWx1ZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoKSB7IHJldHVybiBXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgV2ViU3RyaW5n
IGtleVBhdGggb3ZlcmxvYWQgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgorICAgIC8vIGh0dHA6
Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSURCS2V5c0Zyb21T
ZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBXZWJWZWN0b3I8V2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlPiYgdmFsdWVzLCAgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBXZWJWZWN0b3I8
V2ViSURCS2V5PiYga2V5cykgeyBjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRL
ZXlQYXRoKHZhbHVlcywgV2ViSURCS2V5UGF0aChrZXlQYXRoKSwga2V5cyk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25z
dCBXZWJWZWN0b3I8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgdmFsdWVzLCAgY29uc3QgV2Vi
SURCS2V5UGF0aCYga2V5UGF0aCwgV2ViVmVjdG9yPFdlYklEQktleT4mIGtleXMpIHsgfQorICAg
IC8vIEZJWE1FOiBSZW1vdmUgV2ViU3RyaW5nIGtleVBhdGggb3ZlcmxvYWQgb25jZSBjYWxsZXJz
IGFyZSB1cGRhdGVkLgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICB2aXJ0
dWFsIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBpbmplY3RJREJLZXlJbnRvU2VyaWFsaXplZFZh
bHVlKGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUm
IHZhbHVlLCBjb25zdCBXZWJTdHJpbmcmIGtleVBhdGgpIHsgcmV0dXJuIGluamVjdElEQktleUlu
dG9TZXJpYWxpemVkVmFsdWUoa2V5LCB2YWx1ZSwgV2ViSURCS2V5UGF0aChrZXlQYXRoKSk7IH0K
KyAgICB2aXJ0dWFsIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBpbmplY3RJREJLZXlJbnRvU2Vy
aWFsaXplZFZhbHVlKGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUmIHZhbHVlLCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRoKSB7IHJldHVybiBX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsgfQogCiAKICAgICAvLyBNZXNzYWdlIFBvcnRzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNw
cAppbmRleCBiZjBhYzczNzcxY2RiYWUwMzFjZDg1ODY4ZGNlZWQ2NDA3NDNlMTVlLi5mYzhhNzky
OWMxMDg2Y2Y2MTM3YmZjMjcyN2U0ODg1YzkzZmJhZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwCkBAIC02Nyw3ICs2Nyw3
IEBAIFN0cmluZyBJREJJbmRleEJhY2tlbmRQcm94eTo6c3RvcmVOYW1lKCkKIAogU3RyaW5nIElE
QkluZGV4QmFja2VuZFByb3h5OjprZXlQYXRoKCkKIHsKLSAgICByZXR1cm4gbV93ZWJJREJJbmRl
eC0+a2V5UGF0aCgpOworICAgIHJldHVybiBtX3dlYklEQkluZGV4LT5rZXlQYXRoKCkuc3RyaW5n
KCk7CiB9CiAKIGJvb2wgSURCSW5kZXhCYWNrZW5kUHJveHk6OnVuaXF1ZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94
eS5jcHAKaW5kZXggMGQ0ZWIwMGQxZTQ3OGQ2MWZiMTIyYWU3MTY0OGFmMzJlZTk0MGNkYi4uODc4
OWMzMmNkNzE2NGMwZjYzZTZhM2NiOWQwMjZmNDU5OWJkZTIzOCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmNw
cApAQCAtNjYsNyArNjYsNyBAQCBTdHJpbmcgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6Om5h
bWUoKSBjb25zdAogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OmtleVBhdGgo
KSBjb25zdAogewotICAgIHJldHVybiBtX3dlYklEQk9iamVjdFN0b3JlLT5rZXlQYXRoKCk7Cisg
ICAgcmV0dXJuIG1fd2ViSURCT2JqZWN0U3RvcmUtPmtleVBhdGgoKS5zdHJpbmcoKTsKIH0KIAog
UGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6aW5k
ZXhOYW1lcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRh
dGFiYXNlSW1wbC5oCmluZGV4IDZmODM3NzViZTIyZDZiNDM0ZDk3ZmQxMTcxMWVjYTA4NjU3Nzg5
OTAuLmY3M2JlNTcwNTRmNjJhYjRjMjU0MTQwMmQ3ZjE0N2Q4NjdhZWYzZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBAIC01Myw3ICs1
MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgdmVyc2lvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgV2ViRE9NU3RyaW5nTGlzdCBvYmplY3RTdG9yZU5hbWVzKCkgY29uc3Q7CiAK
LSAgICB2aXJ0dWFsIFdlYklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVt
ZW50LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAv
LyBGSVhNRTogUmVtb3ZlIFdlYlN0cmluZyBrZXlQYXRoIG92ZXJsb2FkIG9uY2UgY2FsbGVycyBh
cmUgdXBkYXRlZC4KKyAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CisgICAgdmlydHVh
bCBXZWJJREJPYmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5nJiwg
Y29uc3QgV2ViU3RyaW5nJiwgYm9vbCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNl
cHRpb25Db2RlJik7CisgICAgdmlydHVhbCBXZWJJREJPYmplY3RTdG9yZSogY3JlYXRlT2JqZWN0
U3RvcmUoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRo
LCBib29sIGF1dG9JbmNyZW1lbnQsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlv
biwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNyZWF0ZU9iamVjdFN0b3JlKG5hbWUs
IGtleVBhdGguc3RyaW5nKCksIGF1dG9JbmNyZW1lbnQsIHRyYW5zYWN0aW9uLCBlYyk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBj
b25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmVyc2lvbihjb25zdCBXZWJTdHJpbmcmIHZlcnNpb24sIFdlYklEQkNhbGxiYWNr
cyosIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbihjb25zdCBXZWJET01TdHJpbmdMaXN0JiBuYW1lcywgdW5zaWduZWQgc2hvcnQg
bW9kZSwgV2ViRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkluZGV4SW1wbC5jcHAKaW5kZXggMDU0YjcwYTQzYTFmNTdiMGIyZTFjZGMwMDM0NWY1
Y2UwYWQ5NDU4Yy4uNjE3NjhmNjdiMzUxNTI3ZWNlNDNkZmYzNzI0NGIyZWZjNTMwNjZlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCkBAIC01
OCw2ICs1OCwxMyBAQCBXZWJTdHJpbmcgV2ViSURCSW5kZXhJbXBsOjpzdG9yZU5hbWUoKSBjb25z
dAogICAgIHJldHVybiBtX2JhY2tlbmQtPnN0b3JlTmFtZSgpOwogfQogCitXZWJJREJLZXlQYXRo
IFdlYklEQkluZGV4SW1wbDo6a2V5UGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYklEQktl
eVBhdGgobV9iYWNrZW5kLT5rZXlQYXRoKCkpOworfQorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
bWV0aG9kIG9uY2UgY2FsbGVycyBhcmUgdXBkYXRlZC4KKy8vIGh0dHA6Ly93ZWJraXQub3JnL2Iv
ODQyMDcKIFdlYlN0cmluZyBXZWJJREJJbmRleEltcGw6OmtleVBhdGhTdHJpbmcoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2JhY2tlbmQtPmtleVBhdGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmgKaW5kZXggZjM1MzZhYTU1MTRhOTlhMzIwYzA0NzNk
ZDQ1MzJiNGI5MTNhNDdiOC4uNjJiYTVmYjg0MDJmMGZjZTMzNGI0MmIyYWYzYWI5ZGY5NjRiOGFh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmgKQEAg
LTQ1LDYgKzQ1LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJTdHJpbmcgbmFtZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHN0b3JlTmFtZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgV2ViSURCS2V5UGF0aCBrZXlQYXRoKCkgY29uc3Q7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIG1ldGhvZCBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgLy8gaHR0cDovL3dlYmtp
dC5vcmcvYi84NDIwNwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGtleVBhdGhTdHJpbmcoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIG11
bHRpRW50cnkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQktleVBhdGguY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5
UGF0aC5jcHAKaW5kZXggNzRmMzU3ZTQwM2ZmMGYzZjU3OGNlM2MzNWE4ZjQ2ZGZlYmJlMTAyYy4u
NzNlMDI1NDViOWFkNjQzZTVjYTBjYWNhZDU1YzMzMWY1Zjc5YmZiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UGF0aC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UGF0aC5jcHAKQEAgLTM5LDE4ICszOSw2NCBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViSURCS2V5UGF0aCBXZWJJREJLZXlQYXRoOjpjcmVhdGUo
Y29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoKQogeworICAgIGlmIChrZXlQYXRoLmlzTnVsbCgpKQor
ICAgICAgICByZXR1cm4gY3JlYXRlTnVsbCgpOworCiAgICAgV1RGOjpWZWN0b3I8V1RGOjpTdHJp
bmc+IGlkYkVsZW1lbnRzOwogICAgIElEQktleVBhdGhQYXJzZUVycm9yIGlkYkVycm9yOwogICAg
IElEQlBhcnNlS2V5UGF0aChrZXlQYXRoLCBpZGJFbGVtZW50cywgaWRiRXJyb3IpOwogICAgIHJl
dHVybiBXZWJJREJLZXlQYXRoKGlkYkVsZW1lbnRzLCBzdGF0aWNfY2FzdDxpbnQ+KGlkYkVycm9y
KSk7CiB9CiAKK1dlYklEQktleVBhdGggV2ViSURCS2V5UGF0aDo6Y3JlYXRlTnVsbCgpCit7Cisg
ICAgcmV0dXJuIFdlYklEQktleVBhdGgoV2ViU3RyaW5nKCkpOworfQorCiBXZWJJREJLZXlQYXRo
OjpXZWJJREJLZXlQYXRoKGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZWxlbWVudHMs
IGludCBwYXJzZUVycm9yKQogICAgIDogbV9wcml2YXRlKG5ldyBXVEY6OlZlY3RvcjxXVEY6OlN0
cmluZz4oZWxlbWVudHMpKQogICAgICwgbV9wYXJzZUVycm9yKHBhcnNlRXJyb3IpCiB7CiB9CiAK
K2Jvb2wgV2ViSURCS2V5UGF0aDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFy
c2VFcnJvciA9PSBJREJLZXlQYXRoUGFyc2VFcnJvck5vbmU7Cit9CisKK1dlYklEQktleVBhdGg6
OlR5cGUgV2ViSURCS2V5UGF0aDo6dHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS5nZXQoKSA/IFN0cmluZ1R5cGUgOiBOdWxsVHlwZTsKK30KKworV2ViU3RyaW5nIFdlYklEQktl
eVBhdGg6OnN0cmluZygpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ByaXZhdGUuZ2V0KCkpCisgICAg
ICAgIHJldHVybiBXZWJTdHJpbmcoKTsKKworICAgIC8vIEZJWE1FOiBTdG9yZSB0aGUgY29tcGxl
dGUgc3RyaW5nIGluc3RlYWQgb2YgcmVidWlsZGluZyBpdC4KKyAgICAvLyBodHRwOi8vd2Via2l0
Lm9yZy9iLzg0MjA3CisgICAgV1RGOjpTdHJpbmcgc3RyaW5nKCIiKTsKKyAgICBXVEY6OlZlY3Rv
cjxXVEY6OlN0cmluZz4mIGFycmF5ID0gKm1fcHJpdmF0ZS5nZXQoKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGFycmF5LnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChpKQorICAgICAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiLiIpOworICAgICAgICBzdHJpbmcuYXBwZW5kKGFycmF5W2ld
KTsKKyAgICB9CisgICAgcmV0dXJuIFdlYlN0cmluZyhzdHJpbmcpOworfQorCitXZWJJREJLZXlQ
YXRoOjpXZWJJREJLZXlQYXRoKGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCkKKyAgICA6IG1fcGFy
c2VFcnJvcihJREJLZXlQYXRoUGFyc2VFcnJvck5vbmUpCit7CisgICAgaWYgKCFrZXlQYXRoLmlz
TnVsbCgpKSB7CisgICAgICAgIG1fcHJpdmF0ZS5yZXNldChuZXcgV1RGOjpWZWN0b3I8V1RGOjpT
dHJpbmc+KCkpOworICAgICAgICBJREJLZXlQYXRoUGFyc2VFcnJvciBpZGJQYXJzZUVycm9yOwor
ICAgICAgICBJREJQYXJzZUtleVBhdGgoa2V5UGF0aCwgKm1fcHJpdmF0ZS5nZXQoKSwgaWRiUGFy
c2VFcnJvcik7CisgICAgICAgIG1fcGFyc2VFcnJvciA9IGlkYlBhcnNlRXJyb3I7CisgICAgfQor
fQorCiBpbnQgV2ViSURCS2V5UGF0aDo6cGFyc2VFcnJvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcGFyc2VFcnJvcjsKQEAgLTU5LDcgKzEwNSwxMCBAQCBpbnQgV2ViSURCS2V5UGF0aDo6cGFy
c2VFcnJvcigpIGNvbnN0CiB2b2lkIFdlYklEQktleVBhdGg6OmFzc2lnbihjb25zdCBXZWJJREJL
ZXlQYXRoJiBrZXlQYXRoKQogewogICAgIG1fcGFyc2VFcnJvciA9IGtleVBhdGgubV9wYXJzZUVy
cm9yOwotICAgIG1fcHJpdmF0ZS5yZXNldChuZXcgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+KGtl
eVBhdGgpKTsKKyAgICBpZiAoa2V5UGF0aC5tX3ByaXZhdGUuZ2V0KCkpCisgICAgICAgIG1fcHJp
dmF0ZS5yZXNldChuZXcgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+KGtleVBhdGgpKTsKKyAgICBl
bHNlCisgICAgICAgIG1fcHJpdmF0ZS5yZXNldCgwKTsKIH0KIAogdm9pZCBXZWJJREJLZXlQYXRo
OjpyZXNldCgpCkBAIC02OSw2ICsxMTgsNyBAQCB2b2lkIFdlYklEQktleVBhdGg6OnJlc2V0KCkK
IAogV2ViSURCS2V5UGF0aDo6b3BlcmF0b3IgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmcs
IDA+JigpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1fcHJpdmF0ZS5nZXQoKSk7CiAgICAgcmV0dXJu
ICptX3ByaXZhdGUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCmluZGV4IGIzN2UyZjVkNWJmMWRhNGQyM2M5
N2FkYjQ0OTllNDU3ZmZkNGM5YWMuLjBmM2FkZDAwMGFhODdiZTIwMjJiNmM3YjhmODhjYjg3YzNh
ZDYwOTggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVj
dFN0b3JlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2Jq
ZWN0U3RvcmVJbXBsLmNwcApAQCAtNTcsNiArNTcsMTMgQEAgV2ViU3RyaW5nIFdlYklEQk9iamVj
dFN0b3JlSW1wbDo6bmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fb2JqZWN0U3RvcmUtPm5hbWUo
KTsKIH0KIAorV2ViSURCS2V5UGF0aCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmtleVBhdGgoKSBj
b25zdAoreworICAgIHJldHVybiBXZWJJREJLZXlQYXRoKG1fb2JqZWN0U3RvcmUtPmtleVBhdGgo
KSk7Cit9CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2Qgb25jZSBjYWxsZXJzIGFyZSB1
cGRhdGVkLgorLy8gaHR0cDovL3dlYmtpdC5vcmcvYi84NDIwNwogV2ViU3RyaW5nIFdlYklEQk9i
amVjdFN0b3JlSW1wbDo6a2V5UGF0aFN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fb2Jq
ZWN0U3RvcmUtPmtleVBhdGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCT2JqZWN0U3RvcmVJbXBsLmgKaW5kZXggMTgzYmRiNGQyMjU2Y2ZjZTYzYzM1NjdhMTBh
ZGY5Zjc4MWNhNzY3Yi4uMGU0M2I3MWQyZTNjM2M0ZDRhNzk3YTBjZmVkYmZhYjlhZDVhNDcyMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJ
bXBsLmgKQEAgLTQ2LDYgKzQ2LDkgQEAgcHVibGljOgogICAgIH5XZWJJREJPYmplY3RTdG9yZUlt
cGwoKTsKIAogICAgIFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7CisgICAgV2ViSURCS2V5UGF0aCBr
ZXlQYXRoKCkgY29uc3Q7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvbmNlIGNh
bGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi84NDIwNwogICAg
IFdlYlN0cmluZyBrZXlQYXRoU3RyaW5nKCkgY29uc3Q7CiAgICAgV2ViRE9NU3RyaW5nTGlzdCBp
bmRleE5hbWVzKCkgY29uc3Q7CiAKQEAgLTU2LDkgKzU5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IGRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwg
Y29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBj
bGVhcihXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2Vw
dGlvbkNvZGUmKTsKIAotICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBjYWxsZXJzIGFyZSB1cGRh
dGVkLgotICAgIFdlYklEQkluZGV4KiBjcmVhdGVJbmRleChjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNyZWF0
ZUluZGV4KG5hbWUsIGtleVBhdGgsIHVuaXF1ZSwgZmFsc2UsIHRyYW5zYWN0aW9uLCBlYyk7IH0K
LSAgICBXZWJJREJJbmRleCogY3JlYXRlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnksIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBS
ZW1vdmUgV2ViU3RyaW5nIGtleVBhdGggb3ZlcmxvYWQgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVk
LgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICBXZWJJREJJbmRleCogY3Jl
YXRlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViU3RyaW5nJiwgYm9vbCwgYm9vbCwg
Y29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CisgICAgV2ViSURC
SW5kZXgqIGNyZWF0ZUluZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5
UGF0aCYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4g
Y3JlYXRlSW5kZXgobmFtZSwga2V5UGF0aC5zdHJpbmcoKSwgdW5pcXVlLCBtdWx0aUVudHJ5LCB0
cmFuc2FjdGlvbiwgZWMpOyB9CiAgICAgV2ViSURCSW5kZXgqIGluZGV4KGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgZGVsZXRlSW5kZXgoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNv
ZGUmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138856</attachid>
            <date>2012-04-25 12:35:07 -0700</date>
            <delta_ts>2012-04-26 11:28:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84631-20120425123506.patch</filename>
            <type>text/plain</type>
            <size>21998</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDlhYWYxZWZhNmYzMGY5MGE0Y2M0YmU3ZTc1ZmFkYTQ3MTkyMGEzYzkuLjczZjJjOGMwZTRiN2I4
YmIyNDY5Nzk2ZThlODAxZjljOWJhNmE1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMTItMDQtMjMgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEluZGV4ZWREQjogVXNlIFdlYklEQktleVBhdGgg
dHlwZSBmb3Iga2V5IHBhdGhzIGluIFdlYktpdCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSURCS2V5UGF0aCB3YXMgcHJldmlvdXNseSBhIHV0
aWxpdHkgY2xhc3MgZm9yIHBhcnNpbmcga2V5IHBhdGhzIGludG8gY29tcG9uZW50cywKKyAgICAg
ICAgYnV0IHRoZSBBUEkgZXhwb3NlZCBrZXkgcGF0aHMgb25seSBhcyBudWxsYWJsZSBzdHJpbmdz
LiBUbyBzdXBwb3J0IGFycmF5LXR5cGUga2V5cGF0aHMsCisgICAgICAgIFdlYklEQktleVBhdGgg
YmVjb21lcyBhIHZhbHVlIGNsYXNzIHdpdGggdHlwZSBmbGFncy4gRm9yIGxhbmRpbmcsIHNldmVy
YWwgbGVnYWN5IG1ldGhvZHMKKyAgICAgICAgYXJlIHJldGFpbmVkIGJ1dCB3aWxsIGJlIGNsZWFu
ZWQgdXAgYWZ0ZXIgYWxsIGNhbGxlcnMgaGF2ZSBiZWVuIHVwZGF0ZWQsIHRyYWNrZWQgYXMKKyAg
ICAgICAgdGhlIGJ1ZzogaHR0cDovL3dlYmtpdC5vcmcvYi84NDIwNworCisgICAgICAgICogcHVi
bGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjpj
cmVhdGVPYmplY3RTdG9yZSk6IEFkZCBXZWJJREJLZXlQYXRoIG92ZXJsb2FkOyBXZWJTdHJpbmcg
b3ZlcmxvYWQgZGVsZWdhdGVzIHNvIGltcGxlbWVudGVycyBjYW4gc3dpdGNoLgorICAgICAgICAq
IHB1YmxpYy9XZWJJREJJbmRleC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJJbmRleDo6a2V5
UGF0aCk6IENhbGxzIGtleVBhdGhTdHJpbmcgaWYgbm90IG92ZXJyaWRkZW4uCisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkluZGV4OjprZXlQYXRoU3RyaW5nKTogQ29tbWVudCBjaGFuZ2UuCisgICAg
ICAgICogcHVibGljL1dlYklEQktleVBhdGguaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5
UGF0aDo6Y3JlYXRlKTogT3ZlcmxvYWQgYWRkZWQgZm9yIGNyZWF0aW5nIGFycmF5LXR5cGUga2V5
IHBhdGhzLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlQYXRoOjphcnJheSk6IEFjY2Vzc29y
IGZvciBhcnJheS10eXBlIGtleSBwYXRocy4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0
aDo6b3BlcmF0b3IgY29uc3QgV2ViU3RyaW5nICk6IFRlbXBvcmFyeSwgZm9yIGNvbXBhdGliaWxp
dHkuCisgICAgICAgICogcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQk9iamVjdFN0b3JlOjprZXlQYXRoKTogQ2FsbHMga2V5UGF0aFN0cmluZyBpZiBu
b3Qgb3ZlcnJpZGRlbi4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCT2JqZWN0U3RvcmU6OmtleVBh
dGhTdHJpbmcpOiBDb21tZW50IGNoYW5nZS4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCT2JqZWN0
U3RvcmU6OmNyZWF0ZUluZGV4KTogQWRkIFdlYklEQktleVBhdGggb3ZlcmxvYWQ7IFdlYlN0cmlu
ZyBvdmVybG9hZCBkZWxlZ2F0ZXMgc28gaW1wbGVtZW50ZXJzIGNhbiBzd2l0Y2guCisgICAgICAg
ICogcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAoV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0KTogV2ViSURCS2V5UGF0aCBvdmVybG9hZHMgZm9yIHRoZXNlIG1l
dGhvZHMgYWRkZWQsIGRlbGVnYXRlIHRvIFdlYlN0cmluZyB2ZXJzaW9uIHVudGlsIGltcGxlbWVu
dGVycyBhcmUgdXBkYXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0
OjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKToKKyAgICAgICAg
KFdlYktpdDo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0OjppbmplY3RJREJLZXlJbnRvU2VyaWFsaXpl
ZFZhbHVlKToKKyAgICAgICAgKiBzcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJREJJbmRleEJhY2tlbmRQcm94eTo6a2V5UGF0aCk6IFJldHVybnMgdGhlIHN0
cmluZyB2ZXJzaW9uIHVudGlsIFdlYkNvcmUgaXMgdXBkYXRlZC4KKyAgICAgICAgKiBzcmMvSURC
T2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJPYmplY3RT
dG9yZUJhY2tlbmRQcm94eTo6a2V5UGF0aCk6IFJldHVybnMgdGhlIHN0cmluZyB2ZXJzaW9uIHVu
dGlsIFdlYkNvcmUgaXMgdXBkYXRlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBs
Lmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUltcGwpOiBBZGQgY3JlYXRlT2JqZWN0U3RvcmUg
b3ZlcmxvYWQgZm9yIFdlYklEQktleVBhdGggdHlwZSwgZGVsZWdhdGVzIHRvIFdlYlN0cmluZyB2
ZXJzaW9uIHVudGlsIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgICAgICogc3JjL1dlYklEQklu
ZGV4SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4SW1wbDo6a2V5UGF0aCk6
IEltcGxlbWVudHMgdGhlIG5ldyBXZWJJREJLZXlQYXRoIHJldHVybiB0eXBlLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmg6CisgICAgICAgIChXZWJJ
REJJbmRleEltcGwpOiBJbXBsZW1lbnRzIHRoZSBuZXcgV2ViSURCS2V5UGF0aCByZXR1cm4gdHlw
ZS4KKyAgICAgICAgKiBzcmMvV2ViSURCS2V5UGF0aC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQktleVBhdGg6OmNyZWF0ZSk6IFN1cHBvcnQgbnVsbCBrZXkgcGF0aCB0eXBlcy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6Y3JlYXRlTnVsbCk6IE5ldyBBUEkuCisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlQYXRoOjppc1ZhbGlkKTogTmV3
IEFQSS4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6dHlwZSk6IE5ldyBBUEkuCisg
ICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6OnN0cmluZyk6IE5ldyBBUEkgKHZhbHVlIGFj
Y2Vzc29yKS4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6V2ViSURCS2V5UGF0aCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6OmFzc2lnbik6IFRoaXMgQVBJIHdpbGwg
YmUgcmVtb3ZlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6b3BlcmF0b3IgY29u
c3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmcsIDA+Jik6IEVuc3VyZSBpdCBpcyBub24tbnVsbCAt
IG9ubHkgdXNlZCBpbiBjb3B5IGNvbnN0cnVjdG9yIHdoaWNoIGd1YXJkcyBhZ2FpbnN0IHRoaXMu
CisgICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQk9iamVjdFN0b3JlSW1wbDo6a2V5UGF0aCk6IEltcGxlbWVudCB0aGUgbmV3IFdl
YklEQktleVBhdGggcmV0dXJuIHR5cGUuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNy
Yy9XZWJJREJPYmplY3RTdG9yZUltcGwuaDoKKyAgICAgICAgKFdlYklEQk9iamVjdFN0b3JlSW1w
bCk6IEFkZCBjcmVhdGVJbmRleCBvdmVybG9hZCBmb3IgV2ViSURCS2V5UGF0aCB0eXBlLCBkZWxl
Z2F0ZXMgdG8gV2ViU3RyaW5nIHZlcnNpb24gdW50aWwgY2FsbGVycyBhcmUgdXBkYXRlZC4KKwog
MjAxMi0wNC0yNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggZmY4ZTFjYTRhOTVjMjg2ZDI0Nzcz
MjVjZWU2ZGZmZmE4MmExNjE0My4uZjUzYjAyZTM5YTdiNzJmYWVkZmI1ZmJjMGYwNGU4ZmEzMGRh
MzExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0
YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFz
ZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJXZWJET01TdHJpbmdMaXN0LmgiCiAj
aW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIldlYklEQktleVBhdGguaCIK
ICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC01OCw3ICs1OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIFdlYkRPTVN0cmluZ0xpc3QoKTsKICAgICB9Ci0gICAgdmly
dHVhbCBXZWJJREJPYmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgY29u
c3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikKKyAgICAvLyBGSVhNRTog
UmVtb3ZlIFdlYlN0cmluZyBrZXlQYXRoIG92ZXJsb2FkIG9uY2UgY2FsbGVycyBhcmUgdXBkYXRl
ZC4KKyAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CisgICAgdmlydHVhbCBXZWJJREJP
YmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgY29uc3QgV2ViSURCVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKKyAgICB7CisgICAg
ICAgIHJldHVybiBjcmVhdGVPYmplY3RTdG9yZShuYW1lLCBXZWJJREJLZXlQYXRoKGtleVBhdGgp
LCBhdXRvSW5jcmVtZW50LCB0cmFuc2FjdGlvbiwgZWMpOworICAgIH0KKyAgICB2aXJ0dWFsIFdl
YklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJTdHJpbmcmLCBjb25z
dCBXZWJJREJLZXlQYXRoJiwgYm9vbCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNl
cHRpb25Db2RlJikKICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJJbmRleC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURC
SW5kZXguaAppbmRleCBkNTcyNDNlOWRmOTNhNWMxYWZlNmIwMDVkZDk4NGZiZjZkMzA5YWZiLi4z
N2FmMDJjMGM4YjMxMzlkZDM2YWViYzA3YjVkMzgxNzU2M2EwYjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkluZGV4LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZp
bmUgV2ViSURCSW5kZXhfaAogCiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIldlYklEQktleVBhdGguaCIKICNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgogCkBAIC01MSwxNCArNTIsMTQgQEAgcHVibGlj
OgogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBX
ZWJTdHJpbmcoKTsKICAgICB9Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0aCgpIGNvbnN0
CisgICAgdmlydHVhbCBXZWJJREJLZXlQYXRoIGtleVBhdGgoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGtleVBhdGhTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFdlYklEQktleVBhdGgo
a2V5UGF0aFN0cmluZygpKTsKICAgICB9CisgICAgLy8gRklYTUU6IFJlbW92ZSBtZXRob2Qgb25j
ZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcK
ICAgICB2aXJ0dWFsIFdlYlN0cmluZyBrZXlQYXRoU3RyaW5nKCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkgdG8gYWxsb3cga2V5UGF0aCgpJ3MgcmV0dXJuIHR5cGUg
dG8gY2hhbmdlLgotICAgICAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CiAgICAgICAg
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFdlYlN0cmluZygp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QktleVBhdGguaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVBhdGgu
aAppbmRleCA0YzcyNTlmMDNiNTFkMWFjNTJjZjNhMWFlMTgzMGZhNTRkZTllYjhjLi44NTFkMmU5
ZDcwZWViODU2NGFmNGQ3ZmVhM2JiMWRlM2Y3YzdlOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXlQYXRoLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5UGF0aC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJQcml2YXRl
T3duUHRyLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViVmVjdG9yLmgiCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMzcsMTQgKzM4LDMxIEBA
IGNsYXNzIFN0cmluZzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYlN0cmluZzsK
LQogY2xhc3MgV2ViSURCS2V5UGF0aCB7CiBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0
aWMgV2ViSURCS2V5UGF0aCBjcmVhdGUoY29uc3QgV2ViU3RyaW5nJik7CisKKyAgICAvLyBGSVhN
RTogQXJyYXktdHlwZSBrZXkgcGF0aHMgbm90IHlldCBzdXBwb3J0ZWQuIGh0dHA6Ly93ZWJraXQu
b3JnL2IvODQyMDcKKyAgICBzdGF0aWMgV2ViSURCS2V5UGF0aCBjcmVhdGUoY29uc3QgV2ViVmVj
dG9yPFdlYlN0cmluZz4mKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGNy
ZWF0ZU51bGwoKTsgfQorICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYklEQktleVBhdGggY3Jl
YXRlTnVsbCgpOwogICAgIFdlYklEQktleVBhdGgoY29uc3QgV2ViSURCS2V5UGF0aCYga2V5UGF0
aCkgeyBhc3NpZ24oa2V5UGF0aCk7IH0KICAgICB+V2ViSURCS2V5UGF0aCgpIHsgcmVzZXQoKTsg
fQogCisgICAgZW51bSBUeXBlIHsKKyAgICAgICAgTnVsbFR5cGUgPSAwLAorICAgICAgICBTdHJp
bmdUeXBlLAorICAgICAgICBBcnJheVR5cGUsCisgICAgfTsKKworICAgIFdFQktJVF9FWFBPUlQg
Ym9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBUeXBlIHR5cGUoKSBjb25z
dDsKKyAgICAvLyBGSVhNRTogQXJyYXktdHlwZSBrZXkgcGF0aHMgbm90IHlldCBzdXBwb3J0ZWQu
IGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICBXZWJWZWN0b3I8V2ViU3RyaW5nPiBhcnJh
eSgpIGNvbnN0IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gV2ViVmVjdG9y
PFdlYlN0cmluZz4oKTsgfQorICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHN0cmluZygpIGNv
bnN0OworCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0
ZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICBXZWJJREJLZXlQYXRoKGNvbnN0IFdl
YlN0cmluZyYpOworICAgIG9wZXJhdG9yIGNvbnN0IFdlYlN0cmluZyAoKSBjb25zdCB7IHJldHVy
biBzdHJpbmcoKTsgfQogICAgIFdFQktJVF9FWFBPUlQgaW50IHBhcnNlRXJyb3IoKSBjb25zdDsK
ICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYklEQktleVBhdGgmKTsKICAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oCmluZGV4IGQwNWFiNDk1ODE5ODllMzYyODNh
MjYyM2E1MzYzNDAwNTRhM2I0ZTkuLmRjZjQ4NTY5MjUxMGNmZjliODFmNjRlMGQxN2IwMmJkYjgx
YTlkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9i
amVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2Jq
ZWN0U3RvcmUuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkNvZGUu
aCIKICNpbmNsdWRlICJXZWJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJh
Y2tzLmgiCisjaW5jbHVkZSAiV2ViSURCS2V5UGF0aC5oIgogI2luY2x1ZGUgIldlYklEQlRyYW5z
YWN0aW9uLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ29tbW9uLmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViU3RyaW5nLmgiCkBAIC00OCwxNCArNDksMTIgQEAgcHVibGljOgogICAgICAgICBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsK
ICAgICB9Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0aCgpIGNvbnN0CisgICAgdmlydHVh
bCBXZWJJREJLZXlQYXRoIGtleVBhdGgoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGtl
eVBhdGhTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFdlYklEQktleVBhdGgoa2V5UGF0aFN0cmlu
ZygpKTsKICAgICB9CiAgICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0aFN0cmluZygpIGNvbnN0
CiAgICAgewotICAgICAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHRvIGFsbG93IGtleVBhdGgoKSdz
IHJldHVybiB0eXBlIHRvIGNoYW5nZS4KLSAgICAgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi84
NDIwNwogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBXZWJTdHJpbmcoKTsKICAgICB9CkBAIC03Nyw4ICs3NiwxNSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleSYsIFdlYklEQkNhbGxiYWNr
cyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZ1bmN0aW9u
KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJh
bnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2Vi
SURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KKworICAgIC8vIEZJWE1FOiBSZW1vdmUgV2ViU3RyaW5nIGtleVBhdGggb3Zl
cmxvYWQgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3Jn
L2IvODQyMDcKICAgICB2aXJ0dWFsIFdlYklEQkluZGV4KiBjcmVhdGVJbmRleChjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wg
bXVsdGlFbnRyeSwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNl
cHRpb25Db2RlJiBlYykKICAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGVJbmRleChuYW1lLCBX
ZWJJREJLZXlQYXRoKGtleVBhdGgpLCB1bmlxdWUsIG11bHRpRW50cnksIHRyYW5zYWN0aW9uLCBl
Yyk7CisgICAgfQorICAgIHZpcnR1YWwgV2ViSURCSW5kZXgqIGNyZWF0ZUluZGV4KGNvbnN0IFdl
YlN0cmluZyYsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sLCBib29sLCBjb25zdCBXZWJJREJU
cmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKQorICAgIHsKICAgICAgICAgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1
cHBvcnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBs
YXRmb3JtU3VwcG9ydC5oCmluZGV4IGJhOWI1M2FmMDQ1ZGRlNmZiYzAwM2Y3YjM2MzNhMTRkM2U2
M2QwNDMuLmNhMzc2MmRjYmViZTRiZjJiYmFhNmQwMDAxNGY4YWE0M2Y4NTE0ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3Jt
U3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFdlYktpdFBs
YXRmb3JtU3VwcG9ydF9oCiAjZGVmaW5lIFdlYktpdFBsYXRmb3JtU3VwcG9ydF9oCiAKKyNpbmNs
dWRlICIuLi9XZWJJREJLZXlQYXRoLmgiIC8vIEZJWE1FOiBSZW1vdmUgd2l0aDogaHR0cDovL3dl
YmtpdC5vcmcvYi84NDIwNwogI2luY2x1ZGUgIldlYkNvbW1vbi5oIgogI2luY2x1ZGUgIldlYkdy
YXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiV2ViTG9jYWxpemVkU3RyaW5nLmgiCkBAIC0x
MjYsOCArMTI3LDE0IEBAIHB1YmxpYzoKICAgICAvLyBJbmRleGVkIERhdGFiYXNlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIHZpcnR1
YWwgV2ViSURCRmFjdG9yeSogaWRiRmFjdG9yeSgpIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgY3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBX
ZWJWZWN0b3I8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgdmFsdWVzLCAgY29uc3QgV2ViU3Ry
aW5nJiBrZXlQYXRoLCBXZWJWZWN0b3I8V2ViSURCS2V5PiYga2V5cykgeyB9Ci0gICAgdmlydHVh
bCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgaW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRWYWx1
ZShjb25zdCBXZWJJREJLZXkmIGtleSwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2
YWx1ZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoKSB7IHJldHVybiBXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgV2ViU3RyaW5nIGtleVBhdGggb3Zl
cmxvYWQgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3Jn
L2IvODQyMDcKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFs
dWVzQW5kS2V5UGF0aChjb25zdCBXZWJWZWN0b3I8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiYg
dmFsdWVzLCAgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBXZWJWZWN0b3I8V2ViSURCS2V5PiYg
a2V5cykgeyBjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKHZhbHVl
cywgV2ViSURCS2V5UGF0aChrZXlQYXRoKSwga2V5cyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBXZWJWZWN0b3I8
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgdmFsdWVzLCAgY29uc3QgV2ViSURCS2V5UGF0aCYg
a2V5UGF0aCwgV2ViVmVjdG9yPFdlYklEQktleT4mIGtleXMpIHsgfQorICAgIC8vIEZJWE1FOiBS
ZW1vdmUgV2ViU3RyaW5nIGtleVBhdGggb3ZlcmxvYWQgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVk
LgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICB2aXJ0dWFsIFdlYlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSBpbmplY3RJREJLZXlJbnRvU2VyaWFsaXplZFZhbHVlKGNvbnN0IFdl
YklEQktleSYga2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZhbHVlLCBjb25z
dCBXZWJTdHJpbmcmIGtleVBhdGgpIHsgcmV0dXJuIGluamVjdElEQktleUludG9TZXJpYWxpemVk
VmFsdWUoa2V5LCB2YWx1ZSwgV2ViSURCS2V5UGF0aChrZXlQYXRoKSk7IH0KKyAgICB2aXJ0dWFs
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBpbmplY3RJREJLZXlJbnRvU2VyaWFsaXplZFZhbHVl
KGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZh
bHVlLCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRoKSB7IHJldHVybiBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUoKTsgfQogCiAKICAgICAvLyBNZXNzYWdlIFBvcnRzIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcAppbmRleCAxNzE0
NmE1Y2FkNmI0ZDVmMTRjNGY4N2FjMTI1ZWI5ZGMzMDI0MTRlLi4wMDE0ZjI5NTk2YWViM2ExYWMz
M2FiN2NiZTZjYzUzODA5MjIyYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFN0cmluZyBJ
REJJbmRleEJhY2tlbmRQcm94eTo6c3RvcmVOYW1lKCkKIAogU3RyaW5nIElEQkluZGV4QmFja2Vu
ZFByb3h5OjprZXlQYXRoKCkKIHsKLSAgICByZXR1cm4gbV93ZWJJREJJbmRleC0+a2V5UGF0aCgp
OworICAgIHJldHVybiBtX3dlYklEQkluZGV4LT5rZXlQYXRoKCkuc3RyaW5nKCk7CiB9CiAKIGJv
b2wgSURCSW5kZXhCYWNrZW5kUHJveHk6OnVuaXF1ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eS5jcHAKaW5kZXgg
OTdiNjRmNDZjM2QwZjJkNjEwMGUzYjVjOWI2NjY1ZTY5ZDEwZWJkMi4uMjFhNWRkODU2ZGMzYjgw
NTk4OTc3YzA0ODYyZWI4NmRmZTg3OWMwZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmNwcApAQCAtNjYsNyAr
NjYsNyBAQCBTdHJpbmcgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6Om5hbWUoKSBjb25zdAog
CiBTdHJpbmcgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OmtleVBhdGgoKSBjb25zdAogewot
ICAgIHJldHVybiBtX3dlYklEQk9iamVjdFN0b3JlLT5rZXlQYXRoKCk7CisgICAgcmV0dXJuIG1f
d2ViSURCT2JqZWN0U3RvcmUtPmtleVBhdGgoKS5zdHJpbmcoKTsKIH0KIAogUGFzc1JlZlB0cjxE
T01TdHJpbmdMaXN0PiBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6aW5kZXhOYW1lcygpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5o
CmluZGV4IDZmODM3NzViZTIyZDZiNDM0ZDk3ZmQxMTcxMWVjYTA4NjU3Nzg5OTAuLmY3M2JlNTcw
NTRmNjJhYjRjMjU0MTQwMmQ3ZjE0N2Q4NjdhZWYzZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBAIC01Myw3ICs1MywxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgdmVyc2lvbigpIGNvbnN0OwogICAgIHZpcnR1YWwg
V2ViRE9NU3RyaW5nTGlzdCBvYmplY3RTdG9yZU5hbWVzKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFs
IFdlYklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJTdHJpbmcmIG5h
bWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50LCBjb25zdCBX
ZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogUmVt
b3ZlIFdlYlN0cmluZyBrZXlQYXRoIG92ZXJsb2FkIG9uY2UgY2FsbGVycyBhcmUgdXBkYXRlZC4K
KyAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CisgICAgdmlydHVhbCBXZWJJREJPYmpl
Y3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViU3Ry
aW5nJiwgYm9vbCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7
CisgICAgdmlydHVhbCBXZWJJREJPYmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9J
bmNyZW1lbnQsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0
aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNyZWF0ZU9iamVjdFN0b3JlKG5hbWUsIGtleVBhdGguc3Ry
aW5nKCksIGF1dG9JbmNyZW1lbnQsIHRyYW5zYWN0aW9uLCBlYyk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJU
cmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmVy
c2lvbihjb25zdCBXZWJTdHJpbmcmIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyosIFdlYkV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbihj
b25zdCBXZWJET01TdHJpbmdMaXN0JiBuYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgV2ViRXhj
ZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCSW5kZXhJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4
SW1wbC5jcHAKaW5kZXggNzU5NzBhNTc0Y2M5ODVmZWEzMWM4Y2Y1YzIwM2NhM2IzMjdlOTY3Zi4u
MTcwOTM5NTY3NDA5NjAyZDg4ZjQ3YTY1ZjUwM2E5Y2ViODI3ZGFiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCkBAIC01OCw2ICs1OCwxMyBA
QCBXZWJTdHJpbmcgV2ViSURCSW5kZXhJbXBsOjpzdG9yZU5hbWUoKSBjb25zdAogICAgIHJldHVy
biBtX2JhY2tlbmQtPnN0b3JlTmFtZSgpOwogfQogCitXZWJJREJLZXlQYXRoIFdlYklEQkluZGV4
SW1wbDo6a2V5UGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYklEQktleVBhdGgobV9iYWNr
ZW5kLT5rZXlQYXRoKCkpOworfQorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2Ug
Y2FsbGVycyBhcmUgdXBkYXRlZC4KKy8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKIFdlYlN0
cmluZyBXZWJJREJJbmRleEltcGw6OmtleVBhdGhTdHJpbmcoKSBjb25zdAogewogICAgIHJldHVy
biBtX2JhY2tlbmQtPmtleVBhdGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkluZGV4SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCSW5kZXhJbXBsLmgKaW5kZXggYTFkNGFmMzg5NzMwY2MzMjIxMjJhNzNjZGNlZWI1NjE5MjFm
MjJlNi4uZDhiMTEyOWQwZjNmNTVkMzMzZmZkNjE5YzA5OWM0OGFiZTk1ZjNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmgKQEAgLTQ1LDYgKzQ1LDkg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJTdHJpbmcgbmFtZSgpIGNvbnN0OwogICAgIHZp
cnR1YWwgV2ViU3RyaW5nIHN0b3JlTmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViSURCS2V5
UGF0aCBrZXlQYXRoKCkgY29uc3Q7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBv
bmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi84NDIw
NwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGtleVBhdGhTdHJpbmcoKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgdW5pcXVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIG11bHRpRW50cnkoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleVBh
dGguY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UGF0aC5jcHAKaW5k
ZXggNzRmMzU3ZTQwM2ZmMGYzZjU3OGNlM2MzNWE4ZjQ2ZGZlYmJlMTAyYy4uNzNlMDI1NDViOWFk
NjQzZTVjYTBjYWNhZDU1YzMzMWY1Zjc5YmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCS2V5UGF0aC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCS2V5UGF0aC5jcHAKQEAgLTM5LDE4ICszOSw2NCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViSURCS2V5UGF0aCBXZWJJREJLZXlQYXRoOjpjcmVhdGUoY29uc3QgV2ViU3Ry
aW5nJiBrZXlQYXRoKQogeworICAgIGlmIChrZXlQYXRoLmlzTnVsbCgpKQorICAgICAgICByZXR1
cm4gY3JlYXRlTnVsbCgpOworCiAgICAgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+IGlkYkVsZW1l
bnRzOwogICAgIElEQktleVBhdGhQYXJzZUVycm9yIGlkYkVycm9yOwogICAgIElEQlBhcnNlS2V5
UGF0aChrZXlQYXRoLCBpZGJFbGVtZW50cywgaWRiRXJyb3IpOwogICAgIHJldHVybiBXZWJJREJL
ZXlQYXRoKGlkYkVsZW1lbnRzLCBzdGF0aWNfY2FzdDxpbnQ+KGlkYkVycm9yKSk7CiB9CiAKK1dl
YklEQktleVBhdGggV2ViSURCS2V5UGF0aDo6Y3JlYXRlTnVsbCgpCit7CisgICAgcmV0dXJuIFdl
YklEQktleVBhdGgoV2ViU3RyaW5nKCkpOworfQorCiBXZWJJREJLZXlQYXRoOjpXZWJJREJLZXlQ
YXRoKGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZWxlbWVudHMsIGludCBwYXJzZUVy
cm9yKQogICAgIDogbV9wcml2YXRlKG5ldyBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4oZWxlbWVu
dHMpKQogICAgICwgbV9wYXJzZUVycm9yKHBhcnNlRXJyb3IpCiB7CiB9CiAKK2Jvb2wgV2ViSURC
S2V5UGF0aDo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFyc2VFcnJvciA9PSBJ
REJLZXlQYXRoUGFyc2VFcnJvck5vbmU7Cit9CisKK1dlYklEQktleVBhdGg6OlR5cGUgV2ViSURC
S2V5UGF0aDo6dHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKSA/IFN0
cmluZ1R5cGUgOiBOdWxsVHlwZTsKK30KKworV2ViU3RyaW5nIFdlYklEQktleVBhdGg6OnN0cmlu
ZygpIGNvbnN0Cit7CisgICAgaWYgKCFtX3ByaXZhdGUuZ2V0KCkpCisgICAgICAgIHJldHVybiBX
ZWJTdHJpbmcoKTsKKworICAgIC8vIEZJWE1FOiBTdG9yZSB0aGUgY29tcGxldGUgc3RyaW5nIGlu
c3RlYWQgb2YgcmVidWlsZGluZyBpdC4KKyAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3
CisgICAgV1RGOjpTdHJpbmcgc3RyaW5nKCIiKTsKKyAgICBXVEY6OlZlY3RvcjxXVEY6OlN0cmlu
Zz4mIGFycmF5ID0gKm1fcHJpdmF0ZS5nZXQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGFycmF5LnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChpKQorICAgICAgICAgICAgc3RyaW5n
LmFwcGVuZCgiLiIpOworICAgICAgICBzdHJpbmcuYXBwZW5kKGFycmF5W2ldKTsKKyAgICB9Cisg
ICAgcmV0dXJuIFdlYlN0cmluZyhzdHJpbmcpOworfQorCitXZWJJREJLZXlQYXRoOjpXZWJJREJL
ZXlQYXRoKGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCkKKyAgICA6IG1fcGFyc2VFcnJvcihJREJL
ZXlQYXRoUGFyc2VFcnJvck5vbmUpCit7CisgICAgaWYgKCFrZXlQYXRoLmlzTnVsbCgpKSB7Cisg
ICAgICAgIG1fcHJpdmF0ZS5yZXNldChuZXcgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+KCkpOwor
ICAgICAgICBJREJLZXlQYXRoUGFyc2VFcnJvciBpZGJQYXJzZUVycm9yOworICAgICAgICBJREJQ
YXJzZUtleVBhdGgoa2V5UGF0aCwgKm1fcHJpdmF0ZS5nZXQoKSwgaWRiUGFyc2VFcnJvcik7Cisg
ICAgICAgIG1fcGFyc2VFcnJvciA9IGlkYlBhcnNlRXJyb3I7CisgICAgfQorfQorCiBpbnQgV2Vi
SURCS2V5UGF0aDo6cGFyc2VFcnJvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFyc2VFcnJv
cjsKQEAgLTU5LDcgKzEwNSwxMCBAQCBpbnQgV2ViSURCS2V5UGF0aDo6cGFyc2VFcnJvcigpIGNv
bnN0CiB2b2lkIFdlYklEQktleVBhdGg6OmFzc2lnbihjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQ
YXRoKQogewogICAgIG1fcGFyc2VFcnJvciA9IGtleVBhdGgubV9wYXJzZUVycm9yOwotICAgIG1f
cHJpdmF0ZS5yZXNldChuZXcgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+KGtleVBhdGgpKTsKKyAg
ICBpZiAoa2V5UGF0aC5tX3ByaXZhdGUuZ2V0KCkpCisgICAgICAgIG1fcHJpdmF0ZS5yZXNldChu
ZXcgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+KGtleVBhdGgpKTsKKyAgICBlbHNlCisgICAgICAg
IG1fcHJpdmF0ZS5yZXNldCgwKTsKIH0KIAogdm9pZCBXZWJJREJLZXlQYXRoOjpyZXNldCgpCkBA
IC02OSw2ICsxMTgsNyBAQCB2b2lkIFdlYklEQktleVBhdGg6OnJlc2V0KCkKIAogV2ViSURCS2V5
UGF0aDo6b3BlcmF0b3IgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmcsIDA+JigpIGNvbnN0
CiB7CisgICAgQVNTRVJUKG1fcHJpdmF0ZS5nZXQoKSk7CiAgICAgcmV0dXJuICptX3ByaXZhdGUu
Z2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
Qk9iamVjdFN0b3JlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJP
YmplY3RTdG9yZUltcGwuY3BwCmluZGV4IDllZDczOTdmNjk2YjExOGE4Zjg2ZmU1OTRkMWQzNTU1
OWUxYTlkMjAuLjYyNGE0ZTViMzY2MGQ5Yjk3NGE3ZDA0ODJiMjQ2OTFkMWYxMTE0MDEgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBs
LmNwcApAQCAtNTcsNiArNTcsMTMgQEAgV2ViU3RyaW5nIFdlYklEQk9iamVjdFN0b3JlSW1wbDo6
bmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fb2JqZWN0U3RvcmUtPm5hbWUoKTsKIH0KIAorV2Vi
SURCS2V5UGF0aCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmtleVBhdGgoKSBjb25zdAoreworICAg
IHJldHVybiBXZWJJREJLZXlQYXRoKG1fb2JqZWN0U3RvcmUtPmtleVBhdGgoKSk7Cit9CisKKy8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2Qgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgorLy8g
aHR0cDovL3dlYmtpdC5vcmcvYi84NDIwNwogV2ViU3RyaW5nIFdlYklEQk9iamVjdFN0b3JlSW1w
bDo6a2V5UGF0aFN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fb2JqZWN0U3RvcmUtPmtl
eVBhdGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9i
amVjdFN0b3JlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0
U3RvcmVJbXBsLmgKaW5kZXggOGIzMmY0MTNmOWUyZTE2NmNkN2U1ZTIwN2RmYzhiZTkwOWVlZDQy
Yi4uZWUzYjIyMmFjYzJjNjYzN2FlNzRiZGE0ZTRjOGFiODYyZmY3ZTg3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgKQEAgLTQ2
LDYgKzQ2LDkgQEAgcHVibGljOgogICAgIH5XZWJJREJPYmplY3RTdG9yZUltcGwoKTsKIAogICAg
IFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7CisgICAgV2ViSURCS2V5UGF0aCBrZXlQYXRoKCkgY29u
c3Q7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvbmNlIGNhbGxlcnMgYXJlIHVw
ZGF0ZWQuCisgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi84NDIwNwogICAgIFdlYlN0cmluZyBr
ZXlQYXRoU3RyaW5nKCkgY29uc3Q7CiAgICAgV2ViRE9NU3RyaW5nTGlzdCBpbmRleE5hbWVzKCkg
Y29uc3Q7CiAKQEAgLTU1LDkgKzU4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZUZ1bmN0
aW9uKGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBjbGVhcihXZWJJREJD
YWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsK
IAotICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgotICAgIFdl
YklEQkluZGV4KiBjcmVhdGVJbmRleChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0
cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFu
c2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNyZWF0ZUluZGV4KG5hbWUs
IGtleVBhdGgsIHVuaXF1ZSwgZmFsc2UsIHRyYW5zYWN0aW9uLCBlYyk7IH0KLSAgICBXZWJJREJJ
bmRleCogY3JlYXRlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcm
IGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnksIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1vdmUgV2ViU3Ry
aW5nIGtleVBhdGggb3ZlcmxvYWQgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgorICAgIC8vIGh0
dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICBXZWJJREJJbmRleCogY3JlYXRlSW5kZXgoY29u
c3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViU3RyaW5nJiwgYm9vbCwgYm9vbCwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7CisgICAgV2ViSURCSW5kZXgqIGNyZWF0
ZUluZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gY3JlYXRlSW5kZXgo
bmFtZSwga2V5UGF0aC5zdHJpbmcoKSwgdW5pcXVlLCBtdWx0aUVudHJ5LCB0cmFuc2FjdGlvbiwg
ZWMpOyB9CiAgICAgV2ViSURCSW5kZXgqIGluZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2Vi
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiBu
YW1lLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139031</attachid>
            <date>2012-04-26 11:28:08 -0700</date>
            <delta_ts>2012-04-26 12:19:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-84631-20120426112807.patch</filename>
            <type>text/plain</type>
            <size>22330</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDdmNzRiM2IwYTMzNzBhNGM1NGZjNWMwNmU3YmY5OTYwNTgxODM5NmIuLmNhNzg0ZTM3YTZjZGU5
YTIyNzU2YWRmNGExNzExMjJhZDljMTIwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMTItMDQtMjYgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIEluZGV4ZWREQjogVXNlIFdlYklEQktleVBhdGgg
dHlwZSBmb3Iga2V5IHBhdGhzIGluIFdlYktpdCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFt
ZXMgUm9iaW5zb24uCisKKyAgICAgICAgV2ViSURCS2V5UGF0aCB3YXMgcHJldmlvdXNseSBhIHV0
aWxpdHkgY2xhc3MgZm9yIHBhcnNpbmcga2V5IHBhdGhzIGludG8gY29tcG9uZW50cywKKyAgICAg
ICAgYnV0IHRoZSBBUEkgZXhwb3NlZCBrZXkgcGF0aHMgb25seSBhcyBudWxsYWJsZSBzdHJpbmdz
LiBUbyBzdXBwb3J0IGFycmF5LXR5cGUga2V5cGF0aHMsCisgICAgICAgIFdlYklEQktleVBhdGgg
YmVjb21lcyBhIHZhbHVlIGNsYXNzIHdpdGggdHlwZSBmbGFncy4gRm9yIGxhbmRpbmcsIHNldmVy
YWwgbGVnYWN5IG1ldGhvZHMKKyAgICAgICAgYXJlIHJldGFpbmVkIGJ1dCB3aWxsIGJlIGNsZWFu
ZWQgdXAgYWZ0ZXIgYWxsIGNhbGxlcnMgaGF2ZSBiZWVuIHVwZGF0ZWQsIHRyYWNrZWQgYXMKKyAg
ICAgICAgdGhlIGJ1ZzogaHR0cDovL3dlYmtpdC5vcmcvYi84NDIwNworCisgICAgICAgICogcHVi
bGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjpj
cmVhdGVPYmplY3RTdG9yZSk6IEFkZCBXZWJJREJLZXlQYXRoIG92ZXJsb2FkOyBXZWJTdHJpbmcg
b3ZlcmxvYWQgZGVsZWdhdGVzIHNvIGltcGxlbWVudGVycyBjYW4gc3dpdGNoLgorICAgICAgICAq
IHB1YmxpYy9XZWJJREJJbmRleC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJJbmRleDo6a2V5
UGF0aCk6IENhbGxzIGtleVBhdGhTdHJpbmcgaWYgbm90IG92ZXJyaWRkZW4uCisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkluZGV4OjprZXlQYXRoU3RyaW5nKTogQ29tbWVudCBjaGFuZ2UuCisgICAg
ICAgICogcHVibGljL1dlYklEQktleVBhdGguaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5
UGF0aDo6Y3JlYXRlKTogT3ZlcmxvYWQgYWRkZWQgZm9yIGNyZWF0aW5nIGFycmF5LXR5cGUga2V5
IHBhdGhzLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlQYXRoOjphcnJheSk6IEFjY2Vzc29y
IGZvciBhcnJheS10eXBlIGtleSBwYXRocy4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0
aDo6b3BlcmF0b3IgY29uc3QgV2ViU3RyaW5nICk6IFRlbXBvcmFyeSwgZm9yIGNvbXBhdGliaWxp
dHkuCisgICAgICAgICogcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQk9iamVjdFN0b3JlOjprZXlQYXRoKTogQ2FsbHMga2V5UGF0aFN0cmluZyBpZiBu
b3Qgb3ZlcnJpZGRlbi4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCT2JqZWN0U3RvcmU6OmtleVBh
dGhTdHJpbmcpOiBDb21tZW50IGNoYW5nZS4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCT2JqZWN0
U3RvcmU6OmNyZWF0ZUluZGV4KTogQWRkIFdlYklEQktleVBhdGggb3ZlcmxvYWQ7IFdlYlN0cmlu
ZyBvdmVybG9hZCBkZWxlZ2F0ZXMgc28gaW1wbGVtZW50ZXJzIGNhbiBzd2l0Y2guCisgICAgICAg
ICogcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAgICAgICAoV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0KTogV2ViSURCS2V5UGF0aCBvdmVybG9hZHMgZm9yIHRoZXNlIG1l
dGhvZHMgYWRkZWQsIGRlbGVnYXRlIHRvIFdlYlN0cmluZyB2ZXJzaW9uIHVudGlsIGltcGxlbWVu
dGVycyBhcmUgdXBkYXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0
OjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKToKKyAgICAgICAg
KFdlYktpdDo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0OjppbmplY3RJREJLZXlJbnRvU2VyaWFsaXpl
ZFZhbHVlKToKKyAgICAgICAgKiBzcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJREJJbmRleEJhY2tlbmRQcm94eTo6a2V5UGF0aCk6IFJldHVybnMgdGhlIHN0
cmluZyB2ZXJzaW9uIHVudGlsIFdlYkNvcmUgaXMgdXBkYXRlZC4KKyAgICAgICAgKiBzcmMvSURC
T2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJREJPYmplY3RT
dG9yZUJhY2tlbmRQcm94eTo6a2V5UGF0aCk6IFJldHVybnMgdGhlIHN0cmluZyB2ZXJzaW9uIHVu
dGlsIFdlYkNvcmUgaXMgdXBkYXRlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBs
Lmg6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUltcGwpOiBBZGQgY3JlYXRlT2JqZWN0U3RvcmUg
b3ZlcmxvYWQgZm9yIFdlYklEQktleVBhdGggdHlwZSwgZGVsZWdhdGVzIHRvIFdlYlN0cmluZyB2
ZXJzaW9uIHVudGlsIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgICAgICogc3JjL1dlYklEQklu
ZGV4SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4SW1wbDo6a2V5UGF0aCk6
IEltcGxlbWVudHMgdGhlIG5ldyBXZWJJREJLZXlQYXRoIHJldHVybiB0eXBlLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmg6CisgICAgICAgIChXZWJJ
REJJbmRleEltcGwpOiBJbXBsZW1lbnRzIHRoZSBuZXcgV2ViSURCS2V5UGF0aCByZXR1cm4gdHlw
ZS4KKyAgICAgICAgKiBzcmMvV2ViSURCS2V5UGF0aC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQktleVBhdGg6OmNyZWF0ZSk6IFN1cHBvcnQgbnVsbCBrZXkgcGF0aCB0eXBlcy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6Y3JlYXRlTnVsbCk6IE5ldyBBUEkuCisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXlQYXRoOjppc1ZhbGlkKTogTmV3
IEFQSS4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6dHlwZSk6IE5ldyBBUEkuCisg
ICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6OnN0cmluZyk6IE5ldyBBUEkgKHZhbHVlIGFj
Y2Vzc29yKS4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6V2ViSURCS2V5UGF0aCk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleVBhdGg6OmFzc2lnbik6IFRoaXMgQVBJIHdpbGwg
YmUgcmVtb3ZlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5UGF0aDo6b3BlcmF0b3IgY29u
c3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmcsIDA+Jik6IEVuc3VyZSBpdCBpcyBub24tbnVsbCAt
IG9ubHkgdXNlZCBpbiBjb3B5IGNvbnN0cnVjdG9yIHdoaWNoIGd1YXJkcyBhZ2FpbnN0IHRoaXMu
CisgICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQk9iamVjdFN0b3JlSW1wbDo6a2V5UGF0aCk6IEltcGxlbWVudCB0aGUgbmV3IFdl
YklEQktleVBhdGggcmV0dXJuIHR5cGUuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNy
Yy9XZWJJREJPYmplY3RTdG9yZUltcGwuaDoKKyAgICAgICAgKFdlYklEQk9iamVjdFN0b3JlSW1w
bCk6IEFkZCBjcmVhdGVJbmRleCBvdmVybG9hZCBmb3IgV2ViSURCS2V5UGF0aCB0eXBlLCBkZWxl
Z2F0ZXMgdG8gV2ViU3RyaW5nIHZlcnNpb24gdW50aWwgY2FsbGVycyBhcmUgdXBkYXRlZC4KKwog
MjAxMi0wNC0yNiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDUkFTSF0gV2ViVmlld0ltcGw6OnNldFpvb21MZXZlbCB3
aGVuIGVtdWxhdGluZyBkZXZpY2UgbWV0cmljcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggZmY4ZTFjYTRhOTVjMjg2ZDI0NzczMjVjZWU2
ZGZmZmE4MmExNjE0My4uZjUzYjAyZTM5YTdiNzJmYWVkZmI1ZmJjMGYwNGU4ZmEzMGRhMzExMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJXZWJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVk
ZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIldlYklEQktleVBhdGguaCIKICNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OCw3
ICs1OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIFdlYkRPTVN0cmluZ0xpc3QoKTsKICAgICB9Ci0gICAgdmlydHVhbCBX
ZWJJREJPYmplY3RTdG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5nJiBuYW1l
LCBjb25zdCBXZWJTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgY29uc3QgV2Vi
SURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikKKyAgICAvLyBGSVhNRTogUmVtb3Zl
IFdlYlN0cmluZyBrZXlQYXRoIG92ZXJsb2FkIG9uY2UgY2FsbGVycyBhcmUgdXBkYXRlZC4KKyAg
ICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CisgICAgdmlydHVhbCBXZWJJREJPYmplY3RT
dG9yZSogY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJT
dHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKKyAgICB7CisgICAgICAgIHJl
dHVybiBjcmVhdGVPYmplY3RTdG9yZShuYW1lLCBXZWJJREJLZXlQYXRoKGtleVBhdGgpLCBhdXRv
SW5jcmVtZW50LCB0cmFuc2FjdGlvbiwgZWMpOworICAgIH0KKyAgICB2aXJ0dWFsIFdlYklEQk9i
amVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJTdHJpbmcmLCBjb25zdCBXZWJJ
REJLZXlQYXRoJiwgYm9vbCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25D
b2RlJikKICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJJbmRleC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCSW5kZXgu
aAppbmRleCBkNTcyNDNlOWRmOTNhNWMxYWZlNmIwMDVkZDk4NGZiZjZkMzA5YWZiLi4zN2FmMDJj
MGM4YjMxMzlkZDM2YWViYzA3YjVkMzgxNzU2M2EwYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYklEQkluZGV4LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV2Vi
SURCSW5kZXhfaAogCiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIldl
YklEQktleVBhdGguaCIKICNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUg
InBsYXRmb3JtL1dlYlN0cmluZy5oIgogCkBAIC01MSwxNCArNTIsMTQgQEAgcHVibGljOgogICAg
ICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBXZWJTdHJp
bmcoKTsKICAgICB9Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0aCgpIGNvbnN0CisgICAg
dmlydHVhbCBXZWJJREJLZXlQYXRoIGtleVBhdGgoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0
dXJuIGtleVBhdGhTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFdlYklEQktleVBhdGgoa2V5UGF0
aFN0cmluZygpKTsKICAgICB9CisgICAgLy8gRklYTUU6IFJlbW92ZSBtZXRob2Qgb25jZSBjYWxs
ZXJzIGFyZSB1cGRhdGVkLgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKICAgICB2
aXJ0dWFsIFdlYlN0cmluZyBrZXlQYXRoU3RyaW5nKCkgY29uc3QKICAgICB7Ci0gICAgICAgIC8v
IEZJWE1FOiBUZW1wb3JhcnkgdG8gYWxsb3cga2V5UGF0aCgpJ3MgcmV0dXJuIHR5cGUgdG8gY2hh
bmdlLgotICAgICAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CiAgICAgICAgIFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFdlYlN0cmluZygpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVBh
dGguaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQktleVBhdGguaAppbmRl
eCA0YzcyNTlmMDNiNTFkMWFjNTJjZjNhMWFlMTgzMGZhNTRkZTllYjhjLi45N2JhYzA2ZmZlODRh
M2ZkMGQyM2EzZjE0YWQxMjk3MzkzNGYyYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJLZXlQYXRoLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCS2V5UGF0aC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJDb21tb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJQcml2YXRlT3duUHRy
LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0v
V2ViVmVjdG9yLmgiCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMzcsMTQgKzM4LDI5IEBAIGNsYXNz
IFN0cmluZzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYlN0cmluZzsKLQogY2xh
c3MgV2ViSURCS2V5UGF0aCB7CiBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2Vi
SURCS2V5UGF0aCBjcmVhdGUoY29uc3QgV2ViU3RyaW5nJik7Ci0gICAgV2ViSURCS2V5UGF0aChj
b25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRoKSB7IGFzc2lnbihrZXlQYXRoKTsgfQorICAgIFdF
QktJVF9FWFBPUlQgc3RhdGljIFdlYklEQktleVBhdGggY3JlYXRlKGNvbnN0IFdlYlZlY3RvcjxX
ZWJTdHJpbmc+Jik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViSURCS2V5UGF0aCBjcmVh
dGVOdWxsKCk7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJJREJLZXlQYXRoKGNvbnN0IFdlYklEQktl
eVBhdGgmKTsKICAgICB+V2ViSURCS2V5UGF0aCgpIHsgcmVzZXQoKTsgfQogCisgICAgZW51bSBU
eXBlIHsKKyAgICAgICAgTnVsbFR5cGUgPSAwLAorICAgICAgICBTdHJpbmdUeXBlLAorICAgICAg
ICBBcnJheVR5cGUsCisgICAgfTsKKworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1ZhbGlkKCkg
Y29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBUeXBlIHR5cGUoKSBjb25zdDsKKyAgICAvLyBGSVhN
RTogQXJyYXktdHlwZSBrZXkgcGF0aHMgbm90IHlldCBzdXBwb3J0ZWQuIGh0dHA6Ly93ZWJraXQu
b3JnL2IvODQyMDcKKyAgICBXZWJWZWN0b3I8V2ViU3RyaW5nPiBhcnJheSgpIGNvbnN0IHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gV2ViVmVjdG9yPFdlYlN0cmluZz4oKTsg
fQorICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHN0cmluZygpIGNvbnN0OworCisgICAgLy8g
RklYTUU6IFJlbW92ZSB0aGVzZSBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQuIGh0dHA6Ly93ZWJr
aXQub3JnL2IvODQyMDcKKyAgICBXRUJLSVRfRVhQT1JUIFdlYklEQktleVBhdGgoY29uc3QgV2Vi
U3RyaW5nJik7CisgICAgb3BlcmF0b3IgY29uc3QgV2ViU3RyaW5nICgpIGNvbnN0IHsgcmV0dXJu
IHN0cmluZygpOyB9CiAgICAgV0VCS0lUX0VYUE9SVCBpbnQgcGFyc2VFcnJvcigpIGNvbnN0Owog
ICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViSURCS2V5UGF0aCYpOwogICAg
IFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgKaW5kZXggZDA1YWI0OTU4MTk4OWUzNjI4M2Ey
NjIzYTUzNjM0MDA1NGEzYjRlOS4uZGNmNDg1NjkyNTEwY2ZmOWI4MWY2NGUwZDE3YjAyYmRiODFh
OWRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2Jq
ZWN0U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJPYmpl
Y3RTdG9yZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIldlYkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFj
a3MuaCIKKyNpbmNsdWRlICJXZWJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiV2ViSURCVHJhbnNh
Y3Rpb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJTdHJpbmcuaCIKQEAgLTQ4LDE0ICs0OSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIFdF
QktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFdlYlN0cmluZygpOwog
ICAgIH0KLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBrZXlQYXRoKCkgY29uc3QKKyAgICB2aXJ0dWFs
IFdlYklEQktleVBhdGgga2V5UGF0aCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4ga2V5
UGF0aFN0cmluZygpOworICAgICAgICByZXR1cm4gV2ViSURCS2V5UGF0aChrZXlQYXRoU3RyaW5n
KCkpOwogICAgIH0KICAgICB2aXJ0dWFsIFdlYlN0cmluZyBrZXlQYXRoU3RyaW5nKCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkgdG8gYWxsb3cga2V5UGF0aCgpJ3Mg
cmV0dXJuIHR5cGUgdG8gY2hhbmdlLgotICAgICAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0
MjA3CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
IFdlYlN0cmluZygpOwogICAgIH0KQEAgLTc3LDggKzc2LDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24oY29uc3QgV2ViSURCS2V5JiwgV2ViSURCQ2FsbGJhY2tz
KiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24o
Y29uc3QgV2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhcihXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJ
REJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQorCisgICAgLy8gRklYTUU6IFJlbW92ZSBXZWJTdHJpbmcga2V5UGF0aCBvdmVy
bG9hZCBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcv
Yi84NDIwNwogICAgIHZpcnR1YWwgV2ViSURCSW5kZXgqIGNyZWF0ZUluZGV4KGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSwgYm9vbCBt
dWx0aUVudHJ5LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUluZGV4KG5hbWUsIFdl
YklEQktleVBhdGgoa2V5UGF0aCksIHVuaXF1ZSwgbXVsdGlFbnRyeSwgdHJhbnNhY3Rpb24sIGVj
KTsKKyAgICB9CisgICAgdmlydHVhbCBXZWJJREJJbmRleCogY3JlYXRlSW5kZXgoY29uc3QgV2Vi
U3RyaW5nJiwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wsIGJvb2wsIGNvbnN0IFdlYklEQlRy
YW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpCisgICAgewogICAgICAgICBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3Vw
cG9ydC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxh
dGZvcm1TdXBwb3J0LmgKaW5kZXggYmE5YjUzYWYwNDVkZGU2ZmJjMDAzZjdiMzYzM2ExNGQzZTYz
ZDA0My4uY2EzNzYyZGNiZWJlNGJmMmJiYWE2ZDAwMDE0ZjhhYTQzZjg1MTRmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1T
dXBwb3J0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgV2ViS2l0UGxh
dGZvcm1TdXBwb3J0X2gKICNkZWZpbmUgV2ViS2l0UGxhdGZvcm1TdXBwb3J0X2gKIAorI2luY2x1
ZGUgIi4uL1dlYklEQktleVBhdGguaCIgLy8gRklYTUU6IFJlbW92ZSB3aXRoOiBodHRwOi8vd2Vi
a2l0Lm9yZy9iLzg0MjA3CiAjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5jbHVkZSAiV2ViR3Jh
cGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJXZWJMb2NhbGl6ZWRTdHJpbmcuaCIKQEAgLTEy
Niw4ICsxMjcsMTQgQEAgcHVibGljOgogICAgIC8vIEluZGV4ZWQgRGF0YWJhc2UgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgdmlydHVh
bCBXZWJJREJGYWN0b3J5KiBpZGJGYWN0b3J5KCkgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNvbnN0IFdl
YlZlY3RvcjxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiB2YWx1ZXMsICBjb25zdCBXZWJTdHJp
bmcmIGtleVBhdGgsIFdlYlZlY3RvcjxXZWJJREJLZXk+JiBrZXlzKSB7IH0KLSAgICB2aXJ0dWFs
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBpbmplY3RJREJLZXlJbnRvU2VyaWFsaXplZFZhbHVl
KGNvbnN0IFdlYklEQktleSYga2V5LCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHZh
bHVlLCBjb25zdCBXZWJTdHJpbmcmIGtleVBhdGgpIHsgcmV0dXJuIFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSgpOyB9CisgICAgLy8gRklYTUU6IFJlbW92ZSBXZWJTdHJpbmcga2V5UGF0aCBvdmVy
bG9hZCBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcv
Yi84NDIwNworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1
ZXNBbmRLZXlQYXRoKGNvbnN0IFdlYlZlY3RvcjxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiB2
YWx1ZXMsICBjb25zdCBXZWJTdHJpbmcmIGtleVBhdGgsIFdlYlZlY3RvcjxXZWJJREJLZXk+JiBr
ZXlzKSB7IGNyZWF0ZUlEQktleXNGcm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgodmFsdWVz
LCBXZWJJREJLZXlQYXRoKGtleVBhdGgpLCBrZXlzKTsgfQorICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNvbnN0IFdlYlZlY3RvcjxX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiB2YWx1ZXMsICBjb25zdCBXZWJJREJLZXlQYXRoJiBr
ZXlQYXRoLCBXZWJWZWN0b3I8V2ViSURCS2V5PiYga2V5cykgeyB9CisgICAgLy8gRklYTUU6IFJl
bW92ZSBXZWJTdHJpbmcga2V5UGF0aCBvdmVybG9hZCBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQu
CisgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi84NDIwNworICAgIHZpcnR1YWwgV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlIGluamVjdElEQktleUludG9TZXJpYWxpemVkVmFsdWUoY29uc3QgV2Vi
SURCS2V5JiBrZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0
IFdlYlN0cmluZyYga2V5UGF0aCkgeyByZXR1cm4gaW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRW
YWx1ZShrZXksIHZhbHVlLCBXZWJJREJLZXlQYXRoKGtleVBhdGgpKTsgfQorICAgIHZpcnR1YWwg
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIGluamVjdElEQktleUludG9TZXJpYWxpemVkVmFsdWUo
Y29uc3QgV2ViSURCS2V5JiBrZXksIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgdmFs
dWUsIGNvbnN0IFdlYklEQktleVBhdGgmIGtleVBhdGgpIHsgcmV0dXJuIFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSgpOyB9CiAKIAogICAgIC8vIE1lc3NhZ2UgUG9ydHMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwCmluZGV4IDE3MTQ2
YTVjYWQ2YjRkNWYxNGM0Zjg3YWMxMjVlYjlkYzMwMjQxNGUuLjAwMTRmMjk1OTZhZWIzYTFhYzMz
YWI3Y2JlNmNjNTM4MDkyMjJiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgU3RyaW5nIElE
QkluZGV4QmFja2VuZFByb3h5OjpzdG9yZU5hbWUoKQogCiBTdHJpbmcgSURCSW5kZXhCYWNrZW5k
UHJveHk6OmtleVBhdGgoKQogewotICAgIHJldHVybiBtX3dlYklEQkluZGV4LT5rZXlQYXRoKCk7
CisgICAgcmV0dXJuIG1fd2ViSURCSW5kZXgtPmtleVBhdGgoKS5zdHJpbmcoKTsKIH0KIAogYm9v
bCBJREJJbmRleEJhY2tlbmRQcm94eTo6dW5pcXVlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmNwcAppbmRleCA5
N2I2NGY0NmMzZDBmMmQ2MTAwZTNiNWM5YjY2NjVlNjlkMTBlYmQyLi4yMWE1ZGQ4NTZkYzNiODA1
OTg5NzdjMDQ4NjJlYjg2ZGZlODc5YzBkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwCkBAIC02Niw3ICs2
Niw3IEBAIFN0cmluZyBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6bmFtZSgpIGNvbnN0CiAK
IFN0cmluZyBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6a2V5UGF0aCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fd2ViSURCT2JqZWN0U3RvcmUtPmtleVBhdGgoKTsKKyAgICByZXR1cm4gbV93
ZWJJREJPYmplY3RTdG9yZS0+a2V5UGF0aCgpLnN0cmluZygpOwogfQogCiBQYXNzUmVmUHRyPERP
TVN0cmluZ0xpc3Q+IElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjppbmRleE5hbWVzKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNl
SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgK
aW5kZXggNmY4Mzc3NWJlMjJkNmI0MzRkOTdmZDExNzExZWNhMDg2NTc3ODk5MC4uZjczYmU1NzA1
NGY2MmFiNGMyNTQxNDAyZDdmMTQ3ZDg2N2FlZjNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKQEAgLTUzLDcgKzUzLDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFdlYlN0cmluZyB2ZXJzaW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBX
ZWJET01TdHJpbmdMaXN0IG9iamVjdFN0b3JlTmFtZXMoKSBjb25zdDsKIAotICAgIHZpcnR1YWwg
V2ViSURCT2JqZWN0U3RvcmUqIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQsIGNvbnN0IFdl
YklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBSZW1v
dmUgV2ViU3RyaW5nIGtleVBhdGggb3ZlcmxvYWQgb25jZSBjYWxsZXJzIGFyZSB1cGRhdGVkLgor
ICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICB2aXJ0dWFsIFdlYklEQk9iamVj
dFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJTdHJpbmcmLCBjb25zdCBXZWJTdHJp
bmcmLCBib29sLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2aXJ0dWFsIFdlYklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBX
ZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0lu
Y3JlbWVudCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRp
b25Db2RlJiBlYykgeyByZXR1cm4gY3JlYXRlT2JqZWN0U3RvcmUobmFtZSwga2V5UGF0aC5zdHJp
bmcoKSwgYXV0b0luY3JlbWVudCwgdHJhbnNhY3Rpb24sIGVjKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQlRy
YW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWZXJz
aW9uKGNvbnN0IFdlYlN0cmluZyYgdmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiwgV2ViRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKGNv
bnN0IFdlYkRPTVN0cmluZ0xpc3QmIG5hbWVzLCB1bnNpZ25lZCBzaG9ydCBtb2RlLCBXZWJFeGNl
cHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJJbmRleEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJ
bXBsLmNwcAppbmRleCA3NTk3MGE1NzRjYzk4NWZlYTMxYzhjZjVjMjAzY2EzYjMyN2U5NjdmLi4x
NzA5Mzk1Njc0MDk2MDJkODhmNDdhNjVmNTAzYTljZWI4MjdkYWI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5jcHAKQEAgLTU4LDYgKzU4LDEzIEBA
IFdlYlN0cmluZyBXZWJJREJJbmRleEltcGw6OnN0b3JlTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fYmFja2VuZC0+c3RvcmVOYW1lKCk7CiB9CiAKK1dlYklEQktleVBhdGggV2ViSURCSW5kZXhJ
bXBsOjprZXlQYXRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViSURCS2V5UGF0aChtX2JhY2tl
bmQtPmtleVBhdGgoKSk7Cit9CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2Qgb25jZSBj
YWxsZXJzIGFyZSB1cGRhdGVkLgorLy8gaHR0cDovL3dlYmtpdC5vcmcvYi84NDIwNwogV2ViU3Ry
aW5nIFdlYklEQkluZGV4SW1wbDo6a2V5UGF0aFN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fYmFja2VuZC0+a2V5UGF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCSW5kZXhJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJJbmRleEltcGwuaAppbmRleCBhMWQ0YWYzODk3MzBjYzMyMjEyMmE3M2NkY2VlYjU2MTkyMWYy
MmU2Li5kOGIxMTI5ZDBmM2Y1NWQzMzNmZmQ2MTljMDk5YzQ4YWJlOTVmM2ZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApAQCAtNDUsNiArNDUsOSBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBXZWJTdHJpbmcgc3RvcmVOYW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJJREJLZXlQ
YXRoIGtleVBhdGgoKSBjb25zdDsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9u
Y2UgY2FsbGVycyBhcmUgdXBkYXRlZC4KKyAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3
CiAgICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0aFN0cmluZygpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCB1bmlxdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgbXVsdGlFbnRyeSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5UGF0
aC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXlQYXRoLmNwcAppbmRl
eCA3NGYzNTdlNDAzZmYwZjNmNTc4Y2UzYzM1YThmNDZkZmViYmUxMDJjLi5iY2Y1ZGJkMGQ5ZWM4
NmQxYTM5YzgwMWU0YWUwZjc3ZmJkMjQxYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJLZXlQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJLZXlQYXRoLmNwcApAQCAtMzcsMjAgKzM3LDc4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorV2ViSURCS2V5UGF0aCBXZWJJREJL
ZXlQYXRoOjpjcmVhdGUoY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mKQoreworICAgIC8vIEZJ
WE1FOiBBcnJheS10eXBlIGtleSBwYXRocyBub3QgeWV0IHN1cHBvcnRlZC4gaHR0cDovL3dlYmtp
dC5vcmcvYi84NDIwNworICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gY3JlYXRlTnVsbCgpOworfQorCiBXZWJJREJLZXlQYXRoIFdlYklEQktleVBhdGg6OmNyZWF0
ZShjb25zdCBXZWJTdHJpbmcmIGtleVBhdGgpCiB7CisgICAgaWYgKGtleVBhdGguaXNOdWxsKCkp
CisgICAgICAgIHJldHVybiBjcmVhdGVOdWxsKCk7CisKICAgICBXVEY6OlZlY3RvcjxXVEY6OlN0
cmluZz4gaWRiRWxlbWVudHM7CiAgICAgSURCS2V5UGF0aFBhcnNlRXJyb3IgaWRiRXJyb3I7CiAg
ICAgSURCUGFyc2VLZXlQYXRoKGtleVBhdGgsIGlkYkVsZW1lbnRzLCBpZGJFcnJvcik7CiAgICAg
cmV0dXJuIFdlYklEQktleVBhdGgoaWRiRWxlbWVudHMsIHN0YXRpY19jYXN0PGludD4oaWRiRXJy
b3IpKTsKIH0KIAorV2ViSURCS2V5UGF0aCBXZWJJREJLZXlQYXRoOjpjcmVhdGVOdWxsKCkKK3sK
KyAgICByZXR1cm4gV2ViSURCS2V5UGF0aChXZWJTdHJpbmcoKSk7Cit9CisKK1dlYklEQktleVBh
dGg6OldlYklEQktleVBhdGgoY29uc3QgV2ViSURCS2V5UGF0aCYga2V5UGF0aCkKK3sKKyAgICBh
c3NpZ24oa2V5UGF0aCk7Cit9CisKIFdlYklEQktleVBhdGg6OldlYklEQktleVBhdGgoY29uc3Qg
V1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBlbGVtZW50cywgaW50IHBhcnNlRXJyb3IpCiAgICAg
OiBtX3ByaXZhdGUobmV3IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPihlbGVtZW50cykpCiAgICAg
LCBtX3BhcnNlRXJyb3IocGFyc2VFcnJvcikKIHsKIH0KIAorYm9vbCBXZWJJREJLZXlQYXRoOjpp
c1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYXJzZUVycm9yID09IElEQktleVBhdGhQ
YXJzZUVycm9yTm9uZTsKK30KKworV2ViSURCS2V5UGF0aDo6VHlwZSBXZWJJREJLZXlQYXRoOjp0
eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpID8gU3RyaW5nVHlwZSA6
IE51bGxUeXBlOworfQorCitXZWJTdHJpbmcgV2ViSURCS2V5UGF0aDo6c3RyaW5nKCkgY29uc3QK
K3sKKyAgICBpZiAoIW1fcHJpdmF0ZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIFdlYlN0cmluZygp
OworCisgICAgLy8gRklYTUU6IFN0b3JlIHRoZSBjb21wbGV0ZSBzdHJpbmcgaW5zdGVhZCBvZiBy
ZWJ1aWxkaW5nIGl0LgorICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvODQyMDcKKyAgICBXVEY6
OlN0cmluZyBzdHJpbmcoIiIpOworICAgIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgYXJyYXkg
PSAqbV9wcml2YXRlLmdldCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJyYXkuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBzdHJpbmcuYXBwZW5kKCIu
Iik7CisgICAgICAgIHN0cmluZy5hcHBlbmQoYXJyYXlbaV0pOworICAgIH0KKyAgICByZXR1cm4g
V2ViU3RyaW5nKHN0cmluZyk7Cit9CisKK1dlYklEQktleVBhdGg6OldlYklEQktleVBhdGgoY29u
c3QgV2ViU3RyaW5nJiBrZXlQYXRoKQorICAgIDogbV9wYXJzZUVycm9yKElEQktleVBhdGhQYXJz
ZUVycm9yTm9uZSkKK3sKKyAgICBpZiAoIWtleVBhdGguaXNOdWxsKCkpIHsKKyAgICAgICAgbV9w
cml2YXRlLnJlc2V0KG5ldyBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4oKSk7CisgICAgICAgIElE
QktleVBhdGhQYXJzZUVycm9yIGlkYlBhcnNlRXJyb3I7CisgICAgICAgIElEQlBhcnNlS2V5UGF0
aChrZXlQYXRoLCAqbV9wcml2YXRlLmdldCgpLCBpZGJQYXJzZUVycm9yKTsKKyAgICAgICAgbV9w
YXJzZUVycm9yID0gaWRiUGFyc2VFcnJvcjsKKyAgICB9Cit9CisKIGludCBXZWJJREJLZXlQYXRo
OjpwYXJzZUVycm9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wYXJzZUVycm9yOwpAQCAtNTks
NyArMTE3LDEwIEBAIGludCBXZWJJREJLZXlQYXRoOjpwYXJzZUVycm9yKCkgY29uc3QKIHZvaWQg
V2ViSURCS2V5UGF0aDo6YXNzaWduKGNvbnN0IFdlYklEQktleVBhdGgmIGtleVBhdGgpCiB7CiAg
ICAgbV9wYXJzZUVycm9yID0ga2V5UGF0aC5tX3BhcnNlRXJyb3I7Ci0gICAgbV9wcml2YXRlLnJl
c2V0KG5ldyBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4oa2V5UGF0aCkpOworICAgIGlmIChrZXlQ
YXRoLm1fcHJpdmF0ZS5nZXQoKSkKKyAgICAgICAgbV9wcml2YXRlLnJlc2V0KG5ldyBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4oa2V5UGF0aCkpOworICAgIGVsc2UKKyAgICAgICAgbV9wcml2YXRl
LnJlc2V0KDApOwogfQogCiB2b2lkIFdlYklEQktleVBhdGg6OnJlc2V0KCkKQEAgLTY5LDYgKzEz
MCw3IEBAIHZvaWQgV2ViSURCS2V5UGF0aDo6cmVzZXQoKQogCiBXZWJJREJLZXlQYXRoOjpvcGVy
YXRvciBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZywgMD4mKCkgY29uc3QKIHsKKyAgICBB
U1NFUlQobV9wcml2YXRlLmdldCgpKTsKICAgICByZXR1cm4gKm1fcHJpdmF0ZS5nZXQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3Rv
cmVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3Jl
SW1wbC5jcHAKaW5kZXggOWVkNzM5N2Y2OTZiMTE4YThmODZmZTU5NGQxZDM1NTU5ZTFhOWQyMC4u
NjI0YTRlNWIzNjYwZDliOTc0YTdkMDQ4MmIyNDY5MWQxZjExMTQwMSAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC01
Nyw2ICs1NywxMyBAQCBXZWJTdHJpbmcgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpuYW1lKCkgY29u
c3QKICAgICByZXR1cm4gbV9vYmplY3RTdG9yZS0+bmFtZSgpOwogfQogCitXZWJJREJLZXlQYXRo
IFdlYklEQk9iamVjdFN0b3JlSW1wbDo6a2V5UGF0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdl
YklEQktleVBhdGgobV9vYmplY3RTdG9yZS0+a2V5UGF0aCgpKTsKK30KKworLy8gRklYTUU6IFJl
bW92ZSB0aGlzIG1ldGhvZCBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisvLyBodHRwOi8vd2Vi
a2l0Lm9yZy9iLzg0MjA3CiBXZWJTdHJpbmcgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjprZXlQYXRo
U3RyaW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9vYmplY3RTdG9yZS0+a2V5UGF0aCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwu
aAppbmRleCA4YjMyZjQxM2Y5ZTJlMTY2Y2Q3ZTVlMjA3ZGZjOGJlOTA5ZWVkNDJiLi5lZTNiMjIy
YWNjMmM2NjM3YWU3NGJkYTRlNGM4YWI4NjJmZjdlODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaApAQCAtNDYsNiArNDYsOSBA
QCBwdWJsaWM6CiAgICAgfldlYklEQk9iamVjdFN0b3JlSW1wbCgpOwogCiAgICAgV2ViU3RyaW5n
IG5hbWUoKSBjb25zdDsKKyAgICBXZWJJREJLZXlQYXRoIGtleVBhdGgoKSBjb25zdDsKKyAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2UgY2FsbGVycyBhcmUgdXBkYXRlZC4KKyAg
ICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzg0MjA3CiAgICAgV2ViU3RyaW5nIGtleVBhdGhTdHJp
bmcoKSBjb25zdDsKICAgICBXZWJET01TdHJpbmdMaXN0IGluZGV4TmFtZXMoKSBjb25zdDsKIApA
QCAtNTUsOSArNTgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlRnVuY3Rpb24oY29uc3Qg
V2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlv
biYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNsZWFyKFdlYklEQkNhbGxiYWNrcyos
IGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgLy8g
RklYTUU6IFJlbW92ZSBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCi0gICAgV2ViSURCSW5kZXgq
IGNyZWF0ZUluZGV4KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiBrZXlQ
YXRoLCBib29sIHVuaXF1ZSwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBX
ZWJFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gY3JlYXRlSW5kZXgobmFtZSwga2V5UGF0aCwg
dW5pcXVlLCBmYWxzZSwgdHJhbnNhY3Rpb24sIGVjKTsgfQotICAgIFdlYklEQkluZGV4KiBjcmVh
dGVJbmRleChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYga2V5UGF0aCwg
Ym9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBX
ZWJFeGNlcHRpb25Db2RlJik7CisgICAgLy8gRklYTUU6IFJlbW92ZSBXZWJTdHJpbmcga2V5UGF0
aCBvdmVybG9hZCBvbmNlIGNhbGxlcnMgYXJlIHVwZGF0ZWQuCisgICAgLy8gaHR0cDovL3dlYmtp
dC5vcmcvYi84NDIwNworICAgIFdlYklEQkluZGV4KiBjcmVhdGVJbmRleChjb25zdCBXZWJTdHJp
bmcmLCBjb25zdCBXZWJTdHJpbmcmLCBib29sLCBib29sLCBjb25zdCBXZWJJREJUcmFuc2FjdGlv
biYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKKyAgICBXZWJJREJJbmRleCogY3JlYXRlSW5kZXgoY29u
c3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIHVu
aXF1ZSwgYm9vbCBtdWx0aUVudHJ5LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rp
b24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBjcmVhdGVJbmRleChuYW1lLCBrZXlQ
YXRoLnN0cmluZygpLCB1bmlxdWUsIG11bHRpRW50cnksIHRyYW5zYWN0aW9uLCBlYyk7IH0KICAg
ICBXZWJJREJJbmRleCogaW5kZXgoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBXZWJFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>