<?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>64483</bug_id>
          
          <creation_ts>2011-07-13 14:22:41 -0700</creation_ts>
          <short_desc>Disable Caches in Safari&apos;s Develop menu does not disable caches.</short_desc>
          <delta_ts>2016-03-20 13:09:09 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>vsevik</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436650</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-07-13 14:22:41 -0700</bug_when>
    <thetext>I have a mac with safari 5.0.5 installed

Scenario:

1. build recent webkit
2. run-safari
3. open web inspector&apos;s network panel
4. set Disable Caches in Develop menu  
5. go to webkit.org
6. refresh
7. observe 304 statuses of css stylesheets 

I can also see that the first refresh after setting Disable Caches option shows 200 OK, which probably means that Disable Caches clears cache instead of disabling it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436654</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-13 14:25:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/9770590&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175281</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-15 22:36:49 -0700</bug_when>
    <thetext>OK, here are the two bugs I found:

1) Setting the cache model to CacheModelDocumentViewer does not turn off MemoryCache. It turns off caching of dead resources, but it sets a non-zero value for the total size of the memory cache, which means that live resources are indeed cached. This policy is implemented in the calculateCacheSizes function and the +[WebView _setCacheModel:]  method. I tried setting cacheTotalCapacity to 0 and indeed this fixed the original reported symptom. It might be bad, however, for clients using CacheModelDocumentViewer for something other than Safari’s Disable Caches. Performance might be suprisingly bad when the memory cache is entirely turned off. Presumably this regression dates back to when we Antti created the MemoryCache.

2) Setting the cache model to CacheModelDocumentViewer does not turn off the NSURLCache disk cache when NETWORK_CACHE is disabled. This policy is in the NetworkProcess::platformSetCacheModel function and the +[WebView _setCacheModel:]  method. Neither will ever shrink disk capacity, only make it larger. Comment says, “Don&apos;t shrink a big disk cache, since that would cause churn.” I don’t understand the thinking behind this. This has always been the case &lt;http://trac.webkit.org/changeset/25430&gt;. Safari attempts to work around this by calling -[NSURLCache setDiskCapacity:] directly but this has not had any effect on WebKit networking since we moved it from the UI process to the web process and then later to the network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176046</commentid>
    <comment_count>3</comment_count>
      <attachid>274376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-17 23:04:11 -0700</bug_when>
    <thetext>Created attachment 274376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176047</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-17 23:06:16 -0700</bug_when>
    <thetext>Here’s my patch:

I didn&apos;t add a test yet.

This won’t fix the problem with Safari until a new version of Safari comes out that uses the new SPI. If we decide this is important, we could put an app-specific hack in to make this do the right thing in old versions of Safari.

I&apos;m not sure this covers all the code paths. There are comments that seem to indicate some loads bypass FrameLoader::addExtraFieldsToRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176051</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-17 23:14:29 -0700</bug_when>
    <thetext>This doesn&apos;t disable the page cache&apos;s caching of back/forward history. Maybe it should. Any other caches it should disable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176078</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-17 23:51:50 -0700</bug_when>
    <thetext>Disabling page cache seems desirable too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176083</commentid>
    <comment_count>7</comment_count>
      <attachid>274376</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-18 00:01:21 -0700</bug_when>
    <thetext>Comment on attachment 274376
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPreferences.cpp:1518
&gt; +void WKPreferencesSetAllCachesDisabled(WKPreferencesRef preferencesRef, bool flag)
&gt; +{
&gt; +    toImpl(preferencesRef)-&gt;setAllCachesDisabled(flag);
&gt; +}
&gt; +
&gt; +bool WKPreferencesGetAllCachesDisabled(WKPreferencesRef preferencesRef)
&gt; +{
&gt; +    return toImpl(preferencesRef)-&gt;allCachesDisabled();
&gt; +}

If I understand correctly we don&apos;t really want to add more C API. We should add ObjC SPI to WKPreferencesPrivate. I&apos;m not sure we need these C functions at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176084</commentid>
    <comment_count>8</comment_count>
      <attachid>274376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 00:03:48 -0700</bug_when>
    <thetext>Comment on attachment 274376
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKPreferences.cpp:1518
&gt;&gt; +}
&gt; 
&gt; If I understand correctly we don&apos;t really want to add more C API. We should add ObjC SPI to WKPreferencesPrivate. I&apos;m not sure we need these C functions at all.

I asked Sam today what to do, and he told me to do this. Safari is currently using the C SPI, and I don’t think it can mix the C SPI with the Objective-C API/SPI. Same said it would be trivial to add the Objective-C API or SPI for this later and so I should not worry about it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176085</commentid>
    <comment_count>9</comment_count>
      <attachid>274376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 00:04:51 -0700</bug_when>
    <thetext>Comment on attachment 274376
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/C/WKPreferences.cpp:1518
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; If I understand correctly we don&apos;t really want to add more C API. We should add ObjC SPI to WKPreferencesPrivate. I&apos;m not sure we need these C functions at all.
&gt; 
&gt; I asked Sam today what to do, and he told me to do this. Safari is currently using the C SPI, and I don’t think it can mix the C SPI with the Objective-C API/SPI. Same said it would be trivial to add the Objective-C API or SPI for this later and so I should not worry about it now.

Sam said, not &quot;Same said&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176087</commentid>
    <comment_count>10</comment_count>
      <attachid>274376</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-18 00:10:46 -0700</bug_when>
    <thetext>Comment on attachment 274376
Patch

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

&gt; Source/WebCore/page/Settings.in:255
&gt; +allCachesDisabled initial=false

We of course have many caches that this setting is not meant to disable. I suppose it is reasonable to assume that &quot;all caches&quot; here refers to resource caches specifically. Still I wonder if there would be a better name, &quot;resourceCachesDisabled&quot; or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176088</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-18 00:12:25 -0700</bug_when>
    <thetext>&gt; I asked Sam today what to do, and he told me to do this. Safari is currently
&gt; using the C SPI, and I don’t think it can mix the C SPI with the Objective-C
&gt; API/SPI. Same said it would be trivial to add the Objective-C API or SPI for
&gt; this later and so I should not worry about it now.

Ok. I assumed we can mix SPIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176091</commentid>
    <comment_count>12</comment_count>
      <attachid>274376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 00:16:36 -0700</bug_when>
    <thetext>Comment on attachment 274376
Patch

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

&gt;&gt; Source/WebCore/page/Settings.in:255
&gt;&gt; +allCachesDisabled initial=false
&gt; 
&gt; We of course have many caches that this setting is not meant to disable. I suppose it is reasonable to assume that &quot;all caches&quot; here refers to resource caches specifically. Still I wonder if there would be a better name, &quot;resourceCachesDisabled&quot; or something.

I’ll make a new version of this patch that covers the page cache too. The page cache caches resources, but it also caches more than that. I guess the name should be resourceCachingDisabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176101</commentid>
    <comment_count>13</comment_count>
      <attachid>274388</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 00:36:14 -0700</bug_when>
    <thetext>Created attachment 274388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176105</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 00:56:23 -0700</bug_when>
    <thetext>Committed r198393: &lt;http://trac.webkit.org/changeset/198393&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176448</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 21:37:02 -0700</bug_when>
    <thetext>Anders asked me to move this from WKPreferences to WKPage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176451</commentid>
    <comment_count>16</comment_count>
      <attachid>274501</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 21:43:50 -0700</bug_when>
    <thetext>Created attachment 274501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176452</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 21:44:16 -0700</bug_when>
    <thetext>Here’s a new patch that moves this off of preferences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176454</commentid>
    <comment_count>18</comment_count>
      <attachid>274502</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-18 22:02:05 -0700</bug_when>
    <thetext>Created attachment 274502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176482</commentid>
    <comment_count>19</comment_count>
      <attachid>274502</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-19 02:35:09 -0700</bug_when>
    <thetext>Comment on attachment 274502
Patch

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

&gt; Source/WebCore/page/Page.h:518
&gt; +    bool isResourceCachingDisabled() const { return m_resourceCachingDisabled; }
&gt; +    void setResourceCachingDisabled(bool disabled) { m_resourceCachingDisabled = disabled; }

Why do we prefer Page here? If this is not appropriate part of Settings then what is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176492</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-19 09:25:27 -0700</bug_when>
    <thetext>Anders, could you answer Antti’s question?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176603</commentid>
    <comment_count>21</comment_count>
      <attachid>274502</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-03-20 12:17:25 -0700</bug_when>
    <thetext>Comment on attachment 274502
Patch

In any case no need to hold this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176612</commentid>
    <comment_count>22</comment_count>
      <attachid>274502</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-20 13:09:03 -0700</bug_when>
    <thetext>Comment on attachment 274502
Patch

Clearing flags on attachment: 274502

Committed r198476: &lt;http://trac.webkit.org/changeset/198476&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176613</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-20 13:09:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274376</attachid>
            <date>2016-03-17 23:04:11 -0700</date>
            <delta_ts>2016-03-18 00:36:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64483-20160317230411.patch</filename>
            <type>text/plain</type>
            <size>12886</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2VmOGFmOGYwZWY3YjY0
MWI0NDBkMzg2NjMyZTEwYTUzOTA2MDM3ZC4uYTM5ZjgyNDZhNGYzMDEzZDdmZjc0NDI3MDhkM2I2
OGIxMzdiYWQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTAzLTE3ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIENhY2hlcyBpbiBT
YWZhcmkncyBEZXZlbG9wIG1lbnUgZG9lcyBub3QgZGlzYWJsZSBjYWNoZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBzZXR0aW5nLCBB
bGxDYWNoZXNEaXNhYmxlZCwgZm9yIHVzZSBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgU2FmYXJpLgor
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpzdWJyZXNvdXJjZUNhY2hlUG9saWN5KTogQ2hlY2sgYWxsQ2FjaGVzRGlzYWJs
ZWQsIGFuZAorICAgICAgICByZXF1ZXN0IGEgcmVsb2FkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KTogQ2hlY2sgYWxsQ2FjaGVzRGlzYWJs
ZWQsIGFuZAorICAgICAgICBzZXQgdGhlIGNhY2hlIHBvbGljeSB0byB0cmlnZ2VyIGEgcmVsb2Fk
LgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FjaGVQb2xpY3kpOiBDaGVjayBh
bGxDYWNoZXNEaXNhYmxlZCwgYW5kCisgICAgICAgIHJlcXVlc3QgYSByZWxvYWQuCisKKyAgICAg
ICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGRlZCBhbGxDYWNoZXNEaXNhYmxlZC4KKwogMjAxNi0w
My0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbWFNT
IEF1ZGl0b3JdIE9mZiBieSBvbmUgaW4gWFNTQXVkaXRvcjo6Y2Fub25pY2FsaXplZFNuaXBwZXRG
b3JKYXZhU2NyaXB0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4MWYxMjU4MTY1MWUxMDgyOGY5ZmVj
OTE0ZWI1MTFkOWE3ODhkMGI1Li5lNjM2ZTRjOTM2MjM1NTczZmI1MjFjZTI2NDI1NjdiNTU4MzVi
NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDMtMTcgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIERpc2FibGUgQ2FjaGVzIGluIFNh
ZmFyaSdzIERldmVsb3AgbWVudSBkb2VzIG5vdCBkaXNhYmxlIGNhY2hlcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDgzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oOiBBZGQgQWxsQ2FjaGVzRGlzYWJsZWQuCisgICAgICAgICogV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgYXJlQWxsQ2Fj
aGVzRGlzYWJsZWRdKTogQWRkZWQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEFsbENh
Y2hlc0Rpc2FibGVkOl0pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oOiBBZGRlZCBhbGxDYWNoZXNEaXNhYmxlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dl
YlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKTogUHVz
aCBhbGxDYWNoZXNEaXNhYmxlZCBpbnRvIFdlYkNvcmUuCisKIDIwMTYtMDMtMTcgIENzYWJhIE9z
enRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbY21ha2VdW01hY10gVW5y
ZXZpZXdlZCBzcGVjdWxhdGl2ZSBidWlsZGZpeCBhZnRlciByMTk4MDg4LiBKdXN0IGZvciBmdW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMGY4MWI2Nzg2YjdlZWNhZWM1NDdmODc1ZWUzNWExZGQ2MDhhNWI2OC4u
ZDFlZDY5NjQzMGMyYjU5ZDJlYTZhN2JmOTJjZTYzOGRkYTkzZjI1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDE2LTAzLTE3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBEaXNhYmxlIENhY2hlcyBpbiBTYWZhcmkncyBEZXZlbG9wIG1lbnUgZG9lcyBu
b3QgZGlzYWJsZSBjYWNoZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NDQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDogQWRkZWQgQWxs
Q2FjaGVzRGlzYWJsZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldEFsbENhY2hlc0Rpc2FibGVkKTogQWRkZWQu
CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0QWxsQ2FjaGVzRGlzYWJsZWQpOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaDogRGl0dG8u
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6IFB1c2ggQWxsQ2FjaGVzRGlzYWJsZWQg
c2V0dGluZworICAgICAgICBpbnRvIFdlYkNvcmUuCisKIDIwMTYtMDMtMTcgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRmluZC1pbi1wYWdlIGluZGlj
YXRvciBpbiBNYWlsIHZpZXdlciBpcyB0aGUgd3Jvbmcgc2NhbGUgYW5kIGN1dCBvZmYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDlkOWExMzdjMGNlNTc2NWFiN2IyNjIy
NzEzZWIxZjY0YjE3Yjk1YmUuLjBiNjVlNzU4YWQ0OTEwMWMyYzVkYjgzZTA2MmFiYjYxYTZmMmJl
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjE1NSw2ICsyMTU1
LDkgQEAgRnJhbWVMb2FkVHlwZSBGcmFtZUxvYWRlcjo6bG9hZFR5cGUoKSBjb25zdAogICAgIAog
Q2FjaGVQb2xpY3kgRnJhbWVMb2FkZXI6OnN1YnJlc291cmNlQ2FjaGVQb2xpY3koKSBjb25zdAog
eworICAgIGlmIChtX2ZyYW1lLnNldHRpbmdzKCkuYWxsQ2FjaGVzRGlzYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuIENhY2hlUG9saWN5UmVsb2FkOworCiAgICAgaWYgKG1faXNDb21wbGV0ZSkKICAg
ICAgICAgcmV0dXJuIENhY2hlUG9saWN5VmVyaWZ5OwogCkBAIC0yNTYxLDYgKzI1NjQsMTEgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFGaWVsZHNUb01haW5SZXNvdXJjZVJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogCiB2b2lkIEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxk
c1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lTG9hZFR5cGUgbG9hZFR5
cGUsIGJvb2wgbWFpblJlc291cmNlKQogeworICAgIGJvb2wgY2FjaGVEaXNhYmxlZCA9IGZyYW1l
KCkuc2V0dGluZ3MoKS5hbGxDYWNoZXNEaXNhYmxlZCgpOworCisgICAgaWYgKGNhY2hlRGlzYWJs
ZWQpCisgICAgICAgIHJlcXVlc3Quc2V0Q2FjaGVQb2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURh
dGEpOworCiAgICAgLy8gRG9uJ3Qgc2V0IHRoZSBjb29raWUgcG9saWN5IFVSTCBpZiBpdCdzIGFs
cmVhZHkgYmVlbiBzZXQuCiAgICAgLy8gQnV0IG1ha2Ugc3VyZSB0byBzZXQgaXQgb24gYWxsIHJl
cXVlc3RzIHJlZ2FyZGxlc3Mgb2YgcHJvdG9jb2wsIGFzIGl0IGhhcyBzaWduaWZpY2FuY2UgYmV5
b25kIHRoZSBjb29raWUgcG9saWN5ICg8cmRhcjovL3Byb2JsZW0vNjYxNjY2ND4pLgogICAgIGlm
IChyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkuaXNFbXB0eSgpKSB7CkBAIC0yNTc2LDcg
KzI1ODQsMTAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFGaWVsZHNUb1JlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZUxvYWRUeXAKIAogICAgIGFwcGx5VXNlckFnZW50
KHJlcXVlc3QpOwogCi0gICAgaWYgKCFtYWluUmVzb3VyY2UpIHsKKyAgICBpZiAoY2FjaGVEaXNh
YmxlZCkgeworICAgICAgICAvLyBDYWNoZSBwb2xpY3kgd2FzIGFscmVhZHkgc2V0IGFib3ZlIGlu
IHRoZSBub24tSFRUUC1zcGVjaWZpYyBjb2RlLgorICAgICAgICBsb2FkVHlwZSA9IEZyYW1lTG9h
ZFR5cGU6OlJlbG9hZEZyb21PcmlnaW47CisgICAgfSBlbHNlIGlmICghbWFpblJlc291cmNlKSB7
CiAgICAgICAgIGlmIChyZXF1ZXN0LmlzQ29uZGl0aW9uYWwoKSkKICAgICAgICAgICAgIHJlcXVl
c3Quc2V0Q2FjaGVQb2xpY3koUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpOwogICAgICAgICBlbHNl
IGlmIChkb2N1bWVudExvYWRlcigpLT5pc0xvYWRpbmdJbkFQSVNlbnNlKCkpIHsKQEAgLTI2MTMs
NyArMjYyNCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWVMb2FkVHlwCiAgICAgICAgICAgICByZXF1ZXN0
LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UHJhZ21hLCAibm8tY2FjaGUiKTsK
ICAgICAgICAgfQogICAgIH0KLSAgICAKKwogICAgIGlmIChtYWluUmVzb3VyY2UpCiAgICAgICAg
IHJlcXVlc3Quc2V0SFRUUEFjY2VwdChkZWZhdWx0QWNjZXB0SGVhZGVyKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggZmRmZGQ2NDliODVjZGYwOTNiOTllN2M2ZDBhOWY4YmFiN2MxZTk1Yy4uODM3MjZjZmM1ZThj
ODZmM2I4NjM4N2Y5NWI1MGI1MTY4ZmE3YmZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC05MjMsMTMgKzkyMywx
NyBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZWxvYWRJbWFnZXNJZk5vdERlZmVycmVk
KCkKIAogQ2FjaGVQb2xpY3kgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhY2hlUG9saWN5KENhY2hl
ZFJlc291cmNlOjpUeXBlIHR5cGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFmcmFtZSgpKQorICAgIEZy
YW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0
dXJuIENhY2hlUG9saWN5VmVyaWZ5OwogCisgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygpLmFsbENh
Y2hlc0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybiBDYWNoZVBvbGljeVJlbG9hZDsKKwogICAg
IGlmICh0eXBlICE9IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCi0gICAgICAgIHJldHVy
biBmcmFtZSgpLT5sb2FkZXIoKS5zdWJyZXNvdXJjZUNhY2hlUG9saWN5KCk7CisgICAgICAgIHJl
dHVybiBmcmFtZS0+bG9hZGVyKCkuc3VicmVzb3VyY2VDYWNoZVBvbGljeSgpOwogICAgIAotICAg
IHN3aXRjaCAoZnJhbWUoKS0+bG9hZGVyKCkubG9hZFR5cGUoKSkgeworICAgIHN3aXRjaCAoZnJh
bWUtPmxvYWRlcigpLmxvYWRUeXBlKCkpIHsKICAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9h
ZEZyb21PcmlnaW46CiAgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQ6CiAgICAgICAgIHJl
dHVybiBDYWNoZVBvbGljeVJlbG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDA0ZjEz
ODdkNGMxYTEwMTMyMjg2MjM4N2Q3ZWU1N2M0NTdiYTRkZTEuLjVmNWI0OGM3YzY1OWM5YzAzOTZi
MjU1OWVkMmNlYWZkMjdjN2U4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMjUxLDMg
KzI1MSw1IEBAIGh0dHBFcXVpdkVuYWJsZWQgaW5pdGlhbD10cnVlCiAjIGVuZm9yY2VzIGFsbCBm
cmFtZSBzYW5kYm94IGZsYWdzIChzZWUgZW51bSBTYW5kYm94RmxhZyBpbiBTZWN1cml0eUNvbnRl
eHQuaCksIGFuZCBhbHNvIGRpc2FibGVzIDxtZXRhIGh0dHAtZXF1aXY+CiAjIHByb2Nlc3Npbmcg
YW5kIHN1YmZyYW1lIGxvYWRpbmcuCiBjb250ZW50RGlzcG9zaXRpb25BdHRhY2htZW50U2FuZGJv
eEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCithbGxDYWNoZXNEaXNhYmxlZCBpbml0aWFsPWZhbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCA2NjlkNTRlNThlMjI2YWMyM2FjZWFhYjkyNWFmODQ2ODAzMWFjYzQ5Li40
MDM5NzExN2E5ZGFkMmEwZjY4MzMzYTdmZWJmN2IxMjg1MzEwYjZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE2
MSw2ICsxNjEsNyBAQAogI2RlZmluZSBXZWJLaXRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5S2V5
IEAiV2ViS2l0TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSIKICNkZWZpbmUgV2ViS2l0U2hhZG93
RE9NRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaGFkb3dET01FbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRDdXN0b21FbGVtZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q3VzdG9t
RWxlbWVudHNFbmFibGVkIgorI2RlZmluZSBXZWJLaXRBbGxDYWNoZXNEaXNhYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRBbGxDYWNoZXNEaXNhYmxlZCIKIAogI2lmICFUQVJHRVRfT1NfSVBIT05F
CiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1c2UgY2FsbGVycyBzaG91bGQgYmUgdXNp
bmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2UgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAzNDlhYjJjMzZkOWU2MjMzMzM3NDcwNTE2
ZTg2NTlhNjcxMWY4ZmZhLi45NTY3ZTNiYjkwOGYyZTZhYzQxODk0MDIxZjc5ZmE2ZTc4NDZmMzBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTcw
NCw3ICs3MDQsOCBAQCAtICh1bnNpZ25lZCBpbnQpX3Vuc2lnbmVkSW50VmFsdWVGb3JLZXk6KE5T
U3RyaW5nICopa2V5CiB9CiAKIC0gKHZvaWQpX3NldFVuc2lnbmVkSW50VmFsdWU6KHVuc2lnbmVk
IGludCl2YWx1ZSBmb3JLZXk6KE5TU3RyaW5nICopa2V5Ci17ICAgIGlmIChbc2VsZiBfdW5zaWdu
ZWRJbnRWYWx1ZUZvcktleTprZXldID09IHZhbHVlKQoreworICAgIGlmIChbc2VsZiBfdW5zaWdu
ZWRJbnRWYWx1ZUZvcktleTprZXldID09IHZhbHVlKQogICAgICAgICByZXR1cm47CiAgICAgTlNT
dHJpbmcgKl9rZXkgPSBLRVkoa2V5KTsKICNpZiBQTEFURk9STShJT1MpCkBAIC0yNjk5LDYgKzI3
MDAsMTYgQEAgLSAodm9pZClzZXRDdXN0b21FbGVtZW50c0VuYWJsZWQ6KEJPT0wpZmxhZwogICAg
IFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q3VzdG9tRWxlbWVudHNFbmFi
bGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpYXJlQWxsQ2FjaGVzRGlzYWJsZWQKK3sK
KyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRBbGxDYWNoZXNEaXNhYmxl
ZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldEFsbENhY2hlc0Rpc2FibGVkOihCT09M
KWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdEFsbENh
Y2hlc0Rpc2FibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9u
IFdlYlByZWZlcmVuY2VzIChXZWJJbnRlcm5hbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGUyODU3YjQzMjQ4NzNhYTI4MjEz
OWMxYTkzZTYyZDJlODRmYTkxOWQuLjFmMGQ1NzdmNjM5ZThhMTAzMzhjOGE5YWFkY2RhYjg0MjEy
ZTI5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaApAQCAtNDg0LDUgKzQ4NCw2IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVy
ZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgamF2YVNjcmlwdE1hcmt1cEVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBtZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBhdHRhY2htZW50RWxlbWVudEVuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWFyZUFsbENhY2hlc0Rpc2FibGVkKSBCT09MIGFsbENhY2hlc0Rpc2FibGVkOwog
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYTE0NzJmNTdjYTgx
YzQ0YWVlNTVlOWYxYTU3YmI3OTI5YWZjM2I2My4uMDkyMzc4NTdlOTI5NmFiM2ZkZDhiMmZhZWRh
ZDQxMGYzNTMwOTU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjUx
Niw2ICsyNTE2LDggQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNl
cyAqKXByZWZlcmVuY2VzCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBzZXR0
aW5ncy5zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQoW3ByZWZlcmVuY2VzIGF0dGFjaG1lbnRF
bGVtZW50RW5hYmxlZF0pOwogI2VuZGlmCisKKyAgICBzZXR0aW5ncy5zZXRBbGxDYWNoZXNEaXNh
YmxlZChwcmVmZXJlbmNlcy5hbGxDYWNoZXNEaXNhYmxlZCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
SU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IDZlMDAzNDVlMGYyZTk5ZGFmNjY2NDhh
M2Q5OTQwNmU3NTZjOWY3ZTUuLjg5NWRmNjhhZTY4MTU4YWM0MzBhZWNhNDNlYjY1ZDk5YzVjMWI5
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5p
dGlvbnMuaApAQCAtMjI3LDYgKzIyNyw3IEBACiAgICAgbWFjcm8oTW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCwgbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
ICAgICBtYWNybyhTaGFkb3dET01FbmFibGVkLCBzaGFkb3dET01FbmFibGVkLCBCb29sLCBib29s
LCB0cnVlKSBcCiAgICAgbWFjcm8oQ3VzdG9tRWxlbWVudHNFbmFibGVkLCBjdXN0b21FbGVtZW50
c0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQWxsQ2FjaGVzRGlzYWJs
ZWQsIGFsbENhY2hlc0Rpc2FibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIEZPUl9FQUNI
X0FERElUSU9OQUxfV0VCS0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAogICAgIFwKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4
IDg3YzI4MDlhMzQ5NDY3NGUxNmFhNTkyYjYxOGIyZmRiYWFlZDI3MTQuLmU5YWNjZWIwNjU0NWNi
YmFjYWQ3MDVjZGIzYTY1YTYxMmY1NmQ2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTE1MDYsMyArMTUwNiwxMyBAQCBib29s
IFdLUHJlZmVyZW5jZXNHZXRDdXN0b21FbGVtZW50c0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2hh
ZG93RE9NRW5hYmxlZCgpOwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRBbGxDYWNoZXNEaXNh
YmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit7CisgICAg
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0QWxsQ2FjaGVzRGlzYWJsZWQoZmxhZyk7Cit9CisK
K2Jvb2wgV0tQcmVmZXJlbmNlc0dldEFsbENhY2hlc0Rpc2FibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmFs
bENhY2hlc0Rpc2FibGVkKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IGMyZmI0MGEwYjY2YTU1
ZWRhZWU4OTg0MTU2NjdkODliOWQ2M2VlZWEuLjkzODVkOTU1ZTU5NmI4NjI1OTk3YTU5MjdiZjFk
MTYwNGE4NTQ0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC00MTksNiArNDE5LDEwIEBAIFdLX0VY
UE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRTaGFkb3dET01FbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEN1c3RvbUVsZW1lbnRzRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJl
bmNlc0dldEN1c3RvbUVsZW1lbnRzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVm
YXVsdHMgdG8gZmFsc2UKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRBbGxDYWNoZXNE
aXNhYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOworV0tfRVhQT1JUIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldEFsbENhY2hlc0Rpc2FibGVkKFdLUHJlZmVyZW5jZXNSZWYpOworCiAjaWZk
ZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDdmZDM5OGQ2OWUwNDY1MGE1ZTE4MDk5ZmEwMjhhZWMw
MzFmMDBmNzQuLjk4YmY4NWZjOTNjZTM2Zjc2Njc3MGIwYzhlY2Y3NjY5MmU5MjRiMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMwNDUs
NiArMzA0NSw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJl
ZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAKICAgICBzZXR0aW5ncy5zZXRTaG91bGREaXNwYXRjaEph
dmFTY3JpcHRXaW5kb3dPbkVycm9yRXZlbnRzKHRydWUpOwogCisgICAgc2V0dGluZ3Muc2V0QWxs
Q2FjaGVzRGlzYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjphbGxDYWNoZXNEaXNhYmxlZEtleSgpKSk7CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJlZmVyZW5jZXMuY3BwPgogI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274388</attachid>
            <date>2016-03-18 00:36:14 -0700</date>
            <delta_ts>2016-03-18 21:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64483-20160318003614.patch</filename>
            <type>text/plain</type>
            <size>15313</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2VmOGFmOGYwZWY3YjY0
MWI0NDBkMzg2NjMyZTEwYTUzOTA2MDM3ZC4uYWIzOTg0MDIzNTM0MDFmODg5ZWIwZDM4Y2IwNWMy
NTg3NjNmMGYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTAzLTE4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIENhY2hlcyBpbiBT
YWZhcmkncyBEZXZlbG9wIG1lbnUgZG9lcyBub3QgZGlzYWJsZSBjYWNoZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEFkZCBhIG5ldyBzZXR0aW5nLCBS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCwgZm9yIHVzZSBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgU2Fm
YXJpLgorCisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FuQ2FjaGVQYWdlKTogQ2hlY2sgcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgYW5kIHJldHVy
biBmYWxzZS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDYWNoZTo6dGFrZSk6IENoZWNrIHJlc291
cmNlQ2FjaGluZ0Rpc2FibGVkLCBhbmQgcmV0dXJuIG51bGwuCisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ2FjaGU6OmdldCk6IERpdHRvLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdWJyZXNvdXJjZUNhY2hlUG9saWN5
KTogQ2hlY2sgcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQsIGFuZAorICAgICAgICByZXF1ZXN0IGEg
cmVsb2FkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9S
ZXF1ZXN0KTogQ2hlY2sgcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQsIGFuZAorICAgICAgICBzZXQg
dGhlIGNhY2hlIHBvbGljeSB0byB0cmlnZ2VyIGEgcmVsb2FkLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Y2FjaGVQb2xpY3kpOiBDaGVjayByZXNvdXJjZUNhY2hpbmdEaXNhYmxl
ZCwgYW5kCisgICAgICAgIHJlcXVlc3QgYSByZWxvYWQuCisKKyAgICAgICAgKiBwYWdlL1NldHRp
bmdzLmluOiBBZGRlZCByZXNvdXJjZUNhY2hpbmdEaXNhYmxlZC4KKwogMjAxNi0wMy0xNyAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbWFNTIEF1ZGl0b3Jd
IE9mZiBieSBvbmUgaW4gWFNTQXVkaXRvcjo6Y2Fub25pY2FsaXplZFNuaXBwZXRGb3JKYXZhU2Ny
aXB0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4MWYxMjU4MTY1MWUxMDgyOGY5ZmVjOTE0ZWI1MTFk
OWE3ODhkMGI1Li4xNWZhNmFmMGIyNmU0ODczNWQ5YTEzMjJjNWI0NDNiODdmM2UzZTFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDMtMTggIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIERpc2FibGUgQ2FjaGVzIGluIFNhZmFyaSdzIERl
dmVsb3AgbWVudSBkb2VzIG5vdCBkaXNhYmxlIGNhY2hlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oOiBBZGRlZCBSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZC4KKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBpc1Jlc291cmNl
Q2FjaGluZ0Rpc2FibGVkXSk6IEFkZGVkLgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZDpdKTogQWRkZWQuCisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaDogQWRkZWQgcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQuCisgICAg
ICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNl
c0NoYW5nZWQ6XSk6IFB1c2ggcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgaW50byBXZWJDb3JlLgor
CiAyMDE2LTAzLTE3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW2NtYWtlXVtNYWNdIFVucmV2aWV3ZWQgc3BlY3VsYXRpdmUgYnVpbGRmaXggYWZ0ZXIg
cjE5ODA4OC4gSnVzdCBmb3IgZnVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDBmODFiNjc4NmI3ZWVjYWVjNTQ3
Zjg3NWVlMzVhMWRkNjA4YTViNjguLmU1MjUwMDdmMTRkNmEyZTZlNmNiNjcyMGFlYjZjYmY2Y2I2
MGM3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNi0wMy0xOCAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgRGlzYWJsZSBDYWNoZXMgaW4gU2FmYXJp
J3MgRGV2ZWxvcCBtZW51IGRvZXMgbm90IGRpc2FibGUgY2FjaGVzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmg6IEFkZGVkIFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNT
ZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6IEFkZGVkLgorICAgICAgICAoV0tQcmVmZXJlbmNl
c0dldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6IERpdHRvLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMpOiBQdXNoIFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkIHNldHRpbmcKKyAg
ICAgICAgaW50byBXZWJDb3JlLgorCiAyMDE2LTAzLTE3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpbmQtaW4tcGFnZSBpbmRpY2F0b3IgaW4gTWFp
bCB2aWV3ZXIgaXMgdGhlIHdyb25nIHNjYWxlIGFuZCBjdXQgb2ZmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L1BhZ2VDYWNoZS5jcHAKaW5kZXggZDI3ZWVhYjlmOGRjOWY3MWE2NmFlYzQ2Yzc3ZmMxYmE4Zjlk
YjJmYi4uMTdmNWEyNzliYTM0N2JkNWU5MjYzNWY0Y2ZiNmQwNDZiNzRiOTdjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtMTkzLDcgKzE5Myw3IEBAIHN0YXRpYyBib29s
IGNhbkNhY2hlUGFnZShQYWdlJiBwYWdlKQogICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IG1haW5GcmFtZS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCgpOwogICAgIGJvb2wgaXNDYWNoZWFibGUgPSBjYW5DYWNoZUZyYW1lKG1haW5GcmFtZSwgZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVsICsgMSk7CiAgICAgCi0gICAgaWYgKCFw
YWdlLnNldHRpbmdzKCkudXNlc1BhZ2VDYWNoZSgpKSB7CisgICAgaWYgKCFwYWdlLnNldHRpbmdz
KCkudXNlc1BhZ2VDYWNoZSgpIHx8IHBhZ2Uuc2V0dGluZ3MoKS5yZXNvdXJjZUNhY2hpbmdEaXNh
YmxlZCgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtUGFnZSBzZXR0aW5ncyBzYXlzIGIvZiBjYWNo
ZSBkaXNhYmxlZCIpOwogICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3Nh
Z2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNEaXNh
YmxlZEtleSgpKTsKICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKQEAgLTQyMyw3ICs0MjMs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gUGFnZUNhY2hlOjp0YWtlKEhpc3RvcnlJ
dGVtJiBpdGVtLCBQYWdlKiBwYWdlKQogICAgIG1faXRlbXMucmVtb3ZlKCZpdGVtKTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IFdURk1vdmUoaXRlbS5tX2Nh
Y2hlZFBhZ2UpOwogCi0gICAgaWYgKGNhY2hlZFBhZ2UtPmhhc0V4cGlyZWQoKSkgeworICAgIGlm
IChjYWNoZWRQYWdlLT5oYXNFeHBpcmVkKCkgfHwgKHBhZ2UgJiYgcGFnZS0+c2V0dGluZ3MoKS5y
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpKSkgewogICAgICAgICBMT0coUGFnZUNhY2hlLCAiTm90
IHJlc3RvcmluZyBwYWdlIGZvciAlcyBmcm9tIGJhY2svZm9yd2FyZCBjYWNoZSBiZWNhdXNlIGNh
Y2hlIGVudHJ5IGhhcyBleHBpcmVkIiwgaXRlbS51cmwoKS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEo
KSk7CiAgICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShwYWdlLCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OmV4cGlyZWRLZXkoKSk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIENhY2hlZFBhZ2UqIFBhZ2VDYWNoZTo6Z2V0KEhpc3Rv
cnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBpZiAoY2FjaGVkUGFnZS0+aGFzRXhwaXJlZCgpKSB7CisgICAgaWYgKGNhY2hlZFBh
Z2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5zZXR0aW5ncygpLnJlc291cmNlQ2Fj
aGluZ0Rpc2FibGVkKCkpKSB7CiAgICAgICAgIExPRyhQYWdlQ2FjaGUsICJOb3QgcmVzdG9yaW5n
IHBhZ2UgZm9yICVzIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIGJlY2F1c2UgY2FjaGUgZW50cnkg
aGFzIGV4cGlyZWQiLCBpdGVtLnVybCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKICAgICAg
ICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsKICAgICAgICAgcmVtb3ZlKGl0ZW0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOWQ5YTEzN2MwY2U1NzY1YWI3YjI2MjI3
MTNlYjFmNjRiMTdiOTViZS4uMzgwYmYzZjI0MzFhMTA5YzNiNWRlZDZjZWMxOTE4NjJmM2M3NjVm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMTU1LDYgKzIxNTUs
OSBAQCBGcmFtZUxvYWRUeXBlIEZyYW1lTG9hZGVyOjpsb2FkVHlwZSgpIGNvbnN0CiAgICAgCiBD
YWNoZVBvbGljeSBGcmFtZUxvYWRlcjo6c3VicmVzb3VyY2VDYWNoZVBvbGljeSgpIGNvbnN0CiB7
CisgICAgaWYgKG1fZnJhbWUuc2V0dGluZ3MoKS5yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpKQor
ICAgICAgICByZXR1cm4gQ2FjaGVQb2xpY3lSZWxvYWQ7CisKICAgICBpZiAobV9pc0NvbXBsZXRl
KQogICAgICAgICByZXR1cm4gQ2FjaGVQb2xpY3lWZXJpZnk7CiAKQEAgLTI1NjEsNiArMjU2NCwx
MSBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1RvTWFpblJlc291cmNlUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAKIHZvaWQgRnJhbWVMb2FkZXI6OmFkZEV4dHJh
RmllbGRzVG9SZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWVMb2FkVHlwZSBs
b2FkVHlwZSwgYm9vbCBtYWluUmVzb3VyY2UpCiB7CisgICAgYm9vbCBjYWNoaW5nRGlzYWJsZWQg
PSBmcmFtZSgpLnNldHRpbmdzKCkucmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKTsKKworICAgIGlm
IChjYWNoaW5nRGlzYWJsZWQpCisgICAgICAgIHJlcXVlc3Quc2V0Q2FjaGVQb2xpY3koUmVsb2Fk
SWdub3JpbmdDYWNoZURhdGEpOworCiAgICAgLy8gRG9uJ3Qgc2V0IHRoZSBjb29raWUgcG9saWN5
IFVSTCBpZiBpdCdzIGFscmVhZHkgYmVlbiBzZXQuCiAgICAgLy8gQnV0IG1ha2Ugc3VyZSB0byBz
ZXQgaXQgb24gYWxsIHJlcXVlc3RzIHJlZ2FyZGxlc3Mgb2YgcHJvdG9jb2wsIGFzIGl0IGhhcyBz
aWduaWZpY2FuY2UgYmV5b25kIHRoZSBjb29raWUgcG9saWN5ICg8cmRhcjovL3Byb2JsZW0vNjYx
NjY2ND4pLgogICAgIGlmIChyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkuaXNFbXB0eSgp
KSB7CkBAIC0yNTc2LDcgKzI1ODQsMTAgQEAgdm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFGaWVs
ZHNUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZUxvYWRUeXAKIAogICAg
IGFwcGx5VXNlckFnZW50KHJlcXVlc3QpOwogCi0gICAgaWYgKCFtYWluUmVzb3VyY2UpIHsKKyAg
ICBpZiAoY2FjaGluZ0Rpc2FibGVkKSB7CisgICAgICAgIC8vIENhY2hlIHBvbGljeSB3YXMgYWxy
ZWFkeSBzZXQgYWJvdmUgaW4gdGhlIG5vbi1IVFRQLXNwZWNpZmljIGNvZGUuCisgICAgICAgIGxv
YWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbjsKKyAgICB9IGVsc2UgaWYg
KCFtYWluUmVzb3VyY2UpIHsKICAgICAgICAgaWYgKHJlcXVlc3QuaXNDb25kaXRpb25hbCgpKQog
ICAgICAgICAgICAgcmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0
YSk7CiAgICAgICAgIGVsc2UgaWYgKGRvY3VtZW50TG9hZGVyKCktPmlzTG9hZGluZ0luQVBJU2Vu
c2UoKSkgewpAQCAtMjYxMyw3ICsyNjI0LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFG
aWVsZHNUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZUxvYWRUeXAKICAg
ICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQcmFn
bWEsICJuby1jYWNoZSIpOwogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAgaWYgKG1haW5S
ZXNvdXJjZSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQQWNjZXB0KGRlZmF1bHRBY2NlcHRIZWFk
ZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmNwcAppbmRleCBmZGZkZDY0OWI4NWNkZjA5M2I5OWU3YzZkMGE5ZjhiYWI3YzFl
OTVjLi40ZTY2YTkwYjlkZjBlMzY3NzkzN2Q2ZmJkZGRjODM5MWEyMjg3OWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTkyMywxMyArOTIzLDE3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlbG9hZElt
YWdlc0lmTm90RGVmZXJyZWQoKQogCiBDYWNoZVBvbGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
Y2FjaGVQb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkgY29uc3QKIHsKLSAgICBpZiAo
IWZyYW1lKCkpCisgICAgRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKTsKKyAgICBpZiAoIWZy
YW1lKQogICAgICAgICByZXR1cm4gQ2FjaGVQb2xpY3lWZXJpZnk7CiAKKyAgICBpZiAoZnJhbWUt
PnNldHRpbmdzKCkucmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIENh
Y2hlUG9saWN5UmVsb2FkOworCiAgICAgaWYgKHR5cGUgIT0gQ2FjaGVkUmVzb3VyY2U6Ok1haW5S
ZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLnN1YnJlc291cmNlQ2Fj
aGVQb2xpY3koKTsKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS5zdWJyZXNvdXJjZUNh
Y2hlUG9saWN5KCk7CiAgICAgCi0gICAgc3dpdGNoIChmcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlw
ZSgpKSB7CisgICAgc3dpdGNoIChmcmFtZS0+bG9hZGVyKCkubG9hZFR5cGUoKSkgewogICAgIGNh
c2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbjoKICAgICBjYXNlIEZyYW1lTG9hZFR5
cGU6OlJlbG9hZDoKICAgICAgICAgcmV0dXJuIENhY2hlUG9saWN5UmVsb2FkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KaW5kZXggMDRmMTM4N2Q0YzFhMTAxMzIyODYyMzg3ZDdlZTU3YzQ1N2JhNGRl
MS4uYWZkYTNlOTk5ZTkzMzM1OWY3MzQ4Y2YwYzMzOWExOTljZTNjY2ViZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCkBAIC0yNTEsMyArMjUxLDUgQEAgaHR0cEVxdWl2RW5hYmxlZCBpbml0aWFs
PXRydWUKICMgZW5mb3JjZXMgYWxsIGZyYW1lIHNhbmRib3ggZmxhZ3MgKHNlZSBlbnVtIFNhbmRi
b3hGbGFnIGluIFNlY3VyaXR5Q29udGV4dC5oKSwgYW5kIGFsc28gZGlzYWJsZXMgPG1ldGEgaHR0
cC1lcXVpdj4KICMgcHJvY2Vzc2luZyBhbmQgc3ViZnJhbWUgbG9hZGluZy4KIGNvbnRlbnREaXNw
b3NpdGlvbkF0dGFjaG1lbnRTYW5kYm94RW5hYmxlZCBpbml0aWFsPWZhbHNlCisKK3Jlc291cmNl
Q2FjaGluZ0Rpc2FibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDY2OWQ1NGU1OGUyMjZh
YzIzYWNlYWFiOTI1YWY4NDY4MDMxYWNjNDkuLjIzNDc3YTMwYTQ2N2I5MjJiZjQwOWRlYjY2N2Q0
NTc3MDBjMTkyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTYxLDYgKzE2MSw3IEBACiAjZGVmaW5lIFdlYktp
dE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnlLZXkgQCJXZWJLaXRNZWRpYUtleXNTdG9yYWdlRGly
ZWN0b3J5IgogI2RlZmluZSBXZWJLaXRTaGFkb3dET01FbmFibGVkUHJlZmVyZW5jZUtleSBAIldl
YktpdFNoYWRvd0RPTUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEN1c3RvbUVsZW1lbnRzRW5hYmxl
ZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDdXN0b21FbGVtZW50c0VuYWJsZWQiCisjZGVmaW5lIFdl
YktpdFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFJlc291cmNl
Q2FjaGluZ0Rpc2FibGVkIgogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIC8vIFRoZXNlIGFyZSBw
cml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBiZSB1c2luZyB0aGUgY292ZXIgbWV0
aG9kcyBhbmQgYmVjYXVzZSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tCmluZGV4IDM0OWFiMmMzNmQ5ZTYyMzMzMzc0NzA1MTZlODY1OWE2NzExZjhmZmEu
LjFiYzc0OTZjYTI1N2EwNjE2ODZhZWU3N2ViOTlkMTNkODQzMTFjMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNzA0LDcgKzcwNCw4IEBAIC0g
KHVuc2lnbmVkIGludClfdW5zaWduZWRJbnRWYWx1ZUZvcktleTooTlNTdHJpbmcgKilrZXkKIH0K
IAogLSAodm9pZClfc2V0VW5zaWduZWRJbnRWYWx1ZToodW5zaWduZWQgaW50KXZhbHVlIGZvcktl
eTooTlNTdHJpbmcgKilrZXkKLXsgICAgaWYgKFtzZWxmIF91bnNpZ25lZEludFZhbHVlRm9yS2V5
OmtleV0gPT0gdmFsdWUpCit7CisgICAgaWYgKFtzZWxmIF91bnNpZ25lZEludFZhbHVlRm9yS2V5
OmtleV0gPT0gdmFsdWUpCiAgICAgICAgIHJldHVybjsKICAgICBOU1N0cmluZyAqX2tleSA9IEtF
WShrZXkpOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTI2OTksNiArMjcwMCwxNiBAQCAtICh2b2lk
KXNldEN1c3RvbUVsZW1lbnRzRW5hYmxlZDooQk9PTClmbGFnCiAgICAgW3NlbGYgX3NldEJvb2xW
YWx1ZTpmbGFnIGZvcktleTpXZWJLaXRDdXN0b21FbGVtZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5
XTsKIH0KIAorLSAoQk9PTClpc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkCit7CisgICAgcmV0dXJu
IFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRQcmVm
ZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZDooQk9P
TClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRSZXNv
dXJjZUNhY2hpbmdEaXNhYmxlZFByZWZlcmVuY2VLZXldOworfQorCiBAZW5kCiAKIEBpbXBsZW1l
bnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViSW50ZXJuYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBlMjg1N2I0MzI0ODcz
YWEyODIxMzljMWE5M2U2MmQyZTg0ZmE5MTlkLi44NmVmNzFlYWFlMWVhMDU5MzkwZDdhYmNkZWE4
ODRjMDFhNjRiOTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgKQEAgLTQ4NCw1ICs0ODQsNiBAQCBleHRlcm4gTlNTdHJpbmcgKldl
YlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRNYXJrdXBFbmFibGVkOwogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5OwogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgYXR0YWNobWVudEVsZW1lbnRFbmFibGVkOworQHByb3BlcnR5IChu
b25hdG9taWMsIGdldHRlcj1pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkKSBCT09MIHJlc291cmNl
Q2FjaGluZ0Rpc2FibGVkOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
aW5kZXggYTE0NzJmNTdjYTgxYzQ0YWVlNTVlOWYxYTU3YmI3OTI5YWZjM2I2My4uNzgxZGIyYmZh
OTk4MDZjOWJhNWZjNjdmZmEyNzg5ZmVkZDRiOTAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQpAQCAtMjUxNiw2ICsyNTE2LDggQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFu
Z2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKICAgICBzZXR0aW5ncy5zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQoW3ByZWZl
cmVuY2VzIGF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZF0pOwogI2VuZGlmCisKKyAgICBzZXR0aW5n
cy5zZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChwcmVmZXJlbmNlcy5yZXNvdXJjZUNhY2hpbmdE
aXNhYmxlZCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
CmluZGV4IDZlMDAzNDVlMGYyZTk5ZGFmNjY2NDhhM2Q5OTQwNmU3NTZjOWY3ZTUuLjg4NDY2MTcz
MWE3MTA0NTJmODJmOTE2M2RhMTIwMGJiNDI4OTYwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMjI3LDYgKzIyNyw3IEBA
CiAgICAgbWFjcm8oTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCwgbW9ja0NhcHR1cmVEZXZpY2Vz
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhTaGFkb3dET01FbmFibGVk
LCBzaGFkb3dET01FbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oQ3VzdG9t
RWxlbWVudHNFbmFibGVkLCBjdXN0b21FbGVtZW50c0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCisgICAgbWFjcm8oUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQsIHJlc291cmNlQ2FjaGluZ0Rp
c2FibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIEZPUl9FQUNIX0FERElUSU9OQUxfV0VC
S0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAogICAgIFwKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDg3YzI4MDlhMzQ5NDY3
NGUxNmFhNTkyYjYxOGIyZmRiYWFlZDI3MTQuLjQ1Y2ZlMmY0MWQ2NTI0NGQ4NTJkNzk3YTliMmM3
OWZkZWIxNTliMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5jcHAKQEAgLTE1MDYsMyArMTUwNiwxMyBAQCBib29sIFdLUHJlZmVyZW5jZXNH
ZXRDdXN0b21FbGVtZW50c0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikK
IHsKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2hhZG93RE9NRW5hYmxlZCgp
OwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+c2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoZmxhZyk7Cit9CisKK2Jv
b2wgV0tQcmVmZXJlbmNlc0dldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IGMyZmI0
MGEwYjY2YTU1ZWRhZWU4OTg0MTU2NjdkODliOWQ2M2VlZWEuLmY3NjhmMzk1ZDZlZTNkMWU1ZjI2
YjI3MDBmZGYyYTljZGY3YTViYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC00MTksNiArNDE5LDEw
IEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRTaGFkb3dET01FbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEN1c3RvbUVsZW1l
bnRzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wg
V0tQcmVmZXJlbmNlc0dldEN1c3RvbUVsZW1lbnRzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsK
IAorLy8gRGVmYXVsdHMgdG8gZmFsc2UKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOworV0tf
RVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKFdLUHJl
ZmVyZW5jZXNSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDdmZDM5OGQ2OWUw
NDY1MGE1ZTE4MDk5ZmEwMjhhZWMwMzFmMDBmNzQuLjVhYWU3MTM0YjAxMTI5ODZhMDAxZDhiZjE1
MzIxN2E3ODlmNmI2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTMwNDUsNiArMzA0NSw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAKICAgICBzZXR0aW5n
cy5zZXRTaG91bGREaXNwYXRjaEphdmFTY3JpcHRXaW5kb3dPbkVycm9yRXZlbnRzKHRydWUpOwog
CisgICAgc2V0dGluZ3Muc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpyZXNvdXJjZUNhY2hpbmdEaXNhYmxlZEtleSgp
KSk7CisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2luY2x1ZGUgPFdlYktpdEFkZGl0
aW9ucy9XZWJQYWdlUHJlZmVyZW5jZXMuY3BwPgogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274501</attachid>
            <date>2016-03-18 21:43:50 -0700</date>
            <delta_ts>2016-03-18 22:02:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64483-20160318214350.patch</filename>
            <type>text/plain</type>
            <size>21553</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTE1YTFiMjJmMGEyMThk
YWJiNGUzNTdkYTMzNWI5ZTQ0MDg4ZWQ0Yi4uYTFhM2Y3ZjljYTFjZDEzNjk2NzY0ZTE0Mzc5NGFm
NjRhZmYyMjlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTAzLTE4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIENhY2hlcyBpbiBT
YWZhcmkncyBEZXZlbG9wIG1lbnUgZG9lcyBub3QgZGlzYWJsZSBjYWNoZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIGZlYXR1cmUgZnJvbSBT
ZXR0aW5ncyB0byBQYWdlLgorCisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y2FuQ2FjaGVQYWdlKTogVXNlIGZ1bmN0aW9uIG9uIFBhZ2UgaW5zdGVh
ZCBvZiBTZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDYWNoZTo6dGFrZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjpnZXQpOiBEaXR0by4KKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1
YnJlc291cmNlQ2FjaGVQb2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjphZGRFeHRyYUZpZWxkc1RvUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Y2FjaGVQb2xpY3kpOiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJs
ZWQpOiBBZGRlZC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IFJlbW92ZWQgcmVzb3Vy
Y2VDYWNoaW5nRGlzYWJsZWQuCisKIDIwMTYtMDMtMTggIFpodW8gTGkgIDx6YWNobGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSBBdXRvRmlsbCBidXR0b24gaW4gaW5wdXQgZmllbGRzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDE1ZmE2YWYwYjI2ZTQ4NzM1ZDlhMTMyMmM1YjQ0M2I4N2YzZTNl
MWQuLjhlMTU1YjI4MTUyMzRjYjEyNGYwMDBlYTBmN2ZjOTZjYTM3NjdjZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTMsNiArMywyOCBAQAogICAgICAgICBEaXNhYmxlIENhY2hlcyBpbiBTYWZhcmkn
cyBEZXZlbG9wIG1lbnUgZG9lcyBub3QgZGlzYWJsZSBjYWNoZXMuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ4MwogCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHByb3BlcnR5IGZyb20gV2ViUHJl
ZmVyZW5jZXMgdG8gV2ViVmlldy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmg6IFJlbW92ZWQKKyAgICAgICAgV2ViS2l0UmVzb3VyY2VDYWNoaW5nRGlzYWJs
ZWRQcmVmZXJlbmNlS2V5LgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06Cisg
ICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJs
ZWQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aDogUmVtb3ZlZCByZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCBwcm9wZXJ0eS4KKworICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfaXNSZXNvdXJjZUNhY2hp
bmdEaXNhYmxlZF0pOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVmlldyBfc2V0UmVzb3VyY2VDYWNo
aW5nRGlzYWJsZWQ6XSk6IEFkZGVkLgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0No
YW5nZWQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOiBB
ZGRlZCBfcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgcHJvcGVydHkuCisKKzIwMTYtMDMtMTggIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIERpc2FibGUgQ2FjaGVzIGlu
IFNhZmFyaSdzIERldmVsb3AgbWVudSBkb2VzIG5vdCBkaXNhYmxlIGNhY2hlcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NDgzCisKICAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCiAKICAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oOiBBZGRlZCBSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCA1M2ZlODFhMTE3MWNiNTdkNDU2MjBhN2IzMjllYzI4NGU1NjNiMmU4Li5kNDNhNTc5
MDk3M2MwZDJhZTYzZjA3ZTdlMTk5MzUwZDRiNjdjOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMTYtMDMtMTggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIERpc2FibGUgQ2FjaGVzIGluIFNhZmFyaSdzIERldmVsb3AgbWVudSBkb2VzIG5vdCBkaXNh
YmxlIGNhY2hlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY0NDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZWQgZnVuY3Rpb25zIGZyb20gV0tQcmVmZXJlbmNlcyB0byBXS1BhZ2UuCisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOiBSZW1vdmVkIFJlc291cmNl
Q2FjaGluZ0Rpc2FibGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6
CisgICAgICAgIChXS1BhZ2VHZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6IEFkZGVkLgorICAg
ICAgICAoV0tQYWdlU2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQpOiBBZGRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oOiBBZGRlZCBhYm92ZSBmdW5jdGlvbnMu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V0tQcmVmZXJlbmNlc1NldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNHZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6IERlbGV0
ZWQgYWJvdmUgZnVuY3Rpb25zLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UmVzb3VyY2VDYWNoaW5nRGlz
YWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6IEFk
ZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6IFJlbW92ZWQgY29kZSB0byBz
ZXQgdGhlIHNldHRpbmcKKyAgICAgICAgZm9yIHJlc291cmNlQ2FjaGluZ0Rpc2FibGVkLi4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQpOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOiBEZWNsYXJlZCBzZXRS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjogQWRkZWQgU2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQuCisKIDIw
MTYtMDMtMTggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBHaXZlIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYWJvdXQg
cGFyZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCAxN2Y1
YTI3OWJhMzQ3YmQ1ZTkyNjM1ZjRjZmI2ZDA0NmI3NGI5N2M1Li5iOWQ4YjhhZjk4NjllMjZiYTZl
ZGRjYWZiZWE1YWFiZTA3MzcwMGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3Bw
CkBAIC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIGJvb2wgY2FuQ2FjaGVQYWdlKFBhZ2UmIHBhZ2Up
CiAgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0g
bWFpbkZyYW1lLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CiAgICAgYm9vbCBpc0NhY2hlYWJs
ZSA9IGNhbkNhY2hlRnJhbWUobWFpbkZyYW1lLCBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgaW5k
ZW50TGV2ZWwgKyAxKTsKICAgICAKLSAgICBpZiAoIXBhZ2Uuc2V0dGluZ3MoKS51c2VzUGFnZUNh
Y2hlKCkgfHwgcGFnZS5zZXR0aW5ncygpLnJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKCkpIHsKKyAg
ICBpZiAoIXBhZ2Uuc2V0dGluZ3MoKS51c2VzUGFnZUNhY2hlKCkgfHwgcGFnZS5pc1Jlc291cmNl
Q2FjaGluZ0Rpc2FibGVkKCkpIHsKICAgICAgICAgUENMT0coIiAgIC1QYWdlIHNldHRpbmdzIHNh
eXMgYi9mIGNhY2hlIGRpc2FibGVkIik7CiAgICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFn
bm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjppc0Rpc2FibGVkS2V5KCkpOwogICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwpAQCAt
NDIzLDcgKzQyMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiBQYWdlQ2FjaGU6OnRh
a2UoSGlzdG9yeUl0ZW0mIGl0ZW0sIFBhZ2UqIHBhZ2UpCiAgICAgbV9pdGVtcy5yZW1vdmUoJml0
ZW0pOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiBjYWNoZWRQYWdlID0gV1RGTW92
ZShpdGVtLm1fY2FjaGVkUGFnZSk7CiAKLSAgICBpZiAoY2FjaGVkUGFnZS0+aGFzRXhwaXJlZCgp
IHx8IChwYWdlICYmIHBhZ2UtPnNldHRpbmdzKCkucmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkp
IHsKKyAgICBpZiAoY2FjaGVkUGFnZS0+aGFzRXhwaXJlZCgpIHx8IChwYWdlICYmIHBhZ2UtPmlz
UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkpIHsKICAgICAgICAgTE9HKFBhZ2VDYWNoZSwgIk5v
dCByZXN0b3JpbmcgcGFnZSBmb3IgJXMgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUgYmVjYXVzZSBj
YWNoZSBlbnRyeSBoYXMgZXhwaXJlZCIsIGl0ZW0udXJsKCkuc3RyaW5nKCkuYXNjaWkoKS5kYXRh
KCkpOwogICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleHBpcmVkS2V5KCkpOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTQ0MSw3ICs0NDEsNyBAQCBDYWNoZWRQYWdlKiBQYWdlQ2FjaGU6OmdldChIaXN0
b3J5SXRlbSYgaXRlbSwgUGFnZSogcGFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCi0gICAgaWYgKGNhY2hlZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5z
ZXR0aW5ncygpLnJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKCkpKSB7CisgICAgaWYgKGNhY2hlZFBh
Z2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5pc1Jlc291cmNlQ2FjaGluZ0Rpc2Fi
bGVkKCkpKSB7CiAgICAgICAgIExPRyhQYWdlQ2FjaGUsICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9y
ICVzIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIGJlY2F1c2UgY2FjaGUgZW50cnkgaGFzIGV4cGly
ZWQiLCBpdGVtLnVybCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKICAgICAgICAgbG9nUGFn
ZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6ZXhwaXJlZEtleSgpKTsKICAgICAgICAgcmVtb3ZlKGl0ZW0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMzgwYmYzZjI0MzFhMTA5YzNiNWRlZDZjZWMxOTE4NjJm
M2M3NjVmMC4uZmI2MDRlYjk5MzY3MGFlMGM4NjgwMzMxYzhhMzFlODQxMDk2MzEyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMTU1LDggKzIxNTUsMTAgQEAgRnJh
bWVMb2FkVHlwZSBGcmFtZUxvYWRlcjo6bG9hZFR5cGUoKSBjb25zdAogICAgIAogQ2FjaGVQb2xp
Y3kgRnJhbWVMb2FkZXI6OnN1YnJlc291cmNlQ2FjaGVQb2xpY3koKSBjb25zdAogewotICAgIGlm
IChtX2ZyYW1lLnNldHRpbmdzKCkucmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkKLSAgICAgICAg
cmV0dXJuIENhY2hlUG9saWN5UmVsb2FkOworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS5w
YWdlKCkpIHsKKyAgICAgICAgaWYgKHBhZ2UtPmlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkK
KyAgICAgICAgICAgIHJldHVybiBDYWNoZVBvbGljeVJlbG9hZDsKKyAgICB9CiAKICAgICBpZiAo
bV9pc0NvbXBsZXRlKQogICAgICAgICByZXR1cm4gQ2FjaGVQb2xpY3lWZXJpZnk7CkBAIC0yNTY0
LDcgKzI1NjYsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1RvTWFpblJlc291
cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAKIHZvaWQgRnJhbWVMb2FkZXI6
OmFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRnJhbWVM
b2FkVHlwZSBsb2FkVHlwZSwgYm9vbCBtYWluUmVzb3VyY2UpCiB7Ci0gICAgYm9vbCBjYWNoaW5n
RGlzYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKTsK
KyAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CisgICAgYm9vbCBjYWNoaW5nRGlzYWJs
ZWQgPSBwYWdlICYmIHBhZ2UtPmlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKTsKIAogICAgIGlm
IChjYWNoaW5nRGlzYWJsZWQpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2FjaGVQb2xpY3koUmVsb2Fk
SWdub3JpbmdDYWNoZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZThjMTE3YTlkNmNkYTEyYWEwNzc1NjFl
MWVjNmU2NjhjMDk2Y2U0MC4uNjFlNTBjMmVmMTNiZjZlMDkwMzg3YjMzYjM5YmE4MTNlNzZkMDZk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC05MzAsMTIgKzkzMCwxNCBAQCBDYWNoZVBvbGljeSBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Y2FjaGVQb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkgY29uc3QK
ICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gQ2FjaGVQb2xpY3lWZXJpZnk7CiAKLSAg
ICBpZiAoZnJhbWUtPnNldHRpbmdzKCkucmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkKLSAgICAg
ICAgcmV0dXJuIENhY2hlUG9saWN5UmVsb2FkOwotCiAgICAgaWYgKHR5cGUgIT0gQ2FjaGVkUmVz
b3VyY2U6Ok1haW5SZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS5zdWJy
ZXNvdXJjZUNhY2hlUG9saWN5KCk7Ci0gICAgCisKKyAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1l
LT5wYWdlKCkpIHsKKyAgICAgICAgaWYgKHBhZ2UtPmlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQo
KSkKKyAgICAgICAgICAgIHJldHVybiBDYWNoZVBvbGljeVJlbG9hZDsKKyAgICB9CisKICAgICBz
d2l0Y2ggKGZyYW1lLT5sb2FkZXIoKS5sb2FkVHlwZSgpKSB7CiAgICAgY2FzZSBGcmFtZUxvYWRU
eXBlOjpSZWxvYWRGcm9tT3JpZ2luOgogICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAppbmRleCA2YmQ0NDllMzUzZTg4ZjAyMTA0NmE4ZWMxZjE0MmYzMWQ2MmM5ZWY0
Li4zMTdhZDYzZmNmNzI2MDU2ZGFmZjQzYzM0ZGUxOGJlZGVhN2NkOWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtNTE0LDYgKzUxNCw5IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgY2FwdGlvblVzZXJQcmVm
ZXJlbmNlc1N0eWxlU2hlZXQoKTsKICAgICB2b2lkIHNldENhcHRpb25Vc2VyUHJlZmVyZW5jZXNT
dHlsZVNoZWV0KGNvbnN0IFN0cmluZyYpOwogCisgICAgYm9vbCBpc1Jlc291cmNlQ2FjaGluZ0Rp
c2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZDsgfQorICAg
IHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkgeyBtX3Jlc291
cmNlQ2FjaGluZ0Rpc2FibGVkID0gZGlzYWJsZWQ7IH0KKwogcHJpdmF0ZToKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGluaXRHcm91cCgpOwogCkBAIC02OTQsOCArNjk3LDggQEAgcHJpdmF0ZToK
ICAgICAKICAgICBib29sIG1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrIHsgZmFs
c2UgfTsKICAgICBib29sIG1fc2hvd0FsbFBsdWdpbnMgeyBmYWxzZSB9OwotCiAgICAgYm9vbCBt
X2NvbnRyb2xsZWRCeUF1dG9tYXRpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9yZXNvdXJjZUNh
Y2hpbmdEaXNhYmxlZCB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpn
cm91cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBhZmRhM2U5OTllOTMzMzU5ZjczNDhj
ZjBjMzM5YTE5OWNlM2NjZWJlLi4wNGYxMzg3ZDRjMWExMDEzMjI4NjIzODdkN2VlNTdjNDU3YmE0
ZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTI1MSw1ICsyNTEsMyBAQCBodHRwRXF1
aXZFbmFibGVkIGluaXRpYWw9dHJ1ZQogIyBlbmZvcmNlcyBhbGwgZnJhbWUgc2FuZGJveCBmbGFn
cyAoc2VlIGVudW0gU2FuZGJveEZsYWcgaW4gU2VjdXJpdHlDb250ZXh0LmgpLCBhbmQgYWxzbyBk
aXNhYmxlcyA8bWV0YSBodHRwLWVxdWl2PgogIyBwcm9jZXNzaW5nIGFuZCBzdWJmcmFtZSBsb2Fk
aW5nLgogY29udGVudERpc3Bvc2l0aW9uQXR0YWNobWVudFNhbmRib3hFbmFibGVkIGluaXRpYWw9
ZmFsc2UKLQotcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5k
ZXggMjM0NzdhMzBhNDY3YjkyMmJmNDA5ZGViNjY3ZDQ1NzcwMGMxOTJkMy4uNjY5ZDU0ZTU4ZTIy
NmFjMjNhY2VhYWI5MjVhZjg0NjgwMzFhY2M0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xNjEsNyArMTYxLDYg
QEAKICNkZWZpbmUgV2ViS2l0TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeUtleSBAIldlYktpdE1l
ZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkiCiAjZGVmaW5lIFdlYktpdFNoYWRvd0RPTUVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0U2hhZG93RE9NRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q3Vz
dG9tRWxlbWVudHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEN1c3RvbUVsZW1lbnRzRW5h
YmxlZCIKLSNkZWZpbmUgV2ViS2l0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQiCiAKICNpZiAhVEFSR0VUX09TX0lQSE9O
RQogLy8gVGhlc2UgYXJlIHByaXZhdGUgYm90aCBiZWNhdXNlIGNhbGxlcnMgc2hvdWxkIGJlIHVz
aW5nIHRoZSBjb3ZlciBtZXRob2RzIGFuZCBiZWNhdXNlIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggMWJjNzQ5NmNhMjU3YTA2MTY4NmFlZTc3
ZWI5OWQxM2Q4NDMxMWMyYS4uMDUxMDQxZjRiNjYxNzBlMTQwMjVkZWM2MDI0ZmZlZTVhMzQ4ODNi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0y
NzAwLDE2ICsyNzAwLDYgQEAgLSAodm9pZClzZXRDdXN0b21FbGVtZW50c0VuYWJsZWQ6KEJPT0wp
ZmxhZwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q3VzdG9tRWxl
bWVudHNFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKLS0gKEJPT0wpaXNSZXNvdXJjZUNhY2hp
bmdEaXNhYmxlZAotewotICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFJl
c291cmNlQ2FjaGluZ0Rpc2FibGVkUHJlZmVyZW5jZUtleV07Ci19Ci0KLS0gKHZvaWQpc2V0UmVz
b3VyY2VDYWNoaW5nRGlzYWJsZWQ6KEJPT0wpZmxhZwotewotICAgIFtzZWxmIF9zZXRCb29sVmFs
dWU6ZmxhZyBmb3JLZXk6V2ViS2l0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRQcmVmZXJlbmNlS2V5
XTsKLX0KLQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViUHJlZmVyZW5jZXMgKFdlYkludGVy
bmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmgKaW5kZXggODZlZjcxZWFhZTFlYTA1OTM5MGQ3YWJjZGVhODg0YzAxYTY0Yjk4MC4uZTI4
NTdiNDMyNDg3M2FhMjgyMTM5YzFhOTNlNjJkMmU4NGZhOTE5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC00ODQsNiArNDg0
LDUgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50
ZXJuYWxOb3RpZmljYXRpb247CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhU2NyaXB0
TWFya3VwRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlhRGF0YUxvYWRz
QXV0b21hdGljYWxseTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGF0dGFjaG1lbnRFbGVt
ZW50RW5hYmxlZDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNSZXNvdXJjZUNhY2hp
bmdEaXNhYmxlZCkgQk9PTCByZXNvdXJjZUNhY2hpbmdEaXNhYmxlZDsKIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDc4MWRiMmJmYTk5ODA2YzliYTVmYzY3ZmZh
Mjc4OWZlZGQ0YjkwMTUuLjhmNzY4N2E0YTZhN2JkNmNjOGY5YjhiYzc3NGIzNDNiYTkxNzgyYTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI1MTYsOCArMjUxNiw2IEBA
IC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNl
cwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgc2V0dGluZ3Muc2V0QXR0YWNo
bWVudEVsZW1lbnRFbmFibGVkKFtwcmVmZXJlbmNlcyBhdHRhY2htZW50RWxlbWVudEVuYWJsZWRd
KTsKICNlbmRpZgotCi0gICAgc2V0dGluZ3Muc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQocHJl
ZmVyZW5jZXMucmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQpOwogfQogCiBzdGF0aWMgaW5saW5lIElN
UCBnZXRNZXRob2QoaWQgbywgU0VMIHMpCkBAIC00NjMyLDYgKzQ2MzAsMTcgQEAgLSAodm9pZClf
c2V0Rm9udEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhzOihCT09MKWZsYWcKICAgICAgICAgX3By
aXZhdGUtPnBhZ2UtPnNldHRpbmdzKCkuc2V0Rm9udEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhz
KGZsYWcpOwogfQogCistIChCT09MKV9pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkCit7CisgICAg
cmV0dXJuIF9wcml2YXRlLT5wYWdlICYmIF9wcml2YXRlLT5wYWdlLT5pc1Jlc291cmNlQ2FjaGlu
Z0Rpc2FibGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkOihC
T09MKWRpc2FibGVkCit7CisgICAgaWYgKF9wcml2YXRlLT5wYWdlKQorICAgICAgICBfcHJpdmF0
ZS0+cGFnZS0+c2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoZGlzYWJsZWQpOworfQorCiBAZW5k
CiAKIEBpbXBsZW1lbnRhdGlvbiBfV2ViU2FmZUZvcndhcmRlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDRmMWE1OGMxNjdlNjA2Y2IyYWZhMTczZjZh
OTJmZjExMjBkMmJmODkuLjQ1MDRmYjlkMjNjZDUzNmVhNDVlYjE4OTVhYWFkOWNhMjEyYTMzODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKQEAgLTcwMCw2
ICs3MDAsOCBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4KIC0gKEJPT0wpdXNl
c1BhZ2VDYWNoZTsKIC0gKHZvaWQpc2V0VXNlc1BhZ2VDYWNoZTooQk9PTCl1c2VzUGFnZUNhY2hl
OwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc1Jlc291cmNlQ2FjaGluZ0Rpc2Fi
bGVkLCBzZXR0ZXI9X3NldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkOikgQk9PTCBfcmVzb3VyY2VD
YWNoaW5nRGlzYWJsZWQ7CisKIC0gKFdlYkhpc3RvcnlJdGVtICopX2dsb2JhbEhpc3RvcnlJdGVt
OwogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCmluZGV4IDg4NDY2MTczMWE3MTA0NTJmODJmOTE2M2RhMTIwMGJiNDI4OTYwMDQu
LjZlMDAzNDVlMGYyZTk5ZGFmNjY2NDhhM2Q5OTQwNmU3NTZjOWY3ZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMjI3LDcg
KzIyNyw2IEBACiAgICAgbWFjcm8oTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCwgbW9ja0NhcHR1
cmVEZXZpY2VzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhTaGFkb3dE
T01FbmFibGVkLCBzaGFkb3dET01FbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFj
cm8oQ3VzdG9tRWxlbWVudHNFbmFibGVkLCBjdXN0b21FbGVtZW50c0VuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQsIHJlc291cmNl
Q2FjaGluZ0Rpc2FibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIEZPUl9FQUNIX0FERElU
SU9OQUxfV0VCS0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAogICAgIFwKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAxOGY0N2IyNDRjMTQzMTYyMGJi
N2EwY2VlY2UxOTdkOTI3YmZlYzhlLi5hMmFhZmIzNzg1YmEzYTgzNTI0ZGEzMGVjYzU3OTEyNzBl
OTU4MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAt
MjcyNCw2ICsyNzI0LDE2IEBAIHZvaWQgV0tQYWdlQ2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVw
ZGF0ZShXS1BhZ2VSZWYgcGFnZVJlZiwgdm9pZCogY29udGV4dCwgV0tQCiAgICAgfSk7CiB9CiAK
K2Jvb2wgV0tQYWdlR2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoV0tQYWdlUmVmIHBhZ2UpCit7
CisgICAgcmV0dXJuIHRvSW1wbChwYWdlKS0+aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpOwor
fQorCit2b2lkIFdLUGFnZVNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKFdLUGFnZVJlZiBwYWdl
LCBib29sIGRpc2FibGVkKQoreworICAgIHRvSW1wbChwYWdlKS0+c2V0UmVzb3VyY2VDYWNoaW5n
RGlzYWJsZWQoZGlzYWJsZWQpOworfQorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
CiAKIC8vIC0tIERFUFJFQ0FURUQgLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDU4ODZiYTI2MjQyZjUxZDhjZWFkNjE5MjhhYmQ3YjNh
MWFiYmYzYzIuLjQ4M2IxMDhiYjBkZjVkNzQ5NjNlYmU3ZmNlYTFmZTM3NTQyZWVmZjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaApAQCAtMTQy
LDYgKzE0Miw5IEBAIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUxvYWRVUkxXaXRoU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeShXS1BhZ2VSZWYgcGFnZSwgV0tVCiB0eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VQb3N0UHJlc2VudGF0aW9uVXBkYXRlRnVuY3Rpb24pKFdLRXJyb3JSZWYsIHZvaWQqKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUGFnZUNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoV0tQYWdl
UmVmIHBhZ2UsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVBvc3RQcmVzZW50YXRpb25VcGRhdGVGdW5j
dGlvbiBmdW5jdGlvbik7CiAKK1dLX0VYUE9SVCBib29sIFdLUGFnZUdldFJlc291cmNlQ2FjaGlu
Z0Rpc2FibGVkKFdLUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFJlc291
cmNlQ2FjaGluZ0Rpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBib29sIGRpc2FibGVkKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA0NWNmZTJmNDFkNjUyNDRkODUyZDc5N2E5
YjJjNzlmZGViMTU5YjJhLi44N2MyODA5YTM0OTQ2NzRlMTZhYTU5MmI2MThiMmZkYmFhZWQyNzE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwCkBAIC0xNTA2LDEzICsxNTA2LDMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q3VzdG9tRWxl
bWVudHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiB7CiAgICAgcmV0
dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNoYWRvd0RPTUVuYWJsZWQoKTsKIH0KLQotdm9p
ZCBXS1ByZWZlcmVuY2VzU2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQotewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPnNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKGZsYWcpOwotfQotCi1ib29sIFdLUHJlZmVy
ZW5jZXNHZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmKQotewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5yZXNvdXJjZUNh
Y2hpbmdEaXNhYmxlZCgpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCBmNzY4ZjM5NWQ2ZWUzZDFl
NWYyNmIyNzAwZmRmMmE5Y2RmN2E1YmExLi5jMmZiNDBhMGI2NmE1NWVkYWVlODk4NDE1NjY3ZDg5
YjlkNjNlZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDE5LDEwICs0MTksNiBAQCBXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2hhZG93RE9NRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
KTsKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRDdXN0b21FbGVtZW50c0VuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5j
ZXNHZXRDdXN0b21FbGVtZW50c0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiAKLS8vIERlZmF1
bHRzIHRvIGZhbHNlCi1XS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0UmVzb3VyY2VDYWNo
aW5nRGlzYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKLVdLX0VYUE9SVCBib29s
IFdLUHJlZmVyZW5jZXNHZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChXS1ByZWZlcmVuY2VzUmVm
KTsKLQogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjNjOTI0ZTRkMDgyNmMxZTVlZTZjN2Y2ZDZkZmFm
MWZhMTA2YTkwZS4uOWJhYzc1NGViMTdjNjQ0YmE0ZjcxZGFmNzllMDc0ZmY4OTRkYjcxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYyMjIsNCArNjIy
MiwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKICAg
ICBtX3BhZ2VDbGllbnQuZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChib29sIGRpc2FibGVkKQorewor
ICAgIGlmIChtX2lzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgPT0gZGlzYWJsZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIG1faXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCA9IGRpc2FibGVkOwor
CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoZGlzYWJs
ZWQpLCBtX3BhZ2VJRCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDdlOGQxMGJhNzI3M2M3MGRkNjc3NTMzYjY4
ZDI5MThkMzRhZjU2NDguLmY3NGM2YzAxYWEzNTJmOGMyYjM3ZDQ3YTU4YThlMWE5NDhmYTY4YzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwOTgsNiArMTA5
OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2VkKTsKIAorICAg
IGJvb2wgaXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXNv
dXJjZUNhY2hpbmdEaXNhYmxlZDsgfQorICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJs
ZWQoYm9vbCk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQ
cm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMTc5NCw2ICsxNzk3LDgg
QEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBtX21lZGlhU3RhdGUgeyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsK
IAorICAgIGJvb2wgbV9pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkIHsgZmFsc2UgfTsKKwogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIGJvb2wgbV9oYXNNZWRpYVNlc3Npb25XaXRoQWN0
aXZlTWVkaWFFbGVtZW50cyB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1YWFlNzEzNGIwMTEyOTg2YTAwMWQ4
YmYxNTMyMTdhNzg5ZjZiNmVmLi4zZGE0OTI4NDJkNjE5NjdiNGY3NDJiZGE1NzgyOTQyZmRmYWVj
YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0zMDQ1LDggKzMwNDUsNiBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNv
bnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogCiAgICAgc2V0dGluZ3Muc2V0U2hvdWxk
RGlzcGF0Y2hKYXZhU2NyaXB0V2luZG93T25FcnJvckV2ZW50cyh0cnVlKTsKIAotICAgIHNldHRp
bmdzLnNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6cmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRLZXkoKSkpOwotCiAjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFn
ZVByZWZlcmVuY2VzLmNwcD4KICNlbmRpZgpAQCAtNTI2Myw0ICs1MjYxLDkgQEAgdm9pZCBXZWJQ
YWdlOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkpOwogfQogCit2b2lkIFdlYlBhZ2U6
OnNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKGJvb2wgZGlzYWJsZWQpCit7CisgICAgbV9wYWdl
LT5zZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChkaXNhYmxlZCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggZmI5MjdlNjFmYTVjODFhZmViMTkzNzA5OWE3ODA3YjkyYWMyYjVmNi4uMzBhOThmNGM3
YmU4NzgzYzM0NjI1ODJmOGJkZTczYTZiNjIxNGUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMTk0LDYgKzExOTQsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkRW5kUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKHVpbnQzMl90
IHJlc3VsdCk7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQo
Ym9vbCk7CisKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpQYWdlPiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDk0MTllYzI1ZTk5YWQ3NmExOWRm
MmM0M2IxZDRlNGQ2Yzk5NmFmOGMuLmQzMmQwMWI4MzkyYWRjZDk1M2U3ZWUzM2MyZWYwZDgyNzM1
ZWU3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MjcsNCArNDI3LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSBMZWdhY3lSZWNlaXZlciB7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQog
ICAgIERpZEVuZFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyh1aW50MzJfdCByZXN1
bHQpCiAjZW5kaWYKKworICAgIFNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKGJvb2wgZGlzYWJs
ZWQpCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274502</attachid>
            <date>2016-03-18 22:02:05 -0700</date>
            <delta_ts>2016-03-20 13:09:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64483-20160318220204.patch</filename>
            <type>text/plain</type>
            <size>20362</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTE1YTFiMjJmMGEyMThk
YWJiNGUzNTdkYTMzNWI5ZTQ0MDg4ZWQ0Yi4uYTFhM2Y3ZjljYTFjZDEzNjk2NzY0ZTE0Mzc5NGFm
NjRhZmYyMjlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTAzLTE4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhYmxlIENhY2hlcyBpbiBT
YWZhcmkncyBEZXZlbG9wIG1lbnUgZG9lcyBub3QgZGlzYWJsZSBjYWNoZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ4MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIGZlYXR1cmUgZnJvbSBT
ZXR0aW5ncyB0byBQYWdlLgorCisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y2FuQ2FjaGVQYWdlKTogVXNlIGZ1bmN0aW9uIG9uIFBhZ2UgaW5zdGVh
ZCBvZiBTZXR0aW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDYWNoZTo6dGFrZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjpnZXQpOiBEaXR0by4KKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1
YnJlc291cmNlQ2FjaGVQb2xpY3kpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjphZGRFeHRyYUZpZWxkc1RvUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6Y2FjaGVQb2xpY3kpOiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJs
ZWQpOiBBZGRlZC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IFJlbW92ZWQgcmVzb3Vy
Y2VDYWNoaW5nRGlzYWJsZWQuCisKIDIwMTYtMDMtMTggIFpodW8gTGkgIDx6YWNobGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSBBdXRvRmlsbCBidXR0b24gaW4gaW5wdXQgZmllbGRzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDE1ZmE2YWYwYjI2ZTQ4NzM1ZDlhMTMyMmM1YjQ0M2I4N2YzZTNl
MWQuLmM1YjZhMjA1Mzk1ODdlYTZjOWUzY2FhZjRmN2RhNDAzOTU2NGNmYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTMsNiArMywyNCBAQAogICAgICAgICBEaXNhYmxlIENhY2hlcyBpbiBTYWZhcmkn
cyBEZXZlbG9wIG1lbnUgZG9lcyBub3QgZGlzYWJsZSBjYWNoZXMuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDQ4MwogCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgdW5uZWVkZWQgV2ViUHJlZmVy
ZW5jZXMgcHJvcGVydHk7IHdlIGRvbid0IG5lZWQgdGhpcyBmb3IgTGVnYWN5IFdlYktpdC4KKwor
ICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IFJlbW92ZWQKKyAg
ICAgICAgV2ViS2l0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRQcmVmZXJlbmNlS2V5LgorICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IGlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgc2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQ6XSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDogUmVtb3ZlZCByZXNvdXJjZUNhY2hp
bmdEaXNhYmxlZCBwcm9wZXJ0eS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKTogUmVtb3ZlZCBjb2RlIHRvIHVw
ZGF0ZSByZXNvdXJjZUNhY2hpbmdEaXNhYmxlZC4KKworMjAxNi0wMy0xOCAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgRGlzYWJsZSBDYWNoZXMgaW4gU2FmYXJpJ3Mg
RGV2ZWxvcCBtZW51IGRvZXMgbm90IGRpc2FibGUgY2FjaGVzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0ODMKKwogICAgICAgICBSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KIAogICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmg6IEFkZGVkIFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDUz
ZmU4MWExMTcxY2I1N2Q0NTYyMGE3YjMyOWVjMjg0ZTU2M2IyZTguLmQ0M2E1NzkwOTczYzBkMmFl
NjNmMDdlN2UxOTkzNTBkNGI2N2M5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
Ni0wMy0xOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgRGlzYWJs
ZSBDYWNoZXMgaW4gU2FmYXJpJ3MgRGV2ZWxvcCBtZW51IGRvZXMgbm90IGRpc2FibGUgY2FjaGVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ0ODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBm
dW5jdGlvbnMgZnJvbSBXS1ByZWZlcmVuY2VzIHRvIFdLUGFnZS4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6IFJlbW92ZWQgUmVzb3VyY2VDYWNoaW5nRGlz
YWJsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZUdldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKTogQWRkZWQuCisgICAgICAgIChXS1Bh
Z2VTZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VQcml2YXRlLmg6IEFkZGVkIGFib3ZlIGZ1bmN0aW9ucy4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVu
Y2VzU2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV0tQcmVm
ZXJlbmNlc0dldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaDogRGVsZXRlZCBhYm92ZSBm
dW5jdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojppc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkKTogQWRkZWQuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogUmVtb3ZlZCBjb2RlIHRvIHNldCB0aGUgc2V0
dGluZworICAgICAgICBmb3IgcmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQuLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk6IEFkZGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6IERlY2xhcmVkIHNldFJlc291cmNlQ2Fj
aGluZ0Rpc2FibGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOiBBZGRlZCBTZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZC4KKwogMjAxNi0wMy0xOCAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEdp
dmUgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhYm91dCBwYXJlbnQgcHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCmluZGV4IDE3ZjVhMjc5YmEzNDdi
ZDVlOTI2MzVmNGNmYjZkMDQ2Yjc0Yjk3YzUuLmI5ZDhiOGFmOTg2OWUyNmJhNmVkZGNhZmJlYTVh
YWJlMDczNzAwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKQEAgLTE5Myw3
ICsxOTMsNyBAQCBzdGF0aWMgYm9vbCBjYW5DYWNoZVBhZ2UoUGFnZSYgcGFnZSkKICAgICBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWluRnJhbWUu
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKICAgICBib29sIGlzQ2FjaGVhYmxlID0gY2FuQ2Fj
aGVGcmFtZShtYWluRnJhbWUsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCAr
IDEpOwogICAgIAotICAgIGlmICghcGFnZS5zZXR0aW5ncygpLnVzZXNQYWdlQ2FjaGUoKSB8fCBw
YWdlLnNldHRpbmdzKCkucmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkgeworICAgIGlmICghcGFn
ZS5zZXR0aW5ncygpLnVzZXNQYWdlQ2FjaGUoKSB8fCBwYWdlLmlzUmVzb3VyY2VDYWNoaW5nRGlz
YWJsZWQoKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2Ugc2V0dGluZ3Mgc2F5cyBiL2YgY2Fj
aGUgZGlzYWJsZWQiKTsKICAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNz
YWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmlzRGlz
YWJsZWRLZXkoKSk7CiAgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CkBAIC00MjMsNyArNDIz
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+IFBhZ2VDYWNoZTo6dGFrZShIaXN0b3J5
SXRlbSYgaXRlbSwgUGFnZSogcGFnZSkKICAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBXVEZNb3ZlKGl0ZW0ubV9j
YWNoZWRQYWdlKTsKIAotICAgIGlmIChjYWNoZWRQYWdlLT5oYXNFeHBpcmVkKCkgfHwgKHBhZ2Ug
JiYgcGFnZS0+c2V0dGluZ3MoKS5yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpKSkgeworICAgIGlm
IChjYWNoZWRQYWdlLT5oYXNFeHBpcmVkKCkgfHwgKHBhZ2UgJiYgcGFnZS0+aXNSZXNvdXJjZUNh
Y2hpbmdEaXNhYmxlZCgpKSkgewogICAgICAgICBMT0coUGFnZUNhY2hlLCAiTm90IHJlc3Rvcmlu
ZyBwYWdlIGZvciAlcyBmcm9tIGJhY2svZm9yd2FyZCBjYWNoZSBiZWNhdXNlIGNhY2hlIGVudHJ5
IGhhcyBleHBpcmVkIiwgaXRlbS51cmwoKS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAg
ICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShwYWdlLCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OmV4cGlyZWRLZXkoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
NDQxLDcgKzQ0MSw3IEBAIENhY2hlZFBhZ2UqIFBhZ2VDYWNoZTo6Z2V0KEhpc3RvcnlJdGVtJiBp
dGVtLCBQYWdlKiBwYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBp
ZiAoY2FjaGVkUGFnZS0+aGFzRXhwaXJlZCgpIHx8IChwYWdlICYmIHBhZ2UtPnNldHRpbmdzKCku
cmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkpIHsKKyAgICBpZiAoY2FjaGVkUGFnZS0+aGFzRXhw
aXJlZCgpIHx8IChwYWdlICYmIHBhZ2UtPmlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkpIHsK
ICAgICAgICAgTE9HKFBhZ2VDYWNoZSwgIk5vdCByZXN0b3JpbmcgcGFnZSBmb3IgJXMgZnJvbSBi
YWNrL2ZvcndhcmQgY2FjaGUgYmVjYXVzZSBjYWNoZSBlbnRyeSBoYXMgZXhwaXJlZCIsIGl0ZW0u
dXJsKCkuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwogICAgICAgICBsb2dQYWdlQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleHBpcmVk
S2V5KCkpOwogICAgICAgICByZW1vdmUoaXRlbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCAzODBiZjNmMjQzMWExMDljM2I1ZGVkNmNlYzE5MTg2MmYzYzc2NWYwLi5m
YjYwNGViOTkzNjcwYWUwYzg2ODAzMzFjOGEzMWU4NDEwOTYzMTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIxNTUsOCArMjE1NSwxMCBAQCBGcmFtZUxvYWRUeXBl
IEZyYW1lTG9hZGVyOjpsb2FkVHlwZSgpIGNvbnN0CiAgICAgCiBDYWNoZVBvbGljeSBGcmFtZUxv
YWRlcjo6c3VicmVzb3VyY2VDYWNoZVBvbGljeSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZnJhbWUu
c2V0dGluZ3MoKS5yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpKQotICAgICAgICByZXR1cm4gQ2Fj
aGVQb2xpY3lSZWxvYWQ7CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewor
ICAgICAgICBpZiAocGFnZS0+aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIENhY2hlUG9saWN5UmVsb2FkOworICAgIH0KIAogICAgIGlmIChtX2lzQ29tcGxl
dGUpCiAgICAgICAgIHJldHVybiBDYWNoZVBvbGljeVZlcmlmeTsKQEAgLTI1NjQsNyArMjU2Niw4
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmFkZEV4dHJhRmllbGRzVG9NYWluUmVzb3VyY2VSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIAogdm9pZCBGcmFtZUxvYWRlcjo6YWRkRXh0cmFG
aWVsZHNUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGcmFtZUxvYWRUeXBlIGxv
YWRUeXBlLCBib29sIG1haW5SZXNvdXJjZSkKIHsKLSAgICBib29sIGNhY2hpbmdEaXNhYmxlZCA9
IGZyYW1lKCkuc2V0dGluZ3MoKS5yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpOworICAgIFBhZ2Uq
IHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKKyAgICBib29sIGNhY2hpbmdEaXNhYmxlZCA9IHBhZ2Ug
JiYgcGFnZS0+aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpOwogCiAgICAgaWYgKGNhY2hpbmdE
aXNhYmxlZCkKICAgICAgICAgcmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0Nh
Y2hlRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBlOGMxMTdhOWQ2Y2RhMTJhYTA3NzU2MWUxZWM2ZTY2OGMw
OTZjZTQwLi42MWU1MGMyZWYxM2JmNmUwOTAzODdiMzNiMzliYTgxM2U3NmQwNmRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTkzMCwxMiArOTMwLDE0IEBAIENhY2hlUG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVy
OjpjYWNoZVBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKSBjb25zdAogICAgIGlmICgh
ZnJhbWUpCiAgICAgICAgIHJldHVybiBDYWNoZVBvbGljeVZlcmlmeTsKIAotICAgIGlmIChmcmFt
ZS0+c2V0dGluZ3MoKS5yZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpKQotICAgICAgICByZXR1cm4g
Q2FjaGVQb2xpY3lSZWxvYWQ7Ci0KICAgICBpZiAodHlwZSAhPSBDYWNoZWRSZXNvdXJjZTo6TWFp
blJlc291cmNlKQogICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLnN1YnJlc291cmNlQ2Fj
aGVQb2xpY3koKTsKLSAgICAKKworICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkg
eworICAgICAgICBpZiAocGFnZS0+aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpKQorICAgICAg
ICAgICAgcmV0dXJuIENhY2hlUG9saWN5UmVsb2FkOworICAgIH0KKwogICAgIHN3aXRjaCAoZnJh
bWUtPmxvYWRlcigpLmxvYWRUeXBlKCkpIHsKICAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9h
ZEZyb21PcmlnaW46CiAgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CmluZGV4IDZiZDQ0OWUzNTNlODhmMDIxMDQ2YThlYzFmMTQyZjMxZDYyYzllZjQuLjMxN2FkNjNm
Y2Y3MjYwNTZkYWZmNDNjMzRkZTE4YmVkZWE3Y2Q5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC01MTQs
NiArNTE0LDkgQEAgcHVibGljOgogICAgIFN0cmluZyBjYXB0aW9uVXNlclByZWZlcmVuY2VzU3R5
bGVTaGVldCgpOwogICAgIHZvaWQgc2V0Q2FwdGlvblVzZXJQcmVmZXJlbmNlc1N0eWxlU2hlZXQo
Y29uc3QgU3RyaW5nJik7CiAKKyAgICBib29sIGlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkOyB9CisgICAgdm9pZCBzZXRS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChib29sIGRpc2FibGVkKSB7IG1fcmVzb3VyY2VDYWNoaW5n
RGlzYWJsZWQgPSBkaXNhYmxlZDsgfQorCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgaW5pdEdyb3VwKCk7CiAKQEAgLTY5NCw4ICs2OTcsOCBAQCBwcml2YXRlOgogICAgIAogICAg
IGJvb2wgbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2sgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9zaG93QWxsUGx1Z2lucyB7IGZhbHNlIH07Ci0KICAgICBib29sIG1fY29udHJvbGxl
ZEJ5QXV0b21hdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Jlc291cmNlQ2FjaGluZ0Rpc2Fi
bGVkIHsgZmFsc2UgfTsKIH07CiAKIGlubGluZSBQYWdlR3JvdXAmIFBhZ2U6Omdyb3VwKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGFmZGEzZTk5OWU5MzMzNTlmNzM0OGNmMGMzMzlhMTk5
Y2UzY2NlYmUuLjA0ZjEzODdkNGMxYTEwMTMyMjg2MjM4N2Q3ZWU1N2M0NTdiYTRkZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMjUxLDUgKzI1MSwzIEBAIGh0dHBFcXVpdkVuYWJsZWQg
aW5pdGlhbD10cnVlCiAjIGVuZm9yY2VzIGFsbCBmcmFtZSBzYW5kYm94IGZsYWdzIChzZWUgZW51
bSBTYW5kYm94RmxhZyBpbiBTZWN1cml0eUNvbnRleHQuaCksIGFuZCBhbHNvIGRpc2FibGVzIDxt
ZXRhIGh0dHAtZXF1aXY+CiAjIHByb2Nlc3NpbmcgYW5kIHN1YmZyYW1lIGxvYWRpbmcuCiBjb250
ZW50RGlzcG9zaXRpb25BdHRhY2htZW50U2FuZGJveEVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi1y
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAyMzQ3N2Ez
MGE0NjdiOTIyYmY0MDlkZWI2NjdkNDU3NzAwYzE5MmQzLi42NjlkNTRlNThlMjI2YWMyM2FjZWFh
YjkyNWFmODQ2ODAzMWFjYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE2MSw3ICsxNjEsNiBAQAogI2RlZmlu
ZSBXZWJLaXRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5S2V5IEAiV2ViS2l0TWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeSIKICNkZWZpbmUgV2ViS2l0U2hhZG93RE9NRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRTaGFkb3dET01FbmFibGVkIgogI2RlZmluZSBXZWJLaXRDdXN0b21FbGVtZW50
c0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q3VzdG9tRWxlbWVudHNFbmFibGVkIgotI2Rl
ZmluZSBXZWJLaXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCIKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvLyBUaGVz
ZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1c2UgY2FsbGVycyBzaG91bGQgYmUgdXNpbmcgdGhlIGNv
dmVyIG1ldGhvZHMgYW5kIGJlY2F1c2UgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQppbmRleCAxYmM3NDk2Y2EyNTdhMDYxNjg2YWVlNzdlYjk5ZDEzZDg0
MzExYzJhLi4wNTEwNDFmNGI2NjE3MGUxNDAyNWRlYzYwMjRmZmVlNWEzNDg4M2I3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTI3MDAsMTYgKzI3
MDAsNiBAQCAtICh2b2lkKXNldEN1c3RvbUVsZW1lbnRzRW5hYmxlZDooQk9PTClmbGFnCiAgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRDdXN0b21FbGVtZW50c0VuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAotLSAoQk9PTClpc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVk
Ci17Ci0gICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0UmVzb3VyY2VDYWNo
aW5nRGlzYWJsZWRQcmVmZXJlbmNlS2V5XTsKLX0KLQotLSAodm9pZClzZXRSZXNvdXJjZUNhY2hp
bmdEaXNhYmxlZDooQk9PTClmbGFnCi17Ci0gICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZv
cktleTpXZWJLaXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZFByZWZlcmVuY2VLZXldOwotfQotCiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViSW50ZXJuYWwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRl
eCA4NmVmNzFlYWFlMWVhMDU5MzkwZDdhYmNkZWE4ODRjMDFhNjRiOTgwLi5lMjg1N2I0MzI0ODcz
YWEyODIxMzljMWE5M2U2MmQyZTg0ZmE5MTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTQ4NCw2ICs0ODQsNSBAQCBleHRl
cm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlm
aWNhdGlvbjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRNYXJrdXBFbmFi
bGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNh
bGx5OwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0YWNobWVudEVsZW1lbnRFbmFibGVk
OwotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVk
KSBCT09MIHJlc291cmNlQ2FjaGluZ0Rpc2FibGVkOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggNzgxZGIyYmZhOTk4MDZjOWJhNWZjNjdmZmEyNzg5ZmVkZDRi
OTAxNS4uYTE0NzJmNTdjYTgxYzQ0YWVlNTVlOWYxYTU3YmI3OTI5YWZjM2I2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjUxNiw4ICsyNTE2LDYgQEAgLSAodm9pZClf
cHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAjaWYgRU5B
QkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBzZXR0aW5ncy5zZXRBdHRhY2htZW50RWxlbWVu
dEVuYWJsZWQoW3ByZWZlcmVuY2VzIGF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZF0pOwogI2VuZGlm
Ci0KLSAgICBzZXR0aW5ncy5zZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChwcmVmZXJlbmNlcy5y
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhv
ZChpZCBvLCBTRUwgcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCmluZGV4IDg4NDY2MTczMWE3MTA0NTJmODJmOTE2M2RhMTIwMGJiNDI4
OTYwMDQuLjZlMDAzNDVlMGYyZTk5ZGFmNjY2NDhhM2Q5OTQwNmU3NTZjOWY3ZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAt
MjI3LDcgKzIyNyw2IEBACiAgICAgbWFjcm8oTW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZCwgbW9j
a0NhcHR1cmVEZXZpY2VzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhT
aGFkb3dET01FbmFibGVkLCBzaGFkb3dET01FbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAg
ICAgbWFjcm8oQ3VzdG9tRWxlbWVudHNFbmFibGVkLCBjdXN0b21FbGVtZW50c0VuYWJsZWQsIEJv
b2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQsIHJl
c291cmNlQ2FjaGluZ0Rpc2FibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIEZPUl9FQUNI
X0FERElUSU9OQUxfV0VCS0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAogICAgIFwKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAxOGY0N2IyNDRjMTQz
MTYyMGJiN2EwY2VlY2UxOTdkOTI3YmZlYzhlLi5hMmFhZmIzNzg1YmEzYTgzNTI0ZGEzMGVjYzU3
OTEyNzBlOTU4MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cApAQCAtMjcyNCw2ICsyNzI0LDE2IEBAIHZvaWQgV0tQYWdlQ2FsbEFmdGVyTmV4dFByZXNlbnRh
dGlvblVwZGF0ZShXS1BhZ2VSZWYgcGFnZVJlZiwgdm9pZCogY29udGV4dCwgV0tQCiAgICAgfSk7
CiB9CiAKK2Jvb2wgV0tQYWdlR2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoV0tQYWdlUmVmIHBh
Z2UpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlKS0+aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxl
ZCgpOworfQorCit2b2lkIFdLUGFnZVNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKFdLUGFnZVJl
ZiBwYWdlLCBib29sIGRpc2FibGVkKQoreworICAgIHRvSW1wbChwYWdlKS0+c2V0UmVzb3VyY2VD
YWNoaW5nRGlzYWJsZWQoZGlzYWJsZWQpOworfQorCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAKIC8vIC0tIERFUFJFQ0FURUQgLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oCmluZGV4IDU4ODZiYTI2MjQyZjUxZDhjZWFkNjE5Mjhh
YmQ3YjNhMWFiYmYzYzIuLjQ4M2IxMDhiYjBkZjVkNzQ5NjNlYmU3ZmNlYTFmZTM3NTQyZWVmZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaApA
QCAtMTQyLDYgKzE0Miw5IEBAIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUxvYWRVUkxXaXRoU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeShXS1BhZ2VSZWYgcGFnZSwgV0tVCiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VQb3N0UHJlc2VudGF0aW9uVXBkYXRlRnVuY3Rpb24pKFdLRXJyb3JSZWYsIHZvaWQq
KTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUo
V0tQYWdlUmVmIHBhZ2UsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVBvc3RQcmVzZW50YXRpb25VcGRh
dGVGdW5jdGlvbiBmdW5jdGlvbik7CiAKK1dLX0VYUE9SVCBib29sIFdLUGFnZUdldFJlc291cmNl
Q2FjaGluZ0Rpc2FibGVkKFdLUGFnZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNl
dFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBib29sIGRpc2FibGVkKTsK
KwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA0NWNmZTJmNDFkNjUyNDRkODUy
ZDc5N2E5YjJjNzlmZGViMTU5YjJhLi44N2MyODA5YTM0OTQ2NzRlMTZhYTU5MmI2MThiMmZkYmFh
ZWQyNzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwCkBAIC0xNTA2LDEzICsxNTA2LDMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q3Vz
dG9tRWxlbWVudHNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiB7CiAg
ICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNoYWRvd0RPTUVuYWJsZWQoKTsKIH0K
LQotdm9pZCBXS1ByZWZlcmVuY2VzU2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQotewotICAgIHRvSW1wbChwcmVmZXJl
bmNlc1JlZiktPnNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKGZsYWcpOwotfQotCi1ib29sIFdL
UHJlZmVyZW5jZXNHZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmKQotewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5yZXNv
dXJjZUNhY2hpbmdEaXNhYmxlZCgpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCBmNzY4ZjM5NWQ2
ZWUzZDFlNWYyNmIyNzAwZmRmMmE5Y2RmN2E1YmExLi5jMmZiNDBhMGI2NmE1NWVkYWVlODk4NDE1
NjY3ZDg5YjlkNjNlZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDE5LDEwICs0MTksNiBAQCBX
S19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2hhZG93RE9NRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRDdXN0b21FbGVtZW50c0Vu
YWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRDdXN0b21FbGVtZW50c0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiAKLS8v
IERlZmF1bHRzIHRvIGZhbHNlCi1XS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0UmVzb3Vy
Y2VDYWNoaW5nRGlzYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKLVdLX0VYUE9S
VCBib29sIFdLUHJlZmVyZW5jZXNHZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChXS1ByZWZlcmVu
Y2VzUmVmKTsKLQogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjNjOTI0ZTRkMDgyNmMxZTVlZTZjN2Y2
ZDZkZmFmMWZhMTA2YTkwZS4uOWJhYzc1NGViMTdjNjQ0YmE0ZjcxZGFmNzllMDc0ZmY4OTRkYjcx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYyMjIs
NCArNjIyMiwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCkKICAgICBtX3BhZ2VDbGllbnQuZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChib29sIGRpc2FibGVk
KQoreworICAgIGlmIChtX2lzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQgPT0gZGlzYWJsZWQpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1faXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCA9IGRpc2Fi
bGVkOworCisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQo
ZGlzYWJsZWQpLCBtX3BhZ2VJRCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDdlOGQxMGJhNzI3M2M3MGRkNjc3
NTMzYjY4ZDI5MThkMzRhZjU2NDguLmY3NGM2YzAxYWEzNTJmOGMyYjM3ZDQ3YTU4YThlMWE5NDhm
YTY4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwOTgs
NiArMTA5OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2VkKTsK
IAorICAgIGJvb2wgaXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZDsgfQorICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5n
RGlzYWJsZWQoYm9vbCk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQm
LCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMTc5NCw2ICsx
Nzk3LDggQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBtX21lZGlhU3RhdGUgeyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlp
bmcgfTsKIAorICAgIGJvb2wgbV9pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkIHsgZmFsc2UgfTsK
KwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIGJvb2wgbV9oYXNNZWRpYVNlc3Npb25X
aXRoQWN0aXZlTWVkaWFFbGVtZW50cyB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1YWFlNzEzNGIwMTEyOTg2
YTAwMWQ4YmYxNTMyMTdhNzg5ZjZiNmVmLi4zZGE0OTI4NDJkNjE5NjdiNGY3NDJiZGE1NzgyOTQy
ZmRmYWVjYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0zMDQ1LDggKzMwNDUsNiBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVu
Y2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogCiAgICAgc2V0dGluZ3Muc2V0
U2hvdWxkRGlzcGF0Y2hKYXZhU2NyaXB0V2luZG93T25FcnJvckV2ZW50cyh0cnVlKTsKIAotICAg
IHNldHRpbmdzLnNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6cmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRLZXkoKSkpOwot
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMv
V2ViUGFnZVByZWZlcmVuY2VzLmNwcD4KICNlbmRpZgpAQCAtNTI2Myw0ICs1MjYxLDkgQEAgdm9p
ZCBXZWJQYWdlOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkpOwogfQogCit2b2lkIFdl
YlBhZ2U6OnNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKGJvb2wgZGlzYWJsZWQpCit7CisgICAg
bV9wYWdlLT5zZXRSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZChkaXNhYmxlZCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggZmI5MjdlNjFmYTVjODFhZmViMTkzNzA5OWE3ODA3YjkyYWMyYjVmNi4uMzBh
OThmNGM3YmU4NzgzYzM0NjI1ODJmOGJkZTczYTZiNjIxNGUwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMTk0LDYgKzExOTQsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkRW5kUmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKHVp
bnQzMl90IHJlc3VsdCk7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0UmVzb3VyY2VDYWNoaW5nRGlz
YWJsZWQoYm9vbCk7CisKICAgICB1aW50NjRfdCBtX3BhZ2VJRDsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpQYWdlPiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDk0MTllYzI1ZTk5YWQ3
NmExOWRmMmM0M2IxZDRlNGQ2Yzk5NmFmOGMuLmQzMmQwMWI4MzkyYWRjZDk1M2U3ZWUzM2MyZWYw
ZDgyNzM1ZWU3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MjcsNCArNDI3LDYgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVB
TUVSKQogICAgIERpZEVuZFJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyh1aW50MzJf
dCByZXN1bHQpCiAjZW5kaWYKKworICAgIFNldFJlc291cmNlQ2FjaGluZ0Rpc2FibGVkKGJvb2wg
ZGlzYWJsZWQpCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>