<?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>98972</bug_id>
          
          <creation_ts>2012-10-10 17:11:26 -0700</creation_ts>
          <short_desc>[CSS Shaders] Validate types of built-in vertex attributes</short_desc>
          <delta_ts>2012-10-29 11:36:32 -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>Layout and Rendering</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>
          
          <blocked>71392</blocked>
    
    <blocked>94358</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Max Vujovic">mvujovic</reporter>
          <assigned_to name="Max Vujovic">mvujovic</assigned_to>
          <cc>achicu</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>peter+ews</cc>
    
    <cc>roger_fong</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739423</commentid>
    <comment_count>0</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-10 17:11:26 -0700</bug_when>
    <thetext>When an author defines a built-in attribute, WebKit should check its type.

For example, the following should be an error because a_texCoord should be a vec2, not a float:
attribute float a_texCoord;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741032</commentid>
    <comment_count>1</comment_count>
      <attachid>168447</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-12 11:03:25 -0700</bug_when>
    <thetext>Created attachment 168447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741047</commentid>
    <comment_count>2</comment_count>
      <attachid>168447</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-12 11:10:53 -0700</bug_when>
    <thetext>Comment on attachment 168447
Patch

Attachment 168447 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14266384</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741065</commentid>
    <comment_count>3</comment_count>
      <attachid>168447</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-12 11:39:04 -0700</bug_when>
    <thetext>Comment on attachment 168447
Patch

Attachment 168447 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14282032</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741131</commentid>
    <comment_count>4</comment_count>
      <attachid>168464</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-12 13:03:16 -0700</bug_when>
    <thetext>Created attachment 168464
Patch

Attempting Chromium EWS build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741232</commentid>
    <comment_count>5</comment_count>
      <attachid>168447</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-10-12 14:45:41 -0700</bug_when>
    <thetext>Comment on attachment 168447
Patch

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

Looks good! Just some minor comments.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:104
&gt;      // Validate the author&apos;s samplers.
&gt;      for (Vector&lt;ANGLEShaderSymbol&gt;::iterator it = symbols.begin(); it != symbols.end(); ++it) {
&gt;          if (it-&gt;isSampler()) {

This was not in your change, but could also be moved to a separate method (maybe in a different patch). Would it make sense to merge the for loops? They are both iterating on the same symbols. Maybe a call like checkSymbol() inside the for loop would be a good way to do it.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:138
&gt; +    BuiltInAttributes builtInAttributes;
&gt; +    builtInAttributes.set(&quot;a_position&quot;, SH_FLOAT_VEC4);
&gt; +    builtInAttributes.set(&quot;a_texCoord&quot;, SH_FLOAT_VEC2);
&gt; +    builtInAttributes.set(&quot;a_meshCoord&quot;, SH_FLOAT_VEC2);
&gt; +    builtInAttributes.set(&quot;a_triangleCoord&quot;, SH_FLOAT_VEC3);

It looks like builtInAttributes can be a static and init it only once.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:145
&gt; +        if (builtInAttribute != builtInAttributes.end() &amp;&amp; builtInAttribute-&gt;value != symbol-&gt;dataType) {

Do we allow other attribute names? It looks like you could add a test for that too and fix the check here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741245</commentid>
    <comment_count>6</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-12 15:01:29 -0700</bug_when>
    <thetext>Thanks for the review, Alex!

(In reply to comment #5)
&gt; (From update of attachment 168447 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168447&amp;action=review
&gt; 
&gt; Looks good! Just some minor comments.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:104
&gt; &gt;      // Validate the author&apos;s samplers.
&gt; &gt;      for (Vector&lt;ANGLEShaderSymbol&gt;::iterator it = symbols.begin(); it != symbols.end(); ++it) {
&gt; &gt;          if (it-&gt;isSampler()) {
&gt; 

That&apos;s a good idea! I&apos;ll give it a try.

&gt; This was not in your change, but could also be moved to a separate method (maybe in a different patch). Would it make sense to merge the for loops? They are both iterating on the same symbols. Maybe a call like checkSymbol() inside the for loop would be a good way to do it.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:138
&gt; &gt; +    BuiltInAttributes builtInAttributes;
&gt; &gt; +    builtInAttributes.set(&quot;a_position&quot;, SH_FLOAT_VEC4);
&gt; &gt; +    builtInAttributes.set(&quot;a_texCoord&quot;, SH_FLOAT_VEC2);
&gt; &gt; +    builtInAttributes.set(&quot;a_meshCoord&quot;, SH_FLOAT_VEC2);
&gt; &gt; +    builtInAttributes.set(&quot;a_triangleCoord&quot;, SH_FLOAT_VEC3);
&gt; 
&gt; It looks like builtInAttributes can be a static and init it only once.

Sure. Then, we can easily have one loop over the symbols, calling different per-symbol validation functions.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:145
&gt; &gt; +        if (builtInAttribute != builtInAttributes.end() &amp;&amp; builtInAttribute-&gt;value != symbol-&gt;dataType) {
&gt; 
&gt; Do we allow other attribute names? It looks like you could add a test for that too and fix the check here.

Right now we do, but we shouldn&apos;t. To make this patch a little smaller / easier to review, I&apos;m planning on implementing that in bug 98973.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743611</commentid>
    <comment_count>7</comment_count>
      <attachid>169037</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-16 15:05:46 -0700</bug_when>
    <thetext>Created attachment 169037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743762</commentid>
    <comment_count>8</comment_count>
      <attachid>169037</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-10-16 18:22:13 -0700</bug_when>
    <thetext>Comment on attachment 169037
Patch

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

Looks good, Max!

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:140
&gt; +            typedef HashMap&lt;String, ShDataType&gt; SymbolNameToType;
&gt; +            static SymbolNameToType* attributeToType = 0;
&gt; +            if (!attributeToType) {
&gt; +                attributeToType = new SymbolNameToType;
&gt; +                attributeToType-&gt;set(&quot;a_meshCoord&quot;, SH_FLOAT_VEC2);
&gt; +                attributeToType-&gt;set(&quot;a_position&quot;, SH_FLOAT_VEC4);
&gt; +                attributeToType-&gt;set(&quot;a_texCoord&quot;, SH_FLOAT_VEC2);
&gt; +                attributeToType-&gt;set(&quot;a_triangleCoord&quot;, SH_FLOAT_VEC3);
&gt; +            }

nit: Extract these lines to a separate static function.

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.h:98
&gt; +    bool validateSymbols(Vector&lt;ANGLEShaderSymbol&gt;&amp; symbols) const;

nit: This could be a static function as it&apos;s not using any of the members. Also, I don&apos;t really like that we include ANGLEWebKitBridge.h just to make this call work. What about keeping validateSymbols as a static function in the cpp file only?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744566</commentid>
    <comment_count>9</comment_count>
      <attachid>169246</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-17 13:35:19 -0700</bug_when>
    <thetext>Created attachment 169246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744588</commentid>
    <comment_count>10</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-17 13:59:26 -0700</bug_when>
    <thetext>Thanks for looking at this again, Alex.

(In reply to comment #8)
&gt; (From update of attachment 169037 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169037&amp;action=review
&gt; 
&gt; Looks good, Max!
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:140
&gt; &gt; +            typedef HashMap&lt;String, ShDataType&gt; SymbolNameToType;
&gt; &gt; +            static SymbolNameToType* attributeToType = 0;
&gt; &gt; +            if (!attributeToType) {
&gt; &gt; +                attributeToType = new SymbolNameToType;
&gt; &gt; +                attributeToType-&gt;set(&quot;a_meshCoord&quot;, SH_FLOAT_VEC2);
&gt; &gt; +                attributeToType-&gt;set(&quot;a_position&quot;, SH_FLOAT_VEC4);
&gt; &gt; +                attributeToType-&gt;set(&quot;a_texCoord&quot;, SH_FLOAT_VEC2);
&gt; &gt; +                attributeToType-&gt;set(&quot;a_triangleCoord&quot;, SH_FLOAT_VEC3);
&gt; &gt; +            }
&gt; 
&gt; nit: Extract these lines to a separate static function.

Good idea. Done.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.h:98
&gt; &gt; +    bool validateSymbols(Vector&lt;ANGLEShaderSymbol&gt;&amp; symbols) const;
&gt; 
&gt; nit: This could be a static function as it&apos;s not using any of the members. Also, I don&apos;t really like that we include ANGLEWebKitBridge.h just to make this call work. What about keeping validateSymbols as a static function in the cpp file only?

Makes sense. Done.

On a different topic, I removed the ANGLEShaderSymbol::isArray() method from the previous patch. I realized ANGLE appends the array size in square brackets to the symbol name. So, &quot;vec4 array[1]&quot; and &quot;vec4 vector&quot; have the same size (1), but have different names, &quot;array[1]&quot; and &quot;vector&quot;.

In this patch, we don&apos;t need to explicitly check that the author incorrectly defined a built-in attribute as an array because attributes can&apos;t be arrays in GLSL, so ANGLE won&apos;t validate the shader in the first place.

However, when validate built-in uniform types in bug 98974, we might have to use the uniform&apos;s &quot;base name&quot; (without the array size). With the base name, we can look up the uniform in a map and identify that it is one of the built-in uniforms, regardless of its array size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744745</commentid>
    <comment_count>11</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-17 16:14:52 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; On a different topic, I removed the ANGLEShaderSymbol::isArray() method from the previous patch. I realized ANGLE appends the array size in square brackets to the symbol name. So, &quot;vec4 array[1]&quot; and &quot;vec4 vector&quot; have the same size (1), but have different names, &quot;array[1]&quot; and &quot;vector&quot;.
&gt; 

I misspoke there. ANGLE appends &quot;[0]&quot; to all array names, regardless of size.

Side note- It looks like there&apos;s some new code in ANGLEWebKitBridge::getSymbolInfo, which generates separate symbol names for each array component.

Regardless, attributes can&apos;t be arrays or structs in GLSL, so we don&apos;t have to worry about this here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744748</commentid>
    <comment_count>12</comment_count>
      <attachid>169286</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-17 16:17:47 -0700</bug_when>
    <thetext>Created attachment 169286
Patch

Removed an inaccurate comment from the previous patch about array naming in ANGLEWebKitBridge. Now, I don&apos;t touch ANGLEWebKitBridge at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745378</commentid>
    <comment_count>13</comment_count>
      <attachid>169286</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-10-18 10:52:45 -0700</bug_when>
    <thetext>Comment on attachment 169286
Patch

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

&gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:67
&gt; +    for (Vector&lt;ANGLEShaderSymbol&gt;::iterator symbol = symbols.begin(); symbol != symbols.end(); ++symbol) {

In a patch of mine recently, Darin told me that we try to use array indexing rather than iterators for iterating over Vectors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745391</commentid>
    <comment_count>14</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-18 11:04:11 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #13)
&gt; (From update of attachment 169286 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169286&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/CustomFilterValidatedProgram.cpp:67
&gt; &gt; +    for (Vector&lt;ANGLEShaderSymbol&gt;::iterator symbol = symbols.begin(); symbol != symbols.end(); ++symbol) {
&gt; 
&gt; In a patch of mine recently, Darin told me that we try to use array indexing rather than iterators for iterating over Vectors.

Good to know- I&apos;ll update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745515</commentid>
    <comment_count>15</comment_count>
      <attachid>169460</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-18 13:38:27 -0700</bug_when>
    <thetext>Created attachment 169460
Patch for Landing

Replaced the vector iterator with a size_t index.

Also, added the const qualifier to ANGLEShaderSymbol::isSampler, so that I can do:
const ANGLEShaderSymbol&amp; symbol = symbols[i];
...
if (symbol.isSampler())
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745589</commentid>
    <comment_count>16</comment_count>
      <attachid>169460</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 14:38:23 -0700</bug_when>
    <thetext>Comment on attachment 169460
Patch for Landing

Clearing flags on attachment: 169460

Committed r131809: &lt;http://trac.webkit.org/changeset/131809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745590</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 14:38:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753023</commentid>
    <comment_count>18</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-28 18:29:35 -0700</bug_when>
    <thetext>Hi Max,
it looks like this patch caused some regressions in the conformance tests.
In particular it caused glsl/functions/glsl-function-atan to fail.
In addition many of the conformance/more/functions tests crash, for example bindBufferBadArgs.html.
Could you take a look?
Thanks,
Roger</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753124</commentid>
    <comment_count>19</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-29 00:47:16 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Hi Max,
&gt; it looks like this patch caused some regressions in the conformance tests.
&gt; In particular it caused glsl/functions/glsl-function-atan to fail.
&gt; In addition many of the conformance/more/functions tests crash, for example bindBufferBadArgs.html.
&gt; Could you take a look?
&gt; Thanks,
&gt; Roger

Hi Roger,

It seems unlikely that this patch would cause WebGL failures. It doesn&apos;t touch WebGL code except making ANGLEShaderSymbol::isSampler a const method. I&apos;ll take a look at the failures, though. Do you have a stack trace that suggests it?

Thanks,
Max</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753531</commentid>
    <comment_count>20</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-29 09:45:05 -0700</bug_when>
    <thetext>The stack trace seems a bit obscure and javascripty,
What I did was the following:
I reverted to the closest revision where the build was working after this patch landed.
I tested the tests and confirmed that they failed.
I then rolled out the changes made in this patch, rebuilt, and the tests all passed/didn&apos;t crash.

I&apos;ll get back to you with the actual stack trace when I get to the office.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753613</commentid>
    <comment_count>21</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-29 10:56:03 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; The stack trace seems a bit obscure and javascripty,
&gt; What I did was the following:
&gt; I reverted to the closest revision where the build was working after this patch landed.
&gt; I tested the tests and confirmed that they failed.
&gt; I then rolled out the changes made in this patch, rebuilt, and the tests all passed/didn&apos;t crash.
&gt; 
&gt; I&apos;ll get back to you with the actual stack trace when I get to the office.

Ok, thanks.

I just did this:
- Reverted to the revision right before this patch (r131807), built. glsl/functions/glsl-function-atan succeeds.
- Reverted to the revision with this patch (r131809), built. glsl/functions/glsl-function-atan succeeds.
- Built latest WebKit (r132805), ran Safari. glsl/functions/glsl-function-atan fails.

Btw, I&apos;m not getting any crashes with latest WebKit in conformance/more/functions. I&apos;m on OS X 10.8.1 with an ATI Radeon HD 5770.

The glsl/functions/glsl-function-atan failure in latest WebKit misrenders one pixel in a different position on every refresh. Here&apos;s my test result:

PASS getError was expected value: NO_ERROR : no errors from draw
PASS getError was expected value: NO_ERROR : no errors from draw
at (15,28): ref=(123,0,0,255)  test=(122,128,0,255) 
FAIL images are different

It still looks like this change is unrelated to the glsl/functions/glsl-function-atan failure. I&apos;ll keep narrowing it down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753643</commentid>
    <comment_count>22</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-10-29 11:31:23 -0700</bug_when>
    <thetext>Oops, I wouldn&apos;t worry about it anymore.
I think something I did didn&apos;t match my story earlier because I don&apos;t see the problem anymore putting the changes back in. 
So you&apos;re right, doesn&apos;t look like it&apos;s from this patch, my b.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753645</commentid>
    <comment_count>23</comment_count>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2012-10-29 11:36:32 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Oops, I wouldn&apos;t worry about it anymore.
&gt; I think something I did didn&apos;t match my story earlier because I don&apos;t see the problem anymore putting the changes back in. 
&gt; So you&apos;re right, doesn&apos;t look like it&apos;s from this patch, my b.

No worries. In case it helps, I got up to r131826 without an atan failure.

So, the atan regression happened somewhere between r131826.. r132805. Only a thousand commits :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168447</attachid>
            <date>2012-10-12 11:03:25 -0700</date>
            <delta_ts>2012-10-12 14:45:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>98972-1.patch</filename>
            <type>text/plain</type>
            <size>11683</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjc0YjhmLi41MGJhNmM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMTAt
MTIgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gVmFsaWRhdGUgdHlwZXMgb2YgYnVpbHQtaW4gdmVydGV4IGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW52YWxpZC1jdXN0b20t
ZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIHVzZXMgZm91ciB2ZXJ0ZXggc2hhZGVycy4gRWFj
aCB2ZXJ0ZXggc2hhZGVyCisgICAgICAgIGRlZmluZXMgYSBzcGVjaWZpYyBhdHRyaWJ1dGUgd2l0
aCB0aGUgd3JvbmcgdHlwZS4gTm9uZSBvZiB0aGUgdmVydGV4IHNoYWRlcnMgaW4gdGhlIHRlc3QK
KyAgICAgICAgc2hvdWxkIGV4ZWN1dGUuIElmIGEgdmVydGV4IHNoYWRlciBkb2VzIGV4ZWN1dGUs
IGl0cyBhc3NvY2lhdGVkIGZyYWdtZW50IHNoYWRlciB3aWxsIHJlbmRlcgorICAgICAgICBhIGdy
ZWVuIGRpdiBhcyByZWQuCisKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQt
Y3VzdG9tLWZpbHRlci1hdHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRl
LXR5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52
YWxpZC10eXBlLWEtbWVzaC1jb29yZC52czogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJz
L3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1wb3NpdGlvbi52czogQWRkZWQuCisgICAgICAgICog
Y3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQudnM6IEFkZGVk
LgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5n
bGUtY29vcmQudnM6IEFkZGVkLgorCiAyMDEyLTEwLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTW9yZSBiYXNlbGluZXMgdXBkYXRlcyBhZnRlciBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzExMzQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1hdHRyaWJ1dGUtdHlw
ZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxp
ZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwNGM2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1hdHRyaWJ1
dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3RzIHRoYXQgY3VzdG9tIGZpbHRlcnMgZG8g
bm90IGV4ZWN1dGUgaWYgdGhlIGF1dGhvciBkZWZpbmVzIGJ1aWx0LWluIGF0dHJpYnV0ZXMgd2l0
aCB0aGUgd3JvbmcgdHlwZS48L3RpdGxlPgorICAgIDwhLS0gCisgICAgICAgIFRoaXMgaXMgdGhl
IHJlZmVyZW5jZSBmaWxlIGZvciB0aGUgdGVzdC4KKyAgICAgICAgSWYgdGhlIHRlc3QgcGFzc2Vz
LCB5b3Ugc2hvdWxkIHNlZSA0IHZlcnRpY2FsbHktc3RhY2tlZCBncmVlbiBib3hlcy4KKyAgICAt
LT4KKyAgICA8c3R5bGU+CisgICAgZGl2IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdi
KDAsIDI1NSwgMCk7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7
CisgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRpdj48L2Rpdj4KKyAgICA8ZGl2PjwvZGl2Pgor
ICAgIDxkaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1hdHRyaWJ1dGUtdHlw
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20t
ZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjJiYThlY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1hdHRyaWJ1dGUtdHlwZXMuaHRtbApAQCAt
MCwwICsxLDQ4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
PlRlc3RzIHRoYXQgY3VzdG9tIGZpbHRlcnMgZG8gbm90IGV4ZWN1dGUgaWYgdGhlIGF1dGhvciBk
ZWZpbmVzIGJ1aWx0LWluIGF0dHJpYnV0ZXMgd2l0aCB0aGUgd3JvbmcgdHlwZS48L3RpdGxlPgor
ICAgIDwhLS0gSWYgdGhlIHRlc3QgcGFzc2VzLCB5b3Ugc2hvdWxkIHNlZSA0IHZlcnRpY2FsbHkt
c3RhY2tlZCBncmVlbiBib3hlcy4gLS0+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRlckVuYWJsZWQiLCAiMSIpOworICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJs
ZWQiLCAiMSIpOworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAg
ICAgeworICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBydW4gdGhlIHRlc3RzIGFmdGVyIHRoZSBz
aGFkZXJzIGRvd25sb2FkLgorICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICBkaXYgeworICAgICAgICAvKiBUaGUgc2hh
ZGVycyB3aWxsIHR1cm4gdGhlIGVsZW1lbnQncyBjb2xvciBmcm9tIGdyZWVuIHRvIHJlZCBpZiB0
aGV5IGFyZSBhYmxlIHRvIHNhbXBsZSBpdHMgdGV4dHVyZS4gKi8KKyAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBo
ZWlnaHQ6IDUwcHg7CisgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICB9CisgICAgLmludmFsaWQt
dHlwZS1hLW1lc2gtY29vcmQgeworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgn
Li4vcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnMnKSBtaXgodXJsKCcuLi9y
ZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDEu
MCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIC5pbnZhbGlkLXR5cGUtYS1wb3NpdGlvbiB7Cisg
ICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20odXJsKCcuLi9yZXNvdXJjZXMvaW52YWxpZC10
eXBlLWEtcG9zaXRpb24udnMnKSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykg
bm9ybWFsIHNvdXJjZS1hdG9wKSwgbWl4X2NvbG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQor
ICAgIC5pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQgeworICAgICAgICAtd2Via2l0LWZpbHRlcjog
Y3VzdG9tKHVybCgnLi4vcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRleC1jb29yZC52cycpIG1p
eCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBub3JtYWwgc291cmNlLWF0b3ApLCBt
aXhfY29sb3IgMS4wIDAuMCAwLjAgMS4wKTsKKyAgICB9CisgICAgLmludmFsaWQtdHlwZS1hLXRy
aWFuZ2xlLWNvb3JkIHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jl
c291cmNlcy9pbnZhbGlkLXR5cGUtYS10cmlhbmdsZS1jb29yZC52cycpIG1peCh1cmwoJy4uL3Jl
c291cmNlcy9taXgtY29sb3IuZnMnKSBub3JtYWwgc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMS4w
IDAuMCAwLjAgMS4wKTsKKyAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKyAgICA8ZGl2IGNsYXNzPSJpbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3Jk
Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJpbnZhbGlkLXR5cGUtYS1wb3NpdGlvbiI+PC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkIj48L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJpbnZhbGlkLXR5cGUtYS10cmlhbmdsZS1jb29yZCI+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMv
cmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2FkZTljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtbWVzaC1jb29yZC52cwpAQCAt
MCwwICsxLDE1IEBACisvLyBJZiB0aGlzIHNoYWRlcidzIHJlbGF0ZWQgdGVzdCBwYXNzZXMsIHRo
ZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUgYmVjYXVzZSBhX21lc2hDb29yZCdzIHR5
cGUgaXMgaW52YWxpZC4KKworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKy8vIGFfbWVzaENv
b3JkIHNob3VsZCBiZSBhIHZlYzIsIG5vdCBhIGZsb2F0LgorYXR0cmlidXRlIGZsb2F0IGFfbWVz
aENvb3JkOworCithdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOworCit1bmlmb3JtIG1hdDQgdV9w
cm9qZWN0aW9uTWF0cml4OworCit2b2lkIG1haW4oKQoreworICAgIGdsX1Bvc2l0aW9uID0gdV9w
cm9qZWN0aW9uTWF0cml4ICogYV9wb3NpdGlvbjsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtcG9zaXRpb24udnMgYi9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ZDVjMmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1h
LXBvc2l0aW9uLnZzCkBAIC0wLDAgKzEsMTQgQEAKKy8vIElmIHRoaXMgc2hhZGVyJ3MgcmVsYXRl
ZCB0ZXN0IHBhc3NlcywgdGhlIGN1c3RvbSBmaWx0ZXIgZG9lcyBub3QgZXhlY3V0ZSBiZWNhdXNl
IGFfcG9zaXRpb24ncyB0eXBlIGlzIGludmFsaWQuCisKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0
OworCisvLyBhX3Bvc2l0aW9uIHNob3VsZCBiZSBhIHZlYzQsIG5vdCBhIHZlYzMuCithdHRyaWJ1
dGUgdmVjMyBhX3Bvc2l0aW9uOworCit1bmlmb3JtIG1hdDQgdV9wcm9qZWN0aW9uTWF0cml4Owor
Cit2b2lkIG1haW4oKQoreworCXZlYzQgcG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24sIDEuMCk7
CisgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiBwb3NpdGlvbjsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBl
LWEtdGV4LWNvb3JkLnZzIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZh
bGlkLXR5cGUtYS10ZXgtY29vcmQudnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYTdmNzAxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9y
ZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzCkBAIC0wLDAgKzEsMTUgQEAKKy8v
IElmIHRoaXMgc2hhZGVyJ3MgcmVsYXRlZCB0ZXN0IHBhc3NlcywgdGhlIGN1c3RvbSBmaWx0ZXIg
ZG9lcyBub3QgZXhlY3V0ZSBiZWNhdXNlIGFfdGV4Q29vcmQncyB0eXBlIGlzIGludmFsaWQuCisK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisvLyBhX21lc2hDb29yZCBzaG91bGQgYmUgYSB2
ZWMyLCBub3QgYW4gdmVjNC4KK2F0dHJpYnV0ZSB2ZWM0IGFfbWVzaENvb3JkOworCithdHRyaWJ1
dGUgdmVjNCBhX3Bvc2l0aW9uOworCit1bmlmb3JtIG1hdDQgdV9wcm9qZWN0aW9uTWF0cml4Owor
Cit2b2lkIG1haW4oKQoreworICAgIGdsX1Bvc2l0aW9uID0gdV9wcm9qZWN0aW9uTWF0cml4ICog
YV9wb3NpdGlvbjsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQudnMgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRyaWFuZ2xlLWNvb3JkLnZzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1YzNhYjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRyaWFu
Z2xlLWNvb3JkLnZzCkBAIC0wLDAgKzEsMTUgQEAKKy8vIElmIHRoaXMgc2hhZGVyJ3MgcmVsYXRl
ZCB0ZXN0IHBhc3NlcywgdGhlIGN1c3RvbSBmaWx0ZXIgZG9lcyBub3QgZXhlY3V0ZSBiZWNhdXNl
IGFfdHJpYW5nbGVDb29yZCdzIHR5cGUgaXMgaW52YWxpZC4KKworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisKKy8vIGFfbWVzaENvb3JkIHNob3VsZCBiZSBhIHZlYzMsIG5vdCBhIHZlYzIuCith
dHRyaWJ1dGUgdmVjMiBhX3RyaWFuZ2xlQ29vcmQ7CisKK2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRp
b247CisKK3VuaWZvcm0gbWF0NCB1X3Byb2plY3Rpb25NYXRyaXg7CisKK3ZvaWQgbWFpbigpCit7
CisgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiBhX3Bvc2l0aW9uOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDNhNzEzMDUuLjkzOGEzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAxMi0xMC0xMiAgTWF4IFZ1am92aWMgIDxtdnVqb3ZpY0BhZG9iZS5jb20+CisKKyAgICAg
ICAgW0NTUyBTaGFkZXJzXSBWYWxpZGF0ZSB0eXBlcyBvZiBidWlsdC1pbiB2ZXJ0ZXggYXR0cmli
dXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg5
NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWpl
Y3QgY3VzdG9tIGZpbHRlcnMgaW4gd2hpY2ggdGhlIGF1dGhvciBkZWZpbmVkIGJ1aWx0LWluIGF0
dHJpYnV0ZXMgd2l0aCB0aGUgd3JvbmcgdHlwZS4KKyAgICAgICAgRm9yIGV4YW1wbGUsIHRoZSBH
TFNMIGRlY2xhcmF0aW9uICJhdHRyaWJ1dGUgZmxvYXQgYV9wb3NpdGlvbiIgaXMgaW5jb3JyZWN0
IGJlY2F1c2UKKyAgICAgICAgYV9wb3NpdGlvbiBzaG91bGQgYmUgYSB2ZWM0LCBub3QgYSBmbG9h
dC4KKworICAgICAgICBUZXN0OiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZp
bHRlci1hdHRyaWJ1dGUtdHlwZXMuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OkN1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW0pOgorICAgICAgICAgICAgQ2FsbCB0aGUgbmV3IHZhbGlkYXRlQXR0cmlidXRlcyBtZXRo
b2QuIElmIGl0IHJldHVybnMgZmFsc2UsIGV4aXQgdGhlIGNvbnN0cnVjdG9yIGVhcmx5LAorICAg
ICAgICAgICAgd2hpY2ggcmVqZWN0cyB0aGUgcHJvZ3JhbS4KKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OnZhbGlkYXRlQXR0cmlidXRlcyk6CisgICAgICAg
ICAgICBDcmVhdGUgYSBoYXNoIG9mIGF0dHJpYnV0ZSBuYW1lcyBhbmQgdHlwZXMuIFJ1biB0aHJv
dWdoIHRoZSBzeW1ib2xzLiBJZiB3ZSBmaW5kIGFuCisgICAgICAgICAgICBhdHRyaWJ1dGUgd2hv
c2UgdHlwZSBkb2Vzbid0IG1hdGNoIHRoZSBleHBlY3RlZCB0eXBlIGluIHRoZSBoYXNoLCByZXR1
cm4gZmFsc2UuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaDoKKyAgICAgICAgKEN1c3Rv
bUZpbHRlclZhbGlkYXRlZFByb2dyYW0pOgorCiAyMDEyLTEwLTEyICBBbmRyZWFzIEtsaW5nICA8
a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW5kZXJCUiBzaG91bGQgc2hhcmUgaXRzIGNv
bnN0YW50IG5ld2xpbmUgc3RyaW5nIGJldHdlZW4gaW5zdGFuY2VzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKaW5kZXggOWRhNWI1YS4uNWI2ZjQxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCkBAIC0z
Nyw3ICszNyw5IEBACiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkN1c3RvbUZpbHRlclByb2dyYW1JbmZvLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtOTQsNiArOTYsOSBAQCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9n
cmFtOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtKEN1c3RvbUZpbHRlckdsb2JhbENvbgog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKCF2YWxpZGF0ZUF0dHJpYnV0ZXMoc3lt
Ym9scykpCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIFZhbGlkYXRlIHRoZSBhdXRob3IncyBz
YW1wbGVycy4KICAgICBmb3IgKFZlY3RvcjxBTkdMRVNoYWRlclN5bWJvbD46Oml0ZXJhdG9yIGl0
ID0gc3ltYm9scy5iZWdpbigpOyBpdCAhPSBzeW1ib2xzLmVuZCgpOyArK2l0KSB7CiAgICAgICAg
IGlmIChpdC0+aXNTYW1wbGVyKCkpIHsKQEAgLTEyMyw2ICsxMjgsMzEgQEAgUGFzc1JlZlB0cjxD
dXN0b21GaWx0ZXJDb21waWxlZFByb2dyYW0+IEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06
OmNvbXBpbGVkUHIKICAgICByZXR1cm4gbV9jb21waWxlZFByb2dyYW07CiB9CiAKK2Jvb2wgQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6dmFsaWRhdGVBdHRyaWJ1dGVzKFZlY3RvcjxBTkdM
RVNoYWRlclN5bWJvbD4mIHN5bWJvbHMpIGNvbnN0Cit7CisgICAgdHlwZWRlZiBIYXNoTWFwPFN0
cmluZywgU2hEYXRhVHlwZT4gQnVpbHRJbkF0dHJpYnV0ZXM7CisgICAgQnVpbHRJbkF0dHJpYnV0
ZXMgYnVpbHRJbkF0dHJpYnV0ZXM7CisgICAgYnVpbHRJbkF0dHJpYnV0ZXMuc2V0KCJhX3Bvc2l0
aW9uIiwgU0hfRkxPQVRfVkVDNCk7CisgICAgYnVpbHRJbkF0dHJpYnV0ZXMuc2V0KCJhX3RleENv
b3JkIiwgU0hfRkxPQVRfVkVDMik7CisgICAgYnVpbHRJbkF0dHJpYnV0ZXMuc2V0KCJhX21lc2hD
b29yZCIsIFNIX0ZMT0FUX1ZFQzIpOworICAgIGJ1aWx0SW5BdHRyaWJ1dGVzLnNldCgiYV90cmlh
bmdsZUNvb3JkIiwgU0hfRkxPQVRfVkVDMyk7CisKKyAgICBmb3IgKFZlY3RvcjxBTkdMRVNoYWRl
clN5bWJvbD46Oml0ZXJhdG9yIHN5bWJvbCA9IHN5bWJvbHMuYmVnaW4oKTsgc3ltYm9sICE9IHN5
bWJvbHMuZW5kKCk7ICsrc3ltYm9sKSB7CisgICAgICAgIGlmIChzeW1ib2wtPnN5bWJvbFR5cGUg
IT0gU0hBREVSX1NZTUJPTF9UWVBFX0FUVFJJQlVURSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgIEJ1aWx0SW5BdHRyaWJ1dGVzOjppdGVyYXRvciBidWlsdEluQXR0cmlidXRlID0g
YnVpbHRJbkF0dHJpYnV0ZXMuZmluZChzeW1ib2wtPm5hbWUpOworICAgICAgICBpZiAoYnVpbHRJ
bkF0dHJpYnV0ZSAhPSBidWlsdEluQXR0cmlidXRlcy5lbmQoKSAmJiBidWlsdEluQXR0cmlidXRl
LT52YWx1ZSAhPSBzeW1ib2wtPmRhdGFUeXBlKSB7CisgICAgICAgICAgICAvLyBUaGUgYXV0aG9y
IGRlZmluZWQgb25lIG9mIHRoZSBidWlsdC1pbiBhdHRyaWJ1dGVzIHdpdGggdGhlIHdyb25nIHR5
cGUuCisgICAgICAgICAgICAvLyBGSVhNRTogUmVwb3J0IHRoZSB2YWxpZGF0aW9uIGVycm9ycy4K
KyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NDQxNgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAor
ICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06
OnJld3JpdGVNaXhWZXJ0ZXhTaGFkZXIoKQogewogICAgIEFTU0VSVChtX3Byb2dyYW1JbmZvLm1p
eFNldHRpbmdzKCkuZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVk
UHJvZ3JhbS5oCmluZGV4IDYxMDg4NGQuLjk3ZTQ4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3Jh
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5oCkBAIC05NCw2ICs5NCw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBwbGF0Zm9ybUluaXQoKTsKICAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOwogCisgICAg
Ym9vbCB2YWxpZGF0ZUF0dHJpYnV0ZXMoVmVjdG9yPEFOR0xFU2hhZGVyU3ltYm9sPiYgc3ltYm9s
cykgY29uc3Q7CisKICAgICBzdGF0aWMgU3RyaW5nIGRlZmF1bHRWZXJ0ZXhTaGFkZXJTdHJpbmco
KTsKICAgICBzdGF0aWMgU3RyaW5nIGRlZmF1bHRGcmFnbWVudFNoYWRlclN0cmluZygpOwogCg==
</data>
<flag name="commit-queue"
          id="181425"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168464</attachid>
            <date>2012-10-12 13:03:16 -0700</date>
            <delta_ts>2012-10-16 15:05:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>98972-2.patch</filename>
            <type>text/plain</type>
            <size>11923</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNDAxMzYxLi45NzAyMmIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMTAt
MTIgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gVmFsaWRhdGUgdHlwZXMgb2YgYnVpbHQtaW4gdmVydGV4IGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW52YWxpZC1jdXN0b20t
ZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIHVzZXMgZm91ciB2ZXJ0ZXggc2hhZGVycy4gRWFj
aCB2ZXJ0ZXggc2hhZGVyCisgICAgICAgIGRlZmluZXMgYSBzcGVjaWZpYyBhdHRyaWJ1dGUgd2l0
aCB0aGUgd3JvbmcgdHlwZS4gTm9uZSBvZiB0aGUgdmVydGV4IHNoYWRlcnMgaW4gdGhlIHRlc3QK
KyAgICAgICAgc2hvdWxkIGV4ZWN1dGUuIElmIGEgdmVydGV4IHNoYWRlciBkb2VzIGV4ZWN1dGUs
IGl0cyBhc3NvY2lhdGVkIGZyYWdtZW50IHNoYWRlciB3aWxsIHJlbmRlcgorICAgICAgICBhIGdy
ZWVuIGRpdiBhcyByZWQuCisKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQt
Y3VzdG9tLWZpbHRlci1hdHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRl
LXR5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52
YWxpZC10eXBlLWEtbWVzaC1jb29yZC52czogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJz
L3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1wb3NpdGlvbi52czogQWRkZWQuCisgICAgICAgICog
Y3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQudnM6IEFkZGVk
LgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5n
bGUtY29vcmQudnM6IEFkZGVkLgorCiAyMDEyLTEwLTEyICBSb2IgQnVpcyAgPHJidWlzQHJpbS5j
b20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEFkZCB0ZXN0cyBvZiBXZWJTb2NrZXRFbmFibGVk
IHByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20v
aW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmli
dXRlLXR5cGVzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNDA0YzZmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9j
dXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMjQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
dGl0bGU+VGVzdHMgdGhhdCBjdXN0b20gZmlsdGVycyBkbyBub3QgZXhlY3V0ZSBpZiB0aGUgYXV0
aG9yIGRlZmluZXMgYnVpbHQtaW4gYXR0cmlidXRlcyB3aXRoIHRoZSB3cm9uZyB0eXBlLjwvdGl0
bGU+CisgICAgPCEtLSAKKyAgICAgICAgVGhpcyBpcyB0aGUgcmVmZXJlbmNlIGZpbGUgZm9yIHRo
ZSB0ZXN0LgorICAgICAgICBJZiB0aGUgdGVzdCBwYXNzZXMsIHlvdSBzaG91bGQgc2VlIDQgdmVy
dGljYWxseS1zdGFja2VkIGdyZWVuIGJveGVzLgorICAgIC0tPgorICAgIDxzdHlsZT4KKyAgICBk
aXYgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMjU1LCAwKTsKKyAgICAgICAg
d2lkdGg6IDUwcHg7CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgbWFyZ2luOiAxMHB4
OworICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdj48L2Rpdj4K
KyAgICA8ZGl2PjwvZGl2PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRpdj48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20v
aW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTYyMTZhYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0
b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdHMgdGhhdCBjdXN0b20gZmls
dGVycyBkbyBub3QgZXhlY3V0ZSBpZiB0aGUgYXV0aG9yIGRlZmluZXMgYnVpbHQtaW4gYXR0cmli
dXRlcyB3aXRoIHRoZSB3cm9uZyB0eXBlLjwvdGl0bGU+CisgICAgPCEtLSBJZiB0aGUgdGVzdCBw
YXNzZXMsIHlvdSBzaG91bGQgc2VlIDQgdmVydGljYWxseS1zdGFja2VkIGdyZWVuIGJveGVzLiAt
LT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTQ3Vz
dG9tRmlsdGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBX
ZSBuZWVkIHRvIHJ1biB0aGUgdGVzdHMgYWZ0ZXIgdGhlIHNoYWRlcnMgZG93bmxvYWQuCisgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0
eWxlPgorICAgIGRpdiB7CisgICAgICAgIC8qIElmIHRoZSBzaGFkZXJzIGV4ZWN1dGUsIHRoZXkg
d2lsbCB0dXJuIHRoZSBlbGVtZW50J3MgY29sb3IgZnJvbSBncmVlbiB0byByZWQuICovCisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAyNTUsIDApOworICAgICAgICB3aWR0aDogNTBw
eDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgfQor
ICAgIC5pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkIHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6
IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzJykg
bWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCks
IG1peF9jb2xvciAxLjAgMC4wIDAuMCAxLjApOworICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWEt
cG9zaXRpb24geworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgnLi4vcmVzb3Vy
Y2VzL2ludmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZzJykgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21p
eC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAxLjAgMC4wIDAuMCAx
LjApOworICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkIHsKKyAgICAgICAgLXdl
YmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgt
Y29vcmQudnMnKSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNv
dXJjZS1hdG9wKSwgbWl4X2NvbG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIC5pbnZh
bGlkLXR5cGUtYS10cmlhbmdsZS1jb29yZCB7CisgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0
b20odXJsKCcuLi9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQudnMnKSBt
aXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNvdXJjZS1hdG9wKSwg
bWl4X2NvbG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBl
LWEtbWVzaC1jb29yZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtcG9z
aXRpb24iPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImludmFsaWQtdHlwZS1hLXRleC1jb29yZCI+
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzIGIvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhZGU5YzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLW1lc2gt
Y29vcmQudnMKQEAgLTAsMCArMSwxNSBAQAorLy8gSWYgdGhpcyBzaGFkZXIncyByZWxhdGVkIHRl
c3QgcGFzc2VzLCB0aGUgY3VzdG9tIGZpbHRlciBkb2VzIG5vdCBleGVjdXRlIGJlY2F1c2UgYV9t
ZXNoQ29vcmQncyB0eXBlIGlzIGludmFsaWQuCisKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0Owor
CisvLyBhX21lc2hDb29yZCBzaG91bGQgYmUgYSB2ZWMyLCBub3QgYSBmbG9hdC4KK2F0dHJpYnV0
ZSBmbG9hdCBhX21lc2hDb29yZDsKKworYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKKwordW5p
Zm9ybSBtYXQ0IHVfcHJvamVjdGlvbk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Q
b3NpdGlvbiA9IHVfcHJvamVjdGlvbk1hdHJpeCAqIGFfcG9zaXRpb247Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXBvc2l0
aW9uLnZzIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUt
YS1wb3NpdGlvbi52cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGQ1YzJh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9p
bnZhbGlkLXR5cGUtYS1wb3NpdGlvbi52cwpAQCAtMCwwICsxLDE0IEBACisvLyBJZiB0aGlzIHNo
YWRlcidzIHJlbGF0ZWQgdGVzdCBwYXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4
ZWN1dGUgYmVjYXVzZSBhX3Bvc2l0aW9uJ3MgdHlwZSBpcyBpbnZhbGlkLgorCitwcmVjaXNpb24g
bWVkaXVtcCBmbG9hdDsKKworLy8gYV9wb3NpdGlvbiBzaG91bGQgYmUgYSB2ZWM0LCBub3QgYSB2
ZWMzLgorYXR0cmlidXRlIHZlYzMgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJvamVj
dGlvbk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKwl2ZWM0IHBvc2l0aW9uID0gdmVjNChhX3Bv
c2l0aW9uLCAxLjApOworICAgIGdsX1Bvc2l0aW9uID0gdV9wcm9qZWN0aW9uTWF0cml4ICogcG9z
aXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L2ludmFsaWQtdHlwZS1hLXRleC1jb29yZC52cyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9y
ZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmE3ZjcwMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRleC1jb29yZC52cwpAQCAtMCww
ICsxLDE1IEBACisvLyBJZiB0aGlzIHNoYWRlcidzIHJlbGF0ZWQgdGVzdCBwYXNzZXMsIHRoZSBj
dXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUgYmVjYXVzZSBhX3RleENvb3JkJ3MgdHlwZSBp
cyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworLy8gYV9tZXNoQ29vcmQg
c2hvdWxkIGJlIGEgdmVjMiwgbm90IGFuIHZlYzQuCithdHRyaWJ1dGUgdmVjNCBhX21lc2hDb29y
ZDsKKworYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJvamVj
dGlvbk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVj
dGlvbk1hdHJpeCAqIGFfcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRyaWFuZ2xlLWNvb3JkLnZzIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10cmlhbmdsZS1j
b29yZC52cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWMzYWI1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlk
LXR5cGUtYS10cmlhbmdsZS1jb29yZC52cwpAQCAtMCwwICsxLDE1IEBACisvLyBJZiB0aGlzIHNo
YWRlcidzIHJlbGF0ZWQgdGVzdCBwYXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4
ZWN1dGUgYmVjYXVzZSBhX3RyaWFuZ2xlQ29vcmQncyB0eXBlIGlzIGludmFsaWQuCisKK3ByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OworCisvLyBhX21lc2hDb29yZCBzaG91bGQgYmUgYSB2ZWMzLCBu
b3QgYSB2ZWMyLgorYXR0cmlidXRlIHZlYzIgYV90cmlhbmdsZUNvb3JkOworCithdHRyaWJ1dGUg
dmVjNCBhX3Bvc2l0aW9uOworCit1bmlmb3JtIG1hdDQgdV9wcm9qZWN0aW9uTWF0cml4OworCit2
b2lkIG1haW4oKQoreworICAgIGdsX1Bvc2l0aW9uID0gdV9wcm9qZWN0aW9uTWF0cml4ICogYV9w
b3NpdGlvbjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MGZjMjNkLi4wNTQzNGMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMTAtMTIgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUu
Y29tPgorCisgICAgICAgIFtDU1MgU2hhZGVyc10gVmFsaWRhdGUgdHlwZXMgb2YgYnVpbHQtaW4g
dmVydGV4IGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk4OTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVqZWN0IGN1c3RvbSBmaWx0ZXJzIGluIHdoaWNoIHRoZSBhdXRob3IgZGVmaW5l
ZCBidWlsdC1pbiBhdHRyaWJ1dGVzIHdpdGggdGhlIHdyb25nIHR5cGUuCisgICAgICAgIEZvciBl
eGFtcGxlLCB0aGUgR0xTTCBkZWNsYXJhdGlvbiAiYXR0cmlidXRlIGZsb2F0IGFfcG9zaXRpb24i
IGlzIGluY29ycmVjdCBiZWNhdXNlCisgICAgICAgIGFfcG9zaXRpb24gc2hvdWxkIGJlIGEgdmVj
NCwgbm90IGEgZmxvYXQuCisKKyAgICAgICAgVGVzdDogY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZh
bGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLmh0bWwKKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpDdXN0b21GaWx0
ZXJWYWxpZGF0ZWRQcm9ncmFtKToKKyAgICAgICAgICAgIENhbGwgdGhlIG5ldyB2YWxpZGF0ZUF0
dHJpYnV0ZXMgbWV0aG9kLiBJZiBpdCByZXR1cm5zIGZhbHNlLCBleGl0IHRoZSBjb25zdHJ1Y3Rv
ciBlYXJseSwKKyAgICAgICAgICAgIHdoaWNoIHJlamVjdHMgdGhlIHByb2dyYW0uCisgICAgICAg
IChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjp2YWxpZGF0ZUF0dHJpYnV0
ZXMpOgorICAgICAgICAgICAgQ3JlYXRlIGEgaGFzaCBvZiBhdHRyaWJ1dGUgbmFtZXMgYW5kIHR5
cGVzLiBSdW4gdGhyb3VnaCB0aGUgc3ltYm9scy4gSWYgd2UgZmluZCBhbgorICAgICAgICAgICAg
YXR0cmlidXRlIHdob3NlIHR5cGUgZG9lc24ndCBtYXRjaCB0aGUgZXhwZWN0ZWQgdHlwZSBpbiB0
aGUgaGFzaCwgcmV0dXJuIGZhbHNlLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmg6Cisg
ICAgICAgIChDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtKToKKwogMjAxMi0xMC0xMSAgRW1p
bCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1N1YiBwaXhlbCBsYXlv
dXRdIENoYW5nZSBSZW5kZXJCb3ggdG8gbm90IHJvdW5kIGxvZ2ljYWxUb3AvTGVmdCBmb3IgUmVu
ZGVyUmVwbGFjZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0u
Y3BwCmluZGV4IDlkYTViNWEuLmM2M2QwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0
ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcApAQCAtMzMsMTEgKzMzLDEyIEBACiAKICNpbmNsdWRlICJD
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmgiCiAKLSNpbmNsdWRlICJBTkdMRVdlYktpdEJy
aWRnZS5oIgogI2luY2x1ZGUgIkN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCIKICNpbmNsdWRl
ICJDdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTk0LDYgKzk1LDkgQEAgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbShDdXN0b21GaWx0ZXJHbG9iYWxDb24KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmICghdmFsaWRhdGVBdHRyaWJ1dGVzKHN5bWJvbHMp
KQorICAgICAgICByZXR1cm47CisKICAgICAvLyBWYWxpZGF0ZSB0aGUgYXV0aG9yJ3Mgc2FtcGxl
cnMuCiAgICAgZm9yIChWZWN0b3I8QU5HTEVTaGFkZXJTeW1ib2w+OjppdGVyYXRvciBpdCA9IHN5
bWJvbHMuYmVnaW4oKTsgaXQgIT0gc3ltYm9scy5lbmQoKTsgKytpdCkgewogICAgICAgICBpZiAo
aXQtPmlzU2FtcGxlcigpKSB7CkBAIC0xMjMsNiArMTI3LDMxIEBAIFBhc3NSZWZQdHI8Q3VzdG9t
RmlsdGVyQ29tcGlsZWRQcm9ncmFtPiBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpjb21w
aWxlZFByCiAgICAgcmV0dXJuIG1fY29tcGlsZWRQcm9ncmFtOwogfQogCitib29sIEN1c3RvbUZp
bHRlclZhbGlkYXRlZFByb2dyYW06OnZhbGlkYXRlQXR0cmlidXRlcyhWZWN0b3I8QU5HTEVTaGFk
ZXJTeW1ib2w+JiBzeW1ib2xzKSBjb25zdAoreworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IFNoRGF0YVR5cGU+IEJ1aWx0SW5BdHRyaWJ1dGVzOworICAgIEJ1aWx0SW5BdHRyaWJ1dGVzIGJ1
aWx0SW5BdHRyaWJ1dGVzOworICAgIGJ1aWx0SW5BdHRyaWJ1dGVzLnNldCgiYV9wb3NpdGlvbiIs
IFNIX0ZMT0FUX1ZFQzQpOworICAgIGJ1aWx0SW5BdHRyaWJ1dGVzLnNldCgiYV90ZXhDb29yZCIs
IFNIX0ZMT0FUX1ZFQzIpOworICAgIGJ1aWx0SW5BdHRyaWJ1dGVzLnNldCgiYV9tZXNoQ29vcmQi
LCBTSF9GTE9BVF9WRUMyKTsKKyAgICBidWlsdEluQXR0cmlidXRlcy5zZXQoImFfdHJpYW5nbGVD
b29yZCIsIFNIX0ZMT0FUX1ZFQzMpOworCisgICAgZm9yIChWZWN0b3I8QU5HTEVTaGFkZXJTeW1i
b2w+OjppdGVyYXRvciBzeW1ib2wgPSBzeW1ib2xzLmJlZ2luKCk7IHN5bWJvbCAhPSBzeW1ib2xz
LmVuZCgpOyArK3N5bWJvbCkgeworICAgICAgICBpZiAoc3ltYm9sLT5zeW1ib2xUeXBlICE9IFNI
QURFUl9TWU1CT0xfVFlQRV9BVFRSSUJVVEUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBCdWlsdEluQXR0cmlidXRlczo6aXRlcmF0b3IgYnVpbHRJbkF0dHJpYnV0ZSA9IGJ1aWx0
SW5BdHRyaWJ1dGVzLmZpbmQoc3ltYm9sLT5uYW1lKTsKKyAgICAgICAgaWYgKGJ1aWx0SW5BdHRy
aWJ1dGUgIT0gYnVpbHRJbkF0dHJpYnV0ZXMuZW5kKCkgJiYgYnVpbHRJbkF0dHJpYnV0ZS0+dmFs
dWUgIT0gc3ltYm9sLT5kYXRhVHlwZSkgeworICAgICAgICAgICAgLy8gVGhlIGF1dGhvciBkZWZp
bmVkIG9uZSBvZiB0aGUgYnVpbHQtaW4gYXR0cmlidXRlcyB3aXRoIHRoZSB3cm9uZyB0eXBlLgor
ICAgICAgICAgICAgLy8gRklYTUU6IFJlcG9ydCB0aGUgdmFsaWRhdGlvbiBlcnJvcnMuCisgICAg
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MTYK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpyZXdy
aXRlTWl4VmVydGV4U2hhZGVyKCkKIHsKICAgICBBU1NFUlQobV9wcm9ncmFtSW5mby5taXhTZXR0
aW5ncygpLmVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dy
YW0uaAppbmRleCA2MTA4ODRkLi42NzYwM2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
clZhbGlkYXRlZFByb2dyYW0uaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaWYgRU5BQkxFKENTU19T
SEFERVJTKQogCisjaW5jbHVkZSAiQU5HTEVXZWJLaXRCcmlkZ2UuaCIKICNpbmNsdWRlICJDdXN0
b21GaWx0ZXJDb21waWxlZFByb2dyYW0uaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFt
SW5mby5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC05NCw2ICs5NSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXQoKTsKICAgICB2b2lkIHBsYXRmb3JtRGVzdHJv
eSgpOwogCisgICAgYm9vbCB2YWxpZGF0ZUF0dHJpYnV0ZXMoVmVjdG9yPEFOR0xFU2hhZGVyU3lt
Ym9sPiYgc3ltYm9scykgY29uc3Q7CisKICAgICBzdGF0aWMgU3RyaW5nIGRlZmF1bHRWZXJ0ZXhT
aGFkZXJTdHJpbmcoKTsKICAgICBzdGF0aWMgU3RyaW5nIGRlZmF1bHRGcmFnbWVudFNoYWRlclN0
cmluZygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169037</attachid>
            <date>2012-10-16 15:05:46 -0700</date>
            <delta_ts>2012-10-17 13:35:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>98972-3.patch</filename>
            <type>text/plain</type>
            <size>15775</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjN2E3M2IxLi4zYmZjZGM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTAt
MTYgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gVmFsaWRhdGUgdHlwZXMgb2YgYnVpbHQtaW4gdmVydGV4IGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW52YWxpZC1jdXN0b20t
ZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIHVzZXMgYSBzZXQgb2YgdmVydGV4IHNoYWRlcnMu
IEVhY2ggdmVydGV4IHNoYWRlcgorICAgICAgICBkZWZpbmVzIGEgc3BlY2lmaWMgYXR0cmlidXRl
IHdpdGggdGhlIHdyb25nIHR5cGUuIE5vbmUgb2YgdGhlIHZlcnRleCBzaGFkZXJzIGluIHRoZSB0
ZXN0CisgICAgICAgIHNob3VsZCBleGVjdXRlLiBJZiBhIHZlcnRleCBzaGFkZXIgZG9lcyBleGVj
dXRlLCBpdHMgYXNzb2NpYXRlZCBmcmFnbWVudCBzaGFkZXIgd2lsbCByZW5kZXIKKyAgICAgICAg
YSBncmVlbiBkaXYgYXMgcmVkLgorCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZh
bGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJp
YnV0ZS10eXBlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnM6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmls
dGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtcG9zaXRpb24udnM6IEFkZGVkLgorICAgICAg
ICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRy
aWFuZ2xlLWNvb3JkLnZzOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkudnM6IEFkZGVkLgorCiAyMDEyLTEwLTE2ICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgc3BlY2lh
bC1jYXNlIGZsb29yaW5nIG9mIGJhc2VsaW5lUG9zaXRpb24gZm9yIHJlcGxhY2VkIGVsZW1lbnRz
IGluIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJsb2NrRGlyZWN0aW9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1h
dHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9j
dXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OTBmZGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZp
bHRlci1hdHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3RzIHRoYXQgY3VzdG9t
IGZpbHRlcnMgZG8gbm90IGV4ZWN1dGUgaWYgdGhlIGF1dGhvciBkZWZpbmVzIGJ1aWx0LWluIGF0
dHJpYnV0ZXMgd2l0aCB0aGUgd3JvbmcgdHlwZS48L3RpdGxlPgorICAgIDwhLS0gCisgICAgICAg
IFRoaXMgaXMgdGhlIHJlZmVyZW5jZSBmaWxlIGZvciB0aGUgdGVzdC4KKyAgICAgICAgSWYgdGhl
IHRlc3QgcGFzc2VzLCB5b3Ugc2hvdWxkIHNlZSA1IHZlcnRpY2FsbHktc3RhY2tlZCBncmVlbiBi
b3hlcy4KKyAgICAtLT4KKyAgICA8c3R5bGU+CisgICAgZGl2IHsKKyAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBo
ZWlnaHQ6IDUwcHg7CisgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICB9CisgICAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRpdj48L2Rpdj4KKyAgICA8
ZGl2PjwvZGl2PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRpdj48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxp
ZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhYTA1NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmls
dGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdHMgdGhhdCBjdXN0b20gZmlsdGVycyBk
byBub3QgZXhlY3V0ZSBpZiB0aGUgYXV0aG9yIGRlZmluZXMgYnVpbHQtaW4gYXR0cmlidXRlcyB3
aXRoIHRoZSB3cm9uZyB0eXBlLjwvdGl0bGU+CisgICAgPCEtLSBJZiB0aGUgdGVzdCBwYXNzZXMs
IHlvdSBzaG91bGQgc2VlIDUgdmVydGljYWxseS1zdGFja2VkIGdyZWVuIGJveGVzLiAtLT4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTQ3VzdG9tRmls
dGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBXZSBuZWVk
IHRvIHJ1biB0aGUgdGVzdHMgYWZ0ZXIgdGhlIHNoYWRlcnMgZG93bmxvYWQuCisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgor
ICAgIGRpdiB7CisgICAgICAgIC8qIElmIHRoZSBzaGFkZXJzIGV4ZWN1dGUsIHRoZXkgd2lsbCB0
dXJuIHRoZSBlbGVtZW50J3MgY29sb3IgZnJvbSBncmVlbiB0byByZWQuICovCisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYigwLCAyNTUsIDApOworICAgICAgICB3aWR0aDogNTBweDsKKyAg
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgfQorICAgIC5p
bnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkIHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3Rv
bSh1cmwoJy4uL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzJykgbWl4KHVy
bCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9j
b2xvciAxLjAgMC4wIDAuMCAxLjApOworICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWEtcG9zaXRp
b24geworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgnLi4vcmVzb3VyY2VzL2lu
dmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZzJykgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xv
ci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAxLjAgMC4wIDAuMCAxLjApOwor
ICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkIHsKKyAgICAgICAgLXdlYmtpdC1m
aWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQu
dnMnKSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNvdXJjZS1h
dG9wKSwgbWl4X2NvbG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIC5pbnZhbGlkLXR5
cGUtYS10cmlhbmdsZS1jb29yZCB7CisgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20odXJs
KCcuLi9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQudnMnKSBtaXgodXJs
KCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNvdXJjZS1hdG9wKSwgbWl4X2Nv
bG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIC5pbnZhbGlkLXR5cGUtYXR0cmlidXRl
LWFycmF5IHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNl
cy9pbnZhbGlkLXR5cGUtYXR0cmlidXRlLWFycmF5LnZzJykgbWl4KHVybCgnLi4vcmVzb3VyY2Vz
L21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAxLjAgMC4wIDAu
MCAxLjApOyAgICAgICAgCisgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtbWVzaC1jb29y
ZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtcG9zaXRpb24iPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImludmFsaWQtdHlwZS1hLXRleC1jb29yZCI+PC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQiPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9p
bnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jl
c291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNhZGU5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnMKQEAgLTAs
MCArMSwxNSBAQAorLy8gSWYgdGhpcyBzaGFkZXIncyByZWxhdGVkIHRlc3QgcGFzc2VzLCB0aGUg
Y3VzdG9tIGZpbHRlciBkb2VzIG5vdCBleGVjdXRlIGJlY2F1c2UgYV9tZXNoQ29vcmQncyB0eXBl
IGlzIGludmFsaWQuCisKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisvLyBhX21lc2hDb29y
ZCBzaG91bGQgYmUgYSB2ZWMyLCBub3QgYSBmbG9hdC4KK2F0dHJpYnV0ZSBmbG9hdCBhX21lc2hD
b29yZDsKKworYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJv
amVjdGlvbk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJv
amVjdGlvbk1hdHJpeCAqIGFfcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZzIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1wb3NpdGlvbi52cwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGE0OGU4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1w
b3NpdGlvbi52cwpAQCAtMCwwICsxLDEzIEBACisvLyBJZiB0aGlzIHNoYWRlcidzIHJlbGF0ZWQg
dGVzdCBwYXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUgYmVjYXVzZSBh
X3Bvc2l0aW9uJ3MgdHlwZSBpcyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KworLy8gYV9wb3NpdGlvbiBzaG91bGQgYmUgYSB2ZWM0LCBub3QgYSB2ZWMzLgorYXR0cmlidXRl
IHZlYzMgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlvbk1hdHJpeDsKKwor
dm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlvbk1hdHJpeCAqIHZl
YzQoYV9wb3NpdGlvbiwgMS4wKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzIGIvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQudnMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYxMTMzMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNv
b3JkLnZzCkBAIC0wLDAgKzEsMTUgQEAKKy8vIElmIHRoaXMgc2hhZGVyJ3MgcmVsYXRlZCB0ZXN0
IHBhc3NlcywgdGhlIGN1c3RvbSBmaWx0ZXIgZG9lcyBub3QgZXhlY3V0ZSBiZWNhdXNlIGFfdGV4
Q29vcmQncyB0eXBlIGlzIGludmFsaWQuCisKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisv
LyBhX21lc2hDb29yZCBzaG91bGQgYmUgYSB2ZWMyLCBub3QgYW4gdmVjNC4KK2F0dHJpYnV0ZSB2
ZWM0IGFfdGV4Q29vcmQ7CisKK2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb247CisKK3VuaWZvcm0g
bWF0NCB1X3Byb2plY3Rpb25NYXRyaXg7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRp
b24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiBhX3Bvc2l0aW9uOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10cmlhbmdsZS1j
b29yZC52cyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBl
LWEtdHJpYW5nbGUtY29vcmQudnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ODVjM2FiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQudnMKQEAgLTAsMCArMSwxNSBAQAor
Ly8gSWYgdGhpcyBzaGFkZXIncyByZWxhdGVkIHRlc3QgcGFzc2VzLCB0aGUgY3VzdG9tIGZpbHRl
ciBkb2VzIG5vdCBleGVjdXRlIGJlY2F1c2UgYV90cmlhbmdsZUNvb3JkJ3MgdHlwZSBpcyBpbnZh
bGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworLy8gYV9tZXNoQ29vcmQgc2hvdWxk
IGJlIGEgdmVjMywgbm90IGEgdmVjMi4KK2F0dHJpYnV0ZSB2ZWMyIGFfdHJpYW5nbGVDb29yZDsK
KworYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlv
bk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlv
bk1hdHJpeCAqIGFfcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Zp
bHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkudnMgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXku
dnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFlYmJhNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBl
LWF0dHJpYnV0ZS1hcnJheS52cwpAQCAtMCwwICsxLDEzIEBACisvLyBJZiB0aGlzIHNoYWRlcidz
IHJlbGF0ZWQgdGVzdCBwYXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUg
YmVjYXVzZSBhX3Bvc2l0aW9uJ3MgdHlwZSBpcyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKworLy8gYV9wb3NpdGlvbiBzaG91bGQgYmUgYSB2ZWM0LCBub3QgYSB2ZWM0WzEw
XS4KK2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb25bMTBdOworCit1bmlmb3JtIG1hdDQgdV9wcm9q
ZWN0aW9uTWF0cml4OworCit2b2lkIG1haW4oKQoreworICAgIGdsX1Bvc2l0aW9uID0gdV9wcm9q
ZWN0aW9uTWF0cml4ICogYV9wb3NpdGlvblswXTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYzM0NWZhLi4y
NzIwNWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMTAtMTYgIE1heCBWdWpv
dmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhZGVyc10gVmFsaWRh
dGUgdHlwZXMgb2YgYnVpbHQtaW4gdmVydGV4IGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVqZWN0IGN1c3RvbSBmaWx0ZXJzIGluIHdo
aWNoIHRoZSBhdXRob3IgZGVmaW5lZCBidWlsdC1pbiBhdHRyaWJ1dGVzIHdpdGggdGhlIHdyb25n
IHR5cGUuCisgICAgICAgIEZvciBleGFtcGxlLCB0aGUgR0xTTCBkZWNsYXJhdGlvbiAiYXR0cmli
dXRlIGZsb2F0IGFfcG9zaXRpb24iIGlzIGluY29ycmVjdCBiZWNhdXNlCisgICAgICAgIGFfcG9z
aXRpb24gc2hvdWxkIGJlIGEgdmVjNCwgbm90IGEgZmxvYXQuCisKKyAgICAgICAgVGVzdDogY3Nz
My9maWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpBTkdMRVNoYWRlclN5bWJvbDo6aXNBcnJheSk6CisgICAgICAgIChB
TkdMRVNoYWRlclN5bWJvbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9D
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1c3Rv
bUZpbHRlclZhbGlkYXRlZFByb2dyYW06OkN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0pOgor
ICAgICAgICAgICAgQ2FsbCB0aGUgbmV3IHZhbGlkYXRlU3ltYm9scyBtZXRob2QuIElmIGl0IHJl
dHVybnMgZmFsc2UsIGV4aXQgdGhlIGNvbnN0cnVjdG9yIGVhcmx5LAorICAgICAgICAgICAgd2hp
Y2ggcmVqZWN0cyB0aGUgcHJvZ3JhbS4KKyAgICAgICAgICAgIE1vdmUgdGhlIGxvb3AgdGhhdCBj
aGVja3MgaWYgYW55IHVuaWZvcm0gaXMgYSBzYW1wbGVyIGludG8gdGhlIHRoZSB2YWxpZGF0ZVN5
bWJvbHMKKyAgICAgICAgICAgIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRl
clZhbGlkYXRlZFByb2dyYW06OnZhbGlkYXRlU3ltYm9scyk6CisgICAgICAgICAgICBMb29wIHRo
cm91Z2ggYWxsIG9mIHRoZSBzeW1ib2xzLiBSZWplY3QgdGhlIHNoYWRlciBpZiB3ZSBmaW5kIGEg
YnVpbHQtaW4gYXR0cmlidXRlCisgICAgICAgICAgICBkZWZpbmVkIHdpdGggdGhlIHdyb25nIHR5
cGUuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaDoKKyAgICAgICAgKEN1c3RvbUZpbHRl
clZhbGlkYXRlZFByb2dyYW0pOgorCiAyMDEyLTEwLTE2ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgc3BlY2lhbC1jYXNlIGZsb29yaW5nIG9mIGJh
c2VsaW5lUG9zaXRpb24gZm9yIHJlcGxhY2VkIGVsZW1lbnRzIGluIElubGluZUZsb3dCb3g6OnBs
YWNlQm94ZXNJbkJsb2NrRGlyZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAppbmRleCAxNzhkM2JkLi45MjFiMzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0
QnJpZGdlLmgKQEAgLTU0LDYgKzU0LDEyIEBAIHN0cnVjdCBBTkdMRVNoYWRlclN5bWJvbCB7CiAg
ICAgU2hEYXRhVHlwZSBkYXRhVHlwZTsKICAgICBpbnQgc2l6ZTsKIAorICAgIGJvb2wgaXNBcnJh
eSgpCisgICAgeworICAgICAgICBBU1NFUlQoc2l6ZSA+IDApOworICAgICAgICByZXR1cm4gc2l6
ZSA+IDE7CisgICAgfQorCiAgICAgYm9vbCBpc1NhbXBsZXIoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHN5bWJvbFR5cGUgPT0gU0hBREVSX1NZTUJPTF9UWVBFX1VOSUZPUk0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCmluZGV4IDg1ZGRkYTUuLjA4NGRk
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcApA
QCAtMzMsMTEgKzMzLDEyIEBACiAKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9n
cmFtLmgiCiAKLSNpbmNsdWRlICJBTkdMRVdlYktpdEJyaWRnZS5oIgogI2luY2x1ZGUgIkN1c3Rv
bUZpbHRlckdsb2JhbENvbnRleHQuaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtSW5m
by5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk1LDE2ICs5Niwx
MCBAQCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtKEN1c3RvbUZpbHRlckdsb2JhbENvbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgLy8gVmFsaWRhdGUgdGhlIGF1dGhvcidzIHNhbXBsZXJzLgotICAgIGZvciAoVmVjdG9yPEFO
R0xFU2hhZGVyU3ltYm9sPjo6aXRlcmF0b3IgaXQgPSBzeW1ib2xzLmJlZ2luKCk7IGl0ICE9IHN5
bWJvbHMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT5pc1NhbXBsZXIoKSkgewotICAg
ICAgICAgICAgLy8gRklYTUU6IEZvciBub3csIHdlIHJlc3RyaWN0IHNoYWRlcnMgd2l0aCBhbnkg
c2FtcGxlciBkZWZpbmVkLgotICAgICAgICAgICAgLy8gV2hlbiB3ZSBpbXBsZW1lbnQgdGV4dHVy
ZSBwYXJhbWV0ZXJzLCB3ZSB3aWxsIGFsbG93IHNoYWRlcnMgd2hvc2Ugc2FtcGxlcnMgYXJlIGJv
dW5kIHRvIHZhbGlkIHRleHR1cmVzLgotICAgICAgICAgICAgLy8gV2UgbXVzdCBub3QgYWxsb3cg
T3BlbkdMIHRvIGdpdmUgdW5ib3VuZCBzYW1wbGVycyBhIGRlZmF1bHQgdmFsdWUgb2YgMCBiZWNh
dXNlIHRoYXQgcmVmZXJlbmNlcyB0aGUgRE9NIGVsZW1lbnQgdGV4dHVyZSwKLSAgICAgICAgICAg
IC8vIHdoaWNoIHNob3VsZCBiZSBpbmFjY2Vzc2libGUgdG8gdGhlIGF1dGhvcidzIHNoYWRlciBj
b2RlLgotICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk2MjMwCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICBpZiAoIXZhbGlk
YXRlU3ltYm9scyhzeW1ib2xzKSkgeworICAgICAgICAvLyBGSVhNRTogUmVwb3J0IHZhbGlkYXRp
b24gZXJyb3JzLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzQ0MTYKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIFdlIG5lZWQgdG8g
YWRkIHRleHR1cmUgYWNjZXNzLCBibGVuZGluZywgYW5kIGNvbXBvc2l0aW5nIGNvZGUgdG8gc2hh
ZGVycyB0aGF0IGFyZSByZWZlcmVuY2VkIGZyb20gdGhlIENTUyBtaXggZnVuY3Rpb24uCkBAIC0x
MjQsNiArMTE5LDU1IEBAIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtPiBD
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpjb21waWxlZFByCiAgICAgcmV0dXJuIG1fY29t
cGlsZWRQcm9ncmFtOwogfQogCitib29sIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OnZh
bGlkYXRlU3ltYm9scyhWZWN0b3I8QU5HTEVTaGFkZXJTeW1ib2w+JiBzeW1ib2xzKSBjb25zdAor
eworICAgIGZvciAoVmVjdG9yPEFOR0xFU2hhZGVyU3ltYm9sPjo6aXRlcmF0b3Igc3ltYm9sID0g
c3ltYm9scy5iZWdpbigpOyBzeW1ib2wgIT0gc3ltYm9scy5lbmQoKTsgKytzeW1ib2wpIHsKKyAg
ICAgICAgc3dpdGNoIChzeW1ib2wtPnN5bWJvbFR5cGUpIHsKKyAgICAgICAgY2FzZSBTSEFERVJf
U1lNQk9MX1RZUEVfQVRUUklCVVRFOiB7CisgICAgICAgICAgICAvLyBBdHRyaWJ1dGVzIGNhbid0
IGJlIGFycmF5cywgYWNjb3JkaW5nIHRvIHNlY3Rpb24gNC4zLjMgb2YgdGhlIEdMU0wgRVMgc3Bl
YzoKKyAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvZ2xlcy9z
cGVjcy8yLjAvR0xTTF9FU19TcGVjaWZpY2F0aW9uXzEuMC4xNy5wZGYKKyAgICAgICAgICAgIC8v
IEFOR0xFIHNob3VsZCBoYXZlIGFscmVhZHkgcmVqZWN0ZWQgdGhlIHNoYWRlci4KKyAgICAgICAg
ICAgIEFTU0VSVCghc3ltYm9sLT5pc0FycmF5KCkpOworICAgICAgICAKKyAgICAgICAgICAgIHR5
cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFNoRGF0YVR5cGU+IFN5bWJvbE5hbWVUb1R5cGU7CisgICAg
ICAgICAgICBzdGF0aWMgU3ltYm9sTmFtZVRvVHlwZSogYXR0cmlidXRlVG9UeXBlID0gMDsKKyAg
ICAgICAgICAgIGlmICghYXR0cmlidXRlVG9UeXBlKSB7CisgICAgICAgICAgICAgICAgYXR0cmli
dXRlVG9UeXBlID0gbmV3IFN5bWJvbE5hbWVUb1R5cGU7CisgICAgICAgICAgICAgICAgYXR0cmli
dXRlVG9UeXBlLT5zZXQoImFfbWVzaENvb3JkIiwgU0hfRkxPQVRfVkVDMik7CisgICAgICAgICAg
ICAgICAgYXR0cmlidXRlVG9UeXBlLT5zZXQoImFfcG9zaXRpb24iLCBTSF9GTE9BVF9WRUM0KTsK
KyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVUb1R5cGUtPnNldCgiYV90ZXhDb29yZCIsIFNIX0ZM
T0FUX1ZFQzIpOworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVRvVHlwZS0+c2V0KCJhX3RyaWFu
Z2xlQ29vcmQiLCBTSF9GTE9BVF9WRUMzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
U3ltYm9sTmFtZVRvVHlwZTo6aXRlcmF0b3IgZXhwZWN0ZWRBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVU
b1R5cGUtPmZpbmQoc3ltYm9sLT5uYW1lKTsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZEF0dHJp
YnV0ZSAhPSBhdHRyaWJ1dGVUb1R5cGUtPmVuZCgpICYmIHN5bWJvbC0+ZGF0YVR5cGUgIT0gZXhw
ZWN0ZWRBdHRyaWJ1dGUtPnZhbHVlKSB7CisgICAgICAgICAgICAgICAgLy8gVGhlIGF1dGhvciBk
ZWZpbmVkIG9uZSBvZiB0aGUgYnVpbHQtaW4gYXR0cmlidXRlcyB3aXRoIHRoZSB3cm9uZyB0eXBl
LgorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgLy8gRklYTUU6IEFsc28gcmV0dXJuIGZhbHNlIHdoZW4gdGhlIGF0dHJpYnV0ZSBpcyBu
b3Qgb25lIG9mIHRoZSBidWlsdC1pbiBhdHRyaWJ1dGUuCisgICAgICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg5NzMKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNhc2UgU0hBREVSX1NZTUJPTF9UWVBFX1VOSUZPUk06Cisg
ICAgICAgICAgICBpZiAoc3ltYm9sLT5pc1NhbXBsZXIoKSkgeworICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBGb3Igbm93LCB3ZSByZXN0cmljdCBzaGFkZXJzIHdpdGggYW55IHNhbXBsZXIgZGVm
aW5lZC4KKyAgICAgICAgICAgICAgICAvLyBXaGVuIHdlIGltcGxlbWVudCB0ZXh0dXJlIHBhcmFt
ZXRlcnMsIHdlIHdpbGwgYWxsb3cgc2hhZGVycyB3aG9zZSBzYW1wbGVycyBhcmUgYm91bmQgdG8g
dmFsaWQgdGV4dHVyZXMuCisgICAgICAgICAgICAgICAgLy8gV2UgbXVzdCBub3QgYWxsb3cgT3Bl
bkdMIHRvIGdpdmUgdW5ib3VuZCBzYW1wbGVycyBhIGRlZmF1bHQgdmFsdWUgb2YgMCBiZWNhdXNl
IHRoYXQgcmVmZXJlbmNlcyB0aGUgZWxlbWVudCB0ZXh0dXJlLAorICAgICAgICAgICAgICAgIC8v
IHdoaWNoIHNob3VsZCBiZSBpbmFjY2Vzc2libGUgdG8gdGhlIGF1dGhvcidzIHNoYWRlciBjb2Rl
LgorICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NjIzMAorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06
OnJld3JpdGVNaXhWZXJ0ZXhTaGFkZXIoKQogewogICAgIEFTU0VSVChtX3Byb2dyYW1JbmZvLnBy
b2dyYW1UeXBlKCkgPT0gUFJPR1JBTV9UWVBFX0JMRU5EU19FTEVNRU5UX1RFWFRVUkUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaAppbmRleCA2MTA4ODRkLi5l
OWJkMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaApA
QCAtMzIsNiArMzIsNyBAQAogCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogCisjaW5jbHVkZSAi
QU5HTEVXZWJLaXRCcmlkZ2UuaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJDb21waWxlZFByb2dy
YW0uaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CkBAIC05NCw2ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0
Zm9ybUluaXQoKTsKICAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOwogCisgICAgYm9vbCB2YWxp
ZGF0ZVN5bWJvbHMoVmVjdG9yPEFOR0xFU2hhZGVyU3ltYm9sPiYgc3ltYm9scykgY29uc3Q7CisK
ICAgICBzdGF0aWMgU3RyaW5nIGRlZmF1bHRWZXJ0ZXhTaGFkZXJTdHJpbmcoKTsKICAgICBzdGF0
aWMgU3RyaW5nIGRlZmF1bHRGcmFnbWVudFNoYWRlclN0cmluZygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169246</attachid>
            <date>2012-10-17 13:35:19 -0700</date>
            <delta_ts>2012-10-17 16:17:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>98972-4.patch</filename>
            <type>text/plain</type>
            <size>15016</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjN2E3M2IxLi5lZWIyM2ZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTAt
MTcgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gVmFsaWRhdGUgdHlwZXMgb2YgYnVpbHQtaW4gdmVydGV4IGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW52YWxpZC1jdXN0b20t
ZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIHVzZXMgYSBzZXQgb2YgdmVydGV4IHNoYWRlcnMu
IEVhY2ggdmVydGV4IHNoYWRlcgorICAgICAgICBkZWZpbmVzIGEgc3BlY2lmaWMgYXR0cmlidXRl
IHdpdGggdGhlIHdyb25nIHR5cGUuIE5vbmUgb2YgdGhlIHZlcnRleCBzaGFkZXJzIGluIHRoZSB0
ZXN0CisgICAgICAgIHNob3VsZCBleGVjdXRlLiBJZiBhIHZlcnRleCBzaGFkZXIgZG9lcyBleGVj
dXRlLCBpdHMgYXNzb2NpYXRlZCBmcmFnbWVudCBzaGFkZXIgd2lsbCByZW5kZXIKKyAgICAgICAg
YSBncmVlbiBkaXYgYXMgcmVkLgorCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZh
bGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJp
YnV0ZS10eXBlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnM6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmls
dGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtcG9zaXRpb24udnM6IEFkZGVkLgorICAgICAg
ICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRy
aWFuZ2xlLWNvb3JkLnZzOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkudnM6IEFkZGVkLgorCiAyMDEyLTEwLTE2ICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgc3BlY2lh
bC1jYXNlIGZsb29yaW5nIG9mIGJhc2VsaW5lUG9zaXRpb24gZm9yIHJlcGxhY2VkIGVsZW1lbnRz
IGluIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJsb2NrRGlyZWN0aW9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1h
dHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9j
dXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OTBmZGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZp
bHRlci1hdHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3RzIHRoYXQgY3VzdG9t
IGZpbHRlcnMgZG8gbm90IGV4ZWN1dGUgaWYgdGhlIGF1dGhvciBkZWZpbmVzIGJ1aWx0LWluIGF0
dHJpYnV0ZXMgd2l0aCB0aGUgd3JvbmcgdHlwZS48L3RpdGxlPgorICAgIDwhLS0gCisgICAgICAg
IFRoaXMgaXMgdGhlIHJlZmVyZW5jZSBmaWxlIGZvciB0aGUgdGVzdC4KKyAgICAgICAgSWYgdGhl
IHRlc3QgcGFzc2VzLCB5b3Ugc2hvdWxkIHNlZSA1IHZlcnRpY2FsbHktc3RhY2tlZCBncmVlbiBi
b3hlcy4KKyAgICAtLT4KKyAgICA8c3R5bGU+CisgICAgZGl2IHsKKyAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBo
ZWlnaHQ6IDUwcHg7CisgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICB9CisgICAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRpdj48L2Rpdj4KKyAgICA8
ZGl2PjwvZGl2PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRpdj48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxp
ZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhYTA1NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmls
dGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdHMgdGhhdCBjdXN0b20gZmlsdGVycyBk
byBub3QgZXhlY3V0ZSBpZiB0aGUgYXV0aG9yIGRlZmluZXMgYnVpbHQtaW4gYXR0cmlidXRlcyB3
aXRoIHRoZSB3cm9uZyB0eXBlLjwvdGl0bGU+CisgICAgPCEtLSBJZiB0aGUgdGVzdCBwYXNzZXMs
IHlvdSBzaG91bGQgc2VlIDUgdmVydGljYWxseS1zdGFja2VkIGdyZWVuIGJveGVzLiAtLT4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTQ3VzdG9tRmls
dGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBXZSBuZWVk
IHRvIHJ1biB0aGUgdGVzdHMgYWZ0ZXIgdGhlIHNoYWRlcnMgZG93bmxvYWQuCisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgor
ICAgIGRpdiB7CisgICAgICAgIC8qIElmIHRoZSBzaGFkZXJzIGV4ZWN1dGUsIHRoZXkgd2lsbCB0
dXJuIHRoZSBlbGVtZW50J3MgY29sb3IgZnJvbSBncmVlbiB0byByZWQuICovCisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYigwLCAyNTUsIDApOworICAgICAgICB3aWR0aDogNTBweDsKKyAg
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgfQorICAgIC5p
bnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkIHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3Rv
bSh1cmwoJy4uL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzJykgbWl4KHVy
bCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9j
b2xvciAxLjAgMC4wIDAuMCAxLjApOworICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWEtcG9zaXRp
b24geworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgnLi4vcmVzb3VyY2VzL2lu
dmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZzJykgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xv
ci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAxLjAgMC4wIDAuMCAxLjApOwor
ICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkIHsKKyAgICAgICAgLXdlYmtpdC1m
aWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQu
dnMnKSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNvdXJjZS1h
dG9wKSwgbWl4X2NvbG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIC5pbnZhbGlkLXR5
cGUtYS10cmlhbmdsZS1jb29yZCB7CisgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20odXJs
KCcuLi9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQudnMnKSBtaXgodXJs
KCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNvdXJjZS1hdG9wKSwgbWl4X2Nv
bG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIC5pbnZhbGlkLXR5cGUtYXR0cmlidXRl
LWFycmF5IHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNl
cy9pbnZhbGlkLXR5cGUtYXR0cmlidXRlLWFycmF5LnZzJykgbWl4KHVybCgnLi4vcmVzb3VyY2Vz
L21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAxLjAgMC4wIDAu
MCAxLjApOyAgICAgICAgCisgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtbWVzaC1jb29y
ZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtcG9zaXRpb24iPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImludmFsaWQtdHlwZS1hLXRleC1jb29yZCI+PC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQiPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9p
bnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jl
c291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNhZGU5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnMKQEAgLTAs
MCArMSwxNSBAQAorLy8gSWYgdGhpcyBzaGFkZXIncyByZWxhdGVkIHRlc3QgcGFzc2VzLCB0aGUg
Y3VzdG9tIGZpbHRlciBkb2VzIG5vdCBleGVjdXRlIGJlY2F1c2UgYV9tZXNoQ29vcmQncyB0eXBl
IGlzIGludmFsaWQuCisKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisvLyBhX21lc2hDb29y
ZCBzaG91bGQgYmUgYSB2ZWMyLCBub3QgYSBmbG9hdC4KK2F0dHJpYnV0ZSBmbG9hdCBhX21lc2hD
b29yZDsKKworYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJv
amVjdGlvbk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJv
amVjdGlvbk1hdHJpeCAqIGFfcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZzIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1wb3NpdGlvbi52cwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGE0OGU4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1w
b3NpdGlvbi52cwpAQCAtMCwwICsxLDEzIEBACisvLyBJZiB0aGlzIHNoYWRlcidzIHJlbGF0ZWQg
dGVzdCBwYXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUgYmVjYXVzZSBh
X3Bvc2l0aW9uJ3MgdHlwZSBpcyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KworLy8gYV9wb3NpdGlvbiBzaG91bGQgYmUgYSB2ZWM0LCBub3QgYSB2ZWMzLgorYXR0cmlidXRl
IHZlYzMgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlvbk1hdHJpeDsKKwor
dm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlvbk1hdHJpeCAqIHZl
YzQoYV9wb3NpdGlvbiwgMS4wKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzIGIvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQudnMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYxMTMzMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNv
b3JkLnZzCkBAIC0wLDAgKzEsMTUgQEAKKy8vIElmIHRoaXMgc2hhZGVyJ3MgcmVsYXRlZCB0ZXN0
IHBhc3NlcywgdGhlIGN1c3RvbSBmaWx0ZXIgZG9lcyBub3QgZXhlY3V0ZSBiZWNhdXNlIGFfdGV4
Q29vcmQncyB0eXBlIGlzIGludmFsaWQuCisKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisv
LyBhX21lc2hDb29yZCBzaG91bGQgYmUgYSB2ZWMyLCBub3QgYW4gdmVjNC4KK2F0dHJpYnV0ZSB2
ZWM0IGFfdGV4Q29vcmQ7CisKK2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb247CisKK3VuaWZvcm0g
bWF0NCB1X3Byb2plY3Rpb25NYXRyaXg7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRp
b24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiBhX3Bvc2l0aW9uOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10cmlhbmdsZS1j
b29yZC52cyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBl
LWEtdHJpYW5nbGUtY29vcmQudnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ODVjM2FiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQudnMKQEAgLTAsMCArMSwxNSBAQAor
Ly8gSWYgdGhpcyBzaGFkZXIncyByZWxhdGVkIHRlc3QgcGFzc2VzLCB0aGUgY3VzdG9tIGZpbHRl
ciBkb2VzIG5vdCBleGVjdXRlIGJlY2F1c2UgYV90cmlhbmdsZUNvb3JkJ3MgdHlwZSBpcyBpbnZh
bGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworLy8gYV9tZXNoQ29vcmQgc2hvdWxk
IGJlIGEgdmVjMywgbm90IGEgdmVjMi4KK2F0dHJpYnV0ZSB2ZWMyIGFfdHJpYW5nbGVDb29yZDsK
KworYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlv
bk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlv
bk1hdHJpeCAqIGFfcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Zp
bHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkudnMgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXku
dnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdjNDIyMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBl
LWF0dHJpYnV0ZS1hcnJheS52cwpAQCAtMCwwICsxLDEzIEBACisvLyBJZiB0aGlzIHNoYWRlcidz
IHJlbGF0ZWQgdGVzdCBwYXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUg
YmVjYXVzZSBhX3Bvc2l0aW9uJ3MgdHlwZSBpcyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKworLy8gYV9wb3NpdGlvbiBzaG91bGQgYmUgYSB2ZWM0LCBub3QgYSB2ZWM0IGFy
cmF5LgorYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvblsxXTsKKwordW5pZm9ybSBtYXQ0IHVfcHJv
amVjdGlvbk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJv
amVjdGlvbk1hdHJpeCAqIGFfcG9zaXRpb25bMF07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2MzNDVmYS4u
ZDJhOTRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEwLTE3ICBNYXggVnVq
b3ZpYyAgPG12dWpvdmljQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYWRlcnNdIFZhbGlk
YXRlIHR5cGVzIG9mIGJ1aWx0LWluIHZlcnRleCBhdHRyaWJ1dGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk3MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlamVjdCBjdXN0b20gZmlsdGVycyBpbiB3
aGljaCB0aGUgYXV0aG9yIGRlZmluZWQgYnVpbHQtaW4gYXR0cmlidXRlcyB3aXRoIHRoZSB3cm9u
ZyB0eXBlLgorICAgICAgICBGb3IgZXhhbXBsZSwgdGhlIEdMU0wgZGVjbGFyYXRpb24gImF0dHJp
YnV0ZSBmbG9hdCBhX3Bvc2l0aW9uIiBpcyBpbmNvcnJlY3QgYmVjYXVzZQorICAgICAgICBhX3Bv
c2l0aW9uIHNob3VsZCBiZSBhIHZlYzQsIG5vdCBhIGZsb2F0LgorCisgICAgICAgIFRlc3Q6IGNz
czMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5o
dG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oOgor
ICAgICAgICAgICAgQWRkIGNvbW1lbnQgYWJvdXQgaG93IEFOR0xFIGZvcm1hdHMgdGhlIHN5bWJv
bCBuYW1lIGZvciBHTFNMIGFycmF5cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpidWlsdEluQXR0cmlidXRlTmFtZVRvVHlwZU1hcCk6CisgICAg
ICAgICAgICBOZXcgZmlsZSBzdGF0aWMgZnVuY3Rpb24uIFJldHVybnMgYSBtYXAgb2YgdGhlIENT
UyBDdXN0b20gRmlsdGVycyBidWlsdC1pbiBhdHRyaWJ1dGUKKyAgICAgICAgICAgIG5hbWVzIGFu
ZCB0aGVpciBleHBlY3RlZCB0eXBlcy4KKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3ltYm9s
cyk6CisgICAgICAgICAgICBOZXcgZmlsZSBzdGF0aWMgZnVuY3Rpb24uIExvb3AgdGhyb3VnaCBh
bGwgb2YgdGhlIHN5bWJvbHMuIFJlamVjdCB0aGUgc2hhZGVyIGlmIHdlIGZpbmQKKyAgICAgICAg
ICAgIGEgYnVpbHQtaW4gYXR0cmlidXRlIGRlZmluZWQgd2l0aCB0aGUgd3JvbmcgdHlwZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OkN1c3RvbUZpbHRl
clZhbGlkYXRlZFByb2dyYW0pOgorICAgICAgICAgICAgQ2FsbCB0aGUgbmV3IHZhbGlkYXRlU3lt
Ym9scyBmdW5jdGlvbi4gSWYgaXQgcmV0dXJucyBmYWxzZSwgZXhpdCB0aGUgY29uc3RydWN0b3Ig
ZWFybHksCisgICAgICAgICAgICB3aGljaCByZWplY3RzIHRoZSBwcm9ncmFtLgorICAgICAgICAg
ICAgTW92ZSB0aGUgbG9vcCB0aGF0IGNoZWNrcyBpZiBhbnkgdW5pZm9ybSBpcyBhIHNhbXBsZXIg
aW50byB0aGUgdGhlIHZhbGlkYXRlU3ltYm9scworICAgICAgICAgICAgZnVuY3Rpb24uCisKIDIw
MTItMTAtMTYgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
bW92ZSBzcGVjaWFsLWNhc2UgZmxvb3Jpbmcgb2YgYmFzZWxpbmVQb3NpdGlvbiBmb3IgcmVwbGFj
ZWQgZWxlbWVudHMgaW4gSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0
QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oCmluZGV4IDE3OGQzYmQuLmYwNTVlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaApAQCAtNDksNiArNDksOCBA
QCBlbnVtIEFOR0xFU2hhZGVyU3ltYm9sVHlwZSB7CiAKIHN0cnVjdCBBTkdMRVNoYWRlclN5bWJv
bCB7CiAgICAgQU5HTEVTaGFkZXJTeW1ib2xUeXBlIHN5bWJvbFR5cGU7CisgICAgLy8gTm90ZSB0
aGF0IGZvciBhcnJheXMsIHRoZSBuYW1lIHdpbGwgY29udGFpbiB0aGUgYXJyYXkgc2l6ZS4KKyAg
ICAvLyBGb3IgZXhhbXBsZSwgdGhlIEdMU0wgY29kZSAidmVjNCBhcnJheVsxMF0iIHdpbGwgcmVz
dWx0IGluIGEgbmFtZSBvZiAiYXJyYXlbMTBdIi4KICAgICBTdHJpbmcgbmFtZTsKICAgICBTdHJp
bmcgbWFwcGVkTmFtZTsKICAgICBTaERhdGFUeXBlIGRhdGFUeXBlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKaW5kZXggODVkZGRhNS4uYTM2MDQyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCkBAIC0z
NywxMiArMzcsNjkgQEAKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmgiCiAj
aW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8uaCIKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjZGVmaW5lIFNIQURFUihTcmMpICgjU3JjKSAKIAorLy8gRklYTUU6
IFJldXNlIHRoaXMgdHlwZSB3aGVuIHdlIHZhbGlkYXRlIHRoZSB0eXBlcyBvZiBidWlsdC1pbiB1
bmlmb3Jtcy4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk3
NAordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU2hEYXRhVHlwZT4gU3ltYm9sTmFtZVRvVHlwZU1h
cDsKKworc3RhdGljIFN5bWJvbE5hbWVUb1R5cGVNYXAqIGJ1aWx0SW5BdHRyaWJ1dGVOYW1lVG9U
eXBlTWFwKCkKK3sKKyAgICBzdGF0aWMgU3ltYm9sTmFtZVRvVHlwZU1hcCogbmFtZVRvVHlwZU1h
cCA9IDA7CisgICAgaWYgKCFuYW1lVG9UeXBlTWFwKSB7CisgICAgICAgIG5hbWVUb1R5cGVNYXAg
PSBuZXcgU3ltYm9sTmFtZVRvVHlwZU1hcDsgICAgICAgIAorICAgICAgICBuYW1lVG9UeXBlTWFw
LT5zZXQoImFfbWVzaENvb3JkIiwgU0hfRkxPQVRfVkVDMik7CisgICAgICAgIG5hbWVUb1R5cGVN
YXAtPnNldCgiYV9wb3NpdGlvbiIsIFNIX0ZMT0FUX1ZFQzQpOworICAgICAgICBuYW1lVG9UeXBl
TWFwLT5zZXQoImFfdGV4Q29vcmQiLCBTSF9GTE9BVF9WRUMyKTsKKyAgICAgICAgbmFtZVRvVHlw
ZU1hcC0+c2V0KCJhX3RyaWFuZ2xlQ29vcmQiLCBTSF9GTE9BVF9WRUMzKTsKKyAgICB9CisgICAg
cmV0dXJuIG5hbWVUb1R5cGVNYXA7Cit9CisKK3N0YXRpYyBib29sIHZhbGlkYXRlU3ltYm9scyhW
ZWN0b3I8QU5HTEVTaGFkZXJTeW1ib2w+JiBzeW1ib2xzKQoreworICAgIGZvciAoVmVjdG9yPEFO
R0xFU2hhZGVyU3ltYm9sPjo6aXRlcmF0b3Igc3ltYm9sID0gc3ltYm9scy5iZWdpbigpOyBzeW1i
b2wgIT0gc3ltYm9scy5lbmQoKTsgKytzeW1ib2wpIHsKKyAgICAgICAgc3dpdGNoIChzeW1ib2wt
PnN5bWJvbFR5cGUpIHsKKyAgICAgICAgY2FzZSBTSEFERVJfU1lNQk9MX1RZUEVfQVRUUklCVVRF
OiB7CisgICAgICAgICAgICBTeW1ib2xOYW1lVG9UeXBlTWFwKiBhdHRyaWJ1dGVOYW1lVG9UeXBl
TWFwID0gYnVpbHRJbkF0dHJpYnV0ZU5hbWVUb1R5cGVNYXAoKTsKKyAgICAgICAgICAgIFN5bWJv
bE5hbWVUb1R5cGVNYXA6Oml0ZXJhdG9yIGJ1aWx0SW5BdHRyaWJ1dGUgPSBhdHRyaWJ1dGVOYW1l
VG9UeXBlTWFwLT5maW5kKHN5bWJvbC0+bmFtZSk7CisgICAgICAgICAgICBpZiAoYnVpbHRJbkF0
dHJpYnV0ZSAhPSBhdHRyaWJ1dGVOYW1lVG9UeXBlTWFwLT5lbmQoKSAmJiBzeW1ib2wtPmRhdGFU
eXBlICE9IGJ1aWx0SW5BdHRyaWJ1dGUtPnZhbHVlKSB7CisgICAgICAgICAgICAgICAgLy8gVGhl
IGF1dGhvciBkZWZpbmVkIG9uZSBvZiB0aGUgYnVpbHQtaW4gYXR0cmlidXRlcyB3aXRoIHRoZSB3
cm9uZyB0eXBlLgorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgLy8gRklYTUU6IFJldHVybiBmYWxzZSB3aGVuIHRoZSBhdHRyaWJ1dGUg
aXMgbm90IG9uZSBvZiB0aGUgYnVpbHQtaW4gYXR0cmlidXRlcy4KKyAgICAgICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk3MworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBTSEFERVJfU1lNQk9MX1RZUEVfVU5JRk9S
TToKKyAgICAgICAgICAgIGlmIChzeW1ib2wtPmlzU2FtcGxlcigpKSB7CisgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IEZvciBub3csIHdlIHJlc3RyaWN0IHNoYWRlcnMgd2l0aCBhbnkgc2FtcGxl
ciBkZWZpbmVkLgorICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgaW1wbGVtZW50IHRleHR1cmUg
cGFyYW1ldGVycywgd2Ugd2lsbCBhbGxvdyBzaGFkZXJzIHdob3NlIHNhbXBsZXJzIGFyZSBib3Vu
ZCB0byB2YWxpZCB0ZXh0dXJlcy4KKyAgICAgICAgICAgICAgICAvLyBXZSBtdXN0IG5vdCBhbGxv
dyBPcGVuR0wgdG8gZ2l2ZSB1bmJvdW5kIHNhbXBsZXJzIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGJl
Y2F1c2UgdGhhdCByZWZlcmVuY2VzIHRoZSBlbGVtZW50IHRleHR1cmUsCisgICAgICAgICAgICAg
ICAgLy8gd2hpY2ggc2hvdWxkIGJlIGluYWNjZXNzaWJsZSB0byB0aGUgYXV0aG9yJ3Mgc2hhZGVy
IGNvZGUuCisgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2MjMwCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAvLyBGSVhNRTogVmFsaWRhdGUgdGhlIHR5cGVzIG9mIGJ1aWx0
LWluIHVuaWZvcm1zLgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk4OTc0CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogU3RyaW5nIEN1c3RvbUZp
bHRlclZhbGlkYXRlZFByb2dyYW06OmRlZmF1bHRWZXJ0ZXhTaGFkZXJTdHJpbmcoKQogewogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB2ZXJ0ZXhTaGFkZXJTdHJpbmcsIChBU0NJSUxp
dGVyYWwoU0hBREVSKApAQCAtOTUsMTYgKzE1MiwxMCBAQCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtKEN1c3RvbUZpbHRlckdsb2JhbENv
bgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gVmFsaWRhdGUgdGhlIGF1dGhvcidz
IHNhbXBsZXJzLgotICAgIGZvciAoVmVjdG9yPEFOR0xFU2hhZGVyU3ltYm9sPjo6aXRlcmF0b3Ig
aXQgPSBzeW1ib2xzLmJlZ2luKCk7IGl0ICE9IHN5bWJvbHMuZW5kKCk7ICsraXQpIHsKLSAgICAg
ICAgaWYgKGl0LT5pc1NhbXBsZXIoKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IEZvciBub3cs
IHdlIHJlc3RyaWN0IHNoYWRlcnMgd2l0aCBhbnkgc2FtcGxlciBkZWZpbmVkLgotICAgICAgICAg
ICAgLy8gV2hlbiB3ZSBpbXBsZW1lbnQgdGV4dHVyZSBwYXJhbWV0ZXJzLCB3ZSB3aWxsIGFsbG93
IHNoYWRlcnMgd2hvc2Ugc2FtcGxlcnMgYXJlIGJvdW5kIHRvIHZhbGlkIHRleHR1cmVzLgotICAg
ICAgICAgICAgLy8gV2UgbXVzdCBub3QgYWxsb3cgT3BlbkdMIHRvIGdpdmUgdW5ib3VuZCBzYW1w
bGVycyBhIGRlZmF1bHQgdmFsdWUgb2YgMCBiZWNhdXNlIHRoYXQgcmVmZXJlbmNlcyB0aGUgRE9N
IGVsZW1lbnQgdGV4dHVyZSwKLSAgICAgICAgICAgIC8vIHdoaWNoIHNob3VsZCBiZSBpbmFjY2Vz
c2libGUgdG8gdGhlIGF1dGhvcidzIHNoYWRlciBjb2RlLgotICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MjMwCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KKyAgICBpZiAoIXZhbGlkYXRlU3ltYm9scyhzeW1ib2xzKSkgeworICAg
ICAgICAvLyBGSVhNRTogUmVwb3J0IHZhbGlkYXRpb24gZXJyb3JzLgorICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MTYKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIC8vIFdlIG5lZWQgdG8gYWRkIHRleHR1cmUgYWNjZXNzLCBibGVuZGlu
ZywgYW5kIGNvbXBvc2l0aW5nIGNvZGUgdG8gc2hhZGVycyB0aGF0IGFyZSByZWZlcmVuY2VkIGZy
b20gdGhlIENTUyBtaXggZnVuY3Rpb24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169286</attachid>
            <date>2012-10-17 16:17:47 -0700</date>
            <delta_ts>2012-10-18 13:38:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>98972-5.patch</filename>
            <type>text/plain</type>
            <size>14273</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjN2E3M2IxLi5lZWIyM2ZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTAt
MTcgIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gVmFsaWRhdGUgdHlwZXMgb2YgYnVpbHQtaW4gdmVydGV4IGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW52YWxpZC1jdXN0b20t
ZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIHVzZXMgYSBzZXQgb2YgdmVydGV4IHNoYWRlcnMu
IEVhY2ggdmVydGV4IHNoYWRlcgorICAgICAgICBkZWZpbmVzIGEgc3BlY2lmaWMgYXR0cmlidXRl
IHdpdGggdGhlIHdyb25nIHR5cGUuIE5vbmUgb2YgdGhlIHZlcnRleCBzaGFkZXJzIGluIHRoZSB0
ZXN0CisgICAgICAgIHNob3VsZCBleGVjdXRlLiBJZiBhIHZlcnRleCBzaGFkZXIgZG9lcyBleGVj
dXRlLCBpdHMgYXNzb2NpYXRlZCBmcmFnbWVudCBzaGFkZXIgd2lsbCByZW5kZXIKKyAgICAgICAg
YSBncmVlbiBkaXYgYXMgcmVkLgorCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZh
bGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJp
YnV0ZS10eXBlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnM6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmls
dGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtcG9zaXRpb24udnM6IEFkZGVkLgorICAgICAg
ICAqIGNzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRy
aWFuZ2xlLWNvb3JkLnZzOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2Vz
L2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkudnM6IEFkZGVkLgorCiAyMDEyLTEwLTE2ICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgc3BlY2lh
bC1jYXNlIGZsb29yaW5nIG9mIGJhc2VsaW5lUG9zaXRpb24gZm9yIHJlcGxhY2VkIGVsZW1lbnRz
IGluIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJsb2NrRGlyZWN0aW9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1h
dHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9j
dXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OTBmZGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZp
bHRlci1hdHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3RzIHRoYXQgY3VzdG9t
IGZpbHRlcnMgZG8gbm90IGV4ZWN1dGUgaWYgdGhlIGF1dGhvciBkZWZpbmVzIGJ1aWx0LWluIGF0
dHJpYnV0ZXMgd2l0aCB0aGUgd3JvbmcgdHlwZS48L3RpdGxlPgorICAgIDwhLS0gCisgICAgICAg
IFRoaXMgaXMgdGhlIHJlZmVyZW5jZSBmaWxlIGZvciB0aGUgdGVzdC4KKyAgICAgICAgSWYgdGhl
IHRlc3QgcGFzc2VzLCB5b3Ugc2hvdWxkIHNlZSA1IHZlcnRpY2FsbHktc3RhY2tlZCBncmVlbiBi
b3hlcy4KKyAgICAtLT4KKyAgICA8c3R5bGU+CisgICAgZGl2IHsKKyAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmdiKDAsIDI1NSwgMCk7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBo
ZWlnaHQ6IDUwcHg7CisgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICB9CisgICAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRpdj48L2Rpdj4KKyAgICA8
ZGl2PjwvZGl2PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRpdj48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxp
ZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhYTA1NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmls
dGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGVzdHMgdGhhdCBjdXN0b20gZmlsdGVycyBk
byBub3QgZXhlY3V0ZSBpZiB0aGUgYXV0aG9yIGRlZmluZXMgYnVpbHQtaW4gYXR0cmlidXRlcyB3
aXRoIHRoZSB3cm9uZyB0eXBlLjwvdGl0bGU+CisgICAgPCEtLSBJZiB0aGUgdGVzdCBwYXNzZXMs
IHlvdSBzaG91bGQgc2VlIDUgdmVydGljYWxseS1zdGFja2VkIGdyZWVuIGJveGVzLiAtLT4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHdpbmRvdy50ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTQ3VzdG9tRmls
dGVyRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBXZSBuZWVk
IHRvIHJ1biB0aGUgdGVzdHMgYWZ0ZXIgdGhlIHNoYWRlcnMgZG93bmxvYWQuCisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgor
ICAgIGRpdiB7CisgICAgICAgIC8qIElmIHRoZSBzaGFkZXJzIGV4ZWN1dGUsIHRoZXkgd2lsbCB0
dXJuIHRoZSBlbGVtZW50J3MgY29sb3IgZnJvbSBncmVlbiB0byByZWQuICovCisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYigwLCAyNTUsIDApOworICAgICAgICB3aWR0aDogNTBweDsKKyAg
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgfQorICAgIC5p
bnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkIHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3Rv
bSh1cmwoJy4uL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzJykgbWl4KHVy
bCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9j
b2xvciAxLjAgMC4wIDAuMCAxLjApOworICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWEtcG9zaXRp
b24geworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgnLi4vcmVzb3VyY2VzL2lu
dmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZzJykgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xv
ci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAxLjAgMC4wIDAuMCAxLjApOwor
ICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkIHsKKyAgICAgICAgLXdlYmtpdC1m
aWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQu
dnMnKSBtaXgodXJsKCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNvdXJjZS1h
dG9wKSwgbWl4X2NvbG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIC5pbnZhbGlkLXR5
cGUtYS10cmlhbmdsZS1jb29yZCB7CisgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20odXJs
KCcuLi9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQudnMnKSBtaXgodXJs
KCcuLi9yZXNvdXJjZXMvbWl4LWNvbG9yLmZzJykgbm9ybWFsIHNvdXJjZS1hdG9wKSwgbWl4X2Nv
bG9yIDEuMCAwLjAgMC4wIDEuMCk7CisgICAgfQorICAgIC5pbnZhbGlkLXR5cGUtYXR0cmlidXRl
LWFycmF5IHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNl
cy9pbnZhbGlkLXR5cGUtYXR0cmlidXRlLWFycmF5LnZzJykgbWl4KHVybCgnLi4vcmVzb3VyY2Vz
L21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9jb2xvciAxLjAgMC4wIDAu
MCAxLjApOyAgICAgICAgCisgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtbWVzaC1jb29y
ZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtcG9zaXRpb24iPjwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImludmFsaWQtdHlwZS1hLXRleC1jb29yZCI+PC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQiPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9p
bnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jl
c291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNhZGU5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQudnMKQEAgLTAs
MCArMSwxNSBAQAorLy8gSWYgdGhpcyBzaGFkZXIncyByZWxhdGVkIHRlc3QgcGFzc2VzLCB0aGUg
Y3VzdG9tIGZpbHRlciBkb2VzIG5vdCBleGVjdXRlIGJlY2F1c2UgYV9tZXNoQ29vcmQncyB0eXBl
IGlzIGludmFsaWQuCisKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisvLyBhX21lc2hDb29y
ZCBzaG91bGQgYmUgYSB2ZWMyLCBub3QgYSBmbG9hdC4KK2F0dHJpYnV0ZSBmbG9hdCBhX21lc2hD
b29yZDsKKworYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJv
amVjdGlvbk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJv
amVjdGlvbk1hdHJpeCAqIGFfcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZzIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1wb3NpdGlvbi52cwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGE0OGU4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1w
b3NpdGlvbi52cwpAQCAtMCwwICsxLDEzIEBACisvLyBJZiB0aGlzIHNoYWRlcidzIHJlbGF0ZWQg
dGVzdCBwYXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUgYmVjYXVzZSBh
X3Bvc2l0aW9uJ3MgdHlwZSBpcyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
KworLy8gYV9wb3NpdGlvbiBzaG91bGQgYmUgYSB2ZWM0LCBub3QgYSB2ZWMzLgorYXR0cmlidXRl
IHZlYzMgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlvbk1hdHJpeDsKKwor
dm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlvbk1hdHJpeCAqIHZl
YzQoYV9wb3NpdGlvbiwgMS4wKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzIGIvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQudnMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYxMTMzMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNv
b3JkLnZzCkBAIC0wLDAgKzEsMTUgQEAKKy8vIElmIHRoaXMgc2hhZGVyJ3MgcmVsYXRlZCB0ZXN0
IHBhc3NlcywgdGhlIGN1c3RvbSBmaWx0ZXIgZG9lcyBub3QgZXhlY3V0ZSBiZWNhdXNlIGFfdGV4
Q29vcmQncyB0eXBlIGlzIGludmFsaWQuCisKK3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworCisv
LyBhX21lc2hDb29yZCBzaG91bGQgYmUgYSB2ZWMyLCBub3QgYW4gdmVjNC4KK2F0dHJpYnV0ZSB2
ZWM0IGFfdGV4Q29vcmQ7CisKK2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb247CisKK3VuaWZvcm0g
bWF0NCB1X3Byb2plY3Rpb25NYXRyaXg7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRp
b24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiBhX3Bvc2l0aW9uOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10cmlhbmdsZS1j
b29yZC52cyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBl
LWEtdHJpYW5nbGUtY29vcmQudnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ODVjM2FiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29vcmQudnMKQEAgLTAsMCArMSwxNSBAQAor
Ly8gSWYgdGhpcyBzaGFkZXIncyByZWxhdGVkIHRlc3QgcGFzc2VzLCB0aGUgY3VzdG9tIGZpbHRl
ciBkb2VzIG5vdCBleGVjdXRlIGJlY2F1c2UgYV90cmlhbmdsZUNvb3JkJ3MgdHlwZSBpcyBpbnZh
bGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworLy8gYV9tZXNoQ29vcmQgc2hvdWxk
IGJlIGEgdmVjMywgbm90IGEgdmVjMi4KK2F0dHJpYnV0ZSB2ZWMyIGFfdHJpYW5nbGVDb29yZDsK
KworYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvbjsKKwordW5pZm9ybSBtYXQ0IHVfcHJvamVjdGlv
bk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJvamVjdGlv
bk1hdHJpeCAqIGFfcG9zaXRpb247Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Zp
bHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXkudnMgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hdHRyaWJ1dGUtYXJyYXku
dnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdjNDIyMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBl
LWF0dHJpYnV0ZS1hcnJheS52cwpAQCAtMCwwICsxLDEzIEBACisvLyBJZiB0aGlzIHNoYWRlcidz
IHJlbGF0ZWQgdGVzdCBwYXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUg
YmVjYXVzZSBhX3Bvc2l0aW9uJ3MgdHlwZSBpcyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKKworLy8gYV9wb3NpdGlvbiBzaG91bGQgYmUgYSB2ZWM0LCBub3QgYSB2ZWM0IGFy
cmF5LgorYXR0cmlidXRlIHZlYzQgYV9wb3NpdGlvblsxXTsKKwordW5pZm9ybSBtYXQ0IHVfcHJv
amVjdGlvbk1hdHJpeDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Qb3NpdGlvbiA9IHVfcHJv
amVjdGlvbk1hdHJpeCAqIGFfcG9zaXRpb25bMF07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2MzNDVmYS4u
Y2E1YzAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTE3ICBNYXggVnVq
b3ZpYyAgPG12dWpvdmljQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYWRlcnNdIFZhbGlk
YXRlIHR5cGVzIG9mIGJ1aWx0LWluIHZlcnRleCBhdHRyaWJ1dGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk3MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlamVjdCBjdXN0b20gZmlsdGVycyBpbiB3
aGljaCB0aGUgYXV0aG9yIGRlZmluZWQgYnVpbHQtaW4gYXR0cmlidXRlcyB3aXRoIHRoZSB3cm9u
ZyB0eXBlLgorICAgICAgICBGb3IgZXhhbXBsZSwgdGhlIEdMU0wgZGVjbGFyYXRpb24gImF0dHJp
YnV0ZSBmbG9hdCBhX3Bvc2l0aW9uIiBpcyBpbmNvcnJlY3QgYmVjYXVzZQorICAgICAgICBhX3Bv
c2l0aW9uIHNob3VsZCBiZSBhIHZlYzQsIG5vdCBhIGZsb2F0LgorCisgICAgICAgIFRlc3Q6IGNz
czMvZmlsdGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5o
dG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZh
bGlkYXRlZFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpidWlsdEluQXR0cmlidXRlTmFtZVRvVHlwZU1hcCk6CisgICAgICAgICAgICBOZXcgZmlsZSBz
dGF0aWMgZnVuY3Rpb24uIFJldHVybnMgYSBtYXAgb2YgdGhlIENTUyBDdXN0b20gRmlsdGVycyBi
dWlsdC1pbiBhdHRyaWJ1dGUKKyAgICAgICAgICAgIG5hbWVzIGFuZCB0aGVpciBleHBlY3RlZCB0
eXBlcy4KKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3ltYm9scyk6CisgICAgICAgICAgICBO
ZXcgZmlsZSBzdGF0aWMgZnVuY3Rpb24uIExvb3AgdGhyb3VnaCBhbGwgb2YgdGhlIHN5bWJvbHMu
IFJlamVjdCB0aGUgc2hhZGVyIGlmIHdlIGZpbmQKKyAgICAgICAgICAgIGEgYnVpbHQtaW4gYXR0
cmlidXRlIGRlZmluZWQgd2l0aCB0aGUgd3JvbmcgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OkN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0p
OgorICAgICAgICAgICAgQ2FsbCB0aGUgbmV3IHZhbGlkYXRlU3ltYm9scyBmdW5jdGlvbi4gSWYg
aXQgcmV0dXJucyBmYWxzZSwgZXhpdCB0aGUgY29uc3RydWN0b3IgZWFybHksCisgICAgICAgICAg
ICB3aGljaCByZWplY3RzIHRoZSBwcm9ncmFtLgorICAgICAgICAgICAgTW92ZSB0aGUgbG9vcCB0
aGF0IGNoZWNrcyBpZiBhbnkgdW5pZm9ybSBpcyBhIHNhbXBsZXIgaW50byB0aGUgdGhlIHZhbGlk
YXRlU3ltYm9scworICAgICAgICAgICAgZnVuY3Rpb24uCisKIDIwMTItMTAtMTYgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBzcGVjaWFsLWNhc2Ug
Zmxvb3Jpbmcgb2YgYmFzZWxpbmVQb3NpdGlvbiBmb3IgcmVwbGFjZWQgZWxlbWVudHMgaW4gSW5s
aW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVk
UHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCmluZGV4IDg1ZGRkYTUuLmEzNjA0MmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcApAQCAtMzcs
MTIgKzM3LDY5IEBACiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkN1c3RvbUZpbHRlclByb2dyYW1JbmZvLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogI2RlZmluZSBTSEFERVIoU3JjKSAoI1NyYykgCiAKKy8vIEZJWE1FOiBS
ZXVzZSB0aGlzIHR5cGUgd2hlbiB3ZSB2YWxpZGF0ZSB0aGUgdHlwZXMgb2YgYnVpbHQtaW4gdW5p
Zm9ybXMuCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg5NzQK
K3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFNoRGF0YVR5cGU+IFN5bWJvbE5hbWVUb1R5cGVNYXA7
CisKK3N0YXRpYyBTeW1ib2xOYW1lVG9UeXBlTWFwKiBidWlsdEluQXR0cmlidXRlTmFtZVRvVHlw
ZU1hcCgpCit7CisgICAgc3RhdGljIFN5bWJvbE5hbWVUb1R5cGVNYXAqIG5hbWVUb1R5cGVNYXAg
PSAwOworICAgIGlmICghbmFtZVRvVHlwZU1hcCkgeworICAgICAgICBuYW1lVG9UeXBlTWFwID0g
bmV3IFN5bWJvbE5hbWVUb1R5cGVNYXA7ICAgICAgICAKKyAgICAgICAgbmFtZVRvVHlwZU1hcC0+
c2V0KCJhX21lc2hDb29yZCIsIFNIX0ZMT0FUX1ZFQzIpOworICAgICAgICBuYW1lVG9UeXBlTWFw
LT5zZXQoImFfcG9zaXRpb24iLCBTSF9GTE9BVF9WRUM0KTsKKyAgICAgICAgbmFtZVRvVHlwZU1h
cC0+c2V0KCJhX3RleENvb3JkIiwgU0hfRkxPQVRfVkVDMik7CisgICAgICAgIG5hbWVUb1R5cGVN
YXAtPnNldCgiYV90cmlhbmdsZUNvb3JkIiwgU0hfRkxPQVRfVkVDMyk7CisgICAgfQorICAgIHJl
dHVybiBuYW1lVG9UeXBlTWFwOworfQorCitzdGF0aWMgYm9vbCB2YWxpZGF0ZVN5bWJvbHMoVmVj
dG9yPEFOR0xFU2hhZGVyU3ltYm9sPiYgc3ltYm9scykKK3sKKyAgICBmb3IgKFZlY3RvcjxBTkdM
RVNoYWRlclN5bWJvbD46Oml0ZXJhdG9yIHN5bWJvbCA9IHN5bWJvbHMuYmVnaW4oKTsgc3ltYm9s
ICE9IHN5bWJvbHMuZW5kKCk7ICsrc3ltYm9sKSB7CisgICAgICAgIHN3aXRjaCAoc3ltYm9sLT5z
eW1ib2xUeXBlKSB7CisgICAgICAgIGNhc2UgU0hBREVSX1NZTUJPTF9UWVBFX0FUVFJJQlVURTog
eworICAgICAgICAgICAgU3ltYm9sTmFtZVRvVHlwZU1hcCogYXR0cmlidXRlTmFtZVRvVHlwZU1h
cCA9IGJ1aWx0SW5BdHRyaWJ1dGVOYW1lVG9UeXBlTWFwKCk7CisgICAgICAgICAgICBTeW1ib2xO
YW1lVG9UeXBlTWFwOjppdGVyYXRvciBidWlsdEluQXR0cmlidXRlID0gYXR0cmlidXRlTmFtZVRv
VHlwZU1hcC0+ZmluZChzeW1ib2wtPm5hbWUpOworICAgICAgICAgICAgaWYgKGJ1aWx0SW5BdHRy
aWJ1dGUgIT0gYXR0cmlidXRlTmFtZVRvVHlwZU1hcC0+ZW5kKCkgJiYgc3ltYm9sLT5kYXRhVHlw
ZSAhPSBidWlsdEluQXR0cmlidXRlLT52YWx1ZSkgeworICAgICAgICAgICAgICAgIC8vIFRoZSBh
dXRob3IgZGVmaW5lZCBvbmUgb2YgdGhlIGJ1aWx0LWluIGF0dHJpYnV0ZXMgd2l0aCB0aGUgd3Jv
bmcgdHlwZS4KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBSZXR1cm4gZmFsc2Ugd2hlbiB0aGUgYXR0cmlidXRlIGlz
IG5vdCBvbmUgb2YgdGhlIGJ1aWx0LWluIGF0dHJpYnV0ZXMuCisgICAgICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg5NzMKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgU0hBREVSX1NZTUJPTF9UWVBFX1VOSUZPUk06
CisgICAgICAgICAgICBpZiAoc3ltYm9sLT5pc1NhbXBsZXIoKSkgeworICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBGb3Igbm93LCB3ZSByZXN0cmljdCBzaGFkZXJzIHdpdGggYW55IHNhbXBsZXIg
ZGVmaW5lZC4KKyAgICAgICAgICAgICAgICAvLyBXaGVuIHdlIGltcGxlbWVudCB0ZXh0dXJlIHBh
cmFtZXRlcnMsIHdlIHdpbGwgYWxsb3cgc2hhZGVycyB3aG9zZSBzYW1wbGVycyBhcmUgYm91bmQg
dG8gdmFsaWQgdGV4dHVyZXMuCisgICAgICAgICAgICAgICAgLy8gV2UgbXVzdCBub3QgYWxsb3cg
T3BlbkdMIHRvIGdpdmUgdW5ib3VuZCBzYW1wbGVycyBhIGRlZmF1bHQgdmFsdWUgb2YgMCBiZWNh
dXNlIHRoYXQgcmVmZXJlbmNlcyB0aGUgZWxlbWVudCB0ZXh0dXJlLAorICAgICAgICAgICAgICAg
IC8vIHdoaWNoIHNob3VsZCBiZSBpbmFjY2Vzc2libGUgdG8gdGhlIGF1dGhvcidzIHNoYWRlciBj
b2RlLgorICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NjIzMAorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgLy8gRklYTUU6IFZhbGlkYXRlIHRoZSB0eXBlcyBvZiBidWlsdC1p
biB1bmlmb3Jtcy4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05ODk3NAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIFN0cmluZyBDdXN0b21GaWx0
ZXJWYWxpZGF0ZWRQcm9ncmFtOjpkZWZhdWx0VmVydGV4U2hhZGVyU3RyaW5nKCkKIHsKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdmVydGV4U2hhZGVyU3RyaW5nLCAoQVNDSUlMaXRl
cmFsKFNIQURFUigKQEAgLTk1LDE2ICsxNTIsMTAgQEAgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJv
Z3JhbTo6Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbShDdXN0b21GaWx0ZXJHbG9iYWxDb24K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIFZhbGlkYXRlIHRoZSBhdXRob3IncyBz
YW1wbGVycy4KLSAgICBmb3IgKFZlY3RvcjxBTkdMRVNoYWRlclN5bWJvbD46Oml0ZXJhdG9yIGl0
ID0gc3ltYm9scy5iZWdpbigpOyBpdCAhPSBzeW1ib2xzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAg
IGlmIChpdC0+aXNTYW1wbGVyKCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBGb3Igbm93LCB3
ZSByZXN0cmljdCBzaGFkZXJzIHdpdGggYW55IHNhbXBsZXIgZGVmaW5lZC4KLSAgICAgICAgICAg
IC8vIFdoZW4gd2UgaW1wbGVtZW50IHRleHR1cmUgcGFyYW1ldGVycywgd2Ugd2lsbCBhbGxvdyBz
aGFkZXJzIHdob3NlIHNhbXBsZXJzIGFyZSBib3VuZCB0byB2YWxpZCB0ZXh0dXJlcy4KLSAgICAg
ICAgICAgIC8vIFdlIG11c3Qgbm90IGFsbG93IE9wZW5HTCB0byBnaXZlIHVuYm91bmQgc2FtcGxl
cnMgYSBkZWZhdWx0IHZhbHVlIG9mIDAgYmVjYXVzZSB0aGF0IHJlZmVyZW5jZXMgdGhlIERPTSBl
bGVtZW50IHRleHR1cmUsCi0gICAgICAgICAgICAvLyB3aGljaCBzaG91bGQgYmUgaW5hY2Nlc3Np
YmxlIHRvIHRoZSBhdXRob3IncyBzaGFkZXIgY29kZS4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjIzMAotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9CisgICAgaWYgKCF2YWxpZGF0ZVN5bWJvbHMoc3ltYm9scykpIHsKKyAgICAg
ICAgLy8gRklYTUU6IFJlcG9ydCB2YWxpZGF0aW9uIGVycm9ycy4KKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDE2CisgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICAvLyBXZSBuZWVkIHRvIGFkZCB0ZXh0dXJlIGFjY2VzcywgYmxlbmRpbmcs
IGFuZCBjb21wb3NpdGluZyBjb2RlIHRvIHNoYWRlcnMgdGhhdCBhcmUgcmVmZXJlbmNlZCBmcm9t
IHRoZSBDU1MgbWl4IGZ1bmN0aW9uLgo=
</data>
<flag name="review"
          id="182528"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="182727"
          type_id="3"
          status="-"
          setter="mvujovic"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169460</attachid>
            <date>2012-10-18 13:38:27 -0700</date>
            <delta_ts>2012-10-18 14:38:23 -0700</delta_ts>
            <desc>Patch for Landing</desc>
            <filename>98972-6.patch</filename>
            <type>text/plain</type>
            <size>14936</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjN2E3M2IxLi42NWFlM2I4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTAt
MTggIE1heCBWdWpvdmljICA8bXZ1am92aWNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZGVyc10gVmFsaWRhdGUgdHlwZXMgb2YgYnVpbHQtaW4gdmVydGV4IGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIGludmFsaWQtY3VzdG9tLWZp
bHRlci1hdHRyaWJ1dGUtdHlwZXMuaHRtbCB1c2VzIGEgc2V0IG9mIHZlcnRleCBzaGFkZXJzLiBF
YWNoIHZlcnRleCBzaGFkZXIKKyAgICAgICAgZGVmaW5lcyBhIHNwZWNpZmljIGF0dHJpYnV0ZSB3
aXRoIHRoZSB3cm9uZyB0eXBlLiBOb25lIG9mIHRoZSB2ZXJ0ZXggc2hhZGVycyBpbiB0aGUgdGVz
dAorICAgICAgICBzaG91bGQgZXhlY3V0ZS4gSWYgYSB2ZXJ0ZXggc2hhZGVyIGRvZXMgZXhlY3V0
ZSwgaXRzIGFzc29jaWF0ZWQgZnJhZ21lbnQgc2hhZGVyIHdpbGwgcmVuZGVyCisgICAgICAgIGEg
Z3JlZW4gZGl2IGFzIHJlZC4KKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20vaW52YWxp
ZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1hdHRyaWJ1
dGUtdHlwZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9p
bnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRl
cnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXBvc2l0aW9uLnZzOiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRleC1jb29yZC52czogQWRk
ZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS10cmlh
bmdsZS1jb29yZC52czogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9p
bnZhbGlkLXR5cGUtYXR0cmlidXRlLWFycmF5LnZzOiBBZGRlZC4KKwogMjAxMi0xMC0xNiAgRW1p
bCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHNwZWNpYWwt
Y2FzZSBmbG9vcmluZyBvZiBiYXNlbGluZVBvc2l0aW9uIGZvciByZXBsYWNlZCBlbGVtZW50cyBp
biBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0
cmlidXRlLXR5cGVzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3Vz
dG9tL2ludmFsaWQtY3VzdG9tLWZpbHRlci1hdHRyaWJ1dGUtdHlwZXMtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzkwZmRlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0
ZXItYXR0cmlidXRlLXR5cGVzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5UZXN0cyB0aGF0IGN1c3RvbSBm
aWx0ZXJzIGRvIG5vdCBleGVjdXRlIGlmIHRoZSBhdXRob3IgZGVmaW5lcyBidWlsdC1pbiBhdHRy
aWJ1dGVzIHdpdGggdGhlIHdyb25nIHR5cGUuPC90aXRsZT4KKyAgICA8IS0tIAorICAgICAgICBU
aGlzIGlzIHRoZSByZWZlcmVuY2UgZmlsZSBmb3IgdGhlIHRlc3QuCisgICAgICAgIElmIHRoZSB0
ZXN0IHBhc3NlcywgeW91IHNob3VsZCBzZWUgNSB2ZXJ0aWNhbGx5LXN0YWNrZWQgZ3JlZW4gYm94
ZXMuCisgICAgLS0+CisgICAgPHN0eWxlPgorICAgIGRpdiB7CisgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IHJnYigwLCAyNTUsIDApOworICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgaGVp
Z2h0OiA1MHB4OworICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgfQorICAgIDwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2PjwvZGl2PgorICAgIDxkaXY+PC9kaXY+CisgICAgPGRp
dj48L2Rpdj4KKyAgICA8ZGl2PjwvZGl2PgorICAgIDxkaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQt
Y3VzdG9tLWZpbHRlci1hdHRyaWJ1dGUtdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9jdXN0b20vaW52YWxpZC1jdXN0b20tZmlsdGVyLWF0dHJpYnV0ZS10eXBlcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YWEwNTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tL2ludmFsaWQtY3VzdG9tLWZpbHRl
ci1hdHRyaWJ1dGUtdHlwZXMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRlc3RzIHRoYXQgY3VzdG9tIGZpbHRlcnMgZG8g
bm90IGV4ZWN1dGUgaWYgdGhlIGF1dGhvciBkZWZpbmVzIGJ1aWx0LWluIGF0dHJpYnV0ZXMgd2l0
aCB0aGUgd3JvbmcgdHlwZS48L3RpdGxlPgorICAgIDwhLS0gSWYgdGhlIHRlc3QgcGFzc2VzLCB5
b3Ugc2hvdWxkIHNlZSA1IHZlcnRpY2FsbHktc3RhY2tlZCBncmVlbiBib3hlcy4gLS0+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0N1c3RvbUZpbHRl
ckVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIub3ZlcnJpZGVQ
cmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgd2luZG93
LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gV2UgbmVlZCB0
byBydW4gdGhlIHRlc3RzIGFmdGVyIHRoZSBzaGFkZXJzIGRvd25sb2FkLgorICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAg
ICBkaXYgeworICAgICAgICAvKiBJZiB0aGUgc2hhZGVycyBleGVjdXRlLCB0aGV5IHdpbGwgdHVy
biB0aGUgZWxlbWVudCdzIGNvbG9yIGZyb20gZ3JlZW4gdG8gcmVkLiAqLworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoMCwgMjU1LCAwKTsKKyAgICAgICAgd2lkdGg6IDUwcHg7CisgICAg
ICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgbWFyZ2luOiAxMHB4OworICAgIH0KKyAgICAuaW52
YWxpZC10eXBlLWEtbWVzaC1jb29yZCB7CisgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20o
dXJsKCcuLi9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtbWVzaC1jb29yZC52cycpIG1peCh1cmwo
Jy4uL3Jlc291cmNlcy9taXgtY29sb3IuZnMnKSBub3JtYWwgc291cmNlLWF0b3ApLCBtaXhfY29s
b3IgMS4wIDAuMCAwLjAgMS4wKTsKKyAgICB9CisgICAgLmludmFsaWQtdHlwZS1hLXBvc2l0aW9u
IHsKKyAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJy4uL3Jlc291cmNlcy9pbnZh
bGlkLXR5cGUtYS1wb3NpdGlvbi52cycpIG1peCh1cmwoJy4uL3Jlc291cmNlcy9taXgtY29sb3Iu
ZnMnKSBub3JtYWwgc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMS4wIDAuMCAwLjAgMS4wKTsKKyAg
ICB9CisgICAgLmludmFsaWQtdHlwZS1hLXRleC1jb29yZCB7CisgICAgICAgIC13ZWJraXQtZmls
dGVyOiBjdXN0b20odXJsKCcuLi9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZz
JykgbWl4KHVybCgnLi4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRv
cCksIG1peF9jb2xvciAxLjAgMC4wIDAuMCAxLjApOworICAgIH0KKyAgICAuaW52YWxpZC10eXBl
LWEtdHJpYW5nbGUtY29vcmQgeworICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgn
Li4vcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRyaWFuZ2xlLWNvb3JkLnZzJykgbWl4KHVybCgn
Li4vcmVzb3VyY2VzL21peC1jb2xvci5mcycpIG5vcm1hbCBzb3VyY2UtYXRvcCksIG1peF9jb2xv
ciAxLjAgMC4wIDAuMCAxLjApOworICAgIH0KKyAgICAuaW52YWxpZC10eXBlLWF0dHJpYnV0ZS1h
cnJheSB7CisgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20odXJsKCcuLi9yZXNvdXJjZXMv
aW52YWxpZC10eXBlLWF0dHJpYnV0ZS1hcnJheS52cycpIG1peCh1cmwoJy4uL3Jlc291cmNlcy9t
aXgtY29sb3IuZnMnKSBub3JtYWwgc291cmNlLWF0b3ApLCBtaXhfY29sb3IgMS4wIDAuMCAwLjAg
MS4wKTsgICAgICAgIAorICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorICAgIDxkaXYgY2xhc3M9ImludmFsaWQtdHlwZS1hLW1lc2gtY29vcmQi
PjwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImludmFsaWQtdHlwZS1hLXBvc2l0aW9uIj48L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJpbnZhbGlkLXR5cGUtYS10ZXgtY29vcmQiPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImludmFsaWQtdHlwZS1hLXRyaWFuZ2xlLWNvb3JkIj48L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJpbnZhbGlkLXR5cGUtYXR0cmlidXRlLWFycmF5Ij48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52
YWxpZC10eXBlLWEtbWVzaC1jb29yZC52cyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNv
dXJjZXMvaW52YWxpZC10eXBlLWEtbWVzaC1jb29yZC52cwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zYWRlOWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3Nz
My9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1tZXNoLWNvb3JkLnZzCkBAIC0wLDAg
KzEsMTUgQEAKKy8vIElmIHRoaXMgc2hhZGVyJ3MgcmVsYXRlZCB0ZXN0IHBhc3NlcywgdGhlIGN1
c3RvbSBmaWx0ZXIgZG9lcyBub3QgZXhlY3V0ZSBiZWNhdXNlIGFfbWVzaENvb3JkJ3MgdHlwZSBp
cyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworLy8gYV9tZXNoQ29vcmQg
c2hvdWxkIGJlIGEgdmVjMiwgbm90IGEgZmxvYXQuCithdHRyaWJ1dGUgZmxvYXQgYV9tZXNoQ29v
cmQ7CisKK2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb247CisKK3VuaWZvcm0gbWF0NCB1X3Byb2pl
Y3Rpb25NYXRyaXg7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2pl
Y3Rpb25NYXRyaXggKiBhX3Bvc2l0aW9uOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYS1wb3NpdGlvbi52cyBiL0xheW91dFRl
c3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtcG9zaXRpb24udnMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRhNDhlOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtcG9z
aXRpb24udnMKQEAgLTAsMCArMSwxMyBAQAorLy8gSWYgdGhpcyBzaGFkZXIncyByZWxhdGVkIHRl
c3QgcGFzc2VzLCB0aGUgY3VzdG9tIGZpbHRlciBkb2VzIG5vdCBleGVjdXRlIGJlY2F1c2UgYV9w
b3NpdGlvbidzIHR5cGUgaXMgaW52YWxpZC4KKworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisK
Ky8vIGFfcG9zaXRpb24gc2hvdWxkIGJlIGEgdmVjNCwgbm90IGEgdmVjMy4KK2F0dHJpYnV0ZSB2
ZWMzIGFfcG9zaXRpb247CisKK3VuaWZvcm0gbWF0NCB1X3Byb2plY3Rpb25NYXRyaXg7CisKK3Zv
aWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiB2ZWM0
KGFfcG9zaXRpb24sIDEuMCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRleC1jb29yZC52cyBiL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdGV4LWNvb3JkLnZzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MTEzMzEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1hLXRleC1jb29y
ZC52cwpAQCAtMCwwICsxLDE1IEBACisvLyBJZiB0aGlzIHNoYWRlcidzIHJlbGF0ZWQgdGVzdCBw
YXNzZXMsIHRoZSBjdXN0b20gZmlsdGVyIGRvZXMgbm90IGV4ZWN1dGUgYmVjYXVzZSBhX3RleENv
b3JkJ3MgdHlwZSBpcyBpbnZhbGlkLgorCitwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKKworLy8g
YV9tZXNoQ29vcmQgc2hvdWxkIGJlIGEgdmVjMiwgbm90IGFuIHZlYzQuCithdHRyaWJ1dGUgdmVj
NCBhX3RleENvb3JkOworCithdHRyaWJ1dGUgdmVjNCBhX3Bvc2l0aW9uOworCit1bmlmb3JtIG1h
dDQgdV9wcm9qZWN0aW9uTWF0cml4OworCit2b2lkIG1haW4oKQoreworICAgIGdsX1Bvc2l0aW9u
ID0gdV9wcm9qZWN0aW9uTWF0cml4ICogYV9wb3NpdGlvbjsKK30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZmlsdGVycy9yZXNvdXJjZXMvaW52YWxpZC10eXBlLWEtdHJpYW5nbGUtY29v
cmQudnMgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1h
LXRyaWFuZ2xlLWNvb3JkLnZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1
YzNhYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3Vy
Y2VzL2ludmFsaWQtdHlwZS1hLXRyaWFuZ2xlLWNvb3JkLnZzCkBAIC0wLDAgKzEsMTUgQEAKKy8v
IElmIHRoaXMgc2hhZGVyJ3MgcmVsYXRlZCB0ZXN0IHBhc3NlcywgdGhlIGN1c3RvbSBmaWx0ZXIg
ZG9lcyBub3QgZXhlY3V0ZSBiZWNhdXNlIGFfdHJpYW5nbGVDb29yZCdzIHR5cGUgaXMgaW52YWxp
ZC4KKworcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKKy8vIGFfbWVzaENvb3JkIHNob3VsZCBi
ZSBhIHZlYzMsIG5vdCBhIHZlYzIuCithdHRyaWJ1dGUgdmVjMiBhX3RyaWFuZ2xlQ29vcmQ7CisK
K2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb247CisKK3VuaWZvcm0gbWF0NCB1X3Byb2plY3Rpb25N
YXRyaXg7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25N
YXRyaXggKiBhX3Bvc2l0aW9uOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYXR0cmlidXRlLWFycmF5LnZzIGIvTGF5b3V0VGVz
dHMvY3NzMy9maWx0ZXJzL3Jlc291cmNlcy9pbnZhbGlkLXR5cGUtYXR0cmlidXRlLWFycmF5LnZz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3YzQyMjEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVzb3VyY2VzL2ludmFsaWQtdHlwZS1h
dHRyaWJ1dGUtYXJyYXkudnMKQEAgLTAsMCArMSwxMyBAQAorLy8gSWYgdGhpcyBzaGFkZXIncyBy
ZWxhdGVkIHRlc3QgcGFzc2VzLCB0aGUgY3VzdG9tIGZpbHRlciBkb2VzIG5vdCBleGVjdXRlIGJl
Y2F1c2UgYV9wb3NpdGlvbidzIHR5cGUgaXMgaW52YWxpZC4KKworcHJlY2lzaW9uIG1lZGl1bXAg
ZmxvYXQ7CisKKy8vIGFfcG9zaXRpb24gc2hvdWxkIGJlIGEgdmVjNCwgbm90IGEgdmVjNCBhcnJh
eS4KK2F0dHJpYnV0ZSB2ZWM0IGFfcG9zaXRpb25bMV07CisKK3VuaWZvcm0gbWF0NCB1X3Byb2pl
Y3Rpb25NYXRyaXg7CisKK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB1X3Byb2pl
Y3Rpb25NYXRyaXggKiBhX3Bvc2l0aW9uWzBdOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNjMzQ1ZmEuLjU0
ZTVjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0xMC0xOCAgTWF4IFZ1am92
aWMgIDxtdnVqb3ZpY0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFkZXJzXSBWYWxpZGF0
ZSB0eXBlcyBvZiBidWlsdC1pbiB2ZXJ0ZXggYXR0cmlidXRlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg5NzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgUmVqZWN0IGN1c3RvbSBmaWx0ZXJzIGluIHdoaWNo
IHRoZSBhdXRob3IgZGVmaW5lZCBidWlsdC1pbiBhdHRyaWJ1dGVzIHdpdGggdGhlIHdyb25nIHR5
cGUuCisgICAgICAgIEZvciBleGFtcGxlLCB0aGUgR0xTTCBkZWNsYXJhdGlvbiAiYXR0cmlidXRl
IGZsb2F0IGFfcG9zaXRpb24iIGlzIGluY29ycmVjdCBiZWNhdXNlCisgICAgICAgIGFfcG9zaXRp
b24gc2hvdWxkIGJlIGEgdmVjNCwgbm90IGEgZmxvYXQuCisKKyAgICAgICAgVGVzdDogY3NzMy9m
aWx0ZXJzL2N1c3RvbS9pbnZhbGlkLWN1c3RvbS1maWx0ZXItYXR0cmlidXRlLXR5cGVzLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBTkdMRVNoYWRlclN5bWJvbDo6aXNTYW1wbGVyKToKKyAgICAgICAgICAg
IEFkZCBjb25zdCBxdWFsaWZpZXIgdG8gaXNTYW1wbGVyIG1ldGhvZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpidWlsdEluQXR0cmlidXRlTmFt
ZVRvVHlwZU1hcCk6CisgICAgICAgICAgICBOZXcgZmlsZSBzdGF0aWMgZnVuY3Rpb24uIFJldHVy
bnMgYSBtYXAgb2YgdGhlIENTUyBDdXN0b20gRmlsdGVycyBidWlsdC1pbiBhdHRyaWJ1dGUKKyAg
ICAgICAgICAgIG5hbWVzIGFuZCB0aGVpciBleHBlY3RlZCB0eXBlcy4KKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRlU3ltYm9scyk6CisgICAgICAgICAgICBOZXcgZmlsZSBzdGF0aWMgZnVuY3Rp
b24uIExvb3AgdGhyb3VnaCBhbGwgb2YgdGhlIHN5bWJvbHMuIFJlamVjdCB0aGUgc2hhZGVyIGlm
IHdlIGZpbmQKKyAgICAgICAgICAgIGEgYnVpbHQtaW4gYXR0cmlidXRlIGRlZmluZWQgd2l0aCB0
aGUgd3JvbmcgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW06OkN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0pOgorICAgICAgICAgICAgQ2FsbCB0
aGUgbmV3IHZhbGlkYXRlU3ltYm9scyBmdW5jdGlvbi4gSWYgaXQgcmV0dXJucyBmYWxzZSwgZXhp
dCB0aGUgY29uc3RydWN0b3IgZWFybHksCisgICAgICAgICAgICB3aGljaCByZWplY3RzIHRoZSBw
cm9ncmFtLgorICAgICAgICAgICAgTW92ZSB0aGUgbG9vcCB0aGF0IGNoZWNrcyBpZiBhbnkgdW5p
Zm9ybSBpcyBhIHNhbXBsZXIgaW50byB0aGUgdGhlIHZhbGlkYXRlU3ltYm9scworICAgICAgICAg
ICAgZnVuY3Rpb24uCisKIDIwMTItMTAtMTYgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJlbW92ZSBzcGVjaWFsLWNhc2UgZmxvb3Jpbmcgb2YgYmFzZWxpbmVQ
b3NpdGlvbiBmb3IgcmVwbGFjZWQgZWxlbWVudHMgaW4gSW5saW5lRmxvd0JveDo6cGxhY2VCb3hl
c0luQmxvY2tEaXJlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCmluZGV4IDE3OGQzYmQuLjVjNTA5OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aApAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgQU5HTEVTaGFkZXJTeW1ib2wgewogICAgIFNoRGF0
YVR5cGUgZGF0YVR5cGU7CiAgICAgaW50IHNpemU7CiAKLSAgICBib29sIGlzU2FtcGxlcigpCisg
ICAgYm9vbCBpc1NhbXBsZXIoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN5bWJvbFR5
cGUgPT0gU0hBREVSX1NZTUJPTF9UWVBFX1VOSUZPUk0KICAgICAgICAgICAgICYmIChkYXRhVHlw
ZSA9PSBTSF9TQU1QTEVSXzJECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtLmNwcAppbmRleCA4NWRkZGE1Li4yNmU4YjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dy
YW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKQEAgLTM3LDEyICszNyw3MCBAQAogI2luY2x1
ZGUgIkN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJQ
cm9ncmFtSW5mby5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNkZWZp
bmUgU0hBREVSKFNyYykgKCNTcmMpIAogCisvLyBGSVhNRTogUmV1c2UgdGhpcyB0eXBlIHdoZW4g
d2UgdmFsaWRhdGUgdGhlIHR5cGVzIG9mIGJ1aWx0LWluIHVuaWZvcm1zLgorLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4OTc0Cit0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBTaERhdGFUeXBlPiBTeW1ib2xOYW1lVG9UeXBlTWFwOworCitzdGF0aWMgU3ltYm9sTmFt
ZVRvVHlwZU1hcCogYnVpbHRJbkF0dHJpYnV0ZU5hbWVUb1R5cGVNYXAoKQoreworICAgIHN0YXRp
YyBTeW1ib2xOYW1lVG9UeXBlTWFwKiBuYW1lVG9UeXBlTWFwID0gMDsKKyAgICBpZiAoIW5hbWVU
b1R5cGVNYXApIHsKKyAgICAgICAgbmFtZVRvVHlwZU1hcCA9IG5ldyBTeW1ib2xOYW1lVG9UeXBl
TWFwOyAgICAgICAgCisgICAgICAgIG5hbWVUb1R5cGVNYXAtPnNldCgiYV9tZXNoQ29vcmQiLCBT
SF9GTE9BVF9WRUMyKTsKKyAgICAgICAgbmFtZVRvVHlwZU1hcC0+c2V0KCJhX3Bvc2l0aW9uIiwg
U0hfRkxPQVRfVkVDNCk7CisgICAgICAgIG5hbWVUb1R5cGVNYXAtPnNldCgiYV90ZXhDb29yZCIs
IFNIX0ZMT0FUX1ZFQzIpOworICAgICAgICBuYW1lVG9UeXBlTWFwLT5zZXQoImFfdHJpYW5nbGVD
b29yZCIsIFNIX0ZMT0FUX1ZFQzMpOworICAgIH0KKyAgICByZXR1cm4gbmFtZVRvVHlwZU1hcDsK
K30KKworc3RhdGljIGJvb2wgdmFsaWRhdGVTeW1ib2xzKGNvbnN0IFZlY3RvcjxBTkdMRVNoYWRl
clN5bWJvbD4mIHN5bWJvbHMpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzeW1ib2xz
LnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEFOR0xFU2hhZGVyU3ltYm9sJiBzeW1ib2wg
PSBzeW1ib2xzW2ldOworICAgICAgICBzd2l0Y2ggKHN5bWJvbC5zeW1ib2xUeXBlKSB7CisgICAg
ICAgIGNhc2UgU0hBREVSX1NZTUJPTF9UWVBFX0FUVFJJQlVURTogeworICAgICAgICAgICAgU3lt
Ym9sTmFtZVRvVHlwZU1hcCogYXR0cmlidXRlTmFtZVRvVHlwZU1hcCA9IGJ1aWx0SW5BdHRyaWJ1
dGVOYW1lVG9UeXBlTWFwKCk7CisgICAgICAgICAgICBTeW1ib2xOYW1lVG9UeXBlTWFwOjppdGVy
YXRvciBidWlsdEluQXR0cmlidXRlID0gYXR0cmlidXRlTmFtZVRvVHlwZU1hcC0+ZmluZChzeW1i
b2wubmFtZSk7CisgICAgICAgICAgICBpZiAoYnVpbHRJbkF0dHJpYnV0ZSAhPSBhdHRyaWJ1dGVO
YW1lVG9UeXBlTWFwLT5lbmQoKSAmJiBzeW1ib2wuZGF0YVR5cGUgIT0gYnVpbHRJbkF0dHJpYnV0
ZS0+dmFsdWUpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgYXV0aG9yIGRlZmluZWQgb25lIG9m
IHRoZSBidWlsdC1pbiBhdHRyaWJ1dGVzIHdpdGggdGhlIHdyb25nIHR5cGUuCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGSVhN
RTogUmV0dXJuIGZhbHNlIHdoZW4gdGhlIGF0dHJpYnV0ZSBpcyBub3Qgb25lIG9mIHRoZSBidWls
dC1pbiBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4OTczCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBjYXNlIFNIQURFUl9TWU1CT0xfVFlQRV9VTklGT1JNOgorICAgICAgICAgICAgaWYgKHN5
bWJvbC5pc1NhbXBsZXIoKSkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGb3Igbm93LCB3
ZSByZXN0cmljdCBzaGFkZXJzIHdpdGggYW55IHNhbXBsZXIgZGVmaW5lZC4KKyAgICAgICAgICAg
ICAgICAvLyBXaGVuIHdlIGltcGxlbWVudCB0ZXh0dXJlIHBhcmFtZXRlcnMsIHdlIHdpbGwgYWxs
b3cgc2hhZGVycyB3aG9zZSBzYW1wbGVycyBhcmUgYm91bmQgdG8gdmFsaWQgdGV4dHVyZXMuCisg
ICAgICAgICAgICAgICAgLy8gV2UgbXVzdCBub3QgYWxsb3cgT3BlbkdMIHRvIGdpdmUgdW5ib3Vu
ZCBzYW1wbGVycyBhIGRlZmF1bHQgdmFsdWUgb2YgMCBiZWNhdXNlIHRoYXQgcmVmZXJlbmNlcyB0
aGUgZWxlbWVudCB0ZXh0dXJlLAorICAgICAgICAgICAgICAgIC8vIHdoaWNoIHNob3VsZCBiZSBp
bmFjY2Vzc2libGUgdG8gdGhlIGF1dGhvcidzIHNoYWRlciBjb2RlLgorICAgICAgICAgICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjIzMAorICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8g
RklYTUU6IFZhbGlkYXRlIHRoZSB0eXBlcyBvZiBidWlsdC1pbiB1bmlmb3Jtcy4KKyAgICAgICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk3NAorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIHRydWU7Cit9CisKIFN0cmluZyBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpk
ZWZhdWx0VmVydGV4U2hhZGVyU3RyaW5nKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0
cmluZywgdmVydGV4U2hhZGVyU3RyaW5nLCAoQVNDSUlMaXRlcmFsKFNIQURFUigKQEAgLTk1LDE2
ICsxNTMsMTAgQEAgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6Q3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbShDdXN0b21GaWx0ZXJHbG9iYWxDb24KICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIC8vIFZhbGlkYXRlIHRoZSBhdXRob3IncyBzYW1wbGVycy4KLSAgICBmb3IgKFZl
Y3RvcjxBTkdMRVNoYWRlclN5bWJvbD46Oml0ZXJhdG9yIGl0ID0gc3ltYm9scy5iZWdpbigpOyBp
dCAhPSBzeW1ib2xzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+aXNTYW1wbGVyKCkp
IHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBGb3Igbm93LCB3ZSByZXN0cmljdCBzaGFkZXJzIHdp
dGggYW55IHNhbXBsZXIgZGVmaW5lZC4KLSAgICAgICAgICAgIC8vIFdoZW4gd2UgaW1wbGVtZW50
IHRleHR1cmUgcGFyYW1ldGVycywgd2Ugd2lsbCBhbGxvdyBzaGFkZXJzIHdob3NlIHNhbXBsZXJz
IGFyZSBib3VuZCB0byB2YWxpZCB0ZXh0dXJlcy4KLSAgICAgICAgICAgIC8vIFdlIG11c3Qgbm90
IGFsbG93IE9wZW5HTCB0byBnaXZlIHVuYm91bmQgc2FtcGxlcnMgYSBkZWZhdWx0IHZhbHVlIG9m
IDAgYmVjYXVzZSB0aGF0IHJlZmVyZW5jZXMgdGhlIERPTSBlbGVtZW50IHRleHR1cmUsCi0gICAg
ICAgICAgICAvLyB3aGljaCBzaG91bGQgYmUgaW5hY2Nlc3NpYmxlIHRvIHRoZSBhdXRob3IncyBz
aGFkZXIgY29kZS4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NjIzMAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgaWYg
KCF2YWxpZGF0ZVN5bWJvbHMoc3ltYm9scykpIHsKKyAgICAgICAgLy8gRklYTUU6IFJlcG9ydCB2
YWxpZGF0aW9uIGVycm9ycy4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc0NDE2CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBXZSBu
ZWVkIHRvIGFkZCB0ZXh0dXJlIGFjY2VzcywgYmxlbmRpbmcsIGFuZCBjb21wb3NpdGluZyBjb2Rl
IHRvIHNoYWRlcnMgdGhhdCBhcmUgcmVmZXJlbmNlZCBmcm9tIHRoZSBDU1MgbWl4IGZ1bmN0aW9u
Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>