<?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>88602</bug_id>
          
          <creation_ts>2012-06-07 18:39:08 -0700</creation_ts>
          <short_desc>Web Inspector: FileSystem tree should hide uninitialized FileSystem</short_desc>
          <delta_ts>2012-06-19 03:38:55 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>89191</dependson>
          <blocked>68203</blocked>
    
    <blocked>73301</blocked>
    
    <blocked>89420</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Taiju Tsuiki">tzik</reporter>
          <assigned_to name="Taiju Tsuiki">tzik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>644187</commentid>
    <comment_count>0</comment_count>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-07 18:39:08 -0700</bug_when>
    <thetext>FileSystem tree on resources panel sometimes shows too many items.
Most of them are unused/uninitialized FileSystem, so we should/could hide it from the tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646727</commentid>
    <comment_count>1</comment_count>
      <attachid>147034</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-12 01:29:04 -0700</bug_when>
    <thetext>Created attachment 147034
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646729</commentid>
    <comment_count>2</comment_count>
      <attachid>147036</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-12 01:31:44 -0700</bug_when>
    <thetext>Created attachment 147036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646732</commentid>
    <comment_count>3</comment_count>
      <attachid>147037</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-12 01:40:17 -0700</bug_when>
    <thetext>Created attachment 147037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646737</commentid>
    <comment_count>4</comment_count>
      <attachid>147038</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-12 01:44:31 -0700</bug_when>
    <thetext>Created attachment 147038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646738</commentid>
    <comment_count>5</comment_count>
      <attachid>147038</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-12 01:46:18 -0700</bug_when>
    <thetext>Comment on attachment 147038
Patch

Sorry for upload spamming. I had updoaded wrong one before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647707</commentid>
    <comment_count>6</comment_count>
      <attachid>147237</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-12 22:48:19 -0700</bug_when>
    <thetext>Created attachment 147237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647950</commentid>
    <comment_count>7</comment_count>
      <attachid>147237</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-13 05:48:51 -0700</bug_when>
    <thetext>Comment on attachment 147237
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:1408
&gt; +                &quot;id&quot;: &quot;Entry&quot;,

Could you please make sure every type, property, command and event in FileSystem domain has a description, and that description is the last property for each of them?
Could you please make corresponding drive-by changes to entities added in previous patch as well.

&gt; Source/WebCore/inspector/InspectorFileSystemAgent.cpp:2
&gt; + * Copyright (C) 2011, 2012 Google Inc. All rights reserved.

I believe part of this patch (e.g. this line) was already landed, could you please rebaseline?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648881</commentid>
    <comment_count>8</comment_count>
      <attachid>147504</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-14 00:23:40 -0700</bug_when>
    <thetext>Created attachment 147504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648889</commentid>
    <comment_count>9</comment_count>
      <attachid>147237</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-14 00:31:33 -0700</bug_when>
    <thetext>Comment on attachment 147237
Patch

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

&gt;&gt; Source/WebCore/inspector/Inspector.json:1408
&gt;&gt; +                &quot;id&quot;: &quot;Entry&quot;,
&gt; 
&gt; Could you please make sure every type, property, command and event in FileSystem domain has a description, and that description is the last property for each of them?
&gt; Could you please make corresponding drive-by changes to entities added in previous patch as well.

OK, I added some description to them.

&gt;&gt; Source/WebCore/inspector/InspectorFileSystemAgent.cpp:2
&gt;&gt; + * Copyright (C) 2011, 2012 Google Inc. All rights reserved.
&gt; 
&gt; I believe part of this patch (e.g. this line) was already landed, could you please rebaseline?

I rebased it on ToT. Yes, this patch had some common part with a parallel patch, which you reviewed yesterday :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649130</commentid>
    <comment_count>10</comment_count>
      <attachid>147504</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-14 06:51:01 -0700</bug_when>
    <thetext>Comment on attachment 147504
Patch

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

&gt; Source/WebCore/inspector/front-end/FileSystemModel.js:34
&gt; + * @implements {FileSystemAgent.Dispatcher}

Could you please implement FileSystemDispatcher as a separate class that delegates all calls to FileSystemModel&apos;s private methods?
Otherwise FileSystemModel would have public didReadDirectory() method that should not be called by front-end which is a bit confusing.

&gt; Source/WebCore/inspector/front-end/FileSystemModel.js:209
&gt; +    getFileSystem: function(origin, type, callback)

Should be private.

&gt; Source/WebCore/inspector/front-end/FileSystemModel.js:211
&gt; +        var requestId = WebInspector.FileSystemModel.nextRequestId++;

I suggest extracting request managing from FileSystemModel to a separate class (Like it is done for IndexedDBModel).
Otherwise FileSystemModel becomes is flooded with methods with almost equal names and different semantics.

&gt; Source/WebCore/inspector/front-end/FileSystemModel.js:225
&gt; +    gotFileSystemRoot: function(requestId, errorCode, backendEntry)

Should be private.

&gt; LayoutTests/http/tests/inspector/filesystem/filesystem-test.js:32
&gt; +    InspectorTest.clearFileSystem = function(callback)

This is the same as the patch uploaded in https://bugs.webkit.org/show_bug.cgi?id=89066.
Could you please separate one from another?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650028</commentid>
    <comment_count>11</comment_count>
      <attachid>147504</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-15 02:09:38 -0700</bug_when>
    <thetext>Comment on attachment 147504
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/FileSystemModel.js:34
&gt;&gt; + * @implements {FileSystemAgent.Dispatcher}
&gt; 
&gt; Could you please implement FileSystemDispatcher as a separate class that delegates all calls to FileSystemModel&apos;s private methods?
&gt; Otherwise FileSystemModel would have public didReadDirectory() method that should not be called by front-end which is a bit confusing.

OK, I&apos;ll do it. But, it seems worth separating into another patch.
Let me put in http://webkit.org/b/89191

&gt;&gt; Source/WebCore/inspector/front-end/FileSystemModel.js:209
&gt;&gt; +    getFileSystem: function(origin, type, callback)
&gt; 
&gt; Should be private.

Will be done in next patch.

&gt;&gt; Source/WebCore/inspector/front-end/FileSystemModel.js:211
&gt;&gt; +        var requestId = WebInspector.FileSystemModel.nextRequestId++;
&gt; 
&gt; I suggest extracting request managing from FileSystemModel to a separate class (Like it is done for IndexedDBModel).
&gt; Otherwise FileSystemModel becomes is flooded with methods with almost equal names and different semantics.

ditto. I&apos;ll put it in http://webkit.org/b/89191

&gt;&gt; LayoutTests/http/tests/inspector/filesystem/filesystem-test.js:32
&gt;&gt; +    InspectorTest.clearFileSystem = function(callback)
&gt; 
&gt; This is the same as the patch uploaded in https://bugs.webkit.org/show_bug.cgi?id=89066.
&gt; Could you please separate one from another?

Sorry, I&apos;ll drop it in next version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650059</commentid>
    <comment_count>12</comment_count>
      <attachid>147782</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-15 03:26:07 -0700</bug_when>
    <thetext>Created attachment 147782
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652225</commentid>
    <comment_count>13</comment_count>
      <attachid>148288</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-19 01:50:38 -0700</bug_when>
    <thetext>Created attachment 148288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652226</commentid>
    <comment_count>14</comment_count>
      <attachid>148288</attachid>
    <who name="Taiju Tsuiki">tzik</who>
    <bug_when>2012-06-19 01:51:39 -0700</bug_when>
    <thetext>Comment on attachment 148288
Patch

Forgot to add test expectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652301</commentid>
    <comment_count>15</comment_count>
      <attachid>148288</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 03:38:49 -0700</bug_when>
    <thetext>Comment on attachment 148288
Patch

Clearing flags on attachment: 148288

Committed r120702: &lt;http://trac.webkit.org/changeset/120702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652302</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 03:38:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147034</attachid>
            <date>2012-06-12 01:29:04 -0700</date>
            <delta_ts>2012-06-12 01:31:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88602-20120612172903.patch</filename>
            <type>text/plain</type>
            <size>18797</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAyYTA2ZDRmMDA2Nzkz
YWU1YTQxYWI1YTYzODk5OTZhNjAxZGVhMC4uY2M1OWU4MWM4ZmFlYTcwYWYxZjcxNjViNjY0Yzdl
MzE3MmE5NTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTEyICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRy
b2xsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3Bw
OgorICAgICAgICAoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50OjpnZXRGaWxlU3lzdGVtUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlw
ZS5fb3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5w
cm90b3R5cGUuX2dvdEZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbC5wcm90b3R5cGUucmVmcmVzaEZpbGVTeXN0ZW1MaXN0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLmdldEZpbGVTeXN0ZW0pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUuZ290RmlsZVN5c3RlbVJv
b3QpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbUxpc3RUcmVlRWxlbWVudC5wcm90b3R5cGUu
X2ZpbGVTeXN0ZW1SZW1vdmVkKToKKwogMjAxMi0wNi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1l
c3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBEcmF3aW5nQnVmZmVy
Q2hyb21pdW0gZnJvbSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBvdmVyIHRvIFdlYkV4dGVybmFsVGV4
dHVyZUxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYTQw
NzUyNTlhZmY5Yjg3ZWIyM2JmZjI4NzE5NDkyN2U1MjFkZGU5Mi4uN2M1OTZiYTkxYWFkYmUwM2M1
NWZkMmI0YWE5NzY0YmI2ZDI2ZjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtMTQwMyw2ICsxNDAzLDE5IEBACiAgICAgewogICAgICAgICAiZG9tYWluIjog
IkZpbGVTeXN0ZW0iLAogICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKKyAgICAgICAgInR5cGVzIjog
WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJFbnRyeSIsCisgICAgICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6
IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiZmlsZXN5c3RlbTogVVJMIGZvciB0aGUgZW50cnkuIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciIH0sCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNEaXJlY3RvcnkiLCAidHlwZSI6ICJib29s
ZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgdGhlIGVudHJ5IGlzIGEgZGlyZWN0b3J5LiIg
fSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtaW1lVHlwZSIsICJ0eXBlIjogInN0
cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJNSU1FIHR5cGUgb2YgdGhl
IGVudHJ5LCBhdmFpbGFibGUgZm9yIGEgZmlsZSBvbmx5LiIgfSwKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJyZXNvdXJjZVR5cGUiLCAiJHJlZiI6ICJQYWdlLlJlc291cmNlVHlwZSIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZVR5cGUgb2YgdGhlIGVu
dHJ5LCBhdmFpbGFibGUgZm9yIGEgZmlsZSBvbmx5LiIgfQorICAgICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIsCkBAIC0xNDExLDkgKzE0MjQs
MjYgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwK
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMgZXZlbnRzIGZyb20gYmFj
a2VuZC4uIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
bmFtZSI6ICJnZXRGaWxlU3lzdGVtUm9vdCIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlJldHVybnMgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIEZpbGVTeXN0ZW0gaWYgZXhpc3RzLiIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicmVxdWVzdElkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJ0
ZW1wb3JhcnkiLCAicGVyc2lzdGVudCJdIH0KKyAgICAgICAgICAgICAgICBdCiAgICAgICAgICAg
ICB9CiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiZ290RmlsZVN5c3RlbVJvb3QiLAorICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJ
ZCIsICJ0eXBlIjogImludGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZXJyb3JDb2RlIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJyb290IiwgIiRyZWYiOiAiRmlsZVN5c3RlbS5FbnRyeSIsICJvcHRpb25hbCI6IHRy
dWUgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KICAgICAgICAgXQogICAgIH0s
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IGY5ZjRlNjI1NjBhNmY1ODIwM2YwNWU4MzkwNTc0ZGUyODljZWI2MjkuLjlk
YWMyZmVhNDA0Yjc2NjAxZWEwMDU2Zjc0N2Y5YzMwZmJmNzQwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTEwNyw3ICsxMDcs
NyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2Us
IEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCi0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAgIG1f
YWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlmCiAg
ICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9zdGF0ZS5nZXQoKSkpOwogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3Rv
cmFnZUFnZW50ID0gZG9tU3RvcmFnZUFnZW50UHRyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAppbmRleCAzYWZi
MjZiZjE5NDE5MTgyY2Y4YWM5ZmUzYmQxOTE3NmMxZGQyOTNjLi5iOWNlY2E2MDU1YWNhM2U1YmMy
OWMxZGE0YjkyYjAwYTVjZDkwNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcApAQCAtMzUsOCArMzUsMTggQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIKIAogI2luY2x1ZGUgIkRPTUZpbGVT
eXN0ZW0uaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVudHJ5LmgiCisjaW5j
bHVkZSAiRW50cnlDYWxsYmFjay5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJGaWxlRXJyb3IuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNp
bmNsdWRlICJMb2NhbEZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1LDcgKzU1LDggQEAgc3RhdGljIGNvbnN0IGNo
YXIgZmlsZVN5c3RlbUFnZW50RW5hYmxlZFtdID0gImZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQiOwog
fQogCiBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OkZyb250ZW5kUHJvdmlkZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxGcm9udGVuZFByb3ZpZGVyPiB7Ci0gIHB1YmxpYzoKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShGcm9udGVuZFByb3ZpZGVyKTsKK3B1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBjcmVhdGUoSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50KiBhZ2VudCwgSW5zcGVjdG9yRnJvbnRlbmQ6OkZpbGVTeXN0ZW0qIGZyb250ZW5kKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcm9udGVuZFByb3ZpZGVyKGFnZW50LCBm
cm9udGVuZCkpOwpAQCAtNjQsNyArNzUsNyBAQCBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQ6OkZyb250ZW5kUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGcm9udGVuZFBybwogICAg
ICAgICBtX2Zyb250ZW5kID0gMDsKICAgICB9CiAKLSAgcHJpdmF0ZToKK3ByaXZhdGU6CiAgICAg
RnJvbnRlbmRQcm92aWRlcihJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQqIGFnZW50LCBJbnNwZWN0
b3JGcm9udGVuZDo6RmlsZVN5c3RlbSogZnJvbnRlbmQpCiAgICAgICAgIDogbV9hZ2VudChhZ2Vu
dCkKICAgICAgICAgLCBtX2Zyb250ZW5kKGZyb250ZW5kKSB7IH0KQEAgLTczLDEwICs4NCwxMTUg
QEAgY2xhc3MgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8RnJvbnRlbmRQcm8KICAgICBJbnNwZWN0b3JGcm9udGVuZDo6RmlsZVN5
c3RlbSogbV9mcm9udGVuZDsKIH07CiAKK25hbWVzcGFjZSB7CisKK3R5cGVkZWYgSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIEZyb250ZW5kUHJvdmlkZXI7CisKK2Ns
YXNzIEdldEZpbGVTeXN0ZW1Sb290VGFzayA6IHB1YmxpYyBSZWZDb3VudGVkPEdldEZpbGVTeXN0
ZW1Sb290VGFzaz4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdldEZpbGVTeXN0ZW1Sb290
VGFzayk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RU
YXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVy
LCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEdldEZpbGVTeXN0ZW1Sb290VGFzayhmcm9udGVuZFByb3ZpZGVyLCBy
ZXF1ZXN0SWQsIHR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBFcnJvckNhbGxiYWNrOworICAgIGNs
YXNzIEdldEVudHJ5Q2FsbGJhY2s7CisKKyAgICB2b2lkIGdvdEVudHJ5KEVudHJ5Kik7CisKKyAg
ICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiBlbnRyeSkKKyAgICB7CisgICAg
ICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250
ZW5kKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fZnJvbnRlbmRQcm92aWRlci0+
ZnJvbnRlbmQoKS0+Z290RmlsZVN5c3RlbVJvb3QobV9yZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGlu
dD4oZXJyb3JDb2RlKSwgZW50cnkpOworICAgICAgICBtX2Zyb250ZW5kUHJvdmlkZXIgPSAwOwor
ICAgIH0KKworICAgIEdldEZpbGVTeXN0ZW1Sb290VGFzayhQYXNzUmVmUHRyPEZyb250ZW5kUHJv
dmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdHlw
ZSkKKyAgICAgICAgOiBtX2Zyb250ZW5kUHJvdmlkZXIoZnJvbnRlbmRQcm92aWRlcikKKyAgICAg
ICAgLCBtX3JlcXVlc3RJZChyZXF1ZXN0SWQpCisgICAgICAgICwgbV90eXBlKHR5cGUpIHsgfQor
CisgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKKyAgICBp
bnQgbV9yZXF1ZXN0SWQ7CisgICAgU3RyaW5nIG1fdHlwZTsKK307CisKK2NsYXNzIEdldEZpbGVT
eXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBXZWJDb3JlOjpFcnJvckNhbGxi
YWNrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFcnJvckNhbGxiYWNrKTsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJh
Y2s+IGNyZWF0ZShQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5c3Rl
bVJvb3RUYXNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXRGaWxlU3lz
dGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2soZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKSk7CisgICAg
fQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KEZpbGVFcnJvciogZXJyb3IpIE9WRVJS
SURFCisgICAgeworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+cmVwb3J0UmVzdWx0
KGVycm9yLT5jb2RlKCksIDApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgRXJyb3JDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4g
Z2V0RmlsZVN5c3RlbVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNr
KGdldEZpbGVTeXN0ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290
VGFzaz4gbV9nZXRGaWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCitjbGFzcyBHZXRGaWxlU3lzdGVt
Um9vdFRhc2s6OkdldEVudHJ5Q2FsbGJhY2sgOiBwdWJsaWMgV2ViQ29yZTo6RW50cnlDYWxsYmFj
ayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR2V0RW50cnlDYWxsYmFjayk7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNh
bGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+IGdldEZpbGVT
eXN0ZW1Sb290VGFzaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0Rmls
ZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNhbGxiYWNrKGdldEZpbGVTeXN0ZW1Sb290VGFzaykp
OworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChFbnRyeSogZW50cnkpIE9W
RVJSSURFCisgICAgeworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+Z290RW50cnko
ZW50cnkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgR2V0
RW50cnlDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5
c3RlbVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKGdldEZpbGVT
eXN0ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gbV9n
ZXRGaWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCit2b2lkIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6
c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK3sK
KyAgICBGaWxlU3lzdGVtVHlwZSB0eXBlOworICAgIGlmIChtX3R5cGUgPT0gRE9NRmlsZVN5c3Rl
bUJhc2U6OnBlcnNpc3RlbnRQYXRoUHJlZml4KQorICAgICAgICB0eXBlID0gRmlsZVN5c3RlbVR5
cGVQZXJzaXN0ZW50OworICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBET01GaWxlU3lzdGVtQmFzZTo6
dGVtcG9yYXJ5UGF0aFByZWZpeCkKKyAgICAgICAgdHlwZSA9IEZpbGVTeXN0ZW1UeXBlVGVtcG9y
YXJ5OworICAgIGVsc2UgeworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5UQVhf
RVJSLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxFbnRyeUNhbGxi
YWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkdldEVudHJ5Q2Fs
bGJhY2s6OmNyZWF0ZSh0aGlzKTsKKyAgICBSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxs
YmFjayA9IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjazo6Y3JlYXRlKHRoaXMp
OworICAgIE93blB0cjxSZXNvbHZlVVJJQ2FsbGJhY2tzPiBmaWxlU3lzdGVtQ2FsbGJhY2tzID0g
UmVzb2x2ZVVSSUNhbGxiYWNrczo6Y3JlYXRlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFj
aywgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgdHlwZSwgIi8iKTsKKworICAgIExvY2FsRmlsZVN5
c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkucmVhZEZpbGVTeXN0ZW0oc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgdHlwZSwgZmlsZVN5c3RlbUNhbGxiYWNrcy5yZWxlYXNlKCkpOworfQorCit2b2lkIEdl
dEZpbGVTeXN0ZW1Sb290VGFzazo6Z290RW50cnkoRW50cnkqIGVudHJ5KQoreworICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+IHJlc3VsdChUeXBlQnVpbGRlcjo6Rmls
ZVN5c3RlbTo6RW50cnk6OmNyZWF0ZSgpLnNldFVybChlbnRyeS0+dG9VUkwoKSkuc2V0TmFtZSgi
LyIpLnNldElzRGlyZWN0b3J5KHRydWUpKTsKKyAgICByZXBvcnRSZXN1bHQoc3RhdGljX2Nhc3Q8
RmlsZUVycm9yOjpFcnJvckNvZGU+KDApLCByZXN1bHQpOworfQorCit9CisKIC8vIHN0YXRpYwot
UGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IEluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvclN0YXRlKiBzdGF0ZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
PiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVj
dG9yU3RhdGUqIHN0YXRlKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
cGFnZUFnZW50LCBzdGF0ZSkpOwogfQogCiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6On5JbnNw
ZWN0b3JGaWxlU3lzdGVtQWdlbnQoKQpAQCAtMTAyLDYgKzIxOCwyMyBAQCB2b2lkIEluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAgbV9zdGF0ZS0+c2V0
Qm9vbGVhbihGaWxlU3lzdGVtQWdlbnRTdGF0ZTo6ZmlsZVN5c3RlbUFnZW50RW5hYmxlZCwgbV9l
bmFibGVkKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmdldEZpbGVTeXN0
ZW1Sb290KEVycm9yU3RyaW5nKiwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBpZiAoIW1fZW5hYmxlZCB8fCAhbV9mcm9udGVu
ZFByb3ZpZGVyKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQcm92aWRl
ci0+ZnJvbnRlbmQoKSk7CisgICAgS1VSTCBvcmlnaW5VUkwoUGFyc2VkVVJMU3RyaW5nLCBvcmln
aW4pOworCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+bWFpbkZyYW1lKCk7
IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAg
IGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJp
bmcob3JpZ2luKS5nZXQoKSkpIHsKKyAgICAgICAgICAgIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6
Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwgcmVxdWVzdElkLCB0eXBlKS0+c3RhcnQoZnJhbWUt
PmRvY3VtZW50KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisg
ICAgbV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVuZCgpLT5nb3RGaWxlU3lzdGVtUm9vdChyZXF1
ZXN0SWQsIHN0YXRpY19jYXN0PGludD4oRmlsZUVycm9yOjpTRUNVUklUWV9FUlIpLCAwKTsKK30K
Kwogdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZy
b250ZW5kKiBmcm9udGVuZCkKIHsKICAgICBBU1NFUlQoZnJvbnRlbmQpOwpAQCAtMTIzLDggKzI1
Niw5IEBAIHZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpyZXN0b3JlKCkKICAgICBtX2Vu
YWJsZWQgPSBtX3N0YXRlLT5nZXRCb29sZWFuKEZpbGVTeXN0ZW1BZ2VudFN0YXRlOjpmaWxlU3lz
dGVtQWdlbnRFbmFibGVkKTsKIH0KIAotSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpJbnNwZWN0
b3JGaWxlU3lzdGVtQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQorSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpJbnNw
ZWN0b3JGaWxlU3lzdGVtQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0
ZSkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+KCJG
aWxlU3lzdGVtIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCisgICAgLCBtX3BhZ2VBZ2Vu
dChwYWdlQWdlbnQpCiAgICAgLCBtX2VuYWJsZWQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGluc3Ry
dW1lbnRpbmdBZ2VudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5oCmluZGV4IGE2MzdmYTBlOTcyYjFhZTc4ZmRkOWE0MDkyZGZl
MWExZjFiZGIxNmUuLjBmYTE5NWI0OWEyN2IwYjhiMjIyNjdlZDNiYzVlNjJhNjJjOTIzNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50LmgKQEAgLTQwLDggKzQwLDEwIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgeworCiBjbGFzcyBET01GaWxlU3lzdGVtOwogY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JT
dGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiAKQEAgLTQ5LDE4ICs1MSwyMSBAQCBj
bGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50
PEluc3BlY3RvckZpbGVTeXN0ZW1BZwogcHVibGljOgogICAgIGNsYXNzIEZyb250ZW5kUHJvdmlk
ZXI7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IGNy
ZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqKTsKKyAgICBzdGF0aWMg
UGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUqKTsKICAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmFi
bGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyop
OwogCisgICAgdmlydHVhbCB2b2lkIGdldEZpbGVTeXN0ZW1Sb290KEVycm9yU3RyaW5nKiwgaW50
IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgdHlwZSkgT1ZF
UlJJREU7CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZXN0b3JlKCk7CiBwcml2YXRlOgotICAgIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqKTsKKyAgICBJbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rv
clN0YXRlKik7CiAKKyAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50OwogICAgIFJl
ZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBtX2Zyb250ZW5kUHJvdmlkZXI7CiAgICAgYm9vbCBtX2Vu
YWJsZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9GaWxlU3lzdGVtTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0ZpbGVTeXN0ZW1Nb2RlbC5qcwppbmRleCAxOTQzNTRhODliMDQyODU0NzY2ZGU3MTM4ODI1MDU3
ZjZkOTMwMDY1Li4wMjk4MTU3ZjJmNmJiMTlkMDQzMzM0YmQ3MTY5ODE4Mjk4MTFjMTNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2Rl
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1N
b2RlbC5qcwpAQCAtNDEsNiArNDEsOCBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsID0g
ZnVuY3Rpb24oKQogICAgIHRoaXMuX2ZyYW1lSWRzRm9yT3JpZ2luID0ge307CiAgICAgdGhpcy5f
ZmlsZVN5c3RlbXNGb3JPcmlnaW4gPSB7fTsKIAorICAgIHRoaXMuX3BlbmRpbmdHZXRGaWxlU3lz
dGVtUmVxdWVzdCA9IHt9OworCiAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMu
RnJhbWVBZGRlZCwgdGhpcy5fZnJhbWVBZGRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLnJl
c291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJl
ZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX2ZyYW1lTmF2aWdhdGVkLCB0
aGlzKTsKICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVk
LCB0aGlzLl9mcmFtZURldGFjaGVkLCB0aGlzKTsKQEAgLTE0OSwxMiArMTUxLDE3IEBAIFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9maWxl
U3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dID0ge307CiAKICAgICAgICAgdmFyIHR5cGVzID0gWyJw
ZXJzaXN0ZW50IiwgInRlbXBvcmFyeSJdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5
cGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRSg4ODYwMik6IENoZWNrIGlm
IHRoZSBmaWxlc3lzdGVtIGlzIGluaXRpYWxpemVkLCBhbmQgc2hvdyBpdCBvbmx5IGlmIGl0IHdh
cy4KLSAgICAgICAgICAgIHZhciBmaWxlU3lzdGVtID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlU3lz
dGVtTW9kZWwuRmlsZVN5c3RlbSh0aGlzLCBvcmlnaW4sIHR5cGVzW2ldKTsKLSAgICAgICAgICAg
IHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl1bdHlwZXNbaV1dID0gZmlsZVN5c3Rl
bTsKLSAgICAgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZChmaWxlU3lzdGVtKTsKLSAgICAg
ICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgdGhpcy5nZXRGaWxlU3lzdGVtKG9yaWdpbiwgdHlwZXNbaV0sIHRoaXMuX2dvdEZp
bGVTeXN0ZW0uYmluZCh0aGlzLCB0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dKSk7
CisgICAgfSwKKworICAgIF9nb3RGaWxlU3lzdGVtOiBmdW5jdGlvbihzdG9yZSwgZXJyb3JDb2Rl
LCBmaWxlU3lzdGVtKQorICAgIHsKKyAgICAgICAgaWYgKGVycm9yQ29kZSAhPT0gMCB8fCB0aGlz
Ll9maWxlU3lzdGVtc0Zvck9yaWdpbltmaWxlU3lzdGVtLm9yaWdpbl0gIT09IHN0b3JlKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHN0b3JlW2ZpbGVTeXN0ZW0udHlwZV0gPSBmaWxl
U3lzdGVtOworICAgICAgICB0aGlzLl9maWxlU3lzdGVtQWRkZWQoZmlsZVN5c3RlbSk7CiAgICAg
fSwKIAogICAgIC8qKgpAQCAtMTg4LDEzICsxOTUsMzkgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICByZWZyZXNoRmlsZVN5c3RlbUxpc3Q6IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIGZvciAodmFyIG9yaWdpbiBpbiB0aGlzLl9maWxlU3lzdGVt
c0Zvck9yaWdpbikKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGUgaW4gdGhpcy5fZmlsZVN5c3Rl
bXNGb3JPcmlnaW5bb3JpZ2luXSkKLSAgICAgICAgICAgICAgICB0aGlzLl9maWxlU3lzdGVtUmVt
b3ZlZCh0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dW3R5cGVdKTsKKyAgICAgICAg
aWYgKFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpIHsKKyAgICAgICAg
ICAgIHRoaXMuX2RldGFjaEZyYW1lUmVjdXJzaXZlbHkoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJl
ZU1vZGVsLm1haW5GcmFtZSk7CisgICAgICAgICAgICB0aGlzLl9hdHRhY2hGcmFtZVJlY3Vyc2l2
ZWx5KFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpOworICAgICAgICB9
CisgICAgfSwKIAotICAgICAgICBmb3IgKHZhciBvcmlnaW4gaW4gdGhpcy5fZmlsZVN5c3RlbXNG
b3JPcmlnaW4pCi0gICAgICAgICAgICBmb3IgKHZhciB0eXBlIGluIHRoaXMuX2ZpbGVTeXN0ZW1z
Rm9yT3JpZ2luW29yaWdpbl0pCi0gICAgICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbUFkZGVk
KHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl1bdHlwZV0pOworICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW4KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQor
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oKX0KKyAgICAgKi8KKyAgICBnZXRGaWxlU3lzdGVtOiBm
dW5jdGlvbihvcmlnaW4sIHR5cGUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVl
c3RJZCA9IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwubmV4dFJlcXVlc3RJZCsrOworICAg
ICAgICB0aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJlcXVlc3RbcmVxdWVzdElkXSA9IHsKKyAg
ICAgICAgICAgIG9yaWdpbjogb3JpZ2luLAorICAgICAgICAgICAgdHlwZTogdHlwZSwKKyAgICAg
ICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjaworICAgICAgICB9OworICAgICAgICBGaWxlU3lzdGVt
QWdlbnQuZ2V0RmlsZVN5c3RlbVJvb3QocmVxdWVzdElkLCBvcmlnaW4sIHR5cGUpOworICAgIH0s
CisKKyAgICBnb3RGaWxlU3lzdGVtUm9vdDogZnVuY3Rpb24ocmVxdWVzdElkLCBlcnJvckNvZGUs
IGJhY2tlbmRFbnRyeSkKKyAgICB7CisgICAgICAgIHZhciByZXF1ZXN0ID0gdGhpcy5fcGVuZGlu
Z0dldEZpbGVTeXN0ZW1SZXF1ZXN0W3JlcXVlc3RJZF07CisgICAgICAgIGlmICghcmVxdWVzdCkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3BlbmRpbmdHZXRGaWxl
U3lzdGVtUmVxdWVzdFtyZXF1ZXN0SWRdOworCisgICAgICAgIHZhciBmaWxlU3lzdGVtID0gbnVs
bDsKKyAgICAgICAgaWYgKGVycm9yQ29kZSA9PT0gMCkKKyAgICAgICAgICAgIGZpbGVTeXN0ZW0g
PSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtKHRoaXMsIHJlcXVl
c3Qub3JpZ2luLCByZXF1ZXN0LnR5cGUsIGJhY2tlbmRFbnRyeSk7CisgICAgICAgIHJlcXVlc3Qu
Y2FsbGJhY2soZXJyb3JDb2RlLCBmaWxlU3lzdGVtKTsKICAgICB9CiB9CiAKQEAgLTIwMyw2ICsy
MzYsOCBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkV2ZW50VHlwZXMgPSB7CiAgICAg
RmlsZVN5c3RlbVJlbW92ZWQ6ICJGaWxlU3lzdGVtUmVtb3ZlZCIKIH0KIAorV2ViSW5zcGVjdG9y
LkZpbGVTeXN0ZW1Nb2RlbC5uZXh0UmVxdWVzdElkID0gMTsKKwogV2ViSW5zcGVjdG9yLkZpbGVT
eXN0ZW1Nb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90
b3R5cGU7CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VzUGFuZWwuanMKaW5kZXggNThlOTM2MWQ3ZDg1YjNhMzAxMTgzZDFlM2M3ODM4
YWIxYTIyZTM4Yy4uYzk3YzFmMjViNzNiNDdjYjg0MTFlYjgzM2RlOTQxNzBjZjc2OWM3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5l
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1Bh
bmVsLmpzCkBAIC0xNTI1LDcgKzE1MjUsNiBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbUxpc3RU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBmaWxlU3lzdGVtVHJlZUVsZW1l
bnQgPSB0aGlzLl9maWxlU3lzdGVtVHJlZUVsZW1lbnRCeU5hbWUoZmlsZVN5c3RlbS5uYW1lKTsK
ICAgICAgICAgaWYgKCFmaWxlU3lzdGVtVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGZpbGVTeXN0ZW1UcmVlRWxlbWVudC5jbGVhcigpOwogICAgICAgICB0aGlzLnJl
bW92ZUNoaWxkKGZpbGVTeXN0ZW1UcmVlRWxlbWVudCk7CiAgICAgfSwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147036</attachid>
            <date>2012-06-12 01:31:44 -0700</date>
            <delta_ts>2012-06-12 01:40:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88602-20120612173143.patch</filename>
            <type>text/plain</type>
            <size>18751</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAyYTA2ZDRmMDA2Nzkz
YWU1YTQxYWI1YTYzODk5OTZhNjAxZGVhMC4uY2M1OWU4MWM4ZmFlYTcwYWYxZjcxNjViNjY0Yzdl
MzE3MmE5NTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTEyICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRy
b2xsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3Bw
OgorICAgICAgICAoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50OjpnZXRGaWxlU3lzdGVtUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlw
ZS5fb3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5w
cm90b3R5cGUuX2dvdEZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbC5wcm90b3R5cGUucmVmcmVzaEZpbGVTeXN0ZW1MaXN0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLmdldEZpbGVTeXN0ZW0pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUuZ290RmlsZVN5c3RlbVJv
b3QpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbUxpc3RUcmVlRWxlbWVudC5wcm90b3R5cGUu
X2ZpbGVTeXN0ZW1SZW1vdmVkKToKKwogMjAxMi0wNi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1l
c3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBEcmF3aW5nQnVmZmVy
Q2hyb21pdW0gZnJvbSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBvdmVyIHRvIFdlYkV4dGVybmFsVGV4
dHVyZUxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYTQw
NzUyNTlhZmY5Yjg3ZWIyM2JmZjI4NzE5NDkyN2U1MjFkZGU5Mi4uN2M1OTZiYTkxYWFkYmUwM2M1
NWZkMmI0YWE5NzY0YmI2ZDI2ZjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtMTQwMyw2ICsxNDAzLDE5IEBACiAgICAgewogICAgICAgICAiZG9tYWluIjog
IkZpbGVTeXN0ZW0iLAogICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKKyAgICAgICAgInR5cGVzIjog
WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJFbnRyeSIsCisgICAgICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6
IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiZmlsZXN5c3RlbTogVVJMIGZvciB0aGUgZW50cnkuIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciIH0sCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNEaXJlY3RvcnkiLCAidHlwZSI6ICJib29s
ZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgdGhlIGVudHJ5IGlzIGEgZGlyZWN0b3J5LiIg
fSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtaW1lVHlwZSIsICJ0eXBlIjogInN0
cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJNSU1FIHR5cGUgb2YgdGhl
IGVudHJ5LCBhdmFpbGFibGUgZm9yIGEgZmlsZSBvbmx5LiIgfSwKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJyZXNvdXJjZVR5cGUiLCAiJHJlZiI6ICJQYWdlLlJlc291cmNlVHlwZSIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZVR5cGUgb2YgdGhlIGVu
dHJ5LCBhdmFpbGFibGUgZm9yIGEgZmlsZSBvbmx5LiIgfQorICAgICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIsCkBAIC0xNDExLDkgKzE0MjQs
MjYgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwK
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMgZXZlbnRzIGZyb20gYmFj
a2VuZC4uIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
bmFtZSI6ICJnZXRGaWxlU3lzdGVtUm9vdCIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlJldHVybnMgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIEZpbGVTeXN0ZW0gaWYgZXhpc3RzLiIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicmVxdWVzdElkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJ0
ZW1wb3JhcnkiLCAicGVyc2lzdGVudCJdIH0KKyAgICAgICAgICAgICAgICBdCiAgICAgICAgICAg
ICB9CiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiZ290RmlsZVN5c3RlbVJvb3QiLAorICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJ
ZCIsICJ0eXBlIjogImludGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZXJyb3JDb2RlIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJyb290IiwgIiRyZWYiOiAiRmlsZVN5c3RlbS5FbnRyeSIsICJvcHRpb25hbCI6IHRy
dWUgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KICAgICAgICAgXQogICAgIH0s
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IGY5ZjRlNjI1NjBhNmY1ODIwM2YwNWU4MzkwNTc0ZGUyODljZWI2MjkuLjlk
YWMyZmVhNDA0Yjc2NjAxZWEwMDU2Zjc0N2Y5YzMwZmJmNzQwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTEwNyw3ICsxMDcs
NyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2Us
IEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCi0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAgIG1f
YWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlmCiAg
ICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9zdGF0ZS5nZXQoKSkpOwogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3Rv
cmFnZUFnZW50ID0gZG9tU3RvcmFnZUFnZW50UHRyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAppbmRleCAzYWZi
MjZiZjE5NDE5MTgyY2Y4YWM5ZmUzYmQxOTE3NmMxZGQyOTNjLi4xYTA5YjZiOTY0YzBhNzk3OGUw
Y2VjNjQyODVjMDc4Y2U4NjRjZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcApAQCAtMzUsOCArMzUsMTggQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIKIAogI2luY2x1ZGUgIkRPTUZpbGVT
eXN0ZW0uaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVudHJ5LmgiCisjaW5j
bHVkZSAiRW50cnlDYWxsYmFjay5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJGaWxlRXJyb3IuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNp
bmNsdWRlICJMb2NhbEZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1LDcgKzU1LDggQEAgc3RhdGljIGNvbnN0IGNo
YXIgZmlsZVN5c3RlbUFnZW50RW5hYmxlZFtdID0gImZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQiOwog
fQogCiBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OkZyb250ZW5kUHJvdmlkZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxGcm9udGVuZFByb3ZpZGVyPiB7Ci0gIHB1YmxpYzoKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShGcm9udGVuZFByb3ZpZGVyKTsKK3B1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBjcmVhdGUoSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50KiBhZ2VudCwgSW5zcGVjdG9yRnJvbnRlbmQ6OkZpbGVTeXN0ZW0qIGZyb250ZW5kKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcm9udGVuZFByb3ZpZGVyKGFnZW50LCBm
cm9udGVuZCkpOwpAQCAtNjQsNyArNzUsNyBAQCBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQ6OkZyb250ZW5kUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGcm9udGVuZFBybwogICAg
ICAgICBtX2Zyb250ZW5kID0gMDsKICAgICB9CiAKLSAgcHJpdmF0ZToKK3ByaXZhdGU6CiAgICAg
RnJvbnRlbmRQcm92aWRlcihJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQqIGFnZW50LCBJbnNwZWN0
b3JGcm9udGVuZDo6RmlsZVN5c3RlbSogZnJvbnRlbmQpCiAgICAgICAgIDogbV9hZ2VudChhZ2Vu
dCkKICAgICAgICAgLCBtX2Zyb250ZW5kKGZyb250ZW5kKSB7IH0KQEAgLTczLDEwICs4NCwxMTUg
QEAgY2xhc3MgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8RnJvbnRlbmRQcm8KICAgICBJbnNwZWN0b3JGcm9udGVuZDo6RmlsZVN5
c3RlbSogbV9mcm9udGVuZDsKIH07CiAKK25hbWVzcGFjZSB7CisKK3R5cGVkZWYgSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIEZyb250ZW5kUHJvdmlkZXI7CisKK2Ns
YXNzIEdldEZpbGVTeXN0ZW1Sb290VGFzayA6IHB1YmxpYyBSZWZDb3VudGVkPEdldEZpbGVTeXN0
ZW1Sb290VGFzaz4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdldEZpbGVTeXN0ZW1Sb290
VGFzayk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RU
YXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVy
LCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEdldEZpbGVTeXN0ZW1Sb290VGFzayhmcm9udGVuZFByb3ZpZGVyLCBy
ZXF1ZXN0SWQsIHR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBFcnJvckNhbGxiYWNrOworICAgIGNs
YXNzIEdldEVudHJ5Q2FsbGJhY2s7CisKKyAgICB2b2lkIGdvdEVudHJ5KEVudHJ5Kik7CisKKyAg
ICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiBlbnRyeSkKKyAgICB7CisgICAg
ICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250
ZW5kKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fZnJvbnRlbmRQcm92aWRlci0+
ZnJvbnRlbmQoKS0+Z290RmlsZVN5c3RlbVJvb3QobV9yZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGlu
dD4oZXJyb3JDb2RlKSwgZW50cnkpOworICAgICAgICBtX2Zyb250ZW5kUHJvdmlkZXIgPSAwOwor
ICAgIH0KKworICAgIEdldEZpbGVTeXN0ZW1Sb290VGFzayhQYXNzUmVmUHRyPEZyb250ZW5kUHJv
dmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdHlw
ZSkKKyAgICAgICAgOiBtX2Zyb250ZW5kUHJvdmlkZXIoZnJvbnRlbmRQcm92aWRlcikKKyAgICAg
ICAgLCBtX3JlcXVlc3RJZChyZXF1ZXN0SWQpCisgICAgICAgICwgbV90eXBlKHR5cGUpIHsgfQor
CisgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKKyAgICBp
bnQgbV9yZXF1ZXN0SWQ7CisgICAgU3RyaW5nIG1fdHlwZTsKK307CisKK2NsYXNzIEdldEZpbGVT
eXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBXZWJDb3JlOjpFcnJvckNhbGxi
YWNrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFcnJvckNhbGxiYWNrKTsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJh
Y2s+IGNyZWF0ZShQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5c3Rl
bVJvb3RUYXNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXRGaWxlU3lz
dGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2soZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKSk7CisgICAg
fQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KEZpbGVFcnJvciogZXJyb3IpIE9WRVJS
SURFCisgICAgeworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+cmVwb3J0UmVzdWx0
KGVycm9yLT5jb2RlKCksIDApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgRXJyb3JDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4g
Z2V0RmlsZVN5c3RlbVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNr
KGdldEZpbGVTeXN0ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290
VGFzaz4gbV9nZXRGaWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCitjbGFzcyBHZXRGaWxlU3lzdGVt
Um9vdFRhc2s6OkdldEVudHJ5Q2FsbGJhY2sgOiBwdWJsaWMgV2ViQ29yZTo6RW50cnlDYWxsYmFj
ayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR2V0RW50cnlDYWxsYmFjayk7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNh
bGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+IGdldEZpbGVT
eXN0ZW1Sb290VGFzaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0Rmls
ZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNhbGxiYWNrKGdldEZpbGVTeXN0ZW1Sb290VGFzaykp
OworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChFbnRyeSogZW50cnkpIE9W
RVJSSURFCisgICAgeworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+Z290RW50cnko
ZW50cnkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgR2V0
RW50cnlDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5
c3RlbVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKGdldEZpbGVT
eXN0ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gbV9n
ZXRGaWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCit2b2lkIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6
c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK3sK
KyAgICBGaWxlU3lzdGVtVHlwZSB0eXBlOworICAgIGlmIChtX3R5cGUgPT0gRE9NRmlsZVN5c3Rl
bUJhc2U6OnBlcnNpc3RlbnRQYXRoUHJlZml4KQorICAgICAgICB0eXBlID0gRmlsZVN5c3RlbVR5
cGVQZXJzaXN0ZW50OworICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBET01GaWxlU3lzdGVtQmFzZTo6
dGVtcG9yYXJ5UGF0aFByZWZpeCkKKyAgICAgICAgdHlwZSA9IEZpbGVTeXN0ZW1UeXBlVGVtcG9y
YXJ5OworICAgIGVsc2UgeworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5UQVhf
RVJSLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxFbnRyeUNhbGxi
YWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkdldEVudHJ5Q2Fs
bGJhY2s6OmNyZWF0ZSh0aGlzKTsKKyAgICBSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxs
YmFjayA9IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjazo6Y3JlYXRlKHRoaXMp
OworICAgIE93blB0cjxSZXNvbHZlVVJJQ2FsbGJhY2tzPiBmaWxlU3lzdGVtQ2FsbGJhY2tzID0g
UmVzb2x2ZVVSSUNhbGxiYWNrczo6Y3JlYXRlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFj
aywgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgdHlwZSwgIi8iKTsKKworICAgIExvY2FsRmlsZVN5
c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkucmVhZEZpbGVTeXN0ZW0oc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgdHlwZSwgZmlsZVN5c3RlbUNhbGxiYWNrcy5yZWxlYXNlKCkpOworfQorCit2b2lkIEdl
dEZpbGVTeXN0ZW1Sb290VGFzazo6Z290RW50cnkoRW50cnkqIGVudHJ5KQoreworICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+IHJlc3VsdChUeXBlQnVpbGRlcjo6Rmls
ZVN5c3RlbTo6RW50cnk6OmNyZWF0ZSgpLnNldFVybChlbnRyeS0+dG9VUkwoKSkuc2V0TmFtZSgi
LyIpLnNldElzRGlyZWN0b3J5KHRydWUpKTsKKyAgICByZXBvcnRSZXN1bHQoc3RhdGljX2Nhc3Q8
RmlsZUVycm9yOjpFcnJvckNvZGU+KDApLCByZXN1bHQpOworfQorCit9CisKIC8vIHN0YXRpYwot
UGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IEluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvclN0YXRlKiBzdGF0ZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
PiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVj
dG9yU3RhdGUqIHN0YXRlKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
cGFnZUFnZW50LCBzdGF0ZSkpOwogfQogCiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6On5JbnNw
ZWN0b3JGaWxlU3lzdGVtQWdlbnQoKQpAQCAtMTAyLDYgKzIxOCwyMiBAQCB2b2lkIEluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAgbV9zdGF0ZS0+c2V0
Qm9vbGVhbihGaWxlU3lzdGVtQWdlbnRTdGF0ZTo6ZmlsZVN5c3RlbUFnZW50RW5hYmxlZCwgbV9l
bmFibGVkKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmdldEZpbGVTeXN0
ZW1Sb290KEVycm9yU3RyaW5nKiwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBpZiAoIW1fZW5hYmxlZCB8fCAhbV9mcm9udGVu
ZFByb3ZpZGVyKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQcm92aWRl
ci0+ZnJvbnRlbmQoKSk7CisKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50LT5t
YWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkp
IHsKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhvcmlnaW4pLmdldCgpKSkgeworICAgICAgICAgICAgR2V0RmlsZVN5c3Rl
bVJvb3RUYXNrOjpjcmVhdGUobV9mcm9udGVuZFByb3ZpZGVyLCByZXF1ZXN0SWQsIHR5cGUpLT5z
dGFydChmcmFtZS0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmdvdEZpbGVTeXN0
ZW1Sb290KHJlcXVlc3RJZCwgc3RhdGljX2Nhc3Q8aW50PihGaWxlRXJyb3I6OlNFQ1VSSVRZX0VS
UiksIDApOworfQorCiB2b2lkIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6c2V0RnJvbnRlbmQo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogewogICAgIEFTU0VSVChmcm9udGVuZCk7CkBA
IC0xMjMsOCArMjU1LDkgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlc3RvcmUo
KQogICAgIG1fZW5hYmxlZCA9IG1fc3RhdGUtPmdldEJvb2xlYW4oRmlsZVN5c3RlbUFnZW50U3Rh
dGU6OmZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQpOwogfQogCi1JbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCitJbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlKQogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudD4oIkZpbGVTeXN0ZW0iLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICAs
IG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICBB
U1NFUlQoaW5zdHJ1bWVudGluZ0FnZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKaW5kZXggYTYzN2ZhMGU5NzJiMWFlNzhm
ZGQ5YTQwOTJkZmUxYTFmMWJkYjE2ZS4uMGZhMTk1YjQ5YTI3YjBiOGIyMjI2N2VkM2JjNWU2MmE2
MmM5MjM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQuaApAQCAtNDAsOCArNDAsMTAgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKIGNsYXNzIERPTUZpbGVTeXN0ZW07CiBj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNz
IEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIApAQCAtNDksMTgg
KzUxLDIxIEBAIGNsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRmlsZVN5c3RlbUFnCiBwdWJsaWM6CiAgICAgY2xhc3MgRnJv
bnRlbmRQcm92aWRlcjsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOwor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudD4gY3JlYXRlKElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0ZSop
OwogICAgIHZpcnR1YWwgfkluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVy
cm9yU3RyaW5nKik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZVN5c3RlbVJvb3QoRXJyb3JT
dHJpbmcqLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiB0eXBlKSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlc3RvcmUoKTsKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOworICAgIEluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50
KiwgSW5zcGVjdG9yU3RhdGUqKTsKIAorICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdl
bnQ7CiAgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKICAg
ICBib29sIG1fZW5hYmxlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCmluZGV4IDE5NDM1NGE4OWIwNDI4NTQ3NjZk
ZTcxMzg4MjUwNTdmNmQ5MzAwNjUuLjAyOTgxNTdmMmY2YmIxOWQwNDMzMzRiZDcxNjk4MTgyOTgx
MWMxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmls
ZVN5c3RlbU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RmlsZVN5c3RlbU1vZGVsLmpzCkBAIC00MSw2ICs0MSw4IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lz
dGVtTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fZnJhbWVJZHNGb3JPcmlnaW4gPSB7fTsK
ICAgICB0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbiA9IHt9OwogCisgICAgdGhpcy5fcGVuZGlu
Z0dldEZpbGVTeXN0ZW1SZXF1ZXN0ID0ge307CisKICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
cmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwu
RXZlbnRUeXBlcy5GcmFtZUFkZGVkLCB0aGlzLl9mcmFtZUFkZGVkLCB0aGlzKTsKICAgICBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fZnJhbWVO
YXZpZ2F0ZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZy
YW1lRGV0YWNoZWQsIHRoaXMuX2ZyYW1lRGV0YWNoZWQsIHRoaXMpOwpAQCAtMTQ5LDEyICsxNTEs
MTcgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl0gPSB7fTsKIAogICAgICAgICB2YXIg
dHlwZXMgPSBbInBlcnNpc3RlbnQiLCAidGVtcG9yYXJ5Il07Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdHlwZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FKDg4NjAy
KTogQ2hlY2sgaWYgdGhlIGZpbGVzeXN0ZW0gaXMgaW5pdGlhbGl6ZWQsIGFuZCBzaG93IGl0IG9u
bHkgaWYgaXQgd2FzLgotICAgICAgICAgICAgdmFyIGZpbGVTeXN0ZW0gPSBuZXcgV2ViSW5zcGVj
dG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtKHRoaXMsIG9yaWdpbiwgdHlwZXNbaV0pOwot
ICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXVt0eXBlc1tpXV0g
PSBmaWxlU3lzdGVtOwotICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbUFkZGVkKGZpbGVTeXN0
ZW0pOwotICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICB0aGlzLmdldEZpbGVTeXN0ZW0ob3JpZ2luLCB0eXBlc1tpXSwg
dGhpcy5fZ290RmlsZVN5c3RlbS5iaW5kKHRoaXMsIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2lu
W29yaWdpbl0pKTsKKyAgICB9LAorCisgICAgX2dvdEZpbGVTeXN0ZW06IGZ1bmN0aW9uKHN0b3Jl
LCBlcnJvckNvZGUsIGZpbGVTeXN0ZW0pCisgICAgeworICAgICAgICBpZiAoZXJyb3JDb2RlICE9
PSAwIHx8IHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW2ZpbGVTeXN0ZW0ub3JpZ2luXSAhPT0g
c3RvcmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc3RvcmVbZmlsZVN5c3RlbS50
eXBlXSA9IGZpbGVTeXN0ZW07CisgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZChmaWxlU3lz
dGVtKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xODgsMTMgKzE5NSwzOSBAQCBXZWJJbnNwZWN0
b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIHJlZnJlc2hGaWxlU3lzdGVt
TGlzdDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgb3JpZ2luIGluIHRoaXMu
X2ZpbGVTeXN0ZW1zRm9yT3JpZ2luKQotICAgICAgICAgICAgZm9yICh2YXIgdHlwZSBpbiB0aGlz
Ll9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dKQotICAgICAgICAgICAgICAgIHRoaXMuX2Zp
bGVTeXN0ZW1SZW1vdmVkKHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl1bdHlwZV0p
OworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZSkg
eworICAgICAgICAgICAgdGhpcy5fZGV0YWNoRnJhbWVSZWN1cnNpdmVseShXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKKyAgICAgICAgICAgIHRoaXMuX2F0dGFjaEZy
YW1lUmVjdXJzaXZlbHkoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZSk7
CisgICAgICAgIH0KKyAgICB9LAogCi0gICAgICAgIGZvciAodmFyIG9yaWdpbiBpbiB0aGlzLl9m
aWxlU3lzdGVtc0Zvck9yaWdpbikKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGUgaW4gdGhpcy5f
ZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXSkKLSAgICAgICAgICAgICAgICB0aGlzLl9maWxl
U3lzdGVtQWRkZWQodGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXVt0eXBlXSk7Cisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbgorICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSB0eXBlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbigpfQorICAgICAqLworICAgIGdldEZp
bGVTeXN0ZW06IGZ1bmN0aW9uKG9yaWdpbiwgdHlwZSwgY2FsbGJhY2spCisgICAgeworICAgICAg
ICB2YXIgcmVxdWVzdElkID0gV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5uZXh0UmVxdWVz
dElkKys7CisgICAgICAgIHRoaXMuX3BlbmRpbmdHZXRGaWxlU3lzdGVtUmVxdWVzdFtyZXF1ZXN0
SWRdID0geworICAgICAgICAgICAgb3JpZ2luOiBvcmlnaW4sCisgICAgICAgICAgICB0eXBlOiB0
eXBlLAorICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrCisgICAgICAgIH07CisgICAgICAg
IEZpbGVTeXN0ZW1BZ2VudC5nZXRGaWxlU3lzdGVtUm9vdChyZXF1ZXN0SWQsIG9yaWdpbiwgdHlw
ZSk7CisgICAgfSwKKworICAgIGdvdEZpbGVTeXN0ZW1Sb290OiBmdW5jdGlvbihyZXF1ZXN0SWQs
IGVycm9yQ29kZSwgYmFja2VuZEVudHJ5KQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSB0
aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJlcXVlc3RbcmVxdWVzdElkXTsKKyAgICAgICAgaWYg
KCFyZXF1ZXN0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWxldGUgdGhpcy5fcGVu
ZGluZ0dldEZpbGVTeXN0ZW1SZXF1ZXN0W3JlcXVlc3RJZF07CisKKyAgICAgICAgdmFyIGZpbGVT
eXN0ZW0gPSBudWxsOworICAgICAgICBpZiAoZXJyb3JDb2RlID09PSAwKQorICAgICAgICAgICAg
ZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0o
dGhpcywgcmVxdWVzdC5vcmlnaW4sIHJlcXVlc3QudHlwZSwgYmFja2VuZEVudHJ5KTsKKyAgICAg
ICAgcmVxdWVzdC5jYWxsYmFjayhlcnJvckNvZGUsIGZpbGVTeXN0ZW0pOwogICAgIH0KIH0KIApA
QCAtMjAzLDYgKzIzNiw4IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRXZlbnRUeXBl
cyA9IHsKICAgICBGaWxlU3lzdGVtUmVtb3ZlZDogIkZpbGVTeXN0ZW1SZW1vdmVkIgogfQogCitX
ZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLm5leHRSZXF1ZXN0SWQgPSAxOworCiBXZWJJbnNw
ZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
T2JqZWN0LnByb3RvdHlwZTsKIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCA1OGU5MzYxZDdkODViM2EzMDEx
ODNkMWUzYzc4MzhhYjFhMjJlMzhjLi5jOTdjMWYyNWI3M2I0N2NiODQxMWViODMzZGU5NDE3MGNm
NzY5YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMKQEAgLTE1MjUsNyArMTUyNSw2IEBAIFdlYkluc3BlY3Rvci5GaWxl
U3lzdGVtTGlzdFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGZpbGVTeXN0
ZW1UcmVlRWxlbWVudCA9IHRoaXMuX2ZpbGVTeXN0ZW1UcmVlRWxlbWVudEJ5TmFtZShmaWxlU3lz
dGVtLm5hbWUpOwogICAgICAgICBpZiAoIWZpbGVTeXN0ZW1UcmVlRWxlbWVudCkKICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgZmlsZVN5c3RlbVRyZWVFbGVtZW50LmNsZWFyKCk7CiAgICAg
ICAgIHRoaXMucmVtb3ZlQ2hpbGQoZmlsZVN5c3RlbVRyZWVFbGVtZW50KTsKICAgICB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147037</attachid>
            <date>2012-06-12 01:40:17 -0700</date>
            <delta_ts>2012-06-12 01:44:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88602-20120612174016.patch</filename>
            <type>text/plain</type>
            <size>18751</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAyYTA2ZDRmMDA2Nzkz
YWU1YTQxYWI1YTYzODk5OTZhNjAxZGVhMC4uY2M1OWU4MWM4ZmFlYTcwYWYxZjcxNjViNjY0Yzdl
MzE3MmE5NTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTEyICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRy
b2xsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3Bw
OgorICAgICAgICAoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50OjpnZXRGaWxlU3lzdGVtUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlw
ZS5fb3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5w
cm90b3R5cGUuX2dvdEZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbC5wcm90b3R5cGUucmVmcmVzaEZpbGVTeXN0ZW1MaXN0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLmdldEZpbGVTeXN0ZW0pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUuZ290RmlsZVN5c3RlbVJv
b3QpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbUxpc3RUcmVlRWxlbWVudC5wcm90b3R5cGUu
X2ZpbGVTeXN0ZW1SZW1vdmVkKToKKwogMjAxMi0wNi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1l
c3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBEcmF3aW5nQnVmZmVy
Q2hyb21pdW0gZnJvbSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBvdmVyIHRvIFdlYkV4dGVybmFsVGV4
dHVyZUxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYTQw
NzUyNTlhZmY5Yjg3ZWIyM2JmZjI4NzE5NDkyN2U1MjFkZGU5Mi4uN2M1OTZiYTkxYWFkYmUwM2M1
NWZkMmI0YWE5NzY0YmI2ZDI2ZjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtMTQwMyw2ICsxNDAzLDE5IEBACiAgICAgewogICAgICAgICAiZG9tYWluIjog
IkZpbGVTeXN0ZW0iLAogICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKKyAgICAgICAgInR5cGVzIjog
WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJFbnRyeSIsCisgICAgICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6
IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiZmlsZXN5c3RlbTogVVJMIGZvciB0aGUgZW50cnkuIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciIH0sCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNEaXJlY3RvcnkiLCAidHlwZSI6ICJib29s
ZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgdGhlIGVudHJ5IGlzIGEgZGlyZWN0b3J5LiIg
fSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtaW1lVHlwZSIsICJ0eXBlIjogInN0
cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJNSU1FIHR5cGUgb2YgdGhl
IGVudHJ5LCBhdmFpbGFibGUgZm9yIGEgZmlsZSBvbmx5LiIgfSwKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJyZXNvdXJjZVR5cGUiLCAiJHJlZiI6ICJQYWdlLlJlc291cmNlVHlwZSIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZVR5cGUgb2YgdGhlIGVu
dHJ5LCBhdmFpbGFibGUgZm9yIGEgZmlsZSBvbmx5LiIgfQorICAgICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImVuYWJsZSIsCkBAIC0xNDExLDkgKzE0MjQs
MjYgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwK
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMgZXZlbnRzIGZyb20gYmFj
a2VuZC4uIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
bmFtZSI6ICJnZXRGaWxlU3lzdGVtUm9vdCIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlJldHVybnMgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIEZpbGVTeXN0ZW0gaWYgZXhpc3RzLiIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicmVxdWVzdElkIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJ0
ZW1wb3JhcnkiLCAicGVyc2lzdGVudCJdIH0KKyAgICAgICAgICAgICAgICBdCiAgICAgICAgICAg
ICB9CiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiZ290RmlsZVN5c3RlbVJvb3QiLAorICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJ
ZCIsICJ0eXBlIjogImludGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZXJyb3JDb2RlIiwgInR5cGUiOiAiaW50ZWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJyb290IiwgIiRyZWYiOiAiRmlsZVN5c3RlbS5FbnRyeSIsICJvcHRpb25hbCI6IHRy
dWUgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KICAgICAgICAgXQogICAgIH0s
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IGY5ZjRlNjI1NjBhNmY1ODIwM2YwNWU4MzkwNTc0ZGUyODljZWI2MjkuLjlk
YWMyZmVhNDA0Yjc2NjAxZWEwMDU2Zjc0N2Y5YzMwZmJmNzQwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTEwNyw3ICsxMDcs
NyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2Us
IEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCi0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAgIG1f
YWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlmCiAg
ICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9zdGF0ZS5nZXQoKSkpOwogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3Rv
cmFnZUFnZW50ID0gZG9tU3RvcmFnZUFnZW50UHRyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAppbmRleCAzYWZi
MjZiZjE5NDE5MTgyY2Y4YWM5ZmUzYmQxOTE3NmMxZGQyOTNjLi4xYTA5YjZiOTY0YzBhNzk3OGUw
Y2VjNjQyODVjMDc4Y2U4NjRjZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcApAQCAtMzUsOCArMzUsMTggQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIKIAogI2luY2x1ZGUgIkRPTUZpbGVT
eXN0ZW0uaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVudHJ5LmgiCisjaW5j
bHVkZSAiRW50cnlDYWxsYmFjay5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJGaWxlRXJyb3IuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNp
bmNsdWRlICJMb2NhbEZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1LDcgKzU1LDggQEAgc3RhdGljIGNvbnN0IGNo
YXIgZmlsZVN5c3RlbUFnZW50RW5hYmxlZFtdID0gImZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQiOwog
fQogCiBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OkZyb250ZW5kUHJvdmlkZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxGcm9udGVuZFByb3ZpZGVyPiB7Ci0gIHB1YmxpYzoKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShGcm9udGVuZFByb3ZpZGVyKTsKK3B1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBjcmVhdGUoSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50KiBhZ2VudCwgSW5zcGVjdG9yRnJvbnRlbmQ6OkZpbGVTeXN0ZW0qIGZyb250ZW5kKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcm9udGVuZFByb3ZpZGVyKGFnZW50LCBm
cm9udGVuZCkpOwpAQCAtNjQsNyArNzUsNyBAQCBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQ6OkZyb250ZW5kUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGcm9udGVuZFBybwogICAg
ICAgICBtX2Zyb250ZW5kID0gMDsKICAgICB9CiAKLSAgcHJpdmF0ZToKK3ByaXZhdGU6CiAgICAg
RnJvbnRlbmRQcm92aWRlcihJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQqIGFnZW50LCBJbnNwZWN0
b3JGcm9udGVuZDo6RmlsZVN5c3RlbSogZnJvbnRlbmQpCiAgICAgICAgIDogbV9hZ2VudChhZ2Vu
dCkKICAgICAgICAgLCBtX2Zyb250ZW5kKGZyb250ZW5kKSB7IH0KQEAgLTczLDEwICs4NCwxMTUg
QEAgY2xhc3MgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8RnJvbnRlbmRQcm8KICAgICBJbnNwZWN0b3JGcm9udGVuZDo6RmlsZVN5
c3RlbSogbV9mcm9udGVuZDsKIH07CiAKK25hbWVzcGFjZSB7CisKK3R5cGVkZWYgSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIEZyb250ZW5kUHJvdmlkZXI7CisKK2Ns
YXNzIEdldEZpbGVTeXN0ZW1Sb290VGFzayA6IHB1YmxpYyBSZWZDb3VudGVkPEdldEZpbGVTeXN0
ZW1Sb290VGFzaz4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdldEZpbGVTeXN0ZW1Sb290
VGFzayk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RU
YXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVy
LCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEdldEZpbGVTeXN0ZW1Sb290VGFzayhmcm9udGVuZFByb3ZpZGVyLCBy
ZXF1ZXN0SWQsIHR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBFcnJvckNhbGxiYWNrOworICAgIGNs
YXNzIEdldEVudHJ5Q2FsbGJhY2s7CisKKyAgICB2b2lkIGdvdEVudHJ5KEVudHJ5Kik7CisKKyAg
ICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiBlbnRyeSkKKyAgICB7CisgICAg
ICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250
ZW5kKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fZnJvbnRlbmRQcm92aWRlci0+
ZnJvbnRlbmQoKS0+Z290RmlsZVN5c3RlbVJvb3QobV9yZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGlu
dD4oZXJyb3JDb2RlKSwgZW50cnkpOworICAgICAgICBtX2Zyb250ZW5kUHJvdmlkZXIgPSAwOwor
ICAgIH0KKworICAgIEdldEZpbGVTeXN0ZW1Sb290VGFzayhQYXNzUmVmUHRyPEZyb250ZW5kUHJv
dmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdHlw
ZSkKKyAgICAgICAgOiBtX2Zyb250ZW5kUHJvdmlkZXIoZnJvbnRlbmRQcm92aWRlcikKKyAgICAg
ICAgLCBtX3JlcXVlc3RJZChyZXF1ZXN0SWQpCisgICAgICAgICwgbV90eXBlKHR5cGUpIHsgfQor
CisgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKKyAgICBp
bnQgbV9yZXF1ZXN0SWQ7CisgICAgU3RyaW5nIG1fdHlwZTsKK307CisKK2NsYXNzIEdldEZpbGVT
eXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBXZWJDb3JlOjpFcnJvckNhbGxi
YWNrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFcnJvckNhbGxiYWNrKTsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJh
Y2s+IGNyZWF0ZShQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5c3Rl
bVJvb3RUYXNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXRGaWxlU3lz
dGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2soZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKSk7CisgICAg
fQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KEZpbGVFcnJvciogZXJyb3IpIE9WRVJS
SURFCisgICAgeworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+cmVwb3J0UmVzdWx0
KGVycm9yLT5jb2RlKCksIDApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgRXJyb3JDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4g
Z2V0RmlsZVN5c3RlbVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNr
KGdldEZpbGVTeXN0ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290
VGFzaz4gbV9nZXRGaWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCitjbGFzcyBHZXRGaWxlU3lzdGVt
Um9vdFRhc2s6OkdldEVudHJ5Q2FsbGJhY2sgOiBwdWJsaWMgV2ViQ29yZTo6RW50cnlDYWxsYmFj
ayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR2V0RW50cnlDYWxsYmFjayk7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNh
bGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+IGdldEZpbGVT
eXN0ZW1Sb290VGFzaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0Rmls
ZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNhbGxiYWNrKGdldEZpbGVTeXN0ZW1Sb290VGFzaykp
OworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChFbnRyeSogZW50cnkpIE9W
RVJSSURFCisgICAgeworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+Z290RW50cnko
ZW50cnkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgR2V0
RW50cnlDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5
c3RlbVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKGdldEZpbGVT
eXN0ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gbV9n
ZXRGaWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCit2b2lkIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6
c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK3sK
KyAgICBGaWxlU3lzdGVtVHlwZSB0eXBlOworICAgIGlmIChtX3R5cGUgPT0gRE9NRmlsZVN5c3Rl
bUJhc2U6OnBlcnNpc3RlbnRQYXRoUHJlZml4KQorICAgICAgICB0eXBlID0gRmlsZVN5c3RlbVR5
cGVQZXJzaXN0ZW50OworICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBET01GaWxlU3lzdGVtQmFzZTo6
dGVtcG9yYXJ5UGF0aFByZWZpeCkKKyAgICAgICAgdHlwZSA9IEZpbGVTeXN0ZW1UeXBlVGVtcG9y
YXJ5OworICAgIGVsc2UgeworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5UQVhf
RVJSLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxFbnRyeUNhbGxi
YWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkdldEVudHJ5Q2Fs
bGJhY2s6OmNyZWF0ZSh0aGlzKTsKKyAgICBSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxs
YmFjayA9IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjazo6Y3JlYXRlKHRoaXMp
OworICAgIE93blB0cjxSZXNvbHZlVVJJQ2FsbGJhY2tzPiBmaWxlU3lzdGVtQ2FsbGJhY2tzID0g
UmVzb2x2ZVVSSUNhbGxiYWNrczo6Y3JlYXRlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFj
aywgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgdHlwZSwgIi8iKTsKKworICAgIExvY2FsRmlsZVN5
c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkucmVhZEZpbGVTeXN0ZW0oc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgdHlwZSwgZmlsZVN5c3RlbUNhbGxiYWNrcy5yZWxlYXNlKCkpOworfQorCit2b2lkIEdl
dEZpbGVTeXN0ZW1Sb290VGFzazo6Z290RW50cnkoRW50cnkqIGVudHJ5KQoreworICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+IHJlc3VsdChUeXBlQnVpbGRlcjo6Rmls
ZVN5c3RlbTo6RW50cnk6OmNyZWF0ZSgpLnNldFVybChlbnRyeS0+dG9VUkwoKSkuc2V0TmFtZSgi
LyIpLnNldElzRGlyZWN0b3J5KHRydWUpKTsKKyAgICByZXBvcnRSZXN1bHQoc3RhdGljX2Nhc3Q8
RmlsZUVycm9yOjpFcnJvckNvZGU+KDApLCByZXN1bHQpOworfQorCit9CisKIC8vIHN0YXRpYwot
UGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IEluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvclN0YXRlKiBzdGF0ZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
PiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVj
dG9yU3RhdGUqIHN0YXRlKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywg
cGFnZUFnZW50LCBzdGF0ZSkpOwogfQogCiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6On5JbnNw
ZWN0b3JGaWxlU3lzdGVtQWdlbnQoKQpAQCAtMTAyLDYgKzIxOCwyMiBAQCB2b2lkIEluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAgbV9zdGF0ZS0+c2V0
Qm9vbGVhbihGaWxlU3lzdGVtQWdlbnRTdGF0ZTo6ZmlsZVN5c3RlbUFnZW50RW5hYmxlZCwgbV9l
bmFibGVkKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmdldEZpbGVTeXN0
ZW1Sb290KEVycm9yU3RyaW5nKiwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBpZiAoIW1fZW5hYmxlZCB8fCAhbV9mcm9udGVu
ZFByb3ZpZGVyKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQcm92aWRl
ci0+ZnJvbnRlbmQoKSk7CisKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50LT5t
YWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkp
IHsKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhvcmlnaW4pLmdldCgpKSkgeworICAgICAgICAgICAgR2V0RmlsZVN5c3Rl
bVJvb3RUYXNrOjpjcmVhdGUobV9mcm9udGVuZFByb3ZpZGVyLCByZXF1ZXN0SWQsIHR5cGUpLT5z
dGFydChmcmFtZS0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmdvdEZpbGVTeXN0
ZW1Sb290KHJlcXVlc3RJZCwgc3RhdGljX2Nhc3Q8aW50PihGaWxlRXJyb3I6OlNFQ1VSSVRZX0VS
UiksIDApOworfQorCiB2b2lkIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6c2V0RnJvbnRlbmQo
SW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogewogICAgIEFTU0VSVChmcm9udGVuZCk7CkBA
IC0xMjMsOCArMjU1LDkgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlc3RvcmUo
KQogICAgIG1fZW5hYmxlZCA9IG1fc3RhdGUtPmdldEJvb2xlYW4oRmlsZVN5c3RlbUFnZW50U3Rh
dGU6OmZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQpOwogfQogCi1JbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCitJbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlKQogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudD4oIkZpbGVTeXN0ZW0iLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICAs
IG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICBB
U1NFUlQoaW5zdHJ1bWVudGluZ0FnZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKaW5kZXggYTYzN2ZhMGU5NzJiMWFlNzhm
ZGQ5YTQwOTJkZmUxYTFmMWJkYjE2ZS4uMGZhMTk1YjQ5YTI3YjBiOGIyMjI2N2VkM2JjNWU2MmE2
MmM5MjM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQuaApAQCAtNDAsOCArNDAsMTAgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKIGNsYXNzIERPTUZpbGVTeXN0ZW07CiBj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNsYXNz
IEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIApAQCAtNDksMTgg
KzUxLDIxIEBAIGNsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRmlsZVN5c3RlbUFnCiBwdWJsaWM6CiAgICAgY2xhc3MgRnJv
bnRlbmRQcm92aWRlcjsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOwor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudD4gY3JlYXRlKElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0ZSop
OwogICAgIHZpcnR1YWwgfkluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVy
cm9yU3RyaW5nKik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZVN5c3RlbVJvb3QoRXJyb3JT
dHJpbmcqLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiB0eXBlKSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlc3RvcmUoKTsKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOworICAgIEluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50
KiwgSW5zcGVjdG9yU3RhdGUqKTsKIAorICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdl
bnQ7CiAgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKICAg
ICBib29sIG1fZW5hYmxlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCmluZGV4IDE5NDM1NGE4OWIwNDI4NTQ3NjZk
ZTcxMzg4MjUwNTdmNmQ5MzAwNjUuLjAyOTgxNTdmMmY2YmIxOWQwNDMzMzRiZDcxNjk4MTgyOTgx
MWMxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmls
ZVN5c3RlbU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RmlsZVN5c3RlbU1vZGVsLmpzCkBAIC00MSw2ICs0MSw4IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lz
dGVtTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fZnJhbWVJZHNGb3JPcmlnaW4gPSB7fTsK
ICAgICB0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbiA9IHt9OwogCisgICAgdGhpcy5fcGVuZGlu
Z0dldEZpbGVTeXN0ZW1SZXF1ZXN0ID0ge307CisKICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
cmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwu
RXZlbnRUeXBlcy5GcmFtZUFkZGVkLCB0aGlzLl9mcmFtZUFkZGVkLCB0aGlzKTsKICAgICBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fZnJhbWVO
YXZpZ2F0ZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZy
YW1lRGV0YWNoZWQsIHRoaXMuX2ZyYW1lRGV0YWNoZWQsIHRoaXMpOwpAQCAtMTQ5LDEyICsxNTEs
MTcgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl0gPSB7fTsKIAogICAgICAgICB2YXIg
dHlwZXMgPSBbInBlcnNpc3RlbnQiLCAidGVtcG9yYXJ5Il07Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdHlwZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FKDg4NjAy
KTogQ2hlY2sgaWYgdGhlIGZpbGVzeXN0ZW0gaXMgaW5pdGlhbGl6ZWQsIGFuZCBzaG93IGl0IG9u
bHkgaWYgaXQgd2FzLgotICAgICAgICAgICAgdmFyIGZpbGVTeXN0ZW0gPSBuZXcgV2ViSW5zcGVj
dG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtKHRoaXMsIG9yaWdpbiwgdHlwZXNbaV0pOwot
ICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXVt0eXBlc1tpXV0g
PSBmaWxlU3lzdGVtOwotICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbUFkZGVkKGZpbGVTeXN0
ZW0pOwotICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICB0aGlzLmdldEZpbGVTeXN0ZW0ob3JpZ2luLCB0eXBlc1tpXSwg
dGhpcy5fZ290RmlsZVN5c3RlbS5iaW5kKHRoaXMsIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2lu
W29yaWdpbl0pKTsKKyAgICB9LAorCisgICAgX2dvdEZpbGVTeXN0ZW06IGZ1bmN0aW9uKHN0b3Jl
LCBlcnJvckNvZGUsIGZpbGVTeXN0ZW0pCisgICAgeworICAgICAgICBpZiAoZXJyb3JDb2RlICE9
PSAwIHx8IHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW2ZpbGVTeXN0ZW0ub3JpZ2luXSAhPT0g
c3RvcmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc3RvcmVbZmlsZVN5c3RlbS50
eXBlXSA9IGZpbGVTeXN0ZW07CisgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZChmaWxlU3lz
dGVtKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xODgsMTMgKzE5NSwzOSBAQCBXZWJJbnNwZWN0
b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIHJlZnJlc2hGaWxlU3lzdGVt
TGlzdDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgb3JpZ2luIGluIHRoaXMu
X2ZpbGVTeXN0ZW1zRm9yT3JpZ2luKQotICAgICAgICAgICAgZm9yICh2YXIgdHlwZSBpbiB0aGlz
Ll9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dKQotICAgICAgICAgICAgICAgIHRoaXMuX2Zp
bGVTeXN0ZW1SZW1vdmVkKHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl1bdHlwZV0p
OworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZSkg
eworICAgICAgICAgICAgdGhpcy5fZGV0YWNoRnJhbWVSZWN1cnNpdmVseShXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKKyAgICAgICAgICAgIHRoaXMuX2F0dGFjaEZy
YW1lUmVjdXJzaXZlbHkoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZSk7
CisgICAgICAgIH0KKyAgICB9LAogCi0gICAgICAgIGZvciAodmFyIG9yaWdpbiBpbiB0aGlzLl9m
aWxlU3lzdGVtc0Zvck9yaWdpbikKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGUgaW4gdGhpcy5f
ZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXSkKLSAgICAgICAgICAgICAgICB0aGlzLl9maWxl
U3lzdGVtQWRkZWQodGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXVt0eXBlXSk7Cisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbgorICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSB0eXBlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbigpfQorICAgICAqLworICAgIGdldEZp
bGVTeXN0ZW06IGZ1bmN0aW9uKG9yaWdpbiwgdHlwZSwgY2FsbGJhY2spCisgICAgeworICAgICAg
ICB2YXIgcmVxdWVzdElkID0gV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5uZXh0UmVxdWVz
dElkKys7CisgICAgICAgIHRoaXMuX3BlbmRpbmdHZXRGaWxlU3lzdGVtUmVxdWVzdFtyZXF1ZXN0
SWRdID0geworICAgICAgICAgICAgb3JpZ2luOiBvcmlnaW4sCisgICAgICAgICAgICB0eXBlOiB0
eXBlLAorICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrCisgICAgICAgIH07CisgICAgICAg
IEZpbGVTeXN0ZW1BZ2VudC5nZXRGaWxlU3lzdGVtUm9vdChyZXF1ZXN0SWQsIG9yaWdpbiwgdHlw
ZSk7CisgICAgfSwKKworICAgIGdvdEZpbGVTeXN0ZW1Sb290OiBmdW5jdGlvbihyZXF1ZXN0SWQs
IGVycm9yQ29kZSwgYmFja2VuZEVudHJ5KQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSB0
aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJlcXVlc3RbcmVxdWVzdElkXTsKKyAgICAgICAgaWYg
KCFyZXF1ZXN0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWxldGUgdGhpcy5fcGVu
ZGluZ0dldEZpbGVTeXN0ZW1SZXF1ZXN0W3JlcXVlc3RJZF07CisKKyAgICAgICAgdmFyIGZpbGVT
eXN0ZW0gPSBudWxsOworICAgICAgICBpZiAoZXJyb3JDb2RlID09PSAwKQorICAgICAgICAgICAg
ZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0o
dGhpcywgcmVxdWVzdC5vcmlnaW4sIHJlcXVlc3QudHlwZSwgYmFja2VuZEVudHJ5KTsKKyAgICAg
ICAgcmVxdWVzdC5jYWxsYmFjayhlcnJvckNvZGUsIGZpbGVTeXN0ZW0pOwogICAgIH0KIH0KIApA
QCAtMjAzLDYgKzIzNiw4IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRXZlbnRUeXBl
cyA9IHsKICAgICBGaWxlU3lzdGVtUmVtb3ZlZDogIkZpbGVTeXN0ZW1SZW1vdmVkIgogfQogCitX
ZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLm5leHRSZXF1ZXN0SWQgPSAxOworCiBXZWJJbnNw
ZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
T2JqZWN0LnByb3RvdHlwZTsKIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCA1OGU5MzYxZDdkODViM2EzMDEx
ODNkMWUzYzc4MzhhYjFhMjJlMzhjLi5jOTdjMWYyNWI3M2I0N2NiODQxMWViODMzZGU5NDE3MGNm
NzY5YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMKQEAgLTE1MjUsNyArMTUyNSw2IEBAIFdlYkluc3BlY3Rvci5GaWxl
U3lzdGVtTGlzdFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGZpbGVTeXN0
ZW1UcmVlRWxlbWVudCA9IHRoaXMuX2ZpbGVTeXN0ZW1UcmVlRWxlbWVudEJ5TmFtZShmaWxlU3lz
dGVtLm5hbWUpOwogICAgICAgICBpZiAoIWZpbGVTeXN0ZW1UcmVlRWxlbWVudCkKICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgZmlsZVN5c3RlbVRyZWVFbGVtZW50LmNsZWFyKCk7CiAgICAg
ICAgIHRoaXMucmVtb3ZlQ2hpbGQoZmlsZVN5c3RlbVRyZWVFbGVtZW50KTsKICAgICB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147038</attachid>
            <date>2012-06-12 01:44:31 -0700</date>
            <delta_ts>2012-06-12 22:48:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88602-20120612174430.patch</filename>
            <type>text/plain</type>
            <size>18526</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAyYTA2ZDRmMDA2Nzkz
YWU1YTQxYWI1YTYzODk5OTZhNjAxZGVhMC4uY2M1OWU4MWM4ZmFlYTcwYWYxZjcxNjViNjY0Yzdl
MzE3MmE5NTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTEyICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRy
b2xsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3Bw
OgorICAgICAgICAoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50OjpnZXRGaWxlU3lzdGVtUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlw
ZS5fb3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5w
cm90b3R5cGUuX2dvdEZpbGVTeXN0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbC5wcm90b3R5cGUucmVmcmVzaEZpbGVTeXN0ZW1MaXN0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLmdldEZpbGVTeXN0ZW0pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUuZ290RmlsZVN5c3RlbVJv
b3QpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbUxpc3RUcmVlRWxlbWVudC5wcm90b3R5cGUu
X2ZpbGVTeXN0ZW1SZW1vdmVkKToKKwogMjAxMi0wNi0xMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1l
c3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBEcmF3aW5nQnVmZmVy
Q2hyb21pdW0gZnJvbSBUZXh0dXJlTGF5ZXJDaHJvbWl1bSBvdmVyIHRvIFdlYkV4dGVybmFsVGV4
dHVyZUxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYTQw
NzUyNTlhZmY5Yjg3ZWIyM2JmZjI4NzE5NDkyN2U1MjFkZGU5Mi4uY2NiOGNlNTg0ZDVkMTkzZjBl
YTViMmQyNzcwYmIwM2QxMzA5ZDY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgpAQCAtMTQwMyw2ICsxNDAzLDE3IEBACiAgICAgewogICAgICAgICAiZG9tYWluIjog
IkZpbGVTeXN0ZW0iLAogICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKKyAgICAgICAgInR5cGVzIjog
WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJFbnRyeSIsCisgICAgICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6
IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiZmlsZXN5c3RlbTogVVJMIGZvciB0aGUgZW50cnkuIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciIH0sCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNEaXJlY3RvcnkiLCAidHlwZSI6ICJib29s
ZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgaWYgdGhlIGVudHJ5IGlzIGEgZGlyZWN0b3J5LiIg
fQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKICAgICAgICAg
ImNvbW1hbmRzIjogWwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImVu
YWJsZSIsCkBAIC0xNDExLDkgKzE0MjIsMjYgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAibmFtZSI6ICJkaXNhYmxlIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RGlzYWJsZXMgZXZlbnRzIGZyb20gYmFja2VuZC4uIgorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRGaWxlU3lzdGVtUm9vdCIsCisgICAg
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgcm9vdCBkaXJlY3Rvcnkgb2YgdGhl
IEZpbGVTeXN0ZW0gaWYgZXhpc3RzLiIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgInR5cGUiOiAiaW50
ZWdlciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6
ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBl
IjogInN0cmluZyIsICJlbnVtIjogWyJ0ZW1wb3JhcnkiLCAicGVyc2lzdGVudCJdIH0KKyAgICAg
ICAgICAgICAgICBdCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMi
OiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ290RmlsZVN5c3Rl
bVJvb3QiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICJ0eXBlIjogImludGVnZXIiIH0sCisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXJyb3JDb2RlIiwgInR5cGUiOiAiaW50ZWdlciIsICJk
ZXNjcmlwdGlvbiI6ICIwLCBpZiBubyBlcnJvci4gT3RoZXJ3aXNlLCBlcnJvckNvZGUgaXMgc2V0
IHRvIEZpbGVFcnJvcjo6RXJyb3JDb2RlIHZhbHVlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJyb290IiwgIiRyZWYiOiAiRmlsZVN5c3RlbS5FbnRyeSIsICJvcHRpb25hbCI6
IHRydWUgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0KICAgICAgICAgXQogICAg
IH0sCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IGY5ZjRlNjI1NjBhNmY1ODIwM2YwNWU4MzkwNTc0ZGUyODljZWI2Mjku
LjlkYWMyZmVhNDA0Yjc2NjAxZWEwMDU2Zjc0N2Y5YzMwZmJmNzQwMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTEwNyw3ICsx
MDcsNyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBh
Z2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRklM
RV9TWVNURU0pCi0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAg
IG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlm
CiAgICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRy
KEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOwogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9t
U3RvcmFnZUFnZW50ID0gZG9tU3RvcmFnZUFnZW50UHRyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAppbmRleCAz
YWZiMjZiZjE5NDE5MTgyY2Y4YWM5ZmUzYmQxOTE3NmMxZGQyOTNjLi4xYTA5YjZiOTY0YzBhNzk3
OGUwY2VjNjQyODVjMDc4Y2U4NjRjZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcApAQCAtMzUsOCArMzUsMTggQEAK
ICNpbmNsdWRlICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIKIAogI2luY2x1ZGUgIkRPTUZp
bGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVudHJ5LmgiCisj
aW5jbHVkZSAiRW50cnlDYWxsYmFjay5oIgorI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2suaCIKKyNp
bmNsdWRlICJGaWxlRXJyb3IuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIK
KyNpbmNsdWRlICJMb2NhbEZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1LDcgKzU1LDggQEAgc3RhdGljIGNvbnN0
IGNoYXIgZmlsZVN5c3RlbUFnZW50RW5hYmxlZFtdID0gImZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQi
OwogfQogCiBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OkZyb250ZW5kUHJvdmlkZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxGcm9udGVuZFByb3ZpZGVyPiB7Ci0gIHB1YmxpYzoKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShGcm9udGVuZFByb3ZpZGVyKTsKK3B1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBjcmVhdGUoSW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50KiBhZ2VudCwgSW5zcGVjdG9yRnJvbnRlbmQ6OkZpbGVTeXN0ZW0qIGZyb250ZW5kKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcm9udGVuZFByb3ZpZGVyKGFnZW50
LCBmcm9udGVuZCkpOwpAQCAtNjQsNyArNzUsNyBAQCBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQ6OkZyb250ZW5kUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGcm9udGVuZFBybwog
ICAgICAgICBtX2Zyb250ZW5kID0gMDsKICAgICB9CiAKLSAgcHJpdmF0ZToKK3ByaXZhdGU6CiAg
ICAgRnJvbnRlbmRQcm92aWRlcihJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQqIGFnZW50LCBJbnNw
ZWN0b3JGcm9udGVuZDo6RmlsZVN5c3RlbSogZnJvbnRlbmQpCiAgICAgICAgIDogbV9hZ2VudChh
Z2VudCkKICAgICAgICAgLCBtX2Zyb250ZW5kKGZyb250ZW5kKSB7IH0KQEAgLTczLDEwICs4NCwx
MTUgQEAgY2xhc3MgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8RnJvbnRlbmRQcm8KICAgICBJbnNwZWN0b3JGcm9udGVuZDo6Rmls
ZVN5c3RlbSogbV9mcm9udGVuZDsKIH07CiAKK25hbWVzcGFjZSB7CisKK3R5cGVkZWYgSW5zcGVj
dG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIEZyb250ZW5kUHJvdmlkZXI7CisK
K2NsYXNzIEdldEZpbGVTeXN0ZW1Sb290VGFzayA6IHB1YmxpYyBSZWZDb3VudGVkPEdldEZpbGVT
eXN0ZW1Sb290VGFzaz4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdldEZpbGVTeXN0ZW1S
b290VGFzayk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJv
b3RUYXNrPiBjcmVhdGUoUGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3Zp
ZGVyLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEdldEZpbGVTeXN0ZW1Sb290VGFzayhmcm9udGVuZFByb3ZpZGVy
LCByZXF1ZXN0SWQsIHR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBFcnJvckNhbGxiYWNrOworICAg
IGNsYXNzIEdldEVudHJ5Q2FsbGJhY2s7CisKKyAgICB2b2lkIGdvdEVudHJ5KEVudHJ5Kik7CisK
KyAgICB2b2lkIHJlcG9ydFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiBlbnRyeSkKKyAgICB7Cisg
ICAgICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXItPmZy
b250ZW5kKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fZnJvbnRlbmRQcm92aWRl
ci0+ZnJvbnRlbmQoKS0+Z290RmlsZVN5c3RlbVJvb3QobV9yZXF1ZXN0SWQsIHN0YXRpY19jYXN0
PGludD4oZXJyb3JDb2RlKSwgZW50cnkpOworICAgICAgICBtX2Zyb250ZW5kUHJvdmlkZXIgPSAw
OworICAgIH0KKworICAgIEdldEZpbGVTeXN0ZW1Sb290VGFzayhQYXNzUmVmUHRyPEZyb250ZW5k
UHJvdmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYg
dHlwZSkKKyAgICAgICAgOiBtX2Zyb250ZW5kUHJvdmlkZXIoZnJvbnRlbmRQcm92aWRlcikKKyAg
ICAgICAgLCBtX3JlcXVlc3RJZChyZXF1ZXN0SWQpCisgICAgICAgICwgbV90eXBlKHR5cGUpIHsg
fQorCisgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKKyAg
ICBpbnQgbV9yZXF1ZXN0SWQ7CisgICAgU3RyaW5nIG1fdHlwZTsKK307CisKK2NsYXNzIEdldEZp
bGVTeXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBXZWJDb3JlOjpFcnJvckNh
bGxiYWNrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFcnJvckNhbGxiYWNrKTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2Fs
bGJhY2s+IGNyZWF0ZShQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5
c3RlbVJvb3RUYXNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXRGaWxl
U3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2soZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KEZpbGVFcnJvciogZXJyb3IpIE9W
RVJSSURFCisgICAgeworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+cmVwb3J0UmVz
dWx0KGVycm9yLT5jb2RlKCksIDApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgRXJyb3JDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFz
az4gZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RU
YXNrKGdldEZpbGVTeXN0ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1S
b290VGFzaz4gbV9nZXRGaWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCitjbGFzcyBHZXRGaWxlU3lz
dGVtUm9vdFRhc2s6OkdldEVudHJ5Q2FsbGJhY2sgOiBwdWJsaWMgV2ViQ29yZTo6RW50cnlDYWxs
YmFjayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR2V0RW50cnlDYWxsYmFjayk7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRy
eUNhbGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+IGdldEZp
bGVTeXN0ZW1Sb290VGFzaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0
RmlsZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNhbGxiYWNrKGdldEZpbGVTeXN0ZW1Sb290VGFz
aykpOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChFbnRyeSogZW50cnkp
IE9WRVJSSURFCisgICAgeworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+Z290RW50
cnkoZW50cnkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
R2V0RW50cnlDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0Rmls
ZVN5c3RlbVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKGdldEZp
bGVTeXN0ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4g
bV9nZXRGaWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCit2b2lkIEdldEZpbGVTeXN0ZW1Sb290VGFz
azo6c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkK
K3sKKyAgICBGaWxlU3lzdGVtVHlwZSB0eXBlOworICAgIGlmIChtX3R5cGUgPT0gRE9NRmlsZVN5
c3RlbUJhc2U6OnBlcnNpc3RlbnRQYXRoUHJlZml4KQorICAgICAgICB0eXBlID0gRmlsZVN5c3Rl
bVR5cGVQZXJzaXN0ZW50OworICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBET01GaWxlU3lzdGVtQmFz
ZTo6dGVtcG9yYXJ5UGF0aFByZWZpeCkKKyAgICAgICAgdHlwZSA9IEZpbGVTeXN0ZW1UeXBlVGVt
cG9yYXJ5OworICAgIGVsc2UgeworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5U
QVhfRVJSLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxFbnRyeUNh
bGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkdldEVudHJ5
Q2FsbGJhY2s6OmNyZWF0ZSh0aGlzKTsKKyAgICBSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JD
YWxsYmFjayA9IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjazo6Y3JlYXRlKHRo
aXMpOworICAgIE93blB0cjxSZXNvbHZlVVJJQ2FsbGJhY2tzPiBmaWxlU3lzdGVtQ2FsbGJhY2tz
ID0gUmVzb2x2ZVVSSUNhbGxiYWNrczo6Y3JlYXRlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxs
YmFjaywgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgdHlwZSwgIi8iKTsKKworICAgIExvY2FsRmls
ZVN5c3RlbTo6bG9jYWxGaWxlU3lzdGVtKCkucmVhZEZpbGVTeXN0ZW0oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgdHlwZSwgZmlsZVN5c3RlbUNhbGxiYWNrcy5yZWxlYXNlKCkpOworfQorCit2b2lk
IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6Z290RW50cnkoRW50cnkqIGVudHJ5KQoreworICAgIFJl
ZlB0cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+IHJlc3VsdChUeXBlQnVpbGRlcjo6
RmlsZVN5c3RlbTo6RW50cnk6OmNyZWF0ZSgpLnNldFVybChlbnRyeS0+dG9VUkwoKSkuc2V0TmFt
ZSgiLyIpLnNldElzRGlyZWN0b3J5KHRydWUpKTsKKyAgICByZXBvcnRSZXN1bHQoc3RhdGljX2Nh
c3Q8RmlsZUVycm9yOjpFcnJvckNvZGU+KDApLCByZXN1bHQpOworfQorCit9CisKIC8vIHN0YXRp
YwotUGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IEluc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50PiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5z
cGVjdG9yU3RhdGUqIHN0YXRlKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgcGFnZUFnZW50LCBzdGF0ZSkpOwogfQogCiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6On5J
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoKQpAQCAtMTAyLDYgKzIxOCwyMiBAQCB2b2lkIEluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAgbV9zdGF0ZS0+
c2V0Qm9vbGVhbihGaWxlU3lzdGVtQWdlbnRTdGF0ZTo6ZmlsZVN5c3RlbUFnZW50RW5hYmxlZCwg
bV9lbmFibGVkKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmdldEZpbGVT
eXN0ZW1Sb290KEVycm9yU3RyaW5nKiwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBpZiAoIW1fZW5hYmxlZCB8fCAhbV9mcm9u
dGVuZFByb3ZpZGVyKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fZnJvbnRlbmRQcm92
aWRlci0+ZnJvbnRlbmQoKSk7CisKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50
LT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0
KCkpIHsKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4pLmdldCgpKSkgeworICAgICAgICAgICAgR2V0RmlsZVN5
c3RlbVJvb3RUYXNrOjpjcmVhdGUobV9mcm9udGVuZFByb3ZpZGVyLCByZXF1ZXN0SWQsIHR5cGUp
LT5zdGFydChmcmFtZS0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmdvdEZpbGVT
eXN0ZW1Sb290KHJlcXVlc3RJZCwgc3RhdGljX2Nhc3Q8aW50PihGaWxlRXJyb3I6OlNFQ1VSSVRZ
X0VSUiksIDApOworfQorCiB2b2lkIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6c2V0RnJvbnRl
bmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogewogICAgIEFTU0VSVChmcm9udGVuZCk7
CkBAIC0xMjMsOCArMjU1LDkgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OnJlc3Rv
cmUoKQogICAgIG1fZW5hYmxlZCA9IG1fc3RhdGUtPmdldEJvb2xlYW4oRmlsZVN5c3RlbUFnZW50
U3RhdGU6OmZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQpOwogfQogCi1JbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCitJbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVj
dG9yU3RhdGUqIHN0YXRlKQogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckZpbGVT
eXN0ZW1BZ2VudD4oIkZpbGVTeXN0ZW0iLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKKyAg
ICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAg
ICBBU1NFUlQoaW5zdHJ1bWVudGluZ0FnZW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKaW5kZXggYTYzN2ZhMGU5NzJiMWFl
NzhmZGQ5YTQwOTJkZmUxYTFmMWJkYjE2ZS4uMGZhMTk1YjQ5YTI3YjBiOGIyMjI2N2VkM2JjNWU2
MmE2MmM5MjM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGaWxlU3lzdGVtQWdlbnQuaApAQCAtNDAsOCArNDAsMTAgQEAKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKIGNsYXNzIERPTUZpbGVTeXN0ZW07
CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKIGNs
YXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIApAQCAtNDks
MTggKzUxLDIxIEBAIGNsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCA6IHB1YmxpYyBJbnNw
ZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRmlsZVN5c3RlbUFnCiBwdWJsaWM6CiAgICAgY2xhc3Mg
RnJvbnRlbmRQcm92aWRlcjsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckZpbGVT
eXN0ZW1BZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSop
OworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudD4gY3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0
ZSopOwogICAgIHZpcnR1YWwgfkluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCgpOwogCiAgICAgdmly
dHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxl
KEVycm9yU3RyaW5nKik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZVN5c3RlbVJvb3QoRXJy
b3JTdHJpbmcqLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3Ry
aW5nJiB0eXBlKSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNw
ZWN0b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlc3RvcmUoKTsKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOworICAgIEluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFn
ZW50KiwgSW5zcGVjdG9yU3RhdGUqKTsKIAorICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdl
QWdlbnQ7CiAgICAgUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsK
ICAgICBib29sIG1fZW5hYmxlZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCmluZGV4IDE5NDM1NGE4OWIwNDI4NTQ3
NjZkZTcxMzg4MjUwNTdmNmQ5MzAwNjUuLjAyOTgxNTdmMmY2YmIxOWQwNDMzMzRiZDcxNjk4MTgy
OTgxMWMxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RmlsZVN5c3RlbU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRmlsZVN5c3RlbU1vZGVsLmpzCkBAIC00MSw2ICs0MSw4IEBAIFdlYkluc3BlY3Rvci5GaWxl
U3lzdGVtTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fZnJhbWVJZHNGb3JPcmlnaW4gPSB7
fTsKICAgICB0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbiA9IHt9OwogCisgICAgdGhpcy5fcGVu
ZGluZ0dldEZpbGVTeXN0ZW1SZXF1ZXN0ID0ge307CisKICAgICBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9k
ZWwuRXZlbnRUeXBlcy5GcmFtZUFkZGVkLCB0aGlzLl9mcmFtZUFkZGVkLCB0aGlzKTsKICAgICBX
ZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fZnJh
bWVOYXZpZ2F0ZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVz
LkZyYW1lRGV0YWNoZWQsIHRoaXMuX2ZyYW1lRGV0YWNoZWQsIHRoaXMpOwpAQCAtMTQ5LDEyICsx
NTEsMTcgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl0gPSB7fTsKIAogICAgICAgICB2
YXIgdHlwZXMgPSBbInBlcnNpc3RlbnQiLCAidGVtcG9yYXJ5Il07Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FKDg4
NjAyKTogQ2hlY2sgaWYgdGhlIGZpbGVzeXN0ZW0gaXMgaW5pdGlhbGl6ZWQsIGFuZCBzaG93IGl0
IG9ubHkgaWYgaXQgd2FzLgotICAgICAgICAgICAgdmFyIGZpbGVTeXN0ZW0gPSBuZXcgV2ViSW5z
cGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtKHRoaXMsIG9yaWdpbiwgdHlwZXNbaV0p
OwotICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXVt0eXBlc1tp
XV0gPSBmaWxlU3lzdGVtOwotICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbUFkZGVkKGZpbGVT
eXN0ZW0pOwotICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVu
Z3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLmdldEZpbGVTeXN0ZW0ob3JpZ2luLCB0eXBlc1tp
XSwgdGhpcy5fZ290RmlsZVN5c3RlbS5iaW5kKHRoaXMsIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3Jp
Z2luW29yaWdpbl0pKTsKKyAgICB9LAorCisgICAgX2dvdEZpbGVTeXN0ZW06IGZ1bmN0aW9uKHN0
b3JlLCBlcnJvckNvZGUsIGZpbGVTeXN0ZW0pCisgICAgeworICAgICAgICBpZiAoZXJyb3JDb2Rl
ICE9PSAwIHx8IHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW2ZpbGVTeXN0ZW0ub3JpZ2luXSAh
PT0gc3RvcmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc3RvcmVbZmlsZVN5c3Rl
bS50eXBlXSA9IGZpbGVTeXN0ZW07CisgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZChmaWxl
U3lzdGVtKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xODgsMTMgKzE5NSwzOSBAQCBXZWJJbnNw
ZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIHJlZnJlc2hGaWxlU3lz
dGVtTGlzdDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgb3JpZ2luIGluIHRo
aXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luKQotICAgICAgICAgICAgZm9yICh2YXIgdHlwZSBpbiB0
aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dKQotICAgICAgICAgICAgICAgIHRoaXMu
X2ZpbGVTeXN0ZW1SZW1vdmVkKHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl1bdHlw
ZV0pOworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFt
ZSkgeworICAgICAgICAgICAgdGhpcy5fZGV0YWNoRnJhbWVSZWN1cnNpdmVseShXZWJJbnNwZWN0
b3IucmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKKyAgICAgICAgICAgIHRoaXMuX2F0dGFj
aEZyYW1lUmVjdXJzaXZlbHkoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFt
ZSk7CisgICAgICAgIH0KKyAgICB9LAogCi0gICAgICAgIGZvciAodmFyIG9yaWdpbiBpbiB0aGlz
Ll9maWxlU3lzdGVtc0Zvck9yaWdpbikKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGUgaW4gdGhp
cy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXSkKLSAgICAgICAgICAgICAgICB0aGlzLl9m
aWxlU3lzdGVtQWRkZWQodGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXVt0eXBlXSk7
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbgorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSB0eXBlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbigpfQorICAgICAqLworICAgIGdl
dEZpbGVTeXN0ZW06IGZ1bmN0aW9uKG9yaWdpbiwgdHlwZSwgY2FsbGJhY2spCisgICAgeworICAg
ICAgICB2YXIgcmVxdWVzdElkID0gV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5uZXh0UmVx
dWVzdElkKys7CisgICAgICAgIHRoaXMuX3BlbmRpbmdHZXRGaWxlU3lzdGVtUmVxdWVzdFtyZXF1
ZXN0SWRdID0geworICAgICAgICAgICAgb3JpZ2luOiBvcmlnaW4sCisgICAgICAgICAgICB0eXBl
OiB0eXBlLAorICAgICAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrCisgICAgICAgIH07CisgICAg
ICAgIEZpbGVTeXN0ZW1BZ2VudC5nZXRGaWxlU3lzdGVtUm9vdChyZXF1ZXN0SWQsIG9yaWdpbiwg
dHlwZSk7CisgICAgfSwKKworICAgIGdvdEZpbGVTeXN0ZW1Sb290OiBmdW5jdGlvbihyZXF1ZXN0
SWQsIGVycm9yQ29kZSwgYmFja2VuZEVudHJ5KQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3Qg
PSB0aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJlcXVlc3RbcmVxdWVzdElkXTsKKyAgICAgICAg
aWYgKCFyZXF1ZXN0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWxldGUgdGhpcy5f
cGVuZGluZ0dldEZpbGVTeXN0ZW1SZXF1ZXN0W3JlcXVlc3RJZF07CisKKyAgICAgICAgdmFyIGZp
bGVTeXN0ZW0gPSBudWxsOworICAgICAgICBpZiAoZXJyb3JDb2RlID09PSAwKQorICAgICAgICAg
ICAgZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0
ZW0odGhpcywgcmVxdWVzdC5vcmlnaW4sIHJlcXVlc3QudHlwZSwgYmFja2VuZEVudHJ5KTsKKyAg
ICAgICAgcmVxdWVzdC5jYWxsYmFjayhlcnJvckNvZGUsIGZpbGVTeXN0ZW0pOwogICAgIH0KIH0K
IApAQCAtMjAzLDYgKzIzNiw4IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRXZlbnRU
eXBlcyA9IHsKICAgICBGaWxlU3lzdGVtUmVtb3ZlZDogIkZpbGVTeXN0ZW1SZW1vdmVkIgogfQog
CitXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLm5leHRSZXF1ZXN0SWQgPSAxOworCiBXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0
b3IuT2JqZWN0LnByb3RvdHlwZTsKIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCA1OGU5MzYxZDdkODViM2Ez
MDExODNkMWUzYzc4MzhhYjFhMjJlMzhjLi5jOTdjMWYyNWI3M2I0N2NiODQxMWViODMzZGU5NDE3
MGNmNzY5YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTE1MjUsNyArMTUyNSw2IEBAIFdlYkluc3BlY3Rvci5G
aWxlU3lzdGVtTGlzdFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGZpbGVT
eXN0ZW1UcmVlRWxlbWVudCA9IHRoaXMuX2ZpbGVTeXN0ZW1UcmVlRWxlbWVudEJ5TmFtZShmaWxl
U3lzdGVtLm5hbWUpOwogICAgICAgICBpZiAoIWZpbGVTeXN0ZW1UcmVlRWxlbWVudCkKICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgZmlsZVN5c3RlbVRyZWVFbGVtZW50LmNsZWFyKCk7CiAg
ICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQoZmlsZVN5c3RlbVRyZWVFbGVtZW50KTsKICAgICB9LAog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147237</attachid>
            <date>2012-06-12 22:48:19 -0700</date>
            <delta_ts>2012-06-14 00:31:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88602-20120613144818.patch</filename>
            <type>text/plain</type>
            <size>20120</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg1NTkxZDc1OTM1ZTY1
YjFmNDE2MDUyMjdiNzZhZmE1ZTE4ZjUxNi4uOTgzM2NhZTMxOTYzOTM0MmM2NWQ2MzJmYmQ4ODk5
NTllM2JlZmNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTEyICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpG
cm9udGVuZFByb3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50OjpnZXRGaWxlU3lzdGVtUm9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5
c3RlbU1vZGVsLnByb3RvdHlwZS5fb3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUuX2dvdEZpbGVTeXN0ZW0pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUucmVmcmVzaEZpbGVTeXN0ZW1MaXN0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLmdldEZp
bGVTeXN0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5
cGUuZ290RmlsZVN5c3RlbVJvb3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1N
b2RlbC5GaWxlU3lzdGVtKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1MaXN0VHJlZUVsZW1l
bnQucHJvdG90eXBlLl9maWxlU3lzdGVtUmVtb3ZlZCk6CisKIDIwMTItMDYtMTIgIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgU2hhZG93IFBzZXVkbyBJRCBz
aG91bGQgYmUgYWJsZSB0byBuZXN0IHRvIHBvaW50IG5lc3RlZCBzaGFkb3cgRE9NLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGE0MDc1MjU5YWZmOWI4N2ViMjNi
ZmYyODcxOTQ5MjdlNTIxZGRlOTIuLjMzOTliODYyYWE0MmU0ZjA2ZmI4NzhmZTkzZDBmYTFjOWFj
ZmNmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTE0MDMs
NiArMTQwMywxNyBAQAogICAgIHsKICAgICAgICAgImRvbWFpbiI6ICJGaWxlU3lzdGVtIiwKICAg
ICAgICAgImhpZGRlbiI6IHRydWUsCisgICAgICAgICJ0eXBlcyI6IFsKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAiaWQiOiAiRW50cnkiLAorICAgICAgICAgICAgICAgICJ0eXBlIjog
Im9iamVjdCIsCisgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
ImZpbGVzeXN0ZW06IFVSTCBmb3IgdGhlIGVudHJ5LiIgfSwKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiB9LAorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImlzRGlyZWN0b3J5IiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlv
biI6ICJUcnVlIGlmIHRoZSBlbnRyeSBpcyBhIGRpcmVjdG9yeS4iIH0KKyAgICAgICAgICAgICAg
ICBdCisgICAgICAgICAgICB9CisgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5kcyI6IFsKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiLApAQCAtMTQxMCwx
MCArMTQyMSwyNyBAQAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAibmFtZSI6ICJkaXNhYmxlIiwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RGlzYWJsZXMgZXZlbnRzIGZyb20gYmFja2VuZC4uIgorICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJEaXNhYmxlcyBldmVudHMgZnJvbSBiYWNrZW5kLiIKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0RmlsZVN5c3RlbVJvb3Qi
LAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHJvb3QgZGlyZWN0b3J5
IG9mIHRoZSBGaWxlU3lzdGVtIGlmIGV4aXN0cy4iLAorICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICJ0eXBl
IjogImludGVnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3JpZ2luIiwg
InR5cGUiOiAic3RyaW5nIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUi
LCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsidGVtcG9yYXJ5IiwgInBlcnNpc3RlbnQiXSB9
CisgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAi
ZXZlbnRzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdvdEZp
bGVTeXN0ZW1Sb290IiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0SWQiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAor
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVycm9yQ29kZSIsICJ0eXBlIjogImludGVn
ZXIiLCAiZGVzY3JpcHRpb24iOiAiMCwgaWYgbm8gZXJyb3IuIE90aGVyd2lzZSwgZXJyb3JDb2Rl
IGlzIHNldCB0byBGaWxlRXJyb3I6OkVycm9yQ29kZSB2YWx1ZS4iIH0sCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicm9vdCIsICIkcmVmIjogIkZpbGVTeXN0ZW0uRW50cnkiLCAib3B0
aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9CiAgICAgICAg
IF0KICAgICB9LAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAppbmRleCBmOWY0ZTYyNTYwYTZmNTgyMDNmMDVlODM5MDU3NGRlMjg5
Y2ViNjI5Li45ZGFjMmZlYTQwNGI3NjYwMWVhMDA1NmY3NDdmOWMzMGZiZjc0MDM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0x
MDcsNyArMTA3LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQ
YWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICNlbmRpZgogCiAjaWYgRU5B
QkxFKEZJTEVfU1lTVEVNKQotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkp
KTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIG1fc3RhdGUuZ2V0KCkpKTsK
ICNlbmRpZgogICAgIE93blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGRvbVN0b3JhZ2VB
Z2VudFB0cihJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKICAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGRvbVN0b3JhZ2VBZ2VudFB0ci5nZXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAK
aW5kZXggM2FmYjI2YmYxOTQxOTE4MmNmOGFjOWZlM2JkMTkxNzZjMWRkMjkzYy4uZDhjZWVmZWQ1
MWFkYmNlMTc1OTNlZTZhNzQzYjU5MzE1ZTk1MzVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM1LDgg
KzM1LDE4IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgiCiAKICNpbmNs
dWRlICJET01GaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJF
bnRyeS5oIgorI2luY2x1ZGUgIkVudHJ5Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJFcnJvckNhbGxi
YWNrLmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxi
YWNrcy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmgiCisjaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NSw3ICs1NSw4IEBAIHN0
YXRpYyBjb25zdCBjaGFyIGZpbGVTeXN0ZW1BZ2VudEVuYWJsZWRbXSA9ICJmaWxlU3lzdGVtQWdl
bnRFbmFibGVkIjsKIH0KIAogY2xhc3MgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVu
ZFByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RnJvbnRlbmRQcm92aWRlcj4gewotICBwdWJs
aWM6CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRnJvbnRlbmRQcm92aWRlcik7CitwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gY3JlYXRlKEluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudCogYWdlbnQsIEluc3BlY3RvckZyb250ZW5kOjpGaWxlU3lzdGVtKiBm
cm9udGVuZCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRnJvbnRlbmRQcm92
aWRlcihhZ2VudCwgZnJvbnRlbmQpKTsKQEAgLTY0LDcgKzc1LDcgQEAgY2xhc3MgSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RnJv
bnRlbmRQcm8KICAgICAgICAgbV9mcm9udGVuZCA9IDA7CiAgICAgfQogCi0gIHByaXZhdGU6Citw
cml2YXRlOgogICAgIEZyb250ZW5kUHJvdmlkZXIoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KiBh
Z2VudCwgSW5zcGVjdG9yRnJvbnRlbmQ6OkZpbGVTeXN0ZW0qIGZyb250ZW5kKQogICAgICAgICA6
IG1fYWdlbnQoYWdlbnQpCiAgICAgICAgICwgbV9mcm9udGVuZChmcm9udGVuZCkgeyB9CkBAIC03
MywxMCArODQsMTE1IEBAIGNsYXNzIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6RnJvbnRlbmRQ
cm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPEZyb250ZW5kUHJvCiAgICAgSW5zcGVjdG9yRnJv
bnRlbmQ6OkZpbGVTeXN0ZW0qIG1fZnJvbnRlbmQ7CiB9OwogCit0eXBlZGVmIEluc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudDo6RnJvbnRlbmRQcm92aWRlciBGcm9udGVuZFByb3ZpZGVyOworCituYW1l
c3BhY2UgeworCitjbGFzcyBHZXRGaWxlU3lzdGVtUm9vdFRhc2sgOiBwdWJsaWMgUmVmQ291bnRl
ZDxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHZXRG
aWxlU3lzdGVtUm9vdFRhc2spOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdldEZp
bGVTeXN0ZW1Sb290VGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gZnJv
bnRlbmRQcm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiB0eXBlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXRGaWxlU3lzdGVtUm9vdFRhc2soZnJvbnRl
bmRQcm92aWRlciwgcmVxdWVzdElkLCB0eXBlKSk7CisgICAgfQorCisgICAgdm9pZCBzdGFydChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgY2xhc3MgRXJyb3JDYWxs
YmFjazsKKyAgICBjbGFzcyBHZXRFbnRyeUNhbGxiYWNrOworCisgICAgdm9pZCBnb3RFbnRyeShF
bnRyeSopOworCisgICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJy
b3JDb2RlLCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4gZW50cnkp
CisgICAgeworICAgICAgICBpZiAoIW1fZnJvbnRlbmRQcm92aWRlciB8fCAhbV9mcm9udGVuZFBy
b3ZpZGVyLT5mcm9udGVuZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2Zyb250
ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmdvdEZpbGVTeXN0ZW1Sb290KG1fcmVxdWVzdElkLCBz
dGF0aWNfY2FzdDxpbnQ+KGVycm9yQ29kZSksIGVudHJ5KTsKKyAgICAgICAgbV9mcm9udGVuZFBy
b3ZpZGVyID0gMDsKKyAgICB9CisKKyAgICBHZXRGaWxlU3lzdGVtUm9vdFRhc2soUGFzc1JlZlB0
cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVyLCBpbnQgcmVxdWVzdElkLCBjb25z
dCBTdHJpbmcmIHR5cGUpCisgICAgICAgIDogbV9mcm9udGVuZFByb3ZpZGVyKGZyb250ZW5kUHJv
dmlkZXIpCisgICAgICAgICwgbV9yZXF1ZXN0SWQocmVxdWVzdElkKQorICAgICAgICAsIG1fdHlw
ZSh0eXBlKSB7IH0KKworICAgIFJlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBtX2Zyb250ZW5kUHJv
dmlkZXI7CisgICAgaW50IG1fcmVxdWVzdElkOworICAgIFN0cmluZyBtX3R5cGU7Cit9OworCitj
bGFzcyBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2sgOiBwdWJsaWMgV2ViQ29y
ZTo6RXJyb3JDYWxsYmFjayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRXJyb3JDYWxsYmFj
ayk7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNr
OjpFcnJvckNhbGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+
IGdldEZpbGVTeXN0ZW1Sb290VGFzaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgR2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpFcnJvckNhbGxiYWNrKGdldEZpbGVTeXN0ZW1Sb290
VGFzaykpOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChGaWxlRXJyb3Iq
IGVycm9yKSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9nZXRGaWxlU3lzdGVtUm9vdFRhc2st
PnJlcG9ydFJlc3VsdChlcnJvci0+Y29kZSgpLCAwKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEVycm9yQ2FsbGJhY2soUGFzc1JlZlB0cjxHZXRGaWxlU3lz
dGVtUm9vdFRhc2s+IGdldEZpbGVTeXN0ZW1Sb290VGFzaykKKyAgICAgICAgOiBtX2dldEZpbGVT
eXN0ZW1Sb290VGFzayhnZXRGaWxlU3lzdGVtUm9vdFRhc2spIHsgfQorICAgIFJlZlB0cjxHZXRG
aWxlU3lzdGVtUm9vdFRhc2s+IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrOworfTsKKworY2xhc3Mg
R2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNhbGxiYWNrIDogcHVibGljIFdlYkNvcmU6
OkVudHJ5Q2FsbGJhY2sgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdldEVudHJ5Q2FsbGJh
Y2spOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFz
azo6R2V0RW50cnlDYWxsYmFjaz4gY3JlYXRlKFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RU
YXNrPiBnZXRGaWxlU3lzdGVtUm9vdFRhc2spCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6R2V0RW50cnlDYWxsYmFjayhnZXRGaWxlU3lz
dGVtUm9vdFRhc2spKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoRW50
cnkqIGVudHJ5KSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9nZXRGaWxlU3lzdGVtUm9vdFRh
c2stPmdvdEVudHJ5KGVudHJ5KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitwcml2
YXRlOgorICAgIEdldEVudHJ5Q2FsbGJhY2soUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRh
c2s+IGdldEZpbGVTeXN0ZW1Sb290VGFzaykKKyAgICAgICAgOiBtX2dldEZpbGVTeXN0ZW1Sb290
VGFzayhnZXRGaWxlU3lzdGVtUm9vdFRhc2spIHsgfQorICAgIFJlZlB0cjxHZXRGaWxlU3lzdGVt
Um9vdFRhc2s+IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrOworfTsKKwordm9pZCBHZXRGaWxlU3lz
dGVtUm9vdFRhc2s6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpCit7CisgICAgRmlsZVN5c3RlbVR5cGUgdHlwZTsKKyAgICBpZiAobV90eXBlID09
IERPTUZpbGVTeXN0ZW1CYXNlOjpwZXJzaXN0ZW50UGF0aFByZWZpeCkKKyAgICAgICAgdHlwZSA9
IEZpbGVTeXN0ZW1UeXBlUGVyc2lzdGVudDsKKyAgICBlbHNlIGlmIChtX3R5cGUgPT0gRE9NRmls
ZVN5c3RlbUJhc2U6OnRlbXBvcmFyeVBhdGhQcmVmaXgpCisgICAgICAgIHR5cGUgPSBGaWxlU3lz
dGVtVHlwZVRlbXBvcmFyeTsKKyAgICBlbHNlIHsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVF
cnJvcjo6U1lOVEFYX0VSUiwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQ
dHI8RW50cnlDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gR2V0RmlsZVN5c3RlbVJvb3RUYXNr
OjpHZXRFbnRyeUNhbGxiYWNrOjpjcmVhdGUodGhpcyk7CisgICAgUmVmUHRyPEVycm9yQ2FsbGJh
Y2s+IGVycm9yQ2FsbGJhY2sgPSBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2s6
OmNyZWF0ZSh0aGlzKTsKKyAgICBPd25QdHI8UmVzb2x2ZVVSSUNhbGxiYWNrcz4gZmlsZVN5c3Rl
bUNhbGxiYWNrcyA9IFJlc29sdmVVUklDYWxsYmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ss
IGVycm9yQ2FsbGJhY2ssIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHR5cGUsICIvIik7CisKKyAg
ICBMb2NhbEZpbGVTeXN0ZW06OmxvY2FsRmlsZVN5c3RlbSgpLnJlYWRGaWxlU3lzdGVtKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIHR5cGUsIGZpbGVTeXN0ZW1DYWxsYmFja3MucmVsZWFzZSgpKTsK
K30KKwordm9pZCBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OmdvdEVudHJ5KEVudHJ5KiBlbnRyeSkK
K3sKKyAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiByZXN1bHQoVHlw
ZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5OjpjcmVhdGUoKS5zZXRVcmwoZW50cnktPnRvVVJM
KCkpLnNldE5hbWUoIi8iKS5zZXRJc0RpcmVjdG9yeSh0cnVlKSk7CisgICAgcmVwb3J0UmVzdWx0
KHN0YXRpY19jYXN0PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgcmVzdWx0KTsKK30KKworfQor
CiAvLyBzdGF0aWMKLVBhc3NPd25QdHI8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50PiBJbnNwZWN0
b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCitQYXNzT3duUHRyPEluc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudD4gSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpjcmVhdGUoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdl
QWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkpOwor
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KGluc3RydW1l
bnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgc3RhdGUpKTsKIH0KIAogSW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50Ojp+SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KCkKQEAgLTEwMiw2ICsyMTgsMjIgQEAg
dm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogICAg
IG1fc3RhdGUtPnNldEJvb2xlYW4oRmlsZVN5c3RlbUFnZW50U3RhdGU6OmZpbGVTeXN0ZW1BZ2Vu
dEVuYWJsZWQsIG1fZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
OjpnZXRGaWxlU3lzdGVtUm9vdChFcnJvclN0cmluZyosIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgaWYgKCFtX2VuYWJsZWQg
fHwgIW1fZnJvbnRlbmRQcm92aWRlcikKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChtX2Zy
b250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCkpOworCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBt
X3BhZ2VBZ2VudC0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRy
YXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luKS5nZXQoKSkpIHsKKyAgICAgICAgICAg
IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwgcmVxdWVz
dElkLCB0eXBlKS0+c3RhcnQoZnJhbWUtPmRvY3VtZW50KCkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgfQorCisgICAgbV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVuZCgp
LT5nb3RGaWxlU3lzdGVtUm9vdChyZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGludD4oRmlsZUVycm9y
OjpTRUNVUklUWV9FUlIpLCAwKTsKK30KKwogdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6
OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIHsKICAgICBBU1NFUlQo
ZnJvbnRlbmQpOwpAQCAtMTIzLDggKzI1NSw5IEBAIHZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50OjpyZXN0b3JlKCkKICAgICBtX2VuYWJsZWQgPSBtX3N0YXRlLT5nZXRCb29sZWFuKEZpbGVT
eXN0ZW1BZ2VudFN0YXRlOjpmaWxlU3lzdGVtQWdlbnRFbmFibGVkKTsKIH0KIAotSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50OjpJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQorSW5zcGVj
dG9yRmlsZVN5c3RlbUFnZW50OjpJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdl
bnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNw
ZWN0b3JGaWxlU3lzdGVtQWdlbnQ+KCJGaWxlU3lzdGVtIiwgaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUpCisgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2VuYWJsZWQoZmFs
c2UpCiB7CiAgICAgQVNTRVJUKGluc3RydW1lbnRpbmdBZ2VudHMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCmluZGV4IGE2Mzdm
YTBlOTcyYjFhZTc4ZmRkOWE0MDkyZGZlMWExZjFiZGIxNmUuLjdhOWMxZTJiM2ZkNDkyZWRlNDIy
NWM2MDIzZjI5ZDJiZmJjYzI1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQwLDggKzQwLDEwIEBACiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCiBjbGFzcyBE
T01GaWxlU3lzdGVtOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JQ
YWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2Vu
dHM7CiAKQEAgLTQ5LDE4ICs1MSwyMSBAQCBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQg
OiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckZpbGVTeXN0ZW1BZwogcHVibGlj
OgogICAgIGNsYXNzIEZyb250ZW5kUHJvdmlkZXI7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5z
cGVjdG9yU3RhdGUqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50Kiwg
SW5zcGVjdG9yU3RhdGUqKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQo
KTsKIAotICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOworICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJy
b3JTdHJpbmcqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmlu
ZyopIE9WRVJSSURFOworCisgICAgdmlydHVhbCB2b2lkIGdldEZpbGVTeXN0ZW1Sb290KEVycm9y
U3RyaW5nKiwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgdHlwZSkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVj
dG9yRnJvbnRlbmQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwotICAgIHZp
cnR1YWwgdm9pZCByZXN0b3JlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3Bl
Y3RvckZyb250ZW5kKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpIE9WRVJSSURFOwogcHJpdmF0
ZToKLSAgICBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
c3BlY3RvclN0YXRlKik7CisgICAgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0ZSopOwogCisgICAg
SW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKICAgICBSZWZQdHI8RnJvbnRlbmRQcm92
aWRlcj4gbV9mcm9udGVuZFByb3ZpZGVyOwogICAgIGJvb2wgbV9lbmFibGVkOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTW9kZWwu
anMKaW5kZXggMTk0MzU0YTg5YjA0Mjg1NDc2NmRlNzEzODgyNTA1N2Y2ZDkzMDA2NS4uMTYyYjM1
MmU3YWI4ODIzYjg4NjBkODU2NzY3MzQwNDg2OGE5OWMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTW9kZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtTW9kZWwuanMKQEAgLTQxLDYg
KzQxLDggQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbCA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLl9mcmFtZUlkc0Zvck9yaWdpbiA9IHt9OwogICAgIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3Jp
Z2luID0ge307CiAKKyAgICB0aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJlcXVlc3QgPSB7fTsK
KwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lQWRkZWQsIHRoaXMu
X2ZyYW1lQWRkZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVz
LkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9mcmFtZU5hdmlnYXRlZCwgdGhpcyk7CiAgICAgV2ViSW5z
cGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJl
c291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgdGhpcy5fZnJhbWVEZXRh
Y2hlZCwgdGhpcyk7CkBAIC0xNDksMTIgKzE1MSwxNyBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3Rl
bU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5b
b3JpZ2luXSA9IHt9OwogCiAgICAgICAgIHZhciB0eXBlcyA9IFsicGVyc2lzdGVudCIsICJ0ZW1w
b3JhcnkiXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7ICsraSkg
ewotICAgICAgICAgICAgLy8gRklYTUUoODg2MDIpOiBDaGVjayBpZiB0aGUgZmlsZXN5c3RlbSBp
cyBpbml0aWFsaXplZCwgYW5kIHNob3cgaXQgb25seSBpZiBpdCB3YXMuCi0gICAgICAgICAgICB2
YXIgZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0
ZW0odGhpcywgb3JpZ2luLCB0eXBlc1tpXSk7Ci0gICAgICAgICAgICB0aGlzLl9maWxlU3lzdGVt
c0Zvck9yaWdpbltvcmlnaW5dW3R5cGVzW2ldXSA9IGZpbGVTeXN0ZW07Ci0gICAgICAgICAgICB0
aGlzLl9maWxlU3lzdGVtQWRkZWQoZmlsZVN5c3RlbSk7Ci0gICAgICAgIH0KKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuZ2V0
RmlsZVN5c3RlbShvcmlnaW4sIHR5cGVzW2ldLCB0aGlzLl9nb3RGaWxlU3lzdGVtLmJpbmQodGhp
cywgdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXSkpOworICAgIH0sCisKKyAgICBf
Z290RmlsZVN5c3RlbTogZnVuY3Rpb24oc3RvcmUsIGVycm9yQ29kZSwgZmlsZVN5c3RlbSkKKyAg
ICB7CisgICAgICAgIGlmIChlcnJvckNvZGUgIT09IDAgfHwgdGhpcy5fZmlsZVN5c3RlbXNGb3JP
cmlnaW5bZmlsZVN5c3RlbS5vcmlnaW5dICE9PSBzdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBzdG9yZVtmaWxlU3lzdGVtLnR5cGVdID0gZmlsZVN5c3RlbTsKKyAgICAgICAg
dGhpcy5fZmlsZVN5c3RlbUFkZGVkKGZpbGVTeXN0ZW0pOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTE4OCwxMyArMTk1LDQ0IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBl
ID0gewogCiAgICAgcmVmcmVzaEZpbGVTeXN0ZW1MaXN0OiBmdW5jdGlvbigpCiAgICAgewotICAg
ICAgICBmb3IgKHZhciBvcmlnaW4gaW4gdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW4pCi0gICAg
ICAgICAgICBmb3IgKHZhciB0eXBlIGluIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdp
bl0pCi0gICAgICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbVJlbW92ZWQodGhpcy5fZmlsZVN5
c3RlbXNGb3JPcmlnaW5bb3JpZ2luXVt0eXBlXSk7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKSB7CisgICAgICAgICAgICB0aGlzLl9kZXRhY2hG
cmFtZVJlY3Vyc2l2ZWx5KFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUp
OworICAgICAgICAgICAgdGhpcy5fYXR0YWNoRnJhbWVSZWN1cnNpdmVseShXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKKyAgICAgICAgfQorICAgIH0sCiAKLSAgICAg
ICAgZm9yICh2YXIgb3JpZ2luIGluIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luKQotICAgICAg
ICAgICAgZm9yICh2YXIgdHlwZSBpbiB0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5d
KQotICAgICAgICAgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZCh0aGlzLl9maWxlU3lzdGVt
c0Zvck9yaWdpbltvcmlnaW5dW3R5cGVdKTsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gb3JpZ2luCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAgICAgKiBAcGFyYW0ge2Z1
bmN0aW9uKG51bWJlciwgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtKX0g
Y2FsbGJhY2sKKyAgICAgKi8KKyAgICBnZXRGaWxlU3lzdGVtOiBmdW5jdGlvbihvcmlnaW4sIHR5
cGUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3RJZCA9IFdlYkluc3BlY3Rv
ci5GaWxlU3lzdGVtTW9kZWwubmV4dFJlcXVlc3RJZCsrOworICAgICAgICB0aGlzLl9wZW5kaW5n
R2V0RmlsZVN5c3RlbVJlcXVlc3RbcmVxdWVzdElkXSA9IHsKKyAgICAgICAgICAgIG9yaWdpbjog
b3JpZ2luLAorICAgICAgICAgICAgdHlwZTogdHlwZSwKKyAgICAgICAgICAgIGNhbGxiYWNrOiBj
YWxsYmFjaworICAgICAgICB9OworICAgICAgICBGaWxlU3lzdGVtQWdlbnQuZ2V0RmlsZVN5c3Rl
bVJvb3QocmVxdWVzdElkLCBvcmlnaW4sIHR5cGUpOworICAgIH0sCisKKyAgICAvKioKKyAgICAg
KiBAcGFyYW17bnVtYmVyfSByZXF1ZXN0SWQKKyAgICAgKiBAcGFyYW17bnVtYmVyfSBlcnJvckNv
ZGUKKyAgICAgKiBAcGFyYW17RmlsZVN5c3RlbUFnZW50LkVudHJ5PX0gYmFja2VuZEVudHJ5Cisg
ICAgICovCisgICAgZ290RmlsZVN5c3RlbVJvb3Q6IGZ1bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JD
b2RlLCBiYWNrZW5kRW50cnkpCisgICAgeworICAgICAgICB2YXIgcmVxdWVzdCA9IHRoaXMuX3Bl
bmRpbmdHZXRGaWxlU3lzdGVtUmVxdWVzdFtyZXF1ZXN0SWRdOworICAgICAgICBpZiAoIXJlcXVl
c3QpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nR2V0
RmlsZVN5c3RlbVJlcXVlc3RbcmVxdWVzdElkXTsKKworICAgICAgICB2YXIgZmlsZVN5c3RlbSA9
IG51bGw7CisgICAgICAgIGlmIChlcnJvckNvZGUgPT09IDAgJiYgYmFja2VuZEVudHJ5KQorICAg
ICAgICAgICAgZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZp
bGVTeXN0ZW0odGhpcywgcmVxdWVzdC5vcmlnaW4sIHJlcXVlc3QudHlwZSwgYmFja2VuZEVudHJ5
KTsKKyAgICAgICAgcmVxdWVzdC5jYWxsYmFjayhlcnJvckNvZGUsIGZpbGVTeXN0ZW0pOwogICAg
IH0KIH0KIApAQCAtMjAzLDYgKzI0MSw4IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwu
RXZlbnRUeXBlcyA9IHsKICAgICBGaWxlU3lzdGVtUmVtb3ZlZDogIkZpbGVTeXN0ZW1SZW1vdmVk
IgogfQogCitXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLm5leHRSZXF1ZXN0SWQgPSAxOwor
CiBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIAogLyoqCkBAIC0yMTAsOCArMjUwLDkgQEAgV2Vi
SW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLk9iamVjdC5wcm90b3R5cGUKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1N
b2RlbH0gZmlsZVN5c3RlbU1vZGVsCiAgKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luCiAgKiBAcGFy
YW0ge3N0cmluZ30gdHlwZQorICogQHBhcmFtIHtGaWxlU3lzdGVtQWdlbnQuRW50cnl9IGJhY2tl
bmRSb290RW50cnkKICAqLwotV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVt
ID0gZnVuY3Rpb24oZmlsZVN5c3RlbU1vZGVsLCBvcmlnaW4sIHR5cGUpCitXZWJJbnNwZWN0b3Iu
RmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0gPSBmdW5jdGlvbihmaWxlU3lzdGVtTW9kZWwsIG9y
aWdpbiwgdHlwZSwgYmFja2VuZFJvb3RFbnRyeSkKIHsKICAgICB0aGlzLm9yaWdpbiA9IG9yaWdp
bjsKICAgICB0aGlzLnR5cGUgPSB0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKaW5kZXggNThlOTM2MWQ3ZDg1YjNhMzAx
MTgzZDFlM2M3ODM4YWIxYTIyZTM4Yy4uYzk3YzFmMjViNzNiNDdjYjg0MTFlYjgzM2RlOTQxNzBj
Zjc2OWM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlc1BhbmVsLmpzCkBAIC0xNTI1LDcgKzE1MjUsNiBAQCBXZWJJbnNwZWN0b3IuRmls
ZVN5c3RlbUxpc3RUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBmaWxlU3lz
dGVtVHJlZUVsZW1lbnQgPSB0aGlzLl9maWxlU3lzdGVtVHJlZUVsZW1lbnRCeU5hbWUoZmlsZVN5
c3RlbS5uYW1lKTsKICAgICAgICAgaWYgKCFmaWxlU3lzdGVtVHJlZUVsZW1lbnQpCiAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIGZpbGVTeXN0ZW1UcmVlRWxlbWVudC5jbGVhcigpOwogICAg
ICAgICB0aGlzLnJlbW92ZUNoaWxkKGZpbGVTeXN0ZW1UcmVlRWxlbWVudCk7CiAgICAgfSwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147504</attachid>
            <date>2012-06-14 00:23:40 -0700</date>
            <delta_ts>2012-06-15 03:26:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88602-20120614162339.patch</filename>
            <type>text/plain</type>
            <size>26318</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk4YWYwNzU0MTg0OGJk
NTlmMDg5Y2I1Nzg5NDE4YzlkYjZkNmZiOS4uZTk5NzYxYmE4ZmZiZDA3YzU4NWY2MzI4ZDJiZmFh
M2Q3Njg3Yjk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA2LTEzICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZ2V0LWZpbGVzeXN0ZW0tcm9vdC5odG1sCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Z2V0RmlsZVN5c3RlbVJvb3QpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaDoKKyAgICAgICAgKElu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9G
aWxlU3lzdGVtTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLl9vcmln
aW5BZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlw
ZS5fZ290RmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVs
LnByb3RvdHlwZS5yZWZyZXNoRmlsZVN5c3RlbUxpc3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkZpbGVTeXN0ZW1Nb2RlbC5wcm90b3R5cGUuZ2V0RmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZS5nb3RGaWxlU3lzdGVtUm9vdCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZS5kaWRSZWFkRGly
ZWN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZVN5c3Rl
bSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTGlzdFRyZWVFbGVtZW50LnByb3RvdHlwZS5f
ZmlsZVN5c3RlbVJlbW92ZWQpOgorCiAyMDEyLTA2LTEzICBEYW5hIEphbnNlbnMgIDxkYW5ha2pA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQ3JlYXRlIGEgQ0NTdHJlYW1WaWRl
b0RyYXdRdWFkIHVzZWQgZm9yIFN0cmVhbVRleHR1cmUgdmlkZW8gb3V0cHV0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggZjA3MzkwODUzOGVhZGRlYWQ0M2E5Njk4
NmQyNmYzZjE3OWUxMzdjNy4uNzhlODY5M2Q3ZWRkYzRkOWM2Y2RmZTFlNmE4YmViM2M4M2NkNTM2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMTQwOSwxMSAr
MTQwOSwxMiBAQAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAg
ICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJs
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogImZpbGVzeXN0ZW06IFVSTCBmb3Ig
dGhlIGVudHJ5LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5
cGUiOiAic3RyaW5nIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5hbWUgb2YgdGhlIGZpbGUgb3Ig
ZGlyZWN0b3J5LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc0RpcmVjdG9y
eSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiB0aGUgZW50cnkg
aXMgYSBkaXJlY3RvcnkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1pbWVU
eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
Ik1JTUUgdHlwZSBvZiB0aGUgZW50cnksIGF2YWlsYWJsZSBmb3IgYSBmaWxlIG9ubHkuIiB9LAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlVHlwZSIsICIkcmVmIjogIlBh
Z2UuUmVzb3VyY2VUeXBlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlc291
cmNlVHlwZSBvZiB0aGUgZW50cnksIGF2YWlsYWJsZSBmb3IgYSBmaWxlIG9ubHkuIiB9Ci0gICAg
ICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlJlcHJlc2VudHMgYSBicm93c2VyIHNpZGUgZmlsZSBvciBkaXJlY3RvcnkuIgog
ICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiY29tbWFuZHMiOiBbCkBAIC0xNDI2
LDIzICsxNDI3LDQyIEBACiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVz
IGV2ZW50cyBmcm9tIGJhY2tlbmQuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAibmFtZSI6ICJnZXRGaWxlU3lzdGVtUm9vdCIsCisgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVz
dElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IElkZW50aWZp
ZXIgb2YgdGhlIGNvbW1hbmQuIFRoZSBiYWNrZW5kIHNob3VsZCBwYXNzIGJhY2sgdGhpcyB2YWx1
ZSBvbiBjb3JyZXNwb25kaW5nIGdvdEZpbGVTeXN0ZW1Sb290IGV2ZW50LiIgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3Jp
cHRpb24iOiAiU2VjdXJpdHkgb3JpZ2luIG9mIHJlcXVlc3RpbmcgRmlsZVN5c3RlbS4gT25lIG9m
IGZyYW1lcyBpbiBjdXJyZW50IHBhZ2UgbmVlZHMgdG8gaGF2ZSB0aGlzIHNlY3VyaXR5IG9yaWdp
bi4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0
cmluZyIsICJlbnVtIjogWyJ0ZW1wb3JhcnkiLCAicGVyc2lzdGVudCJdLCAiZGVzY3JpcHRpb24i
OiAiRmlsZVN5c3RlbSB0eXBlIG9mIHJlcXVlc3RpbmcgRmlsZVN5c3RlbS4iIH0KKyAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHJvb3Qg
ZGlyZWN0b3J5IG9mIHRoZSBGaWxlU3lzdGVtIGlmIGV4aXN0cy4iCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInJlYWREaXJlY3RvcnkiLAot
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0cyB0byByZWFkIHRoZSBkaXJl
Y3RvcnkgY29udGVudC4gUmVzdWx0IHNob3VsZCByZXR1cm4gb24gZGlkUmVhZERpcmVjdG9yeSBl
dmVudCB3aXRoIHJlcXVlc3QgaWQuIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0SWQiLCAidHlwZSI6ICJpbnRl
Z2VyIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6
ICJzdHJpbmciIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUi
OiAic3RyaW5nIiB9Ci0gICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInJlcXVlc3RJZCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiUmVx
dWVzdCBJZGVudGlmaWVyIG9mIHRoZSBjb21tYW5kLiBUaGUgYmFja2VuZCBzaG91bGQgcGFzcyBi
YWNrIHRoaXMgdmFsdWUgb24gY29ycmVzcG9uZGluZyBkaWRSZWFkRGlyZWN0b3J5IGV2ZW50LiIg
fSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIElEIHRvIHByb2Nlc3MgdGhlIGNvbW1hbmQgaW4u
IFRoZSBmcmFtZSBuZWVkcyB0byBoYXZlIG9yaWdpbiBvZiB0aGUgdXJsLiIgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiVVJMIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCB0aGUgZnJvbnRlbmQgaXMgcmVxdWVzdGlu
ZyB0byByZWFkIGZyb20uIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiUmVxdWVzdHMgdG8gcmVhZCB0aGUgZGlyZWN0b3J5IGNvbnRlbnQuIFJl
c3VsdCBzaG91bGQgcmV0dXJuIG9uIGRpZFJlYWREaXJlY3RvcnkgZXZlbnQgd2l0aCByZXF1ZXN0
IGlkLiIKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnb3RGaWxlU3lzdGVtUm9vdCIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicmVxdWVzdElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJS
ZXF1ZXN0IElkZW50aWZpZXIgdGhhdCB3YXMgcGFzc2VkIHRvIGNvcnJlc3BvbmRpbmcgZ2V0Rmls
ZVN5c3RlbVJvb3QgY29tbWFuZC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZXJyb3JDb2RlIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICIwLCBpZiBubyBl
cnJvci4gT3RoZXJ3aXNlLCBlcnJvckNvZGUgaXMgc2V0IHRvIEZpbGVFcnJvcjo6RXJyb3JDb2Rl
IHZhbHVlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyb290IiwgIiRyZWYi
OiAiRmlsZVN5c3RlbS5FbnRyeSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJD
b250YWlucyByb290IG9mIHRoZSByZXF1ZXN0ZWQgRmlsZVN5c3RlbSBpZiB0aGUgY29tbWFuZCBj
b21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkNvbXBsZXRpb24gZXZlbnQgb2YgZ2V0RmlsZVN5c3RlbVJv
b3QgY29tbWFuZC4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICJuYW1lIjogImRpZFJlYWREaXJlY3RvcnkiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICJ0eXBl
IjogImludGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXJyb3JDb2Rl
IiwgImRlc2NyaXB0aW9uIjogIjAsIGlmIG5vIGVycm9yLiBPdGhlcndpc2UsIGVycm9yQ29kZSBp
cyBzZXQgdG8gRmlsZUVycm9yOjpFcnJvckNvZGUgdmFsdWUuIiwgInR5cGUiOiAiaW50ZWdlciIg
fSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbnRyaWVzIiwgInR5cGUiOiAiYXJy
YXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkZpbGVTeXN0ZW0uRW50cnkiIH0sICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFbnRyaWVzIG9mIHRoZSBkaXJlY3RvcnkuIiB9Ci0gICAg
ICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIs
ICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiUmVxdWVzdCBJZGVudGlmaWVyIHRo
YXQgd2FzIHBhc3NlZCB0byBjb3JyZXNwb25kaW5nIHJlYWREaXJlY3RvcnkgcmVxdWVzdC4iIH0s
CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXJyb3JDb2RlIiwgInR5cGUiOiAiaW50
ZWdlciIsICJkZXNjcmlwdGlvbiI6ICIwLCBpZiBubyBlcnJvci4gT3RoZXJ3aXNlLCBlcnJvckNv
ZGUgaXMgc2V0IHRvIEZpbGVFcnJvcjo6RXJyb3JDb2RlIHZhbHVlLiIgfSwKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJlbnRyaWVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7
ICIkcmVmIjogIkZpbGVTeXN0ZW0uRW50cnkiIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJDb250YWlucyBhbGwgZW50cmllcyBvbiBkaXJlY3RvcnkgaWYgdGhlIGNvbW1hbmQg
Y29tcGxldGVkIHN1Y2Nlc3NmdWxseS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wbGV0aW9uIGV2ZW50IG9mIHJlYWREaXJlY3Rvcnkg
ZXZlbnQuIgogICAgICAgICAgICAgfQogICAgICAgICBdCiAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKaW5kZXgg
M2IyN2ZhNmZmOTE4MzQwMzMyYzFkNGQ4YTAxNjI0NTBlZGIyZWJlYi4uYTdiN2RkOGQ5NjI1NDNj
MGZlZThjZTlhYTY3OTQ5Y2NmNDZlYmMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlICJEaXJlY3RvcnlSZWFkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkVudHJpZXNDYWxsYmFjay5oIgorI2luY2x1ZGUgIkVudHJ5LmgiCiAjaW5jbHVkZSAi
RW50cnlBcnJheS5oIgogI2luY2x1ZGUgIkVudHJ5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJFcnJv
ckNhbGxiYWNrLmgiCkBAIC01Miw2ICs1Myw3IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1
ZGUgIkxvY2FsRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6
QXJyYXk7CiAKQEAgLTk1LDYgKzk3LDEwNSBAQCB0eXBlZGVmIEluc3BlY3RvckZpbGVTeXN0ZW1B
Z2VudDo6RnJvbnRlbmRQcm92aWRlciBGcm9udGVuZFByb3ZpZGVyOwogCiBuYW1lc3BhY2Ugewog
CitjbGFzcyBHZXRGaWxlU3lzdGVtUm9vdFRhc2sgOiBwdWJsaWMgUmVmQ291bnRlZDxHZXRGaWxl
U3lzdGVtUm9vdFRhc2s+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHZXRGaWxlU3lzdGVt
Um9vdFRhc2spOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1S
b290VGFzaz4gY3JlYXRlKFBhc3NSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gZnJvbnRlbmRQcm92
aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiB0eXBlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBHZXRGaWxlU3lzdGVtUm9vdFRhc2soZnJvbnRlbmRQcm92aWRl
ciwgcmVxdWVzdElkLCB0eXBlKSk7CisgICAgfQorCisgICAgdm9pZCBzdGFydChTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CisKK3ByaXZhdGU6CisgICAgY2xhc3MgRXJyb3JDYWxsYmFjazsKKyAg
ICBjbGFzcyBHZXRFbnRyeUNhbGxiYWNrOworCisgICAgdm9pZCBnb3RFbnRyeShFbnRyeSopOwor
CisgICAgdm9pZCByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JDb2RlLCBQ
YXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4gZW50cnkpCisgICAgewor
ICAgICAgICBpZiAoIW1fZnJvbnRlbmRQcm92aWRlciB8fCAhbV9mcm9udGVuZFByb3ZpZGVyLT5m
cm9udGVuZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2Zyb250ZW5kUHJvdmlk
ZXItPmZyb250ZW5kKCktPmdvdEZpbGVTeXN0ZW1Sb290KG1fcmVxdWVzdElkLCBzdGF0aWNfY2Fz
dDxpbnQ+KGVycm9yQ29kZSksIGVudHJ5KTsKKyAgICAgICAgbV9mcm9udGVuZFByb3ZpZGVyID0g
MDsKKyAgICB9CisKKyAgICBHZXRGaWxlU3lzdGVtUm9vdFRhc2soUGFzc1JlZlB0cjxGcm9udGVu
ZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVyLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcm
IHR5cGUpCisgICAgICAgIDogbV9mcm9udGVuZFByb3ZpZGVyKGZyb250ZW5kUHJvdmlkZXIpCisg
ICAgICAgICwgbV9yZXF1ZXN0SWQocmVxdWVzdElkKQorICAgICAgICAsIG1fdHlwZSh0eXBlKSB7
IH0KKworICAgIFJlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBtX2Zyb250ZW5kUHJvdmlkZXI7Cisg
ICAgaW50IG1fcmVxdWVzdElkOworICAgIFN0cmluZyBtX3R5cGU7Cit9OworCitjbGFzcyBHZXRG
aWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2sgOiBwdWJsaWMgV2ViQ29yZTo6RXJyb3JD
YWxsYmFjayB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRXJyb3JDYWxsYmFjayk7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpFcnJvckNh
bGxiYWNrPiBjcmVhdGUoUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+IGdldEZpbGVT
eXN0ZW1Sb290VGFzaykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0Rmls
ZVN5c3RlbVJvb3RUYXNrOjpFcnJvckNhbGxiYWNrKGdldEZpbGVTeXN0ZW1Sb290VGFzaykpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChGaWxlRXJyb3IqIGVycm9yKSBP
VkVSUklERQorICAgIHsKKyAgICAgICAgbV9nZXRGaWxlU3lzdGVtUm9vdFRhc2stPnJlcG9ydFJl
c3VsdChlcnJvci0+Y29kZSgpLCAwKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitw
cml2YXRlOgorICAgIEVycm9yQ2FsbGJhY2soUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRh
c2s+IGdldEZpbGVTeXN0ZW1Sb290VGFzaykKKyAgICAgICAgOiBtX2dldEZpbGVTeXN0ZW1Sb290
VGFzayhnZXRGaWxlU3lzdGVtUm9vdFRhc2spIHsgfQorICAgIFJlZlB0cjxHZXRGaWxlU3lzdGVt
Um9vdFRhc2s+IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrOworfTsKKworY2xhc3MgR2V0RmlsZVN5
c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNhbGxiYWNrIDogcHVibGljIFdlYkNvcmU6OkVudHJ5Q2Fs
bGJhY2sgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdldEVudHJ5Q2FsbGJhY2spOworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzazo6R2V0RW50
cnlDYWxsYmFjaz4gY3JlYXRlKFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrPiBnZXRG
aWxlU3lzdGVtUm9vdFRhc2spCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdl
dEZpbGVTeXN0ZW1Sb290VGFzazo6R2V0RW50cnlDYWxsYmFjayhnZXRGaWxlU3lzdGVtUm9vdFRh
c2spKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoRW50cnkqIGVudHJ5
KSBPVkVSUklERQorICAgIHsKKyAgICAgICAgbV9nZXRGaWxlU3lzdGVtUm9vdFRhc2stPmdvdEVu
dHJ5KGVudHJ5KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCitwcml2YXRlOgorICAg
IEdldEVudHJ5Q2FsbGJhY2soUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+IGdldEZp
bGVTeXN0ZW1Sb290VGFzaykKKyAgICAgICAgOiBtX2dldEZpbGVTeXN0ZW1Sb290VGFzayhnZXRG
aWxlU3lzdGVtUm9vdFRhc2spIHsgfQorICAgIFJlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+
IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrOworfTsKKwordm9pZCBHZXRGaWxlU3lzdGVtUm9vdFRh
c2s6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
Cit7CisgICAgRmlsZVN5c3RlbVR5cGUgdHlwZTsKKyAgICBpZiAobV90eXBlID09IERPTUZpbGVT
eXN0ZW1CYXNlOjpwZXJzaXN0ZW50UGF0aFByZWZpeCkKKyAgICAgICAgdHlwZSA9IEZpbGVTeXN0
ZW1UeXBlUGVyc2lzdGVudDsKKyAgICBlbHNlIGlmIChtX3R5cGUgPT0gRE9NRmlsZVN5c3RlbUJh
c2U6OnRlbXBvcmFyeVBhdGhQcmVmaXgpCisgICAgICAgIHR5cGUgPSBGaWxlU3lzdGVtVHlwZVRl
bXBvcmFyeTsKKyAgICBlbHNlIHsKKyAgICAgICAgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6U1lO
VEFYX0VSUiwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8RW50cnlD
YWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrID0gR2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRy
eUNhbGxiYWNrOjpjcmVhdGUodGhpcyk7CisgICAgUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9y
Q2FsbGJhY2sgPSBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2s6OmNyZWF0ZSh0
aGlzKTsKKyAgICBPd25QdHI8UmVzb2x2ZVVSSUNhbGxiYWNrcz4gZmlsZVN5c3RlbUNhbGxiYWNr
cyA9IFJlc29sdmVVUklDYWxsYmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2Fs
bGJhY2ssIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHR5cGUsICIvIik7CisKKyAgICBMb2NhbEZp
bGVTeXN0ZW06OmxvY2FsRmlsZVN5c3RlbSgpLnJlYWRGaWxlU3lzdGVtKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIHR5cGUsIGZpbGVTeXN0ZW1DYWxsYmFja3MucmVsZWFzZSgpKTsKK30KKwordm9p
ZCBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OmdvdEVudHJ5KEVudHJ5KiBlbnRyeSkKK3sKKyAgICBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiByZXN1bHQoVHlwZUJ1aWxkZXI6
OkZpbGVTeXN0ZW06OkVudHJ5OjpjcmVhdGUoKS5zZXRVcmwoZW50cnktPnRvVVJMKCkpLnNldE5h
bWUoIi8iKS5zZXRJc0RpcmVjdG9yeSh0cnVlKSk7CisgICAgcmVwb3J0UmVzdWx0KHN0YXRpY19j
YXN0PEZpbGVFcnJvcjo6RXJyb3JDb2RlPigwKSwgcmVzdWx0KTsKK30KKwogY2xhc3MgUmVhZERp
cmVjdG9yeVRhc2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFkRGlyZWN0b3J5VGFzaz4gewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFJlYWREaXJlY3RvcnlUYXNrKTsKIHB1YmxpYzoKQEAgLTMw
OCw2ICs0MDksMjIgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmRpc2FibGUoRXJy
b3JTdHJpbmcqKQogICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oRmlsZVN5c3RlbUFnZW50U3RhdGU6
OmZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQsIG1fZW5hYmxlZCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50OjpnZXRGaWxlU3lzdGVtUm9vdChFcnJvclN0cmluZyosIGludCByZXF1
ZXN0SWQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAg
aWYgKCFtX2VuYWJsZWQgfHwgIW1fZnJvbnRlbmRQcm92aWRlcikKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFTU0VSVChtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCkpOworCisgICAgZm9yIChG
cmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1l
bnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTYW1lU2NoZW1l
SG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luKS5nZXQoKSkp
IHsKKyAgICAgICAgICAgIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQ
cm92aWRlciwgcmVxdWVzdElkLCB0eXBlKS0+c3RhcnQoZnJhbWUtPmRvY3VtZW50KCkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9mcm9udGVuZFByb3Zp
ZGVyLT5mcm9udGVuZCgpLT5nb3RGaWxlU3lzdGVtUm9vdChyZXF1ZXN0SWQsIHN0YXRpY19jYXN0
PGludD4oRmlsZUVycm9yOjpTRUNVUklUWV9FUlIpLCAwKTsKK30KKwogdm9pZCBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQ6OnJlYWREaXJlY3RvcnkoRXJyb3JTdHJpbmcqLCBpbnQgcmVxdWVzdElk
LCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIGlmICgh
bV9lbmFibGVkIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKaW5kZXggMDE1ODU1MmY4NjFm
ZjZkYzAwNjYyZDEwMmMxODYyM2YwYjYyNDViYi4uYjJmMzA0M2Y2ZDg4NDAwYWE1MGFjMjFjYjAy
MDU2MGMxMThlYzk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGaWxlU3lzdGVtQWdlbnQuaApAQCAtNTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNhYmxlKEVycm9yU3RyaW5nKikgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
RmlsZVN5c3RlbVJvb3QoRXJyb3JTdHJpbmcqLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcm
IG9yaWdpbiwgY29uc3QgU3RyaW5nJiB0eXBlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVhZERpcmVjdG9yeShFcnJvclN0cmluZyosIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYg
ZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lk
IHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCmluZGV4
IGVkZjY4YzVlZTk0ODJhYjk5ZjI2NzA4NTcxNDEwYWY4ZmVjYzFkYWUuLjdjYmUyMzUzNTVjNjQw
ODZhYzg5ZmNmZDZjNjU1NTFkZTc5Njc0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCkBAIC0zMSw2ICszMSw3IEBA
CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9
CisgKiBAaW1wbGVtZW50cyB7RmlsZVN5c3RlbUFnZW50LkRpc3BhdGNoZXJ9CiAgKi8KIFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwgPSBmdW5jdGlvbigpCiB7CkBAIC00MCwxMCArNDEsMTMg
QEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9m
cmFtZUlkc0Zvck9yaWdpbiA9IHt9OwogICAgIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luID0g
e307CiAKKyAgICB0aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJlcXVlc3QgPSB7fTsKKwogICAg
IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lQWRkZWQsIHRoaXMuX2ZyYW1l
QWRkZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1l
TmF2aWdhdGVkLCB0aGlzLl9mcmFtZU5hdmlnYXRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9y
LnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgdGhpcy5fZnJhbWVEZXRhY2hlZCwg
dGhpcyk7CiAKKyAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRmlsZVN5c3RlbURpc3BhdGNo
ZXIodGhpcyk7CiAgICAgRmlsZVN5c3RlbUFnZW50LmVuYWJsZSgpOwogCiAgICAgaWYgKFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpCkBAIC0xNDcsMTIgKzE1MSwxNyBA
QCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXSA9IHt9OwogCiAgICAgICAgIHZhciB0eXBl
cyA9IFsicGVyc2lzdGVudCIsICJ0ZW1wb3JhcnkiXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0eXBlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgLy8gRklYTUUoODg2MDIpOiBD
aGVjayBpZiB0aGUgZmlsZXN5c3RlbSBpcyBpbml0aWFsaXplZCwgYW5kIHNob3cgaXQgb25seSBp
ZiBpdCB3YXMuCi0gICAgICAgICAgICB2YXIgZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNwZWN0b3Iu
RmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0odGhpcywgb3JpZ2luLCB0eXBlc1tpXSk7Ci0gICAg
ICAgICAgICB0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dW3R5cGVzW2ldXSA9IGZp
bGVTeXN0ZW07Ci0gICAgICAgICAgICB0aGlzLl9maWxlU3lzdGVtQWRkZWQoZmlsZVN5c3RlbSk7
Ci0gICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgIHRoaXMuZ2V0RmlsZVN5c3RlbShvcmlnaW4sIHR5cGVzW2ldLCB0aGlz
Ll9nb3RGaWxlU3lzdGVtLmJpbmQodGhpcywgdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3Jp
Z2luXSkpOworICAgIH0sCisKKyAgICBfZ290RmlsZVN5c3RlbTogZnVuY3Rpb24oc3RvcmUsIGVy
cm9yQ29kZSwgZmlsZVN5c3RlbSkKKyAgICB7CisgICAgICAgIGlmIChlcnJvckNvZGUgIT09IDAg
fHwgdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bZmlsZVN5c3RlbS5vcmlnaW5dICE9PSBzdG9y
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzdG9yZVtmaWxlU3lzdGVtLnR5cGVd
ID0gZmlsZVN5c3RlbTsKKyAgICAgICAgdGhpcy5fZmlsZVN5c3RlbUFkZGVkKGZpbGVTeXN0ZW0p
OwogICAgIH0sCiAKICAgICAvKioKQEAgLTE4NiwxMyArMTk1LDUzIEBAIFdlYkluc3BlY3Rvci5G
aWxlU3lzdGVtTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgcmVmcmVzaEZpbGVTeXN0ZW1MaXN0
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBmb3IgKHZhciBvcmlnaW4gaW4gdGhpcy5fZmls
ZVN5c3RlbXNGb3JPcmlnaW4pCi0gICAgICAgICAgICBmb3IgKHZhciB0eXBlIGluIHRoaXMuX2Zp
bGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl0pCi0gICAgICAgICAgICAgICAgdGhpcy5fZmlsZVN5
c3RlbVJlbW92ZWQodGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW5bb3JpZ2luXVt0eXBlXSk7Cisg
ICAgICAgIGlmIChXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKSB7Cisg
ICAgICAgICAgICB0aGlzLl9kZXRhY2hGcmFtZVJlY3Vyc2l2ZWx5KFdlYkluc3BlY3Rvci5yZXNv
dXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpOworICAgICAgICAgICAgdGhpcy5fYXR0YWNoRnJhbWVS
ZWN1cnNpdmVseShXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKKyAg
ICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2lu
CisgICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51
bWJlciwgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtKX0gY2FsbGJhY2sK
KyAgICAgKi8KKyAgICBnZXRGaWxlU3lzdGVtOiBmdW5jdGlvbihvcmlnaW4sIHR5cGUsIGNhbGxi
YWNrKQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3RJZCA9IFdlYkluc3BlY3Rvci5GaWxlU3lz
dGVtTW9kZWwubmV4dFJlcXVlc3RJZCsrOworICAgICAgICB0aGlzLl9wZW5kaW5nR2V0RmlsZVN5
c3RlbVJlcXVlc3RbcmVxdWVzdElkXSA9IHsKKyAgICAgICAgICAgIG9yaWdpbjogb3JpZ2luLAor
ICAgICAgICAgICAgdHlwZTogdHlwZSwKKyAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjawor
ICAgICAgICB9OworICAgICAgICBGaWxlU3lzdGVtQWdlbnQuZ2V0RmlsZVN5c3RlbVJvb3QocmVx
dWVzdElkLCBvcmlnaW4sIHR5cGUpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW17
bnVtYmVyfSByZXF1ZXN0SWQKKyAgICAgKiBAcGFyYW17bnVtYmVyfSBlcnJvckNvZGUKKyAgICAg
KiBAcGFyYW17RmlsZVN5c3RlbUFnZW50LkVudHJ5PX0gYmFja2VuZEVudHJ5CisgICAgICovCisg
ICAgZ290RmlsZVN5c3RlbVJvb3Q6IGZ1bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBiYWNr
ZW5kRW50cnkpCisgICAgeworICAgICAgICB2YXIgcmVxdWVzdCA9IHRoaXMuX3BlbmRpbmdHZXRG
aWxlU3lzdGVtUmVxdWVzdFtyZXF1ZXN0SWRdOworICAgICAgICBpZiAoIXJlcXVlc3QpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3Rl
bVJlcXVlc3RbcmVxdWVzdElkXTsKIAotICAgICAgICBmb3IgKHZhciBvcmlnaW4gaW4gdGhpcy5f
ZmlsZVN5c3RlbXNGb3JPcmlnaW4pCi0gICAgICAgICAgICBmb3IgKHZhciB0eXBlIGluIHRoaXMu
X2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl0pCi0gICAgICAgICAgICAgICAgdGhpcy5fZmls
ZVN5c3RlbUFkZGVkKHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl1bdHlwZV0pOwor
ICAgICAgICB2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisgICAgICAgIGlmIChlcnJvckNvZGUgPT09
IDAgJiYgYmFja2VuZEVudHJ5KQorICAgICAgICAgICAgZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNw
ZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0odGhpcywgcmVxdWVzdC5vcmlnaW4sIHJl
cXVlc3QudHlwZSwgYmFja2VuZEVudHJ5KTsKKyAgICAgICAgcmVxdWVzdC5jYWxsYmFjayhlcnJv
ckNvZGUsIGZpbGVTeXN0ZW0pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW17bnVt
YmVyfSByZXF1ZXN0SWQKKyAgICAgKiBAcGFyYW17bnVtYmVyfSBlcnJvckNvZGUKKyAgICAgKiBA
cGFyYW17QXJyYXkuPEZpbGVTeXN0ZW1BZ2VudC5FbnRyeT49fSBiYWNrZW5kRW50cmllcworICAg
ICAqLworICAgIGRpZFJlYWREaXJlY3Rvcnk6IGZ1bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JDb2Rl
LCBiYWNrZW5kRW50cmllcykKKyAgICB7CiAgICAgfQogfQogCkBAIC0yMDEsNiArMjUwLDggQEAg
V2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5FdmVudFR5cGVzID0gewogICAgIEZpbGVTeXN0
ZW1SZW1vdmVkOiAiRmlsZVN5c3RlbVJlbW92ZWQiCiB9CiAKK1dlYkluc3BlY3Rvci5GaWxlU3lz
dGVtTW9kZWwubmV4dFJlcXVlc3RJZCA9IDE7CisKIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9k
ZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwog
CiAvKioKQEAgLTIwOCw4ICsyNTksOSBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZQogICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsfSBmaWxlU3lzdGVtTW9kZWwKICAqIEBw
YXJhbSB7c3RyaW5nfSBvcmlnaW4KICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlCisgKiBAcGFyYW0g
e0ZpbGVTeXN0ZW1BZ2VudC5FbnRyeX0gYmFja2VuZFJvb3RFbnRyeQogICovCi1XZWJJbnNwZWN0
b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0gPSBmdW5jdGlvbihmaWxlU3lzdGVtTW9kZWws
IG9yaWdpbiwgdHlwZSkKK1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZVN5c3RlbSA9
IGZ1bmN0aW9uKGZpbGVTeXN0ZW1Nb2RlbCwgb3JpZ2luLCB0eXBlLCBiYWNrZW5kUm9vdEVudHJ5
KQogewogICAgIHRoaXMub3JpZ2luID0gb3JpZ2luOwogICAgIHRoaXMudHlwZSA9IHR5cGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1Bh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5l
bC5qcwppbmRleCA1OGU5MzYxZDdkODViM2EzMDExODNkMWUzYzc4MzhhYjFhMjJlMzhjLi5jOTdj
MWYyNWI3M2I0N2NiODQxMWViODMzZGU5NDE3MGNmNzY5YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTE1MjUs
NyArMTUyNSw2IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTGlzdFRyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdmFyIGZpbGVTeXN0ZW1UcmVlRWxlbWVudCA9IHRoaXMuX2ZpbGVT
eXN0ZW1UcmVlRWxlbWVudEJ5TmFtZShmaWxlU3lzdGVtLm5hbWUpOwogICAgICAgICBpZiAoIWZp
bGVTeXN0ZW1UcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZmlsZVN5
c3RlbVRyZWVFbGVtZW50LmNsZWFyKCk7CiAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQoZmlsZVN5
c3RlbVRyZWVFbGVtZW50KTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzI1ZDY3MTQ1NWQ5MDRkMzEwNjRi
ZmE2YTNjNGFlMWFkYjBiNzNkMy4uZjliN2NkMDMyNDE0MGFhNzlhNjMyYjgyM2ZhZGQwMjljYTVm
ZTBjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA2LTEzICBUYWlqdSBUc3Vpa2kgIDx0
emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaWxlU3lzdGVtIHRy
ZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmls
ZXN5c3RlbS9maWxlc3lzdGVtLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0ZpbGVTeXN0
ZW1UZXN0Lkluc3BlY3RvclRlc3QuY2xlYXJGaWxlU3lzdGVtKToKKyAgICAgICAgKGRpc3BhdGNo
Q2FsbGJhY2spOgorICAgICAgICAoY3JlYXRlRGlyZWN0b3J5LmdvdEZpbGVTeXN0ZW0pOgorICAg
ICAgICAoY3JlYXRlRGlyZWN0b3J5KToKKyAgICAgICAgKGNyZWF0ZUZpbGUuZ290RmlsZVN5c3Rl
bSk6CisgICAgICAgIChjbGVhckZpbGVTeXN0ZW0uZ290Um9vdCk6CisgICAgICAgIChjbGVhckZp
bGVTeXN0ZW0uZ290Um9vdC5yZW1vdmVBbGwpOgorICAgICAgICAoY2xlYXJGaWxlU3lzdGVtLm9u
RXJyb3IpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZ2V0LWZp
bGVzeXN0ZW0tcm9vdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9maWxlc3lzdGVtL3JlYWQtZGlyZWN0b3J5Lmh0bWw6CisKIDIwMTItMDYtMTMgIE1pbiBRaW4g
IDxxaW5taW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBBZGRyZXNzIHNvbWUgZmVlZGJhY2tzIGlu
IGxheW91dCB0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9maWxlc3lzdGVtL2ZpbGVzeXN0ZW0tdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS10ZXN0LmpzCmluZGV4IDZkODY1NTBjMTFm
YmMyZDQ5ZTA1OGE5M2FmMDM3NDRhZmE3MDJjM2UuLjMwODYzZDdmNTQxYzU4OWQ4NDU0ZWFjZmVk
MGU3YjgyZWVmYTA2NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZmlsZXN5c3RlbS10ZXN0LmpzCkBAIC0yOSw2ICsy
OSwxMSBAQCB2YXIgaW5pdGlhbGl6ZV9GaWxlU3lzdGVtVGVzdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiY3JlYXRlRmlsZSh1bmVzY2FwZShcIiIg
KyBlc2NhcGUocGF0aCkgKyAiXCIpLCAiICsgSW5zcGVjdG9yVGVzdC5yZWdpc3RlckNhbGxiYWNr
KGNhbGxiYWNrKSArICIpIik7CiAgICAgfTsKIAorICAgIEluc3BlY3RvclRlc3QuY2xlYXJGaWxl
U3lzdGVtID0gZnVuY3Rpb24oY2FsbGJhY2spCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJjbGVhckZpbGVTeXN0ZW0oIiArIEluc3BlY3RvclRlc3QucmVnaXN0
ZXJDYWxsYmFjayhjYWxsYmFjaykgKyAiKSIpOworICAgIH07CisKICAgICBJbnNwZWN0b3JUZXN0
LmR1bXBSZWFkRGlyZWN0b3J5UmVzdWx0ID0gZnVuY3Rpb24ocmVxdWVzdElkLCBlcnJvckNvZGUs
IGVudHJpZXMpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmVxdWVz
dElkOiAiICsgcmVxdWVzdElkKTsKQEAgLTUxLDIzICs1Niw3MSBAQCB2YXIgaW5pdGlhbGl6ZV9G
aWxlU3lzdGVtVGVzdCA9IGZ1bmN0aW9uKCkKIGZ1bmN0aW9uIGRpc3BhdGNoQ2FsbGJhY2soKQog
ewogICAgIHZhciBhcmdzID0gSlNPTi5zdHJpbmdpZnkoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNh
bGwoYXJndW1lbnRzKSk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVJbldlYklu
c3BlY3RvcigwLCAiSW5zcGVjdG9yVGVzdC5kaXNwYXRjaENhbGxiYWNrKHVuZXNjYXBlKFwiIiAr
IGVzY2FwZShhcmdzKSArICJcIikpIik7CisgICAgdGVzdFJ1bm5lci5ldmFsdWF0ZUluV2ViSW5z
cGVjdG9yKDk5OSwgIkluc3BlY3RvclRlc3QuZGlzcGF0Y2hDYWxsYmFjayh1bmVzY2FwZShcIiIg
KyBlc2NhcGUoYXJncykgKyAiXCIpKSIpOwogfQogCiBmdW5jdGlvbiBjcmVhdGVEaXJlY3Rvcnko
cGF0aCwgY2FsbGJhY2spCiB7Ci0gICAgd2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0oVEVNUE9SQVJZ
LCAxLCBmdW5jdGlvbihmcykgewotICAgICAgICBmcy5yb290LmdldERpcmVjdG9yeShwYXRoLCB7
Y3JlYXRlOnRydWV9LCBmdW5jdGlvbihlbnRyeSkgeworICAgIHdlYmtpdFJlcXVlc3RGaWxlU3lz
dGVtKFRFTVBPUkFSWSwgMSwgZ290RmlsZVN5c3RlbSk7CisKKyAgICBmdW5jdGlvbiBnb3RGaWxl
U3lzdGVtKGZpbGVTeXN0ZW0pCisgICAgeworICAgICAgICBmaWxlU3lzdGVtLnJvb3QuZ2V0RGly
ZWN0b3J5KHBhdGgsIHtjcmVhdGU6dHJ1ZX0sIGZ1bmN0aW9uKGVudHJ5KSB7CiAgICAgICAgICAg
ICBjYWxsYmFjaygpOwogICAgICAgICB9KTsKLSAgICB9KTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9u
IGNyZWF0ZUZpbGUocGF0aCwgY2FsbGJhY2spCiB7Ci0gICAgd2Via2l0UmVxdWVzdEZpbGVTeXN0
ZW0oVEVNUE9SQVJZLCAxLCBmdW5jdGlvbihmcykgewotICAgICAgICBmcy5yb290LmdldEZpbGUo
cGF0aCwge2NyZWF0ZTp0cnVlfSwgZnVuY3Rpb24oZW50cnkpIHsKKyAgICB3ZWJraXRSZXF1ZXN0
RmlsZVN5c3RlbShURU1QT1JBUlksIDEsIGdvdEZpbGVTeXN0ZW0pOworCisgICAgZnVuY3Rpb24g
Z290RmlsZVN5c3RlbShmaWxlU3lzdGVtKQorICAgIHsKKyAgICAgICAgZmlsZVN5c3RlbS5yb290
LmdldEZpbGUocGF0aCwge2NyZWF0ZTp0cnVlfSwgZnVuY3Rpb24oZW50cnkpIHsKICAgICAgICAg
ICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0pOwotICAgIH0pOworICAgIH0KK30KKworZnVuY3Rp
b24gY2xlYXJGaWxlU3lzdGVtKGNhbGxiYWNrKQoreworICAgIHdlYmtpdFJlc29sdmVMb2NhbEZp
bGVTeXN0ZW1VUkwoImZpbGVzeXN0ZW06IiArIGxvY2F0aW9uLm9yaWdpbiArICIvdGVtcG9yYXJ5
LyIsIGdvdFJvb3QsIG9uRXJyb3IpOworCisgICAgZnVuY3Rpb24gZ290Um9vdChyb290KQorICAg
IHsKKyAgICAgICAgdmFyIHJlYWRlciA9IHJvb3QuY3JlYXRlUmVhZGVyKCk7CisgICAgICAgIHJl
YWRlci5yZWFkRW50cmllcyhkaWRSZWFkRW50cmllcyk7CisKKyAgICAgICAgdmFyIGVudHJpZXMg
PSBbXTsKKyAgICAgICAgZnVuY3Rpb24gZGlkUmVhZEVudHJpZXMobmV3RW50cmllcykKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKG5ld0VudHJpZXMubGVuZ3RoID09PSAwKSB7CisgICAgICAg
ICAgICAgICAgcmVtb3ZlQWxsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdFbnRyaWVzLmxlbmd0aDsg
KytpKQorICAgICAgICAgICAgICAgIGVudHJpZXMucHVzaChuZXdFbnRyaWVzW2ldKTsKKyAgICAg
ICAgICAgIHJlYWRlci5yZWFkRW50cmllcyhkaWRSZWFkRW50cmllcyk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiByZW1vdmVBbGwoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
ZW50cmllcy5sZW5ndGggPT09IDApIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBlbnRy
eSA9IGVudHJpZXMuc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChlbnRyeS5pc0RpcmVjdG9yeSkK
KyAgICAgICAgICAgICAgICBlbnRyeS5yZW1vdmVSZWN1cnNpdmVseShyZW1vdmVBbGwpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVudHJ5LnJlbW92ZShyZW1vdmVBbGwpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gb25FcnJvcigpCisgICAgeworICAgICAg
ICAvLyBBc3N1bWUgdGhlIEZpbGVTeXN0ZW0gaXMgdW5pbml0aWFsaXplZCBhbmQgdGhlcmVmb3Jl
IGVtcHR5LgorICAgICAgICBjYWxsYmFjaygpOworICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZ2V0LWZpbGVzeXN0ZW0tcm9v
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lz
dGVtL2dldC1maWxlc3lzdGVtLXJvb3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNmVlMzE3
YjhjMjlkOGJhYjkyMTMyNThkYzRkZGNhODYxYWM1ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL2dldC1maWxlc3lzdGVtLXJv
b3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdHMgZ2V0RmlsZVN5c3RlbVJvb3Qu
CisKKzAgPT0gMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9maWxlc3lzdGVtL2dldC1maWxlc3lzdGVtLXJvb3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZ2V0LWZpbGVzeXN0ZW0tcm9vdC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY5NjAyNDdhM2I0OTA2OGUzM2FlNzEzNTk0YzM4NjA4ZjI2ZmI0ZmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL2dl
dC1maWxlc3lzdGVtLXJvb3QuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD48
bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImZpbGVzeXN0ZW0tdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIHJ1
blRlc3QpOworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGZpbGVTeXN0ZW1Nb2RlbCA9IG5l
dyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsKCk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5y
ZWdpc3RlckZpbGVTeXN0ZW1EaXNwYXRjaGVyKGZpbGVTeXN0ZW1Nb2RlbCk7CisgICAgRmlsZVN5
c3RlbUFnZW50LmVuYWJsZSgpOworCisgICAgSW5zcGVjdG9yVGVzdC5jbGVhckZpbGVTeXN0ZW0o
c3RlcDEpOworCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IEFkZCBBUEkgdG8gZGVsZXRlIGEgRmlsZVN5c3RlbSBjb21wbGV0ZWx5IGFuZCB0ZXN0IGdldEZp
bGVTeXN0ZW1Sb290IGZvcgorICAgICAgICAvLyB1bmluaXRpYWxpemVkIEZpbGVTeXN0ZW0uCisg
ICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlRmlsZSgiL2hvZ2UiLCBzdGVwMik7CisgICAgfQor
CisgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgIHsKKyAgICAgICAgZmlsZVN5c3RlbU1vZGVsLmdl
dEZpbGVTeXN0ZW0oImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJ0ZW1wb3JhcnkiLCBzdGVwMyk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDMoZXJyb3JDb2RlLCBmaWxlU3lzdGVtKQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoMCArICIgPT0gIiArIGVycm9yQ29k
ZSk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGVhckZpbGVTeXN0ZW0oc3RlcDQpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHN0ZXA0KGVycm9yQ29kZSwgZmlsZVN5c3RlbSkKKyAgICB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorCis8L3Njcmlw
dD4KKzxwPlRlc3RzIGdldEZpbGVTeXN0ZW1Sb290LjwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3RvcnkuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vcmVhZC1kaXJlY3Rv
cnkuaHRtbAppbmRleCA1OTEyNDUyMTc1MTBjMjQ4NzQxYjQ1NGI1ZjE3YzhiZGE3YmYzMjJlLi4z
MjE5YTBlNGU5NDE3ODU5YWMyNzQwZjRkNDc3N2M4ODU4MjgwMjJlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL3JlYWQtZGlyZWN0b3J5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9yZWFk
LWRpcmVjdG9yeS5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJGaWxlU3lzdGVtRGlzcGF0Y2hlcihuZXcgRmlsZVN5c3Rl
bURpc3BhdGNoZXIoKSk7CiAgICAgRmlsZVN5c3RlbUFnZW50LmVuYWJsZSgpOwogCi0gICAgc3Rl
cDEoKTsKKyAgICBJbnNwZWN0b3JUZXN0LmNsZWFyRmlsZVN5c3RlbShzdGVwMSk7CiAKICAgICBm
dW5jdGlvbiBzdGVwMSgpCiAgICAgewpAQCAtNTIsNiArNTIsMTEgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgZnVuY3Rpb24gc3RlcDYocmVxdWVzdElkLCBlcnJvckNvZGUsIGVudHJpZXMpIHsKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wUmVhZERpcmVjdG9yeVJlc3VsdChyZXF1ZXN0SWQsIGVy
cm9yQ29kZSwgZW50cmllcyk7CiAKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jbGVhckZpbGVTeXN0
ZW0oc3RlcDcpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA3KCkKKyAgICB7CiAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147782</attachid>
            <date>2012-06-15 03:26:07 -0700</date>
            <delta_ts>2012-06-19 01:50:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88602-20120615192606.patch</filename>
            <type>text/plain</type>
            <size>20611</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc0MzZmMWI3MWRhNGIy
YjY3ZWU1OTc4OTBiNzA5MDU2M2NlN2NkZS4uY2ZjY2Y5Njc0OWEyN2M1MmEwZTA3M2VjZjEyYjUx
ZGQ5NDNlMThhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA2LTE1ICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZ2V0LWZpbGVzeXN0ZW0tcm9vdC5odG1sCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Z2V0RmlsZVN5c3RlbVJvb3QpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaDoKKyAgICAgICAgKElu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9G
aWxlU3lzdGVtTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVs
LnByb3RvdHlwZS5fb3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbC5wcm90b3R5cGUucmVmcmVzaEZpbGVTeXN0ZW1MaXN0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLl9nb3RGaWxlU3lzdGVtKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZVN5c3RlbSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5GaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIucHJvdG90eXBlLmdldEZpbGVTeXN0ZW1Sb290
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIucHJvdG90
eXBlLl9nb3RGaWxlU3lzdGVtUm9vdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3Rl
bURpc3BhdGNoZXIucHJvdG90eXBlLmdvdEZpbGVTeXN0ZW1Sb290KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkZpbGVTeXN0ZW1MaXN0VHJlZUVsZW1lbnQucHJvdG90eXBlLl9maWxlU3lzdGVtUmVtb3ZlZCk6
CisKKzIwMTItMDYtMTUgIFRhaWp1IFRzdWlraSAgPHR6aWtAY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBGaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIgYW5kIEZpbGVT
eXN0ZW1EaXNwYXRjaGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04OTE5MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5k
ZXggY2YxOThjMGZjYjBhMjRiYTU5MjVmMjhkZDRkN2NiYThiNmQxNmQzMi4uMjliZjdiZDRlOGMx
NTk1OTNiNmI3OWZhMDAwM2QwNDM3NTgwZjM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgpAQCAtMTQwOSwxMSArMTQwOSwxMiBAQAogICAgICAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogImZpbGVzeXN0ZW06IFVSTCBmb3IgdGhlIGVudHJ5LiIgfSwKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiB9LAorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiVGhlIG5hbWUgb2YgdGhlIGZpbGUgb3IgZGlyZWN0b3J5LiIgfSwKICAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpc0RpcmVjdG9yeSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiVHJ1ZSBpZiB0aGUgZW50cnkgaXMgYSBkaXJlY3RvcnkuIiB9LAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm1pbWVUeXBlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk1JTUUgdHlwZSBvZiB0aGUgZW50cnksIGF2YWls
YWJsZSBmb3IgYSBmaWxlIG9ubHkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InJlc291cmNlVHlwZSIsICIkcmVmIjogIlBhZ2UuUmVzb3VyY2VUeXBlIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlc291cmNlVHlwZSBvZiB0aGUgZW50cnksIGF2YWlsYWJs
ZSBmb3IgYSBmaWxlIG9ubHkuIiB9Ci0gICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcHJlc2VudHMgYSBicm93c2Vy
IHNpZGUgZmlsZSBvciBkaXJlY3RvcnkuIgogICAgICAgICAgICAgfQogICAgICAgICBdLAogICAg
ICAgICAiY29tbWFuZHMiOiBbCkBAIC0xNDI2LDIyICsxNDI3LDQxIEBACiAgICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIGV2ZW50cyBmcm9tIGJhY2tlbmQuIgogICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRGaWxl
U3lzdGVtUm9vdCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNj
cmlwdGlvbiI6ICJSZXF1ZXN0IElkZW50aWZpZXIgb2YgdGhlIGNvbW1hbmQuIFRoZSBiYWNrZW5k
IHNob3VsZCBwYXNzIGJhY2sgdGhpcyB2YWx1ZSBvbiBjb3JyZXNwb25kaW5nIGdvdEZpbGVTeXN0
ZW1Sb290IGV2ZW50LiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4i
LCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU2VjdXJpdHkgb3JpZ2luIG9mIHJl
cXVlc3RpbmcgRmlsZVN5c3RlbS4gT25lIG9mIGZyYW1lcyBpbiBjdXJyZW50IHBhZ2UgbmVlZHMg
dG8gaGF2ZSB0aGlzIHNlY3VyaXR5IG9yaWdpbi4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJ0ZW1wb3JhcnkiLCAi
cGVyc2lzdGVudCJdLCAiZGVzY3JpcHRpb24iOiAiRmlsZVN5c3RlbSB0eXBlIG9mIHJlcXVlc3Rp
bmcgRmlsZVN5c3RlbS4iIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBGaWxlU3lzdGVtIGlm
IGV4aXN0cy4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICJuYW1lIjogInJlYWREaXJlY3RvcnkiLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJSZXF1ZXN0cyB0byByZWFkIHRoZSBkaXJlY3RvcnkgY29udGVudC4gUmVzdWx0IHNob3VsZCBy
ZXR1cm4gb24gZGlkUmVhZERpcmVjdG9yeSBldmVudCB3aXRoIHJlcXVlc3QgaWQuIiwKICAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJyZXF1ZXN0SWQiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIgfQotICAgICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0SWQiLCAidHlwZSI6ICJpbnRlZ2Vy
IiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgSWRlbnRpZmllciBvZiB0aGUgY29tbWFuZC4gVGhl
IGJhY2tlbmQgc2hvdWxkIHBhc3MgYmFjayB0aGlzIHZhbHVlIG9uIGNvcnJlc3BvbmRpbmcgZGlk
UmVhZERpcmVjdG9yeSBldmVudC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
dXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgZGlyZWN0
b3J5IHRoYXQgdGhlIGZyb250ZW5kIGlzIHJlcXVlc3RpbmcgdG8gcmVhZCBmcm9tLiIgfQorICAg
ICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcXVlc3Rz
IHRvIHJlYWQgdGhlIGRpcmVjdG9yeSBjb250ZW50LiBSZXN1bHQgc2hvdWxkIHJldHVybiBvbiBk
aWRSZWFkRGlyZWN0b3J5IGV2ZW50IHdpdGggcmVxdWVzdCBpZC4iCiAgICAgICAgICAgICB9CiAg
ICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCiAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgIm5hbWUiOiAiZ290RmlsZVN5c3RlbVJvb3QiLAorICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICJ0
eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiUmVxdWVzdCBJZGVudGlmaWVyIHRoYXQg
d2FzIHBhc3NlZCB0byBjb3JyZXNwb25kaW5nIGdldEZpbGVTeXN0ZW1Sb290IGNvbW1hbmQuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVycm9yQ29kZSIsICJ0eXBlIjogImlu
dGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiMCwgaWYgbm8gZXJyb3IuIE90aGVyd2lzZSwgZXJyb3JD
b2RlIGlzIHNldCB0byBGaWxlRXJyb3I6OkVycm9yQ29kZSB2YWx1ZS4iIH0sCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicm9vdCIsICIkcmVmIjogIkZpbGVTeXN0ZW0uRW50cnkiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGFpbnMgcm9vdCBvZiB0aGUgcmVx
dWVzdGVkIEZpbGVTeXN0ZW0gaWYgdGhlIGNvbW1hbmQgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4i
IH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJD
b21wbGV0aW9uIGV2ZW50IG9mIGdldEZpbGVTeXN0ZW1Sb290IGNvbW1hbmQuIgorICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJkaWRSZWFkRGly
ZWN0b3J5IiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0SWQiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImVycm9yQ29kZSIsICJkZXNjcmlwdGlvbiI6ICIwLCBp
ZiBubyBlcnJvci4gT3RoZXJ3aXNlLCBlcnJvckNvZGUgaXMgc2V0IHRvIEZpbGVFcnJvcjo6RXJy
b3JDb2RlIHZhbHVlLiIsICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiZW50cmllcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6
ICJGaWxlU3lzdGVtLkVudHJ5IiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
RW50cmllcyBvZiB0aGUgZGlyZWN0b3J5LiIgfQotICAgICAgICAgICAgICAgIF0KKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1ZXN0SWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRl
c2NyaXB0aW9uIjogIlJlcXVlc3QgSWRlbnRpZmllciB0aGF0IHdhcyBwYXNzZWQgdG8gY29ycmVz
cG9uZGluZyByZWFkRGlyZWN0b3J5IHJlcXVlc3QuIiB9LAorICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImVycm9yQ29kZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAi
MCwgaWYgbm8gZXJyb3IuIE90aGVyd2lzZSwgZXJyb3JDb2RlIGlzIHNldCB0byBGaWxlRXJyb3I6
OkVycm9yQ29kZSB2YWx1ZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW50
cmllcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJGaWxlU3lzdGVtLkVu
dHJ5IiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGFpbnMgYWxsIGVu
dHJpZXMgb24gZGlyZWN0b3J5IGlmIHRoZSBjb21tYW5kIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHku
IiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
Q29tcGxldGlvbiBldmVudCBvZiByZWFkRGlyZWN0b3J5IGV2ZW50LiIKICAgICAgICAgICAgIH0K
ICAgICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCmluZGV4IGMwOTQ1NTJmM2RlNTMzMjNlZTQzY2M1
NjQ5ZDMyZGRlYWM2NjlmYzQuLjg1ZTQxMDVhMzQ0YjIyZDg5YjQxNGYyNWFhNzFhNGJmNmJkYTkw
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lz
dGVtQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuY3BwCkBAIC05Niw2ICs5NiwxMDUgQEAgdHlwZWRlZiBJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ6OkZyb250ZW5kUHJvdmlkZXIgRnJvbnRlbmRQcm92aWRlcjsKIAogbmFtZXNw
YWNlIHsKIAorY2xhc3MgR2V0RmlsZVN5c3RlbVJvb3RUYXNrIDogcHVibGljIFJlZkNvdW50ZWQ8
R2V0RmlsZVN5c3RlbVJvb3RUYXNrPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR2V0Rmls
ZVN5c3RlbVJvb3RUYXNrKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXRGaWxl
U3lzdGVtUm9vdFRhc2s+IGNyZWF0ZShQYXNzUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IGZyb250
ZW5kUHJvdmlkZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0RmlsZVN5c3RlbVJvb3RUYXNrKGZyb250ZW5k
UHJvdmlkZXIsIHJlcXVlc3RJZCwgdHlwZSkpOworICAgIH0KKworICAgIHZvaWQgc3RhcnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopOworCitwcml2YXRlOgorICAgIGNsYXNzIEVycm9yQ2FsbGJh
Y2s7CisgICAgY2xhc3MgR2V0RW50cnlDYWxsYmFjazsKKworICAgIHZvaWQgZ290RW50cnkoRW50
cnkqKTsKKworICAgIHZvaWQgcmVwb3J0UmVzdWx0KEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9y
Q29kZSwgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6RW50cnk+IGVudHJ5KQor
ICAgIHsKKyAgICAgICAgaWYgKCFtX2Zyb250ZW5kUHJvdmlkZXIgfHwgIW1fZnJvbnRlbmRQcm92
aWRlci0+ZnJvbnRlbmQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9mcm9udGVu
ZFByb3ZpZGVyLT5mcm9udGVuZCgpLT5nb3RGaWxlU3lzdGVtUm9vdChtX3JlcXVlc3RJZCwgc3Rh
dGljX2Nhc3Q8aW50PihlcnJvckNvZGUpLCBlbnRyeSk7CisgICAgICAgIG1fZnJvbnRlbmRQcm92
aWRlciA9IDA7CisgICAgfQorCisgICAgR2V0RmlsZVN5c3RlbVJvb3RUYXNrKFBhc3NSZWZQdHI8
RnJvbnRlbmRQcm92aWRlcj4gZnJvbnRlbmRQcm92aWRlciwgaW50IHJlcXVlc3RJZCwgY29uc3Qg
U3RyaW5nJiB0eXBlKQorICAgICAgICA6IG1fZnJvbnRlbmRQcm92aWRlcihmcm9udGVuZFByb3Zp
ZGVyKQorICAgICAgICAsIG1fcmVxdWVzdElkKHJlcXVlc3RJZCkKKyAgICAgICAgLCBtX3R5cGUo
dHlwZSkgeyB9CisKKyAgICBSZWZQdHI8RnJvbnRlbmRQcm92aWRlcj4gbV9mcm9udGVuZFByb3Zp
ZGVyOworICAgIGludCBtX3JlcXVlc3RJZDsKKyAgICBTdHJpbmcgbV90eXBlOworfTsKKworY2xh
c3MgR2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpFcnJvckNhbGxiYWNrIDogcHVibGljIFdlYkNvcmU6
OkVycm9yQ2FsbGJhY2sgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEVycm9yQ2FsbGJhY2sp
OworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzazo6
RXJyb3JDYWxsYmFjaz4gY3JlYXRlKFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrPiBn
ZXRGaWxlU3lzdGVtUm9vdFRhc2spCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjayhnZXRGaWxlU3lzdGVtUm9vdFRh
c2spKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoRmlsZUVycm9yKiBl
cnJvcikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrLT5y
ZXBvcnRSZXN1bHQoZXJyb3ItPmNvZGUoKSwgMCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBFcnJvckNhbGxiYWNrKFBhc3NSZWZQdHI8R2V0RmlsZVN5c3Rl
bVJvb3RUYXNrPiBnZXRGaWxlU3lzdGVtUm9vdFRhc2spCisgICAgICAgIDogbV9nZXRGaWxlU3lz
dGVtUm9vdFRhc2soZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKSB7IH0KKyAgICBSZWZQdHI8R2V0Rmls
ZVN5c3RlbVJvb3RUYXNrPiBtX2dldEZpbGVTeXN0ZW1Sb290VGFzazsKK307CisKK2NsYXNzIEdl
dEZpbGVTeXN0ZW1Sb290VGFzazo6R2V0RW50cnlDYWxsYmFjayA6IHB1YmxpYyBXZWJDb3JlOjpF
bnRyeUNhbGxiYWNrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHZXRFbnRyeUNhbGxiYWNr
KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s6
OkdldEVudHJ5Q2FsbGJhY2s+IGNyZWF0ZShQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFz
az4gZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkdldEVudHJ5Q2FsbGJhY2soZ2V0RmlsZVN5c3Rl
bVJvb3RUYXNrKSk7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50KEVudHJ5
KiBlbnRyeSkgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNr
LT5nb3RFbnRyeShlbnRyeSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBHZXRFbnRyeUNhbGxiYWNrKFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNr
PiBnZXRGaWxlU3lzdGVtUm9vdFRhc2spCisgICAgICAgIDogbV9nZXRGaWxlU3lzdGVtUm9vdFRh
c2soZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKSB7IH0KKyAgICBSZWZQdHI8R2V0RmlsZVN5c3RlbVJv
b3RUYXNrPiBtX2dldEZpbGVTeXN0ZW1Sb290VGFzazsKK307CisKK3ZvaWQgR2V0RmlsZVN5c3Rl
bVJvb3RUYXNrOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KQoreworICAgIEZpbGVTeXN0ZW1UeXBlIHR5cGU7CisgICAgaWYgKG1fdHlwZSA9PSBE
T01GaWxlU3lzdGVtQmFzZTo6cGVyc2lzdGVudFBhdGhQcmVmaXgpCisgICAgICAgIHR5cGUgPSBG
aWxlU3lzdGVtVHlwZVBlcnNpc3RlbnQ7CisgICAgZWxzZSBpZiAobV90eXBlID09IERPTUZpbGVT
eXN0ZW1CYXNlOjp0ZW1wb3JhcnlQYXRoUHJlZml4KQorICAgICAgICB0eXBlID0gRmlsZVN5c3Rl
bVR5cGVUZW1wb3Jhcnk7CisgICAgZWxzZSB7CisgICAgICAgIHJlcG9ydFJlc3VsdChGaWxlRXJy
b3I6OlNZTlRBWF9FUlIsIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVmUHRy
PEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjayA9IEdldEZpbGVTeXN0ZW1Sb290VGFzazo6
R2V0RW50cnlDYWxsYmFjazo6Y3JlYXRlKHRoaXMpOworICAgIFJlZlB0cjxFcnJvckNhbGxiYWNr
PiBlcnJvckNhbGxiYWNrID0gR2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpFcnJvckNhbGxiYWNrOjpj
cmVhdGUodGhpcyk7CisgICAgT3duUHRyPFJlc29sdmVVUklDYWxsYmFja3M+IGZpbGVTeXN0ZW1D
YWxsYmFja3MgPSBSZXNvbHZlVVJJQ2FsbGJhY2tzOjpjcmVhdGUoc3VjY2Vzc0NhbGxiYWNrLCBl
cnJvckNhbGxiYWNrLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCB0eXBlLCAiLyIpOworCisgICAg
TG9jYWxGaWxlU3lzdGVtOjpsb2NhbEZpbGVTeXN0ZW0oKS5yZWFkRmlsZVN5c3RlbShzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCB0eXBlLCBmaWxlU3lzdGVtQ2FsbGJhY2tzLnJlbGVhc2UoKSk7Cit9
CisKK3ZvaWQgR2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpnb3RFbnRyeShFbnRyeSogZW50cnkpCit7
CisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeT4gcmVzdWx0KFR5cGVC
dWlsZGVyOjpGaWxlU3lzdGVtOjpFbnRyeTo6Y3JlYXRlKCkuc2V0VXJsKGVudHJ5LT50b1VSTCgp
KS5zZXROYW1lKCIvIikuc2V0SXNEaXJlY3RvcnkodHJ1ZSkpOworICAgIHJlcG9ydFJlc3VsdChz
dGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4oMCksIHJlc3VsdCk7Cit9CisKIGNsYXNz
IFJlYWREaXJlY3RvcnlUYXNrIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhZERpcmVjdG9yeVRhc2s+
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZWFkRGlyZWN0b3J5VGFzayk7CiBwdWJsaWM6
CkBAIC0zMDksNiArNDA4LDE4IEBAIHZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpkaXNh
YmxlKEVycm9yU3RyaW5nKikKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEZpbGVTeXN0ZW1BZ2Vu
dFN0YXRlOjpmaWxlU3lzdGVtQWdlbnRFbmFibGVkLCBtX2VuYWJsZWQpOwogfQogCit2b2lkIElu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Z2V0RmlsZVN5c3RlbVJvb3QoRXJyb3JTdHJpbmcqLCBp
bnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiB0eXBlKQor
eworICAgIGlmICghbV9lbmFibGVkIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXIpCisgICAgICAgIHJl
dHVybjsKKyAgICBBU1NFUlQobV9mcm9udGVuZFByb3ZpZGVyLT5mcm9udGVuZCgpKTsKKworICAg
IGlmIChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEZvck9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0
cmluZyhvcmlnaW4pLmdldCgpKSkKKyAgICAgICAgR2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpjcmVh
dGUobV9mcm9udGVuZFByb3ZpZGVyLCByZXF1ZXN0SWQsIHR5cGUpLT5zdGFydChzY3JpcHRFeGVj
dXRpb25Db250ZXh0KTsKKyAgICBlbHNlCisgICAgICAgIG1fZnJvbnRlbmRQcm92aWRlci0+ZnJv
bnRlbmQoKS0+Z290RmlsZVN5c3RlbVJvb3QocmVxdWVzdElkLCBzdGF0aWNfY2FzdDxpbnQ+KEZp
bGVFcnJvcjo6QUJPUlRfRVJSKSwgMCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50OjpyZWFkRGlyZWN0b3J5KEVycm9yU3RyaW5nKiwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3Ry
aW5nJiB1cmwpCiB7CiAgICAgaWYgKCFtX2VuYWJsZWQgfHwgIW1fZnJvbnRlbmRQcm92aWRlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVt
QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQuaAppbmRleCAwODNhYTYzNWI1MmUxOWU5NmRkOTQxYTA4Mzg3ZmQ2ZTNmYjVkZDZkLi43ZjQ0
YWMwZTg2ZjMzZGNjNTFmYmVjMzJlMTc5MDRmMTIzNGQxN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCkBAIC01OSw2ICs1
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBPVkVSUklERTsK
IAorICAgIHZpcnR1YWwgdm9pZCBnZXRGaWxlU3lzdGVtUm9vdChFcnJvclN0cmluZyosIGludCBy
ZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIHR5cGUpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCByZWFkRGlyZWN0b3J5KEVycm9yU3RyaW5nKiwgaW50IHJl
cXVlc3RJZCwgY29uc3QgU3RyaW5nJiB1cmwpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lk
IHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCmluZGV4
IDMwYTVhOWEzNzgxZGVkNmIwZTAwYzBlODU0Y2RmNTc3Y2VhNTU4NTguLjg5ZDI4NWQzMTYzNzcw
YzAxOWViM2FmOGI5NzA4YmE2ZGQyODU5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbU1vZGVsLmpzCkBAIC0xNDcsMTIgKzE0Nyw4
IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dID0ge307CiAKICAgICAgICAgdmFyIHR5
cGVzID0gWyJwZXJzaXN0ZW50IiwgInRlbXBvcmFyeSJdOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHR5cGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRSg4ODYwMik6
IENoZWNrIGlmIHRoZSBmaWxlc3lzdGVtIGlzIGluaXRpYWxpemVkLCBhbmQgc2hvdyBpdCBvbmx5
IGlmIGl0IHdhcy4KLSAgICAgICAgICAgIHZhciBmaWxlU3lzdGVtID0gbmV3IFdlYkluc3BlY3Rv
ci5GaWxlU3lzdGVtTW9kZWwuRmlsZVN5c3RlbSh0aGlzLCBvcmlnaW4sIHR5cGVzW2ldKTsKLSAg
ICAgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl1bdHlwZXNbaV1dID0g
ZmlsZVN5c3RlbTsKLSAgICAgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZChmaWxlU3lzdGVt
KTsKLSAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsg
KytpKQorICAgICAgICAgICAgdGhpcy5fYWdlbnRXcmFwcGVyLmdldEZpbGVTeXN0ZW1Sb290KG9y
aWdpbiwgdHlwZXNbaV0sIHRoaXMuX2dvdEZpbGVTeXN0ZW0uYmluZCh0aGlzLCBvcmlnaW4sIHR5
cGVzW2ldLCB0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dKSk7CiAgICAgfSwKIAog
ICAgIC8qKgpAQCAtMTg2LDEzICsxODIsMjYgQEAgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2Rl
bC5wcm90b3R5cGUgPSB7CiAKICAgICByZWZyZXNoRmlsZVN5c3RlbUxpc3Q6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIGZvciAodmFyIG9yaWdpbiBpbiB0aGlzLl9maWxlU3lzdGVtc0Zvck9y
aWdpbikKLSAgICAgICAgICAgIGZvciAodmFyIHR5cGUgaW4gdGhpcy5fZmlsZVN5c3RlbXNGb3JP
cmlnaW5bb3JpZ2luXSkKLSAgICAgICAgICAgICAgICB0aGlzLl9maWxlU3lzdGVtUmVtb3ZlZCh0
aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dW3R5cGVdKTsKKyAgICAgICAgaWYgKFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpIHsKKyAgICAgICAgICAgIHRo
aXMuX2RldGFjaEZyYW1lUmVjdXJzaXZlbHkoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVs
Lm1haW5GcmFtZSk7CisgICAgICAgICAgICB0aGlzLl9hdHRhY2hGcmFtZVJlY3Vyc2l2ZWx5KFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpOworICAgICAgICB9CisgICAg
fSwKIAotICAgICAgICBmb3IgKHZhciBvcmlnaW4gaW4gdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmln
aW4pCi0gICAgICAgICAgICBmb3IgKHZhciB0eXBlIGluIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3Jp
Z2luW29yaWdpbl0pCi0gICAgICAgICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbUFkZGVkKHRoaXMu
X2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl1bdHlwZV0pOworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBvcmlnaW4KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQorICAgICAq
IEBwYXJhbSB7T2JqZWN0LjxXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0+
fSBzdG9yZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUKKyAgICAgKiBAcGFyYW0g
e0ZpbGVTeXN0ZW1BZ2VudC5FbnRyeT19IGJhY2tlbmRSb290RW50cnkKKyAgICAgKi8KKyAgICBf
Z290RmlsZVN5c3RlbTogZnVuY3Rpb24ob3JpZ2luLCB0eXBlLCBzdG9yZSwgZXJyb3JDb2RlLCBi
YWNrZW5kUm9vdEVudHJ5KQorICAgIHsKKyAgICAgICAgaWYgKGVycm9yQ29kZSA9PT0gMCAmJiBi
YWNrZW5kUm9vdEVudHJ5ICYmIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl0gPT09
IHN0b3JlKSB7CisgICAgICAgICAgICB2YXIgZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNwZWN0b3Iu
RmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0odGhpcywgb3JpZ2luLCB0eXBlLCBiYWNrZW5kUm9v
dEVudHJ5KTsKKyAgICAgICAgICAgIHN0b3JlW3R5cGVdID0gZmlsZVN5c3RlbTsKKyAgICAgICAg
ICAgIHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZChmaWxlU3lzdGVtKTsKKyAgICAgICAgfQogICAgIH0K
IH0KIApAQCAtMjA4LDggKzIxNyw5IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlCiAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWx9IGZpbGVTeXN0ZW1Nb2RlbAogICogQHBh
cmFtIHtzdHJpbmd9IG9yaWdpbgogICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAqIEBwYXJhbSB7
RmlsZVN5c3RlbUFnZW50LkVudHJ5fSBiYWNrZW5kUm9vdEVudHJ5CiAgKi8KLVdlYkluc3BlY3Rv
ci5GaWxlU3lzdGVtTW9kZWwuRmlsZVN5c3RlbSA9IGZ1bmN0aW9uKGZpbGVTeXN0ZW1Nb2RlbCwg
b3JpZ2luLCB0eXBlKQorV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtID0g
ZnVuY3Rpb24oZmlsZVN5c3RlbU1vZGVsLCBvcmlnaW4sIHR5cGUsIGJhY2tlbmRSb290RW50cnkp
CiB7CiAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW47CiAgICAgdGhpcy50eXBlID0gdHlwZTsKQEAg
LTIyNyw2ICsyMzcsNyBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVTeXN0ZW0u
cHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2Vy
ID0gZnVuY3Rpb24oKQogeworICAgIHRoaXMuX3BlbmRpbmdHZXRGaWxlU3lzdGVtUm9vdFJlcXVl
c3RzID0ge307CiAgICAgdGhpcy5fcGVuZGluZ1JlYWREaXJlY3RvcnlSZXF1ZXN0cyA9IHt9Owog
CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckZpbGVTeXN0ZW1EaXNwYXRjaGVyKG5ldyBX
ZWJJbnNwZWN0b3IuRmlsZVN5c3RlbURpc3BhdGNoZXIodGhpcykpOwpAQCAtMjQ1LDYgKzI1Niwz
MiBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyLnByb3RvdHlwZSA9IHsK
ICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbgorICAgICAq
IEBwYXJhbSB7c3RyaW5nfSB0eXBlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIsIEZp
bGVTeXN0ZW1BZ2VudC5FbnRyeSl9IGNhbGxiYWNrCisgICAgICovCisgICAgZ2V0RmlsZVN5c3Rl
bVJvb3Q6IGZ1bmN0aW9uKG9yaWdpbiwgdHlwZSwgY2FsbGJhY2spCisgICAgeworICAgICAgICB2
YXIgcmVxdWVzdElkID0gdGhpcy5fcmVxdWVzdElkKCk7CisgICAgICAgIHRoaXMuX3BlbmRpbmdH
ZXRGaWxlU3lzdGVtUm9vdFJlcXVlc3RzW3JlcXVlc3RJZF0gPSBjYWxsYmFjazsKKyAgICAgICAg
RmlsZVN5c3RlbUFnZW50LmdldEZpbGVTeXN0ZW1Sb290KHJlcXVlc3RJZCwgb3JpZ2luLCB0eXBl
KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHJlcXVlc3RJZAor
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUKKyAgICAgKiBAcGFyYW0ge0ZpbGVTeXN0
ZW1BZ2VudC5FbnRyeT19IGJhY2tlbmRSb290RW50cnkKKyAgICAgKi8KKyAgICBfZ290RmlsZVN5
c3RlbVJvb3Q6IGZ1bmN0aW9uKHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBiYWNrZW5kUm9vdEVudHJ5
KQorICAgIHsKKyAgICAgICAgdmFyIGNhbGxiYWNrID0gdGhpcy5fcGVuZGluZ0dldEZpbGVTeXN0
ZW1Sb290UmVxdWVzdHNbcmVxdWVzdElkXTsKKyAgICAgICAgaWYgKCFjYWxsYmFjaykKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3BlbmRpbmdHZXRGaWxlU3lzdGVt
Um9vdFJlcXVlc3RzW3JlcXVlc3RJZF07CisgICAgICAgIGNhbGxiYWNrKGVycm9yQ29kZSwgYmFj
a2VuZFJvb3RFbnRyeSk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlciwgQXJyYXkuPEZpbGVTeXN0ZW1B
Z2VudC5FbnRyeT49KX0gY2FsbGJhY2sKICAgICAgKi8KQEAgLTI4NCw2ICszMjEsMTYgQEAgV2Vi
SW5zcGVjdG9yLkZpbGVTeXN0ZW1EaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAg
ICAgKiBAcGFyYW0ge251bWJlcn0gcmVxdWVzdElkCiAgICAgICogQHBhcmFtIHtudW1iZXJ9IGVy
cm9yQ29kZQorICAgICAqIEBwYXJhbSB7QXJyYXkuPEZpbGVTeXN0ZW1BZ2VudC5FbnRyeT49fSBi
YWNrZW5kRW50cnkKKyAgICAgKi8KKyAgICBnb3RGaWxlU3lzdGVtUm9vdDogZnVuY3Rpb24ocmVx
dWVzdElkLCBlcnJvckNvZGUsIGJhY2tlbmRSb290RW50cnkpCisgICAgeworICAgICAgICB0aGlz
Ll9hZ2VudFdyYXBwZXIuX2dvdEZpbGVTeXN0ZW1Sb290KHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBi
YWNrZW5kUm9vdEVudHJ5KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1i
ZXJ9IHJlcXVlc3RJZAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUKICAgICAgKiBA
cGFyYW0ge0FycmF5LjxGaWxlU3lzdGVtQWdlbnQuRW50cnk+PX0gYmFja2VuZEVudHJpZXMKICAg
ICAgKi8KICAgICBkaWRSZWFkRGlyZWN0b3J5OiBmdW5jdGlvbihyZXF1ZXN0SWQsIGVycm9yQ29k
ZSwgYmFja2VuZEVudHJpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCA1OGU5MzYxZDdkODViM2EzMDExODNkMWUz
Yzc4MzhhYjFhMjJlMzhjLi5jOTdjMWYyNWI3M2I0N2NiODQxMWViODMzZGU5NDE3MGNmNzY5Yzcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VzUGFuZWwuanMKQEAgLTE1MjUsNyArMTUyNSw2IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVt
TGlzdFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGZpbGVTeXN0ZW1UcmVl
RWxlbWVudCA9IHRoaXMuX2ZpbGVTeXN0ZW1UcmVlRWxlbWVudEJ5TmFtZShmaWxlU3lzdGVtLm5h
bWUpOwogICAgICAgICBpZiAoIWZpbGVTeXN0ZW1UcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgZmlsZVN5c3RlbVRyZWVFbGVtZW50LmNsZWFyKCk7CiAgICAgICAgIHRo
aXMucmVtb3ZlQ2hpbGQoZmlsZVN5c3RlbVRyZWVFbGVtZW50KTsKICAgICB9LAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YTViMzVhODQ2MWE5Njg2ZGVmZGJkNjJhMWY0ODEzNTcyOWNkZjg5OS4uNDY3Y2FhYzU3MzU5MjM3
YjQ2YjhiNmNiYmZmM2RjMTVhNmQxNjkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0IEBACiAyMDEyLTA2
LTE1ICBUYWlqdSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiBGaWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lz
dGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYw
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9nZXQtZmlsZXN5c3RlbS1yb290Lmh0bWw6IEFk
ZGVkLgorCisyMDEyLTA2LTE1ICBUYWlqdSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKwog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBNb3ZlIEZpbGVTeXN0ZW0gZnJhbWUgbWFuYWdlbWVudCBm
cm9tIGZyb250ZW5kIHRvIGJhY2tlbmQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5MTkwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZ2V0LWZpbGVzeXN0ZW0tcm9vdC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9nZXQtZmlsZXN5c3RlbS1yb290
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzNhODc0MTY5NjBiZDE3ZTQ3MGVkNWUxNmE5NzJlM2UwZDY3OTI0
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Zp
bGVzeXN0ZW0vZ2V0LWZpbGVzeXN0ZW0tcm9vdC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9D
VFlQRSBodG1sPjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKzxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iZmlsZXN5c3RlbS10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50
TG9hZGVkIiwgcnVuVGVzdCk7CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgZmlsZVN5c3Rl
bVJlcXVlc3RNYW5hZ2VyID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUmVxdWVzdE1hbmFn
ZXIoKTsKKworICAgIEluc3BlY3RvclRlc3QuY2xlYXJGaWxlU3lzdGVtKHN0ZXAxKTsKKworICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBBZGQgQVBJIHRvIGRl
bGV0ZSBhIEZpbGVTeXN0ZW0gY29tcGxldGVseSBhbmQgdGVzdCBnZXRGaWxlU3lzdGVtUm9vdCBm
b3IKKyAgICAgICAgLy8gdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtLgorICAgICAgICBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUZpbGUoIi9ob2dlIiwgc3RlcDIpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKKyAgICB7CisgICAgICAgIGZpbGVTeXN0ZW1SZXF1ZXN0TWFuYWdlci5nZXRGaWxl
U3lzdGVtUm9vdCgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgInRlbXBvcmFyeSIsIHN0ZXAzKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMyhlcnJvckNvZGUsIGJhY2tlbmRSb290RW50cnkp
CisgICAgeworICAgICAgICBpZiAoZXJyb3JDb2RlID09PSAwICYmIGJhY2tlbmRSb290RW50cnkp
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUEFTUzogIiArIGJhY2tlbmRS
b290RW50cnkudXJsICsgIiBpcyBmb3VuZC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUw6IGVycm9yQ29kZSA9ICIgKyBlcnJvckNvZGUp
OworCisgICAgICAgIEluc3BlY3RvclRlc3QuY2xlYXJGaWxlU3lzdGVtKHN0ZXA0KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwNChlcnJvckNvZGUsIGZpbGVTeXN0ZW0pCisgICAgeworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKworPC9zY3JpcHQ+
Cis8cD5UZXN0cyBnZXRGaWxlU3lzdGVtUm9vdC48L3A+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148288</attachid>
            <date>2012-06-19 01:50:38 -0700</date>
            <delta_ts>2012-06-19 03:38:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88602-20120619175038.patch</filename>
            <type>text/plain</type>
            <size>21008</size>
            <attacher name="Taiju Tsuiki">tzik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBmZmFmM2FkYTI3ZmFh
MWYyNWNlNDZmN2UyYWUwZWE0NzhhYzM4NS4uYzk5YjdjYjhmNTEwYzJlNmQwNTIxNDliOGRiMTQ3
YWIzY2ZmOTM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA2LTE5ICBUYWlq
dSBUc3Vpa2kgIDx0emlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBG
aWxlU3lzdGVtIHRyZWUgc2hvdWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZ2V0LWZpbGVzeXN0ZW0tcm9vdC5odG1sCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Z2V0RmlsZVN5c3RlbVJvb3QpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaDoKKyAgICAgICAgKElu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9G
aWxlU3lzdGVtTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVs
LnByb3RvdHlwZS5fb3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVTeXN0
ZW1Nb2RlbC5wcm90b3R5cGUucmVmcmVzaEZpbGVTeXN0ZW1MaXN0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLl9nb3RGaWxlU3lzdGVtKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZVN5c3RlbSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5GaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIucHJvdG90eXBlLmdldEZpbGVTeXN0ZW1Sb290
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIucHJvdG90
eXBlLl9nb3RGaWxlU3lzdGVtUm9vdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3Rl
bURpc3BhdGNoZXIucHJvdG90eXBlLmdvdEZpbGVTeXN0ZW1Sb290KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkZpbGVTeXN0ZW1MaXN0VHJlZUVsZW1lbnQucHJvdG90eXBlLl9maWxlU3lzdGVtUmVtb3ZlZCk6
CisKIDIwMTItMDYtMTggIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBDcmFzaCB3aGVuIHNldHRpbmcgdGl0bGUgZHluYW1pY2FsbHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBjZjE5OGMwZmNiMGEyNGJhNTkyNWYy
OGRkNGQ3Y2JhOGI2ZDE2ZDMyLi5lMDYzMGU2ZDRiMGY5MzY4YjI4MzgyMTY4YTg1M2FhYjI0YTNl
MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNDA5LDEx
ICsxNDA5LDEyIEBACiAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAg
ICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1
cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiZmlsZXN5c3RlbTogVVJMIGZv
ciB0aGUgZW50cnkuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAi
dHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIs
ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgbmFtZSBvZiB0aGUgZmlsZSBv
ciBkaXJlY3RvcnkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzRGlyZWN0
b3J5IiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlmIHRoZSBlbnRy
eSBpcyBhIGRpcmVjdG9yeS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWlt
ZVR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiTUlNRSB0eXBlIG9mIHRoZSBlbnRyeSwgYXZhaWxhYmxlIGZvciBhIGZpbGUgb25seS4iIH0s
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzb3VyY2VUeXBlIiwgIiRyZWYiOiAi
UGFnZS5SZXNvdXJjZVR5cGUiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUmVz
b3VyY2VUeXBlIG9mIHRoZSBlbnRyeSwgYXZhaWxhYmxlIGZvciBhIGZpbGUgb25seS4iIH0KLSAg
ICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiUmVwcmVzZW50cyBhIGJyb3dzZXIgc2lkZSBmaWxlIG9yIGRpcmVjdG9yeS4i
CiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5kcyI6IFsKQEAgLTE0
MjYsMjIgKzE0MjcsNDEgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJs
ZXMgZXZlbnRzIGZyb20gYmFja2VuZC4iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldEZpbGVTeXN0ZW1Sb290IiwKKyAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXF1
ZXN0SWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3QgSWRlbnRp
ZmllciBvZiB0aGUgY29tbWFuZC4gVGhlIGJhY2tlbmQgc2hvdWxkIHBhc3MgYmFjayB0aGlzIHZh
bHVlIG9uIGNvcnJlc3BvbmRpbmcgZ290RmlsZVN5c3RlbVJvb3QgZXZlbnQuIiB9LAorICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIsICJ0eXBlIjogInN0cmluZyIsICJkZXNj
cmlwdGlvbiI6ICJTZWN1cml0eSBvcmlnaW4gb2YgcmVxdWVzdGluZyBGaWxlU3lzdGVtLiBPbmUg
b2YgZnJhbWVzIGluIGN1cnJlbnQgcGFnZSBuZWVkcyB0byBoYXZlIHRoaXMgc2VjdXJpdHkgb3Jp
Z2luLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAi
c3RyaW5nIiwgImVudW0iOiBbInRlbXBvcmFyeSIsICJwZXJzaXN0ZW50Il0sICJkZXNjcmlwdGlv
biI6ICJGaWxlU3lzdGVtIHR5cGUgb2YgcmVxdWVzdGluZyBGaWxlU3lzdGVtLiIgfQorICAgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgcm9v
dCBkaXJlY3Rvcnkgb2YgdGhlIEZpbGVTeXN0ZW0gaWYgZXhpc3RzLiIKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVhZERpcmVjdG9yeSIs
Ci0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcXVlc3RzIHRvIHJlYWQgdGhlIGRp
cmVjdG9yeSBjb250ZW50LiBSZXN1bHQgc2hvdWxkIHJldHVybiBvbiBkaWRSZWFkRGlyZWN0b3J5
IGV2ZW50IHdpdGggcmVxdWVzdCBpZC4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJZCIsICJ0eXBlIjogImlu
dGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAi
c3RyaW5nIiB9Ci0gICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInJlcXVlc3RJZCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiUmVxdWVz
dCBJZGVudGlmaWVyIG9mIHRoZSBjb21tYW5kLiBUaGUgYmFja2VuZCBzaG91bGQgcGFzcyBiYWNr
IHRoaXMgdmFsdWUgb24gY29ycmVzcG9uZGluZyBkaWRSZWFkRGlyZWN0b3J5IGV2ZW50LiIgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiVVJMIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCB0aGUgZnJvbnRlbmQgaXMg
cmVxdWVzdGluZyB0byByZWFkIGZyb20uIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVxdWVzdHMgdG8gcmVhZCB0aGUgZGlyZWN0b3J5IGNv
bnRlbnQuIFJlc3VsdCBzaG91bGQgcmV0dXJuIG9uIGRpZFJlYWREaXJlY3RvcnkgZXZlbnQgd2l0
aCByZXF1ZXN0IGlkLiIKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50
cyI6IFsKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnb3RGaWxlU3lz
dGVtUm9vdCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicmVxdWVzdElkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlw
dGlvbiI6ICJSZXF1ZXN0IElkZW50aWZpZXIgdGhhdCB3YXMgcGFzc2VkIHRvIGNvcnJlc3BvbmRp
bmcgZ2V0RmlsZVN5c3RlbVJvb3QgY29tbWFuZC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZXJyb3JDb2RlIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICIw
LCBpZiBubyBlcnJvci4gT3RoZXJ3aXNlLCBlcnJvckNvZGUgaXMgc2V0IHRvIEZpbGVFcnJvcjo6
RXJyb3JDb2RlIHZhbHVlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyb290
IiwgIiRyZWYiOiAiRmlsZVN5c3RlbS5FbnRyeSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJDb250YWlucyByb290IG9mIHRoZSByZXF1ZXN0ZWQgRmlsZVN5c3RlbSBpZiB0aGUg
Y29tbWFuZCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiIgfQorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNvbXBsZXRpb24gZXZlbnQgb2YgZ2V0Rmls
ZVN5c3RlbVJvb3QgY29tbWFuZC4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICJuYW1lIjogImRpZFJlYWREaXJlY3RvcnkiLAogICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcXVlc3RJ
ZCIsICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZXJyb3JDb2RlIiwgImRlc2NyaXB0aW9uIjogIjAsIGlmIG5vIGVycm9yLiBPdGhlcndpc2UsIGVy
cm9yQ29kZSBpcyBzZXQgdG8gRmlsZUVycm9yOjpFcnJvckNvZGUgdmFsdWUuIiwgInR5cGUiOiAi
aW50ZWdlciIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbnRyaWVzIiwgInR5
cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkZpbGVTeXN0ZW0uRW50cnkiIH0sICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJFbnRyaWVzIG9mIHRoZSBkaXJlY3Rvcnku
IiB9Ci0gICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJl
cXVlc3RJZCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiUmVxdWVzdCBJZGVu
dGlmaWVyIHRoYXQgd2FzIHBhc3NlZCB0byBjb3JyZXNwb25kaW5nIHJlYWREaXJlY3RvcnkgcmVx
dWVzdC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXJyb3JDb2RlIiwgInR5
cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICIwLCBpZiBubyBlcnJvci4gT3RoZXJ3aXNl
LCBlcnJvckNvZGUgaXMgc2V0IHRvIEZpbGVFcnJvcjo6RXJyb3JDb2RlIHZhbHVlLiIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbnRyaWVzIiwgInR5cGUiOiAiYXJyYXkiLCAi
aXRlbXMiOiB7ICIkcmVmIjogIkZpbGVTeXN0ZW0uRW50cnkiIH0sICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJDb250YWlucyBhbGwgZW50cmllcyBvbiBkaXJlY3RvcnkgaWYgdGhl
IGNvbW1hbmQgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4iIH0KKyAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wbGV0aW9uIGV2ZW50IG9mIHJlYWRE
aXJlY3RvcnkgY29tbWFuZC4iCiAgICAgICAgICAgICB9CiAgICAgICAgIF0KICAgICB9LApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
LmNwcAppbmRleCBjMDk0NTUyZjNkZTUzMzIzZWU0M2NjNTY0OWQzMmRkZWFjNjY5ZmM0Li44NWU0
MTA1YTM0NGIyMmQ4OWI0MTRmMjVhYTcxYTRiZjZiZGE5MDM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcApAQCAtOTYs
NiArOTYsMTA1IEBAIHR5cGVkZWYgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpGcm9udGVuZFBy
b3ZpZGVyIEZyb250ZW5kUHJvdmlkZXI7CiAKIG5hbWVzcGFjZSB7CiAKK2NsYXNzIEdldEZpbGVT
eXN0ZW1Sb290VGFzayA6IHB1YmxpYyBSZWZDb3VudGVkPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4g
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdldEZpbGVTeXN0ZW1Sb290VGFzayk7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrPiBjcmVhdGUo
UGFzc1JlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBmcm9udGVuZFByb3ZpZGVyLCBpbnQgcmVxdWVz
dElkLCBjb25zdCBTdHJpbmcmIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEdldEZpbGVTeXN0ZW1Sb290VGFzayhmcm9udGVuZFByb3ZpZGVyLCByZXF1ZXN0SWQsIHR5
cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
KworcHJpdmF0ZToKKyAgICBjbGFzcyBFcnJvckNhbGxiYWNrOworICAgIGNsYXNzIEdldEVudHJ5
Q2FsbGJhY2s7CisKKyAgICB2b2lkIGdvdEVudHJ5KEVudHJ5Kik7CisKKyAgICB2b2lkIHJlcG9y
dFJlc3VsdChGaWxlRXJyb3I6OkVycm9yQ29kZSBlcnJvckNvZGUsIFBhc3NSZWZQdHI8VHlwZUJ1
aWxkZXI6OkZpbGVTeXN0ZW06OkVudHJ5PiBlbnRyeSkKKyAgICB7CisgICAgICAgIGlmICghbV9m
cm9udGVuZFByb3ZpZGVyIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQoKS0+
Z290RmlsZVN5c3RlbVJvb3QobV9yZXF1ZXN0SWQsIHN0YXRpY19jYXN0PGludD4oZXJyb3JDb2Rl
KSwgZW50cnkpOworICAgICAgICBtX2Zyb250ZW5kUHJvdmlkZXIgPSAwOworICAgIH0KKworICAg
IEdldEZpbGVTeXN0ZW1Sb290VGFzayhQYXNzUmVmUHRyPEZyb250ZW5kUHJvdmlkZXI+IGZyb250
ZW5kUHJvdmlkZXIsIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICAgICAg
OiBtX2Zyb250ZW5kUHJvdmlkZXIoZnJvbnRlbmRQcm92aWRlcikKKyAgICAgICAgLCBtX3JlcXVl
c3RJZChyZXF1ZXN0SWQpCisgICAgICAgICwgbV90eXBlKHR5cGUpIHsgfQorCisgICAgUmVmUHRy
PEZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRlcjsKKyAgICBpbnQgbV9yZXF1ZXN0
SWQ7CisgICAgU3RyaW5nIG1fdHlwZTsKK307CisKK2NsYXNzIEdldEZpbGVTeXN0ZW1Sb290VGFz
azo6RXJyb3JDYWxsYmFjayA6IHB1YmxpYyBXZWJDb3JlOjpFcnJvckNhbGxiYWNrIHsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShFcnJvckNhbGxiYWNrKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkVycm9yQ2FsbGJhY2s+IGNyZWF0ZShQ
YXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6
OkVycm9yQ2FsbGJhY2soZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKSk7CisgICAgfQorCisgICAgdmly
dHVhbCBib29sIGhhbmRsZUV2ZW50KEZpbGVFcnJvciogZXJyb3IpIE9WRVJSSURFCisgICAgewor
ICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+cmVwb3J0UmVzdWx0KGVycm9yLT5jb2Rl
KCksIDApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRXJy
b3JDYWxsYmFjayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5c3Rl
bVJvb3RUYXNrKQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKGdldEZpbGVTeXN0
ZW1Sb290VGFzaykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gbV9nZXRG
aWxlU3lzdGVtUm9vdFRhc2s7Cit9OworCitjbGFzcyBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6Okdl
dEVudHJ5Q2FsbGJhY2sgOiBwdWJsaWMgV2ViQ29yZTo6RW50cnlDYWxsYmFjayB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoR2V0RW50cnlDYWxsYmFjayk7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8R2V0RmlsZVN5c3RlbVJvb3RUYXNrOjpHZXRFbnRyeUNhbGxiYWNrPiBjcmVh
dGUoUGFzc1JlZlB0cjxHZXRGaWxlU3lzdGVtUm9vdFRhc2s+IGdldEZpbGVTeXN0ZW1Sb290VGFz
aykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0RmlsZVN5c3RlbVJvb3RU
YXNrOjpHZXRFbnRyeUNhbGxiYWNrKGdldEZpbGVTeXN0ZW1Sb290VGFzaykpOworICAgIH0KKwor
ICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChFbnRyeSogZW50cnkpIE9WRVJSSURFCisgICAg
eworICAgICAgICBtX2dldEZpbGVTeXN0ZW1Sb290VGFzay0+Z290RW50cnkoZW50cnkpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgR2V0RW50cnlDYWxsYmFj
ayhQYXNzUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gZ2V0RmlsZVN5c3RlbVJvb3RUYXNr
KQorICAgICAgICA6IG1fZ2V0RmlsZVN5c3RlbVJvb3RUYXNrKGdldEZpbGVTeXN0ZW1Sb290VGFz
aykgeyB9CisgICAgUmVmUHRyPEdldEZpbGVTeXN0ZW1Sb290VGFzaz4gbV9nZXRGaWxlU3lzdGVt
Um9vdFRhc2s7Cit9OworCit2b2lkIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6c3RhcnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK3sKKyAgICBGaWxlU3lz
dGVtVHlwZSB0eXBlOworICAgIGlmIChtX3R5cGUgPT0gRE9NRmlsZVN5c3RlbUJhc2U6OnBlcnNp
c3RlbnRQYXRoUHJlZml4KQorICAgICAgICB0eXBlID0gRmlsZVN5c3RlbVR5cGVQZXJzaXN0ZW50
OworICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBET01GaWxlU3lzdGVtQmFzZTo6dGVtcG9yYXJ5UGF0
aFByZWZpeCkKKyAgICAgICAgdHlwZSA9IEZpbGVTeXN0ZW1UeXBlVGVtcG9yYXJ5OworICAgIGVs
c2UgeworICAgICAgICByZXBvcnRSZXN1bHQoRmlsZUVycm9yOjpTWU5UQVhfRVJSLCAwKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlZlB0cjxFbnRyeUNhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2sgPSBHZXRGaWxlU3lzdGVtUm9vdFRhc2s6OkdldEVudHJ5Q2FsbGJhY2s6OmNyZWF0
ZSh0aGlzKTsKKyAgICBSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayA9IEdldEZp
bGVTeXN0ZW1Sb290VGFzazo6RXJyb3JDYWxsYmFjazo6Y3JlYXRlKHRoaXMpOworICAgIE93blB0
cjxSZXNvbHZlVVJJQ2FsbGJhY2tzPiBmaWxlU3lzdGVtQ2FsbGJhY2tzID0gUmVzb2x2ZVVSSUNh
bGxiYWNrczo6Y3JlYXRlKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgdHlwZSwgIi8iKTsKKworICAgIExvY2FsRmlsZVN5c3RlbTo6bG9jYWxG
aWxlU3lzdGVtKCkucmVhZEZpbGVTeXN0ZW0oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgdHlwZSwg
ZmlsZVN5c3RlbUNhbGxiYWNrcy5yZWxlYXNlKCkpOworfQorCit2b2lkIEdldEZpbGVTeXN0ZW1S
b290VGFzazo6Z290RW50cnkoRW50cnkqIGVudHJ5KQoreworICAgIFJlZlB0cjxUeXBlQnVpbGRl
cjo6RmlsZVN5c3RlbTo6RW50cnk+IHJlc3VsdChUeXBlQnVpbGRlcjo6RmlsZVN5c3RlbTo6RW50
cnk6OmNyZWF0ZSgpLnNldFVybChlbnRyeS0+dG9VUkwoKSkuc2V0TmFtZSgiLyIpLnNldElzRGly
ZWN0b3J5KHRydWUpKTsKKyAgICByZXBvcnRSZXN1bHQoc3RhdGljX2Nhc3Q8RmlsZUVycm9yOjpF
cnJvckNvZGU+KDApLCByZXN1bHQpOworfQorCiBjbGFzcyBSZWFkRGlyZWN0b3J5VGFzayA6IHB1
YmxpYyBSZWZDb3VudGVkPFJlYWREaXJlY3RvcnlUYXNrPiB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUmVhZERpcmVjdG9yeVRhc2spOwogcHVibGljOgpAQCAtMzA5LDYgKzQwOCwxOCBAQCB2
b2lkIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAg
bV9zdGF0ZS0+c2V0Qm9vbGVhbihGaWxlU3lzdGVtQWdlbnRTdGF0ZTo6ZmlsZVN5c3RlbUFnZW50
RW5hYmxlZCwgbV9lbmFibGVkKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6
OmdldEZpbGVTeXN0ZW1Sb290KEVycm9yU3RyaW5nKiwgaW50IHJlcXVlc3RJZCwgY29uc3QgU3Ry
aW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBpZiAoIW1fZW5hYmxlZCB8
fCAhbV9mcm9udGVuZFByb3ZpZGVyKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fZnJv
bnRlbmRQcm92aWRlci0+ZnJvbnRlbmQoKSk7CisKKyAgICBpZiAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGb3JP
cmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luKS5nZXQoKSkpCisg
ICAgICAgIEdldEZpbGVTeXN0ZW1Sb290VGFzazo6Y3JlYXRlKG1fZnJvbnRlbmRQcm92aWRlciwg
cmVxdWVzdElkLCB0eXBlKS0+c3RhcnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgZWxz
ZQorICAgICAgICBtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmdvdEZpbGVTeXN0ZW1S
b290KHJlcXVlc3RJZCwgc3RhdGljX2Nhc3Q8aW50PihGaWxlRXJyb3I6OkFCT1JUX0VSUiksIDAp
OworfQorCiB2b2lkIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6cmVhZERpcmVjdG9yeShFcnJv
clN0cmluZyosIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIGlmICgh
bV9lbmFibGVkIHx8ICFtX2Zyb250ZW5kUHJvdmlkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKaW5kZXggMDgzYWE2MzViNTJl
MTllOTZkZDk0MWEwODM4N2ZkNmUzZmI1ZGQ2ZC4uN2Y0NGFjMGU4NmYzM2RjYzUxZmJlYzMyZTE3
OTA0ZjEyMzRkMTdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGaWxlU3lzdGVtQWdlbnQuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNhYmxlKEVycm9yU3RyaW5nKikgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
RmlsZVN5c3RlbVJvb3QoRXJyb3JTdHJpbmcqLCBpbnQgcmVxdWVzdElkLCBjb25zdCBTdHJpbmcm
IG9yaWdpbiwgY29uc3QgU3RyaW5nJiB0eXBlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVhZERpcmVjdG9yeShFcnJvclN0cmluZyosIGludCByZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYg
dXJsKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JG
cm9udGVuZCopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9GaWxlU3lzdGVtTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Nb2RlbC5qcwppbmRleCAzMGE1YTlhMzc4MWRlZDZiMGUwMGMw
ZTg1NGNkZjU3N2NlYTU1ODU4Li5mMmVmNjllYzJhNjVlMDU4YjU4Yzg5MDQ3NGRiNDcwNTllZjJm
ZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVT
eXN0ZW1Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Zp
bGVTeXN0ZW1Nb2RlbC5qcwpAQCAtMTQ3LDEyICsxNDcsOCBAQCBXZWJJbnNwZWN0b3IuRmlsZVN5
c3RlbU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmln
aW5bb3JpZ2luXSA9IHt9OwogCiAgICAgICAgIHZhciB0eXBlcyA9IFsicGVyc2lzdGVudCIsICJ0
ZW1wb3JhcnkiXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgLy8gRklYTUUoODg2MDIpOiBDaGVjayBpZiB0aGUgZmlsZXN5c3Rl
bSBpcyBpbml0aWFsaXplZCwgYW5kIHNob3cgaXQgb25seSBpZiBpdCB3YXMuCi0gICAgICAgICAg
ICB2YXIgZmlsZVN5c3RlbSA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVT
eXN0ZW0odGhpcywgb3JpZ2luLCB0eXBlc1tpXSk7Ci0gICAgICAgICAgICB0aGlzLl9maWxlU3lz
dGVtc0Zvck9yaWdpbltvcmlnaW5dW3R5cGVzW2ldXSA9IGZpbGVTeXN0ZW07Ci0gICAgICAgICAg
ICB0aGlzLl9maWxlU3lzdGVtQWRkZWQoZmlsZVN5c3RlbSk7Ci0gICAgICAgIH0KKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMu
X2FnZW50V3JhcHBlci5nZXRGaWxlU3lzdGVtUm9vdChvcmlnaW4sIHR5cGVzW2ldLCB0aGlzLl9n
b3RGaWxlU3lzdGVtLmJpbmQodGhpcywgb3JpZ2luLCB0eXBlc1tpXSwgdGhpcy5fZmlsZVN5c3Rl
bXNGb3JPcmlnaW5bb3JpZ2luXSkpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE4NiwxMyArMTgy
LDI2IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlID0gewogCiAgICAg
cmVmcmVzaEZpbGVTeXN0ZW1MaXN0OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBmb3IgKHZh
ciBvcmlnaW4gaW4gdGhpcy5fZmlsZVN5c3RlbXNGb3JPcmlnaW4pCi0gICAgICAgICAgICBmb3Ig
KHZhciB0eXBlIGluIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luW29yaWdpbl0pCi0gICAgICAg
ICAgICAgICAgdGhpcy5fZmlsZVN5c3RlbVJlbW92ZWQodGhpcy5fZmlsZVN5c3RlbXNGb3JPcmln
aW5bb3JpZ2luXVt0eXBlXSk7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVl
TW9kZWwubWFpbkZyYW1lKSB7CisgICAgICAgICAgICB0aGlzLl9kZXRhY2hGcmFtZVJlY3Vyc2l2
ZWx5KFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpOworICAgICAgICAg
ICAgdGhpcy5fYXR0YWNoRnJhbWVSZWN1cnNpdmVseShXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVl
TW9kZWwubWFpbkZyYW1lKTsKKyAgICAgICAgfQorICAgIH0sCiAKLSAgICAgICAgZm9yICh2YXIg
b3JpZ2luIGluIHRoaXMuX2ZpbGVTeXN0ZW1zRm9yT3JpZ2luKQotICAgICAgICAgICAgZm9yICh2
YXIgdHlwZSBpbiB0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dKQotICAgICAgICAg
ICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZCh0aGlzLl9maWxlU3lzdGVtc0Zvck9yaWdpbltv
cmlnaW5dW3R5cGVdKTsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luCisg
ICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAgICAgKiBAcGFyYW0ge09iamVjdC48V2ViSW5z
cGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtPn0gc3RvcmUKKyAgICAgKiBAcGFyYW0g
e251bWJlcn0gZXJyb3JDb2RlCisgICAgICogQHBhcmFtIHtGaWxlU3lzdGVtQWdlbnQuRW50cnk9
fSBiYWNrZW5kUm9vdEVudHJ5CisgICAgICovCisgICAgX2dvdEZpbGVTeXN0ZW06IGZ1bmN0aW9u
KG9yaWdpbiwgdHlwZSwgc3RvcmUsIGVycm9yQ29kZSwgYmFja2VuZFJvb3RFbnRyeSkKKyAgICB7
CisgICAgICAgIGlmIChlcnJvckNvZGUgPT09IDAgJiYgYmFja2VuZFJvb3RFbnRyeSAmJiB0aGlz
Ll9maWxlU3lzdGVtc0Zvck9yaWdpbltvcmlnaW5dID09PSBzdG9yZSkgeworICAgICAgICAgICAg
dmFyIGZpbGVTeXN0ZW0gPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lz
dGVtKHRoaXMsIG9yaWdpbiwgdHlwZSwgYmFja2VuZFJvb3RFbnRyeSk7CisgICAgICAgICAgICBz
dG9yZVt0eXBlXSA9IGZpbGVTeXN0ZW07CisgICAgICAgICAgICB0aGlzLl9maWxlU3lzdGVtQWRk
ZWQoZmlsZVN5c3RlbSk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTIwOCw4ICsyMTcsOSBA
QCBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRmlsZVN5
c3RlbU1vZGVsfSBmaWxlU3lzdGVtTW9kZWwKICAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW4KICAq
IEBwYXJhbSB7c3RyaW5nfSB0eXBlCisgKiBAcGFyYW0ge0ZpbGVTeXN0ZW1BZ2VudC5FbnRyeX0g
YmFja2VuZFJvb3RFbnRyeQogICovCi1XZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1vZGVsLkZpbGVT
eXN0ZW0gPSBmdW5jdGlvbihmaWxlU3lzdGVtTW9kZWwsIG9yaWdpbiwgdHlwZSkKK1dlYkluc3Bl
Y3Rvci5GaWxlU3lzdGVtTW9kZWwuRmlsZVN5c3RlbSA9IGZ1bmN0aW9uKGZpbGVTeXN0ZW1Nb2Rl
bCwgb3JpZ2luLCB0eXBlLCBiYWNrZW5kUm9vdEVudHJ5KQogewogICAgIHRoaXMub3JpZ2luID0g
b3JpZ2luOwogICAgIHRoaXMudHlwZSA9IHR5cGU7CkBAIC0yMjcsNiArMjM3LDcgQEAgV2ViSW5z
cGVjdG9yLkZpbGVTeXN0ZW1Nb2RlbC5GaWxlU3lzdGVtLnByb3RvdHlwZSA9IHsKICAqLwogV2Vi
SW5zcGVjdG9yLkZpbGVTeXN0ZW1SZXF1ZXN0TWFuYWdlciA9IGZ1bmN0aW9uKCkKIHsKKyAgICB0
aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJvb3RSZXF1ZXN0cyA9IHt9OwogICAgIHRoaXMuX3Bl
bmRpbmdSZWFkRGlyZWN0b3J5UmVxdWVzdHMgPSB7fTsKIAogICAgIEluc3BlY3RvckJhY2tlbmQu
cmVnaXN0ZXJGaWxlU3lzdGVtRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1E
aXNwYXRjaGVyKHRoaXMpKTsKQEAgLTI0NSw2ICsyNTYsMzIgQEAgV2ViSW5zcGVjdG9yLkZpbGVT
eXN0ZW1SZXF1ZXN0TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW4KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQor
ICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24obnVtYmVyLCBGaWxlU3lzdGVtQWdlbnQuRW50cnkpfSBj
YWxsYmFjaworICAgICAqLworICAgIGdldEZpbGVTeXN0ZW1Sb290OiBmdW5jdGlvbihvcmlnaW4s
IHR5cGUsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIHJlcXVlc3RJZCA9IHRoaXMuX3Jl
cXVlc3RJZCgpOworICAgICAgICB0aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJvb3RSZXF1ZXN0
c1tyZXF1ZXN0SWRdID0gY2FsbGJhY2s7CisgICAgICAgIEZpbGVTeXN0ZW1BZ2VudC5nZXRGaWxl
U3lzdGVtUm9vdChyZXF1ZXN0SWQsIG9yaWdpbiwgdHlwZSk7CisgICAgfSwKKworICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZXF1ZXN0SWQKKyAgICAgKiBAcGFyYW0ge251bWJlcn0g
ZXJyb3JDb2RlCisgICAgICogQHBhcmFtIHtGaWxlU3lzdGVtQWdlbnQuRW50cnk9fSBiYWNrZW5k
Um9vdEVudHJ5CisgICAgICovCisgICAgX2dvdEZpbGVTeXN0ZW1Sb290OiBmdW5jdGlvbihyZXF1
ZXN0SWQsIGVycm9yQ29kZSwgYmFja2VuZFJvb3RFbnRyeSkKKyAgICB7CisgICAgICAgIHZhciBj
YWxsYmFjayA9IHRoaXMuX3BlbmRpbmdHZXRGaWxlU3lzdGVtUm9vdFJlcXVlc3RzW3JlcXVlc3RJ
ZF07CisgICAgICAgIGlmICghY2FsbGJhY2spCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGRlbGV0ZSB0aGlzLl9wZW5kaW5nR2V0RmlsZVN5c3RlbVJvb3RSZXF1ZXN0c1tyZXF1ZXN0SWRd
OworICAgICAgICBjYWxsYmFjayhlcnJvckNvZGUsIGJhY2tlbmRSb290RW50cnkpOworICAgIH0s
CisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCiAgICAgICogQHBhcmFtIHtm
dW5jdGlvbihudW1iZXIsIEFycmF5LjxGaWxlU3lzdGVtQWdlbnQuRW50cnk+PSl9IGNhbGxiYWNr
CiAgICAgICovCkBAIC0yODQsNiArMzIxLDE2IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtRGlz
cGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtudW1iZXJ9IHJl
cXVlc3RJZAogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlcnJvckNvZGUKKyAgICAgKiBAcGFyYW0g
e0ZpbGVTeXN0ZW1BZ2VudC5FbnRyeT19IGJhY2tlbmRSb290RW50cnkKKyAgICAgKi8KKyAgICBn
b3RGaWxlU3lzdGVtUm9vdDogZnVuY3Rpb24ocmVxdWVzdElkLCBlcnJvckNvZGUsIGJhY2tlbmRS
b290RW50cnkpCisgICAgeworICAgICAgICB0aGlzLl9hZ2VudFdyYXBwZXIuX2dvdEZpbGVTeXN0
ZW1Sb290KHJlcXVlc3RJZCwgZXJyb3JDb2RlLCBiYWNrZW5kUm9vdEVudHJ5KTsKKyAgICB9LAor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHJlcXVlc3RJZAorICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBlcnJvckNvZGUKICAgICAgKiBAcGFyYW0ge0FycmF5LjxGaWxlU3lzdGVtQWdl
bnQuRW50cnk+PX0gYmFja2VuZEVudHJpZXMKICAgICAgKi8KICAgICBkaWRSZWFkRGlyZWN0b3J5
OiBmdW5jdGlvbihyZXF1ZXN0SWQsIGVycm9yQ29kZSwgYmFja2VuZEVudHJpZXMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpp
bmRleCA1OGU5MzYxZDdkODViM2EzMDExODNkMWUzYzc4MzhhYjFhMjJlMzhjLi5jOTdjMWYyNWI3
M2I0N2NiODQxMWViODMzZGU5NDE3MGNmNzY5YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTE1MjUsNyArMTUy
NSw2IEBAIFdlYkluc3BlY3Rvci5GaWxlU3lzdGVtTGlzdFRyZWVFbGVtZW50LnByb3RvdHlwZSA9
IHsKICAgICAgICAgdmFyIGZpbGVTeXN0ZW1UcmVlRWxlbWVudCA9IHRoaXMuX2ZpbGVTeXN0ZW1U
cmVlRWxlbWVudEJ5TmFtZShmaWxlU3lzdGVtLm5hbWUpOwogICAgICAgICBpZiAoIWZpbGVTeXN0
ZW1UcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZmlsZVN5c3RlbVRy
ZWVFbGVtZW50LmNsZWFyKCk7CiAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQoZmlsZVN5c3RlbVRy
ZWVFbGVtZW50KTsKICAgICB9LAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjBhNjhkODVmYzRjM2Y2NmRlYjA4OWIxMjJk
ODBmMTdhMmEwM2M5YS4uNmI1NjNiNWY3YmU1NjRmMTg5OWQ0ODU3YzhhZjg4MzYyNWQ3MTAwNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTE5ICBUYWlqdSBUc3Vpa2kgIDx0emlrQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaWxlU3lzdGVtIHRyZWUgc2hv
dWxkIGhpZGUgdW5pbml0aWFsaXplZCBGaWxlU3lzdGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODYwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3Rl
bS9nZXQtZmlsZXN5c3RlbS1yb290LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9nZXQtZmlsZXN5c3RlbS1yb290Lmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTA2LTE4ICBNaWtlIExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgQ3Jhc2ggd2hlbiBzZXR0aW5nIHRpdGxlIGR5bmFtaWNhbGx5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxlc3lzdGVtL2dldC1m
aWxlc3lzdGVtLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZmlsZXN5c3RlbS9nZXQtZmlsZXN5c3RlbS1yb290LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NzNmZmY1ZjA3Y2NiMjFhOTEwYTllYmViMGJhNWE4ODNiYjQyNjYyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZmlsZXN5c3RlbS9nZXQt
ZmlsZXN5c3RlbS1yb290LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3RzIGdldEZp
bGVTeXN0ZW1Sb290LgorCitQQVNTOiBmaWxlc3lzdGVtOmh0dHA6Ly8xMjcuMC4wLjE6ODAwMC90
ZW1wb3JhcnkvIGlzIGZvdW5kLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9maWxlc3lzdGVtL2dldC1maWxlc3lzdGVtLXJvb3QuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2ZpbGVzeXN0ZW0vZ2V0LWZpbGVzeXN0ZW0tcm9vdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMzYTg3NDE2OTYwYmQxN2U0NzBlZDVlMTZhOTcyZTNlMGQ2NzkyNDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9maWxl
c3lzdGVtL2dldC1maWxlc3lzdGVtLXJvb3QuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZ
UEUgaHRtbD48bWV0YSBjaGFyc2V0PSJVVEYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImZpbGVzeXN0ZW0tdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExv
YWRlZCIsIHJ1blRlc3QpOworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGZpbGVTeXN0ZW1S
ZXF1ZXN0TWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVJlcXVlc3RNYW5hZ2Vy
KCk7CisKKyAgICBJbnNwZWN0b3JUZXN0LmNsZWFyRmlsZVN5c3RlbShzdGVwMSk7CisKKyAgICBm
dW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgICAvLyBGSVhNRTogQWRkIEFQSSB0byBkZWxl
dGUgYSBGaWxlU3lzdGVtIGNvbXBsZXRlbHkgYW5kIHRlc3QgZ2V0RmlsZVN5c3RlbVJvb3QgZm9y
CisgICAgICAgIC8vIHVuaW5pdGlhbGl6ZWQgRmlsZVN5c3RlbS4KKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5jcmVhdGVGaWxlKCIvaG9nZSIsIHN0ZXAyKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBz
dGVwMigpCisgICAgeworICAgICAgICBmaWxlU3lzdGVtUmVxdWVzdE1hbmFnZXIuZ2V0RmlsZVN5
c3RlbVJvb3QoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJ0ZW1wb3JhcnkiLCBzdGVwMyk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDMoZXJyb3JDb2RlLCBiYWNrZW5kUm9vdEVudHJ5KQor
ICAgIHsKKyAgICAgICAgaWYgKGVycm9yQ29kZSA9PT0gMCAmJiBiYWNrZW5kUm9vdEVudHJ5KQor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlBBU1M6ICIgKyBiYWNrZW5kUm9v
dEVudHJ5LnVybCArICIgaXMgZm91bmQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMOiBlcnJvckNvZGUgPSAiICsgZXJyb3JDb2RlKTsK
KworICAgICAgICBJbnNwZWN0b3JUZXN0LmNsZWFyRmlsZVN5c3RlbShzdGVwNCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gc3RlcDQoZXJyb3JDb2RlLCBmaWxlU3lzdGVtKQorICAgIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0Pgor
PHA+VGVzdHMgZ2V0RmlsZVN5c3RlbVJvb3QuPC9wPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>