<?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>84202</bug_id>
          
          <creation_ts>2012-04-17 15:32:28 -0700</creation_ts>
          <short_desc>[V8] Add an optional Isolate argument to wrap()</short_desc>
          <delta_ts>2012-04-23 09:51:08 -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>WebCore JavaScript</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>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>604405</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-17 15:32:28 -0700</bug_when>
    <thetext>The final objective is to pass Isolate around in V8 bindings. In this bug, we add an optional Isolate argument to wrap(). After rewriting all wrap() callers so that they pass Isolate to wrap(), I&apos;ll make the Isolate argument non-optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604408</commentid>
    <comment_count>1</comment_count>
      <attachid>137620</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-17 15:36:54 -0700</bug_when>
    <thetext>Created attachment 137620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604411</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 15:39:25 -0700</bug_when>
    <thetext>Attachment 137620 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.h:43:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.h:44:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestInterface.h:45:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestNode.h:43:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8Float64Array.h:44:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestObj.h:43:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.h:49:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.h:43:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.h:43:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.h:43:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:45:  The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 11 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604782</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 08:48:57 -0700</bug_when>
    <thetext>All bots got green. The style error seems false positive (We want to write the default value in the header). Review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604814</commentid>
    <comment_count>4</comment_count>
      <attachid>137620</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-04-18 09:29:53 -0700</bug_when>
    <thetext>Comment on attachment 137620
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8Float64Array.h:44
&gt;&gt; +    inline static v8::Handle&lt;v8::Object&gt; wrap(Float64Array*, v8::Isolate* isolate = 0);
&gt; 
&gt; The parameter name &quot;isolate&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]

It&apos;s objecting to the variable name, not the assignment. I believe you can change this to &quot;v8::Isolate* = 0&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604840</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 09:54:10 -0700</bug_when>
    <thetext>Committed r114519: &lt;http://trac.webkit.org/changeset/114519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604842</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-18 09:54:56 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; It&apos;s objecting to the variable name, not the assignment. I believe you can change this to &quot;v8::Isolate* = 0&quot;?

Fixed. Thanks for reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606460</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-20 02:28:38 -0700</bug_when>
    <thetext>Reverted r114519 for reason:

Chromium crash

Committed r114730: &lt;http://trac.webkit.org/changeset/114730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607763</commentid>
    <comment_count>8</comment_count>
      <attachid>138367</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-23 09:50:30 -0700</bug_when>
    <thetext>Created attachment 138367
Patch for relanding. It is revealed that the patch was innocent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607764</commentid>
    <comment_count>9</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-23 09:51:08 -0700</bug_when>
    <thetext>Committed r114911: &lt;http://trac.webkit.org/changeset/114911&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137620</attachid>
            <date>2012-04-17 15:36:54 -0700</date>
            <delta_ts>2012-04-18 09:55:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84202-20120417153653.patch</filename>
            <type>text/plain</type>
            <size>26170</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRkZTAxODJmYjBkODM2
MWQwM2FiOTEwZTE0NGMwYzBhYTI2Y2MxOC4uYmZkMWFmYmYyYjY0NTVjOTA4NjJjMDY0YjNjZTI4
ZDkyNmM1Y2U3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc3IEBACiAyMDEyLTA0LTE3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIEFkZCBhbiBv
cHRpb25hbCBJc29sYXRlIGFyZ3VtZW50IHRvIHdyYXAoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyMDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZmluYWwgb2JqZWN0aXZlIGlzIHRvIHBhc3Mg
SXNvbGF0ZSBhcm91bmQgaW4gVjggYmluZGluZ3MuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
biBvcHRpb25hbCBJc29sYXRlIGFyZ3VtZW50IHRvIHdyYXAoKS4KKyAgICAgICAgQWZ0ZXIgcmV3
cml0aW5nIGFsbCB3cmFwKCkgY2FsbGVycyBzbyB0aGF0IHRoZXkgcGFzcyBJc29sYXRlCisgICAg
ICAgIHRvIHdyYXAoKSwgSSdsbCBtYWtlIHRoZSBJc29sYXRlIGFyZ3VtZW50IG5vbi1vcHRpb25h
bC4KKworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IE1vZGlmaWVkIGFzIGRlc2Ny
aWJlZCBhYm92ZS4KKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3Vz
dG9tLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
Ojp0b1Y4U2xvdyk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHRG9jdW1lbnRD
dXN0b20uY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGRv
bS9tYWtlX25hbWVzLnBsOiBEaXR0by4KKyAgICAgICAgKHByaW50V3JhcHBlckZhY3RvcnlDcHBG
aWxlKToKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJh
eS5oOgorICAgICAgICBVcGRhdGVkIHJ1bi1iaW5kaW5ncy10ZXN0cyByZXN1bHRzLgorICAgICAg
ICAoVjhGbG9hdDY0QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6VjhGbG9hdDY0QXJyYXk6Ondy
YXApOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01P
YmplY3QuaDoKKyAgICAgICAgKFY4VGVzdEFjdGl2ZURPTU9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpWOFRlc3RBY3RpdmVET01PYmplY3Q6OndyYXApOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVk
R2V0dGVyLmg6CisgICAgICAgIChWOFRlc3RDdXN0b21OYW1lZEdldHRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjp3cmFwKToKKyAgICAgICAgKFdlYkNv
cmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVu
dFRhcmdldC5oOgorICAgICAgICAoVjhUZXN0RXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhUZXN0RXZlbnRUYXJnZXQ6OndyYXApOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oOgorICAg
ICAgICAoVjhUZXN0SW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEludGVyZmFj
ZTo6d3JhcCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAo
VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChWOFRlc3ROYW1lZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OndyYXApOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuaDoKKyAgICAg
ICAgKFY4VGVzdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0Tm9kZTo6d3JhcCk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmg6CisgICAgICAgIChWOFRlc3RPYmopOgorICAgICAgICAoV2ViQ29yZTo6
VjhUZXN0T2JqOjp3cmFwKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6Ondy
YXApOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisKKzIwMTItMDQtMTcgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtWOF0gUGFzcyBJc29sYXRlIHRv
IHRvVjhTbG93KCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg0MTczCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KaW5kZXggZjI3ZTg3ODk3NTljOGYxZWVjM2M0YmEzOGQxOWY1OWM5ZWU1
ZTNiZi4uNWY2ZjJlMTkxY2U1ZDg1ZTQ5Y2IyOTA1YmE1MmJjNTk4ZjA0MDdkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAg
LTMyNyw3ICszMjcsNyBAQCBFTkQKICAgICB7CiAgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PCR7bmF0aXZlVHlwZX0qPihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2
OERPTVdyYXBwZXJPYmplY3RJbmRleCkpOwogICAgIH0KLSAgICBpbmxpbmUgc3RhdGljIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcCgke25hdGl2ZVR5cGV9KiR7Zm9yY2VOZXdPYmplY3RQYXJh
bWV0ZXJ9KTsKKyAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcCgk
e25hdGl2ZVR5cGV9Kiwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwJHtmb3JjZU5ld09iamVjdFBh
cmFtZXRlcn0pOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKICAgICBzdGF0
aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiBFTkQKQEAgLTQyMCw3ICs0MjAsNyBAQCBwcml2YXRl
OgogRU5ECiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7Ci12ODo6SGFuZGxlPHY4
OjpPYmplY3Q+ICR7Y2xhc3NOYW1lfTo6d3JhcCgke25hdGl2ZVR5cGV9KiBpbXBsJHtmb3JjZU5l
d09iamVjdElucHV0fSkKK3Y4OjpIYW5kbGU8djg6Ok9iamVjdD4gJHtjbGFzc05hbWV9Ojp3cmFw
KCR7bmF0aXZlVHlwZX0qIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlJHtmb3JjZU5ld09iamVj
dElucHV0fSkKIHsKIEVORAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgaWYgKCFmb3Jj
ZU5ld09iamVjdCkge1xuIikgaWYgSXNET01Ob2RlVHlwZSgkaW50ZXJmYWNlTmFtZSk7CkBAIC00
NDUsNyArNDQ1LDcgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KCR7bmF0aXZl
VHlwZX0qIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCQKIHsKICAgICBpZiAoIWltcGwp
CiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHJldHVybiAke2NsYXNzTmFtZX06Ondy
YXAoaW1wbCR7Zm9yY2VOZXdPYmplY3RDYWxsfSk7CisgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6
d3JhcChpbXBsLCBpc29sYXRlJHtmb3JjZU5ld09iamVjdENhbGx9KTsKIH0KIEVORAogICAgIH0g
ZWxzaWYgKCRpbnRlcmZhY2VOYW1lIG5lICdOb2RlJykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaAppbmRleCAx
OGIyMmRkMjMzZmE0ZDNjYjBhODlmZDA1ZDA4ZjA1NWUyNmNlMWVkLi4xYTBhMzYyZmY5M2EwNjI3
YzRiZGY5NzNiODkyYzM2MTgwOTFmZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaApAQCAtNDEsNyArNDEs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxGbG9h
dDY0QXJyYXkqPihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBw
ZXJPYmplY3RJbmRleCkpOwogICAgIH0KLSAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gd3JhcChGbG9hdDY0QXJyYXkqKTsKKyAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gd3JhcChGbG9hdDY0QXJyYXkqLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9
IDApOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKICAgICBzdGF0aWMgV3Jh
cHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKQEAgLTUwLDcgKzUwLDcgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhQYXNz
UmVmUHRyPEZsb2F0NjRBcnJheT4pOwogfTsKIAotdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOEZs
b2F0NjRBcnJheTo6d3JhcChGbG9hdDY0QXJyYXkqIGltcGwpCit2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IFY4RmxvYXQ2NEFycmF5Ojp3cmFwKEZsb2F0NjRBcnJheSogaW1wbCwgdjg6Oklzb2xhdGUq
IGlzb2xhdGUpCiB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdl
dERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHko
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCAxZDhjMDZlMTkyMzQ2MWQzZDlk
Y2FiN2U4MzZkZDIwOTJmYjEyNjNlLi5lMDUzMjU5OGM5OTk4ZWFjOGMzMDgwMTU3YjAwN2YyNWU0
YTkzOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC00MCw3ICs0MCw3IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRlc3RBY3Rp
dmVET01PYmplY3QqPihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdy
YXBwZXJPYmplY3RJbmRleCkpOwogICAgIH0KLSAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gd3JhcChUZXN0QWN0aXZlRE9NT2JqZWN0Kik7CisgICAgaW5saW5lIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEFjdGl2ZURPTU9iamVjdCosIHY4OjpJ
c29sYXRlKiBpc29sYXRlID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCop
OwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgY29uc3QgaW50
IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQg
KyAwOwpAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEFjdGl2ZURPTU9iamVjdD4pOwogfTsK
IAotdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RBY3RpdmVET01PYmplY3Q6OndyYXAoVGVz
dEFjdGl2ZURPTU9iamVjdCogaW1wbCkKK3Y4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0QWN0
aXZlRE9NT2JqZWN0Ojp3cmFwKFRlc3RBY3RpdmVET01PYmplY3QqIGltcGwsIHY4OjpJc29sYXRl
KiBpc29sYXRlKQogewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBn
ZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5
KCkpCkBAIC02Miw3ICs2Miw3IEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChU
ZXN0QWN0aXZlRE9NT2JqZWN0KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0CiB7CiAgICAgaWYg
KCFpbXBsKQogICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLSAgICByZXR1cm4gVjhUZXN0QWN0
aXZlRE9NT2JqZWN0Ojp3cmFwKGltcGwpOworICAgIHJldHVybiBWOFRlc3RBY3RpdmVET01PYmpl
Y3Q6OndyYXAoaW1wbCwgaXNvbGF0ZSk7CiB9CiBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHRvVjgoUGFzc1JlZlB0cjwgVGVzdEFjdGl2ZURPTU9iamVjdCA+IGltcGwsIHY4OjpJc29sYXRl
KiBpc29sYXRlID0gMCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXgg
M2M0MzY0N2VjZDdkMmQxMjdiYTFjOTFiMDZlNzM0N2ZmOTJmN2RhNS4uZjJlZTk3YWYyNjRkOWQy
NWUyNTMzMmZjODNkN2MzZWNlZTdhZWE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8VGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4ob2JqZWN0LT5HZXRQb2ludGVy
RnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKICAgICB9Ci0gICAg
aW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEN1c3RvbU5hbWVk
R2V0dGVyKik7CisgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAo
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKiwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKTsKICAgICBz
dGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5m
byBpbmZvOwogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQcm9wZXJ0eUdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKQEAg
LTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RDdXN0b21OYW1lZEdldHRlcj4pOwogfTsKIAotdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcChUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIqIGltcGwpCit2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEN1c3Rv
bU5hbWVkR2V0dGVyOjp3cmFwKFRlc3RDdXN0b21OYW1lZEdldHRlciogaW1wbCwgdjg6Oklzb2xh
dGUqIGlzb2xhdGUpCiB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9
IGdldERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1w
dHkoKSkKQEAgLTYxLDcgKzYxLDcgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4
KFRlc3RDdXN0b21OYW1lZEdldHRlciogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2wKIHsKICAgICBp
ZiAoIWltcGwpCiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHJldHVybiBWOFRlc3RD
dXN0b21OYW1lZEdldHRlcjo6d3JhcChpbXBsKTsKKyAgICByZXR1cm4gVjhUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI6OndyYXAoaW1wbCwgaXNvbGF0ZSk7CiB9CiBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHRvVjgoUGFzc1JlZlB0cjwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyID4gaW1wbCwgdjg6
Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmgK
aW5kZXggZDMwNTI4ZmI4NWQwMmFkOTc3NTE4NWNhMzAxOTQ1Nzg4YjUyOGM4MS4uNzZmMWQ0NDZh
MzJhZjJlZjMxNDk1ODBlZjMzYmUxNTExODFhYmVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFRlc3RFdmVudENvbnN0cnVjdG9yKj4ob2JqZWN0LT5HZXRQb2lu
dGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKICAgICB9Ci0g
ICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEV2ZW50Q29u
c3RydWN0b3IqKTsKKyAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cChUZXN0RXZlbnRDb25zdHJ1Y3RvciosIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCk7CiAgICAg
c3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUlu
Zm8gaW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwpAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFBhc3NSZWZQdHI8VGVz
dEV2ZW50Q29uc3RydWN0b3I+KTsKIH07CiAKLXY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0
RXZlbnRDb25zdHJ1Y3Rvcjo6d3JhcChUZXN0RXZlbnRDb25zdHJ1Y3RvciogaW1wbCkKK3Y4OjpI
YW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6d3JhcChUZXN0RXZlbnRD
b25zdHJ1Y3RvciogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsK
ICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKQEAgLTYyLDcgKzYyLDcgQEAgaW5saW5l
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFRlc3RFdmVudENvbnN0cnVjdG9yKiBpbXBsLCB2
ODo6SXNvbGF0ZSogaXNvbGEKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiB2ODo6
TnVsbCgpOwotICAgIHJldHVybiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjp3cmFwKGltcGwpOwor
ICAgIHJldHVybiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjp3cmFwKGltcGwsIGlzb2xhdGUpOwog
fQogaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFBhc3NSZWZQdHI8IFRlc3RFdmVu
dENvbnN0cnVjdG9yID4gaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50
VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
RXZlbnRUYXJnZXQuaAppbmRleCA2NDRlZDRjMGU1YjQ1NDgxYjgyZjM4NjFkZjczMmRhNGEzYjZj
YjMzLi45MWVmNGE2OWViZmJhOWNiNWNmMzc0YmI5MDliOWI1OTk0YmNlZjM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJn
ZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
RXZlbnRUYXJnZXQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0RXZlbnRUYXJnZXQqPihvYmplY3QtPkdldFBvaW50
ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBwZXJPYmplY3RJbmRleCkpOwogICAgIH0KLSAg
ICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0RXZlbnRUYXJn
ZXQqKTsKKyAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0
RXZlbnRUYXJnZXQqLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9IDApOwogICAgIHN0YXRpYyB2b2lk
IGRlcmVmT2JqZWN0KHZvaWQqKTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAg
ICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBpbmRleGVkUHJvcGVydHlHZXR0ZXIodWlu
dDMyX3QsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhQYXNzUmVmUHRy
PFRlc3RFdmVudFRhcmdldD4pOwogfTsKIAotdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RF
dmVudFRhcmdldDo6d3JhcChUZXN0RXZlbnRUYXJnZXQqIGltcGwpCit2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IFY4VGVzdEV2ZW50VGFyZ2V0Ojp3cmFwKFRlc3RFdmVudFRhcmdldCogaW1wbCwgdjg6
Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cHBlciA9IGdldERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVy
LklzRW1wdHkoKSkKQEAgLTYzLDcgKzYzLDcgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB0b1Y4KFRlc3RFdmVudFRhcmdldCogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPQogewog
ICAgIGlmICghaW1wbCkKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgcmV0dXJuIFY4
VGVzdEV2ZW50VGFyZ2V0Ojp3cmFwKGltcGwpOworICAgIHJldHVybiBWOFRlc3RFdmVudFRhcmdl
dDo6d3JhcChpbXBsLCBpc29sYXRlKTsKIH0KIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOChQYXNzUmVmUHRyPCBUZXN0RXZlbnRUYXJnZXQgPiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNv
bGF0ZSA9IDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKaW5kZXggY2EwYzcxM2VjYWUxYTEzNTNhNDI3
OTU2ZTQ1YjE1NjQyYzk3NjU0Ny4uMWE5NDNlYjA5ZjEwNjM4ZTlmNTEyNTkxMTNjZDkyMWQ4ZmE3
MjhlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0SW50ZXJmYWNlKj4ob2JqZWN0
LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsK
ICAgICB9Ci0gICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVz
dEludGVyZmFjZSopOworICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3
cmFwKFRlc3RJbnRlcmZhY2UqLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9IDApOwogICAgIHN0YXRp
YyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGlu
Zm87CiAgICAgc3RhdGljIEFjdGl2ZURPTU9iamVjdCogdG9BY3RpdmVET01PYmplY3Qodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pik7CkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0SW50ZXJmYWNl
Pik7CiB9OwogCi12ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEludGVyZmFjZTo6d3JhcChU
ZXN0SW50ZXJmYWNlKiBpbXBsKQordjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RJbnRlcmZh
Y2U6OndyYXAoVGVzdEludGVyZmFjZSogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAg
ICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldEFjdGl2ZURPTU9iamVj
dE1hcCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKQEAgLTY1
LDcgKzY1LDcgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFRlc3RJbnRlcmZh
Y2UqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCkKIHsKICAgICBpZiAoIWltcGwpCiAg
ICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHJldHVybiBWOFRlc3RJbnRlcmZhY2U6Ondy
YXAoaW1wbCk7CisgICAgcmV0dXJuIFY4VGVzdEludGVyZmFjZTo6d3JhcChpbXBsLCBpc29sYXRl
KTsKIH0KIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChQYXNzUmVmUHRyPCBUZXN0
SW50ZXJmYWNlID4gaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggZjZmM2M0MWQ5OGE1NTVmY2Yx
YmY0NjZlMDZjMWIzM2I1OTRlODYxZS4uODlkZjdjNWQ0ZGMxMzQzMWFjZmZkOTk4NjIxNTk5ZDE2
NTBiYjA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBA
IC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4ob2JqZWN0LT5HZXRQb2ludGVyRnJv
bUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKICAgICB9Ci0gICAgaW5s
aW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIqKTsKKyAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cChUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciosIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCk7
CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFwcGVy
VHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9
IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwpAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFBh
c3NSZWZQdHI8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KTsKIH07CiAKLXY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6d3JhcChUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lciogaW1wbCkKK3Y4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6d3JhcChUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogaW1w
bCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3
cmFwcGVyLklzRW1wdHkoKSkKQEAgLTYwLDcgKzYwLDcgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0b1Y4KFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBpbXBsLCB2ODo6SXNvbGF0
ZSoKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHJl
dHVybiBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwKGltcGwpOworICAgIHJldHVy
biBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwKGltcGwsIGlzb2xhdGUpOwogfQog
aW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFBhc3NSZWZQdHI8IFRlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyID4gaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5h
bWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggNTcwM2UzOWU3YWZkMGQzNGZjMzk3ZjQ2
MDRhZTQ4OWExMTlkNzBlYi4uNTZhNGUxNTBiZTM2OTM2NzAwNGU4NGMyYjgxOWRkYjgzYjk5MWY4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC00Niw3ICs0Niw3IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRlc3ROYW1lZENv
bnN0cnVjdG9yKj4ob2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFw
cGVyT2JqZWN0SW5kZXgpKTsKICAgICB9Ci0gICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXAoVGVzdE5hbWVkQ29uc3RydWN0b3IqKTsKKyAgICBpbmxpbmUgc3RhdGlj
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0TmFtZWRDb25zdHJ1Y3RvciosIHY4OjpJ
c29sYXRlKiBpc29sYXRlID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCop
OwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgQWN0aXZlRE9N
T2JqZWN0KiB0b0FjdGl2ZURPTU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKQEAgLTU1
LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3
cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3ROYW1lZENvbnN0cnVjdG9yPik7CiB9OwogCi12ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OndyYXAoVGVzdE5hbWVkQ29u
c3RydWN0b3IqIGltcGwpCit2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE5hbWVkQ29uc3Ry
dWN0b3I6OndyYXAoVGVzdE5hbWVkQ29uc3RydWN0b3IqIGltcGwsIHY4OjpJc29sYXRlKiBpc29s
YXRlKQogewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRBY3Rp
dmVET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5
KCkpCkBAIC02Nyw3ICs2Nyw3IEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChU
ZXN0TmFtZWRDb25zdHJ1Y3RvciogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhCiB7CiAgICAgaWYg
KCFpbXBsKQogICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLSAgICByZXR1cm4gVjhUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6d3JhcChpbXBsKTsKKyAgICByZXR1cm4gVjhUZXN0TmFtZWRDb25zdHJ1
Y3Rvcjo6d3JhcChpbXBsLCBpc29sYXRlKTsKIH0KIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdG9WOChQYXNzUmVmUHRyPCBUZXN0TmFtZWRDb25zdHJ1Y3RvciA+IGltcGwsIHY4OjpJc29s
YXRlKiBpc29sYXRlID0gMCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5oCmluZGV4IGYxNDFiMjg3Y2YzYThkMjQ0MWQ2NmQ0
ODA4NjAzODBjMzI5NDE1MmMuLjE5ODI4ODg2ODdkMDgxOGQ3NDQxOTEwZmM4M2E0Zjk2M2Q1Yzg5
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3ROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE5vZGUuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0Tm9kZSo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21J
bnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CiAgICAgfQotICAgIGlubGlu
ZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3ROb2RlKik7CisgICAgaW5s
aW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE5vZGUqLCB2ODo6SXNv
bGF0ZSogaXNvbGF0ZSA9IDApOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsK
ICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKQEAg
LTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3ROb2RlPik7CiB9OwogCi12ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IFY4VGVzdE5vZGU6OndyYXAoVGVzdE5vZGUqIGltcGwpCit2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IFY4VGVzdE5vZGU6OndyYXAoVGVzdE5vZGUqIGltcGwsIHY4OjpJc29sYXRlKiBpc29s
YXRlKQogewogICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOERPTVdy
YXBwZXI6OmdldENhY2hlZFdyYXBwZXIoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0Vt
cHR5KCkpCkBAIC02MSw3ICs2MSw3IEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9W
OChUZXN0Tm9kZSogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogewogICAgIGlmICgh
aW1wbCkKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgcmV0dXJuIFY4VGVzdE5vZGU6
OndyYXAoaW1wbCk7CisgICAgcmV0dXJuIFY4VGVzdE5vZGU6OndyYXAoaW1wbCwgaXNvbGF0ZSk7
CiB9CiBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFzc1JlZlB0cjwgVGVzdE5v
ZGUgPiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9IDApCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKaW5kZXggZjkyZTMx
ODY0YzkxMTU4MzZkNzgyOGZmYWMzODhhMzczYzc2ZmJlMy4uOWFiZmJiNmExNjNhMDYxYTM2NTBi
MTIxMTAzZDE3OTliNGM5Y2QxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0T2JqKj4ob2JqZWN0LT5H
ZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKICAg
ICB9Ci0gICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE9i
aiopOworICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RP
YmoqLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9IDApOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2Jq
ZWN0KHZvaWQqKTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGluZm87CiAgICAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjdXN0b21NZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJik7CkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0T2JqPik7CiB9OwogCi12ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE9iajo6d3JhcChUZXN0T2JqKiBpbXBsKQordjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RPYmo6OndyYXAoVGVzdE9iaiogaW1wbCwgdjg6Oklzb2xh
dGUqIGlzb2xhdGUpCiB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9
IGdldERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1w
dHkoKSkKQEAgLTY2LDcgKzY2LDcgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4
KFRlc3RPYmoqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCkKIHsKICAgICBpZiAoIWlt
cGwpCiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHJldHVybiBWOFRlc3RPYmo6Ondy
YXAoaW1wbCk7CisgICAgcmV0dXJuIFY4VGVzdE9iajo6d3JhcChpbXBsLCBpc29sYXRlKTsKIH0K
IGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChQYXNzUmVmUHRyPCBUZXN0T2JqID4g
aW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IGFiOTgzNjU1YmZjZmIw
MTNlZmQyOWEwMGI5N2ViNjFhYWZhMjQ0YzMuLmFiNmZhMDY2NGIzMzQwOGRmMWNiMGI0YzdkODk2
NDRkZWM2ZGI1NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9i
amVjdEluZGV4KSk7CiAgICAgfQotICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwKFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKTsKKyAgICBpbmxp
bmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKiwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKTsKICAgICBzdGF0aWMg
dm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZv
OwogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJik7CkBAIC01MSw3ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPik7CiB9OwogCi12ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3JhcChUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBpbXBsKQordjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXAoVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcCgpLmdldChp
bXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKQEAgLTYzLDcgKzYzLDcgQEAg
aW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UqIGltcGwsIHY4OjoKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVy
biB2ODo6TnVsbCgpOwotICAgIHJldHVybiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2U6OndyYXAoaW1wbCk7CisgICAgcmV0dXJuIFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZTo6d3JhcChpbXBsLCBpc29sYXRlKTsKIH0KIGlubGluZSB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdG9WOChQYXNzUmVmUHRyPCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlID4gaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRDdXN0b20uY3BwCmluZGV4
IDU3YmQyMjRjMTVmODY1MWM5ZTU5ODRiNTRiNjRkM2ZhZjg2Y2FlYTguLjFlMjgyMTJhM2FkOWM4
OGE3NmJlNzY3Nzk2NTVkNDkxYjYwMTQ1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERvY3VtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTEyNiw3ICsxMjYs
NyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChEb2N1bWVudCogaW1wbCwgdjg6Oklzb2xh
dGUqIGlzb2xhdGUsIGJvb2wgZm9yY2VOZXdPYgogICAgIGlmIChpbXBsLT5pc1NWR0RvY3VtZW50
KCkpCiAgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oaW1wbCks
IGlzb2xhdGUsIGZvcmNlTmV3T2JqZWN0KTsKICNlbmRpZgotICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcHBlciA9IFY4RG9jdW1lbnQ6OndyYXAoaW1wbCwgZm9yY2VOZXdPYmplY3QpOwor
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RG9jdW1lbnQ6OndyYXAoaW1w
bCwgaXNvbGF0ZSwgZm9yY2VOZXdPYmplY3QpOwogICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgaWYgKCFWOElzb2xhdGVkQ29udGV4dDo6Z2V0
RW50ZXJlZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcAppbmRleCA4MWM0NmM3NDQ1MjYzZTI5YTBk
YTJhYjc5Yzg3NzM2NzcxNTFmY2I5Li5kY2UxODJjNGQ0YjQxOTNjMzBjZDJlZWYwZTFmYzdhNzE4
NzhjYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhI
VE1MRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTE5MCw3ICsxOTAsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdG9WOChIVE1MRG9jdW1lbnQqIGltcGwsIHY4OjpJc29sYXRlKiBpc29s
YXRlLCBib29sIGZvcmNlTgogewogICAgIGlmICghaW1wbCkKICAgICAgICAgcmV0dXJuIHY4OjpO
dWxsKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhIVE1MRG9jdW1l
bnQ6OndyYXAoaW1wbCwgZm9yY2VOZXdPYmplY3QpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlciA9IFY4SFRNTERvY3VtZW50Ojp3cmFwKGltcGwsIGlzb2xhdGUsIGZvcmNlTmV3
T2JqZWN0KTsKICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB3cmFw
cGVyOwogICAgIGlmICghVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVyZWQoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcAppbmRl
eCBmMzhkNzAzZDRjNjEyNzhlMDRjODJiMGMzNzRmNDMzNjk2NjA2ZTcwLi5mOTIzMmRmMzM0NTMy
YmExMjdkMzkyMjE1MDAzMGU3ZDQwZDI0Yzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4U2xvdyhOb2RlKiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNv
bGF0ZSwgYm9vbCBmb3JjZU5ld09iCiAgICAgICAgIGlmIChpbXBsLT5pc1NWR0VsZW1lbnQoKSkK
ICAgICAgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihpbXBsKSwg
aXNvbGF0ZSwgZm9yY2VOZXdPYmplY3QpOwogI2VuZGlmCi0gICAgICAgIHJldHVybiBWOEVsZW1l
bnQ6OndyYXAoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGltcGwpLCBmb3JjZU5ld09iamVjdCk7Cisg
ICAgICAgIHJldHVybiBWOEVsZW1lbnQ6OndyYXAoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGltcGwp
LCBpc29sYXRlLCBmb3JjZU5ld09iamVjdCk7CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9E
RToKICAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8QXR0cio+KGltcGwpLCBpc29sYXRl
LCBmb3JjZU5ld09iamVjdCk7CiAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CkBAIC0xNzksNiAr
MTc5LDYgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhTbG93KE5vZGUqIGltcGwsIHY4OjpJ
c29sYXRlKiBpc29sYXRlLCBib29sIGZvcmNlTmV3T2IKICAgICAgICAgcmV0dXJuIHRvVjgoc3Rh
dGljX2Nhc3Q8Tm90YXRpb24qPihpbXBsKSwgaXNvbGF0ZSwgZm9yY2VOZXdPYmplY3QpOwogICAg
IGRlZmF1bHQ6IGJyZWFrOyAvLyBYUEFUSF9OQU1FU1BBQ0VfTk9ERQogICAgIH0KLSAgICByZXR1
cm4gVjhOb2RlOjp3cmFwKGltcGwsIGZvcmNlTmV3T2JqZWN0KTsKKyAgICByZXR1cm4gVjhOb2Rl
Ojp3cmFwKGltcGwsIGlzb2xhdGUsIGZvcmNlTmV3T2JqZWN0KTsKIH0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFNWR0RvY3VtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFNWR0RvY3VtZW50Q3VzdG9tLmNwcAppbmRleCAxYzViYTg1ZTA5YTRkNDdiZmJjYmZhMWM4
YWIxNGE4OWU4ZjYxN2I5Li5mNTRiOGI3ZGVlYWYzMzQyMjczYmQ2NTNiMjM2Y2QyMzEyNDQ5MzU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTVkdEb2N1
bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
U1ZHRG9jdW1lbnRDdXN0b20uY3BwCkBAIC00Miw3ICs0Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB0b1Y4KFNWR0RvY3VtZW50KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSwgYm9vbCBm
b3JjZU5lCiB7CiAgICAgaWYgKCFpbXBsKQogICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLSAg
ICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOFNWR0RvY3VtZW50Ojp3cmFwKGlt
cGwsIGZvcmNlTmV3T2JqZWN0KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIg
PSBWOFNWR0RvY3VtZW50Ojp3cmFwKGltcGwsIGlzb2xhdGUsIGZvcmNlTmV3T2JqZWN0KTsKICAg
ICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogICAgIGlm
ICghVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVyZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1l
cy5wbAppbmRleCA0Njk5MGEyM2Q1ZjU0MWVmMTc2NjFhYTMxNjNiOGM0ZjllZWIxNGVmLi44YWIz
M2Q1NWVkZDI3NWIwZDFiZDcyZGRiNTRiYjdmZjcyY2MzMWQ5IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9u
YW1lcy5wbApAQCAtMTIxMiw3ICsxMjEyLDcgQEAgRU5ECiAgICAgfSBlbHNpZiAoJHdyYXBwZXJG
YWN0b3J5VHlwZSBlcSAiVjgiKSB7CiAgICAgICAgIHByaW50IEYgPDxFTkQKICAgICAgICAgcmV0
dXJuIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbihlbGVtZW50KTsKLSAgICByZXR1cm4gVjgkcGFyYW1l
dGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9Ojp3cmFwKHRvJHBhcmFtZXRlcnN7ZmFsbGJhY2tJ
bnRlcmZhY2VOYW1lfShlbGVtZW50KSwgZm9yY2VOZXdPYmplY3QpOworICAgIHJldHVybiBWOCRw
YXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX06OndyYXAodG8kcGFyYW1ldGVyc3tmYWxs
YmFja0ludGVyZmFjZU5hbWV9KGVsZW1lbnQpLCAwLCBmb3JjZU5ld09iamVjdCk7CiBFTkQKIDsK
ICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138367</attachid>
            <date>2012-04-23 09:50:30 -0700</date>
            <delta_ts>2012-04-23 09:50:30 -0700</delta_ts>
            <desc>Patch for relanding. It is revealed that the patch was innocent.</desc>
            <filename>bug-84202-20120423095028.patch</filename>
            <type>text/plain</type>
            <size>26755</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU0MjcwM2Q3MGU2MGFl
N2Q3NTQ1NDU3MWY0ZDA2YjdjNGNiNDBkYS4uMzg5ZjliN2ZhNjUzODczZDE3MDA1M2QxYjRlYjI1
MGNhZDgzM2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc3IEBACiAyMDEyLTA0LTE3ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIEFkZCBhbiBv
cHRpb25hbCBJc29sYXRlIGFyZ3VtZW50IHRvIHdyYXAoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyMDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
YXRlIENoYXBpbi4KKworICAgICAgICBUaGUgZmluYWwgb2JqZWN0aXZlIGlzIHRvIHBhc3MgSXNv
bGF0ZSBhcm91bmQgaW4gVjggYmluZGluZ3MuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiBv
cHRpb25hbCBJc29sYXRlIGFyZ3VtZW50IHRvIHdyYXAoKS4KKyAgICAgICAgQWZ0ZXIgcmV3cml0
aW5nIGFsbCB3cmFwKCkgY2FsbGVycyBzbyB0aGF0IHRoZXkgcGFzcyBJc29sYXRlCisgICAgICAg
IHRvIHdyYXAoKSwgSSdsbCBtYWtlIHRoZSBJc29sYXRlIGFyZ3VtZW50IG5vbi1vcHRpb25hbC4K
KworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IE1vZGlmaWVkIGFzIGRlc2NyaWJl
ZCBhYm92ZS4KKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
dG9WOCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9t
LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjp0
b1Y4U2xvdyk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHRG9jdW1lbnRDdXN0
b20uY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGRvbS9t
YWtlX25hbWVzLnBsOiBEaXR0by4KKyAgICAgICAgKHByaW50V3JhcHBlckZhY3RvcnlDcHBGaWxl
KToKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5o
OgorICAgICAgICBVcGRhdGVkIHJ1bi1iaW5kaW5ncy10ZXN0cyByZXN1bHRzLgorICAgICAgICAo
VjhGbG9hdDY0QXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6VjhGbG9hdDY0QXJyYXk6OndyYXAp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmpl
Y3QuaDoKKyAgICAgICAgKFY4VGVzdEFjdGl2ZURPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpWOFRlc3RBY3RpdmVET01PYmplY3Q6OndyYXApOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmg6CisgICAgICAgIChWOFRlc3RDdXN0b21OYW1lZEdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcCk6CisgICAgICAgIChXZWJDb3JlOjp0
b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAoVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjp3cmFwKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvVjgpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRh
cmdldC5oOgorICAgICAgICAoVjhUZXN0RXZlbnRUYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
VjhUZXN0RXZlbnRUYXJnZXQ6OndyYXApOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oOgorICAgICAg
ICAoVjhUZXN0SW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEludGVyZmFjZTo6
d3JhcCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAoVjhU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmg6
CisgICAgICAgIChWOFRlc3ROYW1lZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
VGVzdE5hbWVkQ29uc3RydWN0b3I6OndyYXApOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuaDoKKyAgICAgICAg
KFY4VGVzdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0Tm9kZTo6d3JhcCk6CisgICAg
ICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmg6CisgICAgICAgIChWOFRlc3RPYmopOgorICAgICAgICAoV2ViQ29yZTo6VjhU
ZXN0T2JqOjp3cmFwKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
aDoKKyAgICAgICAgKFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXAp
OgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisKKzIwMTItMDQtMTcgIEtlbnRhcm8gSGFyYSAg
PGhhcmFrZW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtWOF0gUGFzcyBJc29sYXRlIHRvIHRv
VjhTbG93KCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg0MTczCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0KaW5kZXggZTVhMGU3NzI3YjEyZDVmMGZlMjQ5MGE3Y2JlNGVlYzQ3ODYwODQ2
NS4uMDRiNjA2ZGU4NTJlZmY1NDY1YTQyNmI3OTY0OTU0ODZlYWE2NjRlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTMy
Nyw3ICszMjcsNyBAQCBFTkQKICAgICB7CiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PCR7bmF0aXZlVHlwZX0qPihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERP
TVdyYXBwZXJPYmplY3RJbmRleCkpOwogICAgIH0KLSAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gd3JhcCgke25hdGl2ZVR5cGV9KiR7Zm9yY2VOZXdPYmplY3RQYXJhbWV0
ZXJ9KTsKKyAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcCgke25h
dGl2ZVR5cGV9Kiwgdjg6Oklzb2xhdGUqID0gMCR7Zm9yY2VOZXdPYmplY3RQYXJhbWV0ZXJ9KTsK
ICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGljIFdyYXBwZXJU
eXBlSW5mbyBpbmZvOwogRU5ECkBAIC00MjAsNyArNDIwLDcgQEAgcHJpdmF0ZToKIEVORAogCiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwotdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiAk
e2NsYXNzTmFtZX06OndyYXAoJHtuYXRpdmVUeXBlfSogaW1wbCR7Zm9yY2VOZXdPYmplY3RJbnB1
dH0pCit2ODo6SGFuZGxlPHY4OjpPYmplY3Q+ICR7Y2xhc3NOYW1lfTo6d3JhcCgke25hdGl2ZVR5
cGV9KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSR7Zm9yY2VOZXdPYmplY3RJbnB1dH0pCiB7
CiBFTkQKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGlmICghZm9yY2VOZXdPYmplY3Qp
IHtcbiIpIGlmIElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpOwpAQCAtNDQ1LDEzICs0NDUs
MTMgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KCR7bmF0aXZlVHlwZX0qIGlt
cGwsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCQKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAg
IHJldHVybiB2ODo6TnVsbCgpOwotICAgIHJldHVybiAke2NsYXNzTmFtZX06OndyYXAoaW1wbCR7
Zm9yY2VOZXdPYmplY3RDYWxsfSk7CisgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6d3JhcChpbXBs
LCBpc29sYXRlJHtmb3JjZU5ld09iamVjdENhbGx9KTsKIH0KIEVORAogICAgIH0gZWxzaWYgKCRp
bnRlcmZhY2VOYW1lIG5lICdOb2RlJykgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8
PEVORCk7CiAKLXY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KCR7bmF0aXZlVHlwZX0qLCB2ODo6
SXNvbGF0ZSogaXNvbGF0ZSA9IDAke2ZvcmNlTmV3T2JqZWN0UGFyYW1ldGVyfSk7Cit2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdG9WOCgke25hdGl2ZVR5cGV9Kiwgdjg6Oklzb2xhdGUqID0gMCR7Zm9y
Y2VOZXdPYmplY3RQYXJhbWV0ZXJ9KTsKIEVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmgKaW5kZXggMThiMjJkZDIzM2Zh
NGQzY2IwYTg5ZmQwNWQwOGYwNTVlMjZjZTFlZC4uMDg0N2I1OTc1Zjc4ZDRmY2Q2NDlkOTk5OTgw
NjlmZGE4MTFmZTE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RmxvYXQ2NEFycmF5Kj4o
b2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5k
ZXgpKTsKICAgICB9Ci0gICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdy
YXAoRmxvYXQ2NEFycmF5Kik7CisgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IHdyYXAoRmxvYXQ2NEFycmF5Kiwgdjg6Oklzb2xhdGUqID0gMCk7CiAgICAgc3RhdGljIHZv
aWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsK
ICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYpOwpAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogICAgIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5
Pik7CiB9OwogCi12ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4RmxvYXQ2NEFycmF5Ojp3cmFwKEZs
b2F0NjRBcnJheSogaW1wbCkKK3Y4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhGbG9hdDY0QXJyYXk6
OndyYXAoRmxvYXQ2NEFycmF5KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICAg
ICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0
KGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQpAQCAtNTgsNyArNTgsNyBA
QCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4RmxvYXQ2NEFycmF5Ojp3cmFwKEZsb2F0NjRBcnJh
eSogaW1wbCkKICAgICByZXR1cm4gVjhGbG9hdDY0QXJyYXk6OndyYXBTbG93KGltcGwpOwogfQog
Ci12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChGbG9hdDY0QXJyYXkqLCB2ODo6SXNvbGF0ZSog
aXNvbGF0ZSA9IDApOwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRmxvYXQ2NEFycmF5Kiwg
djg6Oklzb2xhdGUqID0gMCk7CiBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFz
c1JlZlB0cjwgRmxvYXQ2NEFycmF5ID4gaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQog
ewogICAgIHJldHVybiB0b1Y4KGltcGwuZ2V0KCksIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2
ZURPTU9iamVjdC5oCmluZGV4IDFkOGMwNmUxOTIzNDYxZDNkOWRjYWI3ZTgzNmRkMjA5MmZiMTI2
M2UuLjM5NGMzYzdjYWZiYzBlZjI3YWM2NTNlNjQ4YjBkMjNkNjE2MWU5NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01P
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0QWN0aXZlRE9NT2JqZWN0LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdEFjdGl2ZURPTU9iamVjdCo+KG9iamVj
dC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7
CiAgICAgfQotICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRl
c3RBY3RpdmVET01PYmplY3QqKTsKKyAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcChUZXN0QWN0aXZlRE9NT2JqZWN0Kiwgdjg6Oklzb2xhdGUqID0gMCk7CiAgICAg
c3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFwcGVyVHlwZUlu
Zm8gaW5mbzsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVm
YXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwpAQCAtNTAsNyArNTAsNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFBhc3NSZWZQ
dHI8VGVzdEFjdGl2ZURPTU9iamVjdD4pOwogfTsKIAotdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBW
OFRlc3RBY3RpdmVET01PYmplY3Q6OndyYXAoVGVzdEFjdGl2ZURPTU9iamVjdCogaW1wbCkKK3Y4
OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwKFRlc3RBY3Rp
dmVET01PYmplY3QqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgICAgICB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7
CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCkBAIC02Miw3ICs2Miw3IEBAIGlubGlu
ZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChUZXN0QWN0aXZlRE9NT2JqZWN0KiBpbXBsLCB2
ODo6SXNvbGF0ZSogaXNvbGF0CiB7CiAgICAgaWYgKCFpbXBsKQogICAgICAgICByZXR1cm4gdjg6
Ok51bGwoKTsKLSAgICByZXR1cm4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwKGltcGwpOwor
ICAgIHJldHVybiBWOFRlc3RBY3RpdmVET01PYmplY3Q6OndyYXAoaW1wbCwgaXNvbGF0ZSk7CiB9
CiBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFzc1JlZlB0cjwgVGVzdEFjdGl2
ZURPTU9iamVjdCA+IGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21O
YW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXggM2M0MzY0N2VjZDdkMmQxMjdiYTFjOTFiMDZl
NzM0N2ZmOTJmN2RhNS4uMmQzY2ExNGZkZTZmMmU1MDg3YTg3NzVmMDNmMzJmYTc2ODI4NzZiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdEN1c3RvbU5h
bWVkR2V0dGVyKj4ob2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFw
cGVyT2JqZWN0SW5kZXgpKTsKICAgICB9Ci0gICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXAoVGVzdEN1c3RvbU5hbWVkR2V0dGVyKik7CisgICAgaW5saW5lIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiwgdjg6
Oklzb2xhdGUqID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAg
IHN0YXRpYyBXcmFwcGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IG5hbWVkUHJvcGVydHlHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+LCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJik7CkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI+KTsKIH07CiAKLXY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI6OndyYXAoVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBpbXBsKQordjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcChUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgICAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRET01PYmplY3RNYXAoKS5nZXQoaW1wbCk7CiAgICAg
ICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCkBAIC02MSw3ICs2MSw3IEBAIGlubGluZSB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIGltcGwsIHY4OjpJ
c29sYXRlKiBpc29sCiB7CiAgICAgaWYgKCFpbXBsKQogICAgICAgICByZXR1cm4gdjg6Ok51bGwo
KTsKLSAgICByZXR1cm4gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OndyYXAoaW1wbCk7CisgICAg
cmV0dXJuIFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp3cmFwKGltcGwsIGlzb2xhdGUpOwogfQog
aW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFBhc3NSZWZQdHI8IFRlc3RDdXN0b21O
YW1lZEdldHRlciA+IGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCmluZGV4IGQzMDUyOGZiODVkMDJhZDk3NzUxODVjYTMwMTk0
NTc4OGI1MjhjODEuLmMxMTUzYmFhN2U2NjdhNDVmMjE5ODc5ZDkxMWRlOTcyZDUyNDQwOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0RXZlbnRDb25zdHJ1
Y3Rvcio+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9i
amVjdEluZGV4KSk7CiAgICAgfQotICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwKFRlc3RFdmVudENvbnN0cnVjdG9yKik7CisgICAgaW5saW5lIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEV2ZW50Q29uc3RydWN0b3IqLCB2ODo6SXNvbGF0
ZSogPSAwKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGlj
IFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJik7CkBAIC01MCw3ICs1MCw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3co
UGFzc1JlZlB0cjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4pOwogfTsKIAotdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjp3cmFwKFRlc3RFdmVudENvbnN0cnVjdG9y
KiBpbXBsKQordjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjp3
cmFwKFRlc3RFdmVudENvbnN0cnVjdG9yKiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsK
ICAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFw
KCkuZ2V0KGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQpAQCAtNjIsNyAr
NjIsNyBAQCBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoVGVzdEV2ZW50Q29uc3Ry
dWN0b3IqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYQogewogICAgIGlmICghaW1wbCkKICAgICAg
ICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgcmV0dXJuIFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6
OndyYXAoaW1wbCk7CisgICAgcmV0dXJuIFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OndyYXAoaW1w
bCwgaXNvbGF0ZSk7CiB9CiBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFzc1Jl
ZlB0cjwgVGVzdEV2ZW50Q29uc3RydWN0b3IgPiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9
IDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oCmluZGV4IDY0NGVkNGMwZTViNDU0ODFiODJmMzg2
MWRmNzMyZGE0YTNiNmNiMzMuLjI3YmI1YjVkNjQ2ZTM4MmY0ZDM1YjYzMTgzYmZiOGVkY2EyMjZh
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRlc3RFdmVudFRhcmdldCo+KG9i
amVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4
KSk7CiAgICAgfQotICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
KFRlc3RFdmVudFRhcmdldCopOworICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwKFRlc3RFdmVudFRhcmdldCosIHY4OjpJc29sYXRlKiA9IDApOwogICAgIHN0YXRp
YyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKICAgICBzdGF0aWMgV3JhcHBlclR5cGVJbmZvIGlu
Zm87CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBpbmRleGVkUHJvcGVydHlHZXR0
ZXIodWludDMyX3QsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKQEAgLTUxLDcgKzUxLDcgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhQYXNz
UmVmUHRyPFRlc3RFdmVudFRhcmdldD4pOwogfTsKIAotdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBW
OFRlc3RFdmVudFRhcmdldDo6d3JhcChUZXN0RXZlbnRUYXJnZXQqIGltcGwpCit2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IFY4VGVzdEV2ZW50VGFyZ2V0Ojp3cmFwKFRlc3RFdmVudFRhcmdldCogaW1w
bCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3
cmFwcGVyLklzRW1wdHkoKSkKQEAgLTYzLDcgKzYzLDcgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0b1Y4KFRlc3RFdmVudFRhcmdldCogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUg
PQogewogICAgIGlmICghaW1wbCkKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgcmV0
dXJuIFY4VGVzdEV2ZW50VGFyZ2V0Ojp3cmFwKGltcGwpOworICAgIHJldHVybiBWOFRlc3RFdmVu
dFRhcmdldDo6d3JhcChpbXBsLCBpc29sYXRlKTsKIH0KIGlubGluZSB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOChQYXNzUmVmUHRyPCBUZXN0RXZlbnRUYXJnZXQgPiBpbXBsLCB2ODo6SXNvbGF0
ZSogaXNvbGF0ZSA9IDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKaW5kZXggY2EwYzcxM2VjYWUxYTEz
NTNhNDI3OTU2ZTQ1YjE1NjQyYzk3NjU0Ny4uN2NhNzI0OWE2NjE5MzI0MGVmNGYwM2JjYzQ3NWU4
MGNhYmY2YTRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0SW50ZXJmYWNlKj4o
b2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5k
ZXgpKTsKICAgICB9Ci0gICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdy
YXAoVGVzdEludGVyZmFjZSopOworICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwKFRlc3RJbnRlcmZhY2UqLCB2ODo6SXNvbGF0ZSogPSAwKTsKICAgICBzdGF0aWMg
dm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZv
OwogICAgIHN0YXRpYyBBY3RpdmVET01PYmplY3QqIHRvQWN0aXZlRE9NT2JqZWN0KHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4pOwpAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEludGVyZmFjZT4p
OwogfTsKIAotdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RJbnRlcmZhY2U6OndyYXAoVGVz
dEludGVyZmFjZSogaW1wbCkKK3Y4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0SW50ZXJmYWNl
Ojp3cmFwKFRlc3RJbnRlcmZhY2UqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRBY3RpdmVET01PYmplY3RN
YXAoKS5nZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCkBAIC02NSw3
ICs2NSw3IEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChUZXN0SW50ZXJmYWNl
KiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9IDApCiB7CiAgICAgaWYgKCFpbXBsKQogICAg
ICAgICByZXR1cm4gdjg6Ok51bGwoKTsKLSAgICByZXR1cm4gVjhUZXN0SW50ZXJmYWNlOjp3cmFw
KGltcGwpOworICAgIHJldHVybiBWOFRlc3RJbnRlcmZhY2U6OndyYXAoaW1wbCwgaXNvbGF0ZSk7
CiB9CiBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFzc1JlZlB0cjwgVGVzdElu
dGVyZmFjZSA+IGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IGY2ZjNjNDFkOThhNTU1ZmNmMWJm
NDY2ZTA2YzFiMzNiNTk0ZTg2MWUuLmM1MmFjMzRjMDZjY2Y2N2JhMGFiM2FjNzdjMmI3NTEzOWQw
ZTA5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAt
NDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KG9iamVjdC0+R2V0UG9pbnRlckZyb21J
bnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CiAgICAgfQotICAgIGlubGlu
ZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyKik7CisgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAo
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqLCB2ODo6SXNvbGF0ZSogPSAwKTsKICAgICBzdGF0
aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBp
bmZvOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0
V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4pOwogfTsKIAotdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwKFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyKiBpbXBsKQordjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjp3cmFwKFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBpbXBsLCB2ODo6SXNv
bGF0ZSogaXNvbGF0ZSkKIHsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KGltcGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNF
bXB0eSgpKQpAQCAtNjAsNyArNjAsNyBAQCBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRv
VjgoVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGltcGwsIHY4OjpJc29sYXRlKgogewogICAg
IGlmICghaW1wbCkKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgcmV0dXJuIFY4VGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OndyYXAoaW1wbCk7CisgICAgcmV0dXJuIFY4VGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXI6OndyYXAoaW1wbCwgaXNvbGF0ZSk7CiB9CiBpbmxpbmUgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFzc1JlZlB0cjwgVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIgPiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9IDApCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5h
bWVkQ29uc3RydWN0b3IuaAppbmRleCA1NzAzZTM5ZTdhZmQwZDM0ZmMzOTdmNDYwNGFlNDg5YTEx
OWQ3MGViLi4wZDUxMGQyNWQyZDgxZDYwYzY0MmRlY2RiZTIyMGJlY2ZkZWQ4NzIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdE5hbWVkQ29uc3RydWN0b3Iq
PihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBwZXJPYmplY3RJ
bmRleCkpOwogICAgIH0KLSAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
d3JhcChUZXN0TmFtZWRDb25zdHJ1Y3RvciopOworICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3ROYW1lZENvbnN0cnVjdG9yKiwgdjg6Oklzb2xhdGUqID0g
MCk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFw
cGVyVHlwZUluZm8gaW5mbzsKICAgICBzdGF0aWMgQWN0aXZlRE9NT2JqZWN0KiB0b0FjdGl2ZURP
TU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTsKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhQYXNzUmVmUHRy
PFRlc3ROYW1lZENvbnN0cnVjdG9yPik7CiB9OwogCi12ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4
VGVzdE5hbWVkQ29uc3RydWN0b3I6OndyYXAoVGVzdE5hbWVkQ29uc3RydWN0b3IqIGltcGwpCit2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE5hbWVkQ29uc3RydWN0b3I6OndyYXAoVGVzdE5h
bWVkQ29uc3RydWN0b3IqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRBY3RpdmVET01PYmplY3RNYXAoKS5n
ZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCkBAIC02Nyw3ICs2Nyw3
IEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChUZXN0TmFtZWRDb25zdHJ1Y3Rv
ciogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhCiB7CiAgICAgaWYgKCFpbXBsKQogICAgICAgICBy
ZXR1cm4gdjg6Ok51bGwoKTsKLSAgICByZXR1cm4gVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6d3Jh
cChpbXBsKTsKKyAgICByZXR1cm4gVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6d3JhcChpbXBsLCBp
c29sYXRlKTsKIH0KIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChQYXNzUmVmUHRy
PCBUZXN0TmFtZWRDb25zdHJ1Y3RvciA+IGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlID0gMCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3ROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0Tm9kZS5oCmluZGV4IGYxNDFiMjg3Y2YzYThkMjQ0MWQ2NmQ0ODA4NjAzODBjMzI5NDE1MmMu
LmMwMmMxM2FjODU4OTMwNThiYWMyYWQzNGYwMzI5NTFmZDljMTZmNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuaApAQCAt
NDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxUZXN0Tm9kZSo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9N
V3JhcHBlck9iamVjdEluZGV4KSk7CiAgICAgfQotICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3ROb2RlKik7CisgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE5vZGUqLCB2ODo6SXNvbGF0ZSogPSAwKTsKICAgICBz
dGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5m
byBpbmZvOwogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJik7CkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0
Tm9kZT4pOwogfTsKIAotdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3ROb2RlOjp3cmFwKFRl
c3ROb2RlKiBpbXBsKQordjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3ROb2RlOjp3cmFwKFRl
c3ROb2RlKiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICAgICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01XcmFwcGVyOjpnZXRDYWNoZWRXcmFwcGVyKGlt
cGwpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQpAQCAtNjEsNyArNjEsNyBAQCBp
bmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoVGVzdE5vZGUqIGltcGwsIHY4OjpJc29s
YXRlKiBpc29sYXRlID0gMCkKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiB2ODo6
TnVsbCgpOwotICAgIHJldHVybiBWOFRlc3ROb2RlOjp3cmFwKGltcGwpOworICAgIHJldHVybiBW
OFRlc3ROb2RlOjp3cmFwKGltcGwsIGlzb2xhdGUpOwogfQogaW5saW5lIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0b1Y4KFBhc3NSZWZQdHI8IFRlc3ROb2RlID4gaW1wbCwgdjg6Oklzb2xhdGUqIGlz
b2xhdGUgPSAwKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5oCmluZGV4IGY5MmUzMTg2NGM5MTE1ODM2ZDc4MjhmZmFjMzg4YTM3
M2M3NmZiZTMuLmI4ZjlkNzZiYmM4M2JjOWQ5MmY0ODljNGU2MDk3NTliZDM2ODQ0OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8VGVzdE9iaio+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxk
KHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CiAgICAgfQotICAgIGlubGluZSBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RPYmoqKTsKKyAgICBpbmxpbmUgc3RhdGljIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0T2JqKiwgdjg6Oklzb2xhdGUqID0gMCk7CiAg
ICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwogICAgIHN0YXRpYyBXcmFwcGVyVHlw
ZUluZm8gaW5mbzsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGN1c3RvbU1ldGhv
ZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhQYXNzUmVmUHRy
PFRlc3RPYmo+KTsKIH07CiAKLXY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0T2JqOjp3cmFw
KFRlc3RPYmoqIGltcGwpCit2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE9iajo6d3JhcChU
ZXN0T2JqKiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICAgICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KGltcGwpOwogICAg
ICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQpAQCAtNjYsNyArNjYsNyBAQCBpbmxpbmUgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoVGVzdE9iaiogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xh
dGUgPSAwKQogewogICAgIGlmICghaW1wbCkKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0g
ICAgcmV0dXJuIFY4VGVzdE9iajo6d3JhcChpbXBsKTsKKyAgICByZXR1cm4gVjhUZXN0T2JqOjp3
cmFwKGltcGwsIGlzb2xhdGUpOwogfQogaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4
KFBhc3NSZWZQdHI8IFRlc3RPYmogPiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9IDApCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmgKaW5kZXggYWI5ODM2NTViZmNmYjAxM2VmZDI5YTAwYjk3ZWI2MWFhZmEyNDRjMy4uMzc5ZWFj
YjE2NzFjODliMjI3ZDM0M2ExZTA5ODIyMWU0NWM2YzhiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtNDIsNyArNDIsNyBA
QCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4ob2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVy
bmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKICAgICB9Ci0gICAgaW5saW5lIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSopOworICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3
cmFwKFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqLCB2ODo6SXNvbGF0ZSogPSAw
KTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CiAgICAgc3RhdGljIFdyYXBw
ZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3Ry
dWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJik7CkBAIC01MSw3ICs1MSw3IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1Jl
ZlB0cjxUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPik7CiB9OwogCi12ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3Jh
cChUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBpbXBsKQordjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXAoVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xh
dGUpCiB7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9i
amVjdE1hcCgpLmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKQEAg
LTYzLDcgKzYzLDcgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGltcGwsIHY4OjoKIHsKICAgICBpZiAoIWltcGwp
CiAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwotICAgIHJldHVybiBWOFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXAoaW1wbCk7CisgICAgcmV0dXJuIFY4VGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3JhcChpbXBsLCBpc29sYXRlKTsKIH0KIGlubGlu
ZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChQYXNzUmVmUHRyPCBUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlID4gaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRD
dXN0b20uY3BwCmluZGV4IDU3YmQyMjRjMTVmODY1MWM5ZTU5ODRiNTRiNjRkM2ZhZjg2Y2FlYTgu
LjFlMjgyMTJhM2FkOWM4OGE3NmJlNzY3Nzk2NTVkNDkxYjYwMTQ1ZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERvY3VtZW50Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudEN1c3RvbS5jcHAK
QEAgLTEyNiw3ICsxMjYsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChEb2N1bWVudCog
aW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUsIGJvb2wgZm9yY2VOZXdPYgogICAgIGlmIChpbXBs
LT5pc1NWR0RvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR0Rv
Y3VtZW50Kj4oaW1wbCksIGlzb2xhdGUsIGZvcmNlTmV3T2JqZWN0KTsKICNlbmRpZgotICAgIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RG9jdW1lbnQ6OndyYXAoaW1wbCwgZm9y
Y2VOZXdPYmplY3QpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RG9j
dW1lbnQ6OndyYXAoaW1wbCwgaXNvbGF0ZSwgZm9yY2VOZXdPYmplY3QpOwogICAgIGlmICh3cmFw
cGVyLklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgaWYgKCFWOElzb2xh
dGVkQ29udGV4dDo6Z2V0RW50ZXJlZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTERvY3VtZW50Q3VzdG9tLmNwcAppbmRleCA4MWM0
NmM3NDQ1MjYzZTI5YTBkYTJhYjc5Yzg3NzM2NzcxNTFmY2I5Li5kY2UxODJjNGQ0YjQxOTNjMzBj
ZDJlZWYwZTFmYzdhNzE4NzhjYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTE5MCw3ICsx
OTAsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChIVE1MRG9jdW1lbnQqIGltcGwsIHY4
OjpJc29sYXRlKiBpc29sYXRlLCBib29sIGZvcmNlTgogewogICAgIGlmICghaW1wbCkKICAgICAg
ICAgcmV0dXJuIHY4OjpOdWxsKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gVjhIVE1MRG9jdW1lbnQ6OndyYXAoaW1wbCwgZm9yY2VOZXdPYmplY3QpOworICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4SFRNTERvY3VtZW50Ojp3cmFwKGltcGwsIGlz
b2xhdGUsIGZvcmNlTmV3T2JqZWN0KTsKICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiB3cmFwcGVyOwogICAgIGlmICghVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVy
ZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
Tm9kZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2Rl
Q3VzdG9tLmNwcAppbmRleCBmMzhkNzAzZDRjNjEyNzhlMDRjODJiMGMzNzRmNDMzNjk2NjA2ZTcw
Li5mOTIzMmRmMzM0NTMyYmExMjdkMzkyMjE1MDAzMGU3ZDQwZDI0Yzc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlQ3VzdG9tLmNwcApAQCAtMTU0
LDcgKzE1NCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4U2xvdyhOb2RlKiBpbXBsLCB2
ODo6SXNvbGF0ZSogaXNvbGF0ZSwgYm9vbCBmb3JjZU5ld09iCiAgICAgICAgIGlmIChpbXBsLT5p
c1NWR0VsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNWR0Vs
ZW1lbnQqPihpbXBsKSwgaXNvbGF0ZSwgZm9yY2VOZXdPYmplY3QpOwogI2VuZGlmCi0gICAgICAg
IHJldHVybiBWOEVsZW1lbnQ6OndyYXAoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGltcGwpLCBmb3Jj
ZU5ld09iamVjdCk7CisgICAgICAgIHJldHVybiBWOEVsZW1lbnQ6OndyYXAoc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KGltcGwpLCBpc29sYXRlLCBmb3JjZU5ld09iamVjdCk7CiAgICAgY2FzZSBOb2Rl
OjpBVFRSSUJVVEVfTk9ERToKICAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8QXR0cio+
KGltcGwpLCBpc29sYXRlLCBmb3JjZU5ld09iamVjdCk7CiAgICAgY2FzZSBOb2RlOjpURVhUX05P
REU6CkBAIC0xNzksNiArMTc5LDYgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhTbG93KE5v
ZGUqIGltcGwsIHY4OjpJc29sYXRlKiBpc29sYXRlLCBib29sIGZvcmNlTmV3T2IKICAgICAgICAg
cmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihpbXBsKSwgaXNvbGF0ZSwgZm9yY2VO
ZXdPYmplY3QpOwogICAgIGRlZmF1bHQ6IGJyZWFrOyAvLyBYUEFUSF9OQU1FU1BBQ0VfTk9ERQog
ICAgIH0KLSAgICByZXR1cm4gVjhOb2RlOjp3cmFwKGltcGwsIGZvcmNlTmV3T2JqZWN0KTsKKyAg
ICByZXR1cm4gVjhOb2RlOjp3cmFwKGltcGwsIGlzb2xhdGUsIGZvcmNlTmV3T2JqZWN0KTsKIH0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFNWR0RvY3VtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFNWR0RvY3VtZW50Q3VzdG9tLmNwcAppbmRleCAxYzViYTg1ZTA5
YTRkNDdiZmJjYmZhMWM4YWIxNGE4OWU4ZjYxN2I5Li5mNTRiOGI3ZGVlYWYzMzQyMjczYmQ2NTNi
MjM2Y2QyMzEyNDQ5MzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhTVkdEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4U1ZHRG9jdW1lbnRDdXN0b20uY3BwCkBAIC00Miw3ICs0Miw3IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFNWR0RvY3VtZW50KiBpbXBsLCB2ODo6SXNvbGF0ZSog
aXNvbGF0ZSwgYm9vbCBmb3JjZU5lCiB7CiAgICAgaWYgKCFpbXBsKQogICAgICAgICByZXR1cm4g
djg6Ok51bGwoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOFNWR0Rv
Y3VtZW50Ojp3cmFwKGltcGwsIGZvcmNlTmV3T2JqZWN0KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IHdyYXBwZXIgPSBWOFNWR0RvY3VtZW50Ojp3cmFwKGltcGwsIGlzb2xhdGUsIGZvcmNl
TmV3T2JqZWN0KTsKICAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB3
cmFwcGVyOwogICAgIGlmICghVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVyZWQoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vbWFrZV9uYW1lcy5wbAppbmRleCA0Njk5MGEyM2Q1ZjU0MWVmMTc2NjFhYTMxNjNiOGM0
ZjllZWIxNGVmLi44YWIzM2Q1NWVkZDI3NWIwZDFiZDcyZGRiNTRiYjdmZjcyY2MzMWQ5IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vbWFrZV9uYW1lcy5wbApAQCAtMTIxMiw3ICsxMjEyLDcgQEAgRU5ECiAgICAgfSBl
bHNpZiAoJHdyYXBwZXJGYWN0b3J5VHlwZSBlcSAiVjgiKSB7CiAgICAgICAgIHByaW50IEYgPDxF
TkQKICAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbihlbGVtZW50KTsKLSAgICBy
ZXR1cm4gVjgkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9Ojp3cmFwKHRvJHBhcmFt
ZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfShlbGVtZW50KSwgZm9yY2VOZXdPYmplY3QpOwor
ICAgIHJldHVybiBWOCRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX06OndyYXAodG8k
cGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9KGVsZW1lbnQpLCAwLCBmb3JjZU5ld09i
amVjdCk7CiBFTkQKIDsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>