<?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>81970</bug_id>
          
          <creation_ts>2012-03-22 14:42:59 -0700</creation_ts>
          <short_desc>Web Inspector: x-frame security errors logged when typing in the console are annoying.</short_desc>
          <delta_ts>2012-05-02 02:08:06 -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>84341</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ossy</cc>
    
    <cc>paulirish</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>585718</commentid>
    <comment_count>0</comment_count>
      <attachid>133350</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-03-22 14:42:59 -0700</bug_when>
    <thetext>Created attachment 133350
outer frame

1. Save the two html documents to your local hard drive.
2. open test_iframe.html
3. open inspector and put a breakpoint in foo()
4. in the console type &quot;window.frameElement&quot; (Don&apos;t paste it. Actually type it.) or &quot;window.parent.location&quot;, etc.
Note that you get lots of &quot;Unsafe JavaScript attempt to access frame with URL&quot; errors in the console output as you type. This makes using the console really painful.

Other:
* These steps as given may only repro with browsers like chromium that treat all local files as different security origins. (You need the inner frame to be a different security origin to repro the issue.)
* In my case, the errors don&apos;t collapse together (like they did for me in this simple example) -- perhaps that is because they have a stack trace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585719</commentid>
    <comment_count>1</comment_count>
      <attachid>133351</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-03-22 14:43:32 -0700</bug_when>
    <thetext>Created attachment 133351
inner frame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604737</commentid>
    <comment_count>2</comment_count>
      <attachid>137688</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-04-18 08:03:29 -0700</bug_when>
    <thetext>Created attachment 137688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604763</commentid>
    <comment_count>3</comment_count>
      <attachid>137688</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-18 08:27:10 -0700</bug_when>
    <thetext>Comment on attachment 137688
Patch

Attachment 137688 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12427225</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604768</commentid>
    <comment_count>4</comment_count>
      <attachid>137688</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-18 08:31:34 -0700</bug_when>
    <thetext>Comment on attachment 137688
Patch

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

&gt; Source/WebCore/inspector/PageRuntimeAgent.cpp:72
&gt; +    Frame* mainFrame = m_inspectedPage-&gt;mainFrame();

I would use a counter here.

&gt; Source/WebCore/inspector/PageRuntimeAgent.cpp:74
&gt; +    for (Frame* frame = mainFrame; frame; frame = frame-&gt;tree()-&gt;traverseNext(mainFrame))

I would use a static counter on console instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604830</commentid>
    <comment_count>5</comment_count>
      <attachid>137711</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-04-18 09:44:43 -0700</bug_when>
    <thetext>Created attachment 137711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604852</commentid>
    <comment_count>6</comment_count>
      <attachid>137711</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-18 10:13:58 -0700</bug_when>
    <thetext>Comment on attachment 137711
Patch

Attachment 137711 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12429239</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604903</commentid>
    <comment_count>7</comment_count>
      <attachid>137725</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-04-18 11:07:52 -0700</bug_when>
    <thetext>Created attachment 137725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605474</commentid>
    <comment_count>8</comment_count>
      <attachid>137725</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-19 03:26:08 -0700</bug_when>
    <thetext>Comment on attachment 137725
Patch

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

&gt; Source/WebCore/page/Console.cpp:59
&gt; +    int s_muteCount = 0;

Either declare it in the Console.h or stop using the s_ prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605535</commentid>
    <comment_count>9</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-04-19 06:28:46 -0700</bug_when>
    <thetext>Committed r114628: &lt;http://trac.webkit.org/changeset/114628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605565</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-19 07:38:22 -0700</bug_when>
    <thetext>Reopen, because it broke the debug build on Qt:
../../../../Source/WebCore/inspector/InspectorDebuggerAgent.cpp: In member function ‘virtual void WebCore::InspectorDebuggerAgent::evaluateOnCallFrame(WebCore::ErrorString*, const WTF::String&amp;, const WTF::String&amp;, const WTF::String*, const bool*, const bool*, const bool*, WTF::RefPtr&lt;WebCore::TypeBuilder::Runtime::RemoteObject&gt;&amp;, WebCore::TypeBuilder::OptOutput&lt;bool&gt;*)’:
../../../../Source/WebCore/inspector/InspectorDebuggerAgent.cpp:492: error: no match for ‘operator!’ in ‘!WebCore::InspectorDebuggerAgent::scriptDebugServer()’
../../../../Source/WebCore/inspector/InspectorDebuggerAgent.cpp:492: note: candidates are: operator!(bool) &lt;built-in&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605579</commentid>
    <comment_count>11</comment_count>
      <attachid>137901</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-04-19 07:54:41 -0700</bug_when>
    <thetext>Created attachment 137901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605601</commentid>
    <comment_count>12</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-04-19 08:34:48 -0700</bug_when>
    <thetext>Committed r114632: &lt;http://trac.webkit.org/changeset/114632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611151</commentid>
    <comment_count>13</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-04-26 18:18:16 -0700</bug_when>
    <thetext>Renaming the existing doNotPauseOnExceptions parameter to doNotPauseOnExceptionsAndMuteConsole breaks backward compatibility with version 1.0 of the protocol. Renames should not be allowed.

Am I correct? If so I&apos;ll file a bug about making the compatibility checking catch such things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611381</commentid>
    <comment_count>14</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-27 04:46:50 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Renaming the existing doNotPauseOnExceptions parameter to doNotPauseOnExceptionsAndMuteConsole breaks backward compatibility with version 1.0 of the protocol. Renames should not be allowed.
&gt; 
&gt; Am I correct? If so I&apos;ll file a bug about making the compatibility checking catch such things.

We do not guarantee compatibility of the hidden members (methods, parameters, etc). It is explicitly stated in the announcement and these members are missing in the documentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611466</commentid>
    <comment_count>15</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-04-27 07:06:08 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; Renaming the existing doNotPauseOnExceptions parameter to doNotPauseOnExceptionsAndMuteConsole breaks backward compatibility with version 1.0 of the protocol. Renames should not be allowed.
&gt; &gt; 
&gt; &gt; Am I correct? If so I&apos;ll file a bug about making the compatibility checking catch such things.
&gt; 
&gt; We do not guarantee compatibility of the hidden members (methods, parameters, etc). It is explicitly stated in the announcement and these members are missing in the documentation.

Sorry, I overlooked the fact that it was hidden. Too many things are hidden, so the protocol is pretty useless without using hidden members.

What is your process and timeframe for unhiding minor things like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614110</commentid>
    <comment_count>16</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-05-02 02:08:06 -0700</bug_when>
    <thetext>
&gt; What is your process and timeframe for unhiding minor things like this?

There is really no process / schedule for that. You should probably file bugs for such changes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>133350</attachid>
            <date>2012-03-22 14:42:59 -0700</date>
            <delta_ts>2012-03-22 14:42:59 -0700</delta_ts>
            <desc>outer frame</desc>
            <filename>test_iframe.html</filename>
            <type>text/html</type>
            <size>72</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8aWZyYW1lIHNyYz0idGVzdF9pZnJhbWVfY29udGVudHMuaHRtbCIvPgo8
L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>133351</attachid>
            <date>2012-03-22 14:43:32 -0700</date>
            <delta_ts>2012-03-22 14:43:32 -0700</delta_ts>
            <desc>inner frame</desc>
            <filename>test_iframe_contents.html</filename>
            <type>text/html</type>
            <size>104</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5Pgo8c2NyaXB0PgpmdW5jdGlvbiBmb28oKSB7CnZhciBhID0gd2luZG93LmZy
YW1lRWxlbWVudDsKfQpmb28oKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137688</attachid>
            <date>2012-04-18 08:03:29 -0700</date>
            <delta_ts>2012-04-18 09:44:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81970-20120418190326.patch</filename>
            <type>text/plain</type>
            <size>23505</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFhMGFmNmQxZjk3MWY2
MTRlNDM4M2Y1MjFiMWFmNWM3YzhjMjFjNi4uZGFhNTI2NzVkMGM0OTE4M2U0MjY1YmJmZGMzZmZj
MWE3MGMyOWY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTA0LTE4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHgtZnJhbWUgc2VjdXJpdHkgZXJyb3JzIGxvZ2dlZCB3aGVuIHR5cGluZyBpbiB0aGUgY29u
c29sZSBhcmUgYW5ub3lpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBhcmFtZXRlciBEb05vdFBhdXNlT25FeGNlcHRpb25zIGluIFJ1bnRpbWUuZXZh
bHVhdGUoKSByZW5hbWVkIHRvIERvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZS4K
KyAgICAgICAgQWRkZWQgdGhpcyBwYXJhbWV0ZXIgdG8gUnVudGltZS5jYWxsRnVuY3Rpb25Pbigp
IGFuZCBwYXNzZWQgdHJ1ZSBpbiBhbGwgY2FsbCBzaXRlcy4KKyAgICAgICAgQWRkZWQgYSBmbGFn
IHRvIGNvbnNvbGUgdGhhdCBtdXRlcyBhbGwgbWVzc2FnZXMgdW5sZXNzIHRoZXkgaGF2ZSBDb25z
b2xlQVBJIG1lc3NhZ2Ugc291cmNlLgorICAgICAgICBUaGlzIGZsYWcgaXMgbm93IHRlbXBvcmFy
aWx5IHNldCBmcm9tIEluc3BlY3RvclJ1bnRpbWVBZ2VudCBmb3IgY2VydGFpbiBpbmplY3RlZCBz
b3VyY2UgY2FsbHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAoSW5zcGVj
dG9yUnVudGltZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVudGltZUFnZW50OjpzZXRDb25zb2xlTXV0ZWQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdl
bnQuaDoKKyAgICAgICAgKFBhZ2VSdW50aW1lQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVudGltZUFn
ZW50OjpzZXRDb25zb2xlTXV0ZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5z
cGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAoV29ya2VyUnVudGltZUFnZW50
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5ldmFsSW5JbnNwZWN0ZWRXaW5k
b3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0UHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZS5jYWxsRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuY2Fs
bEZ1bmN0aW9uSlNPTik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5h
Z2VyLmpzOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b25zb2xlOjpDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OmFkZE1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6d2Fybik6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6OnNldE11dGVkKToKKyAgICAgICAgKiBwYWdlL0Nv
bnNvbGUuaDoKKyAgICAgICAgKENvbnNvbGUpOgorCiAyMDEyLTA0LTE3ICBLZW50YXJvIEhhcmEg
IDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIEFkZCBhbiBvcHRpb25hbCBJ
c29sYXRlIGFyZ3VtZW50IHRvIHRvVjgoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgppbmRleCA5YWRkM2I2MTQyZDUxMzI5N2JiNzFiZmU5YjU4NWZlNjlmZWU5NzQ1Li4z
MzEyMGE1NmI0Y2VkYTM1NGEwNDY0OTcyZTBjNGQwYmQwNjAwNGViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC00MjIsNyArNDIyLDcgQEAKICAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJleHByZXNzaW9uIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIkV4cHJlc3Npb24gdG8gZXZhbHVhdGUuIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5hbWUgdGhhdCBjYW4gYmUgdXNl
ZCB0byByZWxlYXNlIG11bHRpcGxlIG9iamVjdHMuIiB9LAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImluY2x1ZGVDb21tYW5kTGluZUFQSSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRGV0ZXJtaW5lcyB3aGV0aGVyIENvbW1hbmQg
TGluZSBBUEkgc2hvdWxkIGJlIGF2YWlsYWJsZSBkdXJpbmcgdGhlIGV2YWx1YXRpb24uIiwgImhp
ZGRlbiI6IHRydWUgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb05vdFBhdXNl
T25FeGNlcHRpb25zIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJTcGVjaWZpZXMgd2hldGhlciBldmFsdWF0aW9uIHNob3VsZCBzdG9wIG9uIGV4
Y2VwdGlvbnMuIE92ZXJyaWRlcyBzZXRQYXVzZU9uRXhjZXB0aW9uIHN0YXRlLiIsICJoaWRkZW4i
OiB0cnVlIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9Ob3RQYXVzZU9uRXhj
ZXB0aW9uc0FuZE11dGVDb25zb2xlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJTcGVjaWZpZXMgd2hldGhlciBldmFsdWF0aW9uIHNob3VsZCBz
dG9wIG9uIGV4Y2VwdGlvbnMgYW5kIG11dGUgY29uc29sZS4gT3ZlcnJpZGVzIHNldFBhdXNlT25F
eGNlcHRpb24gc3RhdGUuIiwgImhpZGRlbiI6IHRydWUgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlkIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyBpbiB3aGljaCBmcmFtZSB0byBwZXJm
b3JtIGV2YWx1YXRpb24uIiwgImhpZGRlbiI6IHRydWUgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJyZXR1cm5CeVZhbHVlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSByZXN1bHQgaXMgZXhwZWN0ZWQgdG8g
YmUgYSBKU09OIG9iamVjdCB0aGF0IHNob3VsZCBiZSBzZW50IGJ5IHZhbHVlLiIgfQogICAgICAg
ICAgICAgICAgIF0sCkBAIC00MzgsNiArNDM4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJlbW90ZU9iamVjdElkIiwgImRlc2NyaXB0aW9u
IjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVjdCB0byBjYWxsIGZ1bmN0aW9uIG9uLiIgfSwKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlvbkRlY2xhcmF0aW9uIiwgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiB0
byBjYWxsLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhcmd1bWVudHMiLCAi
dHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ2FsbEFyZ3VtZW50IiwgImRlc2Ny
aXB0aW9uIjogIkNhbGwgYXJndW1lbnQuIiB9LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiQ2FsbCBhcmd1bWVudHMuIEFsbCBjYWxsIGFyZ3VtZW50cyBtdXN0IGJlbG9uZyB0byB0
aGUgc2FtZSBKYXZhU2NyaXB0IHdvcmxkIGFzIHRoZSB0YXJnZXQgb2JqZWN0LiIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNv
bnNvbGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIlNwZWNpZmllcyB3aGV0aGVyIGZ1bmN0aW9uIGNhbGwgc2hvdWxkIHN0b3Agb24gZXhjZXB0
aW9ucyBhbmQgbXV0ZSBjb25zb2xlLiBPdmVycmlkZXMgc2V0UGF1c2VPbkV4Y2VwdGlvbiBzdGF0
ZS4iLCAiaGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJl
dHVybkJ5VmFsdWUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIldoZXRoZXIgdGhlIHJlc3VsdCBpcyBleHBlY3RlZCB0byBiZSBhIEpTT04gb2Jq
ZWN0IHdoaWNoIHNob3VsZCBiZSBzZW50IGJ5IHZhbHVlLiIgfQogICAgICAgICAgICAgICAgIF0s
CiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4IGYyNDBhODgwM2NhOTM4ZTc1
ZDJjODg2Nzk5ZWVlOWM2OTkxZjQzZjAuLjRmMDVhNDY1ZWQxYTQyYWNmNTdkMWI0NWE1OWNjMzYy
NjgwOTEyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwCkBAIC03Miw3ICs3MiwxOCBAQCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
On5JbnNwZWN0b3JSdW50aW1lQWdlbnQoKQogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0
SW5zcGVjdG9yUnVudGltZUFnZW50KDApOwogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sIGNvbnN0IFN0cmluZyogY29uc3Qgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0
IGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogY29uc3QgZG9Ob3RQYXVzZU9uRXhj
ZXB0aW9ucywgY29uc3QgU3RyaW5nKiBjb25zdCBmcmFtZUlkLCBjb25zdCBib29sKiBjb25zdCBy
ZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4m
IHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKQorI2lmIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQorc3RhdGljIFNjcmlwdERlYnVnU2VydmVyOjpQYXVz
ZU9uRXhjZXB0aW9uc1N0YXRlIHNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoU2NyaXB0RGVidWdT
ZXJ2ZXIqIHNjcmlwdERlYnVnU2VydmVyLCBTY3JpcHREZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2Vw
dGlvbnNTdGF0ZSBuZXdTdGF0ZSkKK3sKKyAgICBBU1NFUlQoc2NyaXB0RGVidWdTZXJ2ZXIpOwor
ICAgIFNjcmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0YXRlIHByZXNlbnRTdGF0
ZSA9IHNjcmlwdERlYnVnU2VydmVyLT5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCk7CisgICAgaWYg
KHByZXNlbnRTdGF0ZSAhPSBuZXdTdGF0ZSkKKyAgICAgICAgc2NyaXB0RGVidWdTZXJ2ZXItPnNl
dFBhdXNlT25FeGNlcHRpb25zU3RhdGUobmV3U3RhdGUpOworICAgIHJldHVybiBwcmVzZW50U3Rh
dGU7Cit9CisjZW5kaWYKKwordm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBT
dHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIGNvbnN0IGJvb2wqIGNvbnN0IGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRl
Q29uc29sZSwgY29uc3QgU3RyaW5nKiBjb25zdCBmcmFtZUlkLCBjb25zdCBib29sKiBjb25zdCBy
ZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4m
IHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKQogewogICAg
IFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9IDA7CiAgICAgaWYgKGZyYW1lSWQpIHsKQEAgLTg5
LDI0ICsxMDAsMjMgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKEVycm9y
U3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBleHAKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBBU1NFUlQobV9zY3Jp
cHREZWJ1Z1NlcnZlcik7Ci0gICAgYm9vbCBwYXVzZVN0YXRlQ2hhbmdlZCA9IGZhbHNlOwotICAg
IFNjcmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0YXRlIHByZXNlbnRTdGF0ZSA9
IG1fc2NyaXB0RGVidWdTZXJ2ZXItPnBhdXNlT25FeGNlcHRpb25zU3RhdGUoKTsKLSAgICBpZiAo
YXNCb29sKGRvTm90UGF1c2VPbkV4Y2VwdGlvbnMpICYmIHByZXNlbnRTdGF0ZSAhPSBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25zKSB7Ci0gICAgICAgIG1fc2NyaXB0RGVi
dWdTZXJ2ZXItPnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoU2NyaXB0RGVidWdTZXJ2ZXI6OkRv
bnRQYXVzZU9uRXhjZXB0aW9ucyk7Ci0gICAgICAgIHBhdXNlU3RhdGVDaGFuZ2VkID0gdHJ1ZTsK
LSAgICB9CisgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGUgcHJl
dmlvdXNQYXVzZU9uRXhjZXB0aW9uc1N0YXRlID0gU2NyaXB0RGVidWdTZXJ2ZXI6OkRvbnRQYXVz
ZU9uRXhjZXB0aW9uczsKKyAgICBpZiAoYXNCb29sKGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRN
dXRlQ29uc29sZSkpCisgICAgICAgIHByZXZpb3VzUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9IHNl
dFBhdXNlT25FeGNlcHRpb25zU3RhdGUobV9zY3JpcHREZWJ1Z1NlcnZlciwgU2NyaXB0RGVidWdT
ZXJ2ZXI6OkRvbnRQYXVzZU9uRXhjZXB0aW9ucyk7CiAjZW5kaWYKKyAgICBpZiAoYXNCb29sKGRv
Tm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSkpCisgICAgICAgIHNldENvbnNvbGVN
dXRlZCh0cnVlKTsKIAogICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlKGVycm9yU3RyaW5nLCBl
eHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIiLCBhc0Jvb2woaW5jbHVk
ZUNvbW1hbmRMaW5lQVBJKSwgYXNCb29sKHJldHVybkJ5VmFsdWUpLCAmcmVzdWx0LCB3YXNUaHJv
d24pOwogCisgICAgc2V0Q29uc29sZU11dGVkKGZhbHNlKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikKLSAgICBpZiAocGF1c2VTdGF0ZUNoYW5nZWQpCi0gICAgICAgIG1fc2NyaXB0
RGVidWdTZXJ2ZXItPnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUocHJlc2VudFN0YXRlKTsKKyAg
ICBpZiAoYXNCb29sKGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSkpCisgICAg
ICAgIHNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUobV9zY3JpcHREZWJ1Z1NlcnZlciwgcHJldmlv
dXNQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKTsKICNlbmRpZgogfQogCi12b2lkIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlvbmFsQXJndW1lbnRzLCBjb25zdCBib29sKiBj
b25zdCByZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9i
amVjdD4mIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKQor
dm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50
cywgY29uc3QgYm9vbCogY29uc3QgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xl
LCBjb25zdCBib29sKiBjb25zdCByZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1
bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29s
Piogd2FzVGhyb3duKQogewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQp
OwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKQEAgLTExNyw3ICsxMjcs
MjEgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW4KICAgICBpZiAob3B0aW9uYWxBcmd1bWVudHMp
CiAgICAgICAgIGFyZ3VtZW50cyA9ICgqb3B0aW9uYWxBcmd1bWVudHMpLT50b0pTT05TdHJpbmco
KTsKIAorI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQorICAgIFNjcmlwdERlYnVnU2Vy
dmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0YXRlIHByZXZpb3VzUGF1c2VPbkV4Y2VwdGlvbnNTdGF0
ZSA9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnM7CisgICAgaWYgKGFz
Qm9vbChkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUpKQorICAgICAgICBwcmV2
aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUgPSBzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKG1f
c2NyaXB0RGVidWdTZXJ2ZXIsIFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlv
bnMpOworI2VuZGlmCisgICAgaWYgKGFzQm9vbChkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0
ZUNvbnNvbGUpKQorICAgICAgICBzZXRDb25zb2xlTXV0ZWQodHJ1ZSk7CisKICAgICBpbmplY3Rl
ZFNjcmlwdC5jYWxsRnVuY3Rpb25PbihlcnJvclN0cmluZywgb2JqZWN0SWQsIGV4cHJlc3Npb24s
IGFyZ3VtZW50cywgYXNCb29sKHJldHVybkJ5VmFsdWUpLCAmcmVzdWx0LCB3YXNUaHJvd24pOwor
CisgICAgc2V0Q29uc29sZU11dGVkKGZhbHNlKTsKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKKyAgICBpZiAoYXNCb29sKGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29s
ZSkpCisgICAgICAgIHNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUobV9zY3JpcHREZWJ1Z1NlcnZl
ciwgcHJldmlvdXNQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKTsKKyNlbmRpZgogfQogCiB2b2lkIElu
c3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyhFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IGJvb2wqIGNvbnN0IG93blByb3BlcnRp
ZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlByb3Bl
cnR5RGVzY3JpcHRvcj4gPiYgcmVzdWx0KQpAQCAtMTI3LDcgKzE1MSwxOCBAQCB2b2lkIEluc3Bl
Y3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGNvbnN0IFN0cmluZwogICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW5zcGVjdGVkIGZyYW1lIGhh
cyBnb25lIjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKworI2lmIEVOQUJMRShKQVZBU0NSSVBU
X0RFQlVHR0VSKQorICAgIFNjcmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0YXRl
IHByZXZpb3VzUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9IHNldFBhdXNlT25FeGNlcHRpb25zU3Rh
dGUobV9zY3JpcHREZWJ1Z1NlcnZlciwgU2NyaXB0RGVidWdTZXJ2ZXI6OkRvbnRQYXVzZU9uRXhj
ZXB0aW9ucyk7CisjZW5kaWYKKyAgICBzZXRDb25zb2xlTXV0ZWQodHJ1ZSk7CisKICAgICBpbmpl
Y3RlZFNjcmlwdC5nZXRQcm9wZXJ0aWVzKGVycm9yU3RyaW5nLCBvYmplY3RJZCwgb3duUHJvcGVy
dGllcyA/ICpvd25Qcm9wZXJ0aWVzIDogZmFsc2UsICZyZXN1bHQpOworCisgICAgc2V0Q29uc29s
ZU11dGVkKGZhbHNlKTsKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICBzZXRQ
YXVzZU9uRXhjZXB0aW9uc1N0YXRlKG1fc2NyaXB0RGVidWdTZXJ2ZXIsIHByZXZpb3VzUGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZSk7CisjZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdl
bnQ6OnJlbGVhc2VPYmplY3QoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCmlu
ZGV4IDIxZjNiOTBmMjBiODNkMjIzYTExYzM3NTlkN2Y1ZWIwZTYxYzZkNjEuLmJmY2IyZGIyMDM0
ZGIxZTFkZDM5ODE5Njg4MGEzMDYxNjIxZTEwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAogICAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwKICAgICAgICAgICAgICAgICAgIGNv
bnN0IGJvb2wqIGluY2x1ZGVDb21tYW5kTGluZUFQSSwKLSAgICAgICAgICAgICAgICAgIGNvbnN0
IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnMsCisgICAgICAgICAgICAgICAgICBjb25zdCBi
b29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsCiAgICAgICAgICAgICAg
ICAgICBjb25zdCBTdHJpbmcqIGZyYW1lSWQsCiAgICAgICAgICAgICAgICAgICBjb25zdCBib29s
KiByZXR1cm5CeVZhbHVlLAogICAgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpS
dW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBvcHRpb25hbEFyZ3VtZW50
cywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wqIGNvbnN0IGRvTm90UGF1c2VP
bkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGJvb2wqIHJldHVybkJ5VmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwKICAgICAgICAgICAgICAg
ICAgICAgICAgIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9vbD4qIHdhc1Rocm93bik7CkBAIC04
OSw2ICs5MCw3IEBAIHByb3RlY3RlZDoKICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7
CiAgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGVGb3JGcmFtZUlkKGNvbnN0IFN0
cmluZyYgZnJhbWVJZCkgPSAwOwogICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIGdldERlZmF1bHRJ
bnNwZWN0ZWRTdGF0ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29uc29sZU11dGVkKGJv
b2wpID0gMDsKIAogcHJpdmF0ZToKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuY3BwCmluZGV4IDdkMDdlZTMxNGYzYjMwZDk0MTdlMjgyNDdhMTUwMmJmZTJjZmQwZTUu
LjUxOWQ1MDdmNTBiNDE2Nzk4YzAwMmI0NjkxODQ0MjNkNmE0NTI3MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTM0LDYgKzM0LDkgQEAK
IAogI2luY2x1ZGUgIlBhZ2VSdW50aW1lQWdlbnQuaCIKIAorI2luY2x1ZGUgIkNvbnNvbGUuaCIK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3Jp
cHRTdGF0ZS5oIgpAQCAtNjQsNiArNjcsMTQgQEAgU2NyaXB0U3RhdGUqIFBhZ2VSdW50aW1lQWdl
bnQ6OmdldERlZmF1bHRJbnNwZWN0ZWRTdGF0ZSgpCiAgICAgcmV0dXJuIG1haW5Xb3JsZFNjcmlw
dFN0YXRlKG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkpOwogfQogCit2b2lkIFBhZ2VSdW50
aW1lQWdlbnQ6OnNldENvbnNvbGVNdXRlZChib29sIGNvbnNvbGVNdXRlZCkKK3sKKyAgICBGcmFt
ZSogbWFpbkZyYW1lID0gbV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKTsKKworICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50
cmF2ZXJzZU5leHQobWFpbkZyYW1lKSkKKyAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpLT5jb25zb2xlKCktPnNldE11dGVkKGNvbnNvbGVNdXRlZCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCBmZmUyOTBjYjQwMjYzNTZj
ODhhZmJmY2EwNDk3NTVjMTM0NTRjZjAzLi43ZDg2OWY2MjdmZTg3N2Q0MjM4ZDQyN2EyZjAwNDYx
NTAzZDZkOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRp
bWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50
LmgKQEAgLTU0LDYgKzU0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUq
IHNjcmlwdFN0YXRlRm9yRnJhbWVJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpOwogICAgIHZpcnR1
YWwgU2NyaXB0U3RhdGUqIGdldERlZmF1bHRJbnNwZWN0ZWRTdGF0ZSgpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRDb25zb2xlTXV0ZWQoYm9vbCk7CiAgICAgUGFnZSogbV9pbnNwZWN0ZWRQYWdlOwog
ICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAppbmRleCA4NWI4YWU1MDdkMTk2
MmRhNmVlNDM3YjE0MTAxYjc2MjFjM2ZiMzI3Li4zN2UxOTQyYzFmZDI2NWZjMzVkMWVlNjAxNjVl
YWZhNzI0NmVlODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2Vy
UnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVu
dGltZUFnZW50LmNwcApAQCAtNTgsNiArNTgsMTEgQEAgU2NyaXB0U3RhdGUqIFdvcmtlclJ1bnRp
bWVBZ2VudDo6Z2V0RGVmYXVsdEluc3BlY3RlZFN0YXRlKCkKICAgICByZXR1cm4gc2NyaXB0U3Rh
dGVGcm9tV29ya2VyQ29udGV4dChtX3dvcmtlckNvbnRleHQpOwogfQogCit2b2lkIFdvcmtlclJ1
bnRpbWVBZ2VudDo6c2V0Q29uc29sZU11dGVkKGJvb2wgY29uc29sZU11dGVkKQoreworICAgIC8v
IFdlIGRvbid0IG5lZWQgdG8gbXV0ZSBjb25zb2xlIGZvciB3b3JrZXJzLgorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUo
V09SS0VSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
aAppbmRleCBkMjY5YTJmZTM2ZTg1NjNhMzc2ZGRjOWNmNmJhOTBiZGRhZTZkZDU4Li5mNjI5NzM1
YzcxOGU2NDE3NjE5NDcwNWYxMTc3YjA3MTI4YWI4ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC01Miw2ICs1Miw3IEBAIHByaXZhdGU6
CiAgICAgV29ya2VyUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JT
dGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIFdvcmtlckNvbnRleHQqKTsKICAgICB2aXJ0
dWFsIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZUZvckZyYW1lSWQoY29uc3QgU3RyaW5nJiBmcmFt
ZUlkKTsKICAgICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29uc29sZU11dGVkKGJvb2wpOwogICAgIFdvcmtlckNv
bnRleHQqIG1fd29ya2VyQ29udGV4dDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDc2MjZjM2UyOWEwYTQ3ZTQxMmVi
YzNmMTg3MzNlNDEyYjdkMTA4Y2EuLjRmZWY0MWM3ZWM0OGJkYTEwYWJkZGRjNTRiODE0ZGFmOWFj
MDU3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlVmlldy5qcwpAQCAtNTg2LDExICs1ODYsMTEgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3
LnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXhwcmVzc2lvbgogICAgICAq
IEBwYXJhbSB7c3RyaW5nfSBvYmplY3RHcm91cAogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5j
bHVkZUNvbW1hbmRMaW5lQVBJCi0gICAgICogQHBhcmFtIHtib29sZWFufSBkb05vdFBhdXNlT25F
eGNlcHRpb25zCisgICAgICogQHBhcmFtIHtib29sZWFufSBkb05vdFBhdXNlT25FeGNlcHRpb25z
QW5kTXV0ZUNvbnNvbGUKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJldHVybkJ5VmFsdWUKICAg
ICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9XZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LCBib29sZWFu
LCBSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0PSl9IGNhbGxiYWNrCiAgICAgICovCi0gICAgZXZh
bEluSW5zcGVjdGVkV2luZG93OiBmdW5jdGlvbihleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5j
bHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCByZXR1cm5CeVZhbHVl
LCBjYWxsYmFjaykKKyAgICBldmFsSW5JbnNwZWN0ZWRXaW5kb3c6IGZ1bmN0aW9uKGV4cHJlc3Np
b24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGRvTm90UGF1c2VPbkV4Y2Vw
dGlvbnNBbmRNdXRlQ29uc29sZSwgcmV0dXJuQnlWYWx1ZSwgY2FsbGJhY2spCiAgICAgewogICAg
ICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuc2VsZWN0ZWRD
YWxsRnJhbWUpIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLmV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFtZShleHByZXNzaW9uLCBvYmplY3RHcm91
cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXR1cm5CeVZhbHVlLCBjYWxsYmFjayk7CkBAIC02
MjAsNyArNjIwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCksICEhd2FzVGhyb3duKTsKICAgICAgICAgfQot
ICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGlu
Y2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9ucywgdGhpcy5fY3VycmVu
dEV2YWx1YXRpb25Db250ZXh0SWQoKSwgcmV0dXJuQnlWYWx1ZSwgZXZhbENhbGxiYWNrKTsKKyAg
ICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwg
dGhpcy5fY3VycmVudEV2YWx1YXRpb25Db250ZXh0SWQoKSwgcmV0dXJuQnlWYWx1ZSwgZXZhbENh
bGxiYWNrKTsKICAgICB9LAogCiAgICAgZXZhbHVhdGVVc2luZ1RleHRQcm9tcHQ6IGZ1bmN0aW9u
KGV4cHJlc3Npb24sIHNob3dSZXN1bHRPbmx5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwppbmRleCAyZjc3ZGVhNmFjMGU4MzM4NjE1
N2Q1MTI1YzM1M2E3OGExNzc2MDViLi5mM2QzYTRjZDYyMDYyN2MxMDJkOTEzZDVhZGM1OGNkNTE3
MjAxYTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
bW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
bW90ZU9iamVjdC5qcwpAQCAtMjE5LDcgKzIxOSw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgUnVudGltZUFnZW50LmV2YWx1YXRlLmludm9rZSh7ZXhwcmVzc2lvbjp2YWx1ZSwgZG9Ob3RQ
YXVzZU9uRXhjZXB0aW9uczp0cnVlfSwgZXZhbHVhdGVkQ2FsbGJhY2suYmluZCh0aGlzKSk7Cisg
ICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS5pbnZva2Uoe2V4cHJlc3Npb246dmFsdWUsIGRv
Tm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTp0cnVlfSwgZXZhbHVhdGVkQ2FsbGJh
Y2suYmluZCh0aGlzKSk7CiAKICAgICAgICAgLyoqCiAgICAgICAgICAqIEBwYXJhbSB7P1Byb3Rv
Y29sLkVycm9yfSBlcnJvcgpAQCAtMjM5LDcgKzIzOSw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVP
YmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBkZWxldGUg
cmVzdWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6ZSBvbiB0cmFmZmljLgotICAgICAgICAgICAg
UnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBzZXRQcm9wZXJ0eVZh
bHVlLnRvU3RyaW5nKCksIFt7IHZhbHVlOm5hbWUgfSwgcmVzdWx0XSwgdW5kZWZpbmVkLCBwcm9w
ZXJ0eVNldENhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICAgICAgUnVudGltZUFnZW50LmNh
bGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBzZXRQcm9wZXJ0eVZhbHVlLnRvU3RyaW5nKCks
IFt7IHZhbHVlOm5hbWUgfSwgcmVzdWx0XSwgdHJ1ZSwgdW5kZWZpbmVkLCBwcm9wZXJ0eVNldENh
bGxiYWNrLmJpbmQodGhpcykpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5fb2JqZWN0SWQpCiAg
ICAgICAgICAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QocmVzdWx0Ll9vYmplY3RJ
ZCk7CiAgICAgICAgIH0KQEAgLTI4Nyw3ICsyODcsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhbGxiYWNrKChlcnJvciB8fCB3YXNUaHJv
d24pID8gbnVsbCA6IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0
KSk7CiAgICAgICAgIH0KIAotICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhp
cy5fb2JqZWN0SWQsIGZ1bmN0aW9uRGVjbGFyYXRpb24udG9TdHJpbmcoKSwgYXJncywgdW5kZWZp
bmVkLCBteWNhbGxiYWNrKTsKKyAgICAgICAgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRo
aXMuX29iamVjdElkLCBmdW5jdGlvbkRlY2xhcmF0aW9uLnRvU3RyaW5nKCksIGFyZ3MsIHRydWUs
IHVuZGVmaW5lZCwgbXljYWxsYmFjayk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzA3LDcgKzMw
Nyw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgY2FsbGJhY2soKGVycm9yIHx8IHdhc1Rocm93bikgPyBudWxsIDogcmVzdWx0LnZhbHVlKTsK
ICAgICAgICAgfQogCi0gICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9v
YmplY3RJZCwgZnVuY3Rpb25EZWNsYXJhdGlvbi50b1N0cmluZygpLCBhcmdzLCB0cnVlLCBteWNh
bGxiYWNrKTsKKyAgICAgICAgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVj
dElkLCBmdW5jdGlvbkRlY2xhcmF0aW9uLnRvU3RyaW5nKCksIGFyZ3MsIHRydWUsIHRydWUsIG15
Y2FsbGJhY2spOwogICAgIH0sCiAKICAgICByZWxlYXNlOiBmdW5jdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMKaW5kZXgg
MzAyODQxYmE4ZjM3YTEwNzNjOTVkNWNiMzQ4MDc0NDYxZGJkZTMwMi4uYzlmMDUzZGM0YThkZGYw
ZGM2NTEwMWFmNGY4YzdjMWEzYzQxNGYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcwpAQCAtOTgsNyArOTgsNyBAQCBXZWJJ
bnNwZWN0b3IuV29ya2VyTWFuYWdlci5fY2FsY3VsYXRlV29ya2VySW5zcGVjdG9yVGl0bGUgPSBm
dW5jdGlvbigpCiAgICAgdmFyIGV4cHJlc3Npb24gPSAibG9jYXRpb24uaHJlZiI7CiAgICAgaWYg
KFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdFsiaXNTaGFyZWRXb3JrZXIiXSkKICAgICAg
ICAgZXhwcmVzc2lvbiArPSAiICsgKHRoaXMubmFtZSA/ICcgKCcgKyB0aGlzLm5hbWUgKyAnKScg
OiAnJykiOwotICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS5pbnZva2Uoe2V4cHJlc3Npb246ZXhw
cmVzc2lvbiwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uczp0cnVlLCByZXR1cm5CeVZhbHVlOiB0cnVl
fSwgZXZhbENhbGxiYWNrLmJpbmQodGhpcykpOworICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS5p
bnZva2Uoe2V4cHJlc3Npb246ZXhwcmVzc2lvbiwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11
dGVDb25zb2xlOnRydWUsIHJldHVybkJ5VmFsdWU6IHRydWV9LCBldmFsQ2FsbGJhY2suYmluZCh0
aGlzKSk7CiAgICAgCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVy
cm9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCBmZTBmMGFmN2M3ZWVkYjQ5NmE2MTEyZGVh
YTk4ZGEwYmY5YjY0ODExLi4wNDY4MTFhZjY2MzdmZDhmNjBjNDk0MzZjMzkxYzgwMmQ4MGU3MTI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBDb25zb2xlOjpDb25zb2xlKEZyYW1lKiBmcmFtZSkKICAgICA6IERPTVdpbmRv
d1Byb3BlcnR5KGZyYW1lKQorICAgICwgbV9tdXRlZChmYWxzZSkKIHsKIH0KIApAQCAtMTI4LDgg
KzEyOSw2IEBAIHN0YXRpYyB2b2lkIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwKICAgICBwcmludGYoIiVzICVzOiIsIHNv
dXJjZVN0cmluZywgbGV2ZWxTdHJpbmcpOwogfQogCi12b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotCiB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2Fs
bFN0YWNrKQogewogICAgIGFkZE1lc3NhZ2Uoc291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwg
U3RyaW5nKCksIDAsIGNhbGxTdGFjayk7CkBAIC0xMzcsNiArMTM2LDEwIEBAIHZvaWQgQ29uc29s
ZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVz
c2FnZUxldmVsIGxlCiAKIHZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQogeworCisgICAgaWYgKG1fbXV0
ZWQgJiYgc291cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNlKQorICAgICAgICByZXR1cm47
CisKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjExLDYgKzIxNCwxMSBAQCB2b2lkIENvbnNvbGU6OmxvZyhQYXNzUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdAog
ICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgYXJndW1lbnRz
LCBjYWxsU3RhY2spOwogfQogCit2b2lkIENvbnNvbGU6Ondhcm4oUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aykKK3sKKyAgICBhZGRNZXNzYWdlKExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVs
LCBhcmd1bWVudHMsIGNhbGxTdGFjayk7Cit9CisKIHZvaWQgQ29uc29sZTo6ZGlyKFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjYWxsU3RhY2spCiB7CiAgICAgYWRkTWVzc2FnZShEaXJNZXNzYWdlVHlwZSwgTG9nTWVzc2Fn
ZUxldmVsLCBhcmd1bWVudHMsIGNhbGxTdGFjayk7CkBAIC0zMzEsOSArMzM5LDkgQEAgdm9pZCBD
b25zb2xlOjpncm91cEVuZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNz
YWdlVG9Db25zb2xlKHBhZ2UoKSwgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIEVuZEdyb3VwTWVz
c2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgU3RyaW5nKCksIFN0cmluZygpLCAwKTsKIH0KIAot
dm9pZCBDb25zb2xlOjp3YXJuKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMs
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit2b2lkIENvbnNvbGU6OnNl
dE11dGVkKGJvb2wgbXV0ZWQpCiB7Ci0gICAgYWRkTWVzc2FnZShMb2dNZXNzYWdlVHlwZSwgV2Fy
bmluZ01lc3NhZ2VMZXZlbCwgYXJndW1lbnRzLCBjYWxsU3RhY2spOworICAgIG1fbXV0ZWQgPSBt
dXRlZDsKIH0KIAogUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xlOjptZW1vcnkoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCA4OWUyOTU1ZDZjYjQ4NTUzNjQyMzc1N2Y5NmRiMGJk
MjU1YzM1YjZhLi42OGQxZjJlNDNmZGI2NzM5Nzg2MTcxMDgwNzJkN2I0OWJhZWY2ZTc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnNvbGUuaApAQCAtODEsNiArODEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBncm91
cENvbGxhcHNlZChQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPik7CiAgICAgdm9pZCBncm91cEVuZCgpOwogCisgICAgdm9pZCBzZXRNdXRlZChi
b29sKTsKKwogICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOwogICAgIHN0
YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKIApAQCAtOTUsNiArOTcs
NyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIFByb2Zp
bGVzQXJyYXkgbV9wcm9maWxlczsKICNlbmRpZgorICAgIGJvb2wgbV9tdXRlZDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137711</attachid>
            <date>2012-04-18 09:44:43 -0700</date>
            <delta_ts>2012-04-18 11:07:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81970-20120418204441.patch</filename>
            <type>text/plain</type>
            <size>23588</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFhMGFmNmQxZjk3MWY2
MTRlNDM4M2Y1MjFiMWFmNWM3YzhjMjFjNi4uYjMwNWI3NzJiN2RkYmY4NGEyNWYwNzUzMWQ3YzY3
NGE0NzZhYTdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA0LTE4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHgtZnJhbWUgc2VjdXJpdHkgZXJyb3JzIGxvZ2dlZCB3aGVuIHR5cGluZyBpbiB0aGUgY29u
c29sZSBhcmUgYW5ub3lpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBhcmFtZXRlciBEb05vdFBhdXNlT25FeGNlcHRpb25zIGluIFJ1bnRpbWUuZXZh
bHVhdGUoKSByZW5hbWVkIHRvIERvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZS4K
KyAgICAgICAgQWRkZWQgdGhpcyBwYXJhbWV0ZXIgdG8gUnVudGltZS5jYWxsRnVuY3Rpb25Pbigp
IGFuZCBwYXNzZWQgdHJ1ZSBpbiBhbGwgY2FsbCBzaXRlcy4KKyAgICAgICAgQWRkZWQgYSBmbGFn
IHRvIGNvbnNvbGUgdGhhdCBtdXRlcyBhbGwgbWVzc2FnZXMgdW5sZXNzIHRoZXkgaGF2ZSBDb25z
b2xlQVBJIG1lc3NhZ2Ugc291cmNlLgorICAgICAgICBUaGlzIGZsYWcgaXMgbm93IHRlbXBvcmFy
aWx5IHNldCBmcm9tIEluc3BlY3RvclJ1bnRpbWVBZ2VudCBmb3IgY2VydGFpbiBpbmplY3RlZCBz
b3VyY2UgY2FsbHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAoSW5zcGVj
dG9yUnVudGltZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVudGltZUFnZW50OjptdXRlQ29uc29sZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OnVu
bXV0ZUNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50Lmg6Cisg
ICAgICAgIChQYWdlUnVudGltZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVu
dGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6bXV0
ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJS
dW50aW1lQWdlbnQ6OnVubXV0ZUNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJS
dW50aW1lQWdlbnQuaDoKKyAgICAgICAgKFdvcmtlclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUuZXZhbEluSW5zcGVjdGVkV2luZG93KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuY2FsbEZ1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLmNhbGxGdW5jdGlvbkpTT04p
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qczoKKyAgICAg
ICAgKiBwYWdlL0NvbnNvbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6YWRkTWVz
c2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp3YXJuKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6bXV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb25zb2xlOjp1bm11dGUpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAgICAo
Q29uc29sZSk6CisKIDIwMTItMDQtMTcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtWOF0gQWRkIGFuIG9wdGlvbmFsIElzb2xhdGUgYXJndW1lbnQgdG8g
dG9WOCgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDlhZGQz
YjYxNDJkNTEzMjk3YmI3MWJmZTliNTg1ZmU2OWZlZTk3NDUuLjMzMTIwYTU2YjRjZWRhMzU0YTA0
NjQ5NzJlMGM0ZDBiZDA2MDA0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KQEAgLTQyMiw3ICs0MjIsNyBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImV4cHJlc3Npb24iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRXhwcmVzc2lv
biB0byBldmFsdWF0ZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0
R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiU3ltYm9saWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlw
bGUgb2JqZWN0cy4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW5jbHVkZUNv
bW1hbmRMaW5lQVBJIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJEZXRlcm1pbmVzIHdoZXRoZXIgQ29tbWFuZCBMaW5lIEFQSSBzaG91bGQgYmUg
YXZhaWxhYmxlIGR1cmluZyB0aGUgZXZhbHVhdGlvbi4iLCAiaGlkZGVuIjogdHJ1ZSB9LAotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvTm90UGF1c2VPbkV4Y2VwdGlvbnMiLCAidHlw
ZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmll
cyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhjZXB0aW9ucy4gT3ZlcnJpZGVz
IHNldFBhdXNlT25FeGNlcHRpb24gc3RhdGUuIiwgImhpZGRlbiI6IHRydWUgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNv
bGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IlNwZWNpZmllcyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhjZXB0aW9ucyBh
bmQgbXV0ZSBjb25zb2xlLiBPdmVycmlkZXMgc2V0UGF1c2VPbkV4Y2VwdGlvbiBzdGF0ZS4iLCAi
aGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQi
LCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiU3BlY2lmaWVzIGluIHdoaWNoIGZyYW1lIHRvIHBlcmZvcm0gZXZhbHVhdGlvbi4iLCAi
aGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJldHVybkJ5
VmFsdWUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIldoZXRoZXIgdGhlIHJlc3VsdCBpcyBleHBlY3RlZCB0byBiZSBhIEpTT04gb2JqZWN0IHRo
YXQgc2hvdWxkIGJlIHNlbnQgYnkgdmFsdWUuIiB9CiAgICAgICAgICAgICAgICAgXSwKQEAgLTQz
OCw2ICs0MzgsNyBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdElkIiwg
IiRyZWYiOiAiUmVtb3RlT2JqZWN0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0
aGUgb2JqZWN0IHRvIGNhbGwgZnVuY3Rpb24gb24uIiB9LAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImZ1bmN0aW9uRGVjbGFyYXRpb24iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3Jp
cHRpb24iOiAiRGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIHRvIGNhbGwuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIsICJ0eXBlIjogImFycmF5IiwgIml0
ZW1zIjogeyAiJHJlZiI6ICJDYWxsQXJndW1lbnQiLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBhcmd1
bWVudC4iIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDYWxsIGFyZ3VtZW50
cy4gQWxsIGNhbGwgYXJndW1lbnRzIG11c3QgYmVsb25nIHRvIHRoZSBzYW1lIEphdmFTY3JpcHQg
d29ybGQgYXMgdGhlIHRhcmdldCBvYmplY3QuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSIsICJ0eXBlIjogImJv
b2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIHdoZXRo
ZXIgZnVuY3Rpb24gY2FsbCBzaG91bGQgc3RvcCBvbiBleGNlcHRpb25zIGFuZCBtdXRlIGNvbnNv
bGUuIE92ZXJyaWRlcyBzZXRQYXVzZU9uRXhjZXB0aW9uIHN0YXRlLiIsICJoaWRkZW4iOiB0cnVl
IH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmV0dXJuQnlWYWx1ZSIsICJ0eXBl
IjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0
aGUgcmVzdWx0IGlzIGV4cGVjdGVkIHRvIGJlIGEgSlNPTiBvYmplY3Qgd2hpY2ggc2hvdWxkIGJl
IHNlbnQgYnkgdmFsdWUuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAi
cmV0dXJucyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5jcHAKaW5kZXggZjI0MGE4ODAzY2E5MzhlNzVkMmM4ODY3OTllZWU5YzY5OTFm
NDNmMC4uYWQ2YzhjNmRjZTU5NjIyN2ZjNDczYzQwYzQ3OWRlMTQ3YWQ4NDliMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAg
LTcyLDcgKzcyLDE4IEBAIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6fkluc3BlY3RvclJ1bnRpbWVB
Z2VudCgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JSdW50aW1lQWdl
bnQoMCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5n
KiBjb25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5l
QVBJLCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJp
bmcqIGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJvb2wqIGNvbnN0IHJldHVybkJ5VmFsdWUsIFJlZlB0
cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRl
cjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pCisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCitzdGF0aWMgU2NyaXB0RGVidWdTZXJ2ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGUg
c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShTY3JpcHREZWJ1Z1NlcnZlciogc2NyaXB0RGVidWdT
ZXJ2ZXIsIFNjcmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0YXRlIG5ld1N0YXRl
KQoreworICAgIEFTU0VSVChzY3JpcHREZWJ1Z1NlcnZlcik7CisgICAgU2NyaXB0RGVidWdTZXJ2
ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGUgcHJlc2VudFN0YXRlID0gc2NyaXB0RGVidWdTZXJ2
ZXItPnBhdXNlT25FeGNlcHRpb25zU3RhdGUoKTsKKyAgICBpZiAocHJlc2VudFN0YXRlICE9IG5l
d1N0YXRlKQorICAgICAgICBzY3JpcHREZWJ1Z1NlcnZlci0+c2V0UGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZShuZXdTdGF0ZSk7CisgICAgcmV0dXJuIHByZXNlbnRTdGF0ZTsKK30KKyNlbmRpZgorCit2
b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogY29uc3Qgb2JqZWN0
R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9v
bCogY29uc3QgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBTdHJp
bmcqIGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJvb2wqIGNvbnN0IHJldHVybkJ5VmFsdWUsIFJlZlB0
cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRl
cjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pCiB7CiAgICAgU2NyaXB0U3RhdGUqIHNjcmlw
dFN0YXRlID0gMDsKICAgICBpZiAoZnJhbWVJZCkgewpAQCAtODksMjQgKzEwMCwyNCBAQCB2b2lk
IEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGV4cAogICAgICAgICByZXR1cm47CiAgICAgfQogI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIEFTU0VSVChtX3NjcmlwdERlYnVnU2VydmVyKTsKLSAg
ICBib29sIHBhdXNlU3RhdGVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgU2NyaXB0RGVidWdTZXJ2ZXI6
OlBhdXNlT25FeGNlcHRpb25zU3RhdGUgcHJlc2VudFN0YXRlID0gbV9zY3JpcHREZWJ1Z1NlcnZl
ci0+cGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSgpOwotICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9u
RXhjZXB0aW9ucykgJiYgcHJlc2VudFN0YXRlICE9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1
c2VPbkV4Y2VwdGlvbnMpIHsKLSAgICAgICAgbV9zY3JpcHREZWJ1Z1NlcnZlci0+c2V0UGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZShTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25z
KTsKLSAgICAgICAgcGF1c2VTdGF0ZUNoYW5nZWQgPSB0cnVlOwotICAgIH0KKyAgICBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwcmV2aW91c1BhdXNlT25FeGNlcHRp
b25zU3RhdGUgPSBTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25zOworICAg
IGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlKSkKKyAgICAg
ICAgcHJldmlvdXNQYXVzZU9uRXhjZXB0aW9uc1N0YXRlID0gc2V0UGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZShtX3NjcmlwdERlYnVnU2VydmVyLCBTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25F
eGNlcHRpb25zKTsKICNlbmRpZgorICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhjZXB0aW9u
c0FuZE11dGVDb25zb2xlKSkKKyAgICAgICAgbXV0ZUNvbnNvbGUoKTsKIAogICAgIGluamVjdGVk
U2NyaXB0LmV2YWx1YXRlKGVycm9yU3RyaW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpv
YmplY3RHcm91cCA6ICIiLCBhc0Jvb2woaW5jbHVkZUNvbW1hbmRMaW5lQVBJKSwgYXNCb29sKHJl
dHVybkJ5VmFsdWUpLCAmcmVzdWx0LCB3YXNUaHJvd24pOwogCisgICAgaWYgKGFzQm9vbChkb05v
dFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUpKSB7CisgICAgICAgIHVubXV0ZUNvbnNv
bGUoKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAocGF1c2VTdGF0
ZUNoYW5nZWQpCi0gICAgICAgIG1fc2NyaXB0RGVidWdTZXJ2ZXItPnNldFBhdXNlT25FeGNlcHRp
b25zU3RhdGUocHJlc2VudFN0YXRlKTsKKyAgICAgICAgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0
ZShtX3NjcmlwdERlYnVnU2VydmVyLCBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUpOwog
I2VuZGlmCisgICAgfQogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0
aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNv
bnN0IG9wdGlvbmFsQXJndW1lbnRzLCBjb25zdCBib29sKiBjb25zdCByZXR1cm5CeVZhbHVlLCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1
aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKQordm9pZCBJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6OmNhbGxGdW5jdGlvbk9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50cywgY29uc3QgYm9vbCogY29uc3Qg
ZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBib29sKiBjb25zdCBy
ZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4m
IHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKQogewogICAg
IEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIt
PmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNj
cmlwdC5oYXNOb1ZhbHVlKCkpIHsKQEAgLTExNyw3ICsxMjgsMjIgQEAgdm9pZCBJbnNwZWN0b3JS
dW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW4KICAgICBpZiAob3B0aW9uYWxBcmd1bWVudHMpCiAgICAgICAgIGFyZ3VtZW50cyA9
ICgqb3B0aW9uYWxBcmd1bWVudHMpLT50b0pTT05TdHJpbmcoKTsKIAorI2lmIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKQorICAgIFNjcmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9u
c1N0YXRlIHByZXZpb3VzUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9IFNjcmlwdERlYnVnU2VydmVy
OjpEb250UGF1c2VPbkV4Y2VwdGlvbnM7CisgICAgaWYgKGFzQm9vbChkb05vdFBhdXNlT25FeGNl
cHRpb25zQW5kTXV0ZUNvbnNvbGUpKQorICAgICAgICBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25z
U3RhdGUgPSBzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKG1fc2NyaXB0RGVidWdTZXJ2ZXIsIFNj
cmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpOworI2VuZGlmCisgICAgaWYg
KGFzQm9vbChkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUpKQorICAgICAgICBt
dXRlQ29uc29sZSgpOworCiAgICAgaW5qZWN0ZWRTY3JpcHQuY2FsbEZ1bmN0aW9uT24oZXJyb3JT
dHJpbmcsIG9iamVjdElkLCBleHByZXNzaW9uLCBhcmd1bWVudHMsIGFzQm9vbChyZXR1cm5CeVZh
bHVlKSwgJnJlc3VsdCwgd2FzVGhyb3duKTsKKworICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9u
RXhjZXB0aW9uc0FuZE11dGVDb25zb2xlKSkgeworICAgICAgICB1bm11dGVDb25zb2xlKCk7Cisj
aWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgICAgIHNldFBhdXNlT25FeGNlcHRp
b25zU3RhdGUobV9zY3JpcHREZWJ1Z1NlcnZlciwgcHJldmlvdXNQYXVzZU9uRXhjZXB0aW9uc1N0
YXRlKTsKKyNlbmRpZgorICAgIH0KIH0KIAogdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6Omdl
dFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVj
dElkLCBjb25zdCBib29sKiBjb25zdCBvd25Qcm9wZXJ0aWVzLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpQcm9wZXJ0eURlc2NyaXB0b3I+ID4mIHJlc3Vs
dCkKQEAgLTEyNyw3ICsxNTMsMTggQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmdldFBy
b3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcKICAgICAgICAg
KmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBoYXMgZ29uZSI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwcmV2aW91c1BhdXNlT25FeGNlcHRp
b25zU3RhdGUgPSBzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKG1fc2NyaXB0RGVidWdTZXJ2ZXIs
IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpOworI2VuZGlmCisgICAg
bXV0ZUNvbnNvbGUoKTsKKwogICAgIGluamVjdGVkU2NyaXB0LmdldFByb3BlcnRpZXMoZXJyb3JT
dHJpbmcsIG9iamVjdElkLCBvd25Qcm9wZXJ0aWVzID8gKm93blByb3BlcnRpZXMgOiBmYWxzZSwg
JnJlc3VsdCk7CisKKyAgICB1bm11dGVDb25zb2xlKCk7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCisgICAgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShtX3NjcmlwdERlYnVnU2Vy
dmVyLCBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUpOworI2VuZGlmCiB9CiAKIHZvaWQg
SW5zcGVjdG9yUnVudGltZUFnZW50OjpyZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiBvYmplY3RJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSdW50aW1lQWdlbnQuaAppbmRleCAyMWYzYjkwZjIwYjgzZDIyM2ExMWMzNzU5ZDdmNWViMGU2
MWM2ZDYxLi43OWE5YWU4YjRmMjVjNjgzYzMzYzU4YTdkZWFmZDExYzEwZjk5MTJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC02
MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZXhw
cmVzc2lvbiwKICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsCiAg
ICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksCi0gICAg
ICAgICAgICAgICAgICBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zLAorICAgICAg
ICAgICAgICAgICAgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25z
b2xlLAogICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nKiBmcmFtZUlkLAogICAgICAgICAg
ICAgICAgICAgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1ZSwKICAgICAgICAgICAgICAgICAgIFJl
ZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LApAQCAtNzAs
NiArNzAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IG9iamVjdElkLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5
Piogb3B0aW9uYWxBcmd1bWVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29s
KiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBib29sKiByZXR1cm5CeVZhbHVlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1
bHQsCiAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+
KiB3YXNUaHJvd24pOwpAQCAtODksNiArOTAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9y
UnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVj
dGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRl
Rm9yRnJhbWVJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpID0gMDsKICAgICB2aXJ0dWFsIFNjcmlw
dFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IG11dGVDb25zb2xlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgPSAw
OwogCiBwcml2YXRlOgogICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggN2QwN2VlMzE0ZjNiMzBkOTQxN2UyODI0N2ExNTAyYmZlMmNmZDBlNS4uY2RlOWRh
N2MxZmExZmMyZmZmNDQ5ZDg4ZWNjMzQ0MzBhYTRhMDA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtMzQsNiArMzQsOSBAQAogCiAjaW5j
bHVkZSAiUGFnZVJ1bnRpbWVBZ2VudC5oIgogCisjaW5jbHVkZSAiQ29uc29sZS5oIgorI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRl
LmgiCkBAIC02NCw2ICs2NywxNiBAQCBTY3JpcHRTdGF0ZSogUGFnZVJ1bnRpbWVBZ2VudDo6Z2V0
RGVmYXVsdEluc3BlY3RlZFN0YXRlKCkKICAgICByZXR1cm4gbWFpbldvcmxkU2NyaXB0U3RhdGUo
bV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSk7CiB9CiAKK3ZvaWQgUGFnZVJ1bnRpbWVBZ2Vu
dDo6bXV0ZUNvbnNvbGUoKQoreworICAgIENvbnNvbGU6Om11dGUoKTsKK30KKwordm9pZCBQYWdl
UnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xlKCkKK3sKKyAgICBDb25zb2xlOjp1bm11dGUoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RP
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCmluZGV4IGZm
ZTI5MGNiNDAyNjM1NmM4OGFmYmZjYTA0OTc1NWMxMzQ1NGNmMDMuLjMyNjE0YTg5NGZhNjY1Njk5
NDYxMDBlZTFkMzJjOTBjYWU3YzE1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuaApAQCAtNTQsNiArNTQsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGVGb3JGcmFtZUlkKGNvbnN0IFN0cmluZyYgZnJhbWVJ
ZCk7CiAgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogZ2V0RGVmYXVsdEluc3BlY3RlZFN0YXRlKCk7
CisgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CisgICAgdmlydHVhbCB2b2lkIHVubXV0
ZUNvbnNvbGUoKTsKICAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CiAgICAgSW5zcGVjdG9yUGFn
ZUFnZW50KiBtX3BhZ2VBZ2VudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDg1YjhhZTUwN2QxOTYyZGE2ZWU0MzdiMTQxMDFi
NzYyMWMzZmIzMjcuLjFjNDQ1N2UxOWMzMzQ4N2FiNGNmODliZDFiODJiMWZhMDMxMzhjMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBA
IC01OCw2ICs1OCwxNiBAQCBTY3JpcHRTdGF0ZSogV29ya2VyUnVudGltZUFnZW50OjpnZXREZWZh
dWx0SW5zcGVjdGVkU3RhdGUoKQogICAgIHJldHVybiBzY3JpcHRTdGF0ZUZyb21Xb3JrZXJDb250
ZXh0KG1fd29ya2VyQ29udGV4dCk7CiB9CiAKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50OjptdXRl
Q29uc29sZSgpCit7CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdv
cmtlcnMuCit9CisKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xlKCkKK3sK
KyAgICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikgJiYg
RU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGlt
ZUFnZW50LmgKaW5kZXggZDI2OWEyZmUzNmU4NTYzYTM3NmRkYzljZjZiYTkwYmRkYWU2ZGQ1OC4u
Y2NmZTFmYjAzYWQ4OGI1ZjA1OWUzNWZmYjUyNGMxZDc1OTZhY2ZmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaApAQCAtNTIsNiArNTIsOCBAQCBw
cml2YXRlOgogICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5z
cGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3JrZXJDb250ZXh0Kik7CiAg
ICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGVGb3JGcmFtZUlkKGNvbnN0IFN0cmlu
ZyYgZnJhbWVJZCk7CiAgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogZ2V0RGVmYXVsdEluc3BlY3Rl
ZFN0YXRlKCk7CisgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CisgICAgdmlydHVhbCB2
b2lkIHVubXV0ZUNvbnNvbGUoKTsKICAgICBXb3JrZXJDb250ZXh0KiBtX3dvcmtlckNvbnRleHQ7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xl
Vmlldy5qcwppbmRleCA3NjI2YzNlMjlhMGE0N2U0MTJlYmMzZjE4NzMzZTQxMmI3ZDEwOGNhLi40
ZmVmNDFjN2VjNDhiZGExMGFiZGRkYzU0YjgxNGRhZjlhYzA1NzBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTU4NiwxMSAr
NTg2LDExIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICog
QHBhcmFtIHtzdHJpbmd9IGV4cHJlc3Npb24KICAgICAgKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0
R3JvdXAKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVDb21tYW5kTGluZUFQSQotICAg
ICAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9Ob3RQYXVzZU9uRXhjZXB0aW9ucworICAgICAqIEBwYXJh
bSB7Ym9vbGVhbn0gZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlCiAgICAgICog
QHBhcmFtIHtib29sZWFufSByZXR1cm5CeVZhbHVlCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCwgYm9vbGVhbiwgUnVudGltZUFnZW50LlJlbW90ZU9i
amVjdD0pfSBjYWxsYmFjawogICAgICAqLwotICAgIGV2YWxJbkluc3BlY3RlZFdpbmRvdzogZnVu
Y3Rpb24oZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9O
b3RQYXVzZU9uRXhjZXB0aW9ucywgcmV0dXJuQnlWYWx1ZSwgY2FsbGJhY2spCisgICAgZXZhbElu
SW5zcGVjdGVkV2luZG93OiBmdW5jdGlvbihleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVk
ZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIHJl
dHVybkJ5VmFsdWUsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnNlbGVjdGVkQ2FsbEZyYW1lKSB7CiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5ldmFsdWF0ZUluU2VsZWN0
ZWRDYWxsRnJhbWUoZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQ
SSwgcmV0dXJuQnlWYWx1ZSwgY2FsbGJhY2spOwpAQCAtNjIwLDcgKzYyMCw3IEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChy
ZXN1bHQpLCAhIXdhc1Rocm93bik7CiAgICAgICAgIH0KLSAgICAgICAgUnVudGltZUFnZW50LmV2
YWx1YXRlKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGRv
Tm90UGF1c2VPbkV4Y2VwdGlvbnMsIHRoaXMuX2N1cnJlbnRFdmFsdWF0aW9uQ29udGV4dElkKCks
IHJldHVybkJ5VmFsdWUsIGV2YWxDYWxsYmFjayk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFs
dWF0ZShleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05v
dFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIHRoaXMuX2N1cnJlbnRFdmFsdWF0aW9u
Q29udGV4dElkKCksIHJldHVybkJ5VmFsdWUsIGV2YWxDYWxsYmFjayk7CiAgICAgfSwKIAogICAg
IGV2YWx1YXRlVXNpbmdUZXh0UHJvbXB0OiBmdW5jdGlvbihleHByZXNzaW9uLCBzaG93UmVzdWx0
T25seSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVt
b3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVP
YmplY3QuanMKaW5kZXggMmY3N2RlYTZhYzBlODMzODYxNTdkNTEyNWMzNTNhNzhhMTc3NjA1Yi4u
ZjNkM2E0Y2Q2MjA2MjdjMTAyZDkxM2Q1YWRjNThjZDUxNzIwMWE5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTIxOSw3
ICsyMTksNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0
ZS5pbnZva2Uoe2V4cHJlc3Npb246dmFsdWUsIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnM6dHJ1ZX0s
IGV2YWx1YXRlZENhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBSdW50aW1lQWdlbnQuZXZh
bHVhdGUuaW52b2tlKHtleHByZXNzaW9uOnZhbHVlLCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5k
TXV0ZUNvbnNvbGU6dHJ1ZX0sIGV2YWx1YXRlZENhbGxiYWNrLmJpbmQodGhpcykpOwogCiAgICAg
ICAgIC8qKgogICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKQEAgLTIz
OSw3ICsyMzksNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgZGVsZXRlIHJlc3VsdC5kZXNjcmlwdGlvbjsgLy8g
T3B0aW1pemUgb24gdHJhZmZpYy4KLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rp
b25Pbih0aGlzLl9vYmplY3RJZCwgc2V0UHJvcGVydHlWYWx1ZS50b1N0cmluZygpLCBbeyB2YWx1
ZTpuYW1lIH0sIHJlc3VsdF0sIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRo
aXMpKTsKKyAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmpl
Y3RJZCwgc2V0UHJvcGVydHlWYWx1ZS50b1N0cmluZygpLCBbeyB2YWx1ZTpuYW1lIH0sIHJlc3Vs
dF0sIHRydWUsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAg
ICAgICAgICAgIGlmIChyZXN1bHQuX29iamVjdElkKQogICAgICAgICAgICAgICAgIFJ1bnRpbWVB
Z2VudC5yZWxlYXNlT2JqZWN0KHJlc3VsdC5fb2JqZWN0SWQpOwogICAgICAgICB9CkBAIC0yODcs
NyArMjg3LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBjYWxsYmFjaygoZXJyb3IgfHwgd2FzVGhyb3duKSA/IG51bGwgOiBXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCkpOwogICAgICAgICB9CiAKLSAgICAg
ICAgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBmdW5jdGlvbkRl
Y2xhcmF0aW9uLnRvU3RyaW5nKCksIGFyZ3MsIHVuZGVmaW5lZCwgbXljYWxsYmFjayk7CisgICAg
ICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgZnVuY3Rpb25E
ZWNsYXJhdGlvbi50b1N0cmluZygpLCBhcmdzLCB0cnVlLCB1bmRlZmluZWQsIG15Y2FsbGJhY2sp
OwogICAgIH0sCiAKICAgICAvKioKQEAgLTMwNyw3ICszMDcsNyBAQCBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhbGxiYWNrKChlcnJvciB8fCB3
YXNUaHJvd24pID8gbnVsbCA6IHJlc3VsdC52YWx1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBS
dW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2JqZWN0SWQsIGZ1bmN0aW9uRGVjbGFy
YXRpb24udG9TdHJpbmcoKSwgYXJncywgdHJ1ZSwgbXljYWxsYmFjayk7CisgICAgICAgIFJ1bnRp
bWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgZnVuY3Rpb25EZWNsYXJhdGlv
bi50b1N0cmluZygpLCBhcmdzLCB0cnVlLCB0cnVlLCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAg
ICAgcmVsZWFzZTogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCmluZGV4IDMwMjg0MWJhOGYzN2ExMDczYzk1ZDVj
YjM0ODA3NDQ2MWRiZGUzMDIuLmM5ZjA1M2RjNGE4ZGRmMGRjNjUxMDFhZjRmOGM3YzFhM2M0MTRm
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2Vy
TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtl
ck1hbmFnZXIuanMKQEAgLTk4LDcgKzk4LDcgQEAgV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIu
X2NhbGN1bGF0ZVdvcmtlckluc3BlY3RvclRpdGxlID0gZnVuY3Rpb24oKQogICAgIHZhciBleHBy
ZXNzaW9uID0gImxvY2F0aW9uLmhyZWYiOwogICAgIGlmIChXZWJJbnNwZWN0b3IucXVlcnlQYXJh
bXNPYmplY3RbImlzU2hhcmVkV29ya2VyIl0pCiAgICAgICAgIGV4cHJlc3Npb24gKz0gIiArICh0
aGlzLm5hbWUgPyAnICgnICsgdGhpcy5uYW1lICsgJyknIDogJycpIjsKLSAgICBSdW50aW1lQWdl
bnQuZXZhbHVhdGUuaW52b2tlKHtleHByZXNzaW9uOmV4cHJlc3Npb24sIGRvTm90UGF1c2VPbkV4
Y2VwdGlvbnM6dHJ1ZSwgcmV0dXJuQnlWYWx1ZTogdHJ1ZX0sIGV2YWxDYWxsYmFjay5iaW5kKHRo
aXMpKTsKKyAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUuaW52b2tlKHtleHByZXNzaW9uOmV4cHJl
c3Npb24sIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTp0cnVlLCByZXR1cm5C
eVZhbHVlOiB0cnVlfSwgZXZhbENhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIAogICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5j
cHAKaW5kZXggZmUwZjBhZjdjN2VlZGI0OTZhNjExMmRlYWE5OGRhMGJmOWI2NDgxMS4uOTVmOGRj
ZTA4ZGIyMGMxMDUzMDNhOTlmMjE2YThmZGMwMjVlMWZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwCkBAIC01NSw2ICs1NSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK25hbWVzcGFj
ZSB7CisgICAgaW50IHNfbXV0ZUNvdW50ID0gMDsKK30KKwogQ29uc29sZTo6Q29uc29sZShGcmFt
ZSogZnJhbWUpCiAgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKIHsKQEAgLTEyOCw4ICsx
MzIsNiBAQCBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsCiAgICAgcHJpbnRmKCIlcyAlczoiLCBzb3Vy
Y2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKIH0KIAotdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLQogdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjaykKIHsKICAgICBhZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0
cmluZygpLCAwLCBjYWxsU3RhY2spOwpAQCAtMTM3LDYgKzEzOSwxMCBAQCB2b2lkIENvbnNvbGU6
OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZXZlbCBsZQogCiB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKKworICAgIGlmIChzX211dGVD
b3VudCAmJiBzb3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UpCisgICAgICAgIHJldHVy
bjsKKwogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAg
ICAgICByZXR1cm47CkBAIC0yMTEsNiArMjE3LDExIEBAIHZvaWQgQ29uc29sZTo6bG9nKFBhc3NS
ZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
CiAgICAgYWRkTWVzc2FnZShMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBhcmd1bWVu
dHMsIGNhbGxTdGFjayk7CiB9CiAKK3ZvaWQgQ29uc29sZTo6d2FybihQYXNzUmVmUHRyPFNjcmlw
dEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrKQoreworICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2
ZWwsIGFyZ3VtZW50cywgY2FsbFN0YWNrKTsKK30KKwogdm9pZCBDb25zb2xlOjpkaXIoUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+IGNhbGxTdGFjaykKIHsKICAgICBhZGRNZXNzYWdlKERpck1lc3NhZ2VUeXBlLCBMb2dNZXNz
YWdlTGV2ZWwsIGFyZ3VtZW50cywgY2FsbFN0YWNrKTsKQEAgLTMzMSw5ICszNDIsMTcgQEAgdm9p
ZCBDb25zb2xlOjpncm91cEVuZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRN
ZXNzYWdlVG9Db25zb2xlKHBhZ2UoKSwgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIEVuZEdyb3Vw
TWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgU3RyaW5nKCksIFN0cmluZygpLCAwKTsKIH0K
IAotdm9pZCBDb25zb2xlOjp3YXJuKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVu
dHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCisvLyBzdGF0aWMKK3Zv
aWQgQ29uc29sZTo6bXV0ZSgpCiB7Ci0gICAgYWRkTWVzc2FnZShMb2dNZXNzYWdlVHlwZSwgV2Fy
bmluZ01lc3NhZ2VMZXZlbCwgYXJndW1lbnRzLCBjYWxsU3RhY2spOworICAgIHNfbXV0ZUNvdW50
Kys7Cit9CisKKy8vIHN0YXRpYwordm9pZCBDb25zb2xlOjp1bm11dGUoKQoreworICAgIEFTU0VS
VChzX211dGVDb3VudCA+IDApOworICAgIHNfbXV0ZUNvdW50LS07CiB9CiAKIFBhc3NSZWZQdHI8
TWVtb3J5SW5mbz4gQ29uc29sZTo6bWVtb3J5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29uc29sZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKaW5k
ZXggODllMjk1NWQ2Y2I0ODU1MzY0MjM3NTdmOTZkYjBiZDI1NWMzNWI2YS4uOTE2Nzk0ZWExOTNh
MTU4NTZkYzZlMTU2NDg4MzRkYWRhNTVhN2RhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Db25zb2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKQEAgLTgx
LDYgKzgxLDkgQEAgcHVibGljOgogICAgIHZvaWQgZ3JvdXBDb2xsYXBzZWQoUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHZvaWQg
Z3JvdXBFbmQoKTsKIAorICAgIHN0YXRpYyB2b2lkIG11dGUoKTsKKyAgICBzdGF0aWMgdm9pZCB1
bm11dGUoKTsKKwogICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOwogICAg
IHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137725</attachid>
            <date>2012-04-18 11:07:52 -0700</date>
            <delta_ts>2012-04-19 07:54:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81970-20120418220750.patch</filename>
            <type>text/plain</type>
            <size>23582</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFhMGFmNmQxZjk3MWY2
MTRlNDM4M2Y1MjFiMWFmNWM3YzhjMjFjNi4uYjMwNWI3NzJiN2RkYmY4NGEyNWYwNzUzMWQ3YzY3
NGE0NzZhYTdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA0LTE4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHgtZnJhbWUgc2VjdXJpdHkgZXJyb3JzIGxvZ2dlZCB3aGVuIHR5cGluZyBpbiB0aGUgY29u
c29sZSBhcmUgYW5ub3lpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBhcmFtZXRlciBEb05vdFBhdXNlT25FeGNlcHRpb25zIGluIFJ1bnRpbWUuZXZh
bHVhdGUoKSByZW5hbWVkIHRvIERvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZS4K
KyAgICAgICAgQWRkZWQgdGhpcyBwYXJhbWV0ZXIgdG8gUnVudGltZS5jYWxsRnVuY3Rpb25Pbigp
IGFuZCBwYXNzZWQgdHJ1ZSBpbiBhbGwgY2FsbCBzaXRlcy4KKyAgICAgICAgQWRkZWQgYSBmbGFn
IHRvIGNvbnNvbGUgdGhhdCBtdXRlcyBhbGwgbWVzc2FnZXMgdW5sZXNzIHRoZXkgaGF2ZSBDb25z
b2xlQVBJIG1lc3NhZ2Ugc291cmNlLgorICAgICAgICBUaGlzIGZsYWcgaXMgbm93IHRlbXBvcmFy
aWx5IHNldCBmcm9tIEluc3BlY3RvclJ1bnRpbWVBZ2VudCBmb3IgY2VydGFpbiBpbmplY3RlZCBz
b3VyY2UgY2FsbHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAoSW5zcGVj
dG9yUnVudGltZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVudGltZUFnZW50OjptdXRlQ29uc29sZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OnVu
bXV0ZUNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50Lmg6Cisg
ICAgICAgIChQYWdlUnVudGltZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVu
dGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6bXV0
ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJS
dW50aW1lQWdlbnQ6OnVubXV0ZUNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJS
dW50aW1lQWdlbnQuaDoKKyAgICAgICAgKFdvcmtlclJ1bnRpbWVBZ2VudCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUuZXZhbEluSW5zcGVjdGVkV2luZG93KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuY2FsbEZ1bmN0aW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLmNhbGxGdW5jdGlvbkpTT04p
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qczoKKyAgICAg
ICAgKiBwYWdlL0NvbnNvbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6YWRkTWVz
c2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp3YXJuKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6bXV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb25zb2xlOjp1bm11dGUpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAgICAo
Q29uc29sZSk6CisKIDIwMTItMDQtMTcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtWOF0gQWRkIGFuIG9wdGlvbmFsIElzb2xhdGUgYXJndW1lbnQgdG8g
dG9WOCgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDlhZGQz
YjYxNDJkNTEzMjk3YmI3MWJmZTliNTg1ZmU2OWZlZTk3NDUuLjMzMTIwYTU2YjRjZWRhMzU0YTA0
NjQ5NzJlMGM0ZDBiZDA2MDA0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KQEAgLTQyMiw3ICs0MjIsNyBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImV4cHJlc3Npb24iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRXhwcmVzc2lv
biB0byBldmFsdWF0ZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0
R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiU3ltYm9saWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVhc2UgbXVsdGlw
bGUgb2JqZWN0cy4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW5jbHVkZUNv
bW1hbmRMaW5lQVBJIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJEZXRlcm1pbmVzIHdoZXRoZXIgQ29tbWFuZCBMaW5lIEFQSSBzaG91bGQgYmUg
YXZhaWxhYmxlIGR1cmluZyB0aGUgZXZhbHVhdGlvbi4iLCAiaGlkZGVuIjogdHJ1ZSB9LAotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvTm90UGF1c2VPbkV4Y2VwdGlvbnMiLCAidHlw
ZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmll
cyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhjZXB0aW9ucy4gT3ZlcnJpZGVz
IHNldFBhdXNlT25FeGNlcHRpb24gc3RhdGUuIiwgImhpZGRlbiI6IHRydWUgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNv
bGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IlNwZWNpZmllcyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhjZXB0aW9ucyBh
bmQgbXV0ZSBjb25zb2xlLiBPdmVycmlkZXMgc2V0UGF1c2VPbkV4Y2VwdGlvbiBzdGF0ZS4iLCAi
aGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQi
LCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiU3BlY2lmaWVzIGluIHdoaWNoIGZyYW1lIHRvIHBlcmZvcm0gZXZhbHVhdGlvbi4iLCAi
aGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJldHVybkJ5
VmFsdWUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIldoZXRoZXIgdGhlIHJlc3VsdCBpcyBleHBlY3RlZCB0byBiZSBhIEpTT04gb2JqZWN0IHRo
YXQgc2hvdWxkIGJlIHNlbnQgYnkgdmFsdWUuIiB9CiAgICAgICAgICAgICAgICAgXSwKQEAgLTQz
OCw2ICs0MzgsNyBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdElkIiwg
IiRyZWYiOiAiUmVtb3RlT2JqZWN0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0
aGUgb2JqZWN0IHRvIGNhbGwgZnVuY3Rpb24gb24uIiB9LAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImZ1bmN0aW9uRGVjbGFyYXRpb24iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3Jp
cHRpb24iOiAiRGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIHRvIGNhbGwuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIsICJ0eXBlIjogImFycmF5IiwgIml0
ZW1zIjogeyAiJHJlZiI6ICJDYWxsQXJndW1lbnQiLCAiZGVzY3JpcHRpb24iOiAiQ2FsbCBhcmd1
bWVudC4iIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDYWxsIGFyZ3VtZW50
cy4gQWxsIGNhbGwgYXJndW1lbnRzIG11c3QgYmVsb25nIHRvIHRoZSBzYW1lIEphdmFTY3JpcHQg
d29ybGQgYXMgdGhlIHRhcmdldCBvYmplY3QuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSIsICJ0eXBlIjogImJv
b2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIHdoZXRo
ZXIgZnVuY3Rpb24gY2FsbCBzaG91bGQgc3RvcCBvbiBleGNlcHRpb25zIGFuZCBtdXRlIGNvbnNv
bGUuIE92ZXJyaWRlcyBzZXRQYXVzZU9uRXhjZXB0aW9uIHN0YXRlLiIsICJoaWRkZW4iOiB0cnVl
IH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmV0dXJuQnlWYWx1ZSIsICJ0eXBl
IjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0
aGUgcmVzdWx0IGlzIGV4cGVjdGVkIHRvIGJlIGEgSlNPTiBvYmplY3Qgd2hpY2ggc2hvdWxkIGJl
IHNlbnQgYnkgdmFsdWUuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAi
cmV0dXJucyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5jcHAKaW5kZXggZjI0MGE4ODAzY2E5MzhlNzVkMmM4ODY3OTllZWU5YzY5OTFm
NDNmMC4uYWQ2YzhjNmRjZTU5NjIyN2ZjNDczYzQwYzQ3OWRlMTQ3YWQ4NDliMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAg
LTcyLDcgKzcyLDE4IEBAIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6fkluc3BlY3RvclJ1bnRpbWVB
Z2VudCgpCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JSdW50aW1lQWdl
bnQoMCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5n
KiBjb25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5l
QVBJLCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJp
bmcqIGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJvb2wqIGNvbnN0IHJldHVybkJ5VmFsdWUsIFJlZlB0
cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRl
cjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pCisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCitzdGF0aWMgU2NyaXB0RGVidWdTZXJ2ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGUg
c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShTY3JpcHREZWJ1Z1NlcnZlciogc2NyaXB0RGVidWdT
ZXJ2ZXIsIFNjcmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0YXRlIG5ld1N0YXRl
KQoreworICAgIEFTU0VSVChzY3JpcHREZWJ1Z1NlcnZlcik7CisgICAgU2NyaXB0RGVidWdTZXJ2
ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGUgcHJlc2VudFN0YXRlID0gc2NyaXB0RGVidWdTZXJ2
ZXItPnBhdXNlT25FeGNlcHRpb25zU3RhdGUoKTsKKyAgICBpZiAocHJlc2VudFN0YXRlICE9IG5l
d1N0YXRlKQorICAgICAgICBzY3JpcHREZWJ1Z1NlcnZlci0+c2V0UGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZShuZXdTdGF0ZSk7CisgICAgcmV0dXJuIHByZXNlbnRTdGF0ZTsKK30KKyNlbmRpZgorCit2
b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogY29uc3Qgb2JqZWN0
R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGluY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9v
bCogY29uc3QgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBTdHJp
bmcqIGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJvb2wqIGNvbnN0IHJldHVybkJ5VmFsdWUsIFJlZlB0
cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRl
cjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pCiB7CiAgICAgU2NyaXB0U3RhdGUqIHNjcmlw
dFN0YXRlID0gMDsKICAgICBpZiAoZnJhbWVJZCkgewpAQCAtODksMjQgKzEwMCwyNCBAQCB2b2lk
IEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGV4cAogICAgICAgICByZXR1cm47CiAgICAgfQogI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIEFTU0VSVChtX3NjcmlwdERlYnVnU2VydmVyKTsKLSAg
ICBib29sIHBhdXNlU3RhdGVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgU2NyaXB0RGVidWdTZXJ2ZXI6
OlBhdXNlT25FeGNlcHRpb25zU3RhdGUgcHJlc2VudFN0YXRlID0gbV9zY3JpcHREZWJ1Z1NlcnZl
ci0+cGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSgpOwotICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9u
RXhjZXB0aW9ucykgJiYgcHJlc2VudFN0YXRlICE9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1
c2VPbkV4Y2VwdGlvbnMpIHsKLSAgICAgICAgbV9zY3JpcHREZWJ1Z1NlcnZlci0+c2V0UGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZShTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25z
KTsKLSAgICAgICAgcGF1c2VTdGF0ZUNoYW5nZWQgPSB0cnVlOwotICAgIH0KKyAgICBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwcmV2aW91c1BhdXNlT25FeGNlcHRp
b25zU3RhdGUgPSBTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25zOworICAg
IGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlKSkKKyAgICAg
ICAgcHJldmlvdXNQYXVzZU9uRXhjZXB0aW9uc1N0YXRlID0gc2V0UGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZShtX3NjcmlwdERlYnVnU2VydmVyLCBTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25F
eGNlcHRpb25zKTsKICNlbmRpZgorICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhjZXB0aW9u
c0FuZE11dGVDb25zb2xlKSkKKyAgICAgICAgbXV0ZUNvbnNvbGUoKTsKIAogICAgIGluamVjdGVk
U2NyaXB0LmV2YWx1YXRlKGVycm9yU3RyaW5nLCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpv
YmplY3RHcm91cCA6ICIiLCBhc0Jvb2woaW5jbHVkZUNvbW1hbmRMaW5lQVBJKSwgYXNCb29sKHJl
dHVybkJ5VmFsdWUpLCAmcmVzdWx0LCB3YXNUaHJvd24pOwogCisgICAgaWYgKGFzQm9vbChkb05v
dFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUpKSB7CisgICAgICAgIHVubXV0ZUNvbnNv
bGUoKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAocGF1c2VTdGF0
ZUNoYW5nZWQpCi0gICAgICAgIG1fc2NyaXB0RGVidWdTZXJ2ZXItPnNldFBhdXNlT25FeGNlcHRp
b25zU3RhdGUocHJlc2VudFN0YXRlKTsKKyAgICAgICAgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0
ZShtX3NjcmlwdERlYnVnU2VydmVyLCBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUpOwog
I2VuZGlmCisgICAgfQogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0
aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNv
bnN0IG9wdGlvbmFsQXJndW1lbnRzLCBjb25zdCBib29sKiBjb25zdCByZXR1cm5CeVZhbHVlLCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1
aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKQordm9pZCBJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6OmNhbGxGdW5jdGlvbk9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+KiBjb25zdCBvcHRpb25hbEFyZ3VtZW50cywgY29uc3QgYm9vbCogY29uc3Qg
ZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBib29sKiBjb25zdCBy
ZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4m
IHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKQogewogICAg
IEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIt
PmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNj
cmlwdC5oYXNOb1ZhbHVlKCkpIHsKQEAgLTExNyw3ICsxMjgsMjIgQEAgdm9pZCBJbnNwZWN0b3JS
dW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW4KICAgICBpZiAob3B0aW9uYWxBcmd1bWVudHMpCiAgICAgICAgIGFyZ3VtZW50cyA9
ICgqb3B0aW9uYWxBcmd1bWVudHMpLT50b0pTT05TdHJpbmcoKTsKIAorI2lmIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKQorICAgIFNjcmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9u
c1N0YXRlIHByZXZpb3VzUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9IFNjcmlwdERlYnVnU2VydmVy
OjpEb250UGF1c2VPbkV4Y2VwdGlvbnM7CisgICAgaWYgKGFzQm9vbChkb05vdFBhdXNlT25FeGNl
cHRpb25zQW5kTXV0ZUNvbnNvbGUpKQorICAgICAgICBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25z
U3RhdGUgPSBzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKG1fc2NyaXB0RGVidWdTZXJ2ZXIsIFNj
cmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpOworI2VuZGlmCisgICAgaWYg
KGFzQm9vbChkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUpKQorICAgICAgICBt
dXRlQ29uc29sZSgpOworCiAgICAgaW5qZWN0ZWRTY3JpcHQuY2FsbEZ1bmN0aW9uT24oZXJyb3JT
dHJpbmcsIG9iamVjdElkLCBleHByZXNzaW9uLCBhcmd1bWVudHMsIGFzQm9vbChyZXR1cm5CeVZh
bHVlKSwgJnJlc3VsdCwgd2FzVGhyb3duKTsKKworICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9u
RXhjZXB0aW9uc0FuZE11dGVDb25zb2xlKSkgeworICAgICAgICB1bm11dGVDb25zb2xlKCk7Cisj
aWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgICAgIHNldFBhdXNlT25FeGNlcHRp
b25zU3RhdGUobV9zY3JpcHREZWJ1Z1NlcnZlciwgcHJldmlvdXNQYXVzZU9uRXhjZXB0aW9uc1N0
YXRlKTsKKyNlbmRpZgorICAgIH0KIH0KIAogdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6Omdl
dFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVj
dElkLCBjb25zdCBib29sKiBjb25zdCBvd25Qcm9wZXJ0aWVzLCBSZWZQdHI8VHlwZUJ1aWxkZXI6
OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpQcm9wZXJ0eURlc2NyaXB0b3I+ID4mIHJlc3Vs
dCkKQEAgLTEyNyw3ICsxNTMsMTggQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmdldFBy
b3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcKICAgICAgICAg
KmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBoYXMgZ29uZSI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwcmV2aW91c1BhdXNlT25FeGNlcHRp
b25zU3RhdGUgPSBzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKG1fc2NyaXB0RGVidWdTZXJ2ZXIs
IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpOworI2VuZGlmCisgICAg
bXV0ZUNvbnNvbGUoKTsKKwogICAgIGluamVjdGVkU2NyaXB0LmdldFByb3BlcnRpZXMoZXJyb3JT
dHJpbmcsIG9iamVjdElkLCBvd25Qcm9wZXJ0aWVzID8gKm93blByb3BlcnRpZXMgOiBmYWxzZSwg
JnJlc3VsdCk7CisKKyAgICB1bm11dGVDb25zb2xlKCk7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCisgICAgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShtX3NjcmlwdERlYnVnU2Vy
dmVyLCBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUpOworI2VuZGlmCiB9CiAKIHZvaWQg
SW5zcGVjdG9yUnVudGltZUFnZW50OjpyZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiBvYmplY3RJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSdW50aW1lQWdlbnQuaAppbmRleCAyMWYzYjkwZjIwYjgzZDIyM2ExMWMzNzU5ZDdmNWViMGU2
MWM2ZDYxLi44MjgwYWUyZTUwZWFmYTNiMWQxNDMxZGE3ZWFiZmY5MDU4NmM3NGNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC02
MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZXhw
cmVzc2lvbiwKICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsCiAg
ICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEksCi0gICAg
ICAgICAgICAgICAgICBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zLAorICAgICAg
ICAgICAgICAgICAgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25z
b2xlLAogICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nKiBmcmFtZUlkLAogICAgICAgICAg
ICAgICAgICAgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1ZSwKICAgICAgICAgICAgICAgICAgIFJl
ZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LApAQCAtNzAs
NiArNzAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IG9iamVjdElkLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5
Piogb3B0aW9uYWxBcmd1bWVudHMsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29s
KiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBib29sKiByZXR1cm5CeVZhbHVlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNU
aHJvd24pOwpAQCAtODksNiArOTAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yUnVudGlt
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2Ny
aXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlRm9yRnJh
bWVJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpID0gMDsKICAgICB2aXJ0dWFsIFNjcmlwdFN0YXRl
KiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG11dGVD
b25zb2xlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgPSAwOwogCiBw
cml2YXRlOgogICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5k
ZXggN2QwN2VlMzE0ZjNiMzBkOTQxN2UyODI0N2ExNTAyYmZlMmNmZDBlNS4uY2RlOWRhN2MxZmEx
ZmMyZmZmNDQ5ZDg4ZWNjMzQ0MzBhYTRhMDA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtMzQsNiArMzQsOSBAQAogCiAjaW5jbHVkZSAi
UGFnZVJ1bnRpbWVBZ2VudC5oIgogCisjaW5jbHVkZSAiQ29uc29sZS5oIgorI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFn
ZUFnZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCkBA
IC02NCw2ICs2NywxNiBAQCBTY3JpcHRTdGF0ZSogUGFnZVJ1bnRpbWVBZ2VudDo6Z2V0RGVmYXVs
dEluc3BlY3RlZFN0YXRlKCkKICAgICByZXR1cm4gbWFpbldvcmxkU2NyaXB0U3RhdGUobV9pbnNw
ZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSk7CiB9CiAKK3ZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6bXV0
ZUNvbnNvbGUoKQoreworICAgIENvbnNvbGU6Om11dGUoKTsKK30KKwordm9pZCBQYWdlUnVudGlt
ZUFnZW50Ojp1bm11dGVDb25zb2xlKCkKK3sKKyAgICBDb25zb2xlOjp1bm11dGUoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCmluZGV4IGZmZTI5MGNi
NDAyNjM1NmM4OGFmYmZjYTA0OTc1NWMxMzQ1NGNmMDMuLjMyNjE0YTg5NGZhNjY1Njk5NDYxMDBl
ZTFkMzJjOTBjYWU3YzE1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuaApAQCAtNTQsNiArNTQsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTY3Jp
cHRTdGF0ZSogc2NyaXB0U3RhdGVGb3JGcmFtZUlkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAg
ICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogZ2V0RGVmYXVsdEluc3BlY3RlZFN0YXRlKCk7CisgICAg
dmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CisgICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNv
bGUoKTsKICAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50
KiBtX3BhZ2VBZ2VudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJS
dW50aW1lQWdlbnQuY3BwCmluZGV4IDg1YjhhZTUwN2QxOTYyZGE2ZWU0MzdiMTQxMDFiNzYyMWMz
ZmIzMjcuLjFjNDQ1N2UxOWMzMzQ4N2FiNGNmODliZDFiODJiMWZhMDMxMzhjMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBAIC01OCw2
ICs1OCwxNiBAQCBTY3JpcHRTdGF0ZSogV29ya2VyUnVudGltZUFnZW50OjpnZXREZWZhdWx0SW5z
cGVjdGVkU3RhdGUoKQogICAgIHJldHVybiBzY3JpcHRTdGF0ZUZyb21Xb3JrZXJDb250ZXh0KG1f
d29ya2VyQ29udGV4dCk7CiB9CiAKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50OjptdXRlQ29uc29s
ZSgpCit7CisgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBtdXRlIGNvbnNvbGUgZm9yIHdvcmtlcnMu
Cit9CisKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xlKCkKK3sKKyAgICAv
LyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxF
KFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVu
dGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50
LmgKaW5kZXggZDI2OWEyZmUzNmU4NTYzYTM3NmRkYzljZjZiYTkwYmRkYWU2ZGQ1OC4uY2NmZTFm
YjAzYWQ4OGI1ZjA1OWUzNWZmYjUyNGMxZDc1OTZhY2ZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaApAQCAtNTIsNiArNTIsOCBAQCBwcml2YXRl
OgogICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9y
U3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3JrZXJDb250ZXh0Kik7CiAgICAgdmly
dHVhbCBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGVGb3JGcmFtZUlkKGNvbnN0IFN0cmluZyYgZnJh
bWVJZCk7CiAgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogZ2V0RGVmYXVsdEluc3BlY3RlZFN0YXRl
KCk7CisgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CisgICAgdmlydHVhbCB2b2lkIHVu
bXV0ZUNvbnNvbGUoKTsKICAgICBXb3JrZXJDb250ZXh0KiBtX3dvcmtlckNvbnRleHQ7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVW
aWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5q
cwppbmRleCA3NjI2YzNlMjlhMGE0N2U0MTJlYmMzZjE4NzMzZTQxMmI3ZDEwOGNhLi40ZmVmNDFj
N2VjNDhiZGExMGFiZGRkYzU0YjgxNGRhZjlhYzA1NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTU4NiwxMSArNTg2LDEx
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFt
IHtzdHJpbmd9IGV4cHJlc3Npb24KICAgICAgKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0R3JvdXAK
ICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVDb21tYW5kTGluZUFQSQotICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gZG9Ob3RQYXVzZU9uRXhjZXB0aW9ucworICAgICAqIEBwYXJhbSB7Ym9v
bGVhbn0gZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlCiAgICAgICogQHBhcmFt
IHtib29sZWFufSByZXR1cm5CeVZhbHVlCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdCwgYm9vbGVhbiwgUnVudGltZUFnZW50LlJlbW90ZU9iamVjdD0p
fSBjYWxsYmFjawogICAgICAqLwotICAgIGV2YWxJbkluc3BlY3RlZFdpbmRvdzogZnVuY3Rpb24o
ZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQYXVz
ZU9uRXhjZXB0aW9ucywgcmV0dXJuQnlWYWx1ZSwgY2FsbGJhY2spCisgICAgZXZhbEluSW5zcGVj
dGVkV2luZG93OiBmdW5jdGlvbihleHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1h
bmRMaW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIHJldHVybkJ5
VmFsdWUsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5kZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnNlbGVjdGVkQ2FsbEZyYW1lKSB7CiAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxs
RnJhbWUoZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgcmV0
dXJuQnlWYWx1ZSwgY2FsbGJhY2spOwpAQCAtNjIwLDcgKzYyMCw3IEBAIFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQp
LCAhIXdhc1Rocm93bik7CiAgICAgICAgIH0KLSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRl
KGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGRvTm90UGF1
c2VPbkV4Y2VwdGlvbnMsIHRoaXMuX2N1cnJlbnRFdmFsdWF0aW9uQ29udGV4dElkKCksIHJldHVy
bkJ5VmFsdWUsIGV2YWxDYWxsYmFjayk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShl
eHByZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNl
T25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIHRoaXMuX2N1cnJlbnRFdmFsdWF0aW9uQ29udGV4
dElkKCksIHJldHVybkJ5VmFsdWUsIGV2YWxDYWxsYmFjayk7CiAgICAgfSwKIAogICAgIGV2YWx1
YXRlVXNpbmdUZXh0UHJvbXB0OiBmdW5jdGlvbihleHByZXNzaW9uLCBzaG93UmVzdWx0T25seSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2Jq
ZWN0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3Qu
anMKaW5kZXggMmY3N2RlYTZhYzBlODMzODYxNTdkNTEyNWMzNTNhNzhhMTc3NjA1Yi4uZjNkM2E0
Y2Q2MjA2MjdjMTAyZDkxM2Q1YWRjNThjZDUxNzIwMWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTIxOSw3ICsyMTks
NyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS5pbnZv
a2Uoe2V4cHJlc3Npb246dmFsdWUsIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnM6dHJ1ZX0sIGV2YWx1
YXRlZENhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUu
aW52b2tlKHtleHByZXNzaW9uOnZhbHVlLCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNv
bnNvbGU6dHJ1ZX0sIGV2YWx1YXRlZENhbGxiYWNrLmJpbmQodGhpcykpOwogCiAgICAgICAgIC8q
KgogICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKQEAgLTIzOSw3ICsy
MzksNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgZGVsZXRlIHJlc3VsdC5kZXNjcmlwdGlvbjsgLy8gT3B0aW1p
emUgb24gdHJhZmZpYy4KLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0
aGlzLl9vYmplY3RJZCwgc2V0UHJvcGVydHlWYWx1ZS50b1N0cmluZygpLCBbeyB2YWx1ZTpuYW1l
IH0sIHJlc3VsdF0sIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMpKTsK
KyAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwg
c2V0UHJvcGVydHlWYWx1ZS50b1N0cmluZygpLCBbeyB2YWx1ZTpuYW1lIH0sIHJlc3VsdF0sIHRy
dWUsIHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICAgICAg
ICAgIGlmIChyZXN1bHQuX29iamVjdElkKQogICAgICAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5y
ZWxlYXNlT2JqZWN0KHJlc3VsdC5fb2JqZWN0SWQpOwogICAgICAgICB9CkBAIC0yODcsNyArMjg3
LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICBjYWxsYmFjaygoZXJyb3IgfHwgd2FzVGhyb3duKSA/IG51bGwgOiBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCkpOwogICAgICAgICB9CiAKLSAgICAgICAgUnVu
dGltZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBmdW5jdGlvbkRlY2xhcmF0
aW9uLnRvU3RyaW5nKCksIGFyZ3MsIHVuZGVmaW5lZCwgbXljYWxsYmFjayk7CisgICAgICAgIFJ1
bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgZnVuY3Rpb25EZWNsYXJh
dGlvbi50b1N0cmluZygpLCBhcmdzLCB0cnVlLCB1bmRlZmluZWQsIG15Y2FsbGJhY2spOwogICAg
IH0sCiAKICAgICAvKioKQEAgLTMwNyw3ICszMDcsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhbGxiYWNrKChlcnJvciB8fCB3YXNUaHJv
d24pID8gbnVsbCA6IHJlc3VsdC52YWx1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBSdW50aW1l
QWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2JqZWN0SWQsIGZ1bmN0aW9uRGVjbGFyYXRpb24u
dG9TdHJpbmcoKSwgYXJncywgdHJ1ZSwgbXljYWxsYmFjayk7CisgICAgICAgIFJ1bnRpbWVBZ2Vu
dC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgZnVuY3Rpb25EZWNsYXJhdGlvbi50b1N0
cmluZygpLCBhcmdzLCB0cnVlLCB0cnVlLCBteWNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgcmVs
ZWFzZTogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCmluZGV4IDMwMjg0MWJhOGYzN2ExMDczYzk1ZDVjYjM0ODA3
NDQ2MWRiZGUzMDIuLmM5ZjA1M2RjNGE4ZGRmMGRjNjUxMDFhZjRmOGM3YzFhM2M0MTRmMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdl
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFn
ZXIuanMKQEAgLTk4LDcgKzk4LDcgQEAgV2ViSW5zcGVjdG9yLldvcmtlck1hbmFnZXIuX2NhbGN1
bGF0ZVdvcmtlckluc3BlY3RvclRpdGxlID0gZnVuY3Rpb24oKQogICAgIHZhciBleHByZXNzaW9u
ID0gImxvY2F0aW9uLmhyZWYiOwogICAgIGlmIChXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmpl
Y3RbImlzU2hhcmVkV29ya2VyIl0pCiAgICAgICAgIGV4cHJlc3Npb24gKz0gIiArICh0aGlzLm5h
bWUgPyAnICgnICsgdGhpcy5uYW1lICsgJyknIDogJycpIjsKLSAgICBSdW50aW1lQWdlbnQuZXZh
bHVhdGUuaW52b2tlKHtleHByZXNzaW9uOmV4cHJlc3Npb24sIGRvTm90UGF1c2VPbkV4Y2VwdGlv
bnM6dHJ1ZSwgcmV0dXJuQnlWYWx1ZTogdHJ1ZX0sIGV2YWxDYWxsYmFjay5iaW5kKHRoaXMpKTsK
KyAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUuaW52b2tlKHtleHByZXNzaW9uOmV4cHJlc3Npb24s
IGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTp0cnVlLCByZXR1cm5CeVZhbHVl
OiB0cnVlfSwgZXZhbENhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIAogICAgIC8qKgogICAgICAq
IEBwYXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKaW5k
ZXggZmUwZjBhZjdjN2VlZGI0OTZhNjExMmRlYWE5OGRhMGJmOWI2NDgxMS4uOTVmOGRjZTA4ZGIy
MGMxMDUzMDNhOTlmMjE2YThmZGMwMjVlMWZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBA
IC01NSw2ICs1NSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK25hbWVzcGFjZSB7Cisg
ICAgaW50IHNfbXV0ZUNvdW50ID0gMDsKK30KKwogQ29uc29sZTo6Q29uc29sZShGcmFtZSogZnJh
bWUpCiAgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKIHsKQEAgLTEyOCw4ICsxMzIsNiBA
QCBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsCiAgICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJp
bmcsIGxldmVsU3RyaW5nKTsKIH0KIAotdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKLQogdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykK
IHsKICAgICBhZGRNZXNzYWdlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygp
LCAwLCBjYWxsU3RhY2spOwpAQCAtMTM3LDYgKzEzOSwxMCBAQCB2b2lkIENvbnNvbGU6OmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZQogCiB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKKworICAgIGlmIChzX211dGVDb3VudCAm
JiBzb3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UpCisgICAgICAgIHJldHVybjsKKwog
ICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBy
ZXR1cm47CkBAIC0yMTEsNiArMjE3LDExIEBAIHZvaWQgQ29uc29sZTo6bG9nKFBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0CiAgICAg
YWRkTWVzc2FnZShMb2dNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBhcmd1bWVudHMsIGNh
bGxTdGFjayk7CiB9CiAKK3ZvaWQgQ29uc29sZTo6d2FybihQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQor
eworICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIGFy
Z3VtZW50cywgY2FsbFN0YWNrKTsKK30KKwogdm9pZCBDb25zb2xlOjpkaXIoUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaykKIHsKICAgICBhZGRNZXNzYWdlKERpck1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2
ZWwsIGFyZ3VtZW50cywgY2FsbFN0YWNrKTsKQEAgLTMzMSw5ICszNDIsMTcgQEAgdm9pZCBDb25z
b2xlOjpncm91cEVuZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdl
VG9Db25zb2xlKHBhZ2UoKSwgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIEVuZEdyb3VwTWVzc2Fn
ZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgU3RyaW5nKCksIFN0cmluZygpLCAwKTsKIH0KIAotdm9p
ZCBDb25zb2xlOjp3YXJuKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCisvLyBzdGF0aWMKK3ZvaWQgQ29u
c29sZTo6bXV0ZSgpCiB7Ci0gICAgYWRkTWVzc2FnZShMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01l
c3NhZ2VMZXZlbCwgYXJndW1lbnRzLCBjYWxsU3RhY2spOworICAgIHNfbXV0ZUNvdW50Kys7Cit9
CisKKy8vIHN0YXRpYwordm9pZCBDb25zb2xlOjp1bm11dGUoKQoreworICAgIEFTU0VSVChzX211
dGVDb3VudCA+IDApOworICAgIHNfbXV0ZUNvdW50LS07CiB9CiAKIFBhc3NSZWZQdHI8TWVtb3J5
SW5mbz4gQ29uc29sZTo6bWVtb3J5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29uc29sZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKaW5kZXggODll
Mjk1NWQ2Y2I0ODU1MzY0MjM3NTdmOTZkYjBiZDI1NWMzNWI2YS4uOTE2Nzk0ZWExOTNhMTU4NTZk
YzZlMTU2NDg4MzRkYWRhNTVhN2RhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b25zb2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKQEAgLTgxLDYgKzgx
LDkgQEAgcHVibGljOgogICAgIHZvaWQgZ3JvdXBDb2xsYXBzZWQoUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwogICAgIHZvaWQgZ3JvdXBF
bmQoKTsKIAorICAgIHN0YXRpYyB2b2lkIG11dGUoKTsKKyAgICBzdGF0aWMgdm9pZCB1bm11dGUo
KTsKKwogICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOwogICAgIHN0YXRp
YyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137901</attachid>
            <date>2012-04-19 07:54:41 -0700</date>
            <delta_ts>2012-04-19 07:55:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81970-20120419185439.patch</filename>
            <type>text/plain</type>
            <size>35976</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY1MjIzMjdmODdlYmVj
NGVkYTdmNWRhMWE0ODRmMDAwNzg1OWI2Zi4uZTAxYTEzMjdjZTU0ODIzYmEzOGM3ODEwYWRhYzUz
NTVhMmYzN2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTA0LTE5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHgtZnJhbWUgc2VjdXJpdHkgZXJyb3JzIGxvZ2dlZCB3aGVuIHR5cGluZyBpbiB0aGUgY29u
c29sZSBhcmUgYW5ub3lpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisK
KyAgICAgICAgUGFyYW1ldGVyIERvTm90UGF1c2VPbkV4Y2VwdGlvbnMgaW4gUnVudGltZS5ldmFs
dWF0ZSgpIHJlbmFtZWQgdG8gRG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLgor
ICAgICAgICBBZGRlZCB0aGlzIHBhcmFtZXRlciB0byBSdW50aW1lLmNhbGxGdW5jdGlvbk9uKCkg
YW5kIHBhc3NlZCB0cnVlIGluIGFsbCBjYWxsIHNpdGVzLgorICAgICAgICBBZGRlZCB0aGlzIHBh
cmFtZXRlciB0byBEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lKCkuCisgICAgICAgIEFkZGVk
IGEgZmxhZyB0byBjb25zb2xlIHRoYXQgbXV0ZXMgYWxsIG1lc3NhZ2VzIHVubGVzcyB0aGV5IGhh
dmUgQ29uc29sZUFQSSBtZXNzYWdlIHNvdXJjZS4KKyAgICAgICAgVGhpcyBmbGFnIGlzIG5vdyB0
ZW1wb3JhcmlseSBzZXQgZnJvbSBJbnNwZWN0b3JSdW50aW1lQWdlbnQgYW5kIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQgZm9yIGNlcnRhaW4gaW5qZWN0ZWQgc291cmNlIGNhbGxzLgorCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFzQm9vbCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmV2
YWx1YXRlT25DYWxsRnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24pOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpnZXRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JSdW50
aW1lQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRl
Q29uc29sZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50Lmg6CisgICAg
ICAgIChQYWdlRGVidWdnZXJBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNv
bGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVudGltZUFn
ZW50Ojp1bm11dGVDb25zb2xlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2Vu
dC5oOgorICAgICAgICAoUGFnZVJ1bnRpbWVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL1dv
cmtlckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRGVidWdnZXJB
Z2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJEZWJ1Z2dlckFnZW50Ojp1bm11dGVDb25zb2xlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAoV29ya2VyRGVidWdnZXJBZ2VudCk6
CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6Om11dGVDb25zb2xlKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50Lmg6CisgICAgICAgIChX
b3JrZXJSdW50aW1lQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLmV2
YWxJbkluc3BlY3RlZFdpbmRvdyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFtZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZS5l
dmFsdWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZS5zZXRQcm9wZXJ0
eVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLmNh
bGxGdW5jdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlw
ZS5jYWxsRnVuY3Rpb25KU09OKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtl
ck1hbmFnZXIuanM6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnNvbGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6d2Fy
bik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGU6Om11dGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dW5tdXRlKToKKyAgICAgICAgKiBwYWdlL0Nv
bnNvbGUuaDoKKyAgICAgICAgKENvbnNvbGUpOgorCiAyMDEyLTA0LTE5ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMTE0NjI4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmlu
ZGV4IDlhZGQzYjYxNDJkNTEzMjk3YmI3MWJmZTliNTg1ZmU2OWZlZTk3NDUuLjlkYzliZjA2NmVj
ZjhlNjYxMmNkMmVlNTNjOWQxOGQ5MjIxNTg2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb24KQEAgLTQyMiw3ICs0MjIsNyBAQAogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImV4cHJlc3Npb24iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
RXhwcmVzc2lvbiB0byBldmFsdWF0ZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAib2JqZWN0R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiU3ltYm9saWMgZ3JvdXAgbmFtZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlbGVh
c2UgbXVsdGlwbGUgb2JqZWN0cy4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aW5jbHVkZUNvbW1hbmRMaW5lQVBJIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJEZXRlcm1pbmVzIHdoZXRoZXIgQ29tbWFuZCBMaW5lIEFQSSBz
aG91bGQgYmUgYXZhaWxhYmxlIGR1cmluZyB0aGUgZXZhbHVhdGlvbi4iLCAiaGlkZGVuIjogdHJ1
ZSB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvTm90UGF1c2VPbkV4Y2VwdGlv
bnMiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IlNwZWNpZmllcyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhjZXB0aW9ucy4g
T3ZlcnJpZGVzIHNldFBhdXNlT25FeGNlcHRpb24gc3RhdGUuIiwgImhpZGRlbiI6IHRydWUgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb05vdFBhdXNlT25FeGNlcHRpb25zQW5k
TXV0ZUNvbnNvbGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlNwZWNpZmllcyB3aGV0aGVyIGV2YWx1YXRpb24gc2hvdWxkIHN0b3Agb24gZXhj
ZXB0aW9ucyBhbmQgbXV0ZSBjb25zb2xlLiBPdmVycmlkZXMgc2V0UGF1c2VPbkV4Y2VwdGlvbiBz
dGF0ZS4iLCAiaGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiU3BlY2lmaWVzIGluIHdoaWNoIGZyYW1lIHRvIHBlcmZvcm0gZXZhbHVh
dGlvbi4iLCAiaGlkZGVuIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InJldHVybkJ5VmFsdWUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIldoZXRoZXIgdGhlIHJlc3VsdCBpcyBleHBlY3RlZCB0byBiZSBhIEpTT04g
b2JqZWN0IHRoYXQgc2hvdWxkIGJlIHNlbnQgYnkgdmFsdWUuIiB9CiAgICAgICAgICAgICAgICAg
XSwKQEAgLTQzOCw2ICs0MzgsNyBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9i
amVjdElkIiwgIiRyZWYiOiAiUmVtb3RlT2JqZWN0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRp
ZmllciBvZiB0aGUgb2JqZWN0IHRvIGNhbGwgZnVuY3Rpb24gb24uIiB9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZ1bmN0aW9uRGVjbGFyYXRpb24iLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiRGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIHRvIGNhbGwuIiB9
LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIsICJ0eXBlIjogImFy
cmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDYWxsQXJndW1lbnQiLCAiZGVzY3JpcHRpb24iOiAi
Q2FsbCBhcmd1bWVudC4iIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDYWxs
IGFyZ3VtZW50cy4gQWxsIGNhbGwgYXJndW1lbnRzIG11c3QgYmVsb25nIHRvIHRoZSBzYW1lIEph
dmFTY3JpcHQgd29ybGQgYXMgdGhlIHRhcmdldCBvYmplY3QuIiB9LAorICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSIsICJ0
eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU3BlY2lm
aWVzIHdoZXRoZXIgZnVuY3Rpb24gY2FsbCBzaG91bGQgc3RvcCBvbiBleGNlcHRpb25zIGFuZCBt
dXRlIGNvbnNvbGUuIE92ZXJyaWRlcyBzZXRQYXVzZU9uRXhjZXB0aW9uIHN0YXRlLiIsICJoaWRk
ZW4iOiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmV0dXJuQnlWYWx1
ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
V2hldGhlciB0aGUgcmVzdWx0IGlzIGV4cGVjdGVkIHRvIGJlIGEgSlNPTiBvYmplY3Qgd2hpY2gg
c2hvdWxkIGJlIHNlbnQgYnkgdmFsdWUuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICAgICAicmV0dXJucyI6IFsKQEAgLTIzMzYsNiArMjMzNyw3IEBACiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZXhwcmVzc2lvbiIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJFeHByZXNzaW9uIHRvIGV2YWx1YXRlLiIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJvYmplY3RHcm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJTdHJpbmcgb2JqZWN0IGdyb3VwIG5hbWUgdG8gcHV0IHJlc3Vs
dCBpbnRvIChhbGxvd3MgcmFwaWQgcmVsZWFzaW5nIHJlc3VsdGluZyBvYmplY3QgaGFuZGxlcyB1
c2luZyA8Y29kZT5yZWxlYXNlT2JqZWN0R3JvdXA8L2NvZGU+KS4iIH0sCiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiaW5jbHVkZUNvbW1hbmRMaW5lQVBJIiwgInR5cGUiOiAiYm9vbGVh
biIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTcGVjaWZpZXMgd2hldGhlciBj
b21tYW5kIGxpbmUgQVBJIHNob3VsZCBiZSBhdmFpbGFibGUgdG8gdGhlIGV2YWx1YXRlZCBleHBy
ZXNzaW9uLCBkZWZhdWx0cyB0byBmYWxzZS4iLCAiaGlkZGVuIjogdHJ1ZSB9LAorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29s
ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
U3BlY2lmaWVzIHdoZXRoZXIgZXZhbHVhdGlvbiBzaG91bGQgc3RvcCBvbiBleGNlcHRpb25zIGFu
ZCBtdXRlIGNvbnNvbGUuIE92ZXJyaWRlcyBzZXRQYXVzZU9uRXhjZXB0aW9uIHN0YXRlLiIsICJo
aWRkZW4iOiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmV0dXJuQnlW
YWx1ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiV2hldGhlciB0aGUgcmVzdWx0IGlzIGV4cGVjdGVkIHRvIGJlIGEgSlNPTiBvYmplY3QgdGhh
dCBzaG91bGQgYmUgc2VudCBieSB2YWx1ZS4iIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDI1ZmEzZmJhYzQyMWVkNGVhMjczZWUy
MDU4OWVlNTRiOWM4MDMyYmYuLjAyZjhhMDczZjI0MWQ1OTNhZjM3ZmE3ZTNhMDM2NTA2MmIwYWQy
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5jcHAKQEAgLTU5LDYgKzU5LDExIEBAIHN0YXRpYyBjb25zdCBjaGFyIHBhdXNlT25F
eGNlcHRpb25zU3RhdGVbXSA9ICJwYXVzZU9uRXhjZXB0aW9uc1N0YXRlIjsKIAogY29uc3QgY2hh
ciogSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YmFja3RyYWNlT2JqZWN0R3JvdXAgPSAiYmFja3Ry
YWNlLW9iamVjdC1ncm91cCI7CiAKK3N0YXRpYyBib29sIGFzQm9vbChjb25zdCBib29sKiBjb25z
dCBiKQoreworICAgIHJldHVybiBiID8gKmIgOiBmYWxzZTsKK30KKwogSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVk
U2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgIDogSW5zcGVjdG9yQmFz
ZUFnZW50PEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+KCJEZWJ1Z2dlciIsIGluc3RydW1lbnRpbmdB
Z2VudHMsIGluc3BlY3RvclN0YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKQpAQCAtNDc2LDE0ICs0ODEsMjggQEAgdm9pZCBJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50OjpzZXRQYXVzZU9uRXhjZXB0aW9uc0ltcGwoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLAogICAgICAgICBtX3N0YXRlLT5zZXRMb25nKERlYnVnZ2VyQWdlbnRTdGF0ZTo6cGF1
c2VPbkV4Y2VwdGlvbnNTdGF0ZSwgcGF1c2VTdGF0ZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29u
c3QgU3RyaW5nKiBjb25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNv
bW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBjb25zdCByZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9w
dE91dHB1dDxib29sPiogd2FzVGhyb3duKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpl
dmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIGNv
bnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEks
IGNvbnN0IGJvb2wqIGNvbnN0IGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwg
Y29uc3QgYm9vbCogY29uc3QgcmV0dXJuQnlWYWx1ZSwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50
aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9vbD4q
IHdhc1Rocm93bikKIHsKICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVjdElkKGNhbGxGcmFtZUlk
KTsKICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKSB7CiAgICAgICAgICplcnJv
clN0cmluZyA9ICJJbnNwZWN0ZWQgZnJhbWUgaGFzIGdvbmUiOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlT25DYWxsRnJhbWUoZXJyb3JTdHJpbmcs
IG1fY3VycmVudENhbGxTdGFjaywgY2FsbEZyYW1lSWQsIGV4cHJlc3Npb24sIG9iamVjdEdyb3Vw
ID8gKm9iamVjdEdyb3VwIDogIiIsIGluY2x1ZGVDb21tYW5kTGluZUFQSSA/ICppbmNsdWRlQ29t
bWFuZExpbmVBUEkgOiBmYWxzZSwgcmV0dXJuQnlWYWx1ZSA/ICpyZXR1cm5CeVZhbHVlIDogZmFs
c2UsICZyZXN1bHQsIHdhc1Rocm93bik7CisKKyAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6UGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZSBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUgPSBzY3JpcHRE
ZWJ1Z1NlcnZlcigpLnBhdXNlT25FeGNlcHRpb25zU3RhdGUoKTsKKyAgICBpZiAoYXNCb29sKGRv
Tm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSkpIHsKKyAgICAgICAgaWYgKHByZXZp
b3VzUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSAhPSBTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNl
T25FeGNlcHRpb25zKQorICAgICAgICAgICAgc2NyaXB0RGVidWdTZXJ2ZXIoKS5zZXRQYXVzZU9u
RXhjZXB0aW9uc1N0YXRlKFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMp
OworICAgICAgICBtdXRlQ29uc29sZSgpOworICAgIH0KKworICAgIGluamVjdGVkU2NyaXB0LmV2
YWx1YXRlT25DYWxsRnJhbWUoZXJyb3JTdHJpbmcsIG1fY3VycmVudENhbGxTdGFjaywgY2FsbEZy
YW1lSWQsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwID8gKm9iamVjdEdyb3VwIDogIiIsIGFzQm9v
bChpbmNsdWRlQ29tbWFuZExpbmVBUEkpLCBhc0Jvb2wocmV0dXJuQnlWYWx1ZSksICZyZXN1bHQs
IHdhc1Rocm93bik7CisKKyAgICBpZiAoYXNCb29sKGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRN
dXRlQ29uc29sZSkpIHsKKyAgICAgICAgdW5tdXRlQ29uc29sZSgpOworICAgICAgICBpZiAoc2Ny
aXB0RGVidWdTZXJ2ZXIoKS5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCkgIT0gcHJldmlvdXNQYXVz
ZU9uRXhjZXB0aW9uc1N0YXRlKQorICAgICAgICAgICAgc2NyaXB0RGVidWdTZXJ2ZXIoKS5zZXRQ
YXVzZU9uRXhjZXB0aW9uc1N0YXRlKHByZXZpb3VzUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSk7Cisg
ICAgfQogfQogCiBQYXNzUmVmUHRyPEFycmF5PFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2FsbEZy
YW1lPiA+IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmN1cnJlbnRDYWxsRnJhbWVzKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4
IDQ2ZTNhMzMxNTEwYWRlNGRkODc5OWM1ZjA1ZTljYTY3OTk2NGVkOTMuLjlmNDE1YTVmMGVmODY0
NTBiM2EzNTllNWEwM2ZmYmExMGE2MzY1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3Vw
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wqIGRvTm90
UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgYm9vbCogcmV0dXJuQnlWYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9v
bD4qIHdhc1Rocm93bik7CkBAIC0xMjQsNiArMTI1LDggQEAgcHJvdGVjdGVkOgogCiAgICAgdmly
dHVhbCB2b2lkIHN0YXJ0TGlzdGVuaW5nU2NyaXB0RGVidWdTZXJ2ZXIoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVubXV0ZUNvbnNv
bGUoKSA9IDA7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBlbmFibGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggZjI0MGE4
ODAzY2E5MzhlNzVkMmM4ODY3OTllZWU5YzY5OTFmNDNmMC4uYWQ2YzhjNmRjZTU5NjIyN2ZjNDcz
YzQwYzQ3OWRlMTQ3YWQ4NDliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTcyLDcgKzcyLDE4IEBAIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6fkluc3BlY3RvclJ1bnRpbWVBZ2VudCgpCiAgICAgbV9pbnN0cnVtZW50aW5n
QWdlbnRzLT5zZXRJbnNwZWN0b3JSdW50aW1lQWdlbnQoMCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
UnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBjb25zdCBvYmplY3RHcm91cCwgY29uc3Qg
Ym9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBjb25zdCBkb05v
dFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJpbmcqIGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJv
b2wqIGNvbnN0IHJldHVybkJ5VmFsdWUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVt
b3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJv
d24pCisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCitzdGF0aWMgU2NyaXB0RGVidWdT
ZXJ2ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGUgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShT
Y3JpcHREZWJ1Z1NlcnZlciogc2NyaXB0RGVidWdTZXJ2ZXIsIFNjcmlwdERlYnVnU2VydmVyOjpQ
YXVzZU9uRXhjZXB0aW9uc1N0YXRlIG5ld1N0YXRlKQoreworICAgIEFTU0VSVChzY3JpcHREZWJ1
Z1NlcnZlcik7CisgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGUg
cHJlc2VudFN0YXRlID0gc2NyaXB0RGVidWdTZXJ2ZXItPnBhdXNlT25FeGNlcHRpb25zU3RhdGUo
KTsKKyAgICBpZiAocHJlc2VudFN0YXRlICE9IG5ld1N0YXRlKQorICAgICAgICBzY3JpcHREZWJ1
Z1NlcnZlci0+c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShuZXdTdGF0ZSk7CisgICAgcmV0dXJu
IHByZXNlbnRTdGF0ZTsKK30KKyNlbmRpZgorCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6
ZXZhbHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Np
b24sIGNvbnN0IFN0cmluZyogY29uc3Qgb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGNvbnN0IGlu
Y2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogY29uc3QgZG9Ob3RQYXVzZU9uRXhjZXB0
aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBTdHJpbmcqIGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJv
b2wqIGNvbnN0IHJldHVybkJ5VmFsdWUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVt
b3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJv
d24pCiB7CiAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gMDsKICAgICBpZiAoZnJhbWVJ
ZCkgewpAQCAtODksMjQgKzEwMCwyNCBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZh
bHVhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cAogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIEFT
U0VSVChtX3NjcmlwdERlYnVnU2VydmVyKTsKLSAgICBib29sIHBhdXNlU3RhdGVDaGFuZ2VkID0g
ZmFsc2U7Ci0gICAgU2NyaXB0RGVidWdTZXJ2ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGUgcHJl
c2VudFN0YXRlID0gbV9zY3JpcHREZWJ1Z1NlcnZlci0+cGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSgp
OwotICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhjZXB0aW9ucykgJiYgcHJlc2VudFN0YXRl
ICE9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnMpIHsKLSAgICAgICAg
bV9zY3JpcHREZWJ1Z1NlcnZlci0+c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShTY3JpcHREZWJ1
Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25zKTsKLSAgICAgICAgcGF1c2VTdGF0ZUNoYW5n
ZWQgPSB0cnVlOwotICAgIH0KKyAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZSBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUgPSBTY3JpcHREZWJ1Z1NlcnZl
cjo6RG9udFBhdXNlT25FeGNlcHRpb25zOworICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhj
ZXB0aW9uc0FuZE11dGVDb25zb2xlKSkKKyAgICAgICAgcHJldmlvdXNQYXVzZU9uRXhjZXB0aW9u
c1N0YXRlID0gc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShtX3NjcmlwdERlYnVnU2VydmVyLCBT
Y3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRpb25zKTsKICNlbmRpZgorICAgIGlm
IChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlKSkKKyAgICAgICAg
bXV0ZUNvbnNvbGUoKTsKIAogICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRlKGVycm9yU3RyaW5n
LCBleHByZXNzaW9uLCBvYmplY3RHcm91cCA/ICpvYmplY3RHcm91cCA6ICIiLCBhc0Jvb2woaW5j
bHVkZUNvbW1hbmRMaW5lQVBJKSwgYXNCb29sKHJldHVybkJ5VmFsdWUpLCAmcmVzdWx0LCB3YXNU
aHJvd24pOwogCisgICAgaWYgKGFzQm9vbChkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNv
bnNvbGUpKSB7CisgICAgICAgIHVubXV0ZUNvbnNvbGUoKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQ
VF9ERUJVR0dFUikKLSAgICBpZiAocGF1c2VTdGF0ZUNoYW5nZWQpCi0gICAgICAgIG1fc2NyaXB0
RGVidWdTZXJ2ZXItPnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUocHJlc2VudFN0YXRlKTsKKyAg
ICAgICAgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShtX3NjcmlwdERlYnVnU2VydmVyLCBwcmV2
aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUpOwogI2VuZGlmCisgICAgfQogfQogCi12b2lkIElu
c3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlvbmFsQXJndW1lbnRzLCBjb25z
dCBib29sKiBjb25zdCByZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6
OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2Fz
VGhyb3duKQordm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKEVycm9y
U3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjb25zdCBvcHRpb25h
bEFyZ3VtZW50cywgY29uc3QgYm9vbCogY29uc3QgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11
dGVDb25zb2xlLCBjb25zdCBib29sKiBjb25zdCByZXR1cm5CeVZhbHVlLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91
dHB1dDxib29sPiogd2FzVGhyb3duKQogewogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2Ny
aXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQo
b2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKQEAgLTEx
Nyw3ICsxMjgsMjIgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9u
KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW4KICAgICBpZiAob3B0aW9uYWxB
cmd1bWVudHMpCiAgICAgICAgIGFyZ3VtZW50cyA9ICgqb3B0aW9uYWxBcmd1bWVudHMpLT50b0pT
T05TdHJpbmcoKTsKIAorI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQorICAgIFNjcmlw
dERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0YXRlIHByZXZpb3VzUGF1c2VPbkV4Y2Vw
dGlvbnNTdGF0ZSA9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnM7Cisg
ICAgaWYgKGFzQm9vbChkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUpKQorICAg
ICAgICBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUgPSBzZXRQYXVzZU9uRXhjZXB0aW9u
c1N0YXRlKG1fc2NyaXB0RGVidWdTZXJ2ZXIsIFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VP
bkV4Y2VwdGlvbnMpOworI2VuZGlmCisgICAgaWYgKGFzQm9vbChkb05vdFBhdXNlT25FeGNlcHRp
b25zQW5kTXV0ZUNvbnNvbGUpKQorICAgICAgICBtdXRlQ29uc29sZSgpOworCiAgICAgaW5qZWN0
ZWRTY3JpcHQuY2FsbEZ1bmN0aW9uT24oZXJyb3JTdHJpbmcsIG9iamVjdElkLCBleHByZXNzaW9u
LCBhcmd1bWVudHMsIGFzQm9vbChyZXR1cm5CeVZhbHVlKSwgJnJlc3VsdCwgd2FzVGhyb3duKTsK
KworICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlKSkg
eworICAgICAgICB1bm11dGVDb25zb2xlKCk7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCisgICAgICAgIHNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUobV9zY3JpcHREZWJ1Z1NlcnZl
ciwgcHJldmlvdXNQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKTsKKyNlbmRpZgorICAgIH0KIH0KIAog
dm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBib29sKiBjb25zdCBvd25Q
cm9wZXJ0aWVzLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1l
OjpQcm9wZXJ0eURlc2NyaXB0b3I+ID4mIHJlc3VsdCkKQEAgLTEyNyw3ICsxNTMsMTggQEAgdm9p
ZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLCBjb25zdCBTdHJpbmcKICAgICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBm
cmFtZSBoYXMgZ29uZSI7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKKyNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKKyAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZSBwcmV2aW91c1BhdXNlT25FeGNlcHRpb25zU3RhdGUgPSBzZXRQYXVzZU9uRXhjZXB0
aW9uc1N0YXRlKG1fc2NyaXB0RGVidWdTZXJ2ZXIsIFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1
c2VPbkV4Y2VwdGlvbnMpOworI2VuZGlmCisgICAgbXV0ZUNvbnNvbGUoKTsKKwogICAgIGluamVj
dGVkU2NyaXB0LmdldFByb3BlcnRpZXMoZXJyb3JTdHJpbmcsIG9iamVjdElkLCBvd25Qcm9wZXJ0
aWVzID8gKm93blByb3BlcnRpZXMgOiBmYWxzZSwgJnJlc3VsdCk7CisKKyAgICB1bm11dGVDb25z
b2xlKCk7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgc2V0UGF1c2VPbkV4
Y2VwdGlvbnNTdGF0ZShtX3NjcmlwdERlYnVnU2VydmVyLCBwcmV2aW91c1BhdXNlT25FeGNlcHRp
b25zU3RhdGUpOworI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpyZWxl
YXNlT2JqZWN0KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCAyMWYz
YjkwZjIwYjgzZDIyM2ExMWMzNzU5ZDdmNWViMGU2MWM2ZDYxLi44MjgwYWUyZTUwZWFmYTNiMWQx
NDMxZGE3ZWFiZmY5MDU4NmM3NGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwKICAgICAgICAgICAgICAgICAg
IGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsCiAgICAgICAgICAgICAgICAgICBjb25zdCBib29s
KiBpbmNsdWRlQ29tbWFuZExpbmVBUEksCi0gICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBk
b05vdFBhdXNlT25FeGNlcHRpb25zLAorICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogZG9O
b3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLAogICAgICAgICAgICAgICAgICAgY29u
c3QgU3RyaW5nKiBmcmFtZUlkLAogICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogcmV0dXJu
QnlWYWx1ZSwKICAgICAgICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6
UmVtb3RlT2JqZWN0PiYgcmVzdWx0LApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIG9iamVjdElkLAogICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5Piogb3B0aW9uYWxBcmd1bWVudHMsCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5k
TXV0ZUNvbnNvbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiByZXR1cm5C
eVZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50
aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsCiAgICAgICAgICAgICAgICAgICAgICAgICBUeXBl
QnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pOwpAQCAtODksNiArOTAsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwg
U2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlRm9yRnJhbWVJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQp
ID0gMDsKICAgICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUo
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB1bm11dGVDb25zb2xlKCkgPSAwOwogCiBwcml2YXRlOgogICAgIEluamVjdGVkU2NyaXB0
TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAxMTNkZDRlNTAyZTBmMWJlMTNmZWY0
ZTZiYzhiN2UxY2Y0NTczMDMyLi5iYTlhN2U0NjBkNGFjYTI3YjJmYWQxZjIzOTlmOWI2MjllOWIx
YmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dlckFnZW50LmgiCiAK
KyNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZVNjcmlwdERlYnVnU2VydmVyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY4LDYgKzY5LDE2IEBAIFBhZ2VTY3JpcHREZWJ1
Z1NlcnZlciYgUGFnZURlYnVnZ2VyQWdlbnQ6OnNjcmlwdERlYnVnU2VydmVyKCkKICAgICByZXR1
cm4gUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKTsKIH0KIAordm9pZCBQYWdlRGVidWdn
ZXJBZ2VudDo6bXV0ZUNvbnNvbGUoKQoreworICAgIENvbnNvbGU6Om11dGUoKTsKK30KKwordm9p
ZCBQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSgpCit7CisgICAgQ29uc29sZTo6dW5t
dXRlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaAppbmRleCA3ZDZhZjZjMmI2MzUxYmY3NGU5
Mjk3NDMxZTcwNzE4ZmE3ZTY2MGViLi43Mjc1MjQ4MTliMGY2NTA0ODQ1NTkyMmYzZDljMmY0YWZk
M2M3ZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2Vy
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQu
aApAQCAtNTEsNiArNTEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydExpc3Rl
bmluZ1NjcmlwdERlYnVnU2VydmVyKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdT
Y3JpcHREZWJ1Z1NlcnZlcigpOwogICAgIHZpcnR1YWwgUGFnZVNjcmlwdERlYnVnU2VydmVyJiBz
Y3JpcHREZWJ1Z1NlcnZlcigpOworICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpOworICAg
IHZpcnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCk7CiAKICAgICBQYWdlRGVidWdnZXJBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBQYWdlKiwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKik7CiAgICAgUGFnZSogY29uc3QgbV9pbnNwZWN0ZWRQYWdlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IDdkMDdlZTMxNGYz
YjMwZDk0MTdlMjgyNDdhMTUwMmJmZTJjZmQwZTUuLjkyODRmMzkyNjQ5N2E1YmQxZWFmYmJlYWQ2
MmQ0ZmMyNDQzNzIwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIlBhZ2VSdW50aW1lQWdl
bnQuaCIKIAorI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdl
bnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKQEAgLTY0
LDYgKzY1LDE2IEBAIFNjcmlwdFN0YXRlKiBQYWdlUnVudGltZUFnZW50OjpnZXREZWZhdWx0SW5z
cGVjdGVkU3RhdGUoKQogICAgIHJldHVybiBtYWluV29ybGRTY3JpcHRTdGF0ZShtX2luc3BlY3Rl
ZFBhZ2UtPm1haW5GcmFtZSgpKTsKIH0KIAordm9pZCBQYWdlUnVudGltZUFnZW50OjptdXRlQ29u
c29sZSgpCit7CisgICAgQ29uc29sZTo6bXV0ZSgpOworfQorCit2b2lkIFBhZ2VSdW50aW1lQWdl
bnQ6OnVubXV0ZUNvbnNvbGUoKQoreworICAgIENvbnNvbGU6OnVubXV0ZSgpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKaW5kZXggZmZlMjkwY2I0MDI2
MzU2Yzg4YWZiZmNhMDQ5NzU1YzEzNDU0Y2YwMy4uMzI2MTRhODk0ZmE2NjU2OTk0NjEwMGVlMWQz
MmM5MGNhZTdjMTU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVB
Z2VudC5oCkBAIC01NCw2ICs1NCw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFNjcmlwdFN0
YXRlKiBzY3JpcHRTdGF0ZUZvckZyYW1lSWQoY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsKICAgICB2
aXJ0dWFsIFNjcmlwdFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgp
OwogICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1f
cGFnZUFnZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1
Z2dlckFnZW50LmNwcAppbmRleCBlMjJkMDY4ZjQzMmRjNjI5ZTJkNjI0NGZhMWNkNzY2NjJkZjU5
MDRmLi4yYzZmMmJkYTFkNmYyOTJhYjM4ZGQ0ZmY0ZTM5MjNmNTEyYTk1MjY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0xMjQs
NiArMTI0LDE2IEBAIFdvcmtlclNjcmlwdERlYnVnU2VydmVyJiBXb3JrZXJEZWJ1Z2dlckFnZW50
OjpzY3JpcHREZWJ1Z1NlcnZlcigpCiAgICAgcmV0dXJuIG1fc2NyaXB0RGVidWdTZXJ2ZXI7CiB9
CiAKK3ZvaWQgV29ya2VyRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUoKQoreworICAgIC8vIFdl
IGRvbid0IG5lZWQgdG8gbXV0ZSBjb25zb2xlIGZvciB3b3JrZXJzLgorfQorCit2b2lkIFdvcmtl
ckRlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQoreworICAgIC8vIFdlIGRvbid0IG5lZWQg
dG8gbXV0ZSBjb25zb2xlIGZvciB3b3JrZXJzLgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BF
Q1RPUikgJiYgRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckRlYnVnZ2VyQWdlbnQuaAppbmRleCA4MDE3YWMwMzg0OTA4MTliZTJhNWIwNTQxZDRjNzk2
YWM2NWE3ZWU3Li43YWU2OGFhODRkNGM0ZDFkZThhYjdhMTc0NjA3YzM4YmEzYTk0MGJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKQEAgLTU2
LDYgKzU2LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRMaXN0ZW5pbmdTY3Jp
cHREZWJ1Z1NlcnZlcigpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wTGlzdGVuaW5nU2NyaXB0RGVi
dWdTZXJ2ZXIoKTsKICAgICB2aXJ0dWFsIFdvcmtlclNjcmlwdERlYnVnU2VydmVyJiBzY3JpcHRE
ZWJ1Z1NlcnZlcigpOworICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpOworICAgIHZpcnR1
YWwgdm9pZCB1bm11dGVDb25zb2xlKCk7CiAKICAgICBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlciBt
X3NjcmlwdERlYnVnU2VydmVyOwogICAgIFdvcmtlckNvbnRleHQqIG1faW5zcGVjdGVkV29ya2Vy
Q29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2Vu
dC5jcHAKaW5kZXggODViOGFlNTA3ZDE5NjJkYTZlZTQzN2IxNDEwMWI3NjIxYzNmYjMyNy4uMWM0
NDU3ZTE5YzMzNDg3YWI0Y2Y4OWJkMWI4MmIxZmEwMzEzOGMzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTU4LDYgKzU4LDE2IEBA
IFNjcmlwdFN0YXRlKiBXb3JrZXJSdW50aW1lQWdlbnQ6OmdldERlZmF1bHRJbnNwZWN0ZWRTdGF0
ZSgpCiAgICAgcmV0dXJuIHNjcmlwdFN0YXRlRnJvbVdvcmtlckNvbnRleHQobV93b3JrZXJDb250
ZXh0KTsKIH0KIAordm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6Om11dGVDb25zb2xlKCkKK3sKKyAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIG11dGUgY29uc29sZSBmb3Igd29ya2Vycy4KK30KKwordm9p
ZCBXb3JrZXJSdW50aW1lQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQoreworICAgIC8vIFdlIGRvbid0
IG5lZWQgdG8gbXV0ZSBjb25zb2xlIGZvciB3b3JrZXJzLgorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoV09SS0VSUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaAppbmRleCBk
MjY5YTJmZTM2ZTg1NjNhMzc2ZGRjOWNmNmJhOTBiZGRhZTZkZDU4Li5jY2ZlMWZiMDNhZDg4YjVm
MDU5ZTM1ZmZiNTI0YzFkNzU5NmFjZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC01Miw2ICs1Miw4IEBAIHByaXZhdGU6CiAgICAgV29y
a2VyUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIElu
amVjdGVkU2NyaXB0TWFuYWdlciosIFdvcmtlckNvbnRleHQqKTsKICAgICB2aXJ0dWFsIFNjcmlw
dFN0YXRlKiBzY3JpcHRTdGF0ZUZvckZyYW1lSWQoY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsKICAg
ICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29s
ZSgpOwogICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDc2
MjZjM2UyOWEwYTQ3ZTQxMmViYzNmMTg3MzNlNDEyYjdkMTA4Y2EuLjliMTE5MmNlM2FiNDRkM2Fm
ZGM3ODA2MWVkZTkxZTI5Zjg0Zjk4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAtNTg2LDE0ICs1ODYsMTQgQEAgV2ViSW5z
cGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
ZXhwcmVzc2lvbgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvYmplY3RHcm91cAogICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUNvbW1hbmRMaW5lQVBJCi0gICAgICogQHBhcmFtIHtib29s
ZWFufSBkb05vdFBhdXNlT25FeGNlcHRpb25zCisgICAgICogQHBhcmFtIHtib29sZWFufSBkb05v
dFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IHJldHVybkJ5VmFsdWUKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9XZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LCBib29sZWFuLCBSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0PSl9IGNhbGxiYWNr
CiAgICAgICovCi0gICAgZXZhbEluSW5zcGVjdGVkV2luZG93OiBmdW5jdGlvbihleHByZXNzaW9u
LCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRp
b25zLCByZXR1cm5CeVZhbHVlLCBjYWxsYmFjaykKKyAgICBldmFsSW5JbnNwZWN0ZWRXaW5kb3c6
IGZ1bmN0aW9uKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEks
IGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwgcmV0dXJuQnlWYWx1ZSwgY2Fs
bGJhY2spCiAgICAgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwuc2VsZWN0ZWRDYWxsRnJhbWUpIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFtZShleHBy
ZXNzaW9uLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXR1cm5CeVZhbHVl
LCBjYWxsYmFjayk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUoZXhwcmVzc2lvbiwgb2JqZWN0R3Jv
dXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVD
b25zb2xlLCByZXR1cm5CeVZhbHVlLCBjYWxsYmFjayk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIApAQCAtNjIwLDcgKzYyMCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY2FsbGJhY2so
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpLCAhIXdhc1Rocm93
bik7CiAgICAgICAgIH0KLSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKGV4cHJlc3Npb24s
IG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGRvTm90UGF1c2VPbkV4Y2VwdGlv
bnMsIHRoaXMuX2N1cnJlbnRFdmFsdWF0aW9uQ29udGV4dElkKCksIHJldHVybkJ5VmFsdWUsIGV2
YWxDYWxsYmFjayk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZShleHByZXNzaW9uLCBv
YmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRpb25z
QW5kTXV0ZUNvbnNvbGUsIHRoaXMuX2N1cnJlbnRFdmFsdWF0aW9uQ29udGV4dElkKCksIHJldHVy
bkJ5VmFsdWUsIGV2YWxDYWxsYmFjayk7CiAgICAgfSwKIAogICAgIGV2YWx1YXRlVXNpbmdUZXh0
UHJvbXB0OiBmdW5jdGlvbihleHByZXNzaW9uLCBzaG93UmVzdWx0T25seSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5qcwppbmRleCBhYmU0NzViMTY1NDYxODc0MWM3YWIyNWM3NzY0YmIwNmM2
OTcwOTRkLi5lOWFhYjE1NmZiMTg4MWM3NzRiNzgyNDQwNjNiZTJmYjEyODhhNGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC00NTksOSArNDU5LDE0IEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAg
LyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGNvZGUKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30g
b2JqZWN0R3JvdXAKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVDb21tYW5kTGluZUFQ
SQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVD
b25zb2xlCisgICAgICogQHBhcmFtIHtib29sZWFufSByZXR1cm5CeVZhbHVlCiAgICAgICogQHBh
cmFtIHtmdW5jdGlvbig/V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCwgYm9vbGVhbiwgUnVudGlt
ZUFnZW50LlJlbW90ZU9iamVjdD0pfSBjYWxsYmFjawogICAgICAqLwotICAgIGV2YWx1YXRlSW5T
ZWxlY3RlZENhbGxGcmFtZTogZnVuY3Rpb24oY29kZSwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21t
YW5kTGluZUFQSSwgcmV0dXJuQnlWYWx1ZSwgY2FsbGJhY2spCisgICAgZXZhbHVhdGVJblNlbGVj
dGVkQ2FsbEZyYW1lOiBmdW5jdGlvbihjb2RlLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIHJldHVybkJ5VmFs
dWUsIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgLyoqCiAgICAgICAgICAqIEBwYXJhbSB7P1J1
bnRpbWVBZ2VudC5SZW1vdGVPYmplY3R9IHJlc3VsdApAQCAtNDc4LDcgKzQ4Myw3IEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuQ29uc29sZUNvbW1hbmRFdmFsdWF0ZWRJblNlbGVj
dGVkQ2FsbEZyYW1lKTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuc2VsZWN0ZWRDYWxsRnJh
bWUuZXZhbHVhdGUoY29kZSwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgcmV0
dXJuQnlWYWx1ZSwgZGlkRXZhbHVhdGUuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuc2VsZWN0
ZWRDYWxsRnJhbWUuZXZhbHVhdGUoY29kZSwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGlu
ZUFQSSwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCByZXR1cm5CeVZhbHVl
LCBkaWRFdmFsdWF0ZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC02ODQsMTAg
KzY4OSwxMSBAQCBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZSA9
IHsKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gY29kZQogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBv
YmplY3RHcm91cAogICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUNvbW1hbmRMaW5lQVBJ
CisgICAgICogQHBhcmFtIHtib29sZWFufSBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNv
bnNvbGUKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJldHVybkJ5VmFsdWUKICAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKD9SdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0LCBib29sZWFuPSk9fSBjYWxs
YmFjawogICAgICAqLwotICAgIGV2YWx1YXRlOiBmdW5jdGlvbihjb2RlLCBvYmplY3RHcm91cCwg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXR1cm5CeVZhbHVlLCBjYWxsYmFjaykKKyAgICBldmFs
dWF0ZTogZnVuY3Rpb24oY29kZSwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwg
ZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCByZXR1cm5CeVZhbHVlLCBjYWxs
YmFjaykKICAgICB7CiAgICAgICAgIC8qKgogICAgICAgICAgKiBAdGhpcyB7V2ViSW5zcGVjdG9y
LlByZXNlbnRhdGlvbkNhbGxGcmFtZX0KQEAgLTcwNCw3ICs3MTAsNyBAQCBXZWJJbnNwZWN0b3Iu
UHJlc2VudGF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGNhbGxiYWNrKHJlc3VsdCwgd2FzVGhyb3duKTsKICAgICAgICAgfQotICAgICAgICBE
ZWJ1Z2dlckFnZW50LmV2YWx1YXRlT25DYWxsRnJhbWUodGhpcy5fY2FsbEZyYW1lLmNhbGxGcmFt
ZUlkLCBjb2RlLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXR1cm5CeVZh
bHVlLCBkaWRFdmFsdWF0ZU9uQ2FsbEZyYW1lLmJpbmQodGhpcykpOworICAgICAgICBEZWJ1Z2dl
ckFnZW50LmV2YWx1YXRlT25DYWxsRnJhbWUodGhpcy5fY2FsbEZyYW1lLmNhbGxGcmFtZUlkLCBj
b2RlLCBvYmplY3RHcm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBkb05vdFBhdXNlT25FeGNl
cHRpb25zQW5kTXV0ZUNvbnNvbGUsIHJldHVybkJ5VmFsdWUsIGRpZEV2YWx1YXRlT25DYWxsRnJh
bWUuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwppbmRleCAyZjc3ZGVhNmFjMGU4
MzM4NjE1N2Q1MTI1YzM1M2E3OGExNzc2MDViLi5mM2QzYTRjZDYyMDYyN2MxMDJkOTEzZDVhZGM1
OGNkNTE3MjAxYTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtMjE5LDcgKzIxOSw3IEBAIFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlLmludm9rZSh7ZXhwcmVzc2lvbjp2YWx1ZSwg
ZG9Ob3RQYXVzZU9uRXhjZXB0aW9uczp0cnVlfSwgZXZhbHVhdGVkQ2FsbGJhY2suYmluZCh0aGlz
KSk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS5pbnZva2Uoe2V4cHJlc3Npb246dmFs
dWUsIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTp0cnVlfSwgZXZhbHVhdGVk
Q2FsbGJhY2suYmluZCh0aGlzKSk7CiAKICAgICAgICAgLyoqCiAgICAgICAgICAqIEBwYXJhbSB7
P1Byb3RvY29sLkVycm9yfSBlcnJvcgpAQCAtMjM5LDcgKzIzOSw3IEBAIFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBk
ZWxldGUgcmVzdWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6ZSBvbiB0cmFmZmljLgotICAgICAg
ICAgICAgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBzZXRQcm9w
ZXJ0eVZhbHVlLnRvU3RyaW5nKCksIFt7IHZhbHVlOm5hbWUgfSwgcmVzdWx0XSwgdW5kZWZpbmVk
LCBwcm9wZXJ0eVNldENhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICAgICAgUnVudGltZUFn
ZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBzZXRQcm9wZXJ0eVZhbHVlLnRvU3Ry
aW5nKCksIFt7IHZhbHVlOm5hbWUgfSwgcmVzdWx0XSwgdHJ1ZSwgdW5kZWZpbmVkLCBwcm9wZXJ0
eVNldENhbGxiYWNrLmJpbmQodGhpcykpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5fb2JqZWN0
SWQpCiAgICAgICAgICAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QocmVzdWx0Ll9v
YmplY3RJZCk7CiAgICAgICAgIH0KQEAgLTI4Nyw3ICsyODcsNyBAQCBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhbGxiYWNrKChlcnJvciB8fCB3
YXNUaHJvd24pID8gbnVsbCA6IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQo
cmVzdWx0KSk7CiAgICAgICAgIH0KIAotICAgICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9u
T24odGhpcy5fb2JqZWN0SWQsIGZ1bmN0aW9uRGVjbGFyYXRpb24udG9TdHJpbmcoKSwgYXJncywg
dW5kZWZpbmVkLCBteWNhbGxiYWNrKTsKKyAgICAgICAgUnVudGltZUFnZW50LmNhbGxGdW5jdGlv
bk9uKHRoaXMuX29iamVjdElkLCBmdW5jdGlvbkRlY2xhcmF0aW9uLnRvU3RyaW5nKCksIGFyZ3Ms
IHRydWUsIHVuZGVmaW5lZCwgbXljYWxsYmFjayk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzA3
LDcgKzMwNyw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgY2FsbGJhY2soKGVycm9yIHx8IHdhc1Rocm93bikgPyBudWxsIDogcmVzdWx0LnZh
bHVlKTsKICAgICAgICAgfQogCi0gICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0
aGlzLl9vYmplY3RJZCwgZnVuY3Rpb25EZWNsYXJhdGlvbi50b1N0cmluZygpLCBhcmdzLCB0cnVl
LCBteWNhbGxiYWNrKTsKKyAgICAgICAgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRoaXMu
X29iamVjdElkLCBmdW5jdGlvbkRlY2xhcmF0aW9uLnRvU3RyaW5nKCksIGFyZ3MsIHRydWUsIHRy
dWUsIG15Y2FsbGJhY2spOwogICAgIH0sCiAKICAgICByZWxlYXNlOiBmdW5jdGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanMK
aW5kZXggMzAyODQxYmE4ZjM3YTEwNzNjOTVkNWNiMzQ4MDc0NDYxZGJkZTMwMi4uYzlmMDUzZGM0
YThkZGYwZGM2NTEwMWFmNGY4YzdjMWEzYzQxNGYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcwpAQCAtOTgsNyArOTgsNyBA
QCBXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5fY2FsY3VsYXRlV29ya2VySW5zcGVjdG9yVGl0
bGUgPSBmdW5jdGlvbigpCiAgICAgdmFyIGV4cHJlc3Npb24gPSAibG9jYXRpb24uaHJlZiI7CiAg
ICAgaWYgKFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdFsiaXNTaGFyZWRXb3JrZXIiXSkK
ICAgICAgICAgZXhwcmVzc2lvbiArPSAiICsgKHRoaXMubmFtZSA/ICcgKCcgKyB0aGlzLm5hbWUg
KyAnKScgOiAnJykiOwotICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS5pbnZva2Uoe2V4cHJlc3Np
b246ZXhwcmVzc2lvbiwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uczp0cnVlLCByZXR1cm5CeVZhbHVl
OiB0cnVlfSwgZXZhbENhbGxiYWNrLmJpbmQodGhpcykpOworICAgIFJ1bnRpbWVBZ2VudC5ldmFs
dWF0ZS5pbnZva2Uoe2V4cHJlc3Npb246ZXhwcmVzc2lvbiwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9u
c0FuZE11dGVDb25zb2xlOnRydWUsIHJldHVybkJ5VmFsdWU6IHRydWV9LCBldmFsQ2FsbGJhY2su
YmluZCh0aGlzKSk7CiAgICAgCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJy
b3J9IGVycm9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCBmZTBmMGFmN2M3ZWVkYjQ5NmE2
MTEyZGVhYTk4ZGEwYmY5YjY0ODExLi43NmM2NDUwNjhjNDRkZDA4MzJjMTU4NjRkNmJiNDFmMjY1
NmUwYWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTU1LDYgKzU1LDEwIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorbmFtZXNwYWNlIHsKKyAgICBpbnQgbXV0ZUNvdW50ID0gMDsK
K30KKwogQ29uc29sZTo6Q29uc29sZShGcmFtZSogZnJhbWUpCiAgICAgOiBET01XaW5kb3dQcm9w
ZXJ0eShmcmFtZSkKIHsKQEAgLTEyOCw4ICsxMzIsNiBAQCBzdGF0aWMgdm9pZCBwcmludE1lc3Nh
Z2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVs
CiAgICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKIH0KIAot
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLQog
dm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICAgICBhZGRNZXNzYWdlKHNvdXJj
ZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2spOwpAQCAtMTM3
LDYgKzEzOSwxMCBAQCB2b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZQogCiB2b2lkIENvbnNvbGU6OmFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjaykKIHsKKworICAgIGlmIChtdXRlQ291bnQgJiYgc291cmNlICE9IENvbnNvbGVBUElNZXNz
YWdlU291cmNlKQorICAgICAgICByZXR1cm47CisKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFn
ZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjExLDYgKzIxNywxMSBA
QCB2b2lkIENvbnNvbGU6OmxvZyhQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRz
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdAogICAgIGFkZE1lc3NhZ2UoTG9nTWVzc2FnZVR5cGUs
IExvZ01lc3NhZ2VMZXZlbCwgYXJndW1lbnRzLCBjYWxsU3RhY2spOwogfQogCit2b2lkIENvbnNv
bGU6Ondhcm4oUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cywgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKExvZ01lc3Nh
Z2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBhcmd1bWVudHMsIGNhbGxTdGFjayk7Cit9CisK
IHZvaWQgQ29uc29sZTo6ZGlyKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMs
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7CiAgICAgYWRkTWVzc2Fn
ZShEaXJNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBhcmd1bWVudHMsIGNhbGxTdGFjayk7
CkBAIC0zMzEsOSArMzQyLDE3IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlKCksIENvbnNvbGVB
UElNZXNzYWdlU291cmNlLCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIFN0
cmluZygpLCBTdHJpbmcoKSwgMCk7CiB9CiAKLXZvaWQgQ29uc29sZTo6d2FybihQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y2FsbFN0YWNrKQorLy8gc3RhdGljCit2b2lkIENvbnNvbGU6Om11dGUoKQogewotICAgIGFkZE1l
c3NhZ2UoTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIGFyZ3VtZW50cywgY2Fs
bFN0YWNrKTsKKyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3RhdGljCit2b2lkIENvbnNvbGU6
OnVubXV0ZSgpCit7CisgICAgQVNTRVJUKG11dGVDb3VudCA+IDApOworICAgIG11dGVDb3VudC0t
OwogfQogCiBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29uc29sZS5oCmluZGV4IDg5ZTI5NTVkNmNiNDg1NTM2NDIzNzU3Zjk2ZGIwYmQyNTVj
MzViNmEuLjkxNjc5NGVhMTkzYTE1ODU2ZGM2ZTE1NjQ4ODM0ZGFkYTU1YTdkYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29uc29sZS5oCkBAIC04MSw2ICs4MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGdyb3VwQ29s
bGFwc2VkKFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+KTsKICAgICB2b2lkIGdyb3VwRW5kKCk7CiAKKyAgICBzdGF0aWMgdm9pZCBtdXRlKCk7
CisgICAgc3RhdGljIHZvaWQgdW5tdXRlKCk7CisKICAgICBzdGF0aWMgYm9vbCBzaG91bGRQcmlu
dEV4Y2VwdGlvbnMoKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMo
Ym9vbCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>