<?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>70816</bug_id>
          
          <creation_ts>2011-10-25 07:01:05 -0700</creation_ts>
          <short_desc>Get rid of optional parameters in the middle in IDLs.</short_desc>
          <delta_ts>2011-10-28 02:42:59 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>70875</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dslomov</cc>
    
    <cc>ian</cc>
    
    <cc>japhet</cc>
    
    <cc>levin</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>490018</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-25 07:01:05 -0700</bug_when>
    <thetext>Get rid of optional parameters in the middle in IDLs.

Optional parameters in the middle are prohibited by WebIDL spec.

There are two places where we use them:
1) DOMWindow.idl postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
which actually means
postMessage(in SerializedScriptValue message, in DOMString targetOrigin)
postMessage(in SerializedScriptValue message, in Array messagePorts, in DOMString targetOrigin)

2) CanvasRenderingContext2D.idl putImageData(in ImageData imagedata, in float dx, in float dy, in [Optional] float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight)
which actually means
putImageData(in ImageData imagedata, in float dx, in float dy)
putImageData(in ImageData imagedata, in float dx, in float dy, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490020</commentid>
    <comment_count>1</comment_count>
      <attachid>112332</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-25 07:02:32 -0700</bug_when>
    <thetext>Created attachment 112332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490141</commentid>
    <comment_count>2</comment_count>
      <attachid>112332</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 10:49:23 -0700</bug_when>
    <thetext>Comment on attachment 112332
Patch

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

Did you run ./Tool/Scripts/run-bindings-tests ?  You might need to update the expected results.

&gt; Source/WebCore/page/DOMWindow.idl:218
&gt; -        [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
&gt; +        [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in DOMString targetOrigin)
&gt;              raises(DOMException);
&gt; -        [DoNotCheckDomainSecurity, Custom] void webkitPostMessage(in SerializedScriptValue message, in [Optional] Array transferList, in DOMString targetOrigin)
&gt; +        [DoNotCheckDomainSecurity, Custom] void postMessage(in SerializedScriptValue message, in Array messagePorts, in DOMString targetOrigin)
&gt; +            raises(DOMException);

This is being discussed in the working group, but I see that you&apos;re not changing behavior.

&gt; LayoutTests/fast/canvas/canvas-putImageData-expected.txt:147
&gt; -PASS context.putImageData({}, 0, 0) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
&gt; +PASS context.putImageData({}, 0, 0) threw exception TypeError: Type error.

Interesting.  I didn&apos;t know these were different.  This looks like an OK behavior change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490146</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 10:55:58 -0700</bug_when>
    <thetext>+levin because this touches the postMessage parameter tangle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490153</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-25 11:07:12 -0700</bug_when>
    <thetext>Actually, I asked Alexey about this optional parameter not long ago.

Here is what he said
&quot;The goal of IDL is to document actual behavior here - it&apos;s the middle argument that is optional indeed. Technically, it does not matter what the arguments are, since the function is [Custom] anyway.

See also: https://bugs.webkit.org/show_bug.cgi?id=63141

There is a long story behind it that I forgot, something about gradually adding arguments and bringing Window and MessagePort versions of postMessage in sync. And once we implemented the mad behavior HTML5 had at that point, the spec got changed again.&quot;

I guess https://bugs.webkit.org/show_bug.cgi?id=63141#c11 says that optional shouldn&apos;t be there, so this is following that advice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490159</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 11:10:44 -0700</bug_when>
    <thetext>That&apos;s fine, but we have a long-term goal of converging WebKitIDL to WebIDL and internal optional parameters aren&apos;t allowed in WebIDL.  The WebIDL way to express this behavior is using overloading, which is what this patch does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490165</commentid>
    <comment_count>6</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-25 11:14:16 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; That&apos;s fine, but we have a long-term goal of converging WebKitIDL to WebIDL and internal optional parameters aren&apos;t allowed in WebIDL.  The WebIDL way to express this behavior is using overloading, which is what this patch does.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490166</commentid>
    <comment_count>7</comment_count>
      <attachid>112332</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-10-25 11:15:00 -0700</bug_when>
    <thetext>Comment on attachment 112332
Patch

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

Specific consequences of this change look like they are both for the worse.

I don&apos;t feel very strong about this, and postMessage specifically seems to be in need of change, but this needs to be more clearly an improvement. Specifically, postMessage documentation changes should go together actual implementation changes (in a dedicated patch).

&gt;&gt; Source/WebCore/page/DOMWindow.idl:218
&gt;&gt; +            raises(DOMException);
&gt; 
&gt; This is being discussed in the working group, but I see that you&apos;re not changing behavior.

But is this change an improvement? [Optional] is a very useful bit of documentation here. Documentation is why there are arguments specified for [Custom] functions - they are ignored otherwise.

What this change does is making documentation not match reality.

&gt;&gt; LayoutTests/fast/canvas/canvas-putImageData-expected.txt:147
&gt;&gt; +PASS context.putImageData({}, 0, 0) threw exception TypeError: Type error.
&gt; 
&gt; Interesting.  I didn&apos;t know these were different.  This looks like an OK behavior change.

Is it specified what should happen? This looks like a change for worse - incorrect arguments for a built-in function should raise a DOM exception, not a JS one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490172</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 11:20:02 -0700</bug_when>
    <thetext>&gt; I don&apos;t feel very strong about this, and postMessage specifically seems to be in need of change, but this needs to be more clearly an improvement. Specifically, postMessage documentation changes should go together actual implementation changes (in a dedicated patch).

Respectfully, I disagree.  This patch doesn&apos;t change behavior.  It just better aligns the syntax of our IDL files with WebIDL.  We can consider changing behavior in a future patch.  There&apos;s no reason to block syntax convergence with WebIDL on behavioral changes.

&gt; Is it specified what should happen? This looks like a change for worse - incorrect arguments for a built-in function should raise a DOM exception, not a JS one.

That&apos;s not how we handle this situation throughout the engine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490177</commentid>
    <comment_count>9</comment_count>
      <attachid>112332</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 11:22:42 -0700</bug_when>
    <thetext>Comment on attachment 112332
Patch

Thanks for your feedback Alexey, but, as far as I can tell, you aren&apos;t an active contributor to this area of the code anymore and your comments are based on an outdated understanding of how this code works and the direction we&apos;d like this code to take.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490183</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-10-25 11:28:56 -0700</bug_when>
    <thetext>To be clear, I certainly support getting rid of optional arguments in the middle. I also think that changing postMessage to match spec is good, subject to compatibility testing.

&gt; Respectfully, I disagree.  This patch doesn&apos;t change behavior.

The issue that I have with this patch is that it changes documentation (IDL) to not match implementation. That&apos;s clearly a step in the wrong direction, and the fact that the patch doesn&apos;t change behavior is actually the problem.

The whole reason to have argument lists in IDL for [Custom] functions is for documentation. Is the  change for DOMWindow.idl because CodeGenerator parses argument lists even for [Custom] functions? In that case, an expedient way to resolve this could be to stop parsing them.

&gt; That&apos;s not how we handle this situation throughout the engine.

Could you explain this in a little more detail? We throw TYPE_MISMATCH_ERR a lot, both from generated bindings code and from DOM code. What are the situations similar to this one where we throw a JS exception?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490186</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 11:40:07 -0700</bug_when>
    <thetext>Simplifying the diff a bit, here&apos;s the relevant portion of the change:

- void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
+ void postMessage(in SerializedScriptValue message, in DOMString targetOrigin)
+ void postMessage(in SerializedScriptValue message, in Array messagePorts, in DOMString targetOrigin)

Aside from the fact that the first declaration is technically meaningless, the two forms of declaring postMessage are equivalent.  The only difference is that that the new syntax is closer to valid WebIDL.

&gt; &gt; That&apos;s not how we handle this situation throughout the engine.
&gt; 
&gt; Could you explain this in a little more detail? We throw TYPE_MISMATCH_ERR a lot, both from generated bindings code and from DOM code. What are the situations similar to this one where we throw a JS exception?

Conceptually, it depends on which layer detects the error.  In the course of calling a DOM API, at some point you leave the &quot;JavaScript&quot; world and enter in the &quot;DOM&quot; world.  The JavaScript world is responsible for figuring out which API you&apos;re calling and for converting the arguments from the JavaScript world to the DOM world (e.g., calling toString on DOMString arguments).  If the error is detected before we leave the JavaScript world, we throw JavaScript errors (conceptually because this code is JavaScript code, not DOM).  If the error is detected after we enter the DOM world, we through DOM errors.

If you read the WebIDL specs, this is related to how the spec is factored between language neutral processing of WebIDL and JavaScript-specific processing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490196</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-10-25 11:55:01 -0700</bug_when>
    <thetext>&gt; - void postMessage(in SerializedScriptValue message, in [Optional] Array messagePorts, in DOMString targetOrigin)
&gt; + void postMessage(in SerializedScriptValue message, in DOMString targetOrigin)
&gt; + void postMessage(in SerializedScriptValue message, in Array messagePorts, in DOMString targetOrigin)

I missed that there are two overrides added, as they were interspersed with webkitPostMessage. I don&apos;t have any objection against this part any more.

&gt; &gt; &gt; That&apos;s not how we handle this situation throughout the engine.
&gt; &gt; 
&gt; &gt; Could you explain this in a little more detail? We throw TYPE_MISMATCH_ERR a lot, both from generated bindings code and from DOM code. What are the situations similar to this one where we throw a JS exception?
&gt; 
&gt; Conceptually, it depends on which layer detects the error.

I know the theory. You claimed that this is how we handle this situation throughout the engine. Is it difficult to give an example that&apos;s similar to this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490200</commentid>
    <comment_count>13</comment_count>
      <attachid>112332</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 11:58:39 -0700</bug_when>
    <thetext>Comment on attachment 112332
Patch

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

&gt;&gt;&gt; LayoutTests/fast/canvas/canvas-putImageData-expected.txt:147
&gt;&gt;&gt; +PASS context.putImageData({}, 0, 0) threw exception TypeError: Type error.
&gt;&gt; 
&gt;&gt; Interesting.  I didn&apos;t know these were different.  This looks like an OK behavior change.
&gt; 
&gt; Is it specified what should happen? This looks like a change for worse - incorrect arguments for a built-in function should raise a DOM exception, not a JS one.

You can run this command to see a number of modern examples:

LayoutTests/fast/canvas/webgl$ grep -r &quot;threw exception TypeError&quot; .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490243</commentid>
    <comment_count>14</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-10-25 12:35:02 -0700</bug_when>
    <thetext>If you&apos;re going to be poking at the postMessage() part of the codebase, please just fix the order of the arguments to match the spec... the spec was changed specifically to avoid having optional arguments in the middle of the argument list.

See bug 63141.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490254</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 12:46:18 -0700</bug_when>
    <thetext>Yes, that&apos;s what I mentioned earlier.  This patch doesn&apos;t actually change any behavior.  It just changes the syntax we use to express the current behavior.  I suspect we should change our behavior, but that&apos;s a question for another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490255</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-10-25 12:47:15 -0700</bug_when>
    <thetext>Adam, seeing dozens of unrelated TypeError exceptions certainly opens my eyes as to why a patch that removes [Optional] from fourth argument of putImageData results in different exception being raised when {} is passed as its first argument.

I&apos;m puzzled that you have such attitude mere weeks after asking me about some basic facts of how bindings work on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490256</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 12:47:31 -0700</bug_when>
    <thetext>Committed r98379: &lt;http://trac.webkit.org/changeset/98379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490257</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 12:49:25 -0700</bug_when>
    <thetext>&gt; I&apos;m puzzled that you have such attitude mere weeks after asking me about some basic facts of how bindings work on IRC.

I&apos;m not sure what you&apos;re trying to imply with this statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490579</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-25 23:08:37 -0700</bug_when>
    <thetext>The test added by this patch is failing on SL, GTK, &amp; Qt:
http://build.webkit.org/results/SnowLeopard%20Intel%20Debug%20(Tests)/r98427%20(2715)/fast/canvas/canvas-putImageData-pretty-diff.html

It&apos;s probably a V8/JSC difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490580</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 23:11:28 -0700</bug_when>
    <thetext>&gt; It&apos;s probably a V8/JSC difference.

Thanks.  Sounds like we need to create new baselines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490584</commentid>
    <comment_count>21</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-10-25 23:17:00 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; It&apos;s probably a V8/JSC difference.
&gt; 
&gt; Thanks.  Sounds like we need to create new baselines.

I don&apos;t think if &quot;FAIL&quot; is correct ... It sounds like a bug. Reopen the bug to fix it.

--- /ramdisk/qt-linux-release/build/layout-test-results/fast/canvas/canvas-putImageData-expected.txt 
+++ /ramdisk/qt-linux-release/build/layout-test-results/fast/canvas/canvas-putImageData-actual.txt 
@@ -144,7 +144,7 @@
 PASS getPixel(9,9) is [0,128,0,255]
 PASS getPixel(1,1) is [0,128,0,255]
 PASS getPixel(9,9) is [0,128,0,255]
-PASS context.putImageData({}, 0, 0) threw exception TypeError: Type error.
+FAIL context.putImageData({}, 0, 0) should throw TypeError: Type error. Threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS context.putImageData(buffer, NaN, 0, 0, 0, 0, 0) threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
 PASS context.putImageData(buffer, 0, NaN, 0, 0, 0, 0) threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
 PASS context.putImageData(buffer, 0, 0, NaN, 0, 0, 0) threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490607</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 23:46:11 -0700</bug_when>
    <thetext>@Pavel: I&apos;ve rolled out your patch.  It looks like we&apos;ll need to iterate some more to avoid breaking tests on ports that use JavaScriptCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490739</commentid>
    <comment_count>23</comment_count>
      <attachid>112481</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-26 04:52:13 -0700</bug_when>
    <thetext>Created attachment 112481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490743</commentid>
    <comment_count>24</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-26 04:59:57 -0700</bug_when>
    <thetext>Overloaded methods throw different exceptions in V8 and JSC. Updated the test to call &quot;context.putImageData(null, 0, 0)&quot; just like canvas-createPattern and canvas-createImageData tests do (those won&apos;t pass with {} as well).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490927</commentid>
    <comment_count>25</comment_count>
      <attachid>112481</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-26 09:32:24 -0700</bug_when>
    <thetext>Comment on attachment 112481
Patch

This looks like we&apos;re losing test coverage.  Can we make the two bindings throw the same exception?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490962</commentid>
    <comment_count>26</comment_count>
      <attachid>112481</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-26 10:03:10 -0700</bug_when>
    <thetext>Comment on attachment 112481
Patch

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

&gt; LayoutTests/ChangeLog:11
&gt; +        Optional parameters in the middle are prohibited by WebIDL spec.
&gt; +
&gt; +        * fast/canvas/canvas-putImageData-expected.txt:
&gt; +        * fast/canvas/canvas-putImageData.js:

What is the change to this test? Why change what’s being tested, rather than just adding a new test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490998</commentid>
    <comment_count>27</comment_count>
      <attachid>112562</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-26 10:35:25 -0700</bug_when>
    <thetext>Created attachment 112562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490999</commentid>
    <comment_count>28</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-26 10:36:27 -0700</bug_when>
    <thetext>Generated overloaded methods in V8 throw Type Error.
putImageData has to be custom to throw DOM Error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491006</commentid>
    <comment_count>29</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-26 10:41:36 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 112481 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112481&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:11
&gt; &gt; +        Optional parameters in the middle are prohibited by WebIDL spec.
&gt; &gt; +
&gt; &gt; +        * fast/canvas/canvas-putImageData-expected.txt:
&gt; &gt; +        * fast/canvas/canvas-putImageData.js:
&gt; 
&gt; What is the change to this test? Why change what’s being tested, rather than just adding a new test case?

putImageData was the only canvas method that throws DOM Exception when called with &quot;{}&quot; as first argument. All other methods throw Type Error in exact same situation.

New patch preserves existing behavior of putImageData.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491014</commentid>
    <comment_count>30</comment_count>
      <attachid>112562</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-26 10:57:13 -0700</bug_when>
    <thetext>Comment on attachment 112562
Patch

We shouldn&apos;t add a custom putImageDataCallback just to throw a different exception.  We should fix the code generators to both throw the same exception.  (Either exception is fine, although I&apos;d prefer the JS exception to the DOM exception, as discussed above.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491437</commentid>
    <comment_count>31</comment_count>
      <attachid>112659</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-27 03:19:36 -0700</bug_when>
    <thetext>Created attachment 112659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491438</commentid>
    <comment_count>32</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-27 03:22:04 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 112562 [details])
&gt; We shouldn&apos;t add a custom putImageDataCallback just to throw a different exception.  We should fix the code generators to both throw the same exception.  (Either exception is fine, although I&apos;d prefer the JS exception to the DOM exception, as discussed above.)

You are right, context.putImageData({}, 0, 0) should throw JS exception. I was tricked by wrong test expectation.

It threw DOM Exception due to wrong custom implementation in JSC and due to a bug in V8 generated version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491740</commentid>
    <comment_count>33</comment_count>
      <attachid>112659</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 11:13:46 -0700</bug_when>
    <thetext>Comment on attachment 112659
Patch

Yay for deleting buggy custom bindings.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491816</commentid>
    <comment_count>34</comment_count>
      <attachid>112659</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 12:22:48 -0700</bug_when>
    <thetext>Comment on attachment 112659
Patch

Clearing flags on attachment: 112659

Committed r98617: &lt;http://trac.webkit.org/changeset/98617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491817</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 12:22:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492229</commentid>
    <comment_count>36</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-27 21:34:45 -0700</bug_when>
    <thetext>This patch may have caused canvas/philip/tests/2d.imageData.put.wrongtype.html and canvas/philip/tests/2d.missingargs.html to fail on Snow Leopard bots:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r98676%20(34249)/results.html

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=canvas%2Fphilip%2Ftests%2F2d.missingargs.html%2Ccanvas%2Fphilip%2Ftests%2F2d.imageData.put.wrongtype.html&amp;group=%40ToT%20-%20webkit.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492349</commentid>
    <comment_count>37</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-28 02:42:59 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; This patch may have caused canvas/philip/tests/2d.imageData.put.wrongtype.html and canvas/philip/tests/2d.missingargs.html to fail on Snow Leopard bots:
&gt; http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r98676%20(34249)/results.html
&gt; 
&gt; http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=canvas%2Fphilip%2Ftests%2F2d.missingargs.html%2Ccanvas%2Fphilip%2Ftests%2F2d.imageData.put.wrongtype.html&amp;group=%40ToT%20-%20webkit.org

These tests need new expectations, see https://bugs.webkit.org/show_bug.cgi?id=71104.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112332</attachid>
            <date>2011-10-25 07:02:32 -0700</date>
            <delta_ts>2011-10-26 04:52:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70816-20111025180230.patch</filename>
            <type>text/plain</type>
            <size>13614</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzMzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0YmM0MTJhYWJlMzJkZTkx
MTJmN2E4ZWY0NDJiNTJmYmVlODQ4NzdiLi5lYzE0Yjk4NDhhZDc2NTQzZmMyMWIxYzg3OWRhNDA1
YmFiMjM3MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTAtMjUgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBvcHRpb25hbCBwYXJhbWV0ZXJzIGluIHRoZSBtaWRkbGUgaW4gSURMcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW9uYWwgcGFyYW1ldGVycyBp
biB0aGUgbWlkZGxlIGFyZSBwcm9oaWJpdGVkIGJ5IFdlYklETCBzcGVjLgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhl
YWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjayk6CisgICAgICAgIChHZW5l
cmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMS0x
MC0yMSAgTmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBSb3V0ZSBDb25zb2xlOjp0aW1lIGFuZCBDb25zb2xlOjp0aW1lRW5kIHRvIHRyYWNlX2V2ZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IGVjMWFiNGNlYTIwMzliODJjN2Q4MTlhZGI0NjFmYzBhMGRiODU5MWUuLjVlOTJj
OGQ4N2NjYjZlNmFkNDZkNjViOGFjYzI2NjkwYTIwZjU5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC05MTAsMTAgKzkx
MCwxMCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoJG51bUN1c3RvbUZ1bmN0aW9ucyA+
IDApIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuICAgIC8vIEN1c3RvbSBmdW5j
dGlvbnNcbiIpOwogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1
bmN0aW9uc30pIHsKLSAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tIn0pIHsKLSAgICAgICAgICAgICAgICBteSAkZnVuY3Rp
b25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkltcGxlbWVudGF0aW9uRnVuY3Rpb24ifSB8fCAkY29kZUdlbmVyYXRvci0+V0tf
bGNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7Ci0gICAgICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBKU0M6OkpTVmFsdWUgIiAuICRmdW5jdGlvbkltcGxlbWVu
dGF0aW9uTmFtZSAuICIoSlNDOjpFeGVjU3RhdGUqKTtcbiIpOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbmV4dCB1bmxlc3MgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b20ifSBvciAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkpTQ0N1c3RvbSJ9OworICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPntvdmVy
bG9hZHN9ICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ICE9IDE7CisgICAgICAgICAgICBt
eSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGF0aW9uRnVuY3Rpb24ifSB8fCAkY29kZUdlbmVy
YXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSAiIC4gJGZ1bmN0aW9uSW1w
bGVtZW50YXRpb25OYW1lIC4gIihKU0M6OkV4ZWNTdGF0ZSopO1xuIik7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTE5NzgsOCArMTk3OCwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRmdW5jdGlvbi0+c2lnbmF0dXJl
LT50eXBlKTsKIAogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRjb2RlR2VuZXJhdG9y
LT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gIlByb3RvdHlwZUZ1bmN0aW9uIiAuICRjb2RlR2Vu
ZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAg
ICAgIG15ICRpc0N1c3RvbSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tIn0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0NDdXN0b20ifTsKKyAgICAgICAgICAgIG15ICRpc092ZXJsb2FkZWQgPSAkZnVuY3Rp
b24tPntvdmVybG9hZHN9ICYmIEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0gPiAxOworCisgICAg
ICAgICAgICBuZXh0IGlmICRpc0N1c3RvbSAmJiAkaXNPdmVybG9hZGVkICYmICRmdW5jdGlvbi0+
e292ZXJsb2FkSW5kZXh9ID4gMTsKIAotICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+e292ZXJs
b2Fkc30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSA+IDEpIHsKKyAgICAgICAgICAgIGlm
ICghJGlzQ3VzdG9tICYmICRpc092ZXJsb2FkZWQpIHsKICAgICAgICAgICAgICAgICAjIEFwcGVu
ZCBhIG51bWJlciB0byBhbiBvdmVybG9hZGVkIG1ldGhvZCdzIG5hbWUgdG8gbWFrZSBpdCB1bmlx
dWU6CiAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbk5hbWUgLiAkZnVu
Y3Rpb24tPntvdmVybG9hZEluZGV4fTsKICAgICAgICAgICAgICAgICAjIE1ha2UgdGhpcyBmdW5j
dGlvbiBzdGF0aWMgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MsIHNpbmNlIHdlCkBAIC0yMDIy
LDcgKzIwMjYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpO1xuIik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICgkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tIn0pIHsKKyAgICAg
ICAgICAgIGlmICgkaXNDdXN0b20pIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPiIgLiAkZnVuY3Rpb25J
bXBsZW1lbnRhdGlvbk5hbWUgLiAiKGV4ZWMpKTtcbiIpOwogICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbFR5cGUqIGltcCA9
IHN0YXRpY19jYXN0PCRpbXBsVHlwZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKQEAgLTIw
NTksNyArMjA2Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAotICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bi0+e292ZXJsb2Fkc30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSA+IDEgJiYgJGZ1bmN0
aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSkgeworICAg
ICAgICAgICAgaWYgKCEkaXNDdXN0b20gJiYgJGlzT3ZlcmxvYWRlZCAmJiAkZnVuY3Rpb24tPntv
dmVybG9hZEluZGV4fSA9PSBAeyRmdW5jdGlvbi0+e292ZXJsb2Fkc319KSB7CiAgICAgICAgICAg
ICAgICAgIyBHZW5lcmF0ZSBhIGZ1bmN0aW9uIGRpc3BhdGNoaW5nIGNhbGwgdG8gdGhlIHJlc3Qg
b2YgdGhlIG92ZXJsb2Fkcy4KICAgICAgICAgICAgICAgICBHZW5lcmF0ZU92ZXJsb2FkZWRQcm90
b3R5cGVGdW5jdGlvbigkZnVuY3Rpb24sICRkYXRhTm9kZSwgJGltcGxDbGFzc05hbWUpOwogICAg
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQppbmRleCA2ODAzZmMxOGM0NGMzYmYzMWQ2OGIzOTRiM2RkZTA3YTVhYWY4
NzkxLi42NmQ2N2Q2MjM2NGNlNGM2MDdkYWI4ZTlhNzRhYTBhMjA4ZWE2NDVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAt
MjY0LDYgKzI2NCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgQ29weSBjb250ZW50cyBv
ZiBwYXJlbnQgY2xhc3NlcyBleGNlcHQgdGhlIGZpcnN0IHBhcmVudCBvciBpZiBpdCBpcwogICAg
ICMgRXZlbnRUYXJnZXQuCiAgICAgJGNvZGVHZW5lcmF0b3ItPkFkZE1ldGhvZHNDb25zdGFudHNB
bmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMoJGRhdGFOb2RlLCBcQGFsbFBhcmVudHMsIDEp
OworICAgICRjb2RlR2VuZXJhdG9yLT5MaW5rT3ZlcmxvYWRlZEZ1bmN0aW9ucygkZGF0YU5vZGUp
OwogCiAgICAgbXkgJGhhc0RlcGVuZGVudExpZmV0aW1lID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiVjhEZXBlbmRlbnRMaWZldGltZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9IHx8ICRjbGFzc05hbWUgPX4gL1NWRy87CiAg
ICAgaWYgKCEkaGFzRGVwZW5kZW50TGlmZXRpbWUpIHsKQEAgLTM3MSw3ICszNzIsNyBAQCBFTkQK
ICAgICAgICAgbXkgJG5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAg
bXkgJGF0dHJFeHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzOwog
Ci0gICAgICAgIGlmICgkYXR0ckV4dC0+eyJDdXN0b20ifSB8fCAkYXR0ckV4dC0+eyJWOEN1c3Rv
bSJ9KSB7CisgICAgICAgIGlmICgoJGF0dHJFeHQtPnsiQ3VzdG9tIn0gfHwgJGF0dHJFeHQtPnsi
VjhDdXN0b20ifSkgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gMSkgewogICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogICAgIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gJHtuYW1lfUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKIEVORApA
QCAtMTM4OSwxMiArMTM5MCwxNCBAQCBzdWIgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrCiAg
ICAgfQogICAgICRyZXF1aXJlc0FsbEFyZ3VtZW50cyA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVxdWlyZXNBbGxBcmd1bWVudHMifSB8fCAkcmVxdWlyZXNB
bGxBcmd1bWVudHNEZWZhdWx0OwogICAgIGlmICgkcmVxdWlyZXNBbGxBcmd1bWVudHMpIHsKLSAg
ICAgICAgbXkgJG51bU1hbmRhdG9yeVBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsK
LSAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKHJldmVyc2UoQHskZnVuY3Rpb24tPnBhcmFtZXRl
cnN9KSkgeworICAgICAgICBteSAkbnVtTWFuZGF0b3J5UGFyYW1zID0gMDsKKyAgICAgICAgbXkg
JG9wdGlvbmFsU2VlbiA9IDA7CisgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlv
bi0+cGFyYW1ldGVyc30pIHsKICAgICAgICAgICAgIGlmICgkcGFyYW0tPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJPcHRpb25hbCJ9KSB7Ci0gICAgICAgICAgICAgICAgJG51bU1hbmRhdG9yeVBhcmFt
cy0tOworICAgICAgICAgICAgICAgICRvcHRpb25hbFNlZW4gPSAxOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBsYXN0OworICAgICAgICAgICAgICAgIGRpZSAiQW4gYXJn
dW1lbnQgbXVzdCBub3QgYmUgZGVjbGFyZWQgdG8gYmUgb3B0aW9uYWwgdW5sZXNzIGFsbCBzdWJz
ZXF1ZW50IGFyZ3VtZW50cyB0byB0aGUgb3BlcmF0aW9uIGFyZSBhbHNvIG9wdGlvbmFsLiIgaWYg
JG9wdGlvbmFsU2VlbjsKKyAgICAgICAgICAgICAgICAkbnVtTWFuZGF0b3J5UGFyYW1zKys7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRudW1NYW5kYXRvcnlQYXJhbXMg
Pj0gMSkgewpAQCAtMjAwMiwxMyArMjAwNSwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yR2V0dGVyKCRpbXBsQ2xhc3NOYW1lKTsKICAg
ICB9CiAKLSAgICAkY29kZUdlbmVyYXRvci0+TGlua092ZXJsb2FkZWRGdW5jdGlvbnMoJGRhdGFO
b2RlKTsKLQogICAgIG15ICRpbmRleGVyOwogICAgIG15ICRuYW1lZFByb3BlcnR5R2V0dGVyOwog
ICAgICMgR2VuZXJhdGUgbWV0aG9kcyBmb3IgZnVuY3Rpb25zLgogICAgIGZvcmVhY2ggbXkgJGZ1
bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICBpZiAoISgkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhDdXN0b20ifSkpIHsKKyAgICAg
ICAgbXkgJGlzQ3VzdG9tID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlY4Q3VzdG9tIn07CisgICAgICAgIGlmICghJGlzQ3VzdG9tKSB7CiAgICAgICAgICAgICBH
ZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2soJGZ1bmN0aW9uLCAkZGF0YU5vZGUsICRpbXBsQ2xhc3NO
YW1lKTsKICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDEgJiYg
JGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSkg
ewogICAgICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uQ2FsbGJhY2soJGZ1
bmN0aW9uLCAkZGF0YU5vZGUsICRpbXBsQ2xhc3NOYW1lKTsKQEAgLTIwMjcsNyArMjAyOSw5IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICMgZ2VuZXJhdGUgYW4gYWNjZXNz
IGdldHRlciB0aGF0IHJldHVybnMgZGlmZmVyZW50IGZ1bmN0aW9uIG9iamVjdHMKICAgICAgICAg
IyBmb3IgZGlmZmVyZW50IGNhbGxpbmcgY29udGV4dC4KICAgICAgICAgaWYgKCgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja0RvbWFpblNlY3VyaXR5In0gfHwgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciKSkgJiYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJEb05vdENoZWNrRG9tYWluU2VjdXJpdHkifSkgewotICAgICAgICAgICAg
R2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25HZXR0ZXIoJGZ1bmN0aW9uLCAkaW1wbENsYXNzTmFt
ZSk7CisgICAgICAgICAgICBpZiAoISRpc0N1c3RvbSB8fCAkZnVuY3Rpb24tPntvdmVybG9hZElu
ZGV4fSA9PSAxKSB7CisgICAgICAgICAgICAgICAgR2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25H
ZXR0ZXIoJGZ1bmN0aW9uLCAkaW1wbENsYXNzTmFtZSk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCmluZGV4IDYyZDllNTYyNTI1ZDQ5YTNjMjY2MmViZTQz
MDU1MmZlODU5MDk0YWYuLmQ1MzkzY2VkZWQyMGYyMTI1OGRkMWUzODc3ZDBjZDc1YmU0Yjg4ZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmlkbApAQCAtMTU3LDcgKzE1Nyw5IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgQ2FudmFzUGF0dGVybiBjcmVh
dGVQYXR0ZXJuKGluIEhUTUxJbWFnZUVsZW1lbnQgaW1hZ2UsIGluIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIHJlcGV0aXRpb25UeXBlKQogICAgICAgICAgICAgcmFpc2VzIChE
T01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHB1dEltYWdlRGF0YShpbiBJbWFnZURhdGEgaW1h
Z2VkYXRhLCBpbiBmbG9hdCBkeCwgaW4gZmxvYXQgZHksIGluIFtPcHRpb25hbF0gZmxvYXQgZGly
dHlYLCBpbiBmbG9hdCBkaXJ0eVksIGluIGZsb2F0IGRpcnR5V2lkdGgsIGluIGZsb2F0IGRpcnR5
SGVpZ2h0KQorICAgICAgICB2b2lkIHB1dEltYWdlRGF0YShpbiBJbWFnZURhdGEgaW1hZ2VkYXRh
LCBpbiBmbG9hdCBkeCwgaW4gZmxvYXQgZHkpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgdm9pZCBwdXRJbWFnZURhdGEoaW4gSW1hZ2VEYXRhIGltYWdlZGF0YSwg
aW4gZmxvYXQgZHgsIGluIGZsb2F0IGR5LCBpbiBmbG9hdCBkaXJ0eVgsIGluIGZsb2F0IGRpcnR5
WSwgaW4gZmxvYXQgZGlydHlXaWR0aCwgaW4gZmxvYXQgZGlydHlIZWlnaHQpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgSW1hZ2VEYXRhIGNyZWF0ZUltYWdlRGF0
YShpbiBJbWFnZURhdGEgaW1hZ2VkYXRhKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDRmYTJkMDdmNjI5MDEyMzAwZTk3
MGVhZDZhYmVlYTNlZjMxZTYzNTAuLjczMjEwMGM4M2U2MGRiYWE3MGNiZDMzOGNmMmFlMDU0NDYy
ZDMxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTIxMiw5ICsyMTIsMTQgQEAg
bW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgLy8gY3Jvc3MtZG9jdW1lbnQgbWVzc2FnaW5nCiAj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0g
ICAgICAgIFtEb05vdENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0TWVzc2Fn
ZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBBcnJheSBt
ZXNzYWdlUG9ydHMsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCisgICAgICAgIFtEb05vdENo
ZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBTZXJpYWxpemVk
U2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbRG9Ob3RDaGVja0RvbWFpblNlY3Vy
aXR5LCBDdXN0b21dIHZvaWQgd2Via2l0UG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlIG1lc3NhZ2UsIGluIFtPcHRpb25hbF0gQXJyYXkgdHJhbnNmZXJMaXN0LCBpbiBET01TdHJp
bmcgdGFyZ2V0T3JpZ2luKQorICAgICAgICBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5LCBDdXN0
b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIG1lc3NhZ2UsIGlu
IEFycmF5IG1lc3NhZ2VQb3J0cywgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikKKyAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAgIFtEb05vdENoZWNrRG9tYWluU2Vj
dXJpdHksIEN1c3RvbV0gdm9pZCB3ZWJraXRQb3N0TWVzc2FnZShpbiBTZXJpYWxpemVkU2NyaXB0
VmFsdWUgbWVzc2FnZSwgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikKKyAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5LCBD
dXN0b21dIHZvaWQgd2Via2l0UG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIG1l
c3NhZ2UsIGluIEFycmF5IHRyYW5zZmVyTGlzdCwgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikK
ICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UKICAgICAgICAgLy8gVGhl
cmUncyBubyBnb29kIHdheSB0byBleHBvc2UgYW4gYXJyYXkgdmlhIHRoZSBPYmpDIGJpbmRpbmdz
LCBzbyBmb3Igbm93IGp1c3QgYWxsb3cgcGFzc2luZyBpbiBhIHNpbmdsZSBwb3J0LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGM2YWI1NzYwMTE1Y2M1NGZlMDllOTcwM2I3YWI1OWE4MmE1NWZkYzYuLmIwYTkwYzg4ZmNhYzI5
YTczMmRiYjNlODU4ZWM3YmRjOGMzMDU5Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0x
MC0yNSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBHZXQgcmlkIG9mIG9wdGlvbmFsIHBhcmFtZXRlcnMgaW4gdGhlIG1pZGRsZSBpbiBJRExzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4MTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcHRpb25hbCBw
YXJhbWV0ZXJzIGluIHRoZSBtaWRkbGUgYXJlIHByb2hpYml0ZWQgYnkgV2ViSURMIHNwZWMuCisK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcHV0SW1hZ2VEYXRhLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtcHV0SW1hZ2VEYXRhLmpzOgorCiAyMDExLTEw
LTI1ICBab2x0YW4gQXJ2YWkgIDx6YXJ2YWlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtR
dF0gUmVtb3ZlIGZyb20gU2tpcHBlZCBsaXN0LiBUZXN0IHBhc3NlczogZmFzdC90cmFuc2Zvcm1z
L3Njcm9sbEludG9WaWV3LXRyYW5zZm9ybWVkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1wdXRJbWFnZURhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS1leHBlY3RlZC50eHQKaW5kZXggZDBh
NTk1NzA2OTJiMjU3NzM1ZDdiOWRjNWFiNTNhNGQ0MTQxM2QyMC4uMzk1N2E2NGZiYjBkMzQyZTFm
N2E2NTQwZWZjODVjYmI4ZWQxYTMyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLXB1dEltYWdlRGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS1leHBlY3RlZC50eHQKQEAgLTE0NCw3ICsxNDQs
NyBAQCBQQVNTIGdldFBpeGVsKDEsMSkgaXMgWzAsMTI4LDAsMjU1XQogUEFTUyBnZXRQaXhlbCg5
LDkpIGlzIFswLDEyOCwwLDI1NV0KIFBBU1MgZ2V0UGl4ZWwoMSwxKSBpcyBbMCwxMjgsMCwyNTVd
CiBQQVNTIGdldFBpeGVsKDksOSkgaXMgWzAsMTI4LDAsMjU1XQotUEFTUyBjb250ZXh0LnB1dElt
YWdlRGF0YSh7fSwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VS
UjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5wdXRJbWFnZURhdGEoe30sIDAsIDAp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCiBQQVNTIGNvbnRleHQucHV0
SW1hZ2VEYXRhKGJ1ZmZlciwgTmFOLCAwLCAwLCAwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCiBQQVNTIGNvbnRleHQucHV0
SW1hZ2VEYXRhKGJ1ZmZlciwgMCwgTmFOLCAwLCAwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCiBQQVNTIGNvbnRleHQucHV0
SW1hZ2VEYXRhKGJ1ZmZlciwgMCwgMCwgTmFOLCAwLCAwLCAwKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcHV0SW1hZ2VEYXRhLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS5qcwppbmRleCA1YjQzMmRjYmEzNGRlZTJi
NGE0YmNjMjg3OGVkYjU3M2NhYzRkZjE0Li45YWM2NDg0ZWIxMGYxNDYxZmY1NGVhNWJhMGJiOTBi
ODY0OGQ0NjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcHV0
SW1hZ2VEYXRhLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1wdXRJbWFn
ZURhdGEuanMKQEAgLTIwMSw3ICsyMDEsNyBAQCBwaXhlbFNob3VsZEJlKDEsIDEsIFswLCAxMjgs
MCwyNTVdKTsKIHBpeGVsU2hvdWxkQmUoOSwgOSwgWzAsIDEyOCwwLDI1NV0pOwogCiAKLXNob3Vs
ZFRocm93KCJjb250ZXh0LnB1dEltYWdlRGF0YSh7fSwgMCwgMCkiLCAiJ0Vycm9yOiBUWVBFX01J
U01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNyciKTsKK3Nob3VsZFRocm93KCJjb250ZXh0LnB1
dEltYWdlRGF0YSh7fSwgMCwgMCkiLCAiJ1R5cGVFcnJvcjogVHlwZSBlcnJvciciKTsKIHNob3Vs
ZFRocm93KCJjb250ZXh0LnB1dEltYWdlRGF0YShidWZmZXIsIE5hTiwgMCwgMCwgMCwgMCwgMCki
LCAiJ0Vycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5JyIpOwogc2hvdWxk
VGhyb3coImNvbnRleHQucHV0SW1hZ2VEYXRhKGJ1ZmZlciwgMCwgTmFOLCAwLCAwLCAwLCAwKSIs
ICInRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDknIik7CiBzaG91bGRU
aHJvdygiY29udGV4dC5wdXRJbWFnZURhdGEoYnVmZmVyLCAwLCAwLCBOYU4sIDAsIDAsIDApIiwg
IidFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOSciKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112481</attachid>
            <date>2011-10-26 04:52:13 -0700</date>
            <delta_ts>2011-10-26 10:35:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70816-20111026155211.patch</filename>
            <type>text/plain</type>
            <size>17941</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg0NDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDRjMzdlZjZjMzUzYjIy
YWIxODNjN2VkY2Q4YTg4YzVjMTY3MDVmLi5lMzljYjlmYzhhM2E1ZTMwZDMxOTU4Yzc3MTU4NWM1
YzAzNmFjODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMjYgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBvcHRpb25hbCBwYXJhbWV0ZXJzIGluIHRoZSBtaWRkbGUgaW4gSURMcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW9uYWwgcGFyYW1ldGVycyBp
biB0aGUgbWlkZGxlIGFyZSBwcm9oaWJpdGVkIGJ5IFdlYklETCBzcGVjLgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhl
YWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjayk6CisgICAgICAgIChHZW5l
cmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2Jq
SW50ZXJuYWw6Om1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJnc0NhbGxi
YWNrKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRs
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMS0xMC0yNiAgQmVuIFdlbGxz
ICA8YmVud2VsbHNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENhbnZhcyBkcmF3SW1hZ2Ugd2l0
aCBTb3VyY2VJbiwgRGVzdGluYXRpb25JbiwgU291cmNlT3V0LCBEZXN0aW5hdGlvbkF0b3AgYW5k
IENvcHkgaGF2ZSBlcnJvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNDAzNzUxNDdlYTJkMjYwY2NkYmYxZWY5NGE3MWQ4
ZjkwN2E5NTc4Ny4uMzQ1YjBhNzQ2ODg0NzYzM2IxMjZmMTU5NzhkODczNDAzZTg0NTUwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTkwOCwxMCArOTA4LDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgkbnVt
Q3VzdG9tRnVuY3Rpb25zID4gMCkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG4g
ICAgLy8gQ3VzdG9tIGZ1bmN0aW9uc1xuIik7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9u
IChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NDdXN0b20ifSkgewotICAgICAgICAg
ICAgICAgIG15ICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50YXRpb25GdW5jdGlvbiJ9IHx8ICRj
b2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKLSAg
ICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSAiIC4g
JGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihKU0M6OkV4ZWNTdGF0ZSopO1xuIik7Ci0g
ICAgICAgICAgICB9CisgICAgICAgICAgICBuZXh0IHVubGVzcyAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IG9yICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tIn07CisgICAgICAgICAgICBuZXh0IGlm
ICRmdW5jdGlvbi0+e292ZXJsb2Fkc30gJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gIT0g
MTsKKyAgICAgICAgICAgIG15ICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSA9ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50YXRpb25GdW5jdGlv
biJ9IHx8ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5u
YW1lKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDOjpKU1ZhbHVl
ICIgLiAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgLiAiKEpTQzo6RXhlY1N0YXRlKik7XG4i
KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTk2MSw4ICsxOTYxLDEyIEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwogCiAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1l
ID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAiUHJvdG90eXBlRnVu
Y3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWUpOworICAgICAgICAgICAgbXkgJGlzQ3VzdG9tID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ0N1c3RvbSJ9OworICAgICAgICAgICAgbXkgJGlzT3Zl
cmxvYWRlZCA9ICRmdW5jdGlvbi0+e292ZXJsb2Fkc30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9h
ZHN9fSA+IDE7CisKKyAgICAgICAgICAgIG5leHQgaWYgJGlzQ3VzdG9tICYmICRpc092ZXJsb2Fk
ZWQgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwogCi0gICAgICAgICAgICBpZiAo
JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfSAmJiBAeyRmdW5jdGlvbi0+e292ZXJsb2Fkc319ID4gMSkg
eworICAgICAgICAgICAgaWYgKCEkaXNDdXN0b20gJiYgJGlzT3ZlcmxvYWRlZCkgewogICAgICAg
ICAgICAgICAgICMgQXBwZW5kIGEgbnVtYmVyIHRvIGFuIG92ZXJsb2FkZWQgbWV0aG9kJ3MgbmFt
ZSB0byBtYWtlIGl0IHVuaXF1ZToKICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gJGZ1
bmN0aW9uTmFtZSAuICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9OwogICAgICAgICAgICAgICAg
ICMgTWFrZSB0aGlzIGZ1bmN0aW9uIHN0YXRpYyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncywg
c2luY2Ugd2UKQEAgLTIwMDUsNyArMjAwOSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tIn0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0ND
dXN0b20ifSkgeworICAgICAgICAgICAgaWYgKCRpc0N1c3RvbSkgewogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhp
cy0+IiAuICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSAuICIoZXhlYykpO1xuIik7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICRpbXBsVHlwZSogaW1wID0gc3RhdGljX2Nhc3Q8JGltcGxUeXBlKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTtcbiIpOwpAQCAtMjA0Miw3ICsyMDQ2LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCi0gICAgICAg
ICAgICBpZiAoJGZ1bmN0aW9uLT57b3ZlcmxvYWRzfSAmJiBAeyRmdW5jdGlvbi0+e292ZXJsb2Fk
c319ID4gMSAmJiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA9PSBAeyRmdW5jdGlvbi0+e292
ZXJsb2Fkc319KSB7CisgICAgICAgICAgICBpZiAoISRpc0N1c3RvbSAmJiAkaXNPdmVybG9hZGVk
ICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID09IEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRz
fX0pIHsKICAgICAgICAgICAgICAgICAjIEdlbmVyYXRlIGEgZnVuY3Rpb24gZGlzcGF0Y2hpbmcg
Y2FsbCB0byB0aGUgcmVzdCBvZiB0aGUgb3ZlcmxvYWRzLgogICAgICAgICAgICAgICAgIEdlbmVy
YXRlT3ZlcmxvYWRlZFByb3RvdHlwZUZ1bmN0aW9uKCRmdW5jdGlvbiwgJGRhdGFOb2RlLCAkaW1w
bENsYXNzTmFtZSk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDY4MDNmYzE4YzQ0YzNiZjMxZDY4
YjM5NGIzZGRlMDdhNWFhZjg3OTEuLjE4ZTVhNzhlY2RmMjZjYTIyZWYwZjYwMGMzMjZiNWQ1NjA0
YzUxZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCkBAIC0yNjQsNiArMjY0LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAg
IyBDb3B5IGNvbnRlbnRzIG9mIHBhcmVudCBjbGFzc2VzIGV4Y2VwdCB0aGUgZmlyc3QgcGFyZW50
IG9yIGlmIGl0IGlzCiAgICAgIyBFdmVudFRhcmdldC4KICAgICAkY29kZUdlbmVyYXRvci0+QWRk
TWV0aG9kc0NvbnN0YW50c0FuZEF0dHJpYnV0ZXNGcm9tUGFyZW50Q2xhc3NlcygkZGF0YU5vZGUs
IFxAYWxsUGFyZW50cywgMSk7CisgICAgJGNvZGVHZW5lcmF0b3ItPkxpbmtPdmVybG9hZGVkRnVu
Y3Rpb25zKCRkYXRhTm9kZSk7CiAKICAgICBteSAkaGFzRGVwZW5kZW50TGlmZXRpbWUgPSAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOERlcGVuZGVudExpZmV0aW1lIn0gfHwgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0gfHwgJGNsYXNz
TmFtZSA9fiAvU1ZHLzsKICAgICBpZiAoISRoYXNEZXBlbmRlbnRMaWZldGltZSkgewpAQCAtMzcx
LDcgKzM3Miw3IEBAIEVORAogICAgICAgICBteSAkbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5uYW1lOwogICAgICAgICBteSAkYXR0ckV4dCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXM7CiAKLSAgICAgICAgaWYgKCRhdHRyRXh0LT57IkN1c3RvbSJ9IHx8ICRh
dHRyRXh0LT57IlY4Q3VzdG9tIn0pIHsKKyAgICAgICAgaWYgKCgkYXR0ckV4dC0+eyJDdXN0b20i
fSB8fCAkYXR0ckV4dC0+eyJWOEN1c3RvbSJ9KSAmJiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4
fSA9PSAxKSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7CiAgICAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke25hbWV9Q2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYpOwogRU5ECkBAIC0xMzgxLDYgKzEzODIsMTcgQEAgc3ViIEdlbmVyYXRlQXJndW1l
bnRzQ291bnRDaGVjawogICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OwogICAgIG15ICRkYXRhTm9k
ZSA9IHNoaWZ0OwogCisgICAgbXkgJG51bU1hbmRhdG9yeVBhcmFtcyA9IDA7CisgICAgbXkgJG9w
dGlvbmFsU2VlbiA9IDA7CisgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfSkgeworICAgICAgICBpZiAoJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0
aW9uYWwifSkgeworICAgICAgICAgICAgJG9wdGlvbmFsU2VlbiA9IDE7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBkaWUgIkFuIGFyZ3VtZW50IG11c3Qgbm90IGJlIGRlY2xhcmVkIHRv
IGJlIG9wdGlvbmFsIHVubGVzcyBhbGwgc3Vic2VxdWVudCBhcmd1bWVudHMgdG8gdGhlIG9wZXJh
dGlvbiBhcmUgYWxzbyBvcHRpb25hbC4iIGlmICRvcHRpb25hbFNlZW47CisgICAgICAgICAgICAk
bnVtTWFuZGF0b3J5UGFyYW1zKys7CisgICAgICAgIH0KKyAgICB9CisKICAgICBteSAkYXJndW1l
bnRzQ291bnRDaGVja1N0cmluZyA9ICIiOwogICAgIG15ICRyZXF1aXJlc0FsbEFyZ3VtZW50czsK
ICAgICBteSAkcmVxdWlyZXNBbGxBcmd1bWVudHNEZWZhdWx0ID0gIiI7CkBAIC0xMzg4LDIyICsx
NDAwLDEyIEBAIHN1YiBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2sKICAgICAgICAgJHJlcXVp
cmVzQWxsQXJndW1lbnRzRGVmYXVsdCA9ICJSYWlzZSI7CiAgICAgfQogICAgICRyZXF1aXJlc0Fs
bEFyZ3VtZW50cyA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
UmVxdWlyZXNBbGxBcmd1bWVudHMifSB8fCAkcmVxdWlyZXNBbGxBcmd1bWVudHNEZWZhdWx0Owot
ICAgIGlmICgkcmVxdWlyZXNBbGxBcmd1bWVudHMpIHsKLSAgICAgICAgbXkgJG51bU1hbmRhdG9y
eVBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKLSAgICAgICAgZm9yZWFjaCBteSAk
cGFyYW0gKHJldmVyc2UoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSkgewotICAgICAgICAgICAg
aWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9wdGlvbmFsIn0pIHsKLSAgICAgICAg
ICAgICAgICAkbnVtTWFuZGF0b3J5UGFyYW1zLS07Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIGxhc3Q7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KCRudW1NYW5kYXRvcnlQYXJhbXMgPj0gMSkgewotICAgICAgICAgICAgJGFyZ3VtZW50c0NvdW50
Q2hlY2tTdHJpbmcgLj0gIiAgICBpZiAoYXJncy5MZW5ndGgoKSA8ICRudW1NYW5kYXRvcnlQYXJh
bXMpXG4iOwotICAgICAgICAgICAgaWYgKCRyZXF1aXJlc0FsbEFyZ3VtZW50cyBlcSAiUmFpc2Ui
KSB7Ci0gICAgICAgICAgICAgICAgJGFyZ3VtZW50c0NvdW50Q2hlY2tTdHJpbmcgLj0gIiAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoXCJOb3QgZW5vdWdoIGFyZ3VtZW50c1wiLCBWOFByb3h5OjpU
eXBlRXJyb3IpO1xuIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGFy
Z3VtZW50c0NvdW50Q2hlY2tTdHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6
OlZhbHVlPigpO1xuIjsKLSAgICAgICAgICAgIH0KKyAgICBpZiAoJHJlcXVpcmVzQWxsQXJndW1l
bnRzICYmICRudW1NYW5kYXRvcnlQYXJhbXMgPj0gMSkgeworICAgICAgICAkYXJndW1lbnRzQ291
bnRDaGVja1N0cmluZyAuPSAiICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgJG51bU1hbmRhdG9yeVBh
cmFtcylcbiI7CisgICAgICAgIGlmICgkcmVxdWlyZXNBbGxBcmd1bWVudHMgZXEgIlJhaXNlIikg
eworICAgICAgICAgICAgJGFyZ3VtZW50c0NvdW50Q2hlY2tTdHJpbmcgLj0gIiAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoXCJOb3QgZW5vdWdoIGFyZ3VtZW50c1wiLCBWOFByb3h5OjpUeXBlRXJy
b3IpO1xuIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRhcmd1bWVudHNDb3VudENo
ZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTtcbiI7
CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuICRhcmd1bWVudHNDb3VudENoZWNrU3RyaW5n
OwpAQCAtMjAwMiwxMyArMjAwNCwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yR2V0dGVyKCRpbXBsQ2xhc3NOYW1lKTsKICAgICB9CiAK
LSAgICAkY29kZUdlbmVyYXRvci0+TGlua092ZXJsb2FkZWRGdW5jdGlvbnMoJGRhdGFOb2RlKTsK
LQogICAgIG15ICRpbmRleGVyOwogICAgIG15ICRuYW1lZFByb3BlcnR5R2V0dGVyOwogICAgICMg
R2VuZXJhdGUgbWV0aG9kcyBmb3IgZnVuY3Rpb25zLgogICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9u
IChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICBpZiAoISgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhDdXN0b20ifSkpIHsKKyAgICAgICAgbXkg
JGlzQ3VzdG9tID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4
Q3VzdG9tIn07CisgICAgICAgIGlmICghJGlzQ3VzdG9tKSB7CiAgICAgICAgICAgICBHZW5lcmF0
ZUZ1bmN0aW9uQ2FsbGJhY2soJGZ1bmN0aW9uLCAkZGF0YU5vZGUsICRpbXBsQ2xhc3NOYW1lKTsK
ICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDEgJiYgJGZ1bmN0
aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSkgewogICAg
ICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uQ2FsbGJhY2soJGZ1bmN0aW9u
LCAkZGF0YU5vZGUsICRpbXBsQ2xhc3NOYW1lKTsKQEAgLTIwMjcsNyArMjAyOCw5IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICMgZ2VuZXJhdGUgYW4gYWNjZXNzIGdldHRl
ciB0aGF0IHJldHVybnMgZGlmZmVyZW50IGZ1bmN0aW9uIG9iamVjdHMKICAgICAgICAgIyBmb3Ig
ZGlmZmVyZW50IGNhbGxpbmcgY29udGV4dC4KICAgICAgICAgaWYgKCgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDaGVja0RvbWFpblNlY3VyaXR5In0gfHwgKCRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciKSkgJiYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJEb05vdENoZWNrRG9tYWluU2VjdXJpdHkifSkgewotICAgICAgICAgICAgR2VuZXJh
dGVEb21haW5TYWZlRnVuY3Rpb25HZXR0ZXIoJGZ1bmN0aW9uLCAkaW1wbENsYXNzTmFtZSk7Cisg
ICAgICAgICAgICBpZiAoISRpc0N1c3RvbSB8fCAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA9
PSAxKSB7CisgICAgICAgICAgICAgICAgR2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25HZXR0ZXIo
JGZ1bmN0aW9uLCAkaW1wbENsYXNzTmFtZSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHAKaW5kZXggODkxNjk1YzM4YWMyN2Q4ZGIxZmI0MWIzZjFmODIzOTZiYmJk
ZTE5MS4uMjIzZjFhYzkyZjg1MzJiOWYyMTA1OTc5YWJhNjAzZDc4ODM0NTRhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAKQEAgLTE1NzAsNiArMTU3MCwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQQogICAgIGlu
dCBvcHQxKGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICBpZiAoYXJnc0NvdW50IDw9IDIpIHsKKyAgICAgICAgaW1wLT5tZXRob2RXaXRo
Tm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3Mobm9uT3B0LCBvcHQxKTsKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICB9CisKICAgICBpbnQg
b3B0MihleGVjLT5hcmd1bWVudCgyKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKaW5kZXggNzViNDlhYmMyODQzMTVlMzE1NzBiOTY5YmIxNTljZDJhMTg3YzlmYi4uODI5MDUw
YmVlNDg2ZDk4ODIwNmI1MzRmYzI5MTQ5OGYxOGY5M2Q2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMTE5LDcgKzExOSw3IEBA
IG1vZHVsZSB0ZXN0IHsKICAgICAgICAgLy8gJ09wdGlvbmFsJyBleHRlbmRlZCBhdHRyaWJ1dGUK
ICAgICAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxBcmcoaW4gW09wdGlvbmFsXSBsb25n
IG9wdCk7CiAgICAgICAgIHZvaWQgICAgbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9u
YWxBcmcoaW4gbG9uZyBub25PcHQsIGluIFtPcHRpb25hbF0gbG9uZyBvcHQpOwotICAgICAgICB2
b2lkICAgIG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhpbiBsb25n
IG5vbk9wdCwgaW4gW09wdGlvbmFsXSBsb25nIG9wdDEsIGluIGxvbmcgb3B0Mik7CisgICAgICAg
IHZvaWQgICAgbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKGluIGxv
bmcgbm9uT3B0LCBpbiBbT3B0aW9uYWxdIGxvbmcgb3B0MSwgaW4gW09wdGlvbmFsXSBsb25nIG9w
dDIpOwogCiAjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMpCiAg
ICAgICAgIC8vICdDYWxsYmFjaycgZXh0ZW5kZWQgYXR0cmlidXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDgz
YTQ3OGM4YTExZmRkYWQyZTY2YmViOWZiZjA3Njc4NTE2MmY3YWIuLmZmOTIwZjlkMTEyYmE0NjMx
N2NkNzBkYTJhY2U0NmEwNzhmZWE5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0xMDQyLDYgKzEwNDIsMTAg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdB
bmRUd29PcHRpb25hbEFyZ3NDYWxsYmFjaygKICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6
OlZhbHVlPigpOwogICAgIH0KICAgICBFWENFUFRJT05fQkxPQ0soaW50LCBvcHQxLCB0b0ludDMy
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIE1pc3NpbmdJc1VuZGVmaW5lZCkpKTsK
KyAgICBpZiAoYXJncy5MZW5ndGgoKSA8PSAyKSB7CisgICAgICAgIGltcC0+bWV0aG9kV2l0aE5v
bk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKG5vbk9wdCwgb3B0MSk7CisgICAgICAgIHJl
dHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICB9CiAgICAgRVhDRVBUSU9OX0JMT0NL
KGludCwgb3B0MiwgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBNaXNz
aW5nSXNVbmRlZmluZWQpKSk7CiAgICAgaW1wLT5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRU
d29PcHRpb25hbEFyZ3Mobm9uT3B0LCBvcHQxLCBvcHQyKTsKICAgICByZXR1cm4gdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAppbmRleCA2MmQ5ZTU2MjUyNWQ0OWEzYzI2NjJl
YmU0MzA1NTJmZTg1OTA5NGFmLi5kNTM5M2NlZGVkMjBmMjEyNThkZDFlMzg3N2QwY2Q3NWJlNGI4
OGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5pZGwKQEAgLTE1Nyw3ICsxNTcsOSBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIENhbnZhc1BhdHRlcm4g
Y3JlYXRlUGF0dGVybihpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBpbiBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyByZXBldGl0aW9uVHlwZSkKICAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBwdXRJbWFnZURhdGEoaW4gSW1hZ2VEYXRh
IGltYWdlZGF0YSwgaW4gZmxvYXQgZHgsIGluIGZsb2F0IGR5LCBpbiBbT3B0aW9uYWxdIGZsb2F0
IGRpcnR5WCwgaW4gZmxvYXQgZGlydHlZLCBpbiBmbG9hdCBkaXJ0eVdpZHRoLCBpbiBmbG9hdCBk
aXJ0eUhlaWdodCkKKyAgICAgICAgdm9pZCBwdXRJbWFnZURhdGEoaW4gSW1hZ2VEYXRhIGltYWdl
ZGF0YSwgaW4gZmxvYXQgZHgsIGluIGZsb2F0IGR5KQorICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIHZvaWQgcHV0SW1hZ2VEYXRhKGluIEltYWdlRGF0YSBpbWFnZWRh
dGEsIGluIGZsb2F0IGR4LCBpbiBmbG9hdCBkeSwgaW4gZmxvYXQgZGlydHlYLCBpbiBmbG9hdCBk
aXJ0eVksIGluIGZsb2F0IGRpcnR5V2lkdGgsIGluIGZsb2F0IGRpcnR5SGVpZ2h0KQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEltYWdlRGF0YSBjcmVhdGVJbWFn
ZURhdGEoaW4gSW1hZ2VEYXRhIGltYWdlZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA0ZmEyZDA3ZjYyOTAxMjMw
MGU5NzBlYWQ2YWJlZWEzZWYzMWU2MzUwLi43MzIxMDBjODNlNjBkYmFhNzBjYmQzMzhjZjJhZTA1
NDQ2MmQzMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0yMTIsOSArMjEyLDE0
IEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIC8vIGNyb3NzLWRvY3VtZW50IG1lc3NhZ2lu
ZwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQ
VAotICAgICAgICBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5LCBDdXN0b21dIHZvaWQgcG9zdE1l
c3NhZ2UoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIG1lc3NhZ2UsIGluIFtPcHRpb25hbF0gQXJy
YXkgbWVzc2FnZVBvcnRzLCBpbiBET01TdHJpbmcgdGFyZ2V0T3JpZ2luKQorICAgICAgICBbRG9O
b3RDaGVja0RvbWFpblNlY3VyaXR5LCBDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gU2VyaWFs
aXplZFNjcmlwdFZhbHVlIG1lc3NhZ2UsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0RvTm90Q2hlY2tEb21haW5T
ZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHdlYmtpdFBvc3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBtZXNzYWdlLCBpbiBbT3B0aW9uYWxdIEFycmF5IHRyYW5zZmVyTGlzdCwgaW4gRE9N
U3RyaW5nIHRhcmdldE9yaWdpbikKKyAgICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eSwg
Q3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdl
LCBpbiBBcnJheSBtZXNzYWdlUG9ydHMsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCisgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBbRG9Ob3RDaGVja0RvbWFp
blNlY3VyaXR5LCBDdXN0b21dIHZvaWQgd2Via2l0UG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIG1lc3NhZ2UsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCisgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0
eSwgQ3VzdG9tXSB2b2lkIHdlYmtpdFBvc3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSBtZXNzYWdlLCBpbiBBcnJheSB0cmFuc2Zlckxpc3QsIGluIERPTVN0cmluZyB0YXJnZXRPcmln
aW4pCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbHNlCiAgICAgICAgIC8v
IFRoZXJlJ3Mgbm8gZ29vZCB3YXkgdG8gZXhwb3NlIGFuIGFycmF5IHZpYSB0aGUgT2JqQyBiaW5k
aW5ncywgc28gZm9yIG5vdyBqdXN0IGFsbG93IHBhc3NpbmcgaW4gYSBzaW5nbGUgcG9ydC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA5YWY3Y2VmYjUwN2U4MWM0NjEzOTJlM2EyNzIwNmFlMmJlYzMxYmNhLi4wNGFiYTcwMTZj
NzBlY2QyMjdlMjYxMzhjNzdjOGUxZTJiZmNkZDI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTEtMTAtMjYgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgR2V0IHJpZCBvZiBvcHRpb25hbCBwYXJhbWV0ZXJzIGluIHRoZSBtaWRkbGUgaW4gSURM
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODE2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW9u
YWwgcGFyYW1ldGVycyBpbiB0aGUgbWlkZGxlIGFyZSBwcm9oaWJpdGVkIGJ5IFdlYklETCBzcGVj
LgorCisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS5qczoKKwogMjAx
MS0xMC0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBDbGVh
bnVwIENocm9taXVtIHRlc3QgZXhwZWN0YXRpb24uIFRoZXNlIHRlc3RzIHdlcmUgZXJyb25lb3Vz
bHkgbWFya2VkIGFzIHRpbWluZyBvdXQgaW50ZXJtaXR0ZW50bHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1wdXRJbWFnZURhdGEtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS1leHBlY3RlZC50eHQKaW5k
ZXggZDBhNTk1NzA2OTJiMjU3NzM1ZDdiOWRjNWFiNTNhNGQ0MTQxM2QyMC4uMjM3NDliYzk2NTg4
YmU5MThhZDk5MzMzOTIzODBkOTJmYmIwMzdiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS1leHBlY3RlZC50eHQKQEAgLTE0NCw3
ICsxNDQsNyBAQCBQQVNTIGdldFBpeGVsKDEsMSkgaXMgWzAsMTI4LDAsMjU1XQogUEFTUyBnZXRQ
aXhlbCg5LDkpIGlzIFswLDEyOCwwLDI1NV0KIFBBU1MgZ2V0UGl4ZWwoMSwxKSBpcyBbMCwxMjgs
MCwyNTVdCiBQQVNTIGdldFBpeGVsKDksOSkgaXMgWzAsMTI4LDAsMjU1XQotUEFTUyBjb250ZXh0
LnB1dEltYWdlRGF0YSh7fSwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01B
VENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgY29udGV4dC5wdXRJbWFnZURhdGEobnVs
bCwgMCwgMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4
Y2VwdGlvbiAxNy4KIFBBU1MgY29udGV4dC5wdXRJbWFnZURhdGEoYnVmZmVyLCBOYU4sIDAsIDAs
IDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBF
eGNlcHRpb24gOS4KIFBBU1MgY29udGV4dC5wdXRJbWFnZURhdGEoYnVmZmVyLCAwLCBOYU4sIDAs
IDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBF
eGNlcHRpb24gOS4KIFBBU1MgY29udGV4dC5wdXRJbWFnZURhdGEoYnVmZmVyLCAwLCAwLCBOYU4s
IDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBF
eGNlcHRpb24gOS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1w
dXRJbWFnZURhdGEuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtcHV0SW1hZ2VE
YXRhLmpzCmluZGV4IGYzMDRmOGM2YTcwM2I2MWUyMGM4YzhlZDkxZDJiODk4NjVlYzZhOTUuLjg0
NjhiYjVmZGJmZTJjZDlmMDVmY2M2ZWI4N2EzZDliM2Y4MmY0ODMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1wdXRJbWFnZURhdGEuanMKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS5qcwpAQCAtMjAxLDcgKzIwMSw3IEBA
IHBpeGVsU2hvdWxkQmUoMSwgMSwgWzAsIDEyOCwwLDI1NV0pOwogcGl4ZWxTaG91bGRCZSg5LCA5
LCBbMCwgMTI4LDAsMjU1XSk7CiAKIAotc2hvdWxkVGhyb3coImNvbnRleHQucHV0SW1hZ2VEYXRh
KHt9LCAwLCAwKSIsICInRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3
JyIpOworc2hvdWxkVGhyb3coImNvbnRleHQucHV0SW1hZ2VEYXRhKG51bGwsIDAsIDApIiwgIidF
cnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcnIik7CiBzaG91bGRUaHJv
dygiY29udGV4dC5wdXRJbWFnZURhdGEoYnVmZmVyLCBOYU4sIDAsIDAsIDAsIDAsIDApIiwgIidF
cnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOSciKTsKIHNob3VsZFRocm93
KCJjb250ZXh0LnB1dEltYWdlRGF0YShidWZmZXIsIDAsIE5hTiwgMCwgMCwgMCwgMCkiLCAiJ0Vy
cm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5JyIpOwogc2hvdWxkVGhyb3co
ImNvbnRleHQucHV0SW1hZ2VEYXRhKGJ1ZmZlciwgMCwgMCwgTmFOLCAwLCAwLCAwKSIsICInRXJy
b3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDknIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112562</attachid>
            <date>2011-10-26 10:35:25 -0700</date>
            <delta_ts>2011-10-27 03:19:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70816-20111026213523.patch</filename>
            <type>text/plain</type>
            <size>17506</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg0NDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDRjMzdlZjZjMzUzYjIy
YWIxODNjN2VkY2Q4YTg4YzVjMTY3MDVmLi5iNGNmNGEzMGU2MmVjNGRjOTI3NzllM2M1MWRkOTAz
Nzg4OTNkZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMjYgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBvcHRpb25hbCBwYXJhbWV0ZXJzIGluIHRoZSBtaWRkbGUgaW4gSURMcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW9uYWwgcGFyYW1ldGVycyBp
biB0aGUgbWlkZGxlIGFyZSBwcm9oaWJpdGVkIGJ5IFdlYklETCBzcGVjLgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhl
YWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjayk6CisgICAgICAgIChHZW5l
cmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2Jq
SW50ZXJuYWw6Om1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJnc0NhbGxi
YWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OnB1dEltYWdlRGF0YUNhbGxiYWNrKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoK
KwogMjAxMS0xMC0yNiAgQmVuIFdlbGxzICA8YmVud2VsbHNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIENhbnZhcyBkcmF3SW1hZ2Ugd2l0aCBTb3VyY2VJbiwgRGVzdGluYXRpb25JbiwgU291cmNl
T3V0LCBEZXN0aW5hdGlvbkF0b3AgYW5kIENvcHkgaGF2ZSBlcnJvcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNDAzNzUx
NDdlYTJkMjYwY2NkYmYxZWY5NGE3MWQ4ZjkwN2E5NTc4Ny4uMzQ1YjBhNzQ2ODg0NzYzM2IxMjZm
MTU5NzhkODczNDAzZTg0NTUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTkwOCwxMCArOTA4LDEwIEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgIGlmICgkbnVtQ3VzdG9tRnVuY3Rpb25zID4gMCkgewogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiXG4gICAgLy8gQ3VzdG9tIGZ1bmN0aW9uc1xuIik7CiAgICAg
ICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewotICAg
ICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tIn0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJK
U0NDdXN0b20ifSkgewotICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbkltcGxlbWVudGF0aW9u
TmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVt
ZW50YXRpb25GdW5jdGlvbiJ9IHx8ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5uYW1lKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIEpTQzo6SlNWYWx1ZSAiIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihK
U0M6OkV4ZWNTdGF0ZSopO1xuIik7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBuZXh0IHVu
bGVzcyAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9
IG9yICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9t
In07CisgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+e292ZXJsb2Fkc30gJiYgJGZ1bmN0
aW9uLT57b3ZlcmxvYWRJbmRleH0gIT0gMTsKKyAgICAgICAgICAgIG15ICRmdW5jdGlvbkltcGxl
bWVudGF0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSW1wbGVtZW50YXRpb25GdW5jdGlvbiJ9IHx8ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgSlNDOjpKU1ZhbHVlICIgLiAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUg
LiAiKEpTQzo6RXhlY1N0YXRlKik7XG4iKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTk2MSw4
ICsxOTYxLDEyIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBBZGRJ
bmNsdWRlc0ZvclR5cGVJbkltcGwoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwogCiAgICAg
ICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNs
YXNzTmFtZSkgLiAiUHJvdG90eXBlRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOworICAgICAgICAgICAgbXkgJGlzQ3VzdG9t
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8
fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ0N1c3RvbSJ9
OworICAgICAgICAgICAgbXkgJGlzT3ZlcmxvYWRlZCA9ICRmdW5jdGlvbi0+e292ZXJsb2Fkc30g
JiYgQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSA+IDE7CisKKyAgICAgICAgICAgIG5leHQgaWYg
JGlzQ3VzdG9tICYmICRpc092ZXJsb2FkZWQgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0g
PiAxOwogCi0gICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT57b3ZlcmxvYWRzfSAmJiBAeyRmdW5j
dGlvbi0+e292ZXJsb2Fkc319ID4gMSkgeworICAgICAgICAgICAgaWYgKCEkaXNDdXN0b20gJiYg
JGlzT3ZlcmxvYWRlZCkgewogICAgICAgICAgICAgICAgICMgQXBwZW5kIGEgbnVtYmVyIHRvIGFu
IG92ZXJsb2FkZWQgbWV0aG9kJ3MgbmFtZSB0byBtYWtlIGl0IHVuaXF1ZToKICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lID0gJGZ1bmN0aW9uTmFtZSAuICRmdW5jdGlvbi0+e292ZXJsb2Fk
SW5kZXh9OwogICAgICAgICAgICAgICAgICMgTWFrZSB0aGlzIGZ1bmN0aW9uIHN0YXRpYyB0byBh
dm9pZCBjb21waWxlciB3YXJuaW5ncywgc2luY2Ugd2UKQEAgLTIwMDUsNyArMjAwOSw3IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NDdXN0b20ifSkgeworICAgICAgICAgICAgaWYgKCRpc0N1
c3RvbSkgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+IiAuICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFt
ZSAuICIoZXhlYykpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsVHlwZSogaW1wID0gc3RhdGljX2Nhc3Q8JGlt
cGxUeXBlKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOwpAQCAtMjA0Miw3ICsyMDQ2LDcgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG5cbiIpOwogCi0gICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT57b3ZlcmxvYWRzfSAm
JiBAeyRmdW5jdGlvbi0+e292ZXJsb2Fkc319ID4gMSAmJiAkZnVuY3Rpb24tPntvdmVybG9hZElu
ZGV4fSA9PSBAeyRmdW5jdGlvbi0+e292ZXJsb2Fkc319KSB7CisgICAgICAgICAgICBpZiAoISRp
c0N1c3RvbSAmJiAkaXNPdmVybG9hZGVkICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID09
IEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0pIHsKICAgICAgICAgICAgICAgICAjIEdlbmVyYXRl
IGEgZnVuY3Rpb24gZGlzcGF0Y2hpbmcgY2FsbCB0byB0aGUgcmVzdCBvZiB0aGUgb3ZlcmxvYWRz
LgogICAgICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZFByb3RvdHlwZUZ1bmN0aW9uKCRm
dW5jdGlvbiwgJGRhdGFOb2RlLCAkaW1wbENsYXNzTmFtZSk7CiAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmlu
ZGV4IDY4MDNmYzE4YzQ0YzNiZjMxZDY4YjM5NGIzZGRlMDdhNWFhZjg3OTEuLjE4ZTVhNzhlY2Rm
MjZjYTIyZWYwZjYwMGMzMjZiNWQ1NjA0YzUxZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0yNjQsNiArMjY0LDcgQEAg
c3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgIyBDb3B5IGNvbnRlbnRzIG9mIHBhcmVudCBjbGFzc2Vz
IGV4Y2VwdCB0aGUgZmlyc3QgcGFyZW50IG9yIGlmIGl0IGlzCiAgICAgIyBFdmVudFRhcmdldC4K
ICAgICAkY29kZUdlbmVyYXRvci0+QWRkTWV0aG9kc0NvbnN0YW50c0FuZEF0dHJpYnV0ZXNGcm9t
UGFyZW50Q2xhc3NlcygkZGF0YU5vZGUsIFxAYWxsUGFyZW50cywgMSk7CisgICAgJGNvZGVHZW5l
cmF0b3ItPkxpbmtPdmVybG9hZGVkRnVuY3Rpb25zKCRkYXRhTm9kZSk7CiAKICAgICBteSAkaGFz
RGVwZW5kZW50TGlmZXRpbWUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOERl
cGVuZGVudExpZmV0aW1lIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0
aXZlRE9NT2JqZWN0In0gfHwgJGNsYXNzTmFtZSA9fiAvU1ZHLzsKICAgICBpZiAoISRoYXNEZXBl
bmRlbnRMaWZldGltZSkgewpAQCAtMzcxLDcgKzM3Miw3IEBAIEVORAogICAgICAgICBteSAkbmFt
ZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICBteSAkYXR0ckV4dCA9ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXM7CiAKLSAgICAgICAgaWYgKCRh
dHRyRXh0LT57IkN1c3RvbSJ9IHx8ICRhdHRyRXh0LT57IlY4Q3VzdG9tIn0pIHsKKyAgICAgICAg
aWYgKCgkYXR0ckV4dC0+eyJDdXN0b20ifSB8fCAkYXR0ckV4dC0+eyJWOEN1c3RvbSJ9KSAmJiAk
ZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA9PSAxKSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCA8PEVORCk7CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke25h
bWV9Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogRU5ECkBAIC0xMzgxLDYgKzEzODIs
MTcgQEAgc3ViIEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjawogICAgIG15ICRmdW5jdGlvbiA9
IHNoaWZ0OwogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogCisgICAgbXkgJG51bU1hbmRhdG9y
eVBhcmFtcyA9IDA7CisgICAgbXkgJG9wdGlvbmFsU2VlbiA9IDA7CisgICAgZm9yZWFjaCBteSAk
cGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICBpZiAoJHBhcmFtLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9uYWwifSkgeworICAgICAgICAgICAgJG9wdGlvbmFs
U2VlbiA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkaWUgIkFuIGFyZ3VtZW50
IG11c3Qgbm90IGJlIGRlY2xhcmVkIHRvIGJlIG9wdGlvbmFsIHVubGVzcyBhbGwgc3Vic2VxdWVu
dCBhcmd1bWVudHMgdG8gdGhlIG9wZXJhdGlvbiBhcmUgYWxzbyBvcHRpb25hbC4iIGlmICRvcHRp
b25hbFNlZW47CisgICAgICAgICAgICAkbnVtTWFuZGF0b3J5UGFyYW1zKys7CisgICAgICAgIH0K
KyAgICB9CisKICAgICBteSAkYXJndW1lbnRzQ291bnRDaGVja1N0cmluZyA9ICIiOwogICAgIG15
ICRyZXF1aXJlc0FsbEFyZ3VtZW50czsKICAgICBteSAkcmVxdWlyZXNBbGxBcmd1bWVudHNEZWZh
dWx0ID0gIiI7CkBAIC0xMzg4LDIyICsxNDAwLDEyIEBAIHN1YiBHZW5lcmF0ZUFyZ3VtZW50c0Nv
dW50Q2hlY2sKICAgICAgICAgJHJlcXVpcmVzQWxsQXJndW1lbnRzRGVmYXVsdCA9ICJSYWlzZSI7
CiAgICAgfQogICAgICRyZXF1aXJlc0FsbEFyZ3VtZW50cyA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVxdWlyZXNBbGxBcmd1bWVudHMifSB8fCAkcmVxdWly
ZXNBbGxBcmd1bWVudHNEZWZhdWx0OwotICAgIGlmICgkcmVxdWlyZXNBbGxBcmd1bWVudHMpIHsK
LSAgICAgICAgbXkgJG51bU1hbmRhdG9yeVBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJz
fTsKLSAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKHJldmVyc2UoQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9KSkgewotICAgICAgICAgICAgaWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ik9wdGlvbmFsIn0pIHsKLSAgICAgICAgICAgICAgICAkbnVtTWFuZGF0b3J5UGFyYW1zLS07Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGxhc3Q7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCRudW1NYW5kYXRvcnlQYXJhbXMgPj0gMSkgewotICAg
ICAgICAgICAgJGFyZ3VtZW50c0NvdW50Q2hlY2tTdHJpbmcgLj0gIiAgICBpZiAoYXJncy5MZW5n
dGgoKSA8ICRudW1NYW5kYXRvcnlQYXJhbXMpXG4iOwotICAgICAgICAgICAgaWYgKCRyZXF1aXJl
c0FsbEFyZ3VtZW50cyBlcSAiUmFpc2UiKSB7Ci0gICAgICAgICAgICAgICAgJGFyZ3VtZW50c0Nv
dW50Q2hlY2tTdHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXCJOb3QgZW5vdWdo
IGFyZ3VtZW50c1wiLCBWOFByb3h5OjpUeXBlRXJyb3IpO1xuIjsKLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgJGFyZ3VtZW50c0NvdW50Q2hlY2tTdHJpbmcgLj0gIiAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpO1xuIjsKLSAgICAgICAgICAgIH0KKyAg
ICBpZiAoJHJlcXVpcmVzQWxsQXJndW1lbnRzICYmICRudW1NYW5kYXRvcnlQYXJhbXMgPj0gMSkg
eworICAgICAgICAkYXJndW1lbnRzQ291bnRDaGVja1N0cmluZyAuPSAiICAgIGlmIChhcmdzLkxl
bmd0aCgpIDwgJG51bU1hbmRhdG9yeVBhcmFtcylcbiI7CisgICAgICAgIGlmICgkcmVxdWlyZXNB
bGxBcmd1bWVudHMgZXEgIlJhaXNlIikgeworICAgICAgICAgICAgJGFyZ3VtZW50c0NvdW50Q2hl
Y2tTdHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXCJOb3QgZW5vdWdoIGFyZ3Vt
ZW50c1wiLCBWOFByb3h5OjpUeXBlRXJyb3IpO1xuIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICRhcmd1bWVudHNDb3VudENoZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4oKTtcbiI7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuICRh
cmd1bWVudHNDb3VudENoZWNrU3RyaW5nOwpAQCAtMjAwMiwxMyArMjAwNCwxMiBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yR2V0dGVyKCRp
bXBsQ2xhc3NOYW1lKTsKICAgICB9CiAKLSAgICAkY29kZUdlbmVyYXRvci0+TGlua092ZXJsb2Fk
ZWRGdW5jdGlvbnMoJGRhdGFOb2RlKTsKLQogICAgIG15ICRpbmRleGVyOwogICAgIG15ICRuYW1l
ZFByb3BlcnR5R2V0dGVyOwogICAgICMgR2VuZXJhdGUgbWV0aG9kcyBmb3IgZnVuY3Rpb25zLgog
ICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewotICAg
ICAgICBpZiAoISgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbSJ9IHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhD
dXN0b20ifSkpIHsKKyAgICAgICAgbXkgJGlzQ3VzdG9tID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4Q3VzdG9tIn07CisgICAgICAgIGlmICghJGlzQ3VzdG9t
KSB7CiAgICAgICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2soJGZ1bmN0aW9uLCAkZGF0
YU5vZGUsICRpbXBsQ2xhc3NOYW1lKTsKICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPntvdmVy
bG9hZEluZGV4fSA+IDEgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVuY3Rp
b24tPntvdmVybG9hZHN9fSkgewogICAgICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1
bmN0aW9uQ2FsbGJhY2soJGZ1bmN0aW9uLCAkZGF0YU5vZGUsICRpbXBsQ2xhc3NOYW1lKTsKQEAg
LTIwMjcsNyArMjAyOCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICMg
Z2VuZXJhdGUgYW4gYWNjZXNzIGdldHRlciB0aGF0IHJldHVybnMgZGlmZmVyZW50IGZ1bmN0aW9u
IG9iamVjdHMKICAgICAgICAgIyBmb3IgZGlmZmVyZW50IGNhbGxpbmcgY29udGV4dC4KICAgICAg
ICAgaWYgKCgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja0RvbWFpblNlY3Vy
aXR5In0gfHwgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSkgJiYgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrRG9tYWluU2VjdXJpdHki
fSkgewotICAgICAgICAgICAgR2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25HZXR0ZXIoJGZ1bmN0
aW9uLCAkaW1wbENsYXNzTmFtZSk7CisgICAgICAgICAgICBpZiAoISRpc0N1c3RvbSB8fCAkZnVu
Y3Rpb24tPntvdmVybG9hZEluZGV4fSA9PSAxKSB7CisgICAgICAgICAgICAgICAgR2VuZXJhdGVE
b21haW5TYWZlRnVuY3Rpb25HZXR0ZXIoJGZ1bmN0aW9uLCAkaW1wbENsYXNzTmFtZSk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggODkxNjk1YzM4YWMy
N2Q4ZGIxZmI0MWIzZjFmODIzOTZiYmJkZTE5MS4uMjIzZjFhYzkyZjg1MzJiOWYyMTA1OTc5YWJh
NjAzZDc4ODM0NTRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE1NzAsNiArMTU3MCwxMSBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE5vbk9wdGlvbmFsQXJnQQogICAgIGludCBvcHQxKGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIo
ZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBpZiAoYXJnc0NvdW50IDw9IDIpIHsK
KyAgICAgICAgaW1wLT5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3Mo
bm9uT3B0LCBvcHQxKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICB9CisKICAgICBpbnQgb3B0MihleGVjLT5hcmd1bWVudCgyKS50b0ludDMyKGV4
ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggNzViNDlhYmMyODQzMTVlMzE1NzBiOTY5
YmIxNTljZDJhMTg3YzlmYi4uODI5MDUwYmVlNDg2ZDk4ODIwNmI1MzRmYzI5MTQ5OGYxOGY5M2Q2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbApAQCAtMTE5LDcgKzExOSw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgLy8gJ09wdGlv
bmFsJyBleHRlbmRlZCBhdHRyaWJ1dGUKICAgICAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9u
YWxBcmcoaW4gW09wdGlvbmFsXSBsb25nIG9wdCk7CiAgICAgICAgIHZvaWQgICAgbWV0aG9kV2l0
aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcoaW4gbG9uZyBub25PcHQsIGluIFtPcHRpb25h
bF0gbG9uZyBvcHQpOwotICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0Fu
ZFR3b09wdGlvbmFsQXJncyhpbiBsb25nIG5vbk9wdCwgaW4gW09wdGlvbmFsXSBsb25nIG9wdDEs
IGluIGxvbmcgb3B0Mik7CisgICAgICAgIHZvaWQgICAgbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kVHdvT3B0aW9uYWxBcmdzKGluIGxvbmcgbm9uT3B0LCBpbiBbT3B0aW9uYWxdIGxvbmcgb3B0
MSwgaW4gW09wdGlvbmFsXSBsb25nIG9wdDIpOwogCiAjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8
fCBkZWZpbmVkKFRFU1RJTkdfSlMpCiAgICAgICAgIC8vICdDYWxsYmFjaycgZXh0ZW5kZWQgYXR0
cmlidXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCmluZGV4IDgzYTQ3OGM4YTExZmRkYWQyZTY2YmViOWZiZjA3Njc4NTE2
MmY3YWIuLmZmOTIwZjlkMTEyYmE0NjMxN2NkNzBkYTJhY2U0NmEwNzhmZWE5OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCkBAIC0xMDQyLDYgKzEwNDIsMTAgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBt
ZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3NDYWxsYmFjaygKICAgICAg
ICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogICAgIH0KICAgICBFWENFUFRJT05f
QkxPQ0soaW50LCBvcHQxLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEs
IE1pc3NpbmdJc1VuZGVmaW5lZCkpKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8PSAyKSB7Cisg
ICAgICAgIGltcC0+bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKG5v
bk9wdCwgb3B0MSk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAg
ICB9CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgb3B0MiwgdG9JbnQzMihNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAyLCBNaXNzaW5nSXNVbmRlZmluZWQpKSk7CiAgICAgaW1wLT5tZXRo
b2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3Mobm9uT3B0LCBvcHQxLCBvcHQy
KTsKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAppbmRleCAyZmViZDgyMDU4MTkzMGQ4Y2MxOTI0NDQ0
MTZlODQyN2VhNmYzYTg3Li4xYmI2YzA2MDNlM2RmMWJkYmE2YTk0YzZkYzczNjg1OWZjMjYzMTEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKQEAgLTcxLDYg
KzcxLDQ0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENhbnZhc1N0eWxlPiB0b0NhbnZhc1N0eWxlKHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKICAgICByZXR1cm4gMDsKIH0KIAordjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwdXRJbWFnZURhdGFDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wdXRJbWFnZURhdGEoKSIpOworCisgICAgLy8gVHdvIGZy
b21zOgorICAgIC8vICogcHV0SW1hZ2VEYXRhKEltYWdlRGF0YSwgeCwgeSkKKyAgICAvLyAqIHB1
dEltYWdlRGF0YShJbWFnZURhdGEsIHgsIHksIGRpcnR5WCwgZGlydHlZLCBkaXJ0eVdpZHRoLCBk
aXJ0eUhlaWdodCkKKyAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAzICYmIGFyZ3MuTGVuZ3RoKCkg
IT0gNykgeworICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUik7Cisg
ICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KKworICAgIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCogY29udGV4dCA9IFY4Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKworICAgIEltYWdlRGF0YSogaW1hZ2VEYXRh
ID0gMDsKKworICAgIC8vIE5lZWQgdG8gY2hlY2sgdGhhdCB0aGUgYXJndW1lbnQgaXMgb2YgdGhl
IGNvcnJlY3QgdHlwZSwgc2luY2UKKyAgICAvLyB0b05hdGl2ZSgpIGV4cGVjdHMgaXQgdG8gYmUg
Y29ycmVjdC4gSWYgdGhlIGFyZ3VtZW50IHdhcyBpbmNvcnJlY3QKKyAgICAvLyB3ZSBsZWF2ZSBp
dCBudWxsLCBhbmQgcHV0SW1hZ2VEYXRhKCkgd2lsbCB0aHJvdyB0aGUgY29ycmVjdCBleGNlcHRp
b24KKyAgICAvLyAoVFlQRV9NSVNNQVRDSF9FUlIpLgorICAgIGlmIChWOERPTVdyYXBwZXI6Omlz
V3JhcHBlck9mVHlwZShhcmdzWzBdLCAmVjhJbWFnZURhdGE6OmluZm8pKQorICAgICAgICBpbWFn
ZURhdGEgPSBWOEltYWdlRGF0YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dChhcmdzWzBdKSk7CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKworICAgIGlmIChhcmdz
Lkxlbmd0aCgpID09IDcpCisgICAgICAgIGNvbnRleHQtPnB1dEltYWdlRGF0YShpbWFnZURhdGEs
IHRvRmxvYXQoYXJnc1sxXSksIHRvRmxvYXQoYXJnc1syXSksIHRvRmxvYXQoYXJnc1szXSksIHRv
RmxvYXQoYXJnc1s0XSksIHRvRmxvYXQoYXJnc1s1XSksIHRvRmxvYXQoYXJnc1s2XSksIGVjKTsK
KyAgICBlbHNlCisgICAgICAgIGNvbnRleHQtPnB1dEltYWdlRGF0YShpbWFnZURhdGEsIHRvRmxv
YXQoYXJnc1sxXSksIHRvRmxvYXQoYXJnc1syXSksIGVjKTsKKworICAgIGlmIChlYykgeworICAg
ICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOworICAgICAgICByZXR1cm4gbm90SGFu
ZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CisKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OworfQorCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OnN0cm9rZVN0eWxlQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEKiBpbXBsID0gVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5pZGwKaW5kZXggNjJkOWU1NjI1MjVkNDlhM2MyNjYyZWJlNDMwNTUy
ZmU4NTkwOTRhZi4uNzljNmNkMmEwYTMxOGUzZjcwMDQwZmMxZWExZmJjMWVhN2RlNjRlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsCkBAIC0xNTcsNyArMTU3LDkgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAg
ICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBDYW52YXNQYXR0ZXJuIGNyZWF0ZVBh
dHRlcm4oaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgaW4gW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgcmVwZXRpdGlvblR5cGUpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgcHV0SW1hZ2VEYXRhKGluIEltYWdlRGF0YSBpbWFnZWRh
dGEsIGluIGZsb2F0IGR4LCBpbiBmbG9hdCBkeSwgaW4gW09wdGlvbmFsXSBmbG9hdCBkaXJ0eVgs
IGluIGZsb2F0IGRpcnR5WSwgaW4gZmxvYXQgZGlydHlXaWR0aCwgaW4gZmxvYXQgZGlydHlIZWln
aHQpCisgICAgICAgIFtDdXN0b21dIHZvaWQgcHV0SW1hZ2VEYXRhKGluIEltYWdlRGF0YSBpbWFn
ZWRhdGEsIGluIGZsb2F0IGR4LCBpbiBmbG9hdCBkeSkKKyAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICBbQ3VzdG9tXSB2b2lkIHB1dEltYWdlRGF0YShpbiBJbWFnZURh
dGEgaW1hZ2VkYXRhLCBpbiBmbG9hdCBkeCwgaW4gZmxvYXQgZHksIGluIGZsb2F0IGRpcnR5WCwg
aW4gZmxvYXQgZGlydHlZLCBpbiBmbG9hdCBkaXJ0eVdpZHRoLCBpbiBmbG9hdCBkaXJ0eUhlaWdo
dCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBJbWFnZURhdGEg
Y3JlYXRlSW1hZ2VEYXRhKGluIEltYWdlRGF0YSBpbWFnZWRhdGEpCiAgICAgICAgICAgICByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggNGZhMmQw
N2Y2MjkwMTIzMDBlOTcwZWFkNmFiZWVhM2VmMzFlNjM1MC4uNzMyMTAwYzgzZTYwZGJhYTcwY2Jk
MzM4Y2YyYWUwNTQ0NjJkMzE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMjEy
LDkgKzIxMiwxNCBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICAvLyBjcm9zcy1kb2N1bWVu
dCBtZXNzYWdpbmcKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdF
X0pBVkFTQ1JJUFQKLSAgICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2
b2lkIHBvc3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBpbiBbT3B0
aW9uYWxdIEFycmF5IG1lc3NhZ2VQb3J0cywgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikKKyAg
ICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdl
KGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBpbiBET01TdHJpbmcgdGFyZ2V0T3Jp
Z2luKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtEb05vdENo
ZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCB3ZWJraXRQb3N0TWVzc2FnZShpbiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBBcnJheSB0cmFuc2Zlckxp
c3QsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCisgICAgICAgIFtEb05vdENoZWNrRG9tYWlu
U2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUgbWVzc2FnZSwgaW4gQXJyYXkgbWVzc2FnZVBvcnRzLCBpbiBET01TdHJpbmcgdGFyZ2V0T3Jp
Z2luKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgW0RvTm90
Q2hlY2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHdlYmtpdFBvc3RNZXNzYWdlKGluIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBpbiBET01TdHJpbmcgdGFyZ2V0T3JpZ2luKQor
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtEb05vdENoZWNrRG9t
YWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCB3ZWJraXRQb3N0TWVzc2FnZShpbiBTZXJpYWxpemVk
U2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gQXJyYXkgdHJhbnNmZXJMaXN0LCBpbiBET01TdHJpbmcg
dGFyZ2V0T3JpZ2luKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZWxzZQog
ICAgICAgICAvLyBUaGVyZSdzIG5vIGdvb2Qgd2F5IHRvIGV4cG9zZSBhbiBhcnJheSB2aWEgdGhl
IE9iakMgYmluZGluZ3MsIHNvIGZvciBub3cganVzdCBhbGxvdyBwYXNzaW5nIGluIGEgc2luZ2xl
IHBvcnQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112659</attachid>
            <date>2011-10-27 03:19:36 -0700</date>
            <delta_ts>2011-10-27 12:22:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70816-20111027141934.patch</filename>
            <type>text/plain</type>
            <size>20558</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg0NDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDRjMzdlZjZjMzUzYjIy
YWIxODNjN2VkY2Q4YTg4YzVjMTY3MDVmLi5kZTUyODY3Y2MxYzViMWE5YmQwMjgwMzFiMzA1OTA2
YmE1M2M3ZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMTAtMjcgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2V0IHJpZCBv
ZiBvcHRpb25hbCBwYXJhbWV0ZXJzIGluIHRoZSBtaWRkbGUgaW4gSURMcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0aW9uYWwgcGFyYW1ldGVycyBp
biB0aGUgbWlkZGxlIGFyZSBwcm9oaWJpdGVkIGJ5IFdlYklETCBzcGVjLgorCisgICAgICAgICog
YmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZUhl
YWRlcik6CisgICAgICAgIChHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2spOgorICAgICAgICAo
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9iakludGVybmFsOjptZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3ND
YWxsYmFjayk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTEtMTAtMjYgIEJlbiBX
ZWxscyAgPGJlbndlbGxzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDYW52YXMgZHJhd0ltYWdl
IHdpdGggU291cmNlSW4sIERlc3RpbmF0aW9uSW4sIFNvdXJjZU91dCwgRGVzdGluYXRpb25BdG9w
IGFuZCBDb3B5IGhhdmUgZXJyb3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKaW5kZXgg
YmFiYWVlMjBlNjM5N2QyNmM2NTkxZjJlNmJjODU1MWQ2ZDMzYmY5OC4uZTc4ZTJiOGQ5MGM5ZWE3
MDBhOGJlMjJlMDFlYjg5MGYwNmJmN2E3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNw
cApAQCAtMTQwLDI0ICsxNDAsNiBAQCBKU1ZhbHVlIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpjcmVhdGVJbWFnZURhdGEoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbWFnZURhdGEpKTsKIH0KIAotSlNWYWx1ZSBK
U0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cHV0SW1hZ2VEYXRhKEV4ZWNTdGF0ZSogZXhlYykK
LXsKLSAgICAvLyBwdXRJbWFnZURhdGEgaGFzIHR3byB2YXJpYW50cwotICAgIC8vIHB1dEltYWdl
RGF0YShJbWFnZURhdGEsIHgsIHkpCi0gICAgLy8gcHV0SW1hZ2VEYXRhKEltYWdlRGF0YSwgeCwg
eSwgZGlydHlYLCBkaXJ0eVksIGRpcnR5V2lkdGgsIGRpcnR5SGVpZ2h0KQotICAgIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRCogY29udGV4dCA9IHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCo+KGltcGwoKSk7Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDcpCi0gICAgICAgIGNvbnRleHQtPnB1dEltYWdlRGF0
YSh0b0ltYWdlRGF0YShleGVjLT5hcmd1bWVudCgwKSksIGV4ZWMtPmFyZ3VtZW50KDEpLnRvRmxv
YXQoZXhlYyksIGV4ZWMtPmFyZ3VtZW50KDIpLnRvRmxvYXQoZXhlYyksIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhlYy0+YXJndW1lbnQoMykudG9GbG9hdChleGVjKSwgZXhlYy0+
YXJndW1lbnQoNCkudG9GbG9hdChleGVjKSwgZXhlYy0+YXJndW1lbnQoNSkudG9GbG9hdChleGVj
KSwgZXhlYy0+YXJndW1lbnQoNikudG9GbG9hdChleGVjKSwgZWMpOwotICAgIGVsc2UKLSAgICAg
ICAgY29udGV4dC0+cHV0SW1hZ2VEYXRhKHRvSW1hZ2VEYXRhKGV4ZWMtPmFyZ3VtZW50KDApKSwg
ZXhlYy0+YXJndW1lbnQoMSkudG9GbG9hdChleGVjKSwgZXhlYy0+YXJndW1lbnQoMikudG9GbG9h
dChleGVjKSwgZWMpOwotCi0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLX0KLQogSlNWYWx1ZSBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6d2Via2l0TGluZURhc2goRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRCogY29udGV4dCA9IHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCo+KGltcGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDQwMzc1MTQ3ZWEyZDI2MGNjZGJmMWVmOTRhNzFk
OGY5MDdhOTU3ODcuLjM0NWIwYTc0Njg4NDc2MzNiMTI2ZjE1OTc4ZDg3MzQwM2U4NDU1MDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC05MDgsMTAgKzkwOCwxMCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoJG51
bUN1c3RvbUZ1bmN0aW9ucyA+IDApIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxu
ICAgIC8vIEN1c3RvbSBmdW5jdGlvbnNcbiIpOwogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlv
biAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKLSAgICAgICAgICAgIGlmICgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tIn0pIHsKLSAgICAgICAg
ICAgICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGF0aW9uRnVuY3Rpb24ifSB8fCAk
Y29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7Ci0g
ICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBKU0M6OkpTVmFsdWUgIiAu
ICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSAuICIoSlNDOjpFeGVjU3RhdGUqKTtcbiIpOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSBvciAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ0N1c3RvbSJ9OworICAgICAgICAgICAgbmV4dCBp
ZiAkZnVuY3Rpb24tPntvdmVybG9hZHN9ICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ICE9
IDE7CisgICAgICAgICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGF0aW9uRnVuY3Rp
b24ifSB8fCAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZSk7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1
ZSAiIC4gJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lIC4gIihKU0M6OkV4ZWNTdGF0ZSopO1xu
Iik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE5NjEsOCArMTk2MSwxMiBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBsKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKIAogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFt
ZSA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gIlByb3RvdHlwZUZ1
bmN0aW9uIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5uYW1lKTsKKyAgICAgICAgICAgIG15ICRpc0N1c3RvbSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0NDdXN0b20ifTsKKyAgICAgICAgICAgIG15ICRpc092
ZXJsb2FkZWQgPSAkZnVuY3Rpb24tPntvdmVybG9hZHN9ICYmIEB7JGZ1bmN0aW9uLT57b3Zlcmxv
YWRzfX0gPiAxOworCisgICAgICAgICAgICBuZXh0IGlmICRpc0N1c3RvbSAmJiAkaXNPdmVybG9h
ZGVkICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID4gMTsKIAotICAgICAgICAgICAgaWYg
KCRmdW5jdGlvbi0+e292ZXJsb2Fkc30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSA+IDEp
IHsKKyAgICAgICAgICAgIGlmICghJGlzQ3VzdG9tICYmICRpc092ZXJsb2FkZWQpIHsKICAgICAg
ICAgICAgICAgICAjIEFwcGVuZCBhIG51bWJlciB0byBhbiBvdmVybG9hZGVkIG1ldGhvZCdzIG5h
bWUgdG8gbWFrZSBpdCB1bmlxdWU6CiAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICRm
dW5jdGlvbk5hbWUgLiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fTsKICAgICAgICAgICAgICAg
ICAjIE1ha2UgdGhpcyBmdW5jdGlvbiBzdGF0aWMgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3Ms
IHNpbmNlIHdlCkBAIC0yMDA1LDcgKzIwMDksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbSJ9IHx8ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlND
Q3VzdG9tIn0pIHsKKyAgICAgICAgICAgIGlmICgkaXNDdXN0b20pIHsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRo
aXMtPiIgLiAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgLiAiKGV4ZWMpKTtcbiIpOwogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAkaW1wbFR5cGUqIGltcCA9IHN0YXRpY19jYXN0PCRpbXBsVHlwZSo+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7XG4iKTsKQEAgLTIwNDIsNyArMjA0Niw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAotICAgICAg
ICAgICAgaWYgKCRmdW5jdGlvbi0+e292ZXJsb2Fkc30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9h
ZHN9fSA+IDEgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVuY3Rpb24tPntv
dmVybG9hZHN9fSkgeworICAgICAgICAgICAgaWYgKCEkaXNDdXN0b20gJiYgJGlzT3ZlcmxvYWRl
ZCAmJiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA9PSBAeyRmdW5jdGlvbi0+e292ZXJsb2Fk
c319KSB7CiAgICAgICAgICAgICAgICAgIyBHZW5lcmF0ZSBhIGZ1bmN0aW9uIGRpc3BhdGNoaW5n
IGNhbGwgdG8gdGhlIHJlc3Qgb2YgdGhlIG92ZXJsb2Fkcy4KICAgICAgICAgICAgICAgICBHZW5l
cmF0ZU92ZXJsb2FkZWRQcm90b3R5cGVGdW5jdGlvbigkZnVuY3Rpb24sICRkYXRhTm9kZSwgJGlt
cGxDbGFzc05hbWUpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA2ODAzZmMxOGM0NGMzYmYzMWQ2
OGIzOTRiM2RkZTA3YTVhYWY4NzkxLi4xOGU1YTc4ZWNkZjI2Y2EyMmVmMGY2MDBjMzI2YjVkNTYw
NGM1MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQpAQCAtMjY0LDYgKzI2NCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAg
ICMgQ29weSBjb250ZW50cyBvZiBwYXJlbnQgY2xhc3NlcyBleGNlcHQgdGhlIGZpcnN0IHBhcmVu
dCBvciBpZiBpdCBpcwogICAgICMgRXZlbnRUYXJnZXQuCiAgICAgJGNvZGVHZW5lcmF0b3ItPkFk
ZE1ldGhvZHNDb25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMoJGRhdGFOb2Rl
LCBcQGFsbFBhcmVudHMsIDEpOworICAgICRjb2RlR2VuZXJhdG9yLT5MaW5rT3ZlcmxvYWRlZEZ1
bmN0aW9ucygkZGF0YU5vZGUpOwogCiAgICAgbXkgJGhhc0RlcGVuZGVudExpZmV0aW1lID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhEZXBlbmRlbnRMaWZldGltZSJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9IHx8ICRjbGFz
c05hbWUgPX4gL1NWRy87CiAgICAgaWYgKCEkaGFzRGVwZW5kZW50TGlmZXRpbWUpIHsKQEAgLTM3
MSw3ICszNzIsNyBAQCBFTkQKICAgICAgICAgbXkgJG5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZTsKICAgICAgICAgbXkgJGF0dHJFeHQgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzOwogCi0gICAgICAgIGlmICgkYXR0ckV4dC0+eyJDdXN0b20ifSB8fCAk
YXR0ckV4dC0+eyJWOEN1c3RvbSJ9KSB7CisgICAgICAgIGlmICgoJGF0dHJFeHQtPnsiQ3VzdG9t
In0gfHwgJGF0dHJFeHQtPnsiVjhDdXN0b20ifSkgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRl
eH0gPT0gMSkgewogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogICAg
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfUNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmKTsKIEVORApAQCAtMTM4MSw2ICsxMzgyLDE3IEBAIHN1YiBHZW5lcmF0ZUFyZ3Vt
ZW50c0NvdW50Q2hlY2sKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKICAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKIAorICAgIG15ICRudW1NYW5kYXRvcnlQYXJhbXMgPSAwOworICAgIG15ICRv
cHRpb25hbFNlZW4gPSAwOworICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFy
YW1ldGVyc30pIHsKKyAgICAgICAgaWYgKCRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9w
dGlvbmFsIn0pIHsKKyAgICAgICAgICAgICRvcHRpb25hbFNlZW4gPSAxOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgZGllICJBbiBhcmd1bWVudCBtdXN0IG5vdCBiZSBkZWNsYXJlZCB0
byBiZSBvcHRpb25hbCB1bmxlc3MgYWxsIHN1YnNlcXVlbnQgYXJndW1lbnRzIHRvIHRoZSBvcGVy
YXRpb24gYXJlIGFsc28gb3B0aW9uYWwuIiBpZiAkb3B0aW9uYWxTZWVuOworICAgICAgICAgICAg
JG51bU1hbmRhdG9yeVBhcmFtcysrOworICAgICAgICB9CisgICAgfQorCiAgICAgbXkgJGFyZ3Vt
ZW50c0NvdW50Q2hlY2tTdHJpbmcgPSAiIjsKICAgICBteSAkcmVxdWlyZXNBbGxBcmd1bWVudHM7
CiAgICAgbXkgJHJlcXVpcmVzQWxsQXJndW1lbnRzRGVmYXVsdCA9ICIiOwpAQCAtMTM4OCwyMiAr
MTQwMCwxMiBAQCBzdWIgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrCiAgICAgICAgICRyZXF1
aXJlc0FsbEFyZ3VtZW50c0RlZmF1bHQgPSAiUmFpc2UiOwogICAgIH0KICAgICAkcmVxdWlyZXNB
bGxBcmd1bWVudHMgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlJlcXVpcmVzQWxsQXJndW1lbnRzIn0gfHwgJHJlcXVpcmVzQWxsQXJndW1lbnRzRGVmYXVsdDsK
LSAgICBpZiAoJHJlcXVpcmVzQWxsQXJndW1lbnRzKSB7Ci0gICAgICAgIG15ICRudW1NYW5kYXRv
cnlQYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307Ci0gICAgICAgIGZvcmVhY2ggbXkg
JHBhcmFtIChyZXZlcnNlKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkpIHsKLSAgICAgICAgICAg
IGlmICgkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPcHRpb25hbCJ9KSB7Ci0gICAgICAg
ICAgICAgICAgJG51bU1hbmRhdG9yeVBhcmFtcy0tOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBsYXN0OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlm
ICgkbnVtTWFuZGF0b3J5UGFyYW1zID49IDEpIHsKLSAgICAgICAgICAgICRhcmd1bWVudHNDb3Vu
dENoZWNrU3RyaW5nIC49ICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAkbnVtTWFuZGF0b3J5UGFy
YW1zKVxuIjsKLSAgICAgICAgICAgIGlmICgkcmVxdWlyZXNBbGxBcmd1bWVudHMgZXEgIlJhaXNl
IikgewotICAgICAgICAgICAgICAgICRhcmd1bWVudHNDb3VudENoZWNrU3RyaW5nIC49ICIgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKFwiTm90IGVub3VnaCBhcmd1bWVudHNcIiwgVjhQcm94eTo6
VHlwZUVycm9yKTtcbiI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRh
cmd1bWVudHNDb3VudENoZWNrU3RyaW5nIC49ICIgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4oKTtcbiI7Ci0gICAgICAgICAgICB9CisgICAgaWYgKCRyZXF1aXJlc0FsbEFyZ3Vt
ZW50cyAmJiAkbnVtTWFuZGF0b3J5UGFyYW1zID49IDEpIHsKKyAgICAgICAgJGFyZ3VtZW50c0Nv
dW50Q2hlY2tTdHJpbmcgLj0gIiAgICBpZiAoYXJncy5MZW5ndGgoKSA8ICRudW1NYW5kYXRvcnlQ
YXJhbXMpXG4iOworICAgICAgICBpZiAoJHJlcXVpcmVzQWxsQXJndW1lbnRzIGVxICJSYWlzZSIp
IHsKKyAgICAgICAgICAgICRhcmd1bWVudHNDb3VudENoZWNrU3RyaW5nIC49ICIgICAgICAgIHJl
dHVybiB0aHJvd0Vycm9yKFwiTm90IGVub3VnaCBhcmd1bWVudHNcIiwgVjhQcm94eTo6VHlwZUVy
cm9yKTtcbiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkYXJndW1lbnRzQ291bnRD
aGVja1N0cmluZyAuPSAiICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7XG4i
OwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiAkYXJndW1lbnRzQ291bnRDaGVja1N0cmlu
ZzsKQEAgLTIwMDIsMTMgKzIwMDQsMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckdldHRlcigkaW1wbENsYXNzTmFtZSk7CiAgICAgfQog
Ci0gICAgJGNvZGVHZW5lcmF0b3ItPkxpbmtPdmVybG9hZGVkRnVuY3Rpb25zKCRkYXRhTm9kZSk7
Ci0KICAgICBteSAkaW5kZXhlcjsKICAgICBteSAkbmFtZWRQcm9wZXJ0eUdldHRlcjsKICAgICAj
IEdlbmVyYXRlIG1ldGhvZHMgZm9yIGZ1bmN0aW9ucy4KICAgICBmb3JlYWNoIG15ICRmdW5jdGlv
biAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKLSAgICAgICAgaWYgKCEoJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fCAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4Q3VzdG9tIn0pKSB7CisgICAgICAgIG15
ICRpc0N1c3RvbSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tIn0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJW
OEN1c3RvbSJ9OworICAgICAgICBpZiAoISRpc0N1c3RvbSkgewogICAgICAgICAgICAgR2VuZXJh
dGVGdW5jdGlvbkNhbGxiYWNrKCRmdW5jdGlvbiwgJGRhdGFOb2RlLCAkaW1wbENsYXNzTmFtZSk7
CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxICYmICRmdW5j
dGlvbi0+e292ZXJsb2FkSW5kZXh9ID09IEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0pIHsKICAg
ICAgICAgICAgICAgICBHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbkNhbGxiYWNrKCRmdW5jdGlv
biwgJGRhdGFOb2RlLCAkaW1wbENsYXNzTmFtZSk7CkBAIC0yMDI3LDcgKzIwMjgsOSBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAjIGdlbmVyYXRlIGFuIGFjY2VzcyBnZXR0
ZXIgdGhhdCByZXR1cm5zIGRpZmZlcmVudCBmdW5jdGlvbiBvYmplY3RzCiAgICAgICAgICMgZm9y
IGRpZmZlcmVudCBjYWxsaW5nIGNvbnRleHQuCiAgICAgICAgIGlmICgoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1cml0eSJ9IHx8ICgkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IikpICYmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5In0pIHsKLSAgICAgICAgICAgIEdlbmVy
YXRlRG9tYWluU2FmZUZ1bmN0aW9uR2V0dGVyKCRmdW5jdGlvbiwgJGltcGxDbGFzc05hbWUpOwor
ICAgICAgICAgICAgaWYgKCEkaXNDdXN0b20gfHwgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0g
PT0gMSkgeworICAgICAgICAgICAgICAgIEdlbmVyYXRlRG9tYWluU2FmZUZ1bmN0aW9uR2V0dGVy
KCRmdW5jdGlvbiwgJGltcGxDbGFzc05hbWUpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCmluZGV4IDg5MTY5NWMzOGFjMjdkOGRiMWZiNDFiM2YxZjgyMzk2YmJi
ZGUxOTEuLjIyM2YxYWM5MmY4NTMyYjlmMjEwNTk3OWFiYTYwM2Q3ODgzNDU0YWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCkBAIC0xNTcwLDYgKzE1NzAsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0EKICAgICBp
bnQgb3B0MShleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CisgICAgaWYgKGFyZ3NDb3VudCA8PSAyKSB7CisgICAgICAgIGltcC0+bWV0aG9kV2l0
aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKG5vbk9wdCwgb3B0MSk7CisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfQorCiAgICAgaW50
IG9wdDIoZXhlYy0+YXJndW1lbnQoMikudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsCmluZGV4IDc1YjQ5YWJjMjg0MzE1ZTMxNTcwYjk2OWJiMTU5Y2QyYTE4N2M5ZmIuLjgyOTA1
MGJlZTQ4NmQ5ODgyMDZiNTM0ZmMyOTE0OThmMThmOTNkNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTExOSw3ICsxMTksNyBA
QCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIC8vICdPcHRpb25hbCcgZXh0ZW5kZWQgYXR0cmlidXRl
CiAgICAgICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsQXJnKGluIFtPcHRpb25hbF0gbG9u
ZyBvcHQpOwogICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlv
bmFsQXJnKGluIGxvbmcgbm9uT3B0LCBpbiBbT3B0aW9uYWxdIGxvbmcgb3B0KTsKLSAgICAgICAg
dm9pZCAgICBtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoaW4gbG9u
ZyBub25PcHQsIGluIFtPcHRpb25hbF0gbG9uZyBvcHQxLCBpbiBsb25nIG9wdDIpOworICAgICAg
ICB2b2lkICAgIG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhpbiBs
b25nIG5vbk9wdCwgaW4gW09wdGlvbmFsXSBsb25nIG9wdDEsIGluIFtPcHRpb25hbF0gbG9uZyBv
cHQyKTsKIAogI2lmIGRlZmluZWQoVEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNUSU5HX0pTKQog
ICAgICAgICAvLyAnQ2FsbGJhY2snIGV4dGVuZGVkIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA4
M2E0NzhjOGExMWZkZGFkMmU2NmJlYjlmYmYwNzY3ODUxNjJmN2FiLi5mZjkyMGY5ZDExMmJhNDYz
MTdjZDcwZGEyYWNlNDZhMDc4ZmVhOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMTA0Miw2ICsxMDQyLDEw
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kVHdvT3B0aW9uYWxBcmdzQ2FsbGJhY2soCiAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4oKTsKICAgICB9CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgb3B0MSwgdG9JbnQz
MihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBNaXNzaW5nSXNVbmRlZmluZWQpKSk7
CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMikgeworICAgICAgICBpbXAtPm1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhub25PcHQsIG9wdDEpOworICAgICAgICBy
ZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgfQogICAgIEVYQ0VQVElPTl9CTE9D
SyhpbnQsIG9wdDIsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgTWlz
c2luZ0lzVW5kZWZpbmVkKSkpOwogICAgIGltcC0+bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5k
VHdvT3B0aW9uYWxBcmdzKG5vbk9wdCwgb3B0MSwgb3B0Mik7CiAgICAgcmV0dXJuIHY4OjpIYW5k
bGU8djg6OlZhbHVlPigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKaW5kZXggNjJkOWU1NjI1MjVkNDlhM2MyNjYy
ZWJlNDMwNTUyZmU4NTkwOTRhZi4uYjk5NWVhZGE2ODBhZGU4MTJiOTc5OTViYzg2MzlkNDNlZDQz
Y2RhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaWRsCkBAIC0xNTIsMTMgKzE1MiwxNiBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgIHZvaWQgc2V0U2hhZG93KGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQs
IGluIGZsb2F0IGJsdXIsIGluIGZsb2F0IHIsIGluIGZsb2F0IGcsIGluIGZsb2F0IGIsIGluIGZs
b2F0IGEpOwogICAgICAgICB2b2lkIHNldFNoYWRvdyhpbiBmbG9hdCB3aWR0aCwgaW4gZmxvYXQg
aGVpZ2h0LCBpbiBmbG9hdCBibHVyLCBpbiBmbG9hdCBjLCBpbiBmbG9hdCBtLCBpbiBmbG9hdCB5
LCBpbiBmbG9hdCBrLCBpbiBmbG9hdCBhKTsKIAorICAgICAgICB2b2lkIHB1dEltYWdlRGF0YShp
biBJbWFnZURhdGEgaW1hZ2VkYXRhLCBpbiBmbG9hdCBkeCwgaW4gZmxvYXQgZHkpCisgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBwdXRJbWFnZURhdGEoaW4g
SW1hZ2VEYXRhIGltYWdlZGF0YSwgaW4gZmxvYXQgZHgsIGluIGZsb2F0IGR5LCBpbiBmbG9hdCBk
aXJ0eVgsIGluIGZsb2F0IGRpcnR5WSwgaW4gZmxvYXQgZGlydHlXaWR0aCwgaW4gZmxvYXQgZGly
dHlIZWlnaHQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogI2lmIGRlZmlu
ZWQoVjhfQklORElORykgJiYgVjhfQklORElORwogICAgICAgICBDYW52YXNQYXR0ZXJuIGNyZWF0
ZVBhdHRlcm4oaW4gSFRNTENhbnZhc0VsZW1lbnQgY2FudmFzLCBpbiBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyByZXBldGl0aW9uVHlwZSkKICAgICAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgQ2FudmFzUGF0dGVybiBjcmVhdGVQYXR0ZXJuKGluIEhU
TUxJbWFnZUVsZW1lbnQgaW1hZ2UsIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIHJlcGV0aXRpb25UeXBlKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwot
ICAgICAgICB2b2lkIHB1dEltYWdlRGF0YShpbiBJbWFnZURhdGEgaW1hZ2VkYXRhLCBpbiBmbG9h
dCBkeCwgaW4gZmxvYXQgZHksIGluIFtPcHRpb25hbF0gZmxvYXQgZGlydHlYLCBpbiBmbG9hdCBk
aXJ0eVksIGluIGZsb2F0IGRpcnR5V2lkdGgsIGluIGZsb2F0IGRpcnR5SGVpZ2h0KQotICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEltYWdlRGF0YSBjcmVhdGVJbWFn
ZURhdGEoaW4gSW1hZ2VEYXRhIGltYWdlZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgSW1hZ2VEYXRhIGNyZWF0ZUltYWdlRGF0YShpbiBmbG9hdCBzdywg
aW4gZmxvYXQgc2gpCkBAIC0xNjYsNyArMTY5LDYgQEAgbW9kdWxlIGh0bWwgewogI2Vsc2UKICAg
ICAgICAgLy8gRklYTUU6IFJlbW92ZSAnZWxzZScgb25jZSBKU0Mgc3VwcG9ydHMgb3ZlcmxvYWRz
IHRvby4KICAgICAgICAgW0N1c3RvbV0gdm9pZCBjcmVhdGVQYXR0ZXJuKC8qIDIgKi8pOwotICAg
ICAgICBbQ3VzdG9tXSB2b2lkIHB1dEltYWdlRGF0YSgvKiBpbiBJbWFnZURhdGEgaW1hZ2VkYXRh
LCBpbiBmbG9hdCBkeCwgaW4gZmxvYXQgZHkgWywgaW4gZmxvYXQgZGlydHlYLCBpbiBmbG9hdCBk
aXJ0eVksIGluIGZsb2F0IGRpcnR5V2lkdGgsIGluIGZsb2F0IGRpcnR5SGVpZ2h0XSAqLyk7CiAg
ICAgICAgIFtDdXN0b21dIEltYWdlRGF0YSBjcmVhdGVJbWFnZURhdGEoLyogMyAqLyk7CiAjZW5k
aWYgLy8gZGVmaW5lZChWOF9CSU5ESU5HKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5k
ZXggNGZhMmQwN2Y2MjkwMTIzMDBlOTcwZWFkNmFiZWVhM2VmMzFlNjM1MC4uNzMyMTAwYzgzZTYw
ZGJhYTcwY2JkMzM4Y2YyYWUwNTQ0NjJkMzE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bApAQCAtMjEyLDkgKzIxMiwxNCBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICAvLyBjcm9z
cy1kb2N1bWVudCBtZXNzYWdpbmcKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYm
IExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eSwg
Q3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdl
LCBpbiBbT3B0aW9uYWxdIEFycmF5IG1lc3NhZ2VQb3J0cywgaW4gRE9NU3RyaW5nIHRhcmdldE9y
aWdpbikKKyAgICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHBv
c3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBpbiBET01TdHJpbmcg
dGFyZ2V0T3JpZ2luKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IFtEb05vdENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCB3ZWJraXRQb3N0TWVzc2Fn
ZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBBcnJheSB0
cmFuc2Zlckxpc3QsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCisgICAgICAgIFtEb05vdENo
ZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBTZXJpYWxpemVk
U2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gQXJyYXkgbWVzc2FnZVBvcnRzLCBpbiBET01TdHJpbmcg
dGFyZ2V0T3JpZ2luKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKKyAgICAg
ICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHdlYmtpdFBvc3RNZXNz
YWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBpbiBET01TdHJpbmcgdGFyZ2V0
T3JpZ2luKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtEb05v
dENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCB3ZWJraXRQb3N0TWVzc2FnZShpbiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gQXJyYXkgdHJhbnNmZXJMaXN0LCBpbiBE
T01TdHJpbmcgdGFyZ2V0T3JpZ2luKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAjZWxzZQogICAgICAgICAvLyBUaGVyZSdzIG5vIGdvb2Qgd2F5IHRvIGV4cG9zZSBhbiBhcnJh
eSB2aWEgdGhlIE9iakMgYmluZGluZ3MsIHNvIGZvciBub3cganVzdCBhbGxvdyBwYXNzaW5nIGlu
IGEgc2luZ2xlIHBvcnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWFmN2NlZmI1MDdlODFjNDYxMzkyZTNhMjcyMDZhZTJi
ZWMzMWJjYS4uODQ0ZThmYzFkOTA5ZjY4Njg0MTlkYTM1ZDNmZTFhOGViYjNjMjdkZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDExLTEwLTI3ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEdldCByaWQgb2Ygb3B0aW9uYWwgcGFyYW1ldGVycyBp
biB0aGUgbWlkZGxlIGluIElETHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MDgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE9wdGlvbmFsIHBhcmFtZXRlcnMgaW4gdGhlIG1pZGRsZSBhcmUgcHJvaGli
aXRlZCBieSBXZWJJREwgc3BlYy4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1wdXRJ
bWFnZURhdGEtZXhwZWN0ZWQudHh0OiBleHBlY3RhdGlvbiB3YXMgd3JvbmcsIGNvbnRleHQucHV0
SW1hZ2VEYXRhKHt9LCAwLCAwKSBzaG91bGQgdGhyb3cgVHlwZSBFcnJvci4KKyAgICAgICAgKiBm
YXN0L2NhbnZhcy9jYW52YXMtcHV0SW1hZ2VEYXRhLmpzOgorCiAyMDExLTEwLTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENsZWFudXAgQ2hyb21pdW0gdGVz
dCBleHBlY3RhdGlvbi4gVGhlc2UgdGVzdHMgd2VyZSBlcnJvbmVvdXNseSBtYXJrZWQgYXMgdGlt
aW5nIG91dCBpbnRlcm1pdHRlbnRseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLXB1dEltYWdlRGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9jYW52YXMtcHV0SW1hZ2VEYXRhLWV4cGVjdGVkLnR4dAppbmRleCBkMGE1OTU3MDY5MmIy
NTc3MzVkN2I5ZGM1YWI1M2E0ZDQxNDEzZDIwLi4zOTU3YTY0ZmJiMGQzNDJlMWY3YTY1NDBlZmM4
NWNiYjhlZDFhMzJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
cHV0SW1hZ2VEYXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtcHV0SW1hZ2VEYXRhLWV4cGVjdGVkLnR4dApAQCAtMTQ0LDcgKzE0NCw3IEBAIFBBU1Mg
Z2V0UGl4ZWwoMSwxKSBpcyBbMCwxMjgsMCwyNTVdCiBQQVNTIGdldFBpeGVsKDksOSkgaXMgWzAs
MTI4LDAsMjU1XQogUEFTUyBnZXRQaXhlbCgxLDEpIGlzIFswLDEyOCwwLDI1NV0KIFBBU1MgZ2V0
UGl4ZWwoOSw5KSBpcyBbMCwxMjgsMCwyNTVdCi1QQVNTIGNvbnRleHQucHV0SW1hZ2VEYXRhKHt9
LCAwLCAwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhj
ZXB0aW9uIDE3LgorUEFTUyBjb250ZXh0LnB1dEltYWdlRGF0YSh7fSwgMCwgMCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgY29udGV4dC5wdXRJbWFnZURhdGEo
YnVmZmVyLCBOYU4sIDAsIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NV
UFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KIFBBU1MgY29udGV4dC5wdXRJbWFnZURhdGEo
YnVmZmVyLCAwLCBOYU4sIDAsIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NV
UFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KIFBBU1MgY29udGV4dC5wdXRJbWFnZURhdGEo
YnVmZmVyLCAwLCAwLCBOYU4sIDAsIDAsIDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NV
UFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2NhbnZhcy1wdXRJbWFnZURhdGEuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9jYW52YXMtcHV0SW1hZ2VEYXRhLmpzCmluZGV4IGYzMDRmOGM2YTcwM2I2MWUyMGM4YzhlZDkx
ZDJiODk4NjVlYzZhOTUuLmE0MDg1MmExMTA1MTY3NTAwYTg0YmI3YzI2Zjk3MGVlN2UxZDE4ZjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1wdXRJbWFnZURhdGEu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXB1dEltYWdlRGF0YS5qcwpA
QCAtMjAxLDcgKzIwMSw3IEBAIHBpeGVsU2hvdWxkQmUoMSwgMSwgWzAsIDEyOCwwLDI1NV0pOwog
cGl4ZWxTaG91bGRCZSg5LCA5LCBbMCwgMTI4LDAsMjU1XSk7CiAKIAotc2hvdWxkVGhyb3coImNv
bnRleHQucHV0SW1hZ2VEYXRhKHt9LCAwLCAwKSIsICInRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJS
OiBET00gRXhjZXB0aW9uIDE3JyIpOworc2hvdWxkVGhyb3coImNvbnRleHQucHV0SW1hZ2VEYXRh
KHt9LCAwLCAwKSIsICInVHlwZUVycm9yOiBUeXBlIGVycm9yJyIpOwogc2hvdWxkVGhyb3coImNv
bnRleHQucHV0SW1hZ2VEYXRhKGJ1ZmZlciwgTmFOLCAwLCAwLCAwLCAwLCAwKSIsICInRXJyb3I6
IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDknIik7CiBzaG91bGRUaHJvdygiY29u
dGV4dC5wdXRJbWFnZURhdGEoYnVmZmVyLCAwLCBOYU4sIDAsIDAsIDAsIDApIiwgIidFcnJvcjog
Tk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOSciKTsKIHNob3VsZFRocm93KCJjb250
ZXh0LnB1dEltYWdlRGF0YShidWZmZXIsIDAsIDAsIE5hTiwgMCwgMCwgMCkiLCAiJ0Vycm9yOiBO
T1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5JyIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>