<?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>141345</bug_id>
          
          <creation_ts>2015-02-06 16:34:16 -0800</creation_ts>
          <short_desc>[WK2] Add logging to validate the network cache efficacy (Part 2)</short_desc>
          <delta_ts>2015-02-11 16:13:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>
          <dependson>141269</dependson>
    
    <dependson>141464</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1067453</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-06 16:34:16 -0800</bug_when>
    <thetext>Add diagnostic logging support from the NetworkProcess and use it to log information we need to validate the network cache efficacy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067455</commentid>
    <comment_count>1</comment_count>
      <attachid>246187</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-06 16:36:45 -0800</bug_when>
    <thetext>Created attachment 246187
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067863</commentid>
    <comment_count>2</comment_count>
      <attachid>246279</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-09 11:06:46 -0800</bug_when>
    <thetext>Created attachment 246279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067864</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-09 11:08:10 -0800</bug_when>
    <thetext>Attachment 246279 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:221:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCache.h:67:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067922</commentid>
    <comment_count>4</comment_count>
      <attachid>246279</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-02-09 15:04:01 -0800</bug_when>
    <thetext>Comment on attachment 246279
Patch

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

&gt; Source/WebKit2/NetworkProcess/cache/NetworkCache.h:67
&gt; -    void retrieve(const WebCore::ResourceRequest&amp;, std::function&lt;void (std::unique_ptr&lt;Entry&gt;)&gt;);
&gt; +    void retrieve(uint64_t webPageID, const WebCore::ResourceRequest&amp;, std::function&lt;void (std::unique_ptr&lt;Entry&gt;)&gt;);

Please make webPageID the seconds argument since ResourceRequest is the important one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067923</commentid>
    <comment_count>5</comment_count>
      <attachid>246294</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-09 15:08:08 -0800</bug_when>
    <thetext>Created attachment 246294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067925</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-09 15:09:00 -0800</bug_when>
    <thetext>Sam, can you please confirm you&apos;re OK with this? It should more or less match the feedback you gave me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067926</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-09 15:10:55 -0800</bug_when>
    <thetext>Attachment 246294 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:221:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCache.h:67:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068178</commentid>
    <comment_count>8</comment_count>
      <attachid>246294</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-10 16:56:22 -0800</bug_when>
    <thetext>Comment on attachment 246294
Patch

Rejecting attachment 246294 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
leCachedEntryFailureKeyEv&quot;, referenced from:
      __ZN6WebKit22NetworkCacheStatistics26recordRetrievedCachedEntryEyRKNS_15NetworkCacheKeyERKN7WebCore15ResourceRequestEb in NetworkCacheStatisticsCocoa.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **


The following build commands failed:
	Ld /Volumes/Data/EWS/WebKit/WebKitBuild/Release/WebKit.framework/Versions/A/WebKit normal x86_64
(1 failure)

Full output: http://webkit-queues.appspot.com/results/5455962949287936</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068200</commentid>
    <comment_count>9</comment_count>
      <attachid>246358</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-10 17:47:55 -0800</bug_when>
    <thetext>Created attachment 246358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068203</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-10 17:49:20 -0800</bug_when>
    <thetext>Attachment 246358 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:221:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCache.h:67:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068217</commentid>
    <comment_count>11</comment_count>
      <attachid>246358</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-10 18:31:51 -0800</bug_when>
    <thetext>Comment on attachment 246358
Patch

Clearing flags on attachment: 246358

Committed r179910: &lt;http://trac.webkit.org/changeset/179910&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068218</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-10 18:31:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068277</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-02-10 23:51:05 -0800</bug_when>
    <thetext>This caused a number of assertion failures on debug bots, I&apos;m going to roll out.

https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK2%20(Tests)/r179910%20(2024)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068280</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-10 23:56:38 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 141464</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068378</commentid>
    <comment_count>15</comment_count>
      <attachid>246358</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-11 09:45:20 -0800</bug_when>
    <thetext>Comment on attachment 246358
Patch

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

&gt; Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:236
&gt; +    MESSAGE_CHECK(page);

So this is the assertion we are sometimes hitting on debug bots. This is likely because by the time we make the logging decision in our background thread, the page is gone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068391</commentid>
    <comment_count>16</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-02-11 10:15:47 -0800</bug_when>
    <thetext>&gt; So this is the assertion we are sometimes hitting on debug bots. This is
&gt; likely because by the time we make the logging decision in our background
&gt; thread, the page is gone.

Moving page related code to NetworkResourceLoader level may be a good idea. Those get canceled when the page dies.

It is somewhat unfortunate that logging facility has to know about pages at all. Cache is not associated with any page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068411</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-11 11:32:41 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; So this is the assertion we are sometimes hitting on debug bots. This is
&gt; &gt; likely because by the time we make the logging decision in our background
&gt; &gt; thread, the page is gone.
&gt; 
&gt; Moving page related code to NetworkResourceLoader level may be a good idea.
&gt; Those get canceled when the page dies.
&gt; 
&gt; It is somewhat unfortunate that logging facility has to know about pages at
&gt; all. Cache is not associated with any page.

Agreed. I have just discussed this with Sam and he&apos;ll think about how we should refactor this. In the mean time though, I&apos;ll re-upload a patch that drops IPC messages for pages that are no longer in the map. We lose some logging for some rare cases but this is OK for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068418</commentid>
    <comment_count>18</comment_count>
      <attachid>246403</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-11 11:45:33 -0800</bug_when>
    <thetext>Created attachment 246403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068422</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-11 11:47:57 -0800</bug_when>
    <thetext>Attachment 246403 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:221:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:54:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCache.h:67:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 3 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068512</commentid>
    <comment_count>20</comment_count>
      <attachid>246403</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-02-11 15:48:43 -0800</bug_when>
    <thetext>Comment on attachment 246403
Patch

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

&gt; Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:58
&gt; +#define MESSAGE_CHECK_NO_ASSERT(condition) do \
&gt; +    if (!(condition)) { \
&gt; +        connection()-&gt;markCurrentlyDispatchedMessageAsInvalid(); \
&gt; +        return; \
&gt; +    } \
&gt; +while (0)

I don&apos;t think you want this.  These messages are not invalid, it&apos;s just that the page is closed.  I would instead null-check the page, and put this comment near it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068515</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-11 15:57:35 -0800</bug_when>
    <thetext>Committed r179972: &lt;http://trac.webkit.org/changeset/179972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068517</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-11 16:13:08 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Comment on attachment 246403 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=246403&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:58
&gt; &gt; +#define MESSAGE_CHECK_NO_ASSERT(condition) do \
&gt; &gt; +    if (!(condition)) { \
&gt; &gt; +        connection()-&gt;markCurrentlyDispatchedMessageAsInvalid(); \
&gt; &gt; +        return; \
&gt; &gt; +    } \
&gt; &gt; +while (0)
&gt; 
&gt; I don&apos;t think you want this.  These messages are not invalid, it&apos;s just that
&gt; the page is closed.  I would instead null-check the page, and put this
&gt; comment near it.

Ok, replaced with a simple null-check before landing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246187</attachid>
            <date>2015-02-06 16:36:45 -0800</date>
            <delta_ts>2015-02-09 11:06:40 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>141345_NetworkProcess_diagnosticLogging_wip.patch</filename>
            <type>text/plain</type>
            <size>7188</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApp
bmRleCA2OWE2MzgzLi4yYzkwYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zMDEsNiArMzAxLDIxIEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmdldE5ldHdvcmtQcm9jZXNzU3RhdGlzdGljcyh1aW50NjRfdCBjYWxsYmFja0lE
KQogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3NQb29sOjpEaWRHZXRTdGF0aXN0aWNzKGRhdGEsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAordm9p
ZCBOZXR3b3JrUHJvY2Vzczo6bG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3Qgd2ViUGFnZUlE
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCit7Cisg
ICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNjcmlw
dGlvbiksIDApOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0
VHlwZSByZXN1bHQpCit7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3VsdCksIDApOworfQorCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCB3
ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZSh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSksIDApOwor
fQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGUoKQogewogICAgIHBsYXRmb3JtVGVy
bWluYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAppbmRleCBhZDFlMjkxLi5hMjIwOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJE
b3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNs
dWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9E
aWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNzUs
NiArNzYsMTAgQEAgcHVibGljOgogICAgIERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2Vy
KCk7CiAgICAgYm9vbCBjYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb247IH0KIAorICAg
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOworICAgIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGlj
TG9nZ2luZ1Jlc3VsdFR5cGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpOworCiBwcml2YXRlOgogICAgIE5l
dHdvcmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IGQ1ZjMzZmMuLjUzNGUwZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yMzAsNiArMjMwLDMw
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NM
YXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29uCiAjZW5kaWYKIH0KIAordm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBXZWJQYWdl
UHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBNRVNT
QUdFX0NIRUNLKHBhZ2UpOworCisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UobWVzc2Fn
ZSwgZGVzY3JpcHRpb24pOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQoreworICAg
IFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwor
ICAgIE1FU1NBR0VfQ0hFQ0socGFnZSk7CisKKyAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQobWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3VsdCk7Cit9CisKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3Qg
cGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJv
Y2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKwor
ICAgIHBhZ2UtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKG1lc3NhZ2UsIGRlc2NyaXB0
aW9uLCB2YWx1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBjZDk5NmQxLi4zZjg5NjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCkBAIC05MSw2ICs5MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDcmVh
dGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURh
dGEodWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbik7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0
X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIHVpbnQzMl90IHJlc3VsdCk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKICAgICAvLyBQcm9jZXNzTGF1
bmNoZXI6OkNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vz
c0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDkzYTM3YjQuLmU5ZDhjZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsMTEgQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVu
Z2VJRCkKIAogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisK
KyAgICAjIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZworICAgIExvZ0RpYWdub3N0aWNNZXNz
YWdlKHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbikK
KyAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBTdHJp
bmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQpCisgICAgTG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2Fn
ZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmcgdmFsdWUpCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IGYzNGVlZTcuLjY0MDhhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTk4Niw2ICs5ODYsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTaG91
bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoYm9vbCk7CiAKKyAgICAvLyBEaWFnbm9zdGlj
IG1lc3NhZ2VzIGxvZ2dpbmcuCisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOworICAgIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KTsKKyAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisKIHByaXZhdGU6CiAgICAgV2Vi
UGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFdlYlBhZ2VDb25maWd1cmF0aW9uJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxp
emUoKTsKQEAgLTEyMzUsMTEgKzEyNDAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q3Vyc29y
KGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxN
b3VzZU1vdmVzKGJvb2wpOwogCi0gICAgLy8gRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5nLgot
ICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IHVpbnQzMl90IHJlc3VsdCk7Ci0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0
IFN0cmluZyYgdmFsdWUpOwotCiAgICAgdm9pZCBkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3Bh
cXVlVHlwZSwgYm9vbCBoYW5kbGVkKTsKICAgICB2b2lkIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVy
KCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246279</attachid>
            <date>2015-02-09 11:06:46 -0800</date>
            <delta_ts>2015-02-09 15:08:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141345-20150209110646.patch</filename>
            <type>text/plain</type>
            <size>24113</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGYzMDBiNDFlNjBmODk1
OTUwMGFlOTg3NmM4YjlhNGZjMzZmMWQwZi4uZGU5ZmU0YjE3ZDY0YjBkNDU5OGJiODlhMjAzNzM2
YWU4MWFkMjAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTAyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGxvZ2dpbmcg
dG8gdmFsaWRhdGUgdGhlIG5ldHdvcmsgY2FjaGUgZWZmaWNhY3kgKFBhcnQgMikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTM0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGZldyBtb3JlIGRp
YWdub3N0aWMgbG9nZ2luZyBrZXlzIGZvciB0aGUgbmV0d29yayBjYWNoZSBlZmZpY2FjeQorICAg
ICAgICBsb2dnaW5nLgorCiAyMDE1LTAyLTA5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBUcnkgdG8gZml4IGJ1aWxkIG9uIHBsYXRmb3JtcyB0aGF0IHVzZSBTVkcg
ImFsbCBpbiBvbmUiIGZpbGUgKFdpbmRvd3MpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDMxOGE1YmZiY2I3MGVl
YmNmNTY5NGRiOTg0M2I3Y2RjY2UxNzRhYzguLjdkMjMwMjlkZDc0NjBmMTI5NzA1NmM1NDRjZDZj
OWJjMWEwYWU1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNS0wMi0wOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBsb2dnaW5n
IHRvIHZhbGlkYXRlIHRoZSBuZXR3b3JrIGNhY2hlIGVmZmljYWN5IChQYXJ0IDIpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEzNDUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzE5NjMyMDgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgbWVzc2FnZXMgdG8gdmFs
aWRhdGUgdGhlIG5ldHdvcmsgY2FjaGUgZWZmaWNhY3kuCisgICAgICAgIFRoZSBmb2xsb3dpbmcg
NCBtZXNzYWdlcyBhcmUgYWRkZWQ6CisgICAgICAgIC0gbmV0d29ya0NhY2hlIC8gcmV0cmlldmFs
IC8gc3VjY2VzcworICAgICAgICAtIG5ldHdvcmtDYWNoZSAvIHJldHJpZXZhbCAvIHVuaGFuZGxl
ZFJlcXVlc3RGYWlsdXJlCisgICAgICAgIC0gbmV0d29ya0NhY2hlIC8gcmV0cmlldmFsIC8gbm9M
b25nZXJJbkNhY2hlRmFpbHVyZQorICAgICAgICAtIG5ldHdvcmtDYWNoZSAvIHJldHJpZXZhbCAv
IHVudXNhYmxlQ2FjaGVkRW50cnlGYWlsdXJlCisKKyAgICAgICAgVGhlIG1lc3NhZ2VzIGFyZSBz
ZW50IHZpYSBJUEMgZnJvbSB0aGUgTmV0d29ya1Byb2Nlc3MgdG8gdGhlIFVJUHJvY2VzcywKKyAg
ICAgICAgd2hlcmUgdGhlIFdlYlBhZ2VQcm94eSBjb2RlIGFscmVhZHkgaGFuZGxlcyBkaWFnbm9z
dGljIG1lc3NhZ2VzIHNlbnQgYnkKKyAgICAgICAgdGhlIFdlYlByb2Nlc3MuCisKIDIwMTUtMDIt
MDkgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFJF
R1JFU1NJT04ocjE3OTcwNSk6IDJuZC1sZXZlbCBpbnNwZWN0b3IgYXZhaWxhYmlsaXR5IG5vIGxv
bmdlciBjb250cm9sbGVkIGJ5IERldmVsb3BlckV4dHJhc0VuYWJsZWQgdXNlciBkZWZhdWx0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IGMwMDM3MzA2ODY0MDRhMTk3ZTlhNDkxNTU4MzlmMzI2MGEz
ZTgxZjMuLmUzMGQ1ZjI5NDVmOTVhOThmMDVkOTAyOGU4MDFjNmU1MWQ5MzUxN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC05NDUsNiArOTQ1LDExIEBAIF9fWk43V2ViQ29yZTIxQmxvYkRhdGFG
aWxlUmVmZXJlbmNlRDJFdgogX19aTjdXZWJDb3JlMjFDcm9zc1RocmVhZENvcGllckJhc2VJTGIw
RUxiMEVOM1dURjZTdHJpbmdFRTRjb3B5RVJLUzJfCiBfX1pON1dlYkNvcmUyMUNyb3NzVGhyZWFk
Q29waWVyQmFzZUlMYjBFTGIwRU5TXzE5SURCRGF0YWJhc2VNZXRhZGF0YUVFNGNvcHlFUktTMV8K
IF9fWk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlzMTB3ZWJWaWV3S2V5RXYKK19fWk43
V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlzMTJyZXRyaWV2YWxLZXlFdgorX19aTjdXZWJD
b3JlMjFEaWFnbm9zdGljTG9nZ2luZ0tleXMxNW5ldHdvcmtDYWNoZUtleUV2CitfX1pON1dlYkNv
cmUyMURpYWdub3N0aWNMb2dnaW5nS2V5czI1bm9Mb25nZXJJbkNhY2hlRmFpbHVyZUtleUV2Citf
X1pON1dlYkNvcmUyMURpYWdub3N0aWNMb2dnaW5nS2V5czI2dW5oYW5kbGVkUmVxdWVzdEZhaWx1
cmVLZXlFdgorX19aTjdXZWJDb3JlMjFEaWFnbm9zdGljTG9nZ2luZ0tleXMyOXVudXNhYmxlQ2Fj
aGVkRW50cnlGYWlsdXJlS2V5RXYKIF9fWk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
N3VzZXJLZXlFdgogX19aTjdXZWJDb3JlMjFEaWFnbm9zdGljTG9nZ2luZ0tleXM5em9vbWVkS2V5
RXYKIF9fWk43V2ViQ29yZTIxRGlzcGxheVJlZnJlc2hNb25pdG9yNDZoYW5kbGVEaXNwbGF5UmVm
cmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFkRVB2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKaW5kZXggNDY0NWY3MjBjMGI2ZDBkZGMxYzQ2NjA0
MDI2NWM5YjdlOTNkYjY5NS4uMzlmZjVkOGRlYmRlYjZkODA4NTc0YTBmOGE2MzAwMTM0ZGVjNzhh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcApA
QCAtMTAzLDYgKzEwMywxMSBAQCBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuYXZpZ2F0
aW9uS2V5KCkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuYXZpZ2F0aW9uIik7CiB9CiAKK1N0
cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgpCit7CisgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgibmV0d29ya0NhY2hlIik7Cit9CisKIFN0cmluZyBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6Om5ldHdvcmtLZXkoKQogewogICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5l
dHdvcmsiKTsKQEAgLTEzMyw2ICsxMzgsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6bm9Eb2N1bWVudExvYWRlcktleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm9Eb2N1
bWVudExvYWRlciIpOwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0xvbmdl
ckluQ2FjaGVGYWlsdXJlS2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJub0xvbmdl
ckluQ2FjaGVGYWlsdXJlIik7Cit9CisKIFN0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om90
aGVyS2V5KCkKIHsKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJvdGhlciIpOwpAQCAtMjk4LDYg
KzMwOCwxMSBAQCBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZVJlc3BvbnNl
S2V5KCkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJyZXNvdXJjZVJlc3BvbnNlIik7CiB9CiAK
K1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpCit7CisgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgicmV0cmlldmFsIik7Cit9CisKIFN0cmluZyBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnJldmFsaWRhdGluZ0tleSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
cmV2YWxpZGF0aW5nIik7CkBAIC0zMzMsNiArMzQ4LDE2IEBAIFN0cmluZyBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnN2Z0RvY3VtZW50S2V5KCkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdmdE
b2N1bWVudCIpOwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmhhbmRsZWRS
ZXF1ZXN0RmFpbHVyZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW5oYW5kbGVk
UmVxdWVzdEZhaWx1cmUiKTsKK30KKworU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6dW51
c2FibGVDYWNoZWRFbnRyeUZhaWx1cmVLZXkoKQoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
InVudXNhYmxlQ2FjaGVkRW50cnlGYWlsdXJlIik7Cit9CisKIFN0cmluZyBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnVudXNlZEtleSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW51c2Vk
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5
cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaAppbmRleCA3
ZDYzNzQ0NDIwN2EwY2NjNDU0MjVhYTZlNDAxYTIzZDcwMGNlMzdiLi44MWEyMDY1NDRiMjI3NjNi
OGY0YTQyNDQ1YjM0ZWRhNjI4MDg1ZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTYzLDEwICs2MywxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFN0cmluZyBtZWRpYUxvYWRpbmdGYWlsZWRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIG11c3RS
ZXZhbGlkYXRlSXNFeHBpcmVkS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBuYXZpZ2F0aW9uS2V5
KCk7CisgICAgc3RhdGljIFN0cmluZyBuZXR3b3JrQ2FjaGVLZXkoKTsKICAgICBzdGF0aWMgU3Ry
aW5nIG5ldHdvcmtLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIG5vQ2FjaGVLZXkoKTsKICAgICBz
dGF0aWMgU3RyaW5nIG5vQ3VycmVudEhpc3RvcnlJdGVtS2V5KCk7CiAgICAgc3RhdGljIFN0cmlu
ZyBub0RvY3VtZW50TG9hZGVyS2V5KCk7CisgICAgc3RhdGljIFN0cmluZyBub0xvbmdlckluQ2Fj
aGVGYWlsdXJlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBub1N0b3JlS2V5KCk7CiAgICAgc3Rh
dGljIFN0cmluZyBub3RJbk1lbW9yeUNhY2hlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBvdGhl
cktleSgpOwpAQCAtOTAsMTIgKzkyLDE1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIHJl
c291cmNlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyByZXNvdXJjZVJlcXVlc3RLZXkoKTsKICAg
ICBzdGF0aWMgU3RyaW5nIHJlc291cmNlUmVzcG9uc2VLZXkoKTsKKyAgICBzdGF0aWMgU3RyaW5n
IHJldHJpZXZhbEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcmV2YWxpZGF0aW5nS2V5KCk7CiAg
ICAgc3RhdGljIFN0cmluZyBzYW1lTG9hZEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgc2NyaXB0
S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBzb3VyY2VLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5n
IHN0eWxlU2hlZXRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHN2Z0RvY3VtZW50S2V5KCk7Cisg
ICAgc3RhdGljIFN0cmluZyB1bmhhbmRsZWRSZXF1ZXN0RmFpbHVyZUtleSgpOworICAgIHN0YXRp
YyBTdHJpbmcgdW51c2FibGVDYWNoZWRFbnRyeUZhaWx1cmVLZXkoKTsKICAgICBzdGF0aWMgU3Ry
aW5nIHVudXNlZEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgdW51c2VkUmVhc29uQ3JlZGVudGlh
bFNldHRpbmdzS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyB1bnVzZWRSZWFzb25FcnJvcktleSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CmluZGV4IDY5YTYzODM2NWUxZjUwOTQzNTU5NjdkMTc2ZDdiZmVmNDQwNjQzODguLjJjOTBiMDJj
MWM1NzVlYjUwMWVkY2MzN2UyNzM0ZTg0MzBhYzM0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTMwMSw2ICszMDEsMjEgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Z2V0TmV0d29ya1Byb2Nlc3NTdGF0aXN0aWNzKHVpbnQ2NF90
IGNhbGxiYWNrSUQpCiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzc1Bvb2w6OkRpZEdldFN0YXRpc3RpY3MoZGF0YSwgY2FsbGJhY2tJRCksIDAp
OwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2FnZSh1aW50NjRf
dCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbikKK3sKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIG1lc3Nh
Z2UsIGRlc2NyaXB0aW9uKSwgMCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdSZXN1bHRUeXBlIHJlc3VsdCkKK3sKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0KSwgMCk7
Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVl
KHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHZh
bHVlKSwgMCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnRlcm1pbmF0ZSgpCiB7CiAgICAg
cGxhdGZvcm1UZXJtaW5hdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGFkMWUyOTFkNDYzNjBhOTJhYmJiZTZkYTc1N2M2NzA5MWVk
OTI3MmIuLmM5ZGI2NDdkZjM4YTQ0MjUzOTM4MGE4Mzg2YTBiYzljYTQ0MjhkMjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CkBAIC03NSw2ICs3NiwxMSBAQCBwdWJsaWM6CiAgICAgRG93bmxvYWRNYW5h
Z2VyJiBkb3dubG9hZE1hbmFnZXIoKTsKICAgICBib29sIGNhbkhhbmRsZUhUVFBTU2VydmVyVHJ1
c3RFdmFsdWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0
RXZhbHVhdGlvbjsgfQogCisgICAgLy8gRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5nLgorICAg
IHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOworICAgIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGlj
TG9nZ2luZ1Jlc3VsdFR5cGUpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpOworCiBwcml2YXRlOgogICAgIE5l
dHdvcmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRl
eCAwMWFjOTM2ZWY0YmJhZWIxZWJhZTU4ODZlOWQ4YjA5MGFmNTdkNTY0Li44ZGZkZjI2YzY2NjBm
NWY5ZGNhMGM1OGI4Nzc2MTM5MDcxOTVlOWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE0MSw3ICsx
NDEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgIH0KIAogICAg
IFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGxvYWRlcih0aGlzKTsKLSAgICBOZXR3b3Jr
Q2FjaGU6OnNpbmdsZXRvbigpLnJldHJpZXZlKG9yaWdpbmFsUmVxdWVzdCgpLCBbbG9hZGVyXShz
dGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4gZW50cnkpIHsKKyAgICBOZXR3b3Jr
Q2FjaGU6OnNpbmdsZXRvbigpLnJldHJpZXZlKG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG9yaWdp
bmFsUmVxdWVzdCgpLCBbbG9hZGVyXShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRy
eT4gZW50cnkpIHsKICAgICAgICAgaWYgKGxvYWRlci0+aGFzT25lUmVmKCkpIHsKICAgICAgICAg
ICAgIC8vIFRoZSBsb2FkZXIgaGFzIGJlZW4gYWJvcnRlZCBhbmQgaXMgb25seSBoZWxkIGFsaXZl
IGJ5IHRoaXMgbGFtYmRhLgogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggZDQ3NzBh
YTZiNmNkZDIzZTRhZmVkODVjMmFhY2I5ZWYyODUzODcyMC4uZjFhYTAwNjNlODYwMTkzZTY3Y2Jh
MGQxN2VhMGE5M2UxYWZlYjQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC0yMTgsNyArMjE4LDcgQEAgc3RhdGlj
IE5ldHdvcmtDYWNoZUtleSBtYWtlQ2FjaGVLZXkoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogICAgIHJldHVybiBOZXR3b3JrQ2FjaGVLZXkocmVxdWVzdC5odHRwTWV0
aG9kKCksIHBhcnRpdGlvbiwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKSk7CiB9CiAKLXZvaWQgTmV0
d29ya0NhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgc3RkOjpmdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+KT4g
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUodWludDY0X3Qg
d2ViUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgc3RkOjpmdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+KT4gY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzRW5hYmxlZCgpKTsKIApAQCAtMjI3LDcgKzIyNyw3
IEBAIHZvaWQgTmV0d29ya0NhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgc3RkCiAgICAgTmV0d29ya0NhY2hlS2V5IHN0b3JhZ2VL
ZXkgPSBtYWtlQ2FjaGVLZXkob3JpZ2luYWxSZXF1ZXN0KTsKICAgICBpZiAoIWNhblJldHJpZXZl
KG9yaWdpbmFsUmVxdWVzdCkpIHsKICAgICAgICAgaWYgKG1fc3RhdGlzdGljcykKLSAgICAgICAg
ICAgIG1fc3RhdGlzdGljcy0+cmVjb3JkTm90VXNpbmdDYWNoZUZvclJlcXVlc3Qoc3RvcmFnZUtl
eSwgb3JpZ2luYWxSZXF1ZXN0KTsKKyAgICAgICAgICAgIG1fc3RhdGlzdGljcy0+cmVjb3JkTm90
VXNpbmdDYWNoZUZvclJlcXVlc3Qod2ViUGFnZUlELCBzdG9yYWdlS2V5LCBvcmlnaW5hbFJlcXVl
c3QpOwogCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwogICAgICAgICByZXR1
cm47CkBAIC0yMzYsMTIgKzIzNiwxMiBAQCB2b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZAogICAgIGF1
dG8gc3RhcnRUaW1lID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCk7CiAgICAgdW5z
aWduZWQgcHJpb3JpdHkgPSBvcmlnaW5hbFJlcXVlc3QucHJpb3JpdHkoKTsKIAotICAgIG1fc3Rv
cmFnZS0+cmV0cmlldmUoc3RvcmFnZUtleSwgcHJpb3JpdHksIFt0aGlzLCBvcmlnaW5hbFJlcXVl
c3QsIGNvbXBsZXRpb25IYW5kbGVyLCBzdGFydFRpbWUsIHN0b3JhZ2VLZXldKHN0ZDo6dW5pcXVl
X3B0cjxOZXR3b3JrQ2FjaGVTdG9yYWdlOjpFbnRyeT4gZW50cnkpIHsKKyAgICBtX3N0b3JhZ2Ut
PnJldHJpZXZlKHN0b3JhZ2VLZXksIHByaW9yaXR5LCBbdGhpcywgb3JpZ2luYWxSZXF1ZXN0LCBj
b21wbGV0aW9uSGFuZGxlciwgc3RhcnRUaW1lLCBzdG9yYWdlS2V5LCB3ZWJQYWdlSURdKHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGVTdG9yYWdlOjpFbnRyeT4gZW50cnkpIHsKICAgICAgICAg
aWYgKCFlbnRyeSkgewogICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJv
Y2Vzcykgbm90IGZvdW5kIGluIHN0b3JhZ2UiKTsKIAogICAgICAgICAgICAgaWYgKG1fc3RhdGlz
dGljcykKLSAgICAgICAgICAgICAgICBtX3N0YXRpc3RpY3MtPnJlY29yZFJldHJpZXZhbEZhaWx1
cmUoc3RvcmFnZUtleSwgb3JpZ2luYWxSZXF1ZXN0KTsKKyAgICAgICAgICAgICAgICBtX3N0YXRp
c3RpY3MtPnJlY29yZFJldHJpZXZhbEZhaWx1cmUod2ViUGFnZUlELCBzdG9yYWdlS2V5LCBvcmln
aW5hbFJlcXVlc3QpOwogCiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI0OSw3ICsyNDksNyBAQCB2b2lkIE5ldHdv
cmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIHN0ZAogICAgICAgICBhdXRvIGRlY29kZWRFbnRyeSA9IGRlY29kZVN0b3JhZ2VF
bnRyeSgqZW50cnksIG9yaWdpbmFsUmVxdWVzdCk7CiAgICAgICAgIGJvb2wgc3VjY2VzcyA9ICEh
ZGVjb2RlZEVudHJ5OwogICAgICAgICBpZiAobV9zdGF0aXN0aWNzKQotICAgICAgICAgICAgbV9z
dGF0aXN0aWNzLT5yZWNvcmRSZXRyaWV2ZWRDYWNoZWRFbnRyeShzdG9yYWdlS2V5LCBvcmlnaW5h
bFJlcXVlc3QsIHN1Y2Nlc3MpOworICAgICAgICAgICAgbV9zdGF0aXN0aWNzLT5yZWNvcmRSZXRy
aWV2ZWRDYWNoZWRFbnRyeSh3ZWJQYWdlSUQsIHN0b3JhZ2VLZXksIG9yaWdpbmFsUmVxdWVzdCwg
c3VjY2Vzcyk7CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgIGF1dG8gZWxhcHNlZE1TID0g
c3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3Rk
OjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLSBzdGFydFRpbWUpLmNvdW50KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
aCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmlu
ZGV4IDQwZTQzZmM3Yzk1ZWY3N2JlNWY4MDQ4Njc0MjQ3MzUwNTMwOWQxOTkuLjZlZTljMjczOWMy
MWE0MzQwNTc2NmMzNTMwNWRjMWY3NTUyZTgxOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1
YmxpYzoKICAgICAgICAgYm9vbCBuZWVkc1JldmFsaWRhdGlvbjsKICAgICB9OwogICAgIC8vIENv
bXBsZXRpb24gaGFuZGxlciBtYXkgZ2V0IGNhbGxlZCBiYWNrIHN5bmNocm9ub3VzbHkgb24gZmFp
bHVyZS4KLSAgICB2b2lkIHJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3RkOjp1bmlxdWVfcHRyPEVudHJ5Pik+KTsKKyAgICB2b2lk
IHJldHJpZXZlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jiwgc3RkOjpmdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9wdHI8RW50cnk+KT4pOwogCiAg
ICAgc3RydWN0IE1hcHBlZEJvZHkgewogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTdGF0aXN0aWNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmgKaW5kZXggYmI1MjM4NzhiZGVlOWJhZjExZjgzMDlkMjlkODI1
YjcyMjhjNmFmOC4uNjVjZmQ2YzAzZWIzYjIyZmQ2YTE1M2Y0ZDA1ZGI4Y2Q4ZmNmZDNjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3RhdGlzdGljcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuaApAQCAtNDQsOSArNDQsOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGNsZWFyKCk7CiAKLSAgICB2b2lkIHJlY29yZE5vdFVzaW5nQ2FjaGVGb3JSZXF1ZXN0KGNv
bnN0IE5ldHdvcmtDYWNoZUtleSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwot
ICAgIHZvaWQgcmVjb3JkUmV0cmlldmFsRmFpbHVyZShjb25zdCBOZXR3b3JrQ2FjaGVLZXkmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2b2lkIHJlY29yZFJldHJpZXZl
ZENhY2hlZEVudHJ5KGNvbnN0IE5ldHdvcmtDYWNoZUtleSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGJvb2wgc3VjY2Vzcyk7CisgICAgdm9pZCByZWNvcmROb3RVc2luZ0NhY2hl
Rm9yUmVxdWVzdCh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IE5ldHdvcmtDYWNoZUtleSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgcmVjb3JkUmV0cmlldmFs
RmFpbHVyZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IE5ldHdvcmtDYWNoZUtleSYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgcmVjb3JkUmV0cmlldmVkQ2Fj
aGVkRW50cnkodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBOZXR3b3JrQ2FjaGVLZXkmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIHN1Y2Nlc3MpOwogCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MoY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZVBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlU3RhdGlzdGljc0NvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljc0NvY29hLm1tCmluZGV4IDEyMjc5NDYx
MDdjZTJiYmZlZjQ4M2FhZTMwNzFlM2Y1Mjk2ZTQzNjIuLmMxM2ZkMGVlMTFlYTlkZTQ1NWI2YTA1
MDcxMjIyNWQ0M2JlZGQ0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzQ29jb2EubW0K
QEAgLTMxLDYgKzMxLDkgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRmlsZVN5c3RlbVBvc2l4LmgiCisjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dn
aW5nS2V5cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NRTGl0ZURhdGFiYXNlVHJhY2tlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlU3Rh
dGVtZW50Lmg+CkBAIC0xNjUsNDAgKzE2OCw0MiBAQCB2b2lkIE5ldHdvcmtDYWNoZVN0YXRpc3Rp
Y3M6OnNocmlua0lmTmVlZGVkKCkKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrQ2FjaGVTdGF0
aXN0aWNzOjpyZWNvcmROb3RVc2luZ0NhY2hlRm9yUmVxdWVzdChjb25zdCBOZXR3b3JrQ2FjaGVL
ZXkmIGtleSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBO
ZXR3b3JrQ2FjaGVTdGF0aXN0aWNzOjpyZWNvcmROb3RVc2luZ0NhY2hlRm9yUmVxdWVzdCh1aW50
NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IE5ldHdvcmtDYWNoZUtleSYga2V5LCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgU3RyaW5nIGhhc2ggPSBrZXkuaGFz
aEFzU3RyaW5nKCk7CiAgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnVybCgp
OwotICAgIHF1ZXJ5V2FzRXZlclJlcXVlc3RlZChoYXNoLCBbdGhpcywgaGFzaCwgcmVxdWVzdFVS
TF0oYm9vbCB3YXNFdmVyUmVxdWVzdGVkKSB7CisgICAgcXVlcnlXYXNFdmVyUmVxdWVzdGVkKGhh
c2gsIFt0aGlzLCBoYXNoLCByZXF1ZXN0VVJMLCB3ZWJQYWdlSURdKGJvb2wgd2FzRXZlclJlcXVl
c3RlZCkgewogICAgICAgICBpZiAod2FzRXZlclJlcXVlc3RlZCkgewotICAgICAgICAgICAgTE9H
KE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgJXMgd2FzIHByZXZpb3VzbHkgcmVxdWVz
dGVkIGJ1dCBpcyBub3QgaGFuZGxlZCBieSB0aGUgY2FjaGUiLCByZXF1ZXN0VVJMLnN0cmluZygp
LmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBEbyBkaWFnbm9zdGljIGxv
Z2dpbmcuCisgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSB3
ZWJQYWdlSUQgJWxsdTogJXMgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGJ1dCBpcyBub3QgaGFu
ZGxlZCBieSB0aGUgY2FjaGUiLCB3ZWJQYWdlSUQsIHJlcXVlc3RVUkwuc3RyaW5nKCkuYXNjaWko
KS5kYXRhKCkpOworICAgICAgICAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpyZXRyaWV2YWxLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmhh
bmRsZWRSZXF1ZXN0RmFpbHVyZUtleSgpKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBt
YXJrQXNSZXF1ZXN0ZWQoaGFzaCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya0NhY2hlU3Rh
dGlzdGljczo6cmVjb3JkUmV0cmlldmFsRmFpbHVyZShjb25zdCBOZXR3b3JrQ2FjaGVLZXkmIGtl
eSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBOZXR3b3Jr
Q2FjaGVTdGF0aXN0aWNzOjpyZWNvcmRSZXRyaWV2YWxGYWlsdXJlKHVpbnQ2NF90IHdlYlBhZ2VJ
RCwgY29uc3QgTmV0d29ya0NhY2hlS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKIHsKICAgICBTdHJpbmcgaGFzaCA9IGtleS5oYXNoQXNTdHJpbmcoKTsK
ICAgICBXZWJDb3JlOjpVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgcXVlcnlX
YXNFdmVyUmVxdWVzdGVkKGhhc2gsIFt0aGlzLCBoYXNoLCByZXF1ZXN0VVJMXShib29sIHdhc1By
ZXZpb3VzbHlSZXF1ZXN0ZWQpIHsKKyAgICBxdWVyeVdhc0V2ZXJSZXF1ZXN0ZWQoaGFzaCwgW3Ro
aXMsIGhhc2gsIHJlcXVlc3RVUkwsIHdlYlBhZ2VJRF0oYm9vbCB3YXNQcmV2aW91c2x5UmVxdWVz
dGVkKSB7CiAgICAgICAgIGlmICh3YXNQcmV2aW91c2x5UmVxdWVzdGVkKSB7Ci0gICAgICAgICAg
ICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSAlcyB3YXMgcHJldmlvdXNseSBj
YWNoZWQgYnV0IGlzIG5vIGxvbmdlciBpbiB0aGUgY2FjaGUiLCByZXF1ZXN0VVJMLnN0cmluZygp
LmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBEbyBkaWFnbm9zdGljIGxv
Z2dpbmcuCisgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSB3
ZWJQYWdlSUQgJWxsdTogJXMgd2FzIHByZXZpb3VzbHkgY2FjaGVkIGJ1dCBpcyBubyBsb25nZXIg
aW4gdGhlIGNhY2hlIiwgd2ViUGFnZUlELCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0
YSgpKTsKKyAgICAgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
S2V5czo6bmV0d29ya0NhY2hlS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
cmV0cmlldmFsS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9Mb25nZXJJ
bkNhY2hlRmFpbHVyZUtleSgpKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtYXJrQXNS
ZXF1ZXN0ZWQoaGFzaCk7CiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGlj
czo6cmVjb3JkUmV0cmlldmVkQ2FjaGVkRW50cnkoY29uc3QgTmV0d29ya0NhY2hlS2V5JiBrZXks
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBzdWNjZXNzKQor
dm9pZCBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzOjpyZWNvcmRSZXRyaWV2ZWRDYWNoZWRFbnRyeSh1
aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IE5ldHdvcmtDYWNoZUtleSYga2V5LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgc3VjY2VzcykKIHsKICAgICBXZWJD
b3JlOjpVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7Ci0gICAgaWYgKHN1Y2Nlc3MpCi0g
ICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpICVzIGlzIGluIHRoZSBj
YWNoZSBhbmQgaXMgdXNlZCIsIHJlcXVlc3RVUkwuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwot
ICAgIGVsc2UKLSAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgJXMg
aXMgaW4gdGhlIGNhY2hlIGJ1dCB3YXNuJ3QgdXNlZCIsIHJlcXVlc3RVUkwuc3RyaW5nKCkuYXNj
aWkoKS5kYXRhKCkpOwotICAgIC8vIEZJWE1FOiBEbyBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAg
aWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vz
cykgd2ViUGFnZUlEICVsbHU6ICVzIGlzIGluIHRoZSBjYWNoZSBhbmQgaXMgdXNlZCIsIHdlYlBh
Z2VJRCwgcmVxdWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIE5ldHdv
cmtQcm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQod2Vi
UGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgp
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIExP
RyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIHdlYlBhZ2VJRCAlbGx1OiAlcyBpcyBp
biB0aGUgY2FjaGUgYnV0IHdhc24ndCB1c2VkIiwgd2ViUGFnZUlELCByZXF1ZXN0VVJMLnN0cmlu
ZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigp
LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpyZXRyaWV2YWxLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojp1bnVzYWJsZUNhY2hlZEVudHJ5RmFpbHVyZUtleSgpKTsKKyAgICB9CiB9CiAKIHZvaWQgTmV0
d29ya0NhY2hlU3RhdGlzdGljczo6bWFya0FzUmVxdWVzdGVkKGNvbnN0IFN0cmluZyYgaGFzaCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKaW5kZXggZDVmMzNmY2M3MWFkNjI0MmEwMGE1YTlkM2MyY2IxZjAxYzQx
MDFlZS4uNTM0ZTBkOGVkNmIzNTllNGY0NTJlNDMzZWEzYTkyNTcyMTViMmI5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKQEAgLTIzMCw2ICsyMzAsMzAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpk
aWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb24KICNl
bmRpZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdl
KHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uKQoreworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6
d2ViUGFnZShwYWdlSUQpOworICAgIE1FU1NBR0VfQ0hFQ0socGFnZSk7CisKKyAgICBwYWdlLT5s
b2dEaWFnbm9zdGljTWVzc2FnZShtZXNzYWdlLCBkZXNjcmlwdGlvbik7Cit9CisKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCB1aW50MzJfdCByZXN1bHQpCit7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vz
c1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKworICAg
IHBhZ2UtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChtZXNzYWdlLCBkZXNjcmlwdGlv
biwgcmVzdWx0KTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBX
ZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAg
ICBNRVNTQUdFX0NIRUNLKHBhZ2UpOworCisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUobWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CmluZGV4IGNkOTk2ZDFiNmRkY2FlNzdkMTZmZThlOTliMTE5ZDQzOWZiN2IwMTcuLjNmODk2Mjc2
OTE3ZDMyYTRmYzgyNmJjZmRmYTQ2OGQ5YTg0MDg4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTkxLDYg
KzkxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YWNobWVudCYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCB1aW50NjRfdCBjaGFsbGVu
Z2VJRCk7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lE
KTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKKyAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KTsK
KyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBT
dHJpbmcmIHZhbHVlKTsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggOTNhMzdiNGVjY2YzNDUwMGIxZmNjMzVkMjAzYjI4YTlkNGYzNTMwZS4uZTlkOGNm
NjFlMzlkZTg0MGY2MTdkMWE3ZTE5MWNlMGM0ZDE3OTBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCwxMSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vz
c1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCiAgICAg
RGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKKworICAgICMgRGlhZ25v
c3RpYyBtZXNzYWdlcyBsb2dnaW5nCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3Qg
cGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uKQorICAgIExvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBT
dHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCkKKyAgICBMb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVz
Y3JpcHRpb24sIFN0cmluZyB2YWx1ZSkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjRkOWUy
Zjc4MjdkNjdmNjI5Nzc5MjAyNWJiMjhjMGNmMjgwYTFiNy4uYzkyY2E4OWJhMGQ2ZDhlNmI3MmRh
MWU0MWNjY2UzMDJmNTYzMGU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtOTg4LDYgKzk4OCwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFNob3VsZERp
c3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cyhib29sKTsKIAorICAgIC8vIERpYWdub3N0aWMgbWVz
c2FnZXMgbG9nZ2luZy4KKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7CisgICAgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQpOworICAgIHZvaWQgbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdl
UHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHBhZ2VJRCwgY29u
c3QgV2ViUGFnZUNvbmZpZ3VyYXRpb24mKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgp
OwpAQCAtMTIzNywxMSArMTI0Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29u
c3QgV2ViQ29yZTo6Q3Vyc29yJik7CiAgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCk7CiAKLSAgICAvLyBEaWFnbm9zdGljIG1lc3NhZ2VzIGxvZ2dpbmcuCi0gICAg
dm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24pOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVz
dWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWlu
dDMyX3QgcmVzdWx0KTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSk7Ci0KICAgICB2b2lkIGRpZFJlY2VpdmVFdmVudCh1aW50MzJfdCBvcGFxdWVU
eXBlLCBib29sIGhhbmRsZWQpOwogICAgIHZvaWQgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246294</attachid>
            <date>2015-02-09 15:08:08 -0800</date>
            <delta_ts>2015-02-10 17:47:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141345-20150209150809.patch</filename>
            <type>text/plain</type>
            <size>24123</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk2ZGNkZjlhODU4MGRi
MzE0NzYwMWEwMWNhMDdkOWM2NGRhNTBmNS4uOGZkYTkyOWU0MDUzODMxMzQ5NzhjZGQ4ZDI4Y2M1
YTgwZjYyYWMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTAyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGxvZ2dpbmcg
dG8gdmFsaWRhdGUgdGhlIG5ldHdvcmsgY2FjaGUgZWZmaWNhY3kgKFBhcnQgMikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTM0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEFkZCBhIGZldyBtb3JlIGRp
YWdub3N0aWMgbG9nZ2luZyBrZXlzIGZvciB0aGUgbmV0d29yayBjYWNoZSBlZmZpY2FjeQorICAg
ICAgICBsb2dnaW5nLgorCiAyMDE1LTAyLTA5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIERpc2FibGUgdGhlIGN1cnJlbnRUaW1lIGVzdGltYXRpb24g
Y29kZSBpbiBIVE1MTWVkaWFFbGVtZW50IGZvciBZb3NlbWl0ZSsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzMThh
NWJmYmNiNzBlZWJjZjU2OTRkYjk4NDNiN2NkY2NlMTc0YWM4Li5hN2IxNmM2YjAzM2ZjOWVjZjg2
YmIwNzFiZWY5MDhiZmZmNDA1OTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUt
MDItMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBB
ZGQgbG9nZ2luZyB0byB2YWxpZGF0ZSB0aGUgbmV0d29yayBjYWNoZSBlZmZpY2FjeSAoUGFydCAy
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMzQ1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTYzMjA4MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBBZGQgZGlhZ25vc3RpYyBsb2dnaW5nIG1lc3Nh
Z2VzIHRvIHZhbGlkYXRlIHRoZSBuZXR3b3JrIGNhY2hlIGVmZmljYWN5LgorICAgICAgICBUaGUg
Zm9sbG93aW5nIDQgbWVzc2FnZXMgYXJlIGFkZGVkOgorICAgICAgICAtIG5ldHdvcmtDYWNoZSAv
IHJldHJpZXZhbCAvIHN1Y2Nlc3MKKyAgICAgICAgLSBuZXR3b3JrQ2FjaGUgLyByZXRyaWV2YWwg
LyB1bmhhbmRsZWRSZXF1ZXN0RmFpbHVyZQorICAgICAgICAtIG5ldHdvcmtDYWNoZSAvIHJldHJp
ZXZhbCAvIG5vTG9uZ2VySW5DYWNoZUZhaWx1cmUKKyAgICAgICAgLSBuZXR3b3JrQ2FjaGUgLyBy
ZXRyaWV2YWwgLyB1bnVzYWJsZUNhY2hlZEVudHJ5RmFpbHVyZQorCisgICAgICAgIFRoZSBtZXNz
YWdlcyBhcmUgc2VudCB2aWEgSVBDIGZyb20gdGhlIE5ldHdvcmtQcm9jZXNzIHRvIHRoZSBVSVBy
b2Nlc3MsCisgICAgICAgIHdoZXJlIHRoZSBXZWJQYWdlUHJveHkgY29kZSBhbHJlYWR5IGhhbmRs
ZXMgZGlhZ25vc3RpYyBtZXNzYWdlcyBzZW50IGJ5CisgICAgICAgIHRoZSBXZWJQcm9jZXNzLgor
CiAyMDE1LTAyLTA5ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIxNzk3MDUpOiAybmQtbGV2ZWwgaW5zcGVjdG9yIGF2YWlsYWJp
bGl0eSBubyBsb25nZXIgY29udHJvbGxlZCBieSBEZXZlbG9wZXJFeHRyYXNFbmFibGVkIHVzZXIg
ZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjMDAzNzMwNjg2NDA0YTE5N2U5YTQ5MTU1
ODM5ZjMyNjBhM2U4MWYzLi5lMzBkNWYyOTQ1Zjk1YTk4ZjA1ZDkwMjhlODAxYzZlNTFkOTM1MTdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTQ1LDYgKzk0NSwxMSBAQCBfX1pON1dlYkNvcmUy
MUJsb2JEYXRhRmlsZVJlZmVyZW5jZUQyRXYKIF9fWk43V2ViQ29yZTIxQ3Jvc3NUaHJlYWRDb3Bp
ZXJCYXNlSUxiMEVMYjBFTjNXVEY2U3RyaW5nRUU0Y29weUVSS1MyXwogX19aTjdXZWJDb3JlMjFD
cm9zc1RocmVhZENvcGllckJhc2VJTGIwRUxiMEVOU18xOUlEQkRhdGFiYXNlTWV0YWRhdGFFRTRj
b3B5RVJLUzFfCiBfX1pON1dlYkNvcmUyMURpYWdub3N0aWNMb2dnaW5nS2V5czEwd2ViVmlld0tl
eUV2CitfX1pON1dlYkNvcmUyMURpYWdub3N0aWNMb2dnaW5nS2V5czEycmV0cmlldmFsS2V5RXYK
K19fWk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlzMTVuZXR3b3JrQ2FjaGVLZXlFdgor
X19aTjdXZWJDb3JlMjFEaWFnbm9zdGljTG9nZ2luZ0tleXMyNW5vTG9uZ2VySW5DYWNoZUZhaWx1
cmVLZXlFdgorX19aTjdXZWJDb3JlMjFEaWFnbm9zdGljTG9nZ2luZ0tleXMyNnVuaGFuZGxlZFJl
cXVlc3RGYWlsdXJlS2V5RXYKK19fWk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlzMjl1
bnVzYWJsZUNhY2hlZEVudHJ5RmFpbHVyZUtleUV2CiBfX1pON1dlYkNvcmUyMURpYWdub3N0aWNM
b2dnaW5nS2V5czd1c2VyS2V5RXYKIF9fWk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OXpvb21lZEtleUV2CiBfX1pON1dlYkNvcmUyMURpc3BsYXlSZWZyZXNoTW9uaXRvcjQ2aGFuZGxl
RGlzcGxheVJlZnJlc2hlZE5vdGlmaWNhdGlvbk9uTWFpblRocmVhZEVQdgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCmluZGV4IDQ2NDVmNzIwYzBiNmQw
ZGRjMWM0NjYwNDAyNjVjOWI3ZTkzZGI2OTUuLjM5ZmY1ZDhkZWJkZWI2ZDgwODU3NGEwZjhhNjMw
MDEzNGRlYzc4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5n
S2V5cy5jcHAKQEAgLTEwMyw2ICsxMDMsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6bmF2aWdhdGlvbktleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibmF2aWdhdGlvbiIp
OwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKQor
eworICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5ldHdvcmtDYWNoZSIpOworfQorCiBTdHJpbmcg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrS2V5KCkKIHsKICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJuZXR3b3JrIik7CkBAIC0xMzMsNiArMTM4LDExIEBAIFN0cmluZyBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6Om5vRG9jdW1lbnRMb2FkZXJLZXkoKQogICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoIm5vRG9jdW1lbnRMb2FkZXIiKTsKIH0KIAorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6bm9Mb25nZXJJbkNhY2hlRmFpbHVyZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgibm9Mb25nZXJJbkNhY2hlRmFpbHVyZSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpvdGhlcktleSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgib3RoZXIiKTsK
QEAgLTI5OCw2ICszMDgsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3Vy
Y2VSZXNwb25zZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgicmVzb3VyY2VSZXNwb25z
ZSIpOwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXRyaWV2YWxLZXkoKQor
eworICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInJldHJpZXZhbCIpOworfQorCiBTdHJpbmcgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpyZXZhbGlkYXRpbmdLZXkoKQogewogICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoInJldmFsaWRhdGluZyIpOwpAQCAtMzMzLDYgKzM0OCwxNiBAQCBTdHJpbmcgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpzdmdEb2N1bWVudEtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgic3ZnRG9jdW1lbnQiKTsKIH0KIAorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
dW5oYW5kbGVkUmVxdWVzdEZhaWx1cmVLZXkoKQoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
InVuaGFuZGxlZFJlcXVlc3RGYWlsdXJlIik7Cit9CisKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnVudXNhYmxlQ2FjaGVkRW50cnlGYWlsdXJlS2V5KCkKK3sKKyAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJ1bnVzYWJsZUNhY2hlZEVudHJ5RmFpbHVyZSIpOworfQorCiBTdHJpbmcgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjp1bnVzZWRLZXkoKQogewogICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoInVudXNlZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0tleXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
LmgKaW5kZXggN2Q2Mzc0NDQyMDdhMGNjYzQ1NDI1YWE2ZTQwMWEyM2Q3MDBjZTM3Yi4uODFhMjA2
NTQ0YjIyNzYzYjhmNGE0MjQ0NWIzNGVkYTYyODA4NWYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCkBAIC02MywxMCArNjMsMTIgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBTdHJpbmcgbWVkaWFMb2FkaW5nRmFpbGVkS2V5KCk7CiAgICAgc3RhdGljIFN0
cmluZyBtdXN0UmV2YWxpZGF0ZUlzRXhwaXJlZEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgbmF2
aWdhdGlvbktleSgpOworICAgIHN0YXRpYyBTdHJpbmcgbmV0d29ya0NhY2hlS2V5KCk7CiAgICAg
c3RhdGljIFN0cmluZyBuZXR3b3JrS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBub0NhY2hlS2V5
KCk7CiAgICAgc3RhdGljIFN0cmluZyBub0N1cnJlbnRIaXN0b3J5SXRlbUtleSgpOwogICAgIHN0
YXRpYyBTdHJpbmcgbm9Eb2N1bWVudExvYWRlcktleSgpOworICAgIHN0YXRpYyBTdHJpbmcgbm9M
b25nZXJJbkNhY2hlRmFpbHVyZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgbm9TdG9yZUtleSgp
OwogICAgIHN0YXRpYyBTdHJpbmcgbm90SW5NZW1vcnlDYWNoZUtleSgpOwogICAgIHN0YXRpYyBT
dHJpbmcgb3RoZXJLZXkoKTsKQEAgLTkwLDEyICs5MiwxNSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFN0cmluZyByZXNvdXJjZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcmVzb3VyY2VSZXF1ZXN0
S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyByZXNvdXJjZVJlc3BvbnNlS2V5KCk7CisgICAgc3Rh
dGljIFN0cmluZyByZXRyaWV2YWxLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHJldmFsaWRhdGlu
Z0tleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgc2FtZUxvYWRLZXkoKTsKICAgICBzdGF0aWMgU3Ry
aW5nIHNjcmlwdEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgc291cmNlS2V5KCk7CiAgICAgc3Rh
dGljIFN0cmluZyBzdHlsZVNoZWV0S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBzdmdEb2N1bWVu
dEtleSgpOworICAgIHN0YXRpYyBTdHJpbmcgdW5oYW5kbGVkUmVxdWVzdEZhaWx1cmVLZXkoKTsK
KyAgICBzdGF0aWMgU3RyaW5nIHVudXNhYmxlQ2FjaGVkRW50cnlGYWlsdXJlS2V5KCk7CiAgICAg
c3RhdGljIFN0cmluZyB1bnVzZWRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHVudXNlZFJlYXNv
bkNyZWRlbnRpYWxTZXR0aW5nc0tleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgdW51c2VkUmVhc29u
RXJyb3JLZXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAppbmRleCA2OWE2MzgzNjVlMWY1MDk0MzU1OTY3ZDE3NmQ3YmZlZjQ0MDY0Mzg4
Li4yYzkwYjAyYzFjNTc1ZWI1MDFlZGNjMzdlMjczNGU4NDMwYWMzNGQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zMDEsNiAr
MzAxLDIxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmdldE5ldHdvcmtQcm9jZXNzU3RhdGlzdGlj
cyh1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpEaWRHZXRTdGF0aXN0aWNzKGRhdGEsIGNhbGxi
YWNrSUQpLCAwKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2UodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24pCit7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFn
ZUlELCBtZXNzYWdlLCBkZXNjcmlwdGlvbiksIDApOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNz
Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3Qgd2ViUGFnZUlELCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRp
YWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQpCit7CisgICAgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6TG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHJl
c3VsdCksIDApOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2Ny
aXB0aW9uLCB2YWx1ZSksIDApOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGUo
KQogewogICAgIHBsYXRmb3JtVGVybWluYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBhZDFlMjkxZDQ2MzYwYTkyYWJiYmU2ZGE3
NTdjNjcwOTFlZDkyNzJiLi5jOWRiNjQ3ZGYzOGE0NDI1MzkzODBhODM4NmEwYmM5Y2E0NDI4ZDI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNzUsNiArNzYsMTEgQEAgcHVibGljOgogICAgIERv
d25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyKCk7CiAgICAgYm9vbCBjYW5IYW5kbGVIVFRQ
U1NlcnZlclRydXN0RXZhbHVhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY2FuSGFuZGxlSFRUUFNT
ZXJ2ZXJUcnVzdEV2YWx1YXRpb247IH0KIAorICAgIC8vIERpYWdub3N0aWMgbWVzc2FnZXMgbG9n
Z2luZy4KKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHdlYlBhZ2VJRCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKKyAgICB2
b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCB3ZWJQYWdlSUQsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6
RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKwogcHJpdmF0
ZToKICAgICBOZXR3b3JrUHJvY2VzcygpOwogICAgIH5OZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggMDFhYzkzNmVmNGJiYWViMWViYWU1ODg2ZTlkOGIwOTBhZjU3ZDU2NC4uYTNk
MGM4NmY4MTc3N2UwYTA1YzY3MWM5YWVlNjcyZDI2MDMxMmM5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC0xNDEsNyArMTQxLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAg
ICB9CiAKICAgICBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiBsb2FkZXIodGhpcyk7Ci0g
ICAgTmV0d29ya0NhY2hlOjpzaW5nbGV0b24oKS5yZXRyaWV2ZShvcmlnaW5hbFJlcXVlc3QoKSwg
W2xvYWRlcl0oc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6RW50cnk+IGVudHJ5KSB7Cisg
ICAgTmV0d29ya0NhY2hlOjpzaW5nbGV0b24oKS5yZXRyaWV2ZShvcmlnaW5hbFJlcXVlc3QoKSwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgW2xvYWRlcl0oc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtD
YWNoZTo6RW50cnk+IGVudHJ5KSB7CiAgICAgICAgIGlmIChsb2FkZXItPmhhc09uZVJlZigpKSB7
CiAgICAgICAgICAgICAvLyBUaGUgbG9hZGVyIGhhcyBiZWVuIGFib3J0ZWQgYW5kIGlzIG9ubHkg
aGVsZCBhbGl2ZSBieSB0aGlzIGxhbWJkYS4KICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmlu
ZGV4IGQ0NzcwYWE2YjZjZGQyM2U0YWZlZDg1YzJhYWNiOWVmMjg1Mzg3MjAuLjMzYjE2NTYzY2U1
OWNlZTFkZmFhNjEwZmIyYTZlNGU1OTI1MGFmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMjE4LDcgKzIxOCw3
IEBAIHN0YXRpYyBOZXR3b3JrQ2FjaGVLZXkgbWFrZUNhY2hlS2V5KGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICByZXR1cm4gTmV0d29ya0NhY2hlS2V5KHJlcXVl
c3QuaHR0cE1ldGhvZCgpLCBwYXJ0aXRpb24sIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpOwogfQog
Ci12b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3RkOjp1bmlxdWVfcHRy
PEVudHJ5Pik+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ2FjaGU6OnJldHJpZXZl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCB1aW50NjRf
dCB3ZWJQYWdlSUQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3RkOjp1bmlxdWVfcHRyPEVudHJ5Pik+
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc0VuYWJsZWQoKSk7CiAKQEAgLTIy
Nyw3ICsyMjcsNyBAQCB2b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZAogICAgIE5ldHdvcmtDYWNoZUtl
eSBzdG9yYWdlS2V5ID0gbWFrZUNhY2hlS2V5KG9yaWdpbmFsUmVxdWVzdCk7CiAgICAgaWYgKCFj
YW5SZXRyaWV2ZShvcmlnaW5hbFJlcXVlc3QpKSB7CiAgICAgICAgIGlmIChtX3N0YXRpc3RpY3Mp
Ci0gICAgICAgICAgICBtX3N0YXRpc3RpY3MtPnJlY29yZE5vdFVzaW5nQ2FjaGVGb3JSZXF1ZXN0
KHN0b3JhZ2VLZXksIG9yaWdpbmFsUmVxdWVzdCk7CisgICAgICAgICAgICBtX3N0YXRpc3RpY3Mt
PnJlY29yZE5vdFVzaW5nQ2FjaGVGb3JSZXF1ZXN0KHdlYlBhZ2VJRCwgc3RvcmFnZUtleSwgb3Jp
Z2luYWxSZXF1ZXN0KTsKIAogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjM2LDEyICsyMzYsMTIgQEAgdm9pZCBOZXR3b3JrQ2FjaGU6OnJl
dHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBz
dGQKICAgICBhdXRvIHN0YXJ0VGltZSA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygp
OwogICAgIHVuc2lnbmVkIHByaW9yaXR5ID0gb3JpZ2luYWxSZXF1ZXN0LnByaW9yaXR5KCk7CiAK
LSAgICBtX3N0b3JhZ2UtPnJldHJpZXZlKHN0b3JhZ2VLZXksIHByaW9yaXR5LCBbdGhpcywgb3Jp
Z2luYWxSZXF1ZXN0LCBjb21wbGV0aW9uSGFuZGxlciwgc3RhcnRUaW1lLCBzdG9yYWdlS2V5XShz
dGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlU3RvcmFnZTo6RW50cnk+IGVudHJ5KSB7CisgICAg
bV9zdG9yYWdlLT5yZXRyaWV2ZShzdG9yYWdlS2V5LCBwcmlvcml0eSwgW3RoaXMsIG9yaWdpbmFs
UmVxdWVzdCwgY29tcGxldGlvbkhhbmRsZXIsIHN0YXJ0VGltZSwgc3RvcmFnZUtleSwgd2ViUGFn
ZUlEXShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlU3RvcmFnZTo6RW50cnk+IGVudHJ5KSB7
CiAgICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIo
TmV0d29ya1Byb2Nlc3MpIG5vdCBmb3VuZCBpbiBzdG9yYWdlIik7CiAKICAgICAgICAgICAgIGlm
IChtX3N0YXRpc3RpY3MpCi0gICAgICAgICAgICAgICAgbV9zdGF0aXN0aWNzLT5yZWNvcmRSZXRy
aWV2YWxGYWlsdXJlKHN0b3JhZ2VLZXksIG9yaWdpbmFsUmVxdWVzdCk7CisgICAgICAgICAgICAg
ICAgbV9zdGF0aXN0aWNzLT5yZWNvcmRSZXRyaWV2YWxGYWlsdXJlKHdlYlBhZ2VJRCwgc3RvcmFn
ZUtleSwgb3JpZ2luYWxSZXF1ZXN0KTsKIAogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
bnVsbHB0cik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNDksNyArMjQ5LDcgQEAg
dm9pZCBOZXR3b3JrQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgb3JpZ2luYWxSZXF1ZXN0LCBzdGQKICAgICAgICAgYXV0byBkZWNvZGVkRW50cnkgPSBkZWNv
ZGVTdG9yYWdlRW50cnkoKmVudHJ5LCBvcmlnaW5hbFJlcXVlc3QpOwogICAgICAgICBib29sIHN1
Y2Nlc3MgPSAhIWRlY29kZWRFbnRyeTsKICAgICAgICAgaWYgKG1fc3RhdGlzdGljcykKLSAgICAg
ICAgICAgIG1fc3RhdGlzdGljcy0+cmVjb3JkUmV0cmlldmVkQ2FjaGVkRW50cnkoc3RvcmFnZUtl
eSwgb3JpZ2luYWxSZXF1ZXN0LCBzdWNjZXNzKTsKKyAgICAgICAgICAgIG1fc3RhdGlzdGljcy0+
cmVjb3JkUmV0cmlldmVkQ2FjaGVkRW50cnkod2ViUGFnZUlELCBzdG9yYWdlS2V5LCBvcmlnaW5h
bFJlcXVlc3QsIHN1Y2Nlc3MpOwogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBhdXRvIGVs
YXBzZWRNUyA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHM+KHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnRUaW1lKS5jb3Vu
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGUuaAppbmRleCA0MGU0M2ZjN2M5NWVmNzdiZTVmODA0ODY3NDI0NzM1MDUzMDlkMTk5Li40
YWYzMTg3MTllOGU2NmZiMGRkZWJlYzkwN2RiM2RiNzE2ZjUxNTdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtNjQsNyAr
NjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbmVlZHNSZXZhbGlkYXRpb247CiAgICAgfTsK
ICAgICAvLyBDb21wbGV0aW9uIGhhbmRsZXIgbWF5IGdldCBjYWxsZWQgYmFjayBzeW5jaHJvbm91
c2x5IG9uIGZhaWx1cmUuCi0gICAgdm9pZCByZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKHN0ZDo6dW5pcXVlX3B0cjxFbnRyeT4pPik7
CisgICAgdm9pZCByZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50
NjRfdCB3ZWJQYWdlSUQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3RkOjp1bmlxdWVfcHRyPEVudHJ5
Pik+KTsKIAogICAgIHN0cnVjdCBNYXBwZWRCb2R5IHsKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JF
U09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlU3RhdGlzdGljcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5oCmluZGV4IGJiNTIzODc4YmRlZTliYWYxMWY4
MzA5ZDI5ZDgyNWI3MjI4YzZhZjguLjY1Y2ZkNmMwM2ViM2IyMmZkNmExNTNmNGQwNWRiOGNkOGZj
ZmQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmgKQEAgLTQ0LDkgKzQ0LDkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBjbGVhcigpOwogCi0gICAgdm9pZCByZWNvcmROb3RVc2luZ0NhY2hlRm9y
UmVxdWVzdChjb25zdCBOZXR3b3JrQ2FjaGVLZXkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKTsKLSAgICB2b2lkIHJlY29yZFJldHJpZXZhbEZhaWx1cmUoY29uc3QgTmV0d29ya0Nh
Y2hlS2V5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgdm9pZCByZWNv
cmRSZXRyaWV2ZWRDYWNoZWRFbnRyeShjb25zdCBOZXR3b3JrQ2FjaGVLZXkmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIHN1Y2Nlc3MpOworICAgIHZvaWQgcmVjb3JkTm90
VXNpbmdDYWNoZUZvclJlcXVlc3QodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBOZXR3b3JrQ2Fj
aGVLZXkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIHJlY29y
ZFJldHJpZXZhbEZhaWx1cmUodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBOZXR3b3JrQ2FjaGVL
ZXkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIHJlY29yZFJl
dHJpZXZlZENhY2hlZEVudHJ5KHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgTmV0d29ya0NhY2hl
S2V5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBzdWNjZXNzKTsKIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzKGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3NDb2NvYS5tbQppbmRl
eCAxMjI3OTQ2MTA3Y2UyYmJmZWY0ODNhYWUzMDcxZTNmNTI5NmU0MzYyLi5jMTNmZDBlZTExZWE5
ZGU0NTViNmEwNTA3MTIyMjVkNDNiZWRkNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGlj
c0NvY29hLm1tCkBAIC0zMSw2ICszMSw5IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUZpbGVTeXN0ZW1Qb3Np
eC5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaWFn
bm9zdGljTG9nZ2luZ0tleXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NRTGl0ZVN0YXRlbWVudC5oPgpAQCAtMTY1LDQwICsxNjgsNDIgQEAgdm9pZCBOZXR3b3JrQ2Fj
aGVTdGF0aXN0aWNzOjpzaHJpbmtJZk5lZWRlZCgpCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29y
a0NhY2hlU3RhdGlzdGljczo6cmVjb3JkTm90VXNpbmdDYWNoZUZvclJlcXVlc3QoY29uc3QgTmV0
d29ya0NhY2hlS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3ZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6cmVjb3JkTm90VXNpbmdDYWNoZUZvclJl
cXVlc3QodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBOZXR3b3JrQ2FjaGVLZXkmIGtleSwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFN0cmluZyBoYXNo
ID0ga2V5Lmhhc2hBc1N0cmluZygpOwogICAgIFdlYkNvcmU6OlVSTCByZXF1ZXN0VVJMID0gcmVx
dWVzdC51cmwoKTsKLSAgICBxdWVyeVdhc0V2ZXJSZXF1ZXN0ZWQoaGFzaCwgW3RoaXMsIGhhc2gs
IHJlcXVlc3RVUkxdKGJvb2wgd2FzRXZlclJlcXVlc3RlZCkgeworICAgIHF1ZXJ5V2FzRXZlclJl
cXVlc3RlZChoYXNoLCBbdGhpcywgaGFzaCwgcmVxdWVzdFVSTCwgd2ViUGFnZUlEXShib29sIHdh
c0V2ZXJSZXF1ZXN0ZWQpIHsKICAgICAgICAgaWYgKHdhc0V2ZXJSZXF1ZXN0ZWQpIHsKLSAgICAg
ICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpICVzIHdhcyBwcmV2aW91
c2x5IHJlcXVlc3RlZCBidXQgaXMgbm90IGhhbmRsZWQgYnkgdGhlIGNhY2hlIiwgcmVxdWVzdFVS
TC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogRG8gZGlh
Z25vc3RpYyBsb2dnaW5nLgorICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3Jr
UHJvY2Vzcykgd2ViUGFnZUlEICVsbHU6ICVzIHdhcyBwcmV2aW91c2x5IHJlcXVlc3RlZCBidXQg
aXMgbm90IGhhbmRsZWQgYnkgdGhlIGNhY2hlIiwgd2ViUGFnZUlELCByZXF1ZXN0VVJMLnN0cmlu
ZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0
b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRp
YWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0
aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
S2V5czo6dW5oYW5kbGVkUmVxdWVzdEZhaWx1cmVLZXkoKSk7CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgbWFya0FzUmVxdWVzdGVkKGhhc2gpOwogICAgIH0pOwogfQogCi12b2lkIE5ldHdv
cmtDYWNoZVN0YXRpc3RpY3M6OnJlY29yZFJldHJpZXZhbEZhaWx1cmUoY29uc3QgTmV0d29ya0Nh
Y2hlS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3Zv
aWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6cmVjb3JkUmV0cmlldmFsRmFpbHVyZSh1aW50NjRf
dCB3ZWJQYWdlSUQsIGNvbnN0IE5ldHdvcmtDYWNoZUtleSYga2V5LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgU3RyaW5nIGhhc2ggPSBrZXkuaGFzaEFz
U3RyaW5nKCk7CiAgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnVybCgpOwot
ICAgIHF1ZXJ5V2FzRXZlclJlcXVlc3RlZChoYXNoLCBbdGhpcywgaGFzaCwgcmVxdWVzdFVSTF0o
Ym9vbCB3YXNQcmV2aW91c2x5UmVxdWVzdGVkKSB7CisgICAgcXVlcnlXYXNFdmVyUmVxdWVzdGVk
KGhhc2gsIFt0aGlzLCBoYXNoLCByZXF1ZXN0VVJMLCB3ZWJQYWdlSURdKGJvb2wgd2FzUHJldmlv
dXNseVJlcXVlc3RlZCkgewogICAgICAgICBpZiAod2FzUHJldmlvdXNseVJlcXVlc3RlZCkgewot
ICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgJXMgd2FzIHBy
ZXZpb3VzbHkgY2FjaGVkIGJ1dCBpcyBubyBsb25nZXIgaW4gdGhlIGNhY2hlIiwgcmVxdWVzdFVS
TC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogRG8gZGlh
Z25vc3RpYyBsb2dnaW5nLgorICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3Jr
UHJvY2Vzcykgd2ViUGFnZUlEICVsbHU6ICVzIHdhcyBwcmV2aW91c2x5IGNhY2hlZCBidXQgaXMg
bm8gbG9uZ2VyIGluIHRoZSBjYWNoZSIsIHdlYlBhZ2VJRCwgcmVxdWVzdFVSTC5zdHJpbmcoKS5h
c2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCku
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUod2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9z
dGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
Om5vTG9uZ2VySW5DYWNoZUZhaWx1cmVLZXkoKSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgbWFya0FzUmVxdWVzdGVkKGhhc2gpOwogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtDYWNo
ZVN0YXRpc3RpY3M6OnJlY29yZFJldHJpZXZlZENhY2hlZEVudHJ5KGNvbnN0IE5ldHdvcmtDYWNo
ZUtleSYga2V5LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wg
c3VjY2VzcykKK3ZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6cmVjb3JkUmV0cmlldmVkQ2Fj
aGVkRW50cnkodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBOZXR3b3JrQ2FjaGVLZXkmIGtleSwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHN1Y2Nlc3MpCiB7
CiAgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0LnVybCgpOwotICAgIGlmIChz
dWNjZXNzKQotICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSAlcyBp
cyBpbiB0aGUgY2FjaGUgYW5kIGlzIHVzZWQiLCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCku
ZGF0YSgpKTsKLSAgICBlbHNlCi0gICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1By
b2Nlc3MpICVzIGlzIGluIHRoZSBjYWNoZSBidXQgd2Fzbid0IHVzZWQiLCByZXF1ZXN0VVJMLnN0
cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAvLyBGSVhNRTogRG8gZGlhZ25vc3RpYyBsb2dn
aW5nLgorICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0
d29ya1Byb2Nlc3MpIHdlYlBhZ2VJRCAlbGx1OiAlcyBpcyBpbiB0aGUgY2FjaGUgYW5kIGlzIHVz
ZWQiLCB3ZWJQYWdlSUQsIHJlcXVlc3RVUkwuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAg
ICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3Jr
Q2FjaGVLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXRyaWV2YWxLZXko
KSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSB3ZWJQYWdlSUQgJWxs
dTogJXMgaXMgaW4gdGhlIGNhY2hlIGJ1dCB3YXNuJ3QgdXNlZCIsIHdlYlBhZ2VJRCwgcmVxdWVz
dFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpz
aW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh3ZWJQYWdlSUQsIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIFdlYkNvcmU6OkRp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6dW51c2FibGVDYWNoZWRFbnRyeUZhaWx1cmVLZXkoKSk7CisgICAgfQogfQog
CiB2b2lkIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3M6Om1hcmtBc1JlcXVlc3RlZChjb25zdCBTdHJp
bmcmIGhhc2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ1ZjMzZmNjNzFhZDYyNDJhMDBhNWE5ZDNj
MmNiMWYwMWM0MTAxZWUuLjUzNGUwZDhlZDZiMzU5ZTRmNDUyZTQzM2VhM2E5MjU3MjE1YjJiOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yMzAsNiArMjMwLDMwIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQ
Qzo6Q29uCiAjZW5kaWYKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9j
ZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKHBhZ2UpOworCisg
ICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UobWVzc2FnZSwgZGVzY3JpcHRpb24pOworfQor
Cit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQoreworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIE1FU1NBR0VfQ0hFQ0socGFn
ZSk7CisKKyAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQobWVzc2FnZSwg
ZGVzY3JpcHRpb24sIHJlc3VsdCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUp
Cit7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBh
Z2VJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKworICAgIHBhZ2UtPmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaAppbmRleCBjZDk5NmQxYjZkZGNhZTc3ZDE2ZmU4ZTk5YjExOWQ0MzlmYjdiMDE3
Li4zZjg5NjI3NjkxN2QzMmE0ZmM4MjZiY2ZkZmE0NjhkOWE4NDA4OGMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CkBAIC05MSw2ICs5MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgdWludDY0
X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3Qg
Y2FsbGJhY2tJRCk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7Cisg
ICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90
IHJlc3VsdCk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
biwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKICAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVu
dAogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwg
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDkzYTM3YjRlY2NmMzQ1MDBiMWZjYzM1ZDIwM2IyOGE5ZDRmMzUz
MGUuLmU5ZDhjZjYxZTM5ZGU4NDBmNjE3ZDFhN2UxOTFjZTBjNGQxNzkwZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsMTEgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJ
RCkKIAogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisKKyAg
ICAjIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZworICAgIExvZ0RpYWdub3N0aWNNZXNzYWdl
KHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbikKKyAg
ICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBTdHJpbmcg
bWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQpCisgICAgTG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwg
U3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmcgdmFsdWUpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDI0ZDllMmY3ODI3ZDY3ZjYyOTc3OTIwMjViYjI4YzBjZjI4MGExYjcuLmM5MmNhODliYTBk
NmQ4ZTZiNzJkYTFlNDFjY2NlMzAyZjU2MzBlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTk4OCw2ICs5ODgsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRTaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoYm9vbCk7CiAKKyAgICAvLyBEaWFn
bm9zdGljIG1lc3NhZ2VzIGxvZ2dpbmcuCisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOworICAgIHZv
aWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KTsKKyAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisKIHByaXZhdGU6CiAg
ICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYlBhZ2VDb25maWd1cmF0aW9uJik7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemUoKTsKQEAgLTEyMzcsMTEgKzEyNDIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0
Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVu
VW50aWxNb3VzZU1vdmVzKGJvb2wpOwogCi0gICAgLy8gRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dn
aW5nLgotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIHVpbnQzMl90IHJlc3VsdCk7Ci0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24s
IGNvbnN0IFN0cmluZyYgdmFsdWUpOwotCiAgICAgdm9pZCBkaWRSZWNlaXZlRXZlbnQodWludDMy
X3Qgb3BhcXVlVHlwZSwgYm9vbCBoYW5kbGVkKTsKICAgICB2b2lkIHN0b3BSZXNwb25zaXZlbmVz
c1RpbWVyKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246358</attachid>
            <date>2015-02-10 17:47:55 -0800</date>
            <delta_ts>2015-02-11 11:45:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141345-20150210174759.patch</filename>
            <type>text/plain</type>
            <size>24711</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBjYzhlMDRlMWUwNmNm
ZDdiZTdiZWMwMDBjZTM2MzYwYmNkZmRjMC4uZThjYjkxZDkyYzBmOGVlNDFlNDlmYmM1NmJjOGRl
YjE4ZGVjMGEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTAyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGxvZ2dpbmcg
dG8gdmFsaWRhdGUgdGhlIG5ldHdvcmsgY2FjaGUgZWZmaWNhY3kgKFBhcnQgMikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTM0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEFkZCBhIGZldyBtb3JlIGRp
YWdub3N0aWMgbG9nZ2luZyBrZXlzIGZvciB0aGUgbmV0d29yayBjYWNoZSBlZmZpY2FjeQorICAg
ICAgICBsb2dnaW5nLgorCiAyMDE1LTAyLTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGJpbmRpbmdzIHRlc3RzIGFmdGVyIHIxNzk4
ODYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOTU5YWM3NGU3YTRkYTYxM2QwNDNjNzgzNTUzYmI3MGFjYjM1MTVk
MC4uNmU2ZmVmNWIzY2NkOTM2MTc3ZmU2YjU3ZDVmYTY1YjFkOGE3OGI2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDE1LTAyLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dLMl0gQWRkIGxvZ2dpbmcgdG8gdmFsaWRhdGUgdGhlIG5ldHdvcmsg
Y2FjaGUgZWZmaWNhY3kgKFBhcnQgMikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MTM0NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk2MzIwODA+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgQWRkIGRp
YWdub3N0aWMgbG9nZ2luZyBtZXNzYWdlcyB0byB2YWxpZGF0ZSB0aGUgbmV0d29yayBjYWNoZSBl
ZmZpY2FjeS4KKyAgICAgICAgVGhlIGZvbGxvd2luZyA0IG1lc3NhZ2VzIGFyZSBhZGRlZDoKKyAg
ICAgICAgLSBuZXR3b3JrQ2FjaGUgLyByZXRyaWV2YWwgLyBzdWNjZXNzCisgICAgICAgIC0gbmV0
d29ya0NhY2hlIC8gcmV0cmlldmFsIC8gdW5oYW5kbGVkUmVxdWVzdEZhaWx1cmUKKyAgICAgICAg
LSBuZXR3b3JrQ2FjaGUgLyByZXRyaWV2YWwgLyBub0xvbmdlckluQ2FjaGVGYWlsdXJlCisgICAg
ICAgIC0gbmV0d29ya0NhY2hlIC8gcmV0cmlldmFsIC8gdW51c2FibGVDYWNoZWRFbnRyeUZhaWx1
cmUKKworICAgICAgICBUaGUgbWVzc2FnZXMgYXJlIHNlbnQgdmlhIElQQyBmcm9tIHRoZSBOZXR3
b3JrUHJvY2VzcyB0byB0aGUgVUlQcm9jZXNzLAorICAgICAgICB3aGVyZSB0aGUgV2ViUGFnZVBy
b3h5IGNvZGUgYWxyZWFkeSBoYW5kbGVzIGRpYWdub3N0aWMgbWVzc2FnZXMgc2VudCBieQorICAg
ICAgICB0aGUgV2ViUHJvY2Vzcy4KKwogMjAxNS0wMi0xMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTc3MDI2ND4gU3RhcnRpbmcg
YSBuYXZpZ2F0aW9uIGdlc3R1cmUgZGlzbWlzc2VzIHRoZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCBjMDAzNzMwNjg2NDA0YTE5N2U5YTQ5MTU1ODM5ZjMyNjBhM2U4MWYzLi5lMzBk
NWYyOTQ1Zjk1YTk4ZjA1ZDkwMjhlODAxYzZlNTFkOTM1MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtOTQ1LDYgKzk0NSwxMSBAQCBfX1pON1dlYkNvcmUyMUJsb2JEYXRhRmlsZVJlZmVyZW5j
ZUQyRXYKIF9fWk43V2ViQ29yZTIxQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSUxiMEVMYjBFTjNXVEY2
U3RyaW5nRUU0Y29weUVSS1MyXwogX19aTjdXZWJDb3JlMjFDcm9zc1RocmVhZENvcGllckJhc2VJ
TGIwRUxiMEVOU18xOUlEQkRhdGFiYXNlTWV0YWRhdGFFRTRjb3B5RVJLUzFfCiBfX1pON1dlYkNv
cmUyMURpYWdub3N0aWNMb2dnaW5nS2V5czEwd2ViVmlld0tleUV2CitfX1pON1dlYkNvcmUyMURp
YWdub3N0aWNMb2dnaW5nS2V5czEycmV0cmlldmFsS2V5RXYKK19fWk43V2ViQ29yZTIxRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzMTVuZXR3b3JrQ2FjaGVLZXlFdgorX19aTjdXZWJDb3JlMjFEaWFnbm9z
dGljTG9nZ2luZ0tleXMyNW5vTG9uZ2VySW5DYWNoZUZhaWx1cmVLZXlFdgorX19aTjdXZWJDb3Jl
MjFEaWFnbm9zdGljTG9nZ2luZ0tleXMyNnVuaGFuZGxlZFJlcXVlc3RGYWlsdXJlS2V5RXYKK19f
Wk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlzMjl1bnVzYWJsZUNhY2hlZEVudHJ5RmFp
bHVyZUtleUV2CiBfX1pON1dlYkNvcmUyMURpYWdub3N0aWNMb2dnaW5nS2V5czd1c2VyS2V5RXYK
IF9fWk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOXpvb21lZEtleUV2CiBfX1pON1dl
YkNvcmUyMURpc3BsYXlSZWZyZXNoTW9uaXRvcjQ2aGFuZGxlRGlzcGxheVJlZnJlc2hlZE5vdGlm
aWNhdGlvbk9uTWFpblRocmVhZEVQdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
aWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0tleXMuY3BwCmluZGV4IDQ2NDVmNzIwYzBiNmQwZGRjMWM0NjYwNDAyNjVjOWI3ZTkz
ZGI2OTUuLjM5ZmY1ZDhkZWJkZWI2ZDgwODU3NGEwZjhhNjMwMDEzNGRlYzc4YTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKQEAgLTEwMyw2ICsx
MDMsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bmF2aWdhdGlvbktleSgpCiAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibmF2aWdhdGlvbiIpOwogfQogCitTdHJpbmcgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKQoreworICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoIm5ldHdvcmtDYWNoZSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpuZXR3b3JrS2V5KCkKIHsKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuZXR3b3JrIik7CkBA
IC0xMzMsNiArMTM4LDExIEBAIFN0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vRG9jdW1l
bnRMb2FkZXJLZXkoKQogICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vRG9jdW1lbnRMb2FkZXIi
KTsKIH0KIAorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9Mb25nZXJJbkNhY2hlRmFp
bHVyZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm9Mb25nZXJJbkNhY2hlRmFp
bHVyZSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpvdGhlcktleSgpCiB7
CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgib3RoZXIiKTsKQEAgLTI5OCw2ICszMDgsMTEgQEAg
U3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXNwb25zZUtleSgpCiAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgicmVzb3VyY2VSZXNwb25zZSIpOwogfQogCitTdHJpbmcgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpyZXRyaWV2YWxLZXkoKQoreworICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoInJldHJpZXZhbCIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpy
ZXZhbGlkYXRpbmdLZXkoKQogewogICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInJldmFsaWRhdGlu
ZyIpOwpAQCAtMzMzLDYgKzM0OCwxNiBAQCBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpz
dmdEb2N1bWVudEtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3ZnRG9jdW1lbnQiKTsK
IH0KIAorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6dW5oYW5kbGVkUmVxdWVzdEZhaWx1
cmVLZXkoKQoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVuaGFuZGxlZFJlcXVlc3RGYWls
dXJlIik7Cit9CisKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnVudXNhYmxlQ2FjaGVk
RW50cnlGYWlsdXJlS2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ1bnVzYWJsZUNh
Y2hlZEVudHJ5RmFpbHVyZSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1
bnVzZWRLZXkoKQogewogICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVudXNlZCIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKaW5kZXggOTJiMmQzZTYzNjMy
MWM2YjdiZmE0MGQxZjJlNjU3NTA5MjM1NTI0Zi4uZjljYTIxZDY5NTQzNjNhYjU1OTM5NmY5Y2Iz
NDU4YWM4YWNlY2YxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0tleXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5n
S2V5cy5oCkBAIC02MywxMCArNjMsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgbWVk
aWFMb2FkaW5nRmFpbGVkS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBtdXN0UmV2YWxpZGF0ZUlz
RXhwaXJlZEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgbmF2aWdhdGlvbktleSgpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgbmV0d29ya0NhY2hlS2V5KCk7CiAgICAgc3RhdGlj
IFN0cmluZyBuZXR3b3JrS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBub0NhY2hlS2V5KCk7CiAg
ICAgc3RhdGljIFN0cmluZyBub0N1cnJlbnRIaXN0b3J5SXRlbUtleSgpOwogICAgIHN0YXRpYyBT
dHJpbmcgbm9Eb2N1bWVudExvYWRlcktleSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBT
dHJpbmcgbm9Mb25nZXJJbkNhY2hlRmFpbHVyZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgbm9T
dG9yZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgbm90SW5NZW1vcnlDYWNoZUtleSgpOwogICAg
IHN0YXRpYyBTdHJpbmcgb3RoZXJLZXkoKTsKQEAgLTkwLDEyICs5MiwxNSBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFN0cmluZyByZXNvdXJjZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcmVzb3Vy
Y2VSZXF1ZXN0S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyByZXNvdXJjZVJlc3BvbnNlS2V5KCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyByZXRyaWV2YWxLZXkoKTsKICAgICBz
dGF0aWMgU3RyaW5nIHJldmFsaWRhdGluZ0tleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgc2FtZUxv
YWRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHNjcmlwdEtleSgpOwogICAgIHN0YXRpYyBTdHJp
bmcgc291cmNlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBzdHlsZVNoZWV0S2V5KCk7CiAgICAg
c3RhdGljIFN0cmluZyBzdmdEb2N1bWVudEtleSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBTdHJpbmcgdW5oYW5kbGVkUmVxdWVzdEZhaWx1cmVLZXkoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgU3RyaW5nIHVudXNhYmxlQ2FjaGVkRW50cnlGYWlsdXJlS2V5KCk7CiAgICAgc3Rh
dGljIFN0cmluZyB1bnVzZWRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHVudXNlZFJlYXNvbkNy
ZWRlbnRpYWxTZXR0aW5nc0tleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgdW51c2VkUmVhc29uRXJy
b3JLZXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVE
YXRhYmFzZVRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaAppbmRleCAxZTQzOTJmOGFiODQwNDMyNWI3NzE0NTZlZDdmNWJlOTBhOWI4
ZTVlLi40NWIwMWM2NzM3ZTlkNTkwMzc0ZDEwZWZkYzdiMjc0YjA1YjY4NWJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlVHJhY2tlci5oCkBA
IC0zOCw3ICszOCw3IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5jcmVtZW50VHJhbnNhY3Rpb25J
blByb2dyZXNzQ291bnQoKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2xpZW50KFNRTGl0ZURh
dGFiYXNlVHJhY2tlckNsaWVudCopOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAotYm9vbCBoYXNU
cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKTsKK1dFQkNPUkVfRVhQT1JUIGJvb2wgaGFzVHJhbnNhY3Rp
b25JblByb2dyZXNzKCk7CiAjZW5kaWYKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA2OWE2MzgzNjVlMWY1MDk0MzU1OTY3
ZDE3NmQ3YmZlZjQ0MDY0Mzg4Li4yYzkwYjAyYzFjNTc1ZWI1MDFlZGNjMzdlMjczNGU4NDMwYWMz
NGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCkBAIC0zMDEsNiArMzAxLDIxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmdldE5ldHdv
cmtQcm9jZXNzU3RhdGlzdGljcyh1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIHBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpEaWRHZXRTdGF0
aXN0aWNzKGRhdGEsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6
bG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6TG9nRGlhZ25v
c3RpY01lc3NhZ2Uod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNjcmlwdGlvbiksIDApOworfQorCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0
X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSByZXN1bHQpCit7Cisg
ICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHdlYlBhZ2VJRCwgbWVzc2Fn
ZSwgZGVzY3JpcHRpb24sIHJlc3VsdCksIDApOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjps
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKK3sKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh3ZWJQYWdl
SUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSksIDApOworfQorCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjp0ZXJtaW5hdGUoKQogewogICAgIHBsYXRmb3JtVGVybWluYXRlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBhZDFlMjkx
ZDQ2MzYwYTkyYWJiYmU2ZGE3NTdjNjcwOTFlZDkyNzJiLi5jOWRiNjQ3ZGYzOGE0NDI1MzkzODBh
ODM4NmEwYmM5Y2E0NDI4ZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEb3dubG9hZE1h
bmFnZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJOZXR3
b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGlj
TG9nZ2luZ1Jlc3VsdFR5cGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNzUsNiArNzYsMTEg
QEAgcHVibGljOgogICAgIERvd25sb2FkTWFuYWdlciYgZG93bmxvYWRNYW5hZ2VyKCk7CiAgICAg
Ym9vbCBjYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb247IH0KIAorICAgIC8vIERpYWdu
b3N0aWMgbWVzc2FnZXMgbG9nZ2luZy4KKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKHVp
bnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50
NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlKTsKKyAgICB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcm
IHZhbHVlKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrUHJvY2VzcygpOwogICAgIH5OZXR3b3Jr
UHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMDFhYzkzNmVmNGJiYWViMWViYWU1ODg2ZTlk
OGIwOTBhZjU3ZDU2NC4uYTNkMGM4NmY4MTc3N2UwYTA1YzY3MWM5YWVlNjcyZDI2MDMxMmM5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnN0YXJ0KCkKICAgICB9CiAKICAgICBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVy
PiBsb2FkZXIodGhpcyk7Ci0gICAgTmV0d29ya0NhY2hlOjpzaW5nbGV0b24oKS5yZXRyaWV2ZShv
cmlnaW5hbFJlcXVlc3QoKSwgW2xvYWRlcl0oc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6
RW50cnk+IGVudHJ5KSB7CisgICAgTmV0d29ya0NhY2hlOjpzaW5nbGV0b24oKS5yZXRyaWV2ZShv
cmlnaW5hbFJlcXVlc3QoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgW2xvYWRlcl0oc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6RW50cnk+IGVudHJ5KSB7CiAgICAgICAgIGlmIChsb2Fk
ZXItPmhhc09uZVJlZigpKSB7CiAgICAgICAgICAgICAvLyBUaGUgbG9hZGVyIGhhcyBiZWVuIGFi
b3J0ZWQgYW5kIGlzIG9ubHkgaGVsZCBhbGl2ZSBieSB0aGlzIGxhbWJkYS4KICAgICAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwCmluZGV4IGQ0NzcwYWE2YjZjZGQyM2U0YWZlZDg1YzJhYWNiOWVmMjg1
Mzg3MjAuLjMzYjE2NTYzY2U1OWNlZTFkZmFhNjEwZmIyYTZlNGU1OTI1MGFmZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cApAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBOZXR3b3JrQ2FjaGVLZXkgbWFrZUNhY2hlS2V5
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICByZXR1cm4gTmV0
d29ya0NhY2hlS2V5KHJlcXVlc3QuaHR0cE1ldGhvZCgpLCBwYXJ0aXRpb24sIHJlcXVlc3QudXJs
KCkuc3RyaW5nKCkpOwogfQogCi12b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoc3RkOjp1bmlxdWVfcHRyPEVudHJ5Pik+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3
b3JrQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2lu
YWxSZXF1ZXN0LCB1aW50NjRfdCB3ZWJQYWdlSUQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3RkOjp1
bmlxdWVfcHRyPEVudHJ5Pik+IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc0Vu
YWJsZWQoKSk7CiAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmll
dmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZAog
ICAgIE5ldHdvcmtDYWNoZUtleSBzdG9yYWdlS2V5ID0gbWFrZUNhY2hlS2V5KG9yaWdpbmFsUmVx
dWVzdCk7CiAgICAgaWYgKCFjYW5SZXRyaWV2ZShvcmlnaW5hbFJlcXVlc3QpKSB7CiAgICAgICAg
IGlmIChtX3N0YXRpc3RpY3MpCi0gICAgICAgICAgICBtX3N0YXRpc3RpY3MtPnJlY29yZE5vdFVz
aW5nQ2FjaGVGb3JSZXF1ZXN0KHN0b3JhZ2VLZXksIG9yaWdpbmFsUmVxdWVzdCk7CisgICAgICAg
ICAgICBtX3N0YXRpc3RpY3MtPnJlY29yZE5vdFVzaW5nQ2FjaGVGb3JSZXF1ZXN0KHdlYlBhZ2VJ
RCwgc3RvcmFnZUtleSwgb3JpZ2luYWxSZXF1ZXN0KTsKIAogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihudWxscHRyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM2LDEyICsyMzYsMTIgQEAgdm9p
ZCBOZXR3b3JrQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBzdGQKICAgICBhdXRvIHN0YXJ0VGltZSA9IHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6Om5vdygpOwogICAgIHVuc2lnbmVkIHByaW9yaXR5ID0gb3JpZ2luYWxSZXF1
ZXN0LnByaW9yaXR5KCk7CiAKLSAgICBtX3N0b3JhZ2UtPnJldHJpZXZlKHN0b3JhZ2VLZXksIHBy
aW9yaXR5LCBbdGhpcywgb3JpZ2luYWxSZXF1ZXN0LCBjb21wbGV0aW9uSGFuZGxlciwgc3RhcnRU
aW1lLCBzdG9yYWdlS2V5XShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlU3RvcmFnZTo6RW50
cnk+IGVudHJ5KSB7CisgICAgbV9zdG9yYWdlLT5yZXRyaWV2ZShzdG9yYWdlS2V5LCBwcmlvcml0
eSwgW3RoaXMsIG9yaWdpbmFsUmVxdWVzdCwgY29tcGxldGlvbkhhbmRsZXIsIHN0YXJ0VGltZSwg
c3RvcmFnZUtleSwgd2ViUGFnZUlEXShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlU3RvcmFn
ZTo6RW50cnk+IGVudHJ5KSB7CiAgICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgICAgIExP
RyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIG5vdCBmb3VuZCBpbiBzdG9yYWdlIik7
CiAKICAgICAgICAgICAgIGlmIChtX3N0YXRpc3RpY3MpCi0gICAgICAgICAgICAgICAgbV9zdGF0
aXN0aWNzLT5yZWNvcmRSZXRyaWV2YWxGYWlsdXJlKHN0b3JhZ2VLZXksIG9yaWdpbmFsUmVxdWVz
dCk7CisgICAgICAgICAgICAgICAgbV9zdGF0aXN0aWNzLT5yZWNvcmRSZXRyaWV2YWxGYWlsdXJl
KHdlYlBhZ2VJRCwgc3RvcmFnZUtleSwgb3JpZ2luYWxSZXF1ZXN0KTsKIAogICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0yNDksNyArMjQ5LDcgQEAgdm9pZCBOZXR3b3JrQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBzdGQKICAgICAgICAgYXV0byBk
ZWNvZGVkRW50cnkgPSBkZWNvZGVTdG9yYWdlRW50cnkoKmVudHJ5LCBvcmlnaW5hbFJlcXVlc3Qp
OwogICAgICAgICBib29sIHN1Y2Nlc3MgPSAhIWRlY29kZWRFbnRyeTsKICAgICAgICAgaWYgKG1f
c3RhdGlzdGljcykKLSAgICAgICAgICAgIG1fc3RhdGlzdGljcy0+cmVjb3JkUmV0cmlldmVkQ2Fj
aGVkRW50cnkoc3RvcmFnZUtleSwgb3JpZ2luYWxSZXF1ZXN0LCBzdWNjZXNzKTsKKyAgICAgICAg
ICAgIG1fc3RhdGlzdGljcy0+cmVjb3JkUmV0cmlldmVkQ2FjaGVkRW50cnkod2ViUGFnZUlELCBz
dG9yYWdlS2V5LCBvcmlnaW5hbFJlcXVlc3QsIHN1Y2Nlc3MpOwogCiAjaWYgIUxPR19ESVNBQkxF
RAogICAgICAgICBhdXRvIGVsYXBzZWRNUyA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygp
IC0gc3RhcnRUaW1lKS5jb3VudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAppbmRleCA0MGU0M2ZjN2M5NWVmNzdiZTVmODA0ODY3
NDI0NzM1MDUzMDlkMTk5Li40YWYzMTg3MTllOGU2NmZiMGRkZWJlYzkwN2RiM2RiNzE2ZjUxNTdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGUuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbmVlZHNSZXZh
bGlkYXRpb247CiAgICAgfTsKICAgICAvLyBDb21wbGV0aW9uIGhhbmRsZXIgbWF5IGdldCBjYWxs
ZWQgYmFjayBzeW5jaHJvbm91c2x5IG9uIGZhaWx1cmUuCi0gICAgdm9pZCByZXRyaWV2ZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKHN0ZDo6dW5p
cXVlX3B0cjxFbnRyeT4pPik7CisgICAgdm9pZCByZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCB1aW50NjRfdCB3ZWJQYWdlSUQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3Rk
Ojp1bmlxdWVfcHRyPEVudHJ5Pik+KTsKIAogICAgIHN0cnVjdCBNYXBwZWRCb2R5IHsKICNpZiBF
TkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5oIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5oCmluZGV4IGJi
NTIzODc4YmRlZTliYWYxMWY4MzA5ZDI5ZDgyNWI3MjI4YzZhZjguLjY1Y2ZkNmMwM2ViM2IyMmZk
NmExNTNmNGQwNWRiOGNkOGZjZmQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmgKQEAgLTQ0
LDkgKzQ0LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhcigpOwogCi0gICAgdm9pZCByZWNv
cmROb3RVc2luZ0NhY2hlRm9yUmVxdWVzdChjb25zdCBOZXR3b3JrQ2FjaGVLZXkmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2b2lkIHJlY29yZFJldHJpZXZhbEZhaWx1
cmUoY29uc3QgTmV0d29ya0NhY2hlS2V5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jik7Ci0gICAgdm9pZCByZWNvcmRSZXRyaWV2ZWRDYWNoZWRFbnRyeShjb25zdCBOZXR3b3JrQ2Fj
aGVLZXkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIHN1Y2Nlc3MpOwor
ICAgIHZvaWQgcmVjb3JkTm90VXNpbmdDYWNoZUZvclJlcXVlc3QodWludDY0X3Qgd2ViUGFnZUlE
LCBjb25zdCBOZXR3b3JrQ2FjaGVLZXkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KTsKKyAgICB2b2lkIHJlY29yZFJldHJpZXZhbEZhaWx1cmUodWludDY0X3Qgd2ViUGFnZUlELCBj
b25zdCBOZXR3b3JrQ2FjaGVLZXkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsK
KyAgICB2b2lkIHJlY29yZFJldHJpZXZlZENhY2hlZEVudHJ5KHVpbnQ2NF90IHdlYlBhZ2VJRCwg
Y29uc3QgTmV0d29ya0NhY2hlS2V5JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBzdWNjZXNzKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrQ2FjaGVTdGF0
aXN0aWNzKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3NDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRp
c3RpY3NDb2NvYS5tbQppbmRleCAxMjI3OTQ2MTA3Y2UyYmJmZWY0ODNhYWUzMDcxZTNmNTI5NmU0
MzYyLi5jMTNmZDBlZTExZWE5ZGU0NTViNmEwNTA3MTIyMjVkNDNiZWRkNDc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0
aWNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RhdGlzdGljc0NvY29hLm1tCkBAIC0zMSw2ICszMSw5IEBACiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtD
YWNoZUZpbGVTeXN0ZW1Qb3NpeC5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZVN0YXRlbWVudC5oPgpAQCAtMTY1LDQwICsxNjgsNDIg
QEAgdm9pZCBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzOjpzaHJpbmtJZk5lZWRlZCgpCiAgICAgfSk7
CiB9CiAKLXZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6cmVjb3JkTm90VXNpbmdDYWNoZUZv
clJlcXVlc3QoY29uc3QgTmV0d29ya0NhY2hlS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6cmVjb3Jk
Tm90VXNpbmdDYWNoZUZvclJlcXVlc3QodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBOZXR3b3Jr
Q2FjaGVLZXkmIGtleSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQog
ewogICAgIFN0cmluZyBoYXNoID0ga2V5Lmhhc2hBc1N0cmluZygpOwogICAgIFdlYkNvcmU6OlVS
TCByZXF1ZXN0VVJMID0gcmVxdWVzdC51cmwoKTsKLSAgICBxdWVyeVdhc0V2ZXJSZXF1ZXN0ZWQo
aGFzaCwgW3RoaXMsIGhhc2gsIHJlcXVlc3RVUkxdKGJvb2wgd2FzRXZlclJlcXVlc3RlZCkgewor
ICAgIHF1ZXJ5V2FzRXZlclJlcXVlc3RlZChoYXNoLCBbdGhpcywgaGFzaCwgcmVxdWVzdFVSTCwg
d2ViUGFnZUlEXShib29sIHdhc0V2ZXJSZXF1ZXN0ZWQpIHsKICAgICAgICAgaWYgKHdhc0V2ZXJS
ZXF1ZXN0ZWQpIHsKLSAgICAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nl
c3MpICVzIHdhcyBwcmV2aW91c2x5IHJlcXVlc3RlZCBidXQgaXMgbm90IGhhbmRsZWQgYnkgdGhl
IGNhY2hlIiwgcmVxdWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICAvLyBGSVhNRTogRG8gZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgICAgICAgICAgTE9HKE5ldHdv
cmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vzcykgd2ViUGFnZUlEICVsbHU6ICVzIHdhcyBwcmV2aW91
c2x5IHJlcXVlc3RlZCBidXQgaXMgbm90IGhhbmRsZWQgYnkgdGhlIGNhY2hlIiwgd2ViUGFnZUlE
LCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIE5ldHdv
cmtQcm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh3ZWJQ
YWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCks
IFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIFdlYkNvcmU6
OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6dW5oYW5kbGVkUmVxdWVzdEZhaWx1cmVLZXkoKSk7CiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbWFya0FzUmVxdWVzdGVkKGhhc2gpOwogICAgIH0p
OwogfQogCi12b2lkIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3M6OnJlY29yZFJldHJpZXZhbEZhaWx1
cmUoY29uc3QgTmV0d29ya0NhY2hlS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3ZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6cmVjb3JkUmV0cmll
dmFsRmFpbHVyZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IE5ldHdvcmtDYWNoZUtleSYga2V5
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgU3RyaW5n
IGhhc2ggPSBrZXkuaGFzaEFzU3RyaW5nKCk7CiAgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RVUkwg
PSByZXF1ZXN0LnVybCgpOwotICAgIHF1ZXJ5V2FzRXZlclJlcXVlc3RlZChoYXNoLCBbdGhpcywg
aGFzaCwgcmVxdWVzdFVSTF0oYm9vbCB3YXNQcmV2aW91c2x5UmVxdWVzdGVkKSB7CisgICAgcXVl
cnlXYXNFdmVyUmVxdWVzdGVkKGhhc2gsIFt0aGlzLCBoYXNoLCByZXF1ZXN0VVJMLCB3ZWJQYWdl
SURdKGJvb2wgd2FzUHJldmlvdXNseVJlcXVlc3RlZCkgewogICAgICAgICBpZiAod2FzUHJldmlv
dXNseVJlcXVlc3RlZCkgewotICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3Jr
UHJvY2VzcykgJXMgd2FzIHByZXZpb3VzbHkgY2FjaGVkIGJ1dCBpcyBubyBsb25nZXIgaW4gdGhl
IGNhY2hlIiwgcmVxdWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICAvLyBGSVhNRTogRG8gZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgICAgICAgICAgTE9HKE5ldHdv
cmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vzcykgd2ViUGFnZUlEICVsbHU6ICVzIHdhcyBwcmV2aW91
c2x5IGNhY2hlZCBidXQgaXMgbm8gbG9uZ2VyIGluIHRoZSBjYWNoZSIsIHdlYlBhZ2VJRCwgcmVx
dWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICBOZXR3b3JrUHJv
Y2Vzczo6c2luZ2xldG9uKCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUod2ViUGFnZUlE
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgpLCBXZWJD
b3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBXZWJDb3JlOjpEaWFn
bm9zdGljTG9nZ2luZ0tleXM6Om5vTG9uZ2VySW5DYWNoZUZhaWx1cmVLZXkoKSk7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgbWFya0FzUmVxdWVzdGVkKGhhc2gpOwogICAgIH0pOwogfQog
Ci12b2lkIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3M6OnJlY29yZFJldHJpZXZlZENhY2hlZEVudHJ5
KGNvbnN0IE5ldHdvcmtDYWNoZUtleSYga2V5LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGJvb2wgc3VjY2VzcykKK3ZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6
cmVjb3JkUmV0cmlldmVkQ2FjaGVkRW50cnkodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBOZXR3
b3JrQ2FjaGVLZXkmIGtleSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIHN1Y2Nlc3MpCiB7CiAgICAgV2ViQ29yZTo6VVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0
LnVybCgpOwotICAgIGlmIChzdWNjZXNzKQotICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5l
dHdvcmtQcm9jZXNzKSAlcyBpcyBpbiB0aGUgY2FjaGUgYW5kIGlzIHVzZWQiLCByZXF1ZXN0VVJM
LnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICBlbHNlCi0gICAgICAgIExPRyhOZXR3b3Jr
Q2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpICVzIGlzIGluIHRoZSBjYWNoZSBidXQgd2Fzbid0IHVz
ZWQiLCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAvLyBGSVhNRTog
RG8gZGlhZ25vc3RpYyBsb2dnaW5nLgorICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgIExPRyhO
ZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIHdlYlBhZ2VJRCAlbGx1OiAlcyBpcyBpbiB0
aGUgY2FjaGUgYW5kIGlzIHVzZWQiLCB3ZWJQYWdlSUQsIHJlcXVlc3RVUkwuc3RyaW5nKCkuYXNj
aWkoKS5kYXRhKCkpOworICAgICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHdlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpyZXRyaWV2YWxLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNz
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9j
ZXNzKSB3ZWJQYWdlSUQgJWxsdTogJXMgaXMgaW4gdGhlIGNhY2hlIGJ1dCB3YXNuJ3QgdXNlZCIs
IHdlYlBhZ2VJRCwgcmVxdWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAg
IE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZSh3ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hl
S2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6dW51c2FibGVDYWNoZWRFbnRyeUZhaWx1cmVL
ZXkoKSk7CisgICAgfQogfQogCiB2b2lkIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3M6Om1hcmtBc1Jl
cXVlc3RlZChjb25zdCBTdHJpbmcmIGhhc2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ1ZjMzZmNj
NzFhZDYyNDJhMDBhNWE5ZDNjMmNiMWYwMWM0MTAxZWUuLjUzNGUwZDhlZDZiMzU5ZTRmNDUyZTQz
M2VhM2E5MjU3MjE1YjJiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yMzAsNiArMjMwLDMwIEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciogbGF1bmNoZXIsIElQQzo6Q29uCiAjZW5kaWYKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBXZWJQYWdlUHJv
eHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKKyAgICBNRVNTQUdF
X0NIRUNLKHBhZ2UpOworCisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UobWVzc2FnZSwg
ZGVzY3JpcHRpb24pOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQoreworICAgIFdl
YlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAg
IE1FU1NBR0VfQ0hFQ0socGFnZSk7CisKKyAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhSZXN1bHQobWVzc2FnZSwgZGVzY3JpcHRpb24sIHJlc3VsdCk7Cit9CisKK3ZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFn
ZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNv
bnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vz
c1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhwYWdlKTsKKworICAg
IHBhZ2UtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKG1lc3NhZ2UsIGRlc2NyaXB0aW9u
LCB2YWx1ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBjZDk5NmQxYjZkZGNhZTc3ZDE2ZmU4
ZTk5YjExOWQ0MzlmYjdiMDE3Li4zZjg5NjI3NjkxN2QzMmE0ZmM4MjZiY2ZkZmE0NjhkOWE4NDA4
OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCkBAIC05MSw2ICs5MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1l
bnQmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRf
dCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vi
c2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbik7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQo
dWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCk7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKICAgICAvLyBQcm9j
ZXNzTGF1bmNoZXI6OkNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDkzYTM3YjRlY2NmMzQ1MDBiMWZj
YzM1ZDIwM2IyOGE5ZDRmMzUzMGUuLmU5ZDhjZjYxZTM5ZGU4NDBmNjE3ZDFhN2UxOTFjZTBjNGQx
NzkwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsMTEg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAg
RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1
aW50NjRfdCBjaGFsbGVuZ2VJRCkKIAogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90
IGNhbGxiYWNrSUQpCisKKyAgICAjIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZworICAgIExv
Z0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmlu
ZyBkZXNjcmlwdGlvbikKKyAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0
X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCB1aW50MzJfdCBy
ZXN1bHQpCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlE
LCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmcgdmFsdWUpCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDI0ZDllMmY3ODI3ZDY3ZjYyOTc3OTIwMjViYjI4YzBjZjI4
MGExYjcuLmM5MmNhODliYTBkNmQ4ZTZiNzJkYTFlNDFjY2NlMzAyZjU2MzBlOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTk4OCw2ICs5ODgsMTEgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRTaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoYm9v
bCk7CiAKKyAgICAvLyBEaWFnbm9zdGljIG1lc3NhZ2VzIGxvZ2dpbmcuCisgICAgdm9pZCBsb2dE
aWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24pOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVz
dWx0KTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1
ZSk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNz
UHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDb25maWd1cmF0aW9uJik7CiAg
ICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTEyMzcsMTEgKzEyNDIsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogICAgIHZv
aWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwogCi0gICAgLy8gRGlhZ25v
c3RpYyBtZXNzYWdlcyBsb2dnaW5nLgotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKLSAgICB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCk7Ci0gICAgdm9pZCBsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotCiAgICAgdm9pZCBkaWRS
ZWNlaXZlRXZlbnQodWludDMyX3Qgb3BhcXVlVHlwZSwgYm9vbCBoYW5kbGVkKTsKICAgICB2b2lk
IHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246403</attachid>
            <date>2015-02-11 11:45:33 -0800</date>
            <delta_ts>2015-02-11 15:47:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141345-20150211114537.patch</filename>
            <type>text/plain</type>
            <size>24785</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI0MGQwOWQ4NWUxNzBh
ZGM2YmRjNDFhNmNmZWViNDEyZDI1ZjkzYi4uMWQ1MjkzYWE3YjNiZjZkNGM2NDYwNjkxZmRlZDkx
Mjk1NDk5OTVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTAyLTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGxvZ2dpbmcg
dG8gdmFsaWRhdGUgdGhlIG5ldHdvcmsgY2FjaGUgZWZmaWNhY3kgKFBhcnQgMikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTM0NQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTk2MzIwODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgZmV3IG1vcmUgZGlhZ25vc3RpYyBsb2dnaW5nIGtleXMg
Zm9yIHRoZSBuZXR3b3JrIGNhY2hlIGVmZmljYWN5CisgICAgICAgIGxvZ2dpbmcuCisKIDIwMTUt
MDItMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgYSBmZXcgbW9yZSBXRUJDT1JFX0VYUE9SVCBtYWNyb3MgZm9yIGRlYnVnIGFuZCBp
T1MgYnVpbGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZjMDYzYWE0MjljZDg0MWUzMTFjYzE1NmUyMWMwYzUw
NDY4OWE0MGUuLjNkZGNmNzQ3ZjA4MWQzOWZkZjNkOGJkN2ZlNmZlMTM5NzYyYzE0NDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNS0wMi0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBsb2dnaW5nIHRvIHZhbGlkYXRlIHRoZSBu
ZXR3b3JrIGNhY2hlIGVmZmljYWN5IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEzNDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE5
NjMyMDgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgbWVzc2FnZXMgdG8gdmFsaWRhdGUgdGhlIG5ldHdvcmsg
Y2FjaGUgZWZmaWNhY3kuCisgICAgICAgIFRoZSBmb2xsb3dpbmcgNCBtZXNzYWdlcyBhcmUgYWRk
ZWQ6CisgICAgICAgIC0gbmV0d29ya0NhY2hlIC8gcmV0cmlldmFsIC8gc3VjY2VzcworICAgICAg
ICAtIG5ldHdvcmtDYWNoZSAvIHJldHJpZXZhbCAvIHVuaGFuZGxlZFJlcXVlc3RGYWlsdXJlCisg
ICAgICAgIC0gbmV0d29ya0NhY2hlIC8gcmV0cmlldmFsIC8gbm9Mb25nZXJJbkNhY2hlRmFpbHVy
ZQorICAgICAgICAtIG5ldHdvcmtDYWNoZSAvIHJldHJpZXZhbCAvIHVudXNhYmxlQ2FjaGVkRW50
cnlGYWlsdXJlCisKKyAgICAgICAgVGhlIG1lc3NhZ2VzIGFyZSBzZW50IHZpYSBJUEMgZnJvbSB0
aGUgTmV0d29ya1Byb2Nlc3MgdG8gdGhlIFVJUHJvY2VzcywKKyAgICAgICAgd2hlcmUgdGhlIFdl
YlBhZ2VQcm94eSBjb2RlIGFscmVhZHkgaGFuZGxlcyBkaWFnbm9zdGljIG1lc3NhZ2VzIHNlbnQg
YnkKKyAgICAgICAgdGhlIFdlYlByb2Nlc3MuCisKIDIwMTUtMDItMTEgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBkZWZhdWx0
IGNvbG9yIGNob29zZXIgaW1wbGVtZW50YXRpb24gdXNpbmcgR3RrQ29sb3JDaG9vc2VyRGlhbG9n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGMwMDM3MzA2ODY0MDRhMTk3ZTlhNDkxNTU4MzlmMzI2
MGEzZTgxZjMuLmUzMGQ1ZjI5NDVmOTVhOThmMDVkOTAyOGU4MDFjNmU1MWQ5MzUxN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCkBAIC05NDUsNiArOTQ1LDExIEBAIF9fWk43V2ViQ29yZTIxQmxvYkRh
dGFGaWxlUmVmZXJlbmNlRDJFdgogX19aTjdXZWJDb3JlMjFDcm9zc1RocmVhZENvcGllckJhc2VJ
TGIwRUxiMEVOM1dURjZTdHJpbmdFRTRjb3B5RVJLUzJfCiBfX1pON1dlYkNvcmUyMUNyb3NzVGhy
ZWFkQ29waWVyQmFzZUlMYjBFTGIwRU5TXzE5SURCRGF0YWJhc2VNZXRhZGF0YUVFNGNvcHlFUktT
MV8KIF9fWk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlzMTB3ZWJWaWV3S2V5RXYKK19f
Wk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdLZXlzMTJyZXRyaWV2YWxLZXlFdgorX19aTjdX
ZWJDb3JlMjFEaWFnbm9zdGljTG9nZ2luZ0tleXMxNW5ldHdvcmtDYWNoZUtleUV2CitfX1pON1dl
YkNvcmUyMURpYWdub3N0aWNMb2dnaW5nS2V5czI1bm9Mb25nZXJJbkNhY2hlRmFpbHVyZUtleUV2
CitfX1pON1dlYkNvcmUyMURpYWdub3N0aWNMb2dnaW5nS2V5czI2dW5oYW5kbGVkUmVxdWVzdEZh
aWx1cmVLZXlFdgorX19aTjdXZWJDb3JlMjFEaWFnbm9zdGljTG9nZ2luZ0tleXMyOXVudXNhYmxl
Q2FjaGVkRW50cnlGYWlsdXJlS2V5RXYKIF9fWk43V2ViQ29yZTIxRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzN3VzZXJLZXlFdgogX19aTjdXZWJDb3JlMjFEaWFnbm9zdGljTG9nZ2luZ0tleXM5em9vbWVk
S2V5RXYKIF9fWk43V2ViQ29yZTIxRGlzcGxheVJlZnJlc2hNb25pdG9yNDZoYW5kbGVEaXNwbGF5
UmVmcmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFkRVB2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKaW5kZXggNDY0NWY3MjBjMGI2ZDBkZGMxYzQ2
NjA0MDI2NWM5YjdlOTNkYjY5NS4uMzlmZjVkOGRlYmRlYjZkODA4NTc0YTBmOGE2MzAwMTM0ZGVj
NzhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tl
eXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNw
cApAQCAtMTAzLDYgKzEwMywxMSBAQCBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuYXZp
Z2F0aW9uS2V5KCkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuYXZpZ2F0aW9uIik7CiB9CiAK
K1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5ldHdvcmtDYWNoZUtleSgpCit7CisgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgibmV0d29ya0NhY2hlIik7Cit9CisKIFN0cmluZyBEaWFnbm9z
dGljTG9nZ2luZ0tleXM6Om5ldHdvcmtLZXkoKQogewogICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
Im5ldHdvcmsiKTsKQEAgLTEzMyw2ICsxMzgsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5n
S2V5czo6bm9Eb2N1bWVudExvYWRlcktleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm9E
b2N1bWVudExvYWRlciIpOwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0xv
bmdlckluQ2FjaGVGYWlsdXJlS2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJub0xv
bmdlckluQ2FjaGVGYWlsdXJlIik7Cit9CisKIFN0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6
Om90aGVyS2V5KCkKIHsKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJvdGhlciIpOwpAQCAtMjk4
LDYgKzMwOCwxMSBAQCBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZVJlc3Bv
bnNlS2V5KCkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJyZXNvdXJjZVJlc3BvbnNlIik7CiB9
CiAKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpCit7CisgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgicmV0cmlldmFsIik7Cit9CisKIFN0cmluZyBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnJldmFsaWRhdGluZ0tleSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgicmV2YWxpZGF0aW5nIik7CkBAIC0zMzMsNiArMzQ4LDE2IEBAIFN0cmluZyBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnN2Z0RvY3VtZW50S2V5KCkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJz
dmdEb2N1bWVudCIpOwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmhhbmRs
ZWRSZXF1ZXN0RmFpbHVyZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW5oYW5k
bGVkUmVxdWVzdEZhaWx1cmUiKTsKK30KKworU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
dW51c2FibGVDYWNoZWRFbnRyeUZhaWx1cmVLZXkoKQoreworICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoInVudXNhYmxlQ2FjaGVkRW50cnlGYWlsdXJlIik7Cit9CisKIFN0cmluZyBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnVudXNlZEtleSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW51
c2VkIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5n
S2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaAppbmRl
eCA5MmIyZDNlNjM2MzIxYzZiN2JmYTQwZDFmMmU2NTc1MDkyMzU1MjRmLi5mOWNhMjFkNjk1NDM2
M2FiNTU5Mzk2ZjljYjM0NThhYzhhY2VjZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTYzLDEwICs2MywxMiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFN0cmluZyBtZWRpYUxvYWRpbmdGYWlsZWRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIG11
c3RSZXZhbGlkYXRlSXNFeHBpcmVkS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBuYXZpZ2F0aW9u
S2V5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBuZXR3b3JrQ2FjaGVLZXko
KTsKICAgICBzdGF0aWMgU3RyaW5nIG5ldHdvcmtLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIG5v
Q2FjaGVLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIG5vQ3VycmVudEhpc3RvcnlJdGVtS2V5KCk7
CiAgICAgc3RhdGljIFN0cmluZyBub0RvY3VtZW50TG9hZGVyS2V5KCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBub0xvbmdlckluQ2FjaGVGYWlsdXJlS2V5KCk7CiAgICAgc3Rh
dGljIFN0cmluZyBub1N0b3JlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBub3RJbk1lbW9yeUNh
Y2hlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBvdGhlcktleSgpOwpAQCAtOTAsMTIgKzkyLDE1
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIHJlc291cmNlS2V5KCk7CiAgICAgc3RhdGlj
IFN0cmluZyByZXNvdXJjZVJlcXVlc3RLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHJlc291cmNl
UmVzcG9uc2VLZXkoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHJldHJpZXZh
bEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcmV2YWxpZGF0aW5nS2V5KCk7CiAgICAgc3RhdGlj
IFN0cmluZyBzYW1lTG9hZEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgc2NyaXB0S2V5KCk7CiAg
ICAgc3RhdGljIFN0cmluZyBzb3VyY2VLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHN0eWxlU2hl
ZXRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHN2Z0RvY3VtZW50S2V5KCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFN0cmluZyB1bmhhbmRsZWRSZXF1ZXN0RmFpbHVyZUtleSgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgdW51c2FibGVDYWNoZWRFbnRyeUZhaWx1cmVL
ZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHVudXNlZEtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcg
dW51c2VkUmVhc29uQ3JlZGVudGlhbFNldHRpbmdzS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyB1
bnVzZWRSZWFzb25FcnJvcktleSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDY5YTYzODM2NWUxZjUwOTQzNTU5NjdkMTc2ZDdi
ZmVmNDQwNjQzODguLjJjOTBiMDJjMWM1NzVlYjUwMWVkY2MzN2UyNzM0ZTg0MzBhYzM0ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTMwMSw2ICszMDEsMjEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Z2V0TmV0d29ya1Byb2Nl
c3NTdGF0aXN0aWNzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OkRpZEdldFN0YXRpc3RpY3Mo
ZGF0YSwgY2FsbGJhY2tJRCksIDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFn
bm9zdGljTWVzc2FnZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFnbm9zdGljTWVz
c2FnZSh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKSwgMCk7Cit9CisKK3ZvaWQgTmV0
d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCB3ZWJQ
YWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlIHJlc3VsdCkKK3sKKyAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNj
cmlwdGlvbiwgcmVzdWx0KSwgMCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQor
eworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHdlYlBhZ2VJRCwgbWVz
c2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKSwgMCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnRlcm1pbmF0ZSgpCiB7CiAgICAgcGxhdGZvcm1UZXJtaW5hdGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGFkMWUyOTFkNDYzNjBh
OTJhYmJiZTZkYTc1N2M2NzA5MWVkOTI3MmIuLmM5ZGI2NDdkZjM4YTQ0MjUzOTM4MGE4Mzg2YTBi
YzljYTQ0MjhkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC03NSw2ICs3NiwxMSBAQCBwdWJs
aWM6CiAgICAgRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIoKTsKICAgICBib29sIGNh
bkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYW5I
YW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjsgfQogCisgICAgLy8gRGlhZ25vc3RpYyBt
ZXNzYWdlcyBsb2dnaW5nLgorICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3Qg
d2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24pOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2NF90IHdl
YlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUpOworICAgIHZvaWQgbG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUp
OworCiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcAppbmRleCAwMWFjOTM2ZWY0YmJhZWIxZWJhZTU4ODZlOWQ4YjA5MGFm
NTdkNTY0Li5hM2QwYzg2ZjgxNzc3ZTBhMDVjNjcxYzlhZWU2NzJkMjYwMzEyYzk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c3RhcnQoKQogICAgIH0KIAogICAgIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGxvYWRl
cih0aGlzKTsKLSAgICBOZXR3b3JrQ2FjaGU6OnNpbmdsZXRvbigpLnJldHJpZXZlKG9yaWdpbmFs
UmVxdWVzdCgpLCBbbG9hZGVyXShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpFbnRyeT4g
ZW50cnkpIHsKKyAgICBOZXR3b3JrQ2FjaGU6OnNpbmdsZXRvbigpLnJldHJpZXZlKG9yaWdpbmFs
UmVxdWVzdCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBbbG9hZGVyXShzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya0NhY2hlOjpFbnRyeT4gZW50cnkpIHsKICAgICAgICAgaWYgKGxvYWRlci0+aGFz
T25lUmVmKCkpIHsKICAgICAgICAgICAgIC8vIFRoZSBsb2FkZXIgaGFzIGJlZW4gYWJvcnRlZCBh
bmQgaXMgb25seSBoZWxkIGFsaXZlIGJ5IHRoaXMgbGFtYmRhLgogICAgICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZS5jcHAKaW5kZXggZDQ3NzBhYTZiNmNkZDIzZTRhZmVkODVjMmFhY2I5ZWYyODUzODcyMC4u
MzNiMTY1NjNjZTU5Y2VlMWRmYWE2MTBmYjJhNmU0ZTU5MjUwYWZmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC0y
MTgsNyArMjE4LDcgQEAgc3RhdGljIE5ldHdvcmtDYWNoZUtleSBtYWtlQ2FjaGVLZXkoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIHJldHVybiBOZXR3b3JrQ2Fj
aGVLZXkocmVxdWVzdC5odHRwTWV0aG9kKCksIHBhcnRpdGlvbiwgcmVxdWVzdC51cmwoKS5zdHJp
bmcoKSk7CiB9CiAKLXZvaWQgTmV0d29ya0NhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgc3RkOjpmdW5jdGlvbjx2b2lkIChzdGQ6
OnVuaXF1ZV9wdHI8RW50cnk+KT4gY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDYWNo
ZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVl
c3QsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgc3RkOjpmdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1ZV9w
dHI8RW50cnk+KT4gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKGlzRW5hYmxlZCgp
KTsKIApAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgTmV0d29ya0NhY2hlOjpyZXRyaWV2ZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgc3RkCiAgICAgTmV0
d29ya0NhY2hlS2V5IHN0b3JhZ2VLZXkgPSBtYWtlQ2FjaGVLZXkob3JpZ2luYWxSZXF1ZXN0KTsK
ICAgICBpZiAoIWNhblJldHJpZXZlKG9yaWdpbmFsUmVxdWVzdCkpIHsKICAgICAgICAgaWYgKG1f
c3RhdGlzdGljcykKLSAgICAgICAgICAgIG1fc3RhdGlzdGljcy0+cmVjb3JkTm90VXNpbmdDYWNo
ZUZvclJlcXVlc3Qoc3RvcmFnZUtleSwgb3JpZ2luYWxSZXF1ZXN0KTsKKyAgICAgICAgICAgIG1f
c3RhdGlzdGljcy0+cmVjb3JkTm90VXNpbmdDYWNoZUZvclJlcXVlc3Qod2ViUGFnZUlELCBzdG9y
YWdlS2V5LCBvcmlnaW5hbFJlcXVlc3QpOwogCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51
bGxwdHIpOwogICAgICAgICByZXR1cm47CkBAIC0yMzYsMTIgKzIzNiwxMiBAQCB2b2lkIE5ldHdv
cmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIHN0ZAogICAgIGF1dG8gc3RhcnRUaW1lID0gc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6bm93KCk7CiAgICAgdW5zaWduZWQgcHJpb3JpdHkgPSBvcmlnaW5hbFJlcXVlc3QucHJp
b3JpdHkoKTsKIAotICAgIG1fc3RvcmFnZS0+cmV0cmlldmUoc3RvcmFnZUtleSwgcHJpb3JpdHks
IFt0aGlzLCBvcmlnaW5hbFJlcXVlc3QsIGNvbXBsZXRpb25IYW5kbGVyLCBzdGFydFRpbWUsIHN0
b3JhZ2VLZXldKHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGVTdG9yYWdlOjpFbnRyeT4gZW50
cnkpIHsKKyAgICBtX3N0b3JhZ2UtPnJldHJpZXZlKHN0b3JhZ2VLZXksIHByaW9yaXR5LCBbdGhp
cywgb3JpZ2luYWxSZXF1ZXN0LCBjb21wbGV0aW9uSGFuZGxlciwgc3RhcnRUaW1lLCBzdG9yYWdl
S2V5LCB3ZWJQYWdlSURdKHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGVTdG9yYWdlOjpFbnRy
eT4gZW50cnkpIHsKICAgICAgICAgaWYgKCFlbnRyeSkgewogICAgICAgICAgICAgTE9HKE5ldHdv
cmtDYWNoZSwgIihOZXR3b3JrUHJvY2Vzcykgbm90IGZvdW5kIGluIHN0b3JhZ2UiKTsKIAogICAg
ICAgICAgICAgaWYgKG1fc3RhdGlzdGljcykKLSAgICAgICAgICAgICAgICBtX3N0YXRpc3RpY3Mt
PnJlY29yZFJldHJpZXZhbEZhaWx1cmUoc3RvcmFnZUtleSwgb3JpZ2luYWxSZXF1ZXN0KTsKKyAg
ICAgICAgICAgICAgICBtX3N0YXRpc3RpY3MtPnJlY29yZFJldHJpZXZhbEZhaWx1cmUod2ViUGFn
ZUlELCBzdG9yYWdlS2V5LCBvcmlnaW5hbFJlcXVlc3QpOwogCiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihudWxscHRyKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI0OSw3
ICsyNDksNyBAQCB2b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZAogICAgICAgICBhdXRvIGRlY29kZWRF
bnRyeSA9IGRlY29kZVN0b3JhZ2VFbnRyeSgqZW50cnksIG9yaWdpbmFsUmVxdWVzdCk7CiAgICAg
ICAgIGJvb2wgc3VjY2VzcyA9ICEhZGVjb2RlZEVudHJ5OwogICAgICAgICBpZiAobV9zdGF0aXN0
aWNzKQotICAgICAgICAgICAgbV9zdGF0aXN0aWNzLT5yZWNvcmRSZXRyaWV2ZWRDYWNoZWRFbnRy
eShzdG9yYWdlS2V5LCBvcmlnaW5hbFJlcXVlc3QsIHN1Y2Nlc3MpOworICAgICAgICAgICAgbV9z
dGF0aXN0aWNzLT5yZWNvcmRSZXRyaWV2ZWRDYWNoZWRFbnRyeSh3ZWJQYWdlSUQsIHN0b3JhZ2VL
ZXksIG9yaWdpbmFsUmVxdWVzdCwgc3VjY2Vzcyk7CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAg
ICAgIGF1dG8gZWxhcHNlZE1TID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLSBzdGFy
dFRpbWUpLmNvdW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IDQwZTQzZmM3Yzk1ZWY3N2JlNWY4MDQ4Njc0MjQ3MzUw
NTMwOWQxOTkuLjRhZjMxODcxOWU4ZTY2ZmIwZGRlYmVjOTA3ZGIzZGI3MTZmNTE1N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5o
CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBuZWVkc1JldmFsaWRhdGlv
bjsKICAgICB9OwogICAgIC8vIENvbXBsZXRpb24gaGFuZGxlciBtYXkgZ2V0IGNhbGxlZCBiYWNr
IHN5bmNocm9ub3VzbHkgb24gZmFpbHVyZS4KLSAgICB2b2lkIHJldHJpZXZlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoc3RkOjp1bmlxdWVfcHRy
PEVudHJ5Pik+KTsKKyAgICB2b2lkIHJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgc3RkOjpmdW5jdGlvbjx2b2lkIChzdGQ6OnVuaXF1
ZV9wdHI8RW50cnk+KT4pOwogCiAgICAgc3RydWN0IE1hcHBlZEJvZHkgewogI2lmIEVOQUJMRShT
SEFSRUFCTEVfUkVTT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmgKaW5kZXggYmI1MjM4Nzhi
ZGVlOWJhZjExZjgzMDlkMjlkODI1YjcyMjhjNmFmOC4uNjVjZmQ2YzAzZWIzYjIyZmQ2YTE1M2Y0
ZDA1ZGI4Y2Q4ZmNmZDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuaApAQCAtNDQsOSArNDQs
OSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICB2b2lkIHJlY29yZE5vdFVz
aW5nQ2FjaGVGb3JSZXF1ZXN0KGNvbnN0IE5ldHdvcmtDYWNoZUtleSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOwotICAgIHZvaWQgcmVjb3JkUmV0cmlldmFsRmFpbHVyZShjb25z
dCBOZXR3b3JrQ2FjaGVLZXkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLSAg
ICB2b2lkIHJlY29yZFJldHJpZXZlZENhY2hlZEVudHJ5KGNvbnN0IE5ldHdvcmtDYWNoZUtleSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgc3VjY2Vzcyk7CisgICAgdm9p
ZCByZWNvcmROb3RVc2luZ0NhY2hlRm9yUmVxdWVzdCh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0
IE5ldHdvcmtDYWNoZUtleSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAg
IHZvaWQgcmVjb3JkUmV0cmlldmFsRmFpbHVyZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IE5l
dHdvcmtDYWNoZUtleSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZv
aWQgcmVjb3JkUmV0cmlldmVkQ2FjaGVkRW50cnkodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBO
ZXR3b3JrQ2FjaGVLZXkmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIHN1
Y2Nlc3MpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3Mo
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljc0NvY29hLm1tIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljc0Nv
Y29hLm1tCmluZGV4IDEyMjc5NDYxMDdjZTJiYmZlZjQ4M2FhZTMwNzFlM2Y1Mjk2ZTQzNjIuLmMx
M2ZkMGVlMTFlYTlkZTQ1NWI2YTA1MDcxMjIyNWQ0M2JlZGQ0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTdGF0aXN0aWNzQ29jb2EubW0KQEAgLTMxLDYgKzMxLDkgQEAKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRmls
ZVN5c3RlbVBvc2l4LmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25v
c3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZURhdGFiYXNlVHJhY2tlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU1FMaXRlU3RhdGVtZW50Lmg+CkBAIC0xNjUsNDAgKzE2OCw0MiBAQCB2b2lk
IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3M6OnNocmlua0lmTmVlZGVkKCkKICAgICB9KTsKIH0KIAot
dm9pZCBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzOjpyZWNvcmROb3RVc2luZ0NhY2hlRm9yUmVxdWVz
dChjb25zdCBOZXR3b3JrQ2FjaGVLZXkmIGtleSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQordm9pZCBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzOjpyZWNvcmROb3RVc2lu
Z0NhY2hlRm9yUmVxdWVzdCh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IE5ldHdvcmtDYWNoZUtl
eSYga2V5LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAg
U3RyaW5nIGhhc2ggPSBrZXkuaGFzaEFzU3RyaW5nKCk7CiAgICAgV2ViQ29yZTo6VVJMIHJlcXVl
c3RVUkwgPSByZXF1ZXN0LnVybCgpOwotICAgIHF1ZXJ5V2FzRXZlclJlcXVlc3RlZChoYXNoLCBb
dGhpcywgaGFzaCwgcmVxdWVzdFVSTF0oYm9vbCB3YXNFdmVyUmVxdWVzdGVkKSB7CisgICAgcXVl
cnlXYXNFdmVyUmVxdWVzdGVkKGhhc2gsIFt0aGlzLCBoYXNoLCByZXF1ZXN0VVJMLCB3ZWJQYWdl
SURdKGJvb2wgd2FzRXZlclJlcXVlc3RlZCkgewogICAgICAgICBpZiAod2FzRXZlclJlcXVlc3Rl
ZCkgewotICAgICAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgJXMg
d2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGJ1dCBpcyBub3QgaGFuZGxlZCBieSB0aGUgY2FjaGUi
LCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBEbyBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hl
LCAiKE5ldHdvcmtQcm9jZXNzKSB3ZWJQYWdlSUQgJWxsdTogJXMgd2FzIHByZXZpb3VzbHkgcmVx
dWVzdGVkIGJ1dCBpcyBub3QgaGFuZGxlZCBieSB0aGUgY2FjaGUiLCB3ZWJQYWdlSUQsIHJlcXVl
c3RVUkwuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgTmV0d29ya1Byb2Nl
c3M6OnNpbmdsZXRvbigpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHdlYlBhZ2VJRCwg
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwgV2ViQ29y
ZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXRyaWV2YWxLZXkoKSwgV2ViQ29yZTo6RGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjp1bmhhbmRsZWRSZXF1ZXN0RmFpbHVyZUtleSgpKTsKICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICBtYXJrQXNSZXF1ZXN0ZWQoaGFzaCk7CiAgICAgfSk7CiB9CiAK
LXZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6cmVjb3JkUmV0cmlldmFsRmFpbHVyZShjb25z
dCBOZXR3b3JrQ2FjaGVLZXkmIGtleSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQordm9pZCBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzOjpyZWNvcmRSZXRyaWV2YWxGYWls
dXJlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgTmV0d29ya0NhY2hlS2V5JiBrZXksIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBTdHJpbmcgaGFzaCA9
IGtleS5oYXNoQXNTdHJpbmcoKTsKICAgICBXZWJDb3JlOjpVUkwgcmVxdWVzdFVSTCA9IHJlcXVl
c3QudXJsKCk7Ci0gICAgcXVlcnlXYXNFdmVyUmVxdWVzdGVkKGhhc2gsIFt0aGlzLCBoYXNoLCBy
ZXF1ZXN0VVJMXShib29sIHdhc1ByZXZpb3VzbHlSZXF1ZXN0ZWQpIHsKKyAgICBxdWVyeVdhc0V2
ZXJSZXF1ZXN0ZWQoaGFzaCwgW3RoaXMsIGhhc2gsIHJlcXVlc3RVUkwsIHdlYlBhZ2VJRF0oYm9v
bCB3YXNQcmV2aW91c2x5UmVxdWVzdGVkKSB7CiAgICAgICAgIGlmICh3YXNQcmV2aW91c2x5UmVx
dWVzdGVkKSB7Ci0gICAgICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNz
KSAlcyB3YXMgcHJldmlvdXNseSBjYWNoZWQgYnV0IGlzIG5vIGxvbmdlciBpbiB0aGUgY2FjaGUi
LCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBEbyBkaWFnbm9zdGljIGxvZ2dpbmcuCisgICAgICAgICAgICBMT0coTmV0d29ya0NhY2hl
LCAiKE5ldHdvcmtQcm9jZXNzKSB3ZWJQYWdlSUQgJWxsdTogJXMgd2FzIHByZXZpb3VzbHkgY2Fj
aGVkIGJ1dCBpcyBubyBsb25nZXIgaW4gdGhlIGNhY2hlIiwgd2ViUGFnZUlELCByZXF1ZXN0VVJM
LnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpz
aW5nbGV0b24oKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh3ZWJQYWdlSUQsIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6bmV0d29ya0NhY2hlS2V5KCksIFdlYkNvcmU6OkRp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6bm9Mb25nZXJJbkNhY2hlRmFpbHVyZUtleSgpKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBtYXJrQXNSZXF1ZXN0ZWQoaGFzaCk7CiAgICAgfSk7CiB9CiAKLXZvaWQg
TmV0d29ya0NhY2hlU3RhdGlzdGljczo6cmVjb3JkUmV0cmlldmVkQ2FjaGVkRW50cnkoY29uc3Qg
TmV0d29ya0NhY2hlS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgYm9vbCBzdWNjZXNzKQordm9pZCBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzOjpyZWNvcmRS
ZXRyaWV2ZWRDYWNoZWRFbnRyeSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IE5ldHdvcmtDYWNo
ZUtleSYga2V5LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wg
c3VjY2VzcykKIHsKICAgICBXZWJDb3JlOjpVUkwgcmVxdWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7
Ci0gICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1By
b2Nlc3MpICVzIGlzIGluIHRoZSBjYWNoZSBhbmQgaXMgdXNlZCIsIHJlcXVlc3RVUkwuc3RyaW5n
KCkuYXNjaWkoKS5kYXRhKCkpOwotICAgIGVsc2UKLSAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwg
IihOZXR3b3JrUHJvY2VzcykgJXMgaXMgaW4gdGhlIGNhY2hlIGJ1dCB3YXNuJ3QgdXNlZCIsIHJl
cXVlc3RVUkwuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwotICAgIC8vIEZJWE1FOiBEbyBkaWFn
bm9zdGljIGxvZ2dpbmcuCisgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgTE9HKE5ldHdvcmtD
YWNoZSwgIihOZXR3b3JrUHJvY2Vzcykgd2ViUGFnZUlEICVsbHU6ICVzIGlzIGluIHRoZSBjYWNo
ZSBhbmQgaXMgdXNlZCIsIHdlYlBhZ2VJRCwgcmVxdWVzdFVSTC5zdHJpbmcoKS5hc2NpaSgpLmRh
dGEoKSk7CisgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQod2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6Om5ldHdvcmtDYWNoZUtleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJl
dHJpZXZhbEtleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MpOworICAg
IH0gZWxzZSB7CisgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIHdl
YlBhZ2VJRCAlbGx1OiAlcyBpcyBpbiB0aGUgY2FjaGUgYnV0IHdhc24ndCB1c2VkIiwgd2ViUGFn
ZUlELCByZXF1ZXN0VVJMLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTmV0d29y
a1Byb2Nlc3M6OnNpbmdsZXRvbigpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHdlYlBh
Z2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpuZXR3b3JrQ2FjaGVLZXkoKSwg
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXRyaWV2YWxLZXkoKSwgV2ViQ29yZTo6
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bnVzYWJsZUNhY2hlZEVudHJ5RmFpbHVyZUtleSgpKTsK
KyAgICB9CiB9CiAKIHZvaWQgTmV0d29ya0NhY2hlU3RhdGlzdGljczo6bWFya0FzUmVxdWVzdGVk
KGNvbnN0IFN0cmluZyYgaGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZDVmMzNmY2M3MWFkNjI0
MmEwMGE1YTlkM2MyY2IxZjAxYzQxMDFlZS4uZjI2OTFmNzgzNGU0MjczNGM5ZTk2MTk5MWE0MTdj
M2QyZTgxMjQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQ3LDYgKzQ3LDE2IEBACiAKICNkZWZp
bmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24s
IGNvbm5lY3Rpb24oKSkKIAorLy8gRklYTUU6IFRoaXMgaXMgdXNlZCBmb3IgZGlhZ25vc3RpYyBs
b2dnaW5nIGJlY2F1c2UgYnkgdGhlIHRpbWUgdGhlIGRlY2lzaW9uIHRvIGxvZworLy8gaXMgbWFk
ZSwgdGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZhY3RvciB0byBhdm9pZCB0aGlz
LCBidXQgZm9yIG5vdyB3ZQorLy8gc2ltcGx5IGRyb3AgdGhlIG1lc3NhZ2UgaW4gdGhlIHJhcmUg
Y2FzZSB0aGlzIGhhcHBlbnMuCisjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfTk9fQVNTRVJUKGNvbmRp
dGlvbikgZG8gXAorICAgIGlmICghKGNvbmRpdGlvbikpIHsgXAorICAgICAgICBjb25uZWN0aW9u
KCktPm1hcmtDdXJyZW50bHlEaXNwYXRjaGVkTWVzc2FnZUFzSW52YWxpZCgpOyBcCisgICAgICAg
IHJldHVybjsgXAorICAgIH0gXAord2hpbGUgKDApCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTIzMCw2ICsyNDAsMzAgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hl
ciwgSVBDOjpDb24KICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQoreworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdl
YlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIE1FU1NBR0VfQ0hFQ0tfTk9fQVNT
RVJUKHBhZ2UpOworCisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UobWVzc2FnZSwgZGVz
Y3JpcHRpb24pOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQoreworICAgIFdlYlBh
Z2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIE1F
U1NBR0VfQ0hFQ0tfTk9fQVNTRVJUKHBhZ2UpOworCisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQpOworfQorCit2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdl
YlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOworICAgIE1FU1NBR0VfQ0hFQ0tfTk9fQVNT
RVJUKHBhZ2UpOworCisgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUobWVz
c2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGNkOTk2
ZDFiNmRkY2FlNzdkMTZmZThlOTliMTE5ZDQzOWZiN2IwMTcuLjNmODk2Mjc2OTE3ZDMyYTRmYzgy
NmJjZmRmYTQ2OGQ5YTg0MDg4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTkxLDYgKzkxLDkgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNv
bnN0IElQQzo6QXR0YWNobWVudCYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CiAgICAg
dm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KTsKKyAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVl
KTsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOTNh
MzdiNGVjY2YzNDUwMGIxZmNjMzVkMjAzYjI4YTlkNGYzNTMwZS4uZTlkOGNmNjFlMzlkZTg0MGY2
MTdkMWE3ZTE5MWNlMGM0ZDE3OTBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yOCw2ICsyOCwxMSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0
X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRGVsZXRlV2Vi
c2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKKworICAgICMgRGlhZ25vc3RpYyBtZXNzYWdl
cyBsb2dnaW5nCisgICAgTG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBTdHJp
bmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uKQorICAgIExvZ0RpYWdub3N0aWNNZXNzYWdl
V2l0aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3Jp
cHRpb24sIHVpbnQzMl90IHJlc3VsdCkKKyAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIFN0
cmluZyB2YWx1ZSkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjRkOWUyZjc4MjdkNjdmNjI5
Nzc5MjAyNWJiMjhjMGNmMjgwYTFiNy4uYzkyY2E4OWJhMGQ2ZDhlNmI3MmRhMWU0MWNjY2UzMDJm
NTYzMGU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTg4
LDYgKzk4OCwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFNob3VsZERpc3BhdGNoRmFrZU1v
dXNlTW92ZUV2ZW50cyhib29sKTsKIAorICAgIC8vIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2lu
Zy4KKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7CisgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCB1aW50MzJfdCByZXN1bHQpOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
VmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNs
aWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNv
bmZpZ3VyYXRpb24mKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMTIzNywx
MSArMTI0Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6
Q3Vyc29yJik7CiAgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7
CiAKLSAgICAvLyBEaWFnbm9zdGljIG1lc3NhZ2VzIGxvZ2dpbmcuCi0gICAgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24pOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0
KTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7
Ci0KICAgICB2b2lkIGRpZFJlY2VpdmVFdmVudCh1aW50MzJfdCBvcGFxdWVUeXBlLCBib29sIGhh
bmRsZWQpOwogICAgIHZvaWQgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKTsKIAo=
</data>
<flag name="review"
          id="271346"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>