<?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>84787</bug_id>
          
          <creation_ts>2012-04-24 15:11:30 -0700</creation_ts>
          <short_desc>WebGLRenderingContext methods should throw TypeError for not enough arguments</short_desc>
          <delta_ts>2012-04-30 14:47:54 -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>WebGL</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>84074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>cmarrin</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>609123</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-24 15:11:30 -0700</bug_when>
    <thetext>Currently, WebGLRenderingcontext methods implement &quot;Not enough arguments&quot; error as SyntaxError. The Web IDL spec requires that it should be TypeError:
http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm

I wanted to confirm the behavior of Firefox and Opera, but they do not implement WebGL yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609126</commentid>
    <comment_count>1</comment_count>
      <attachid>138662</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-24 15:15:20 -0700</bug_when>
    <thetext>Created attachment 138662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609137</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-24 15:19:46 -0700</bug_when>
    <thetext>It should be possible to get WebGL to work within Firefox with an up-to-date build, either Beta or Aurora. Also, Opera Next (currently 12) should implement WebGL.

It would be good to align this error behavior with that of Web IDL.

Ideally tests would be added to the WebGL conformance suite verifying this behavior. See http://www.khronos.org/webgl/wiki/Testing/Conformance . I am not sure whether all browser vendors would be in favor of doing so. Previously there was some agreement that we would not tie the WebGL implementation to proper implementation of all of the corner case behaviors of Web IDL. As far as I know, doing so would cause some significant problems in the handling of numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609140</commentid>
    <comment_count>3</comment_count>
      <attachid>138662</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-24 15:23:07 -0700</bug_when>
    <thetext>Comment on attachment 138662
Patch

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

The change seems positive overall but some cleanups are needed. Please also work with zmo to incorporate this test into the WebGL conformance test suite.

&gt; Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp:146
&gt; +        return throwError(exec, createTypeError(exec, &quot;Not enough arguments&quot;));

Please refactor this so that the string isn&apos;t duplicated throughout this file.

&gt; Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:220
&gt; +        return throwError(&quot;Not enough arguments&quot;);

Same comment about refactoring here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609146</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-24 15:27:18 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 138662 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138662&amp;action=review
&gt; 
&gt; The change seems positive overall but some cleanups are needed. Please also work with zmo to incorporate this test into the WebGL conformance test suite.
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp:146
&gt; &gt; +        return throwError(exec, createTypeError(exec, &quot;Not enough arguments&quot;));
&gt; 
&gt; Please refactor this so that the string isn&apos;t duplicated throughout this file.
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:220
&gt; &gt; +        return throwError(&quot;Not enough arguments&quot;);
&gt; 
&gt; Same comment about refactoring here.

OK. Two notes:

- Almost all methods are throwing TypeError for not enough arguments. Now WebGLRenderingContextCustom is an exception.
- All methods in JSC/V8 custom bindings are hard-coding &quot;Not enough arguments&quot;. (Too many &quot;Not enough arguments&quot; in the world!:-) I agree we should make throwNotEnoughArgumentError(). I&apos;ll do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609156</commentid>
    <comment_count>5</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2012-04-24 15:37:49 -0700</bug_when>
    <thetext>What about the auto-generated bindings?  Are they throwing SyntaxError or TypeError?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609161</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-24 15:43:27 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; What about the auto-generated bindings?  Are they throwing SyntaxError or TypeError?

TypeError. Now I&apos;ve been fixing the bug of custom bindings. There are ~10 bindings that throw wrong type of errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612777</commentid>
    <comment_count>7</comment_count>
      <attachid>139484</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-30 11:15:27 -0700</bug_when>
    <thetext>Created attachment 139484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612779</commentid>
    <comment_count>8</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-30 11:16:17 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; The change seems positive overall but some cleanups are needed.
&gt;
&gt; &gt; Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp:146
&gt; &gt; +        return throwError(exec, createTypeError(exec, &quot;Not enough arguments&quot;));
&gt; 
&gt; Please refactor this so that the string isn&apos;t duplicated throughout this file.

Done.
 
Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:220
&gt; &gt; +        return throwError(&quot;Not enough arguments&quot;);
&gt; 
&gt; Same comment about refactoring here.

Done.

&gt; Please also work with zmo to incorporate this test into the WebGL conformance test suite.

zmo: Do you have any idea on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612811</commentid>
    <comment_count>9</comment_count>
      <attachid>139484</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-30 11:41:18 -0700</bug_when>
    <thetext>Comment on attachment 139484
Patch

Looks good. r=me

Thinking more about incorporating this test into the WebGL conformance suite: that suite doesn&apos;t use test expectations, so it would be necessary to explicitly check the exception object and verify that it is a TypeError. Is that feasible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612814</commentid>
    <comment_count>10</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-30 11:43:16 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Thinking more about incorporating this test into the WebGL conformance suite: that suite doesn&apos;t use test expectations, so it would be necessary to explicitly check the exception object and verify that it is a TypeError. Is that feasible?

I think it&apos;s easy. I&apos;ll look into the conformance suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612893</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-30 13:19:15 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Thinking more about incorporating this test into the WebGL conformance suite

kbr: I&apos;ll add the test to the conformance test later, but should I remove fast/canvas/webgl/webgl-exceptions.html from the WebKit patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612900</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-04-30 13:22:11 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; kbr: I&apos;ll add the test to the conformance test later, but should I remove fast/canvas/webgl/webgl-exceptions.html from the WebKit patch?

No, please leave it in the patch; the more testing the better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612974</commentid>
    <comment_count>13</comment_count>
      <attachid>139484</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-30 14:47:26 -0700</bug_when>
    <thetext>Comment on attachment 139484
Patch

Clearing flags on attachment: 139484

Committed r115673: &lt;http://trac.webkit.org/changeset/115673&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612975</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-30 14:47:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138662</attachid>
            <date>2012-04-24 15:15:20 -0700</date>
            <delta_ts>2012-04-30 11:15:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84787-20120424151508.patch</filename>
            <type>text/plain</type>
            <size>18285</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE5MzUyY2IxYzE4N2Mx
ZmZhYzNhZmZlMzFlODk2ZWY1NmFiNWM4NS4uOWM5NTBlNjEwZjM5YjBkNDI1ZjhmZjliZGQxNmFk
MTEyMjE3OTAyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDEyLTA0LTI0ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQgbWV0aG9kcyBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGZvciBub3QgZW5vdWdoIGFy
Z3VtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODQ3ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
dXJyZW50bHksIFdlYkdMUmVuZGVyaW5nY29udGV4dCBtZXRob2RzIGltcGxlbWVudAorICAgICAg
ICAiTm90IGVub3VnaCBhcmd1bWVudHMiIGVycm9yIGFzIFN5bnRheEVycm9yLiBUaGUgV2ViIElE
TAorICAgICAgICBzcGVjIHJlcXVpcmVzIHRoYXQgaXQgc2hvdWxkIGJlIFR5cGVFcnJvcjoKKyAg
ICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvV2ViSURMLyNkZm4tb3ZlcmxvYWQtcmVzb2x1dGlv
bi1hbGdvcml0aG0KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZXMgU3ludGF4RXJyb3IgdG8g
VHlwZUVycm9yLgorCisgICAgICAgIEkgd2FudGVkIHRvIGNvbmZpcm0gdGhlIGJlaGF2aW9yIG9m
IEZpcmVmb3ggYW5kIE9wZXJhLAorICAgICAgICBidXQgdGhleSBkbyBub3QgaW1wbGVtZW50IFdl
YkdMIHlldC4KKworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1leGNlcHRp
b25zLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldE9iamVjdFBhcmFtZXRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm0pOgorICAgICAgICAo
V2ViQ29yZTo6ZGF0YUZ1bmN0aW9uZik6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25p
KToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbk1hdHJpeCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmdldE9iamVjdFBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbkNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXJDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVy
UGFyYW1ldGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldFVuaWZvcm1DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2ZXJ0ZXhBdHRy
aWJBbmRVbmlmb3JtSGVscGVyZik6CisgICAgICAgIChXZWJDb3JlOjp1bmlmb3JtSGVscGVyaSk6
CisgICAgICAgIChXZWJDb3JlOjp1bmlmb3JtTWF0cml4SGVscGVyKToKKworMjAxMi0wNC0yNCAg
S2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW1Y4XSBQYXNz
IElzb2xhdGUgYXJvdW5kIGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKFBhcnQxKQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ2NjMKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDZkNzFlNWUxMzkyZDZlZTQ0YzY2Y2MyYzZmMzMyMjM2
MGM5MDJjMWMuLmRhMWIyN2VjNDMwNWJlZDI2MTYzZDU5ZmY2ZWMyY2U5YjJmODc2NTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBlbnVtIE9iamVjdFR5cGUg
ewogc3RhdGljIEpTVmFsdWUgZ2V0T2JqZWN0UGFyYW1ldGVyKEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0KiBvYmosIEV4ZWNTdGF0ZSogZXhlYywgT2JqZWN0VHlwZSBvYmplY3RUeXBlKQogewogICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMikKLSAgICAgICAgcmV0dXJuIHRocm93U3lu
dGF4RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CiAKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNf
Y2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPihvYmotPmltcGwoKSk7CkBAIC0yMjIsNyArMjIy
LDcgQEAgdm9pZCBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwq
IGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93U3ludGF4RXJyb3Io
ZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihl
eGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
ID4gMCAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+
YXJndW1lbnQoMCkuaW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpzX2luZm8pKQpAQCAtMjQ3LDcg
KzI0Nyw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hh
ZGVycyhFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRFeHRlbnNpb24oRXhlY1N0YXRlKiBleGVjKQogewogICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAxKQotICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb3QgZW5v
dWdoIGFyZ3VtZW50cyIpKTsKIAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9
IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KGltcGwoKSk7CiAgICAgY29uc3Qg
U3RyaW5nJiBuYW1lID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5n
KGV4ZWMpLT52YWx1ZShleGVjKSk7CkBAIC0yNjUsNyArMjY1LDcgQEAgSlNWYWx1ZSBKU1dlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Z2V0QnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSogZXhlYykKIEpT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSAhPSAzKQotICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb3QgZW5vdWdo
IGFyZ3VtZW50cyIpKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4
dCo+KGltcGwoKSk7CkBAIC0yODksNyArMjg5LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEV4ZWNTdGF0ZSogZXgK
IEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAhPSAxKQotICAgICAgICBy
ZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
ZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKIAog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29u
dGV4dCA9IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KGltcGwoKSk7CkBAIC0z
MDcsNyArMzA3LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1l
dGVyKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Omdl
dFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogewogICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgIT0gMikKLSAgICAgICAgcmV0dXJuIHRocm93U3ludGF4RXJyb3IoZXhlYyk7
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAi
Tm90IGVub3VnaCBhcmd1bWVudHMiKSk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxXZWJHTFJlbmRl
cmluZ0NvbnRleHQqPihpbXBsKCkpOwpAQCAtMzMzLDcgKzMzMyw3IEBAIEpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihFeGVjU3RhdGUqIGV4
ZWMpCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXIo
RXhlY1N0YXRlKiBleGVjKQogewogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMikK
LSAgICAgICAgcmV0dXJuIHRocm93U3ludGF4RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVu
dHMiKSk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPihpbXBs
KCkpOwpAQCAtMzcxLDcgKzM3MSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFRleFBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRVbmlmb3JtKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpICE9IDIpCi0gICAgICAgIHJldHVybiB0aHJvd1N5bnRheEVycm9yKGV4
ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhl
YywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKQEAgLTQ0NSw3ICs0NDUsNyBAQCBzdGF0aWMgYm9v
bCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCiBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSAhPSAyKQotICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihl
eGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4
ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKICAgICAKICAgICBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiogbG9jYXRpb24gPSAwOwogICAgIGxvbmcgaW5kZXggPSAtMTsKQEAgLTUzNSw3ICs1MzUs
NyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxs
IGYsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZQogc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVu
Y3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgIT0gMikKLSAgICAgICAgcmV0dXJuIHRocm93U3ludGF4RXJyb3IoZXhlYyk7CisgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm90IGVub3Vn
aCBhcmd1bWVudHMiKSk7CiAKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAh
ZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQo
MCkuaW5oZXJpdHMoJkpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnNfaW5mbykpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBXZQogc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRGF0
YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAh
PSAzKQotICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFy
Z3VtZW50cyIpKTsKIAogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwICYmICFleGVj
LT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5p
bmhlcml0cygmSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19pbmZvKSkKICAgICAgICAgcmV0dXJu
IHRocm93VHlwZUVycm9yKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHAKaW5kZXggOGYyMzJlNTc5MWI0OTA4MmI4YzcwYWE4YmI3NzAwOTdmYmQxNjRkMC4uMjVmZmFj
NDliY2Y2OTJlNmQ0NjlkZWU1YjIxN2ZlMzI0OGFmZjFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCkBAIC0yMTYsMTAgKzIxNiw4IEBAIGVudW0gT2JqZWN0VHlwZSB7
CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0T2JqZWN0UGFyYW1ldGVyKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkKIHsKLSAgICBpZiAo
YXJncy5MZW5ndGgoKSAhPSAyKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihT
WU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVk
QnlJbnRlcmNlcHRvcigpOwotICAgIH0KKyAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAyKQorICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiKTsKIAogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9
IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKQEAgLTI3
MCwxMCArMjY4LDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRBdHRhY2hlZFNoYWRlcnNDYWxsYmFjayhjb25zdAogewogICAgIElOQ19TVEFUUygi
RE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5nZXRBdHRhY2hlZFNoYWRlcnMoKSIpOwogCi0gICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlv
bihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgICAgIHJldHVybiBub3RIYW5k
bGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogCiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0
ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwpAQCAt
MzA2LDEwICszMDIsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldEV4dGVuc2lvbkNhbGxiYWNrKGNvbnN0IHY4OjpBcgogewogICAgIElOQ19TVEFU
UygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5nZXRFeHRlbnNpb25DYWxsYmFjaygpIik7CiAg
ICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBpbXAgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKSB7Ci0g
ICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xh
dGUoKSk7Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0K
KyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJO
b3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgbmFtZSwgYXJnc1swXSk7CiAgICAgV2ViR0xFeHRlbnNp
b24qIGV4dGVuc2lvbiA9IGltcC0+Z2V0RXh0ZW5zaW9uKG5hbWUpOwogICAgIHJldHVybiB0b1Y4
T2JqZWN0KGV4dGVuc2lvbiwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOwpAQCAt
MzE5LDEwICszMTMsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcgogewogICAgIElOQ19TVEFU
UygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIoKSIpOwogCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMykgewotICAgICAgICBWOFBy
b3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAg
ICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9CisgICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgIT0gMykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2gg
YXJndW1lbnRzIik7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7CkBAIC0zNDEsMTAgKzMzMyw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyQ2FsbGJhY2soY29uc3Qgdjg6
OkFyCiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xSZW5kZXJpbmdDb250ZXh0LmdldFBhcmFt
ZXRlcigpIik7CiAKLSAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAxKSB7Ci0gICAgICAgIFY4UHJv
eHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAg
ICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KKyAgICBpZiAoYXJn
cy5MZW5ndGgoKSAhPSAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBh
cmd1bWVudHMiKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKQEAgLTM2MSwxMCArMzUxLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyQ2FsbGJhY2soY29u
c3QKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRlcmluZ0NvbnRleHQuZ2V0UHJvZ3Jh
bVBhcmFtZXRlcigpIik7CiAKLSAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAyKSB7Ci0gICAgICAg
IFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7
Ci0gICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KKyAgICBp
ZiAoYXJncy5MZW5ndGgoKSAhPSAyKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVu
b3VnaCBhcmd1bWVudHMiKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKQEAgLTM5MiwxMCArMzgwLDggQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXJDYWxsYmFj
ayhjb25zdAogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5nZXRT
aGFkZXJQYXJhbWV0ZXIoKSIpOwogCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMikgewotICAg
ICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRl
KCkpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9Cisg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5v
dCBlbm91Z2ggYXJndW1lbnRzIik7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CkBAIC00MzcsMTAgKzQyMyw4IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybUNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1CiB7CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmdldFVuaWZvcm0oKSIpOwogCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMikgewotICAgICAg
ICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkp
OwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9CisgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBl
bm91Z2ggYXJndW1lbnRzIik7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9O
YXRpdmUoYXJncy5Ib2xkZXIoKSk7CkBAIC01MTAsMTAgKzQ5NCw4IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmVydGV4QXR0cmliQW5kVW5pZm9ybUhlbHBlcmYoY29uc3Qgdjg6OkFy
Z3VtZW50cyYKICAgICAvLyAqIGdsVmVydGV4QXR0cmliNGZ2KEdMaW50IGluZGV4LCBBcnJheSBk
YXRhKTsKICAgICAvLyAqIGdsVmVydGV4QXR0cmliNGZ2KEdMaW50IGluZGV4LCBGbG9hdDMyQXJy
YXkgZGF0YSk7CiAKLSAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAyKSB7Ci0gICAgICAgIFY4UHJv
eHk6OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAg
ICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KKyAgICBpZiAoYXJn
cy5MZW5ndGgoKSAhPSAyKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBh
cmd1bWVudHMiKTsKIAogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBpbnQgaW5kZXggPSAtMTsK
QEAgLTU5NCwxMCArNTc2LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3Jt
SGVscGVyaShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLAogICAgIC8vICogZ2xVbmlmb3JtNGl2
KEdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBBcnJheSBkYXRhKTsKICAgICAvLyAqIGdsVW5p
Zm9ybTRpdihHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgSW50MzJBcnJheSBkYXRhKTsKIAot
ICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDIpIHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhj
ZXB0aW9uKFNZTlRBWF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICAgICAgcmV0dXJuIG5v
dEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQorICAgIGlmIChhcmdzLkxlbmd0aCgpICE9
IDIpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwog
CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4g
MCAmJiAhaXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIVY4V2ViR0xVbmlmb3JtTG9jYXRp
b246Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7CkBAIC03MTAsMTAgKzY5MCw4IEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdW5pZm9ybU1hdHJpeEhlbHBlcihjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzLAogICAgIC8vICogZ2xVbmlmb3JtTWF0cml4NGZ2KEdMaW50IGxvY2F0aW9uLCBH
TGJvb2xlYW4gdHJhbnNwb3NlLCBGbG9hdDMyQXJyYXkgZGF0YSk7CiAgICAgLy8KICAgICAvLyBG
SVhNRTogbmVlZCB0byBjaGFuZ2UgdG8gYWNjZXB0IEZsb2F0MzJBcnJheSBhcyB3ZWxsLgotICAg
IGlmIChhcmdzLkxlbmd0aCgpICE9IDMpIHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0
aW9uKFNZTlRBWF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICAgICAgcmV0dXJuIG5vdEhh
bmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQorICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDMp
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpOwogCiAg
ICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzg0MGVkODFjODk3MjkyZjdh
MDQ0MzM5MWExNzRlMDJiYTJlMzM1OC4uNjAzOGRkMTBjZjA2YTlhNzIwZThiOTNmNzUyZDhhODBj
MjFiODEzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA0LTI0ICBLZW50YXJvIEhhcmEg
IDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQg
bWV0aG9kcyBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGZvciBub3QgZW5vdWdoIGFyZ3VtZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ3ODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHks
IFdlYkdMUmVuZGVyaW5nY29udGV4dCBtZXRob2RzIGltcGxlbWVudAorICAgICAgICAiTm90IGVu
b3VnaCBhcmd1bWVudHMiIGVycm9yIGFzIFN5bnRheEVycm9yLiBUaGUgV2ViIElETAorICAgICAg
ICBzcGVjIHJlcXVpcmVzIHRoYXQgaXQgc2hvdWxkIGJlIFR5cGVFcnJvcjoKKyAgICAgICAgaHR0
cDovL3d3dy53My5vcmcvVFIvV2ViSURMLyNkZm4tb3ZlcmxvYWQtcmVzb2x1dGlvbi1hbGdvcml0
aG0KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZXMgU3ludGF4RXJyb3IgdG8gVHlwZUVycm9y
LgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtZXhjZXB0aW9ucy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3dlYmdsLWV4Y2VwdGlv
bnMuaHRtbDogQWRkZWQuCisKIDIwMTItMDQtMjQgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgdGVzdCBleHBl
Y3RhdGlvbnMgdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvd2ViZ2wtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC93ZWJnbC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2IwOGE4
MzUzYTNiNDhmNjg5MjdlMzIzMDBkYTlhOWY2Y2ZmM2YxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxOSBAQAorUEFTUyBnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wuZ2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMuCitQQVNTIGdsLmdldFRleFBhcmFtZXRlcigpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wu
Z2V0QXR0YWNoZWRTaGFkZXJzKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIGdsLmdldEV4dGVuc2lvbigpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIGdsLmdldFByb2dyYW1QYXJhbWV0ZXIoKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wu
Z2V0U2hhZGVyUGFyYW1ldGVyKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIGdsLmdldFVuaWZvcm0oKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wudW5pZm9ybTFpdigpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBnbC51bmlmb3Jt
TWF0cml4MmZ2KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCitQQVNTIGdsLnVuaWZvcm0xZnYoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wudmVydGV4QXR0cmliMWZ2KCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtZXhjZXB0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvd2ViZ2wtZXhjZXB0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxY2JlMTMw
NDRhZDE2MDBlNTAxZjg2YTYyNjZiODczZWU2MTcxZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1leGNlcHRpb25zLmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+Cit2YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoKTsKK3Nob3VsZFRocm93KCdn
bC5nZXRCdWZmZXJQYXJhbWV0ZXIoKScpOworc2hvdWxkVGhyb3coJ2dsLmdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcigpJyk7CitzaG91bGRUaHJvdygnZ2wuZ2V0VGV4UGFyYW1ldGVyKCknKTsKK3No
b3VsZFRocm93KCdnbC5nZXRWZXJ0ZXhBdHRyaWIoKScpOworc2hvdWxkVGhyb3coJ2dsLmdldEF0
dGFjaGVkU2hhZGVycygpJyk7CitzaG91bGRUaHJvdygnZ2wuZ2V0RXh0ZW5zaW9uKCknKTsKK3No
b3VsZFRocm93KCdnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoKScpOworc2hv
dWxkVGhyb3coJ2dsLmdldFBhcmFtZXRlcigpJyk7CitzaG91bGRUaHJvdygnZ2wuZ2V0UHJvZ3Jh
bVBhcmFtZXRlcigpJyk7CitzaG91bGRUaHJvdygnZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKCknKTsK
K3Nob3VsZFRocm93KCdnbC5nZXRVbmlmb3JtKCknKTsKK3Nob3VsZFRocm93KCdnbC51bmlmb3Jt
MWl2KCknKTsKK3Nob3VsZFRocm93KCdnbC51bmlmb3JtTWF0cml4MmZ2KCknKTsKK3Nob3VsZFRo
cm93KCdnbC51bmlmb3JtMWZ2KCknKTsKK3Nob3VsZFRocm93KCdnbC52ZXJ0ZXhBdHRyaWIxZnYo
KScpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139484</attachid>
            <date>2012-04-30 11:15:27 -0700</date>
            <delta_ts>2012-04-30 14:47:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84787-20120430111526.patch</filename>
            <type>text/plain</type>
            <size>18257</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxYjE1OTA0YmIyNmEy
ZDY0NTQ2OWY5YzVkZDgxMTkzMDk1MGMwYy4uYzI3ODBjZDlhYWFhMmZiMzc2Yzg0N2UxOTkyMjlh
M2RiMzAwMGUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtNzc4Myw2ICs3NzgzLDUwIEBACiAKIDIwMTItMDQt
MjQgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCBtZXRob2RzIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IgZm9yIG5vdCBl
bm91Z2ggYXJndW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NDc4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEN1cnJlbnRseSwgV2ViR0xSZW5kZXJpbmdjb250ZXh0IG1ldGhvZHMgaW1wbGVtZW50
CisgICAgICAgICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIgZXJyb3IgYXMgU3ludGF4RXJyb3IuIFRo
ZSBXZWIgSURMCisgICAgICAgIHNwZWMgcmVxdWlyZXMgdGhhdCBpdCBzaG91bGQgYmUgVHlwZUVy
cm9yOgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9XZWJJREwvI2Rmbi1vdmVybG9hZC1y
ZXNvbHV0aW9uLWFsZ29yaXRobQorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBTeW50YXhF
cnJvciB0byBUeXBlRXJyb3IuCisKKyAgICAgICAgSSB3YW50ZWQgdG8gY29uZmlybSB0aGUgYmVo
YXZpb3Igb2YgRmlyZWZveCBhbmQgT3BlcmEsCisgICAgICAgIGJ1dCB0aGV5IGRvIG5vdCBpbXBs
ZW1lbnQgV2ViR0wgeWV0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL3dlYmds
LWV4Y2VwdGlvbnMuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0T2JqZWN0UGFyYW1ldGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hl
ZFNoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Omdl
dEV4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFtZXRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybSk6Cisg
ICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25mKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFG
dW5jdGlvbmkpOgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uTWF0cml4KToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0T2JqZWN0UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hlZFNoYWRlcnNDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9u
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Omdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXJDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRl
ckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRTaGFkZXJQYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnZl
cnRleEF0dHJpYkFuZFVuaWZvcm1IZWxwZXJmKToKKyAgICAgICAgKFdlYkNvcmU6OnVuaWZvcm1I
ZWxwZXJpKToKKyAgICAgICAgKFdlYkNvcmU6OnVuaWZvcm1NYXRyaXhIZWxwZXIpOgorCisyMDEy
LTA0LTI0ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBb
VjhdIFBhc3MgSXNvbGF0ZSBhcm91bmQgaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAoUGFy
dDEpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDY2
MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNmQ3MWU1ZTEzOTJkNmVlNDRjNjZjYzJj
NmYzMzIyMzYwYzkwMmMxYy4uMGQ1ZTYwODEzOWZhNjFjZTcwMGY3MGU5MzdiMmZkYTkwZWY2OTY4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIGVudW0gT2Jq
ZWN0VHlwZSB7CiBzdGF0aWMgSlNWYWx1ZSBnZXRPYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHQqIG9iaiwgRXhlY1N0YXRlKiBleGVjLCBPYmplY3RUeXBlIG9iamVjdFR5cGUp
CiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAhPSAyKQotICAgICAgICByZXR1cm4g
dGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nh
c3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4ob2JqLT5pbXBsKCkpOwpAQCAtMjIyLDcgKzIyMiw3
IEBAIHZvaWQgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldEF0dGFjaGVkU2hhZGVycyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDEpCi0gICAgICAgIHJldHVybiB0aHJvd1N5bnRheEVycm9yKGV4
ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihleGVjKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0Kj4oaW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMCAmJiAhZXhl
Yy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCku
aW5oZXJpdHMoJkpTV2ViR0xQcm9ncmFtOjpzX2luZm8pKQpAQCAtMjQ3LDcgKzI0Nyw3IEBAIEpT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyhFeGVjU3Rh
dGUqIGV4ZWMpCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24o
RXhlY1N0YXRlKiBleGVjKQogewogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQot
ICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCiAg
ICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsKICAgICBjb25zdCBTdHJpbmcmIG5hbWUgPSB1c3RyaW5n
VG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsK
QEAgLTI2NSw3ICsyNjUsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRC
dWZmZXJQYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpICE9IDMpCi0gICAgICAgIHJldHVy
biB0aHJvd1N5bnRheEVycm9yKGV4ZWMpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNf
Y2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPihpbXBsKCkpOwpAQCAtMjg5LDcgKzI4OSw3IEBA
IEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcihFeGVjU3RhdGUqIGV4CiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRQYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogewogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgIT0gMSkKLSAgICAgICAgcmV0dXJuIHRocm93U3ludGF4RXJyb3IoZXhlYyk7Cisg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+
KGltcGwoKSk7CkBAIC0zMDcsNyArMzA3LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0UGFyYW1ldGVyKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMikKLSAgICAgICAgcmV0dXJuIHRocm93U3lu
dGF4RXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dCo+KGltcGwoKSk7CkBAIC0zMzMsNyArMzMzLDcgQEAgSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0
ZSogZXhlYykKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFt
ZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAh
PSAyKQotICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAgICAgcmV0
dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oaW1wbCgpKTsK
QEAgLTM3MSw3ICszNzEsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRU
ZXhQYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0VW5pZm9ybShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSAhPSAyKQotICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsK
KyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoZXhlYykpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0
Kj4oaW1wbCgpKTsKQEAgLTQ0NSw3ICs0NDUsNyBAQCBzdGF0aWMgYm9vbCBmdW5jdGlvbkZvclVu
aWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCiBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5j
dGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSAhPSAyKQotICAgICAgICByZXR1cm4gdGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhl
YykpOwogICAgIAogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IDA7CiAgICAg
bG9uZyBpbmRleCA9IC0xOwpAQCAtNTM1LDcgKzUzNSw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUg
ZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IFdlCiBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxs
IGYsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQp
CiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAhPSAyKQotICAgICAgICByZXR1cm4g
dGhyb3dTeW50YXhFcnJvcihleGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCiAgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA+IDAgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxs
KCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmluaGVyaXRzKCZKU1dlYkdMVW5pZm9ybUxvY2F0aW9u
OjpzX2luZm8pKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CkBAIC02MDAs
NyArNjAwLDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlv
blRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgV2UKIHN0YXRpYyBKU0M6OkpTVmFsdWUg
ZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgIT0gMykKLSAgICAgICAgcmV0dXJuIHRocm93U3ludGF4RXJy
b3IoZXhlYyk7CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKIAogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkg
PiAwICYmICFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5h
cmd1bWVudCgwKS5pbmhlcml0cygmSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6c19pbmZvKSkKICAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAKaW5kZXggOGYyMzJlNTc5MWI0OTA4MmI4YzcwYWE4YmI3NzAwOTdmYmQx
NjRkMC4uNDdhMzJlNTkzYWZkOGY3ZDZmYTBhZmYyNWJmMjljNDhhZmI1MWIzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0yMTYsMTAgKzIxNiw4IEBAIGVudW0g
T2JqZWN0VHlwZSB7CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0T2JqZWN0UGFy
YW1ldGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkK
IHsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAyKSB7Ci0gICAgICAgIFY4UHJveHk6OnNldERP
TUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KKyAgICBpZiAoYXJncy5MZW5ndGgo
KSAhPSAyKQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcigpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwpAQCAtMjcwLDEwICsyNjgsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVyc0NhbGxiYWNrKGNvbnN0CiB7
CiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xSZW5kZXJpbmdDb250ZXh0LmdldEF0dGFjaGVkU2hh
ZGVycygpIik7CiAKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpIHsKLSAgICAgICAgVjhQcm94
eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRBWF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICAg
ICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQorICAgIGlmIChhcmdz
Lkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKQEAgLTMwNiwxMCArMzAyLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb25DYWxsYmFjayhjb25zdCB2
ODo6QXIKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRlcmluZ0NvbnRleHQuZ2V0RXh0
ZW5zaW9uQ2FsbGJhY2soKSIpOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogaW1wID0gVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMSkgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lO
VEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKLSAgICB9CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwogICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgbmFtZSwg
YXJnc1swXSk7CiAgICAgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbiA9IGltcC0+Z2V0RXh0ZW5z
aW9uKG5hbWUpOwogICAgIHJldHVybiB0b1Y4T2JqZWN0KGV4dGVuc2lvbiwgYXJncy5Ib2xkZXIo
KSwgYXJncy5HZXRJc29sYXRlKCkpOwpAQCAtMzE5LDEwICszMTMsOCBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlcgogewogICAgIElOQ19TVEFUUygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5n
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoKSIpOwogCi0gICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgIT0gMykgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oU1lOVEFYX0VS
UiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJj
ZXB0b3IoKTsKLSAgICB9CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMykKKyAgICAgICAgcmV0
dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKIAogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4
V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKQEAgLTM0MSwx
MCArMzMzLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpnZXRQYXJhbWV0ZXJDYWxsYmFjayhjb25zdCB2ODo6QXIKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5XZWJHTFJlbmRlcmluZ0NvbnRleHQuZ2V0UGFyYW1ldGVyKCkiKTsKIAotICAgIGlmIChhcmdz
Lkxlbmd0aCgpICE9IDEpIHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKFNZTlRB
WF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7Ci0gICAgfQorICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDEpCisgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CiAKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQg
PSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CkBAIC0z
NjEsMTAgKzM1MSw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlckNhbGxiYWNrKGNvbnN0CiB7CiAgICAgSU5DX1NUQVRT
KCJET00uV2ViR0xSZW5kZXJpbmdDb250ZXh0LmdldFByb2dyYW1QYXJhbWV0ZXIoKSIpOwogCi0g
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMikgewotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNl
cHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICByZXR1cm4gbm90
SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0g
MikKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKQEAgLTM5MiwxMCArMzgwLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXJDYWxsYmFjayhjb25zdAogewogICAg
IElOQ19TVEFUUygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5nZXRTaGFkZXJQYXJhbWV0ZXIo
KSIpOwogCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMikgewotICAgICAgICBWOFByb3h5Ojpz
ZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICBy
ZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9CisgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgIT0gMikKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKQEAgLTQzNywxMCArNDIzLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3UKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRlcmluZ0NvbnRleHQuZ2V0VW5pZm9y
bSgpIik7CiAKLSAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAyKSB7Ci0gICAgICAgIFY4UHJveHk6
OnNldERPTUV4Y2VwdGlvbihTWU5UQVhfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0gICAgICAg
IHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgIH0KKyAgICBpZiAoYXJncy5M
ZW5ndGgoKSAhPSAyKQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcigpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZl
KGFyZ3MuSG9sZGVyKCkpOwpAQCAtNTEwLDEwICs0OTQsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHZlcnRleEF0dHJpYkFuZFVuaWZvcm1IZWxwZXJmKGNvbnN0IHY4OjpBcmd1bWVu
dHMmCiAgICAgLy8gKiBnbFZlcnRleEF0dHJpYjRmdihHTGludCBpbmRleCwgQXJyYXkgZGF0YSk7
CiAgICAgLy8gKiBnbFZlcnRleEF0dHJpYjRmdihHTGludCBpbmRleCwgRmxvYXQzMkFycmF5IGRh
dGEpOwogCi0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMikgewotICAgICAgICBWOFByb3h5Ojpz
ZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICBy
ZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9CisgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgIT0gMikKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoKTsKIAogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBpbnQgaW5kZXggPSAtMTsK
QEAgLTU5NCwxMCArNTc2LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3Jt
SGVscGVyaShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLAogICAgIC8vICogZ2xVbmlmb3JtNGl2
KEdMVW5pZm9ybUxvY2F0aW9uIGxvY2F0aW9uLCBBcnJheSBkYXRhKTsKICAgICAvLyAqIGdsVW5p
Zm9ybTRpdihHTFVuaWZvcm1Mb2NhdGlvbiBsb2NhdGlvbiwgSW50MzJBcnJheSBkYXRhKTsKIAot
ICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDIpIHsKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhj
ZXB0aW9uKFNZTlRBWF9FUlIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAgICAgICAgcmV0dXJuIG5v
dEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgfQorICAgIGlmIChhcmdzLkxlbmd0aCgpICE9
IDIpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCk7CiAKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPiAwICYmICFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhVjhXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKQEAgLTcxMCwxMCArNjkwLDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1bmlmb3JtTWF0cml4SGVscGVyKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MsCiAgICAgLy8gKiBnbFVuaWZvcm1NYXRyaXg0ZnYoR0xpbnQgbG9jYXRp
b24sIEdMYm9vbGVhbiB0cmFuc3Bvc2UsIEZsb2F0MzJBcnJheSBkYXRhKTsKICAgICAvLwogICAg
IC8vIEZJWE1FOiBuZWVkIHRvIGNoYW5nZSB0byBhY2NlcHQgRmxvYXQzMkFycmF5IGFzIHdlbGwu
Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMykgewotICAgICAgICBWOFByb3h5OjpzZXRET01F
eGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwotICAgICAgICByZXR1cm4g
bm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICB9CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
IT0gMykKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoKTsKIAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE0MzA1ZWZj
Yjc5MzIyYmE3N2IxNzM2Mzk3ZjBkODkxMWFmYWJlOWUuLjBhMWJkZTRhMmM0M2IwODgzMWY1NThk
NzY2ZTcwYjIzZjMwOWVmZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNC0yNCAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViR0xSZW5kZXJp
bmdDb250ZXh0IG1ldGhvZHMgc2hvdWxkIHRocm93IFR5cGVFcnJvciBmb3Igbm90IGVub3VnaCBh
cmd1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg0Nzg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q3VycmVudGx5LCBXZWJHTFJlbmRlcmluZ2NvbnRleHQgbWV0aG9kcyBpbXBsZW1lbnQKKyAgICAg
ICAgIk5vdCBlbm91Z2ggYXJndW1lbnRzIiBlcnJvciBhcyBTeW50YXhFcnJvci4gVGhlIFdlYiBJ
REwKKyAgICAgICAgc3BlYyByZXF1aXJlcyB0aGF0IGl0IHNob3VsZCBiZSBUeXBlRXJyb3I6Cisg
ICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1dlYklETC8jZGZuLW92ZXJsb2FkLXJlc29sdXRp
b24tYWxnb3JpdGhtCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIFN5bnRheEVycm9yIHRv
IFR5cGVFcnJvci4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3dlYmdsLWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJn
bC1leGNlcHRpb25zLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA0LTMwICBUb21teSBXaWRlbmZseWNo
dCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQWRkaW5n
IGEgdGVzdCBmb3IgdGhlIGV4cGVyaW1lbnRhbCBQZWVyQ29ubmVjdGlvbjAwCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmdsLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3YjA4YTgzNTNhM2I0OGY2ODkyN2UzMjMwMGRhOWE5ZjZj
ZmYzZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93
ZWJnbC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitQQVNTIGdsLmdl
dEJ1ZmZlclBhcmFtZXRlcigpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wuZ2V0VGV4UGFy
YW1ldGVyKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CitQQVNTIGdsLmdldFZlcnRleEF0dHJpYigpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBnbC5nZXRBdHRhY2hlZFNoYWRlcnMoKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wuZ2V0RXh0
ZW5zaW9uKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CitQQVNTIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcigpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBnbC5nZXRQYXJhbWV0
ZXIoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BB
U1MgZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcigpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wuZ2V0VW5p
Zm9ybSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgor
UEFTUyBnbC51bmlmb3JtMWl2KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIGdsLnVuaWZvcm1NYXRyaXgyZnYoKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgZ2wudW5pZm9ybTFmdigpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBnbC52
ZXJ0ZXhBdHRyaWIxZnYoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1leGNl
cHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1leGNlcHRp
b25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFjYmUxMzA0NGFkMTYwMGU1MDFmODZhNjI2NmI4NzNlZTYx
NzFlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dl
YmdsLWV4Y2VwdGlvbnMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciBnbCA9IGNyZWF0
ZTNEQ29udGV4dCgpOworc2hvdWxkVGhyb3coJ2dsLmdldEJ1ZmZlclBhcmFtZXRlcigpJyk7Citz
aG91bGRUaHJvdygnZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKCknKTsKK3Nob3VsZFRocm93
KCdnbC5nZXRUZXhQYXJhbWV0ZXIoKScpOworc2hvdWxkVGhyb3coJ2dsLmdldFZlcnRleEF0dHJp
YigpJyk7CitzaG91bGRUaHJvdygnZ2wuZ2V0QXR0YWNoZWRTaGFkZXJzKCknKTsKK3Nob3VsZFRo
cm93KCdnbC5nZXRFeHRlbnNpb24oKScpOworc2hvdWxkVGhyb3coJ2dsLmdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcigpJyk7CitzaG91bGRUaHJvdygnZ2wuZ2V0UGFyYW1ldGVyKCkn
KTsKK3Nob3VsZFRocm93KCdnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKCknKTsKK3Nob3VsZFRocm93
KCdnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoKScpOworc2hvdWxkVGhyb3coJ2dsLmdldFVuaWZvcm0o
KScpOworc2hvdWxkVGhyb3coJ2dsLnVuaWZvcm0xaXYoKScpOworc2hvdWxkVGhyb3coJ2dsLnVu
aWZvcm1NYXRyaXgyZnYoKScpOworc2hvdWxkVGhyb3coJ2dsLnVuaWZvcm0xZnYoKScpOworc2hv
dWxkVGhyb3coJ2dsLnZlcnRleEF0dHJpYjFmdigpJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>