<?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>143131</bug_id>
          
          <creation_ts>2015-03-27 04:54:23 -0700</creation_ts>
          <short_desc>Synchronize fullscreen animation between processes.</short_desc>
          <delta_ts>2015-04-07 10:20:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1080583</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-27 04:54:23 -0700</bug_when>
    <thetext>Synchronize fullscreen animation between processes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080584</commentid>
    <comment_count>1</comment_count>
      <attachid>249562</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-27 05:19:54 -0700</bug_when>
    <thetext>Created attachment 249562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080585</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-27 05:20:43 -0700</bug_when>
    <thetext>rdar://problem/19948096</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080606</commentid>
    <comment_count>3</comment_count>
      <attachid>249562</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-27 08:46:03 -0700</bug_when>
    <thetext>Comment on attachment 249562
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:623
&gt; +        id&lt;CAAction&gt; action = nil; // [self actionForKey:@&quot;bounds&quot;];

Please don&apos;t commit commented-out code. Reference a bug in a comment if you need to.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:624
&gt; +        if (action &amp;&amp; action != [NSNull null]) {

Should this use -isEqual:?

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:38
&gt; +#import &lt;BackBoardServices/BKSAnimationFence.h&gt;
&gt; +#import &lt;BackBoardServices/BKSAnimationFence_Private.h&gt;

This will break the public iOS build.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:40
&gt; +#import &lt;UIKit/UIWindow_Private.h&gt;

Ditto.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:56
&gt; +    : m_page(&amp;page), m_lastFencePort(0)

Each initialization on its own line please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080607</commentid>
    <comment_count>4</comment_count>
      <attachid>249562</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-03-27 08:54:08 -0700</bug_when>
    <thetext>Comment on attachment 249562
Patch

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

&gt;&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:623
&gt;&gt; +        id&lt;CAAction&gt; action = nil; // [self actionForKey:@&quot;bounds&quot;];
&gt; 
&gt; Please don&apos;t commit commented-out code. Reference a bug in a comment if you need to.

This must have been inadvertent. It makes the following section meaningless.

&gt;&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:624
&gt;&gt; +        if (action &amp;&amp; action != [NSNull null]) {
&gt; 
&gt; Should this use -isEqual:?

It should probably just get reversed to:

if (!action || [action isKindOfClass:[NSNull class]])
    ...disableActions...
else {
    ...other stuff...
}

I&apos;m curious, however, why the `action` doesn&apos;t seem to be used inside the following block:

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:626
&gt; +            [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
&gt; +            [CATransaction setAnimationDuration:0.4];

Shouldn&apos;t we be matching the timing function and duration with that of the action?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080669</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-27 11:20:55 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 249562 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=249562&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:623
&gt; &gt; +        id&lt;CAAction&gt; action = nil; // [self actionForKey:@&quot;bounds&quot;];
&gt; 
&gt; Please don&apos;t commit commented-out code. Reference a bug in a comment if you
&gt; need to.

Removed. Code, referenced radar.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:624
&gt; &gt; +        if (action &amp;&amp; action != [NSNull null]) {
&gt; 
&gt; Should this use -isEqual:?

NSNull is a singleton, so this is valid, but I&apos;ll change it to -isEqual:

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:38
&gt; &gt; +#import &lt;BackBoardServices/BKSAnimationFence.h&gt;
&gt; &gt; +#import &lt;BackBoardServices/BKSAnimationFence_Private.h&gt;
&gt; 
&gt; This will break the public iOS build.

Removed imports. Created BackBoardServiesSPI.h

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:40
&gt; &gt; +#import &lt;UIKit/UIWindow_Private.h&gt;
&gt; 
&gt; Ditto.

Removed import. Added interfaces to UIKitSPI.h

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:56
&gt; &gt; +    : m_page(&amp;page), m_lastFencePort(0)
&gt; 
&gt; Each initialization on its own line please.

Moved to separate line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080674</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-27 11:30:45 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 249562 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=249562&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:623
&gt; &gt;&gt; +        id&lt;CAAction&gt; action = nil; // [self actionForKey:@&quot;bounds&quot;];
&gt; &gt; 
&gt; &gt; Please don&apos;t commit commented-out code. Reference a bug in a comment if you need to.

Removed commented out code. Referenced a radar.

&gt; 
&gt; This must have been inadvertent. It makes the following section meaningless.

Intentional. I&apos;ll remove that code also and put it in the radar. The commented out code causes big UI problems. Still need to find a better way to do that.

&gt; 
&gt; &gt;&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:624
&gt; &gt;&gt; +        if (action &amp;&amp; action != [NSNull null]) {
&gt; &gt; 
&gt; &gt; Should this use -isEqual:?

NSNull is a singleton, so it is valid, but I&apos;ve changed it to -isEqual:

&gt; 
&gt; It should probably just get reversed to:
&gt; 
&gt; if (!action || [action isKindOfClass:[NSNull class]])
&gt;     ...disableActions...
&gt; else {
&gt;     ...other stuff...
&gt; }

Reversed.

&gt; 
&gt; I&apos;m curious, however, why the `action` doesn&apos;t seem to be used inside the
&gt; following block:
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:626
&gt; &gt; +            [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
&gt; &gt; +            [CATransaction setAnimationDuration:0.4];
&gt; 
&gt; Shouldn&apos;t we be matching the timing function and duration with that of the
&gt; action?

That action is a private class from UIKit and doesn&apos;t lend itself to proper inspection. I&apos;m still looking for a better way to do that.

I&apos;ll remove this code and move it to the radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080697</commentid>
    <comment_count>7</comment_count>
      <attachid>249594</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-27 12:12:36 -0700</bug_when>
    <thetext>Created attachment 249594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080766</commentid>
    <comment_count>8</comment_count>
      <attachid>249610</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2015-03-27 14:59:07 -0700</bug_when>
    <thetext>Created attachment 249610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082432</commentid>
    <comment_count>9</comment_count>
      <attachid>250028</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-02 18:47:39 -0700</bug_when>
    <thetext>Created attachment 250028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083175</commentid>
    <comment_count>10</comment_count>
      <attachid>250028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-06 15:03:40 -0700</bug_when>
    <thetext>Comment on attachment 250028
Patch

Clearing flags on attachment: 250028

Committed r182439: &lt;http://trac.webkit.org/changeset/182439&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083176</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-06 15:03:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083335</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-04-07 10:20:07 -0700</bug_when>
    <thetext>Follow up build fix committed.

Committed r182477: &lt;http://trac.webkit.org/r182477&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249562</attachid>
            <date>2015-03-27 05:19:54 -0700</date>
            <delta_ts>2015-03-27 12:12:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143131-20150327051915.patch</filename>
            <type>text/plain</type>
            <size>13718</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGMzNGZiNTg5ZDI0NjE0
ODA4MGUyNGNmNzY1YmUwZTVlOTQzYmQ1ZS4uYzRkZTBhNjI4NjI2Mzk5YzdjZTdlZDhiNzViMmNk
OWE2ZDMyZDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTAzLTI3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTeW5jaHJvbml6ZSBmdWxs
c2NyZWVuIGFuaW1hdGlvbiBiZXR3ZWVuIHByb2Nlc3Nlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzEzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJBVlZpZGVvTGF5ZXIgc2V0Vmlk
ZW9TdWJsYXllcjpdKTogU2V0IGluaXRpYWwgdmlkZW8gbGF5ZXIgYW5jaG9yIGluIGNlbnRlci4K
KyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIHNldEJvdW5kczpdKTogQXBwbHkgYm91bmRzIGFu
aW1hdGlvbiBwcm9wZXJ0aWVzIHRvIHRoZSBDQVRyYW5zYWN0aW9uCisgICAgICAgICgtW1dlYkFW
UGxheWVyQ29udHJvbGxlciBsYXlvdXRTdWJsYXllcnNPZkxheWVyOl0pOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5t
bTogCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0Vmlk
ZW9MYXllckZyYW1lKTogYW5jaG9yIGxheWVyIGluIGNlbnRlci4KKwogMjAxNS0wMy0yNiAgUm9n
ZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFwcGx5IGJsdXIgZWZm
ZWN0IHRvIG1lZGlhIGNvbnRyb2wgYmFja2dyb3VuZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxNjkxN2M0Yjc4
NWEzNWQ4MzdlYzU0MTJhYjJiYjFhNTU5ZjcwMzVmLi44ZDBmNDRhZmRjMTJmYTgzZjU4YmQ4YTVh
NjQ1MmQ1NDFjMGJhMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTUtMDMtMjcg
IEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIFN5bmNocm9uaXpl
IGZ1bGxzY3JlZW4gYW5pbWF0aW9uIGJldHdlZW4gcHJvY2Vzc2VzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VuZCBDQVRyYW5zYWN0aW9uIGFuaW1h
dGlvbiBwYXJhbWV0ZXJzIHRvIHRoZSB3ZWIgY29udGVudCBwcm9jZXNzIHRvIG1ha2UgYSBtYXRj
aGluZyBhbmltYXRpb24uCisgICAgICAgIFN5bmNyb25pemUgdGhlIGFuaW1hdGlvbnMgaW4gZWFj
aCBwcm9jZXNzIHdpdGggdGhlIHN5c3RlbSBhbmltYXRpb24gZmVuY2UuIE1ha2Ugc3VyZSB3ZSBk
b24ndCAKKyAgICAgICAgc2VuZCB0d28gdHJhbnNhY3Rpb25zIG9uIHRoZSBzYW1lIGZlbmNlLCBi
ZWNhdXNlIHRoZSB3ZWIgY29udGVudCBwcm9jZXNzIHdpbGwgc3RpbGwgYmUgYmxvY2tlZCBoYW5k
bGluZyBoZSBmaXJzdCBvbmUsCisgICAgICAgIGFuZCB0aGUgVUkgcHJvY2VzcyB3aWxsIHRoZW4g
YmxvY2sgb24gdGhlIHdlYiBjb250ZW50IHByb2NlcyB1bnRpbCB0aGUgZmVuY2UgZXhwaXJlcy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lmg6IGRlY2xhcmUgbV9sYXN0RmVuY2VQb3J0CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KTog
aW5pdCBtX2xhc3RGZW5jZVBvcnQKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyRnJhbWUpOiBzZW5kIGFuaW1hdGlvbiBwcm9wZXJ0
aWVzLCB1c2Ugc3lzdGVtIGFuaW1hdGlvbiBmZW5jZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6IEFkZCBtb3JlIGFuaW1hdGlvbiBwYXJhbWV0
ZXJzLgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bWVzc2FnZXMuaW46IGRpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZCk6IEFwcGx5IGFuaW1hdGlvbiBwYXJhbWV0
ZXJzLgorCiAyMDE1LTAzLTI2ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMTgwNzY4OSk6IFNsb3dlciBzdGFydHVwIHRpbWUgZm9yIFdL
V2ViVmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCA4ZWFmZTVmNzE1Yzlj
MTEyNDFiNjAxZjkyOWNkNGQyOWViMGI4YmJiLi4zOGFjYzhjMGQzMDVkZmNmYTEwMzU5OTc4MzRk
ODZjZmFiNmY5NWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC01MjAsMTkg
KzUyMCw2IEBAIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlDb2xvcikKICAgICByZXR1cm4gW05T
U2V0IHNldFdpdGhPYmplY3RzOkAiZXh0ZXJuYWxQbGF5YmFja0FjdGl2ZSIsIG5pbF07CiB9CiAK
LS0gKHZvaWQpbGF5b3V0U3VibGF5ZXJzT2ZMYXllcjooQ0FMYXllciAqKWxheWVyCi17Ci0gICAg
Q0dSZWN0IGxheWVyQm91bmRzID0gW2xheWVyIGJvdW5kc107Ci0gICAgaWYgKHNlbGYuZGVsZWdh
dGUpCi0gICAgICAgIHNlbGYuZGVsZWdhdGUtPnNldFZpZGVvTGF5ZXJGcmFtZShDR1JlY3RNYWtl
KDAsIDAsIENHUmVjdEdldFdpZHRoKGxheWVyQm91bmRzKSwgQ0dSZWN0R2V0SGVpZ2h0KGxheWVy
Qm91bmRzKSkpOwotICAgIAotICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAgICBmb3IgKENB
TGF5ZXIgKnN1YmxheWVyIGluIFtsYXllciBzdWJsYXllcnNdKSB7Ci0gICAgICAgIFtzdWJsYXll
ciBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLjUsIDAuNSldOwotICAgICAgICBbc3VibGF5
ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChsYXllckJvdW5kcyksIENH
UmVjdEdldE1pZFkobGF5ZXJCb3VuZHMpKV07Ci0gICAgfQotICAgIFtDQVRyYW5zYWN0aW9uIGNv
bW1pdF07Ci19CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiA6
IE5TT2JqZWN0CkBAIC02MTAsNiArNTk3LDggQEAgU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUNv
bG9yKQogewogICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXllcjsKICAgICBbc2VsZiBh
ZGRTdWJsYXllcjp2aWRlb1N1YmxheWVyXTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0QW5jaG9y
UG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUpXTsKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9z
aXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChbc2VsZiBib3VuZHNdKSwgQ0dSZWN0R2V0
TWlkWShbc2VsZiBib3VuZHNdKSldOwogfQogCiAtIChDQUxheWVyKil2aWRlb1N1YmxheWVyCkBA
IC02MjMsMjUgKzYxMiwyNiBAQCBTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29sb3IpCiAKICAg
ICBpZiAoIVtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXSB8fCAhX2F2UGxheWVyVmlld0Nv
bnRyb2xsZXIpCiAgICAgICAgIHJldHVybjsKLQotICAgIFVJVmlldyogcm9vdFZpZXcgPSBbW19h
dlBsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHdpbmRvd107Ci0gICAgaWYgKCFyb290VmlldykK
LSAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKLSAgICBO
U1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtzZWxmIGFuaW1hdGlvbkZvcktleTpA
ImJvdW5kcyJdLmR1cmF0aW9uOwotICAgIGlmICghYW5pbWF0aW9uRHVyYXRpb24pIC8vIGEgZHVy
YXRpb24gb2YgMCBmb3IgQ0EgbWVhbnMgMC4yNS4gVGhpcyBpcyBhIHdheSB0byBhcHByb3hpbWF0
ZSAwLgotICAgICAgICBhbmltYXRpb25EdXJhdGlvbiA9IDAuMDAxOwotICAgIFtDQVRyYW5zYWN0
aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOmFuaW1hdGlvbkR1cmF0aW9uXTsKLSAgICBbQ0FUcmFu
c2FjdGlvbiBzZXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjpbQ0FNZWRpYVRpbWluZ0Z1bmN0aW9u
IGZ1bmN0aW9uV2l0aE5hbWU6a0NBTWVkaWFUaW1pbmdGdW5jdGlvbkVhc2VJbkVhc2VPdXRdXTsK
LQotICAgIEZsb2F0UmVjdCByb290Qm91bmRzID0gW3Jvb3RWaWV3IGJvdW5kc107Ci0gICAgW19h
dlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdLT5zZXRWaWRlb0xheWVyRnJhbWUocm9vdEJvdW5k
cyk7Ci0KLSAgICBGbG9hdFJlY3Qgc291cmNlQm91bmRzID0gbGFyZ2VzdFJlY3RXaXRoQXNwZWN0
UmF0aW9JbnNpZGVSZWN0KENHUmVjdEdldFdpZHRoKGJvdW5kcykgLyBDR1JlY3RHZXRIZWlnaHQo
Ym91bmRzKSwgcm9vdEJvdW5kcyk7Ci0gICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zvcm0gPSBDQVRy
YW5zZm9ybTNETWFrZVNjYWxlKGJvdW5kcy5zaXplLndpZHRoIC8gc291cmNlQm91bmRzLndpZHRo
KCksIGJvdW5kcy5zaXplLmhlaWdodCAvIHNvdXJjZUJvdW5kcy5oZWlnaHQoKSwgMSk7CisgICAg
Q0FBbmltYXRpb24gKmFuaW1hdGlvbiA9IFtzZWxmIGFuaW1hdGlvbkZvcktleTpAImJvdW5kcyJd
OworICAgIGlmIChbYW5pbWF0aW9uIGlzS2luZE9mQ2xhc3M6W0NBQmFzaWNBbmltYXRpb24gY2xh
c3NdXSkgeworICAgICAgICBDQUJhc2ljQW5pbWF0aW9uICpiYXNpY0FuaW1hdGlvbiA9IChDQUJh
c2ljQW5pbWF0aW9uICopYW5pbWF0aW9uOworICAgICAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmlt
YXRpb25EdXJhdGlvbjpiYXNpY0FuaW1hdGlvbi5kdXJhdGlvbl07CisgICAgICAgIFtDQVRyYW5z
YWN0aW9uIHNldEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOmJhc2ljQW5pbWF0aW9uLnRpbWluZ0Z1
bmN0aW9uXTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZDxDQUFjdGlvbj4gYWN0aW9uID0gbmls
OyAvLyBbc2VsZiBhY3Rpb25Gb3JLZXk6QCJib3VuZHMiXTsKKyAgICAgICAgaWYgKGFjdGlvbiAm
JiBhY3Rpb24gIT0gW05TTnVsbCBudWxsXSkgeworICAgICAgICAgICAgW0NBVHJhbnNhY3Rpb24g
c2V0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246W0NBTWVkaWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlv
bldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25FYXNlSW5FYXNlT3V0XV07CisgICAgICAg
ICAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjowLjRdOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107
CisgICAgfQorICAgIAogICAgIFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFr
ZShDR1JlY3RHZXRNaWRYKGJvdW5kcyksIENHUmVjdEdldE1pZFkoYm91bmRzKSldOwotICAgIFtf
dmlkZW9TdWJsYXllciBzZXRTdWJsYXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIAorICAg
IGlmIChbX2F2UGxheWVyQ29udHJvbGxlciBkZWxlZ2F0ZV0pCisgICAgICAgIFtfYXZQbGF5ZXJD
b250cm9sbGVyIGRlbGVnYXRlXS0+c2V0VmlkZW9MYXllckZyYW1lKGJvdW5kcyk7CiAgICAgW0NB
VHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
Lm1tCmluZGV4IGZmN2UxY2QzOTU2NWQzNzRlMzg1MzI1NmY2NGVkNzk2M2YwYjI3ODguLmMxY2E0
YzQyYmUyNjAwMGUwOTE1NjhlMDhjMGUwYzJkZTViZjk2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQubW0KQEAgLTI4NSw2ICsyODUsOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0xheWVyRnJhbWUoRmxvYXRSZWN0IHJlY3Qp
CiB7CiAgICAgbV92aWRlb0ZyYW1lID0gcmVjdDsKICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXll
ciBzZXRCb3VuZHM6Q0dSZWN0KHJlY3QpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBz
ZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLjUsIDAuNSldOworICAgIFttX3ZpZGVvRnVsbHNj
cmVlbkxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKDAsIDApXTsKICAgICBtX3ZpZGVvRWxl
bWVudC0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUocmVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oCmluZGV4IDFkMDExZjhhYzRlNjVhOTMyZTllNTM1ZTVlOTcxYjdhMGNiYTExZTAu
LjJjYTVmZTVkYTY1NzllOTcwOWFlYzFiZTI2NGI2NTFlN2FhNGU3OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaApAQCAtODYsNiArODYsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUGFnZVBy
b3h5KiBtX3BhZ2U7CiAgICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fbGF5ZXJIb3N0Owor
ICAgIG1hY2hfcG9ydF9uYW1lX3QgbV9sYXN0RmVuY2VQb3J0OwogfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCAzNjc3ZWExZWNh
MTgwZjgwNDljZDk2M2JhNDNjMGJmOTJjYWU4Y2Y4Li43YWY1MDY1MGQ3ZGFhYjc1YzAwZWIwNWQ1
NGUyNmViMWViNDExZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMzQsNyAr
MzQsMTAgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktTQW5p
bWF0aW9uRmVuY2UuaD4KKyNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU0FuaW1hdGlvbkZl
bmNlX1ByaXZhdGUuaD4KICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlvbi5oPgorI2lt
cG9ydCA8VUlLaXQvVUlXaW5kb3dfUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaW1lUmFu
Z2VzLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIApAQCAtNTAsNyArNTMs
NyBAQCBQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eT4gV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdAogfQogCiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmIHBh
Z2UpCi0gICAgOiBtX3BhZ2UoJnBhZ2UpCisgICAgOiBtX3BhZ2UoJnBhZ2UpLCBtX2xhc3RGZW5j
ZVBvcnQoMCkKIHsKICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7CiAgICAgc2V0V2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWwodGhpcyk7CkBAIC0yMTEsOCArMjE0LDIxIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjplbmRTY2FubmluZygpCiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpzZXRWaWRlb0xheWVyRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0IGZyYW1lKQog
ewotICAgIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQoW1VJV2luZG93IF9zeW5jaHJvbml6ZURy
YXdpbmdBY3Jvc3NQcm9jZXNzZXNdLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCk7Ci0gICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZXRWaWRlb0xh
eWVyRnJhbWVGZW5jZWQoZnJhbWUsIGZlbmNlUG9ydCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAg
IEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBCS1NBbmltYXRpb25GZW5jZUhhbmRsZSogc3lu
Y2hyb25pemF0aW9uRmVuY2UgPSBbVUlXaW5kb3cgX3N5bmNocm9uaXplZERyYXdpbmdGZW5jZV07
CisgICAgICAgIG1hY2hfcG9ydF9uYW1lX3QgZmVuY2VQb3J0ID0gW3N5bmNocm9uaXphdGlvbkZl
bmNlIENBUG9ydF07CisKKyAgICAgICAgaWYgKGZlbmNlUG9ydCAhPSBtX2xhc3RGZW5jZVBvcnQp
IHsKKyAgICAgICAgICAgIG1fbGFzdEZlbmNlUG9ydCA9IGZlbmNlUG9ydDsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgZmxvYXQgY29udHJvbFBvaW50MVsyXSA9IHswLCAwfTsKKyAgICAgICAg
ICAgIGZsb2F0IGNvbnRyb2xQb2ludDJbMl0gPSB7MCwgMH07CisgICAgICAgICAgICBDQU1lZGlh
VGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gW0NBVHJhbnNhY3Rpb24gYW5pbWF0aW9u
VGltaW5nRnVuY3Rpb25dOworICAgICAgICAgICAgW3RpbWluZ0Z1bmN0aW9uIGdldENvbnRyb2xQ
b2ludEF0SW5kZXg6MSB2YWx1ZXM6Y29udHJvbFBvaW50MV07CisgICAgICAgICAgICBbdGltaW5n
RnVuY3Rpb24gZ2V0Q29udHJvbFBvaW50QXRJbmRleDoyIHZhbHVlczpjb250cm9sUG9pbnQyXTsK
KyAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6U2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKGZyYW1lLCBbQ0FUcmFuc2FjdGlvbiBkaXNh
YmxlQWN0aW9uc10sIFtDQVRyYW5zYWN0aW9uIGFuaW1hdGlvbkR1cmF0aW9uXSwgdGltaW5nRnVu
Y3Rpb24gIT0gbmlsLCBGbG9hdFBvaW50KGNvbnRyb2xQb2ludDFbMF0sIGNvbnRyb2xQb2ludDFb
MV0pLCBGbG9hdFBvaW50KGNvbnRyb2xQb2ludDJbMF0sIGNvbnRyb2xQb2ludDJbMV0pLCBJUEM6
OkF0dGFjaG1lbnQoZmVuY2VQb3J0LCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYkNvcmU6OldlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkgZ3Jhdml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRl
eCBiMzM4Mjc2MWI5ZTc3ZWJhNDdkYzY2Yjk5MTE1YWFhNmVhYzAyYWQ1Li4zYjA1YjhkODU0NmFi
OTI5MDZmYzk1ZjY3ODI4ZDcxMDA1NjU5NmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04OCw3
ICs4OCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVk
KTsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQ
YWdlVmlzaWJsZSk7Ci0gICAgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6
RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCk7CisgICAgdm9pZCBz
ZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgYm9vbCBk
aXNhYmxlQWN0aW9ucywgZG91YmxlIGR1cmF0aW9uLCBib29sIHRpbWluZ0Z1bmN0aW9uLCBXZWJD
b3JlOjpGbG9hdFBvaW50IGNvbnRyb2xQb2ludDEsIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udHJv
bFBvaW50MiwgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCk7CiAgICAgCiAgICAgV2ViUGFnZSog
bV9wYWdlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50PiBtX3ZpZGVvRWxl
bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGQzYzY4YTM2
NmNmODE1NGVkZGRiMTg2ZGQyZTZjOTM0N2ZkYTUyYWIuLjIyNDZhZWZiYzM1MWYzODZjYzI1ZTBi
Zjg1ZWI3NWE5NzBiYTM4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMzcsNyArMzcsNyBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
IHsKICAgICBEaWRFeGl0RnVsbHNjcmVlbigpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVuKCkKICAg
ICBEaWRDbGVhbnVwRnVsbHNjcmVlbigpCi0gICAgU2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdl
YkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCisgICAg
U2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIGJvb2wg
ZGlzYWJsZUFjdGlvbnMsIGRvdWJsZSBkdXJhdGlvbiwgYm9vbCB0aW1pbmdGdW5jdGlvbiwgV2Vi
Q29yZTo6RmxvYXRQb2ludCBjb250cm9sUG9pbnQxLCBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRy
b2xQb2ludDIsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiAgICAgU2V0VmlkZW9MYXllckdy
YXZpdHlFbnVtKHVuc2lnbmVkIGdyYXZpdHkpCiAgICAgU2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1
aW50NjRfdCBpbmRleCkKICAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5k
ZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCAxYzlhMzU4MzIyYjYzZmU1NGU4YTliYWY1YzA1
ZmJmOGZiNzFmN2M0Li4wM2NlZGZlN2FlYTBmYTE1MTkyZDBjYTAwZjZhMTQzMjIwOWJlZGIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI3MCw5ICsyNzAsMTMgQEAgdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoYm9vbCBpc1BhZ2VW
aXNpYmxlKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodHJ1ZSwgY2xpZW50UmVjdEZvckVs
ZW1lbnQobV92aWRlb0VsZW1lbnQuZ2V0KCkpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAgICAg
Ci12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNl
ZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQor
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQo
V2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgYm9vbCBkaXNhYmxlQWN0aW9ucywgZG91YmxlIGR1
cmF0aW9uLCBib29sIHRpbWluZ0Z1bmN0aW9uLCBGbG9hdFBvaW50IGNvbnRyb2xQb2ludDEsIEZs
b2F0UG9pbnQgY29udHJvbFBvaW50MiwgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCkKIHsKLSAg
ICBpZiAobV9sYXllckhvc3RpbmdDb250ZXh0KQorICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2Fi
bGVBY3Rpb25zOmRpc2FibGVBY3Rpb25zXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRp
b25EdXJhdGlvbjpkdXJhdGlvbl07CisgICAgaWYgKHRpbWluZ0Z1bmN0aW9uKQorICAgICAgICBb
Q0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjpbQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uIGZ1bmN0aW9uV2l0aENvbnRyb2xQb2ludHM6Y29udHJvbFBvaW50MS54KCkgOmNvbnRy
b2xQb2ludDEueSgpIDpjb250cm9sUG9pbnQyLngoKSA6Y29udHJvbFBvaW50Mi55KCldXTsKKyAg
ICBpZiAobV9sYXllckhvc3RpbmdDb250ZXh0ICYmIGZlbmNlUG9ydC5wb3J0KCkpCiAgICAgICAg
IG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KGZlbmNlUG9ydC5wb3J0KCkpOwog
ICAgIHNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOwogICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRl
KG1hY2hfdGFza19zZWxmKCksIGZlbmNlUG9ydC5wb3J0KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249594</attachid>
            <date>2015-03-27 12:12:36 -0700</date>
            <delta_ts>2015-03-27 14:59:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143131-20150327121157.patch</filename>
            <type>text/plain</type>
            <size>20003</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODIyODgwMTIwYTYyYzI2
YWY2MTVjNmFjZGJlMTUyMzk0NWVhNjg4Yy4uMjYwYTA1NmUxZjgzMTk3ODMzZGMzMGNhN2M4MGYw
MTQ3NjYwOGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTAzLTI3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTeW5jaHJvbml6ZSBmdWxs
c2NyZWVuIGFuaW1hdGlvbiBiZXR3ZWVuIHByb2Nlc3Nlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzEzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJBVlZpZGVvTGF5ZXIgc2V0Vmlk
ZW9TdWJsYXllcjpdKTogU2V0IGluaXRpYWwgdmlkZW8gbGF5ZXIgYW5jaG9yIGluIGNlbnRlci4K
KyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIHNldEJvdW5kczpdKTogQXBwbHkgYm91bmRzIGFu
aW1hdGlvbiBwcm9wZXJ0aWVzIHRvIHRoZSBDQVRyYW5zYWN0aW9uCisgICAgICAgICgtW1dlYkFW
UGxheWVyQ29udHJvbGxlciBsYXlvdXRTdWJsYXllcnNPZkxheWVyOl0pOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5t
bTogCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0Vmlk
ZW9MYXllckZyYW1lKTogYW5jaG9yIGxheWVyIGluIGNlbnRlci4KKwogMjAxNS0wMy0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdW05ldHdvcmtDYWNo
ZV0gV2Ugb25seSBjYWNoZSByZXNwb25zZXMgd2l0aCBzdGF0dXMgY29kZXMgdGhhdCBhcmUgY2Fj
aGVhYmxlIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhYzg2ZDA1ZjY0ZTIzMTc4NWZkYzIxZmQ5
M2M0NjY0YjYyYzQwZTJmLi5kNzBkNmY5NzhmYThjODU2MGU2ZDZkNTg3ZDI0YzM4OTA0NDZhYzMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDMtMjcgIEplcmVteSBKb25lcyAg
PGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIFN5bmNocm9uaXplIGZ1bGxzY3JlZW4gYW5p
bWF0aW9uIGJldHdlZW4gcHJvY2Vzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2VuZCBDQVRyYW5zYWN0aW9uIGFuaW1hdGlvbiBwYXJhbWV0ZXJz
IHRvIHRoZSB3ZWIgY29udGVudCBwcm9jZXNzIHRvIG1ha2UgYSBtYXRjaGluZyBhbmltYXRpb24u
CisgICAgICAgIFN5bmNyb25pemUgdGhlIGFuaW1hdGlvbnMgaW4gZWFjaCBwcm9jZXNzIHdpdGgg
dGhlIHN5c3RlbSBhbmltYXRpb24gZmVuY2UuIE1ha2Ugc3VyZSB3ZSBkb24ndCAKKyAgICAgICAg
c2VuZCB0d28gdHJhbnNhY3Rpb25zIG9uIHRoZSBzYW1lIGZlbmNlLCBiZWNhdXNlIHRoZSB3ZWIg
Y29udGVudCBwcm9jZXNzIHdpbGwgc3RpbGwgYmUgYmxvY2tlZCBoYW5kbGluZyBoZSBmaXJzdCBv
bmUsCisgICAgICAgIGFuZCB0aGUgVUkgcHJvY2VzcyB3aWxsIHRoZW4gYmxvY2sgb24gdGhlIHdl
YiBjb250ZW50IHByb2NlcyB1bnRpbCB0aGUgZmVuY2UgZXhwaXJlcy4KKworICAgICAgICAqIFBs
YXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaDogQWRkZWQKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOiBkZWNsYXJlIG1f
bGFzdEZlbmNlUG9ydAorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSk6IGluaXQgbV9sYXN0RmVu
Y2VQb3J0CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
c2V0VmlkZW9MYXllckZyYW1lKTogc2VuZCBhbmltYXRpb24gcHJvcGVydGllcywgdXNlIHN5c3Rl
bSBhbmltYXRpb24gZmVuY2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oOiBBZGQgbW9yZSBhbmltYXRpb24gcGFyYW1ldGVycy4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOiBk
aXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRl
b0xheWVyRnJhbWVGZW5jZWQpOiBBcHBseSBhbmltYXRpb24gcGFyYW1ldGVycy4KKwogMjAxNS0w
My0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdW05l
dHdvcmtDYWNoZV0gV2Ugb25seSBjYWNoZSByZXNwb25zZXMgd2l0aCBzdGF0dXMgY29kZXMgdGhh
dCBhcmUgY2FjaGVhYmxlIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpp
bmRleCAxYTAzYmRiMjM0M2FlNzZiNjhlYTI2MjFiMTQ5YmZkMTdkY2Q4YTJmLi43M2Q0OWU0ZjBm
ZGJiMDRjMWJjMzNkZjE2MjIyMDZhMTFiNzdkMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCkBAIC01MjAsMTkgKzUyMCw2IEBAIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlDb2xv
cikKICAgICByZXR1cm4gW05TU2V0IHNldFdpdGhPYmplY3RzOkAiZXh0ZXJuYWxQbGF5YmFja0Fj
dGl2ZSIsIG5pbF07CiB9CiAKLS0gKHZvaWQpbGF5b3V0U3VibGF5ZXJzT2ZMYXllcjooQ0FMYXll
ciAqKWxheWVyCi17Ci0gICAgQ0dSZWN0IGxheWVyQm91bmRzID0gW2xheWVyIGJvdW5kc107Ci0g
ICAgaWYgKHNlbGYuZGVsZWdhdGUpCi0gICAgICAgIHNlbGYuZGVsZWdhdGUtPnNldFZpZGVvTGF5
ZXJGcmFtZShDR1JlY3RNYWtlKDAsIDAsIENHUmVjdEdldFdpZHRoKGxheWVyQm91bmRzKSwgQ0dS
ZWN0R2V0SGVpZ2h0KGxheWVyQm91bmRzKSkpOwotICAgIAotICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKLSAgICBmb3IgKENBTGF5ZXIgKnN1YmxheWVyIGluIFtsYXllciBzdWJsYXllcnNdKSB7
Ci0gICAgICAgIFtzdWJsYXllciBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLjUsIDAuNSld
OwotICAgICAgICBbc3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlk
WChsYXllckJvdW5kcyksIENHUmVjdEdldE1pZFkobGF5ZXJCb3VuZHMpKV07Ci0gICAgfQotICAg
IFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Ci19CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQVZNZWRp
YVNlbGVjdGlvbk9wdGlvbiA6IE5TT2JqZWN0CkBAIC02MTAsNiArNTk3LDggQEAgU09GVF9MSU5L
X0NMQVNTKFVJS2l0LCBVSUNvbG9yKQogewogICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJs
YXllcjsKICAgICBbc2VsZiBhZGRTdWJsYXllcjp2aWRlb1N1YmxheWVyXTsKKyAgICBbX3ZpZGVv
U3VibGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUpXTsKKyAgICBbX3Zp
ZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChbc2VsZiBi
b3VuZHNdKSwgQ0dSZWN0R2V0TWlkWShbc2VsZiBib3VuZHNdKSldOwogfQogCiAtIChDQUxheWVy
Kil2aWRlb1N1YmxheWVyCkBAIC02MjMsMjUgKzYxMiwyMCBAQCBTT0ZUX0xJTktfQ0xBU1MoVUlL
aXQsIFVJQ29sb3IpCiAKICAgICBpZiAoIVtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXSB8
fCAhX2F2UGxheWVyVmlld0NvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybjsKLQotICAgIFVJVmll
dyogcm9vdFZpZXcgPSBbW19hdlBsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHdpbmRvd107Ci0g
ICAgaWYgKCFyb290VmlldykKLSAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFtDQVRyYW5zYWN0
aW9uIGJlZ2luXTsKLSAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtzZWxm
IGFuaW1hdGlvbkZvcktleTpAImJvdW5kcyJdLmR1cmF0aW9uOwotICAgIGlmICghYW5pbWF0aW9u
RHVyYXRpb24pIC8vIGEgZHVyYXRpb24gb2YgMCBmb3IgQ0EgbWVhbnMgMC4yNS4gVGhpcyBpcyBh
IHdheSB0byBhcHByb3hpbWF0ZSAwLgotICAgICAgICBhbmltYXRpb25EdXJhdGlvbiA9IDAuMDAx
OwotICAgIFtDQVRyYW5zYWN0aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOmFuaW1hdGlvbkR1cmF0
aW9uXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjpbQ0FN
ZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6a0NBTWVkaWFUaW1pbmdGdW5jdGlv
bkVhc2VJbkVhc2VPdXRdXTsKLQotICAgIEZsb2F0UmVjdCByb290Qm91bmRzID0gW3Jvb3RWaWV3
IGJvdW5kc107Ci0gICAgW19hdlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdLT5zZXRWaWRlb0xh
eWVyRnJhbWUocm9vdEJvdW5kcyk7Ci0KLSAgICBGbG9hdFJlY3Qgc291cmNlQm91bmRzID0gbGFy
Z2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KENHUmVjdEdldFdpZHRoKGJvdW5kcykg
LyBDR1JlY3RHZXRIZWlnaHQoYm91bmRzKSwgcm9vdEJvdW5kcyk7Ci0gICAgQ0FUcmFuc2Zvcm0z
RCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGJvdW5kcy5zaXplLndpZHRoIC8g
c291cmNlQm91bmRzLndpZHRoKCksIGJvdW5kcy5zaXplLmhlaWdodCAvIHNvdXJjZUJvdW5kcy5o
ZWlnaHQoKSwgMSk7CisgICAgQ0FBbmltYXRpb24gKmFuaW1hdGlvbiA9IFtzZWxmIGFuaW1hdGlv
bkZvcktleTpAImJvdW5kcyJdOworICAgIGlmIChbYW5pbWF0aW9uIGlzS2luZE9mQ2xhc3M6W0NB
QmFzaWNBbmltYXRpb24gY2xhc3NdXSkgeworICAgICAgICBDQUJhc2ljQW5pbWF0aW9uICpiYXNp
Y0FuaW1hdGlvbiA9IChDQUJhc2ljQW5pbWF0aW9uICopYW5pbWF0aW9uOworICAgICAgICBbQ0FU
cmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjpiYXNpY0FuaW1hdGlvbi5kdXJhdGlvbl07
CisgICAgICAgIFtDQVRyYW5zYWN0aW9uIHNldEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOmJhc2lj
QW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uXTsKKyAgICB9IGVsc2UKKyAgICAgICAgW0NBVHJhbnNh
Y3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsgLy8gcmRhcjovL3Byb2JsZW0vMTc5MDMwMjgK
KyAgICAKICAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0
R2V0TWlkWChib3VuZHMpLCBDR1JlY3RHZXRNaWRZKGJvdW5kcykpXTsKLSAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0U3VibGF5ZXJUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICAKKyAgICBpZiAoW19h
dlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdKQorICAgICAgICBbX2F2UGxheWVyQ29udHJvbGxl
ciBkZWxlZ2F0ZV0tPnNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOwogICAgIFtDQVRyYW5zYWN0
aW9uIGNvbW1pdF07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRl
eCBmZjdlMWNkMzk1NjVkMzc0ZTM4NTMyNTZmNjRlZDc5NjNmMGIyNzg4Li5jMWNhNGM0MmJlMjYw
MDBlMDkxNTY4ZTA4YzBlMGMyZGU1YmY5NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50Lm1tCkBAIC0yODUsNiArMjg1LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudDo6c2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVjdCByZWN0KQogewogICAg
IG1fdmlkZW9GcmFtZSA9IHJlY3Q7CiAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0Qm91
bmRzOkNHUmVjdChyZWN0KV07CisgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0QW5jaG9y
UG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXll
ciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSgwLCAwKV07CiAgICAgbV92aWRlb0VsZW1lbnQtPnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTVmNDM5MzA0MGRlOGNiZTdhNTgyNGFkMDY4OWYwOTc3ZTI3ZmRlYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEku
aApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCisKKyNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU0FuaW1hdGlvbkZlbmNlLmg+Cisj
aW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NBbmltYXRpb25GZW5jZV9Qcml2YXRlLmg+CisK
KyNlbHNlCisKK0BpbnRlcmZhY2UgQktTQW5pbWF0aW9uRmVuY2VIYW5kbGUgOiBOU09iamVjdCA8
QlNYUENDb2RpbmcsIE5TU2VjdXJlQ29kaW5nLCBOU0NvcHlpbmc+CistIChtYWNoX3BvcnRfdClD
QVBvcnQ7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IGE4NzRhNzlmN2Y1ZjIw
NmNjMTJiNzVlZTgwMzIwMzNiMzU1OWVmNzMuLjAzYTUyYTU0N2M0YjY1MjY1MWZiOTI3NjI4NDdm
MTc3YWFlMjM4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3Mv
VUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
LmgKQEAgLTYyMyw4ICs2MjMsMTEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1VJQmFj
a2Ryb3BWaWV3U3R5bGVQcml2YXRlKSB7CiAtIChVSVBhbkdlc3R1cmVSZWNvZ25pemVyICopZ2Vz
dHVyZVJlY29nbml6ZXJGb3JJbnRlcmFjdGl2ZVRyYW5zaXRpb246KF9VSU5hdmlnYXRpb25JbnRl
cmFjdGl2ZVRyYW5zaXRpb25CYXNlICopaW50ZXJhY3RpdmVUcmFuc2l0aW9uIFdpdGhUYXJnZXQ6
KGlkKXRhcmdldCBhY3Rpb246KFNFTClhY3Rpb247CiBAZW5kCiAKK0BjbGFzcyBCS1NBbmltYXRp
b25GZW5jZUhhbmRsZTsKKwogQGludGVyZmFjZSBVSVdpbmRvdyAoRGV0YWlscykKICsgKG1hY2hf
cG9ydF90KV9zeW5jaHJvbml6ZURyYXdpbmdBY3Jvc3NQcm9jZXNzZXM7CisrIChCS1NBbmltYXRp
b25GZW5jZUhhbmRsZSAqKV9zeW5jaHJvbml6ZWREcmF3aW5nRmVuY2U7CiBAZW5kCiAKIEBpbnRl
cmZhY2UgVUlXZWJTY3JvbGxWaWV3IDogVUlTY3JvbGxWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaAppbmRleCAxZDAxMWY4YWM0ZTY1YTkzMmU5ZTUzNWU1ZTk3MWI3YTBjYmExMWUwLi4yY2E1
ZmU1ZGE2NTc5ZTk3MDlhZWMxYmUyNjRiNjUxZTdhYTRlNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5LmgKQEAgLTg2LDYgKzg2LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSog
bV9wYWdlOwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX2xheWVySG9zdDsKKyAgICBt
YWNoX3BvcnRfbmFtZV90IG1fbGFzdEZlbmNlUG9ydDsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggMzY3N2VhMWVjYTE4MGY4
MDQ5Y2Q5NjNiYTQzYzBiZjkyY2FlOGNmOC4uNzNhZDI1MDU3OWFhZDM5NjMxMzcyOGVjMGI0YzZi
ZTE5M2I1ODdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAorI2ltcG9ydCAiQmFja0JvYXJkU2VydmljZXNTUEku
aCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQg
IlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKQEAgLTUxLDYgKzUyLDcgQEAg
UGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6Y3JlYXQKIAogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQogICAg
IDogbV9wYWdlKCZwYWdlKQorICAgICwgbV9sYXN0RmVuY2VQb3J0KDApCiB7CiAgICAgbV9wYWdl
LT5wcm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQoKSwg
KnRoaXMpOwogICAgIHNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKHRoaXMpOwpAQCAtMjExLDgg
KzIxMywyMSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZW5kU2Nhbm5p
bmcoKQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXll
ckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCBmcmFtZSkKIHsKLSAgICBJUEM6OkF0dGFjaG1lbnQg
ZmVuY2VQb3J0KFtVSVdpbmRvdyBfc3luY2hyb25pemVEcmF3aW5nQWNyb3NzUHJvY2Vzc2VzXSwg
TUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKGZyYW1lLCBm
ZW5jZVBvcnQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAg
ICAgICAgQktTQW5pbWF0aW9uRmVuY2VIYW5kbGUqIHN5bmNocm9uaXphdGlvbkZlbmNlID0gW1VJ
V2luZG93IF9zeW5jaHJvbml6ZWREcmF3aW5nRmVuY2VdOworICAgICAgICBtYWNoX3BvcnRfbmFt
ZV90IGZlbmNlUG9ydCA9IFtzeW5jaHJvbml6YXRpb25GZW5jZSBDQVBvcnRdOworCisgICAgICAg
IGlmIChmZW5jZVBvcnQgIT0gbV9sYXN0RmVuY2VQb3J0KSB7CisgICAgICAgICAgICBtX2xhc3RG
ZW5jZVBvcnQgPSBmZW5jZVBvcnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZsb2F0IGNv
bnRyb2xQb2ludDFbMl0gPSB7MCwgMH07CisgICAgICAgICAgICBmbG9hdCBjb250cm9sUG9pbnQy
WzJdID0gezAsIDB9OworICAgICAgICAgICAgQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdG
dW5jdGlvbiA9IFtDQVRyYW5zYWN0aW9uIGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uXTsKKyAgICAg
ICAgICAgIFt0aW1pbmdGdW5jdGlvbiBnZXRDb250cm9sUG9pbnRBdEluZGV4OjEgdmFsdWVzOmNv
bnRyb2xQb2ludDFdOworICAgICAgICAgICAgW3RpbWluZ0Z1bmN0aW9uIGdldENvbnRyb2xQb2lu
dEF0SW5kZXg6MiB2YWx1ZXM6Y29udHJvbFBvaW50Ml07CisgICAgICAgICAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlNldFZpZGVvTGF5ZXJGcmFt
ZUZlbmNlZChmcmFtZSwgW0NBVHJhbnNhY3Rpb24gZGlzYWJsZUFjdGlvbnNdLCBbQ0FUcmFuc2Fj
dGlvbiBhbmltYXRpb25EdXJhdGlvbl0sIHRpbWluZ0Z1bmN0aW9uICE9IG5pbCwgRmxvYXRQb2lu
dChjb250cm9sUG9pbnQxWzBdLCBjb250cm9sUG9pbnQxWzFdKSwgRmxvYXRQb2ludChjb250cm9s
UG9pbnQyWzBdLCBjb250cm9sUG9pbnQyWzFdKSwgSVBDOjpBdHRhY2htZW50KGZlbmNlUG9ydCwg
TUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgICAgIH0K
KyAgICB9CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRl
b0xheWVyR3Jhdml0eShXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2
aXR5IGdyYXZpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggN2IxNjAzNzkzODRlYWQwOGFiY2ExYTVkZDEzOTZlYmE3MThhMzE0
Yy4uYzg1N2Q5MjM1NmE1NTY5MjA3ZTIxYjkwODZlNDlhYTc1N2ZmZmU3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODMyLDYg
KzgzMiw3IEBACiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaCAqLzsgfTsKIAkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjQx
OEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkzRjc4N0NFRTFBQzVFMUMwMDA0
MTdDNUIgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNzg3Q0VBMUFDNUQ1ODIwMDQxN0M1QiAvKiBCYWNrQm9h
cmRTZXJ2aWNlc1NQSS5oICovOyB9OwogCQkzRjg3QjlCRDE1ODk0MDEyMDA5MEZGNjIgLyogV2Vi
Q29sb3JDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICov
OyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkz
RjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CiAJCTNGODdCOUMwMTU4OTQw
RDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9y
UGlja2VyLmggKi87IH07CkBAIC0yOTk3LDYgKzI5OTgsNyBAQAogCQkzRjQxOEVGNjE4ODdCRDk3
MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1
RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTNGNDE4RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzRjc4N0NFQTFBQzVENTgyMDA0MTdDNUIgLyogQmFja0JvYXJkU2VydmljZXNTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja0JvYXJkU2VydmljZXNTUEku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYy
IC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb2xvckNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
Rjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTczOTYsNiArNzM5OCw3IEBACiAJCUNFMUEwQkNC
MUE0OEU2QzYwMDU0RUY3NCAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTNGNzg3Q0VBMUFDNUQ1ODIwMDQxN0M1QiAvKiBCYWNrQm9hcmRTZXJ2
aWNlc1NQSS5oICovLAogCQkJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBCS1NQcm9jZXNz
QXNzZXJ0aW9uU1BJLmggKi8sCiAJCQkJQ0UxQTBCQ0QxQTQ4RTZDNjAwNTRFRjc0IC8qIENvcmVQ
REZTUEkuaCAqLywKIAkJCQlDRTFBMEJDRTFBNDhFNkM2MDA1NEVGNzQgLyogRGF0YURldGVjdG9y
c1VJU1BJLmggKi8sCkBAIC03NjMxLDYgKzc2MzQsNyBAQAogCQkJCTUxOEU4RUY5MTZCMjA5MUMw
MEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
MkY1OEEzMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NEMTAyREExODY2NzcwNjAwRUQ0MjlEIC8qIEF1dG9Db3Jy
ZWN0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTNGNzg3Q0VFMUFDNUUxQzAwMDQx
N0M1QiAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxQTBC
RDIxQTQ4RTZDNjAwNTRFRjc0IC8qIEJLU1Byb2Nlc3NBc3NlcnRpb25TUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxNjRBMkYyMTkxQUYxNEUwMDEwNzM3RCAvKiBCbG9iRGF0YUZpbGVSZWZlcmVu
Y2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3MDg3NkMxNkQ2
Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuaAppbmRleCBiMzM4Mjc2MWI5ZTc3ZWJhNDdkYzY2Yjk5MTE1YWFhNmVhYzAyYWQ1
Li4zYjA1YjhkODU0NmFiOTI5MDZmYzk1ZjY3ODI4ZDcxMDA1NjU5NmU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCkBAIC04OCw3ICs4OCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckdyYXZp
dHlFbnVtKHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKGJvb2wgaXNQYWdlVmlzaWJsZSk7Ci0gICAgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWVG
ZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9y
dCk7CisgICAgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0
IGJvdW5kcywgYm9vbCBkaXNhYmxlQWN0aW9ucywgZG91YmxlIGR1cmF0aW9uLCBib29sIHRpbWlu
Z0Z1bmN0aW9uLCBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRyb2xQb2ludDEsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgY29udHJvbFBvaW50MiwgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCk7CiAgICAg
CiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVt
ZW50PiBtX3ZpZGVvRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmlu
CmluZGV4IGQzYzY4YTM2NmNmODE1NGVkZGRiMTg2ZGQyZTZjOTM0N2ZkYTUyYWIuLjIyNDZhZWZi
YzM1MWYzODZjYzI1ZTBiZjg1ZWI3NWE5NzBiYTM4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMzcsNyArMzcsNyBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBEaWRFeGl0RnVsbHNjcmVlbigpCiAgICAgRGlkRW50ZXJG
dWxsc2NyZWVuKCkKICAgICBEaWRDbGVhbnVwRnVsbHNjcmVlbigpCi0gICAgU2V0VmlkZW9MYXll
ckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBm
ZW5jZVBvcnQpCisgICAgU2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVj
dCBib3VuZHMsIGJvb2wgZGlzYWJsZUFjdGlvbnMsIGRvdWJsZSBkdXJhdGlvbiwgYm9vbCB0aW1p
bmdGdW5jdGlvbiwgV2ViQ29yZTo6RmxvYXRQb2ludCBjb250cm9sUG9pbnQxLCBXZWJDb3JlOjpG
bG9hdFBvaW50IGNvbnRyb2xQb2ludDIsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiAgICAg
U2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkIGdyYXZpdHkpCiAgICAgU2VsZWN0QXVk
aW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKICAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRp
b24odWludDY0X3QgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCAxYzlhMzU4MzIyYjYz
ZmU1NGU4YTliYWY1YzA1ZmJmOGZiNzFmN2M0Li4wM2NlZGZlN2FlYTBmYTE1MTkyZDBjYTAwZjZh
MTQzMjIwOWJlZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI3MCw5ICsyNzAsMTMgQEAg
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoYm9vbCBpc1BhZ2VWaXNpYmxlKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodHJ1ZSwg
Y2xpZW50UmVjdEZvckVsZW1lbnQobV92aWRlb0VsZW1lbnQuZ2V0KCkpKSwgbV9wYWdlLT5wYWdl
SUQoKSk7CiB9CiAgICAgCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVv
TGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1l
bnQgZmVuY2VQb3J0KQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xh
eWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgYm9vbCBkaXNhYmxlQWN0
aW9ucywgZG91YmxlIGR1cmF0aW9uLCBib29sIHRpbWluZ0Z1bmN0aW9uLCBGbG9hdFBvaW50IGNv
bnRyb2xQb2ludDEsIEZsb2F0UG9pbnQgY29udHJvbFBvaW50MiwgSVBDOjpBdHRhY2htZW50IGZl
bmNlUG9ydCkKIHsKLSAgICBpZiAobV9sYXllckhvc3RpbmdDb250ZXh0KQorICAgIFtDQVRyYW5z
YWN0aW9uIHNldERpc2FibGVBY3Rpb25zOmRpc2FibGVBY3Rpb25zXTsKKyAgICBbQ0FUcmFuc2Fj
dGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjpkdXJhdGlvbl07CisgICAgaWYgKHRpbWluZ0Z1bmN0
aW9uKQorICAgICAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjpb
Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aENvbnRyb2xQb2ludHM6Y29udHJvbFBv
aW50MS54KCkgOmNvbnRyb2xQb2ludDEueSgpIDpjb250cm9sUG9pbnQyLngoKSA6Y29udHJvbFBv
aW50Mi55KCldXTsKKyAgICBpZiAobV9sYXllckhvc3RpbmdDb250ZXh0ICYmIGZlbmNlUG9ydC5w
b3J0KCkpCiAgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KGZlbmNl
UG9ydC5wb3J0KCkpOwogICAgIHNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOwogICAgIG1hY2hf
cG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIGZlbmNlUG9ydC5wb3J0KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249610</attachid>
            <date>2015-03-27 14:59:07 -0700</date>
            <delta_ts>2015-04-02 18:47:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143131-20150327145828.patch</filename>
            <type>text/plain</type>
            <size>19962</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODIyODgwMTIwYTYyYzI2
YWY2MTVjNmFjZGJlMTUyMzk0NWVhNjg4Yy4uMjYwYTA1NmUxZjgzMTk3ODMzZGMzMGNhN2M4MGYw
MTQ3NjYwOGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTAzLTI3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBTeW5jaHJvbml6ZSBmdWxs
c2NyZWVuIGFuaW1hdGlvbiBiZXR3ZWVuIHByb2Nlc3Nlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzEzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJBVlZpZGVvTGF5ZXIgc2V0Vmlk
ZW9TdWJsYXllcjpdKTogU2V0IGluaXRpYWwgdmlkZW8gbGF5ZXIgYW5jaG9yIGluIGNlbnRlci4K
KyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIHNldEJvdW5kczpdKTogQXBwbHkgYm91bmRzIGFu
aW1hdGlvbiBwcm9wZXJ0aWVzIHRvIHRoZSBDQVRyYW5zYWN0aW9uCisgICAgICAgICgtW1dlYkFW
UGxheWVyQ29udHJvbGxlciBsYXlvdXRTdWJsYXllcnNPZkxheWVyOl0pOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5t
bTogCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0Vmlk
ZW9MYXllckZyYW1lKTogYW5jaG9yIGxheWVyIGluIGNlbnRlci4KKwogMjAxNS0wMy0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdW05ldHdvcmtDYWNo
ZV0gV2Ugb25seSBjYWNoZSByZXNwb25zZXMgd2l0aCBzdGF0dXMgY29kZXMgdGhhdCBhcmUgY2Fj
aGVhYmxlIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhYzg2ZDA1ZjY0ZTIzMTc4NWZkYzIxZmQ5
M2M0NjY0YjYyYzQwZTJmLi5kNzBkNmY5NzhmYThjODU2MGU2ZDZkNTg3ZDI0YzM4OTA0NDZhYzMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDMtMjcgIEplcmVteSBKb25lcyAg
PGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIFN5bmNocm9uaXplIGZ1bGxzY3JlZW4gYW5p
bWF0aW9uIGJldHdlZW4gcHJvY2Vzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2VuZCBDQVRyYW5zYWN0aW9uIGFuaW1hdGlvbiBwYXJhbWV0ZXJz
IHRvIHRoZSB3ZWIgY29udGVudCBwcm9jZXNzIHRvIG1ha2UgYSBtYXRjaGluZyBhbmltYXRpb24u
CisgICAgICAgIFN5bmNyb25pemUgdGhlIGFuaW1hdGlvbnMgaW4gZWFjaCBwcm9jZXNzIHdpdGgg
dGhlIHN5c3RlbSBhbmltYXRpb24gZmVuY2UuIE1ha2Ugc3VyZSB3ZSBkb24ndCAKKyAgICAgICAg
c2VuZCB0d28gdHJhbnNhY3Rpb25zIG9uIHRoZSBzYW1lIGZlbmNlLCBiZWNhdXNlIHRoZSB3ZWIg
Y29udGVudCBwcm9jZXNzIHdpbGwgc3RpbGwgYmUgYmxvY2tlZCBoYW5kbGluZyBoZSBmaXJzdCBv
bmUsCisgICAgICAgIGFuZCB0aGUgVUkgcHJvY2VzcyB3aWxsIHRoZW4gYmxvY2sgb24gdGhlIHdl
YiBjb250ZW50IHByb2NlcyB1bnRpbCB0aGUgZmVuY2UgZXhwaXJlcy4KKworICAgICAgICAqIFBs
YXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaDogQWRkZWQKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOiBkZWNsYXJlIG1f
bGFzdEZlbmNlUG9ydAorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSk6IGluaXQgbV9sYXN0RmVu
Y2VQb3J0CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
c2V0VmlkZW9MYXllckZyYW1lKTogc2VuZCBhbmltYXRpb24gcHJvcGVydGllcywgdXNlIHN5c3Rl
bSBhbmltYXRpb24gZmVuY2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oOiBBZGQgbW9yZSBhbmltYXRpb24gcGFyYW1ldGVycy4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOiBk
aXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRl
b0xheWVyRnJhbWVGZW5jZWQpOiBBcHBseSBhbmltYXRpb24gcGFyYW1ldGVycy4KKwogMjAxNS0w
My0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSzJdW05l
dHdvcmtDYWNoZV0gV2Ugb25seSBjYWNoZSByZXNwb25zZXMgd2l0aCBzdGF0dXMgY29kZXMgdGhh
dCBhcmUgY2FjaGVhYmxlIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpp
bmRleCAxYTAzYmRiMjM0M2FlNzZiNjhlYTI2MjFiMTQ5YmZkMTdkY2Q4YTJmLi43M2Q0OWU0ZjBm
ZGJiMDRjMWJjMzNkZjE2MjIyMDZhMTFiNzdkMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCkBAIC01MjAsMTkgKzUyMCw2IEBAIFNPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlDb2xv
cikKICAgICByZXR1cm4gW05TU2V0IHNldFdpdGhPYmplY3RzOkAiZXh0ZXJuYWxQbGF5YmFja0Fj
dGl2ZSIsIG5pbF07CiB9CiAKLS0gKHZvaWQpbGF5b3V0U3VibGF5ZXJzT2ZMYXllcjooQ0FMYXll
ciAqKWxheWVyCi17Ci0gICAgQ0dSZWN0IGxheWVyQm91bmRzID0gW2xheWVyIGJvdW5kc107Ci0g
ICAgaWYgKHNlbGYuZGVsZWdhdGUpCi0gICAgICAgIHNlbGYuZGVsZWdhdGUtPnNldFZpZGVvTGF5
ZXJGcmFtZShDR1JlY3RNYWtlKDAsIDAsIENHUmVjdEdldFdpZHRoKGxheWVyQm91bmRzKSwgQ0dS
ZWN0R2V0SGVpZ2h0KGxheWVyQm91bmRzKSkpOwotICAgIAotICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKLSAgICBmb3IgKENBTGF5ZXIgKnN1YmxheWVyIGluIFtsYXllciBzdWJsYXllcnNdKSB7
Ci0gICAgICAgIFtzdWJsYXllciBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLjUsIDAuNSld
OwotICAgICAgICBbc3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlk
WChsYXllckJvdW5kcyksIENHUmVjdEdldE1pZFkobGF5ZXJCb3VuZHMpKV07Ci0gICAgfQotICAg
IFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Ci19CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQVZNZWRp
YVNlbGVjdGlvbk9wdGlvbiA6IE5TT2JqZWN0CkBAIC02MTAsNiArNTk3LDggQEAgU09GVF9MSU5L
X0NMQVNTKFVJS2l0LCBVSUNvbG9yKQogewogICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJs
YXllcjsKICAgICBbc2VsZiBhZGRTdWJsYXllcjp2aWRlb1N1YmxheWVyXTsKKyAgICBbX3ZpZGVv
U3VibGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUpXTsKKyAgICBbX3Zp
ZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0R2V0TWlkWChbc2VsZiBi
b3VuZHNdKSwgQ0dSZWN0R2V0TWlkWShbc2VsZiBib3VuZHNdKSldOwogfQogCiAtIChDQUxheWVy
Kil2aWRlb1N1YmxheWVyCkBAIC02MjMsMjUgKzYxMiwyMCBAQCBTT0ZUX0xJTktfQ0xBU1MoVUlL
aXQsIFVJQ29sb3IpCiAKICAgICBpZiAoIVtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXSB8
fCAhX2F2UGxheWVyVmlld0NvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybjsKLQotICAgIFVJVmll
dyogcm9vdFZpZXcgPSBbW19hdlBsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHdpbmRvd107Ci0g
ICAgaWYgKCFyb290VmlldykKLSAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFtDQVRyYW5zYWN0
aW9uIGJlZ2luXTsKLSAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtzZWxm
IGFuaW1hdGlvbkZvcktleTpAImJvdW5kcyJdLmR1cmF0aW9uOwotICAgIGlmICghYW5pbWF0aW9u
RHVyYXRpb24pIC8vIGEgZHVyYXRpb24gb2YgMCBmb3IgQ0EgbWVhbnMgMC4yNS4gVGhpcyBpcyBh
IHdheSB0byBhcHByb3hpbWF0ZSAwLgotICAgICAgICBhbmltYXRpb25EdXJhdGlvbiA9IDAuMDAx
OwotICAgIFtDQVRyYW5zYWN0aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOmFuaW1hdGlvbkR1cmF0
aW9uXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjpbQ0FN
ZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6a0NBTWVkaWFUaW1pbmdGdW5jdGlv
bkVhc2VJbkVhc2VPdXRdXTsKLQotICAgIEZsb2F0UmVjdCByb290Qm91bmRzID0gW3Jvb3RWaWV3
IGJvdW5kc107Ci0gICAgW19hdlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdLT5zZXRWaWRlb0xh
eWVyRnJhbWUocm9vdEJvdW5kcyk7Ci0KLSAgICBGbG9hdFJlY3Qgc291cmNlQm91bmRzID0gbGFy
Z2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KENHUmVjdEdldFdpZHRoKGJvdW5kcykg
LyBDR1JlY3RHZXRIZWlnaHQoYm91bmRzKSwgcm9vdEJvdW5kcyk7Ci0gICAgQ0FUcmFuc2Zvcm0z
RCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGJvdW5kcy5zaXplLndpZHRoIC8g
c291cmNlQm91bmRzLndpZHRoKCksIGJvdW5kcy5zaXplLmhlaWdodCAvIHNvdXJjZUJvdW5kcy5o
ZWlnaHQoKSwgMSk7CisgICAgQ0FBbmltYXRpb24gKmFuaW1hdGlvbiA9IFtzZWxmIGFuaW1hdGlv
bkZvcktleTpAImJvdW5kcyJdOworICAgIGlmIChbYW5pbWF0aW9uIGlzS2luZE9mQ2xhc3M6W0NB
QmFzaWNBbmltYXRpb24gY2xhc3NdXSkgeworICAgICAgICBDQUJhc2ljQW5pbWF0aW9uICpiYXNp
Y0FuaW1hdGlvbiA9IChDQUJhc2ljQW5pbWF0aW9uICopYW5pbWF0aW9uOworICAgICAgICBbQ0FU
cmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjpiYXNpY0FuaW1hdGlvbi5kdXJhdGlvbl07
CisgICAgICAgIFtDQVRyYW5zYWN0aW9uIHNldEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOmJhc2lj
QW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uXTsKKyAgICB9IGVsc2UKKyAgICAgICAgW0NBVHJhbnNh
Y3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsgLy8gcmRhcjovL3Byb2JsZW0vMTc5MDMwMjgK
KyAgICAKICAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dSZWN0
R2V0TWlkWChib3VuZHMpLCBDR1JlY3RHZXRNaWRZKGJvdW5kcykpXTsKLSAgICBbX3ZpZGVvU3Vi
bGF5ZXIgc2V0U3VibGF5ZXJUcmFuc2Zvcm06dHJhbnNmb3JtXTsKKyAgICAKKyAgICBpZiAoW19h
dlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdKQorICAgICAgICBbX2F2UGxheWVyQ29udHJvbGxl
ciBkZWxlZ2F0ZV0tPnNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOwogICAgIFtDQVRyYW5zYWN0
aW9uIGNvbW1pdF07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRl
eCBmZjdlMWNkMzk1NjVkMzc0ZTM4NTMyNTZmNjRlZDc5NjNmMGIyNzg4Li5jMWNhNGM0MmJlMjYw
MDBlMDkxNTY4ZTA4YzBlMGMyZGU1YmY5NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9F
bGVtZW50Lm1tCkBAIC0yODUsNiArMjg1LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudDo6c2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVjdCByZWN0KQogewogICAg
IG1fdmlkZW9GcmFtZSA9IHJlY3Q7CiAgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0Qm91
bmRzOkNHUmVjdChyZWN0KV07CisgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0QW5jaG9y
UG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXll
ciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSgwLCAwKV07CiAgICAgbV92aWRlb0VsZW1lbnQtPnNl
dFZpZGVvRnVsbHNjcmVlbkZyYW1lKHJlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmQ4ZDg5NDNlNGNjM2NhNzk5ZjM3MjIxNDQxMzY5MjQwOWQ3OTYzNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEku
aApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCisKKyNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU0FuaW1hdGlvbkZlbmNlLmg+Cisj
aW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NBbmltYXRpb25GZW5jZV9Qcml2YXRlLmg+CisK
KyNlbHNlCisKK0BpbnRlcmZhY2UgQktTQW5pbWF0aW9uRmVuY2VIYW5kbGUgOiBOU09iamVjdAor
LSAobWFjaF9wb3J0X3QpQ0FQb3J0OworQGVuZAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvVUlL
aXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRl
eCBhODc0YTc5ZjdmNWYyMDZjYzEyYjc1ZWU4MDMyMDMzYjM1NTllZjczLi4wM2E1MmE1NDdjNGI2
NTI2NTFmYjkyNzYyODQ3ZjE3N2FhZTIzODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
c3BpL2lvcy9VSUtpdFNQSS5oCkBAIC02MjMsOCArNjIzLDExIEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9VSUJhY2tkcm9wVmlld1N0eWxlUHJpdmF0ZSkgewogLSAoVUlQYW5HZXN0dXJl
UmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyRm9ySW50ZXJhY3RpdmVUcmFuc2l0aW9uOihf
VUlOYXZpZ2F0aW9uSW50ZXJhY3RpdmVUcmFuc2l0aW9uQmFzZSAqKWludGVyYWN0aXZlVHJhbnNp
dGlvbiBXaXRoVGFyZ2V0OihpZCl0YXJnZXQgYWN0aW9uOihTRUwpYWN0aW9uOwogQGVuZAogCitA
Y2xhc3MgQktTQW5pbWF0aW9uRmVuY2VIYW5kbGU7CisKIEBpbnRlcmZhY2UgVUlXaW5kb3cgKERl
dGFpbHMpCiArIChtYWNoX3BvcnRfdClfc3luY2hyb25pemVEcmF3aW5nQWNyb3NzUHJvY2Vzc2Vz
OworKyAoQktTQW5pbWF0aW9uRmVuY2VIYW5kbGUgKilfc3luY2hyb25pemVkRHJhd2luZ0ZlbmNl
OwogQGVuZAogCiBAaW50ZXJmYWNlIFVJV2ViU2Nyb2xsVmlldyA6IFVJU2Nyb2xsVmlldwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggMWQwMTFmOGFjNGU2NWE5MzJlOWU1MzVlNWU5NzFi
N2EwY2JhMTFlMC4uMmNhNWZlNWRhNjU3OWU5NzA5YWVjMWJlMjY0YjY1MWU3YWE0ZTc4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC04Niw2ICs4Niw3IEBAIHByaXZhdGU6CiAKICAg
ICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV9s
YXllckhvc3Q7CisgICAgbWFjaF9wb3J0X25hbWVfdCBtX2xhc3RGZW5jZVBvcnQ7CiB9OwogICAg
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4
IDM2NzdlYTFlY2ExODBmODA0OWNkOTYzYmE0M2MwYmY5MmNhZThjZjguLjczYWQyNTA1NzlhYWQz
OTYzMTM3MjhlYzBiNGM2YmUxOTNiNTg3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKKyNpbXBvcnQgIkJhY2tC
b2FyZFNlcnZpY2VzU1BJLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCkBA
IC01MSw2ICs1Miw3IEBAIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
PiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0CiAKIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQ
cm94eSYgcGFnZSkKICAgICA6IG1fcGFnZSgmcGFnZSkKKyAgICAsIG1fbGFzdEZlbmNlUG9ydCgw
KQogewogICAgIG1fcGFnZS0+cHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS0+cGFnZUlEKCksICp0aGlzKTsKICAgICBzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCh0
aGlzKTsKQEAgLTIxMSw4ICsyMTMsMjEgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OmVuZFNjYW5uaW5nKCkKIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OnNldFZpZGVvTGF5ZXJGcmFtZShXZWJDb3JlOjpGbG9hdFJlY3QgZnJhbWUpCiB7Ci0gICAg
SVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydChbVUlXaW5kb3cgX3N5bmNocm9uaXplRHJhd2luZ0Fj
cm9zc1Byb2Nlc3Nlc10sIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKLSAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlNldFZpZGVvTGF5ZXJGcmFt
ZUZlbmNlZChmcmFtZSwgZmVuY2VQb3J0KSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgQGF1dG9y
ZWxlYXNlcG9vbCB7CisgICAgICAgIEJLU0FuaW1hdGlvbkZlbmNlSGFuZGxlKiBzeW5jaHJvbml6
YXRpb25GZW5jZSA9IFtVSVdpbmRvdyBfc3luY2hyb25pemVkRHJhd2luZ0ZlbmNlXTsKKyAgICAg
ICAgbWFjaF9wb3J0X25hbWVfdCBmZW5jZVBvcnQgPSBbc3luY2hyb25pemF0aW9uRmVuY2UgQ0FQ
b3J0XTsKKworICAgICAgICBpZiAoZmVuY2VQb3J0ICE9IG1fbGFzdEZlbmNlUG9ydCkgeworICAg
ICAgICAgICAgbV9sYXN0RmVuY2VQb3J0ID0gZmVuY2VQb3J0OworICAgICAgICAgICAgCisgICAg
ICAgICAgICBmbG9hdCBjb250cm9sUG9pbnQxWzJdID0gezAsIDB9OworICAgICAgICAgICAgZmxv
YXQgY29udHJvbFBvaW50MlsyXSA9IHswLCAwfTsKKyAgICAgICAgICAgIENBTWVkaWFUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBbQ0FUcmFuc2FjdGlvbiBhbmltYXRpb25UaW1pbmdG
dW5jdGlvbl07CisgICAgICAgICAgICBbdGltaW5nRnVuY3Rpb24gZ2V0Q29udHJvbFBvaW50QXRJ
bmRleDoxIHZhbHVlczpjb250cm9sUG9pbnQxXTsKKyAgICAgICAgICAgIFt0aW1pbmdGdW5jdGlv
biBnZXRDb250cm9sUG9pbnRBdEluZGV4OjIgdmFsdWVzOmNvbnRyb2xQb2ludDJdOworICAgICAg
ICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpT
ZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoZnJhbWUsIFtDQVRyYW5zYWN0aW9uIGRpc2FibGVBY3Rp
b25zXSwgW0NBVHJhbnNhY3Rpb24gYW5pbWF0aW9uRHVyYXRpb25dLCB0aW1pbmdGdW5jdGlvbiAh
PSBuaWwsIEZsb2F0UG9pbnQoY29udHJvbFBvaW50MVswXSwgY29udHJvbFBvaW50MVsxXSksIEZs
b2F0UG9pbnQoY29udHJvbFBvaW50MlswXSwgY29udHJvbFBvaW50MlsxXSksIElQQzo6QXR0YWNo
bWVudChmZW5jZVBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSksIG1fcGFnZS0+cGFnZUlE
KCkpOworICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6c2V0VmlkZW9MYXllckdyYXZpdHkoV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWw6OlZpZGVvR3Jhdml0eSBncmF2aXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdiMTYwMzc5Mzg0ZWFkMDhhYmNhMWE1
ZGQxMzk2ZWJhNzE4YTMxNGMuLmM4NTdkOTIzNTZhNTU2OTIwN2UyMWI5MDg2ZTQ5YWE3NTdmZmZl
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTgzMiw2ICs4MzIsNyBAQAogCQkzN0ZDMTk0QjE4NTEwRDZBMDA4Q0ZBNDcgLyog
V0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0OTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VS
TEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi87IH07CiAJCTNGNDE4RUY5MTg4N0JEOTcwMDI3
OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY1MTg4N0JE
OTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJM0Y3
ODdDRUUxQUM1RTFDMDAwNDE3QzVCIC8qIEJhY2tCb2FyZFNlcnZpY2VzU1BJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjc4N0NFQTFBQzVENTgyMDA0
MTdDNUIgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLzsgfTsKIAkJM0Y4N0I5QkQxNTg5NDAx
MjAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29s
b3JDaG9vc2VyLmNwcCAqLzsgfTsKIAkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8qIFdlYkNv
bG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovOyB9Owog
CQkzRjg3QjlDMDE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJGMTU4OTQwRDgwMDkw
RkY2MiAvKiBXZWJDb2xvclBpY2tlci5oICovOyB9OwpAQCAtMjk5Nyw2ICsyOTk4LDcgQEAKIAkJ
M0Y0MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y0MThF
RjcxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzRjQxOEVGODE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y3ODdDRUExQUM1RDU4MjAwNDE3QzVCIC8qIEJhY2tC
b2FyZFNlcnZpY2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tC
b2FyZFNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJB
MTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8q
IFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03Mzk2LDYgKzczOTgs
NyBAQAogCQlDRTFBMEJDQjFBNDhFNkM2MDA1NEVGNzQgLyogaW9zICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkzRjc4N0NFQTFBQzVENTgyMDA0MTdDNUIg
LyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLywKIAkJCQlDRTFBMEJDQzFBNDhFNkM2MDA1NEVG
NzQgLyogQktTUHJvY2Vzc0Fzc2VydGlvblNQSS5oICovLAogCQkJCUNFMUEwQkNEMUE0OEU2QzYw
MDU0RUY3NCAvKiBDb3JlUERGU1BJLmggKi8sCiAJCQkJQ0UxQTBCQ0UxQTQ4RTZDNjAwNTRFRjc0
IC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oICovLApAQCAtNzYzMSw2ICs3NjM0LDcgQEAKIAkJCQk1
MThFOEVGOTE2QjIwOTFDMDBFOTE0MjkgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTJGNThBMzEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25N
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDEwMkRBMTg2Njc3MDYwMEVE
NDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQkzRjc4
N0NFRTFBQzVFMUMwMDA0MTdDNUIgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNFMUEwQkQyMUE0OEU2QzYwMDU0RUY3NCAvKiBCS1NQcm9jZXNzQXNzZXJ0aW9u
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTY0QTJGMjE5MUFGMTRFMDAxMDczN0QgLyogQmxv
YkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxNzA4NzZDMTZENkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQcm94eS5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggYjMzODI3NjFiOWU3N2ViYTQ3ZGM2NmI5
OTExNWFhYTZlYWMwMmFkNS4uM2IwNWI4ZDg1NDZhYjkyOTA2ZmM5NWY2NzgyOGQ3MTAwNTY1OTZl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtODgsNyArODgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZShib29sIGlzUGFnZVZpc2libGUpOwotICAgIHZvaWQgc2V0
VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0
YWNobWVudCBmZW5jZVBvcnQpOworICAgIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdl
YkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIGJvb2wgZGlzYWJsZUFjdGlvbnMsIGRvdWJsZSBkdXJh
dGlvbiwgYm9vbCB0aW1pbmdGdW5jdGlvbiwgV2ViQ29yZTo6RmxvYXRQb2ludCBjb250cm9sUG9p
bnQxLCBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRyb2xQb2ludDIsIElQQzo6QXR0YWNobWVudCBm
ZW5jZVBvcnQpOwogICAgIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKICAgICBSZWZQdHI8V2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudD4gbV92aWRlb0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5tZXNzYWdlcy5pbgppbmRleCBkM2M2OGEzNjZjZjgxNTRlZGRkYjE4NmRkMmU2YzkzNDdm
ZGE1MmFiLi4yMjQ2YWVmYmMzNTFmMzg2Y2MyNWUwYmY4NWViNzVhOTcwYmEzOGQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTM3LDcgKzM3LDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CiAgICAgRGlkRXhpdEZ1bGxzY3JlZW4o
KQogICAgIERpZEVudGVyRnVsbHNjcmVlbigpCiAgICAgRGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQot
ICAgIFNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJ
UEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQorICAgIFNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChX
ZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBib29sIGRpc2FibGVBY3Rpb25zLCBkb3VibGUgZHVy
YXRpb24sIGJvb2wgdGltaW5nRnVuY3Rpb24sIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udHJvbFBv
aW50MSwgV2ViQ29yZTo6RmxvYXRQb2ludCBjb250cm9sUG9pbnQyLCBJUEM6OkF0dGFjaG1lbnQg
ZmVuY2VQb3J0KQogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCBncmF2aXR5
KQogICAgIFNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgU2VsZWN0
TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5k
ZXggMWM5YTM1ODMyMmI2M2ZlNTRlOGE5YmFmNWMwNWZiZjhmYjcxZjdjNC4uMDNjZWRmZTdhZWEw
ZmExNTE5MmQwY2EwMGY2YTE0MzIyMDliZWRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0y
NzAsOSArMjcwLDEzIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlzaWJsZSkKICAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb1JldHVy
blRvSW5saW5lKHRydWUsIGNsaWVudFJlY3RGb3JFbGVtZW50KG1fdmlkZW9FbGVtZW50LmdldCgp
KSksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogICAgIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5k
cywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMs
IGJvb2wgZGlzYWJsZUFjdGlvbnMsIGRvdWJsZSBkdXJhdGlvbiwgYm9vbCB0aW1pbmdGdW5jdGlv
biwgRmxvYXRQb2ludCBjb250cm9sUG9pbnQxLCBGbG9hdFBvaW50IGNvbnRyb2xQb2ludDIsIElQ
Qzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiB7Ci0gICAgaWYgKG1fbGF5ZXJIb3N0aW5nQ29udGV4
dCkKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpkaXNhYmxlQWN0aW9uc107
CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uRHVyYXRpb246ZHVyYXRpb25dOworICAg
IGlmICh0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9u
VGltaW5nRnVuY3Rpb246W0NBTWVkaWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhDb250cm9s
UG9pbnRzOmNvbnRyb2xQb2ludDEueCgpIDpjb250cm9sUG9pbnQxLnkoKSA6Y29udHJvbFBvaW50
Mi54KCkgOmNvbnRyb2xQb2ludDIueSgpXV07CisgICAgaWYgKG1fbGF5ZXJIb3N0aW5nQ29udGV4
dCAmJiBmZW5jZVBvcnQucG9ydCgpKQogICAgICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNl
dEZlbmNlUG9ydChmZW5jZVBvcnQucG9ydCgpKTsKICAgICBzZXRWaWRlb0xheWVyRnJhbWUoYm91
bmRzKTsKICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBmZW5jZVBv
cnQucG9ydCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250028</attachid>
            <date>2015-04-02 18:47:39 -0700</date>
            <delta_ts>2015-04-06 15:03:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143131-20150402184654.patch</filename>
            <type>text/plain</type>
            <size>24719</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhmYTY0YjEzODQ5YzBk
OGQ3YzYyYWY5YjA1NGU0MWU2NTQ5YTE5Ny4uZjdjYWQ1MGFhNzJjOTgyMDYzMjNhZjg4NjE5MGMx
MzYwOWNiMWQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE1LTA0LTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFN5bmNocm9uaXplIGZ1bGxz
Y3JlZW4gYW5pbWF0aW9uIGJldHdlZW4gcHJvY2Vzc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gYXR0ZW1wdCB0byBzeW5jaGNy
b25pemUgYW5pbWF0aW9ucyBhY3Jvc3MgdGhlIFdlYlByb2Nlc3MgLyBVSVByb2Nlc3MgYm91bmRh
cnksCisgICAgICAgIGRvIHRoZSBib3VuZHMtY2hhbmdlIGFuaW1hdGlvbiBpbi1wcm9jZXNzIGJ5
IGFwcGx5aW5nIGEgc3VibGF5ZXIgdHJhbnNmb3JtYXRpb24gdG8gdGhlCisgICAgICAgIHZpZGVv
IGxheWVyLiBUaGlzIGdpdmVzIHRoZSBzYW1lIHZpc3VhbCBlZmZlY3QgYXMgYSBzeW5jaHJvbml6
ZWQgYm91bmRzIGFuaW1hdGlvbiwgYnV0CisgICAgICAgIHdpdGhvdXQgbmVlZGluZyBhIHN5bmNo
cm9uaXphdGlvbiBmZW5jZS4gUmVzb2x2ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0cmFu
c2Zvcm1hdGlvbgorICAgICAgICBhbmQgYm91bmRzIGJ5IGRvaW5nIGEgZmVuY2Utc3luY2hyb25p
emVkIGJvdW5kcyBjaGFuZ2UgYWZ0ZXIgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIGlzCisgICAgICAg
IHNjaGVkdWxlZCB0byBjb21wbGV0ZS4KKworICAgICAgICBUbyBkbyB0aGlzIGNhbGN1bGF0aW9u
IGNvcnJlY3RseSwgV2ViQVZQbGF5ZXIgbmVlZHMgdG8gcXVlcnkgYm90aCB0aGUgZWZmZWN0aXZl
CisgICAgICAgIHZpZGVvTGF5ZXJGcmFtZSBhbmQgdGhlIHZpZGVvTGF5ZXJHcmF2aXR5LiBUbyB0
aGF0IGVuZCwgYWRkIGdldHRlciBtZXRob2RzIGZvcgorICAgICAgICB2aWRlb0xheWVyRnJhbWUo
KSBhbmQgdmlkZW9MYXllckdyYXZpdHkoKS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dmlkZW9GdWxsc2Ny
ZWVuR3Jhdml0eSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJBVlZpZGVvTGF5ZXIgZGVhbGxvY10pOiBD
YW5jZWwgb3V0c3RhbmRpbmcgcGVyZm9ybVNlbGVjdG9yIHJlcXVlc3RzLgorICAgICAgICAoLVtX
ZWJBVlZpZGVvTGF5ZXIgc2V0Qm91bmRzOl0pOiBBZGQgYSBzY2FsZSB0cmFuc2Zvcm0gdG8gc2lt
dWxhdGUgYSBib251ZHMgY2hhbmdlLgorICAgICAgICAoLVtXZWJBVlZpZGVvTGF5ZXIgcmVzb2x2
ZUJvdW5kc10pOiBSZXNldCB0aGUgc2NhbGUgdHJhbnNmb3JtIGFuZCBzZXQgdGhlIGJvdW5kcy4K
KyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3Jl
ZW5JbnRlcm5hbCk6IFNldCB0aGUgaW5pdGlhbCB2aWRlbyBmcmFtZSBib3VuZHMuCisgICAgICAg
ICgtW1dlYkFWUGxheWVyQ29udHJvbGxlciBsYXlvdXRTdWJsYXllcnNPZkxheWVyOl0pOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
Ojp2aWRlb0xheWVyRnJhbWUpOiBBZGRlZDsgc2ltcGxlIGdldHRlci4KKyAgICAgICAgKFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp2aWRlb0xheWVyR3Jhdml0eSk6IERpdHRv
LgorCisyMDE1LTA0LTAyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCiAgICAg
ICAgIFtNYWNdIE9ubHkgcGFzcyBpbiB0aGUgQVZVUkxBc3NldENsaWVudEJ1bmRsZUlkZW50aWZp
ZXJLZXkgb24gaU9TLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQzMzQ3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MmZjMTJmOWRiZDNhOTZjZTEyMjhjNWVhNzBl
ODY1YmQ3YWQzZGM0Li5jMDA4MmU4YjhjYjRhM2UwODViM2ExMGY1Zjg1YzMyMzZjZmQ5ZDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMDQtMDIgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU3luY2hyb25pemUgZnVsbHNjcmVlbiBhbmltYXRp
b24gYmV0d2VlbiBwcm9jZXNzZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDMxMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTdXBwb3J0IHN5bmNocm9uaXplIHJlc2l6aW5nIGJ5IGFuaW1hdGluZyB3
aXRoaW4gdGhlIFVJUHJvY2Vzcy4gU2luY2Ugc2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKCkgaXMg
bm93IG9ubHkKKyAgICAgICAgZXZlciBjYWxsZWQgZnJvbSB3aXRoaW4gYSAwLWR1cmF0aW9uIHRy
YW5zYWN0aW9uLCBtYWtlIHRoYXQgdGhlIG9mZmljaWFsIGNvbnRyYWN0IG9mIHRoZSBmdW5jdGlv
biBhbmQgd3JhcAorICAgICAgICB0aGUgV2ViUHJvY2VzcyBzaWRlIG9mIHRoYXQgbWV0aG9kIGlu
IGl0cyBvd24gMC1kdXJhdGlvbiB0cmFuc2FjdGlvbi4KKworICAgICAgICAqIFBsYXRmb3JtL3Nw
aS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm0v
c3BpL2lvcy9VSUtpdFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKTogUmVtZW1iZXIgdGhlIGlu
aXRpYWwgcmVjdC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Ojp2aWRlb0xheWVyRnJhbWUpOiBBZGRlZDsgc2ltcGxlIGdldHRlci4KKyAgICAgICAgKFdl
YktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyRnJhbWUp
OiBVc2UgYSBkaWZmZXJlbnQgc3luY2hyb25pemF0aW9uIGZlbmNlIHByaW1hdGl2ZS4KKyAgICAg
ICAgICAgIFNhdmUgdGhlIGNhY2hlZCBmcmFtZSB2YWx1ZS4KKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp2aWRlb0xheWVyR3Jhdml0eSk6IEFkZGVkOyBz
aW1wbGUgZ2V0dGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldFZpZGVvTGF5ZXJHcmF2aXR5KTogU2F2ZSB0aGUgY2FjaGVkIGdyYXZpdHkgdmFs
dWUuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZl
bmNlZCk6IFdyYXAgaW4gYSAwLWxlbmd0aCB0cmFuc2FjdGlvbi4KKwogMjAxNS0wNC0wMiAgVGlt
b3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGUtUExB
VEZPUk0oSU9TKS1pZnkgTGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0RmVuY2VQb3J0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDVjMDFiMDMwM2I5MTY1ZTRiMTA4YWJh
YWNhZjA1OWNhZWM0YzNiMjQuLjY0OWI1MjIxZWQyOGRkNDg2ZjM1ZGRkNDdmMjc0M2IyMDlhMTk4
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMzAsNiArMTMw
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1M
YXllciopOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KTsKICAg
ICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0
eSk7CisgICAgTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSB2aWRlb0Z1bGxzY3JlZW5HcmF2aXR5
KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5OyB9CiAjZW5kaWYKIAog
ICAgIGVudW0gRGVsYXllZEFjdGlvblR5cGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
CmluZGV4IDFhMDNiZGIyMzQzYWU3NmI2OGVhMjYyMWIxNDliZmQxN2RjZDhhMmYuLjNlZDZjY2I3
YmI5MjA1YWViMTAyODg1Mjg2MTQzMzhhMDMyMTg0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW0KQEAgLTUxOSwyMCArNTE5LDYgQEAgU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUNv
bG9yKQogewogICAgIHJldHVybiBbTlNTZXQgc2V0V2l0aE9iamVjdHM6QCJleHRlcm5hbFBsYXli
YWNrQWN0aXZlIiwgbmlsXTsKIH0KLQotLSAodm9pZClsYXlvdXRTdWJsYXllcnNPZkxheWVyOihD
QUxheWVyICopbGF5ZXIKLXsKLSAgICBDR1JlY3QgbGF5ZXJCb3VuZHMgPSBbbGF5ZXIgYm91bmRz
XTsKLSAgICBpZiAoc2VsZi5kZWxlZ2F0ZSkKLSAgICAgICAgc2VsZi5kZWxlZ2F0ZS0+c2V0Vmlk
ZW9MYXllckZyYW1lKENHUmVjdE1ha2UoMCwgMCwgQ0dSZWN0R2V0V2lkdGgobGF5ZXJCb3VuZHMp
LCBDR1JlY3RHZXRIZWlnaHQobGF5ZXJCb3VuZHMpKSk7Ci0gICAgCi0gICAgW0NBVHJhbnNhY3Rp
b24gYmVnaW5dOwotICAgIGZvciAoQ0FMYXllciAqc3VibGF5ZXIgaW4gW2xheWVyIHN1YmxheWVy
c10pIHsKLSAgICAgICAgW3N1YmxheWVyIHNldEFuY2hvclBvaW50OkNHUG9pbnRNYWtlKDAuNSwg
MC41KV07Ci0gICAgICAgIFtzdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1JlY3RH
ZXRNaWRYKGxheWVyQm91bmRzKSwgQ0dSZWN0R2V0TWlkWShsYXllckJvdW5kcykpXTsKLSAgICB9
Ci0gICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLX0KIEBlbmQKIAogQGludGVyZmFjZSBXZWJB
Vk1lZGlhU2VsZWN0aW9uT3B0aW9uIDogTlNPYmplY3QKQEAgLTU3NSw2ICs1NjEsMTIgQEAgU09G
VF9MSU5LX0NMQVNTKFVJS2l0LCBVSUNvbG9yKQogICAgIHJldHVybiBzZWxmOwogfQogCistICh2
b2lkKWRlYWxsb2MKK3sKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVz
dHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVj
dDpuaWxdOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwogLSAodm9pZClzZXRQbGF5ZXJDb250
cm9sbGVyOihBVlBsYXllckNvbnRyb2xsZXIgKilwbGF5ZXJDb250cm9sbGVyCiB7CiAgICAgQVNT
RVJUKCFwbGF5ZXJDb250cm9sbGVyIHx8IFtwbGF5ZXJDb250cm9sbGVyIGlzS2luZE9mQ2xhc3M6
W1dlYkFWUGxheWVyQ29udHJvbGxlciBjbGFzc11dKTsKQEAgLTYyMSwyNyArNjEzLDQzIEBAIFNP
RlRfTElOS19DTEFTUyhVSUtpdCwgVUlDb2xvcikKIHsKICAgICBbc3VwZXIgc2V0Qm91bmRzOmJv
dW5kc107CiAKKyAgICBbX3ZpZGVvU3VibGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2UoQ0dS
ZWN0R2V0TWlkWChib3VuZHMpLCBDR1JlY3RHZXRNaWRZKGJvdW5kcykpXTsKKwogICAgIGlmICgh
W19hdlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdIHx8ICFfYXZQbGF5ZXJWaWV3Q29udHJvbGxl
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgVUlWaWV3KiByb290VmlldyA9IFtbX2F2UGxheWVy
Vmlld0NvbnRyb2xsZXIgdmlld10gd2luZG93XTsKLSAgICBpZiAoIXJvb3RWaWV3KQorICAgIEZs
b2F0UmVjdCB2aWRlb0ZyYW1lID0gW19hdlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdLT52aWRl
b0xheWVyRnJhbWUoKTsKKyAgICBGbG9hdFJlY3QgdGFyZ2V0RnJhbWU7CisgICAgc3dpdGNoIChb
X2F2UGxheWVyQ29udHJvbGxlciBkZWxlZ2F0ZV0tPnZpZGVvTGF5ZXJHcmF2aXR5KCkpIHsKKyAg
ICBjYXNlIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHlSZXNp
emU6CisgICAgICAgIHRhcmdldEZyYW1lID0gYm91bmRzOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHlSZXNpemVB
c3BlY3Q6CisgICAgICAgIHRhcmdldEZyYW1lID0gbGFyZ2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9J
bnNpZGVSZWN0KHZpZGVvRnJhbWUuc2l6ZSgpLmFzcGVjdFJhdGlvKCksIGJvdW5kcyk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZp
ZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGw6CisgICAgICAgIHRhcmdldEZyYW1lID0gc21hbGxl
c3RSZWN0V2l0aEFzcGVjdFJhdGlvQXJvdW5kUmVjdCh2aWRlb0ZyYW1lLnNpemUoKS5hc3BlY3RS
YXRpbygpLCBib3VuZHMpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgQ0FUcmFuc2Zvcm0z
RCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHRhcmdldEZyYW1lLndpZHRoKCkg
LyB2aWRlb0ZyYW1lLndpZHRoKCksIHRhcmdldEZyYW1lLmhlaWdodCgpIC8gdmlkZW9GcmFtZS5o
ZWlnaHQoKSwgMSk7CisgICAgW192aWRlb1N1YmxheWVyIHNldFN1YmxheWVyVHJhbnNmb3JtOnRy
YW5zZm9ybV07CisKKyAgICBbTlNPYmplY3QgY2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNX
aXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpu
aWxdOworICAgIFtzZWxmIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocmVzb2x2ZUJvdW5kcykg
d2l0aE9iamVjdDpuaWwgYWZ0ZXJEZWxheTpbQ0FUcmFuc2FjdGlvbiBhbmltYXRpb25EdXJhdGlv
bl0gKyAwLjFdOworfQorCistICh2b2lkKXJlc29sdmVCb3VuZHMKK3sKKyAgICBbTlNPYmplY3Qg
Y2FuY2VsUHJldmlvdXNQZXJmb3JtUmVxdWVzdHNXaXRoVGFyZ2V0OnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKHJlc29sdmVCb3VuZHMpIG9iamVjdDpuaWxdOworICAgIGlmICghX2F2UGxheWVyQ29u
dHJvbGxlciB8fCAhW19hdlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdKQogICAgICAgICByZXR1
cm47Ci0gICAgCisKICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07Ci0gICAgTlNUaW1lSW50ZXJ2
YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbc2VsZiBhbmltYXRpb25Gb3JLZXk6QCJib3VuZHMiXS5k
dXJhdGlvbjsKLSAgICBpZiAoIWFuaW1hdGlvbkR1cmF0aW9uKSAvLyBhIGR1cmF0aW9uIG9mIDAg
Zm9yIENBIG1lYW5zIDAuMjUuIFRoaXMgaXMgYSB3YXkgdG8gYXBwcm94aW1hdGUgMC4KLSAgICAg
ICAgYW5pbWF0aW9uRHVyYXRpb24gPSAwLjAwMTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmlt
YXRpb25EdXJhdGlvbjphbmltYXRpb25EdXJhdGlvbl07Ci0gICAgW0NBVHJhbnNhY3Rpb24gc2V0
QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246W0NBTWVkaWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldp
dGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25FYXNlSW5FYXNlT3V0XV07CisgICAgW0NBVHJh
bnNhY3Rpb24gc2V0QW5pbWF0aW9uRHVyYXRpb246MF07CiAKLSAgICBGbG9hdFJlY3Qgcm9vdEJv
dW5kcyA9IFtyb290VmlldyBib3VuZHNdOwotICAgIFtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVn
YXRlXS0+c2V0VmlkZW9MYXllckZyYW1lKHJvb3RCb3VuZHMpOworICAgIFtfdmlkZW9TdWJsYXll
ciBzZXRTdWJsYXllclRyYW5zZm9ybTpDQVRyYW5zZm9ybTNESWRlbnRpdHldOworICAgIFtfYXZQ
bGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+c2V0VmlkZW9MYXllckZyYW1lKFtzZWxmIGJvdW5k
c10pOwogCi0gICAgRmxvYXRSZWN0IHNvdXJjZUJvdW5kcyA9IGxhcmdlc3RSZWN0V2l0aEFzcGVj
dFJhdGlvSW5zaWRlUmVjdChDR1JlY3RHZXRXaWR0aChib3VuZHMpIC8gQ0dSZWN0R2V0SGVpZ2h0
KGJvdW5kcyksIHJvb3RCb3VuZHMpOwotICAgIENBVHJhbnNmb3JtM0QgdHJhbnNmb3JtID0gQ0FU
cmFuc2Zvcm0zRE1ha2VTY2FsZShib3VuZHMuc2l6ZS53aWR0aCAvIHNvdXJjZUJvdW5kcy53aWR0
aCgpLCBib3VuZHMuc2l6ZS5oZWlnaHQgLyBzb3VyY2VCb3VuZHMuaGVpZ2h0KCksIDEpOwotICAg
IFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1JlY3RHZXRNaWRYKGJv
dW5kcyksIENHUmVjdEdldE1pZFkoYm91bmRzKSldOwotICAgIFtfdmlkZW9TdWJsYXllciBzZXRT
dWJsYXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOwogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07
CiB9CiAKQEAgLTkwNSw2ICs5MTMsOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW5JbnRlcm5hbChQbGF0Zm9ybUxheWVyJiB2aQogICAgIENH
U2l6ZSB2aWRlb1NpemUgPSBbbV9wbGF5ZXJDb250cm9sbGVyIGNvbnRlbnREaW1lbnNpb25zXTsK
ICAgICBDR1JlY3QgdmlkZW9SZWN0ID0gQ0dSZWN0TWFrZSgwLCAwLCB2aWRlb1NpemUud2lkdGgs
IHZpZGVvU2l6ZS5oZWlnaHQpOwogICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0VmlkZW9S
ZWN0OnZpZGVvUmVjdF07CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAg
IG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnNldFZpZGVvTGF5ZXJGcmFtZSh2aWRlb1JlY3QpOwog
CiAgICAgbV9wbGF5ZXJWaWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW2FsbG9jQVZQbGF5ZXJWaWV3
Q29udHJvbGxlckluc3RhbmNlKCkgaW5pdFdpdGhWaWRlb0xheWVyOm1fdmlkZW9MYXllckNvbnRh
aW5lci5nZXQoKV0pOwogICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJh
Y2tDb250cm9sczpOT107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCmluZGV4IDZkZDBiMGRmNjk2MWFlMzdmODVhZTM3Yjhh
MTI0MTJiYWRiM2I5ZDkuLjhmMjYyMzA5MzgyMWI0MTdmYTBkYTEyNTU4MjMxMDBjYzAxOTNiMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oCkBAIC00OCw4ICs0OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGVuZFNjYW5uaW5nKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RXhpdEZ1bGxzY3Jl
ZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZShGbG9hdFJlY3Qp
ID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCB2aWRlb0xheWVyRnJhbWUoKSBjb25zdCA9IDA7
CiAgICAgZW51bSBWaWRlb0dyYXZpdHkgeyBWaWRlb0dyYXZpdHlSZXNpemUsIFZpZGVvR3Jhdml0
eVJlc2l6ZUFzcGVjdCwgVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCB9OwogICAgIHZpcnR1
YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eShWaWRlb0dyYXZpdHkpID0gMDsKKyAgICB2aXJ0
dWFsIFZpZGVvR3Jhdml0eSB2aWRlb0xheWVyR3Jhdml0eSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50LmgKaW5kZXggZGE5OGZjMjExN2NhZTg3MzUwNTBlOTI4N2E1MzQ2NmJhNzA5Y2Q4ZS4uNTk5
YTc0YTNhNzk2ZDE1MTU0MjcyNWJlNzZkYTIzOWQwNjY4NzhjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50LmgKQEAgLTY4LDcgKzY4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBlbmRTY2FubmluZygpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCByZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVj
dCkgb3ZlcnJpZGU7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5
ZXJHcmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpIG92ZXJyaWRl
OworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgRmxvYXRSZWN0IHZpZGVvTGF5ZXJGcmFtZSgp
IGNvbnN0IG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0xheWVyR3Jhdml0eShWaWRlb0dyYXZpdHkpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgVmlkZW9HcmF2aXR5IHZpZGVvTGF5ZXJHcmF2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24o
dWludDY0X3QgaW5kZXgpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIG92ZXJyaWRlOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQubW0KaW5kZXggZmY3ZTFjZDM5NTY1ZDM3NGUzODUzMjU2ZjY0ZWQ3
OTYzZjBiMjc4OC4uNTk4ZDYwYWVlZGZlM2U3Y2MwMzExOTc4MWJhMzIyMWIzNGRhMDJlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQpAQCAtMjg4LDYgKzI4OCwxMSBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0xheWVyRnJh
bWUoRmxvYXRSZWN0IHJlY3QpCiAgICAgbV92aWRlb0VsZW1lbnQtPnNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKHJlY3QpOwogfQogCitGbG9hdFJlY3QgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQ6OnZpZGVvTGF5ZXJGcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlkZW9G
cmFtZTsKK30KKwogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0
VmlkZW9MYXllckdyYXZpdHkoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eSBn
cmF2aXR5KQogewogICAgIE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkgdmlkZW9HcmF2aXR5ID0g
TWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdDsKQEAgLTMwMyw2ICszMDgsMjEg
QEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0VmlkZW9MYXll
ckdyYXZpdHkoV2ViVmlkZW9GdWxsc2NyZWUKICAgICBtX3ZpZGVvRWxlbWVudC0+c2V0VmlkZW9G
dWxsc2NyZWVuR3Jhdml0eSh2aWRlb0dyYXZpdHkpOwogfQogCitXZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbDo6VmlkZW9HcmF2aXR5IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojp2
aWRlb0xheWVyR3Jhdml0eSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX3ZpZGVvRWxlbWVudC0+
dmlkZW9GdWxsc2NyZWVuR3Jhdml0eSgpKSB7CisgICAgY2FzZSBNZWRpYVBsYXllcjo6VmlkZW9H
cmF2aXR5UmVzaXplOgorICAgICAgICByZXR1cm4gVmlkZW9HcmF2aXR5UmVzaXplOworICAgIGNh
c2UgTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdDoKKyAgICAgICAgcmV0dXJu
IFZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdDsKKyAgICBjYXNlIE1lZGlhUGxheWVyOjpWaWRlb0dy
YXZpdHlSZXNpemVBc3BlY3RGaWxsOgorICAgICAgICByZXR1cm4gVmlkZW9HcmF2aXR5UmVzaXpl
QXNwZWN0RmlsbDsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gVmlkZW9HcmF2aXR5UmVzaXplOworfQorCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
VmlkZW9FbGVtZW50OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IHNlbGVjdGVkQXVk
aW9JbmRleCkKIHsKICAgICBBdWRpb1RyYWNrKiBzZWxlY3RlZEF1ZGlvVHJhY2sgPSBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRT
ZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRT
ZXJ2aWNlc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkOGQ4OTQzZTRjYzNjYTc5OWYzNzIyMTQ0MTM2OTI0
MDlkNzk2MzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkv
aW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNl
cy9CS1NBbmltYXRpb25GZW5jZS5oPgorI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktTQW5p
bWF0aW9uRmVuY2VfUHJpdmF0ZS5oPgorCisjZWxzZQorCitAaW50ZXJmYWNlIEJLU0FuaW1hdGlv
bkZlbmNlSGFuZGxlIDogTlNPYmplY3QKKy0gKG1hY2hfcG9ydF90KUNBUG9ydDsKK0BlbmQKKwor
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYTg3NGE3OWY3ZjVmMjA2Y2MxMmI3NWVlODAzMjAz
M2IzNTU5ZWY3My4uNTQ1NzBkYzljNDVlODY0MDc2YWUyNGM0OWQyYmE1ZGU1ZTEzYWVmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtNjIzLDcgKzYy
MywxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfVUlCYWNrZHJvcFZpZXdTdHlsZVBy
aXZhdGUpIHsKIC0gKFVJUGFuR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplckZv
ckludGVyYWN0aXZlVHJhbnNpdGlvbjooX1VJTmF2aWdhdGlvbkludGVyYWN0aXZlVHJhbnNpdGlv
bkJhc2UgKilpbnRlcmFjdGl2ZVRyYW5zaXRpb24gV2l0aFRhcmdldDooaWQpdGFyZ2V0IGFjdGlv
bjooU0VMKWFjdGlvbjsKIEBlbmQKIAorQGNsYXNzIEJLU0FuaW1hdGlvbkZlbmNlSGFuZGxlOwor
CiBAaW50ZXJmYWNlIFVJV2luZG93IChEZXRhaWxzKQorKyAoQktTQW5pbWF0aW9uRmVuY2VIYW5k
bGUgKilfc3luY2hyb25pemVkRHJhd2luZ0ZlbmNlOwogKyAobWFjaF9wb3J0X3QpX3N5bmNocm9u
aXplRHJhd2luZ0Fjcm9zc1Byb2Nlc3NlczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmgKaW5kZXggMWQwMTFmOGFjNGU2NWE5MzJlOWU1MzVlNWU5NzFiN2EwY2JhMTFlMC4uZDllNjVj
ZTkzMzhiZjhjMzVhMzEwNjQ4MGM5Y2M2YTJhMjI0NzUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oCkBAIC04MCwxMiArODAsMTYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYmVn
aW5TY2FubmluZ0JhY2t3YXJkKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGVuZFNjYW5u
aW5nKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZShXZWJD
b3JlOjpGbG9hdFJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0
IHZpZGVvTGF5ZXJGcmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRW
aWRlb0xheWVyR3Jhdml0eShXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9H
cmF2aXR5KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZpZGVvR3Jhdml0eSB2aWRlb0xheWVyR3Jh
dml0eSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlh
T3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0TGVnaWJs
ZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKIAogICAgIFdlYlBhZ2VQcm94eSogbV9w
YWdlOwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX2xheWVySG9zdDsKKyAgICBXZWJD
b3JlOjpGbG9hdFJlY3QgbV92aWRlb0xheWVyRnJhbWU7CisgICAgVmlkZW9HcmF2aXR5IG1fdmlk
ZW9MYXllckdyYXZpdHkgeyBWaWRlb0dyYXZpdHlSZXNpemUgfTsKIH07CiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggMzY3N2VhMWVj
YTE4MGY4MDQ5Y2Q5NjNiYTQzYzBiZjkyY2FlOGNmOC4uNThkNzMzODRkZTQ1ZWFiZWZlYTI1Y2Iw
YmU2OGE0NWEwNmQ1OGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAorI2ltcG9ydCAiQmFja0JvYXJkU2Vydmlj
ZXNTUEkuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNp
bXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKQEAgLTg1LDYgKzg2
LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVl
bldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQKICAgICAgICAgW21fbGF5ZXJIb3N0IHNldFRy
YW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGludmVyc2VTY2FsZSwgaW52ZXJzZVNjYWxl
LCAxKV07CiAgICAgfQogCisgICAgbV92aWRlb0xheWVyRnJhbWUgPSBpbml0aWFsUmVjdDsKKwog
ICAgIFVJVmlldyAqcGFyZW50VmlldyA9IGRvd25jYXN0PFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk+KCptX3BhZ2UtPmRyYXdpbmdBcmVhKCkpLnJlbW90ZUxheWVyVHJlZUhvc3QoKS5y
b290TGF5ZXIoKTsKICAgICBzZXR1cEZ1bGxzY3JlZW4oKm1fbGF5ZXJIb3N0LmdldCgpLCBpbml0
aWFsUmVjdCwgcGFyZW50VmlldywgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYWxsb3dPcHRpbWl6ZWRG
dWxsc2NyZWVuKTsKIH0KQEAgLTIwOSwxNCArMjEyLDMwIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjplbmRTY2FubmluZygpCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpFbmRTY2FubmluZygpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKIH0KIAorRmxvYXRSZWN0IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6dmlk
ZW9MYXllckZyYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWRlb0xheWVyRnJhbWU7Cit9
CisKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyRnJh
bWUoV2ViQ29yZTo6RmxvYXRSZWN0IGZyYW1lKQogewotICAgIElQQzo6QXR0YWNobWVudCBmZW5j
ZVBvcnQoW1VJV2luZG93IF9zeW5jaHJvbml6ZURyYXdpbmdBY3Jvc3NQcm9jZXNzZXNdLCBNQUNI
X01TR19UWVBFX01PVkVfU0VORCk7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoZnJhbWUsIGZlbmNl
UG9ydCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIG1fdmlkZW9MYXllckZyYW1lID0gZnJhbWU7
CisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIEJLU0FuaW1hdGlvbkZlbmNlSGFuZGxl
KiBzeW5jaHJvbml6YXRpb25GZW5jZSA9IFtVSVdpbmRvdyBfc3luY2hyb25pemVkRHJhd2luZ0Zl
bmNlXTsKKyAgICAgICAgbWFjaF9wb3J0X25hbWVfdCBmZW5jZVBvcnQgPSBbc3luY2hyb25pemF0
aW9uRmVuY2UgQ0FQb3J0XTsKKworICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChmcmFtZSwgSVBD
OjpBdHRhY2htZW50KGZlbmNlUG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKSwgbV9wYWdl
LT5wYWdlSUQoKSk7CisgICAgfQorfQorCitXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bDo6VmlkZW9HcmF2aXR5IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6dmlkZW9MYXll
ckdyYXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJHcmF2aXR5OwogfQog
CiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllckdyYXZp
dHkoV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eSBncmF2aXR5
KQogeworICAgIG1fdmlkZW9MYXllckdyYXZpdHkgPSBncmF2aXR5OwogICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2V0VmlkZW9MYXllckdyYXZp
dHlFbnVtKCh1bnNpZ25lZClncmF2aXR5KSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMjg3MDczZDFkYjcxYzg1YjU2MDY0NTI0ZGI3MWMwZGZiY2UxMDA3Yy4uZTI1ZjE5MTVhZTc3
ODQwOGE2NjhhMDI5MDEzNjlhZTA5NzUwYTIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY5NSw2ICsxNjk1LDcgQEAKIAkJ
Q0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDczQkE0RTEzMUFDREI3MDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0Q3
M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTM3MTMxQTI5RkUw
MEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi87IH07CisJCUNEQTA0MUY0MUFD
RTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8q
IEJhY2tCb2FyZFNlcnZpY2VzU1BJLmggKi87IH07CiAJCUNEQzM4MkZFMTcyMTE3OTkwMDhBMkZD
MyAvKiBTZWNJdGVtU2hpbUxpYnJhcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTFGOEE3ODEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1M
aWJyYXJ5Lm1tICovOyB9OwogCQlDREMzODMwNzE3MjExN0REMDA4QTJGQzMgLyogQ29va2llU3Rv
cmFnZVNoaW1MaWJyYXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQzM4MkY5MTcyMTE2RDMwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxp
YnJhcnkuY3BwICovOyB9OwogCQlDREMzODMwODE3MjExODkwMDA4QTJGQzMgLyogV2ViUHJvY2Vz
c1NoaW0uZHlsaWIgaW4gQ29weSBXZWJQcm9jZXNzU2hpbSAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREMzODMwNjE3MjExNzk5MDA4QTJGQzMgLyogV2ViUHJvY2Vzc1NoaW0u
ZHlsaWIgKi87IH07CkBAIC0zOTQ4LDYgKzM5NDksNyBAQAogCQlDRDczQkE0ODEzMUFDRDhFMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkE0OTEzMUFD
RDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTRBMTMxQUNEOEYwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQTA0MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9h
cmRTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrQm9h
cmRTZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREMzODJGNzE3
MjExNTA2MDA4QTJGQzMgLyogQ0ZOZXR3b3JrLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
Q0ZOZXR3b3JrLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NG
TmV0d29yay5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCUNEQzM4
MkY5MTcyMTE2RDMwMDhBMkZDMyAvKiBDb29raWVTdG9yYWdlU2hpbUxpYnJhcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDMzgzMDYxNzIxMTc5OTAwOEEyRkMzIC8qIFdlYlByb2Nlc3NT
aGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2Vi
UHJvY2Vzc1NoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC03NDE3LDYgKzc0MTksNyBAQAogCQlDRTFBMEJDQjFBNDhFNkM2MDA1NEVGNzQgLyogaW9zICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDREEwNDFGMzFB
Q0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLywKIAkJCQlDRTFBMEJD
QzFBNDhFNkM2MDA1NEVGNzQgLyogQktTUHJvY2Vzc0Fzc2VydGlvblNQSS5oICovLAogCQkJCUNF
MUEwQkNEMUE0OEU2QzYwMDU0RUY3NCAvKiBDb3JlUERGU1BJLmggKi8sCiAJCQkJQ0UxQTBCQ0Ux
QTQ4RTZDNjAwNTRFRjc0IC8qIERhdGFEZXRlY3RvcnNVSVNQSS5oICovLApAQCAtNzc0Nyw2ICs3
NzUwLDcgQEAKIAkJCQlDNThDREYyRTE4ODc2MDlGMDA4NzE1MzYgLyogSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUM1OENERjJBMTg4NzU0OEIw
MDg3MTUzNiAvKiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE0ODMyQzgxQTlCQzEzQzAwOEI0REZFIC8qIEFQSVdlYnNpdGVEYXRhUmVjb3Jk
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDREEwNDFGNDFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0Jv
YXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTQ5QTQ5MTFGRkE4Q0UwMDQ4
QjQ2NCAvKiBKU05QTWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU0OTg3ODExRkY3RkFB
MDA0OEI0NjQgLyogSlNOUE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4MzUzREYxODg3
MTI4QjAwRDlGRTQ0IC8qIEtleWVkRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5tbQppbmRleCAxYzlhMzU4MzIyYjYzZmU1NGU4YTliYWY1YzA1ZmJmOGZiNzFmN2M0Li41
ZmE3OTgyMmQzYjVjMDNiODIxYjg1YjUwOWQ5NWQzMjk2ZDRmNjM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIubW0KQEAgLTI3MiwxMCArMjcyLDEzIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKGJvb2wgaXNQYWdlVmlzaWJsZSkKICAgICAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2Vk
KFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiB7
CisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldEFuaW1h
dGlvbkR1cmF0aW9uOjBdOwogICAgIGlmIChtX2xheWVySG9zdGluZ0NvbnRleHQpCiAgICAgICAg
IG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KGZlbmNlUG9ydC5wb3J0KCkpOwog
ICAgIHNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOwogICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRl
KG1hY2hfdGFza19zZWxmKCksIGZlbmNlUG9ydC5wb3J0KCkpOworICAgIFtDQVRyYW5zYWN0aW9u
IGNvbW1pdF07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>