<?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>65112</bug_id>
          
          <creation_ts>2011-07-25 08:38:33 -0700</creation_ts>
          <short_desc>Web Inspector: Implement setPropertyValue using evaluate and callFunctionOn</short_desc>
          <delta_ts>2011-07-26 03:21: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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>441666</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-25 08:38:33 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441676</commentid>
    <comment_count>1</comment_count>
      <attachid>101874</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-25 08:51:53 -0700</bug_when>
    <thetext>Created attachment 101874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441683</commentid>
    <comment_count>2</comment_count>
      <attachid>101874</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-07-25 09:03:02 -0700</bug_when>
    <thetext>Comment on attachment 101874
Patch

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

&gt; LayoutTests/inspector/runtime/runtime-setPropertyValue.html:70
&gt; +                InspectorTest.evaluateInPage(&quot;dumpObjects(&apos;Set undefined&apos;)&quot;, next);

You also need to test the case when setPropertyValue fails with an exception.

&gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:206
&gt; +            this.valueElement.addStyleClass(&quot;console-formatted-&quot; + this.property.value.subtype);

Consider using &lt;type&gt;-&lt;subtype&gt; instead.

&gt; Source/WebCore/inspector/front-end/RemoteObject.js:149
&gt;              callback(&quot;Can&apos;t get a property of non-object.&quot;);

get -&gt; set.

&gt; Source/WebCore/inspector/front-end/RemoteObject.js:158
&gt; +                callback(error || result);

What is the expected type of the callback parameter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441695</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-25 09:27:20 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 101874 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=101874&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector/runtime/runtime-setPropertyValue.html:70
&gt; &gt; +                InspectorTest.evaluateInPage(&quot;dumpObjects(&apos;Set undefined&apos;)&quot;, next);
&gt; 
&gt; You also need to test the case when setPropertyValue fails with an exception.
&gt; 

Done.

&gt; &gt; Source/WebCore/inspector/front-end/ObjectPropertiesSection.js:206
&gt; &gt; +            this.valueElement.addStyleClass(&quot;console-formatted-&quot; + this.property.value.subtype);
&gt; 
&gt; Consider using &lt;type&gt;-&lt;subtype&gt; instead.
&gt; 

I&apos;d need to change it in too many places :(

&gt; &gt; Source/WebCore/inspector/front-end/RemoteObject.js:149
&gt; &gt;              callback(&quot;Can&apos;t get a property of non-object.&quot;);
&gt; 
&gt; get -&gt; set.
&gt; 

Done.

&gt; &gt; Source/WebCore/inspector/front-end/RemoteObject.js:158
&gt; &gt; +                callback(error || result);
&gt; 
&gt; What is the expected type of the callback parameter?

This is error message / error object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441696</commentid>
    <comment_count>4</comment_count>
      <attachid>101880</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-25 09:28:03 -0700</bug_when>
    <thetext>Created attachment 101880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441699</commentid>
    <comment_count>5</comment_count>
      <attachid>101881</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-25 09:31:29 -0700</bug_when>
    <thetext>Created attachment 101881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442127</commentid>
    <comment_count>6</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-07-25 23:29:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; &gt; Source/WebCore/inspector/front-end/RemoteObject.js:158
&gt; &gt; &gt; +                callback(error || result);
&gt; &gt; 
&gt; &gt; What is the expected type of the callback parameter?
&gt; 
&gt; This is error message / error object.
Can we come up with something more definite here and say that the error is always an error object?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442166</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-07-26 03:21:08 -0700</bug_when>
    <thetext>Committed r91750: &lt;http://trac.webkit.org/changeset/91750&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101874</attachid>
            <date>2011-07-25 08:51:53 -0700</date>
            <delta_ts>2011-07-25 09:27:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65112-20110725195151.patch</filename>
            <type>text/plain</type>
            <size>19815</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE2NjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOWY2ZDNiMmY3ZTljNTA5NTUyMjBk
OWUyOGZmMzVjNWQxNjlhYmJmLi5lMzc1ZjIxN2Y1ODYyYzUwMGY0YWFiMjgzNjkwMjllOWQ5NTI3
NzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTEtMDctMjUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBz
ZXRQcm9wZXJ0eVZhbHVlIHVzaW5nIGV2YWx1YXRlIGFuZCBjYWxsRnVuY3Rpb25PbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUxMTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9ydW50
aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS5odG1sOiBBZGRl
ZC4KKworMjAxMS0wNy0yNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIGRlZGljYXRlZCB0eXBlIGZvciBvYmplY3QgaWQg
aW4gdGhlIHByb3RvY29sLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUxMTAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3Rv
Y29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b3RvY29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDAwNWVlNzI5N2NlMmVkZjU5
ODE1ZDE2NTgzMzM2ZWRiYzQ3MDE1NTYuLjhlNzZmMjQ5OThjNGNiN2ZhMjJlZmNmYjJiODQ4NDAw
Y2E1Y2NjMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50
aW1lLWFnZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9j
b2wvcnVudGltZS1hZ2VudC1leHBlY3RlZC50eHQKQEAgLTc4LDQ4ICs3OCw2IEBAIHJlc3BvbnNl
OgogfQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUnVudGltZUFnZW50LnNldFByb3BlcnR5VmFsdWUoPHN0cmluZz4sImFzc2ln
bmVkQnlTZXRQcm9wZXJ0eVZhbHVlIiwidHJ1ZSIpCi0KLXJlcXVlc3Q6Ci17Ci0gICAgbWV0aG9k
IDogIlJ1bnRpbWUuc2V0UHJvcGVydHlWYWx1ZSIKLSAgICBwYXJhbXMgOiB7Ci0gICAgICAgIG9i
amVjdElkIDogPHN0cmluZz4KLSAgICAgICAgcHJvcGVydHlOYW1lIDogImFzc2lnbmVkQnlTZXRQ
cm9wZXJ0eVZhbHVlIgotICAgICAgICBleHByZXNzaW9uIDogInRydWUiCi0gICAgfQotICAgIGlk
IDogPG51bWJlcj4KLX0KLQotcmVzcG9uc2U6Ci17Ci0gICAgcmVzdWx0IDogewotICAgIH0KLSAg
ICBpZCA6IDxudW1iZXI+Ci19Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SdW50aW1lQWdlbnQuc2V0UHJvcGVydHlWYWx1ZSg8
c3RyaW5nPiwicmVtb3ZlZEJ5U2V0UHJvcGVydHlWYWx1ZSIsIiIpCi0KLXJlcXVlc3Q6Ci17Ci0g
ICAgbWV0aG9kIDogIlJ1bnRpbWUuc2V0UHJvcGVydHlWYWx1ZSIKLSAgICBwYXJhbXMgOiB7Ci0g
ICAgICAgIG9iamVjdElkIDogPHN0cmluZz4KLSAgICAgICAgcHJvcGVydHlOYW1lIDogInJlbW92
ZWRCeVNldFByb3BlcnR5VmFsdWUiCi0gICAgICAgIGV4cHJlc3Npb24gOiAiIgotICAgIH0KLSAg
ICBpZCA6IDxudW1iZXI+Ci19Ci0KLXJlc3BvbnNlOgotewotICAgIHJlc3VsdCA6IHsKLSAgICB9
Ci0gICAgaWQgOiA8bnVtYmVyPgotfQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogUnVudGltZUFnZW50LmdldFByb3BlcnRpZXMo
PHN0cmluZz4sZmFsc2UpCiAKIHJlcXVlc3Q6CkBAIC0xNDQsMTMgKzEwMiw2IEBAIHJlc3BvbnNl
OgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBuYW1lIDogImFzc2lnbmVkQnlTZXRQcm9wZXJ0eVZhbHVlIgotICAgICAgICAg
ICAgICAgIHZhbHVlIDogewotICAgICAgICAgICAgICAgICAgICB0eXBlIDogImJvb2xlYW4iCi0g
ICAgICAgICAgICAgICAgICAgIHZhbHVlIDogdHJ1ZQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBuYW1lIDogIl9fcHJvdG9f
XyIKICAgICAgICAgICAgICAgICB2YWx1ZSA6IHsKICAgICAgICAgICAgICAgICAgICAgdHlwZSA6
ICJvYmplY3QiCkBAIC0yMDgsNyArMTU5LDYgQEAgQ292ZXJhZ2UgZm9yIFJ1bnRpbWVBZ2VudAog
ICAgIGV2YWx1YXRlIDogImNoZWNrZWQiCiAgICAgY2FsbEZ1bmN0aW9uT24gOiAiY2hlY2tlZCIK
ICAgICBnZXRQcm9wZXJ0aWVzIDogImNoZWNrZWQiCi0gICAgc2V0UHJvcGVydHlWYWx1ZSA6ICJj
aGVja2VkIgogICAgIHJlbGVhc2VPYmplY3QgOiAiY2hlY2tlZCIKICAgICByZWxlYXNlT2JqZWN0
R3JvdXAgOiAiY2hlY2tlZCIKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm90b2NvbC9ydW50aW1lLWFnZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9j
b2wvcnVudGltZS1hZ2VudC5odG1sCmluZGV4IGM1ZWY2NzFmOTgwZTcwNjg1ZmM1Zjg2YmQwZDlj
ZDY3YjBkYmI5OWQuLjliMDYwMGMwOTYyYmMyZmQ2MWE5M2JhNmU5YjUxMzg1YmQ4M2M3ZjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQuaHRt
bApAQCAtNiw3ICs2LDYgQEAKIAogZnVuY3Rpb24gVGVzdE9iamVjdCgpCiB7Ci0gICAgdGhpcy5y
ZW1vdmVkQnlTZXRQcm9wZXJ0eVZhbHVlID0gImRvZXNuJ3Qgd29yayI7CiB9CiAKIHRlc3RPYmpl
Y3QgPSBuZXcgVGVzdE9iamVjdCgpOwpAQCAtMjEsOCArMjAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIFsiUnVudGltZUFnZW50IiwgImV2YWx1YXRlIiwgJ3Rlc3RPYmplY3QnLCAn
dGVzdCcsIGZhbHNlXSwKICAgICAgICAgICAgIFsiUnVudGltZUFnZW50IiwgImV2YWx1YXRlIiwg
J3Rlc3RPYmplY3QnLCAndGVzdCddLAogICAgICAgICAgICAgWyJSdW50aW1lQWdlbnQiLCAiY2Fs
bEZ1bmN0aW9uT24iLCByZXN1bHQub2JqZWN0SWQsICdmdW5jdGlvbigpIHsgdGhpcy5hc3NpZ25l
ZEJ5Q2FsbEZ1bmN0aW9uT24gPSAiY2FsbEZ1bmN0aW9uT24gZnVuY3Rpb24gd29ya3MgZmluZSI7
IHJldHVybiB0aGlzLmFzc2lnbmVkQnlDYWxsRnVuY3Rpb25PbjsgfSddLAotICAgICAgICAgICAg
WyJSdW50aW1lQWdlbnQiLCAic2V0UHJvcGVydHlWYWx1ZSIsIHJlc3VsdC5vYmplY3RJZCwgJ2Fz
c2lnbmVkQnlTZXRQcm9wZXJ0eVZhbHVlJywgJ3RydWUnXSwKLSAgICAgICAgICAgIFsiUnVudGlt
ZUFnZW50IiwgInNldFByb3BlcnR5VmFsdWUiLCByZXN1bHQub2JqZWN0SWQsICdyZW1vdmVkQnlT
ZXRQcm9wZXJ0eVZhbHVlJywgJyddLAogICAgICAgICAgICAgWyJSdW50aW1lQWdlbnQiLCAiZ2V0
UHJvcGVydGllcyIsIHJlc3VsdC5vYmplY3RJZCwgZmFsc2VdLAogICAgICAgICAgICAgWyJSdW50
aW1lQWdlbnQiLCAicmVsZWFzZU9iamVjdCIsIHJlc3VsdC5vYmplY3RJZF0sCiAgICAgICAgICAg
ICBbIlJ1bnRpbWVBZ2VudCIsICJyZWxlYXNlT2JqZWN0R3JvdXAiLCAndGVzdCddXTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlW
YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1l
LXNldFByb3BlcnR5VmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzODU2YjZiMjc2Zjcz
NzVjNTMyYmNkMTQwZGZkOWJjZjRiYjI2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLXNldFByb3BlcnR5VmFsdWUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogPT09PT0gSW5pdGlh
bCA9PT09PQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiB7ImZvbyI6MX0KK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxMzogeyJiYXIiOjJ9CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDExOiA9PT09PSBTZXQgcHJpbWl0aXZlID09PT09CitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTI6IHsiZm9vIjoyfQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiB7
ImJhciI6Mn0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNDogCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTE6ID09PT09IFNldCBoYW5kbGUgPT09PT0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjog
eyJmb28iOnsiYmFyIjoyfX0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogeyJiYXIiOjJ9CitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiA9PT09
PSBTZXQgdW5kZWZpbmVkID09PT09CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHt9CitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTM6IHsiYmFyIjoyfQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0
OiAKK1Rlc3RzIFdlYkluc3BlY3Rvci5SZW1vdmVPYmplY3Quc2V0UHJvcGVydHlWYWx1ZSBpbXBs
ZW1lbnRhdGlvbi4KKworCitSdW5uaW5nOiB0ZXN0U2V0VXAKKworUnVubmluZzogdGVzdFNldFBy
aW1pdGl2ZQorCitSdW5uaW5nOiB0ZXN0U2V0SGFuZGxlCisKK1J1bm5pbmc6IHRlc3RTZXRVbmRl
ZmluZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVudGlt
ZS1zZXRQcm9wZXJ0eVZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9y
dW50aW1lLXNldFByb3BlcnR5VmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWIxZDg0OTUxMzU0MzFm
N2VkYjlkYzFjYWRhMGIzMGE4ODgyNGFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1zZXRQcm9wZXJ0eVZhbHVlLmh0bWwKQEAgLTAsMCAr
MSw4NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgb2Jq
ZWN0MSA9IHsgZm9vOiAxIH07Cit2YXIgb2JqZWN0MiA9IHsgYmFyOiAyIH07CisKK2Z1bmN0aW9u
IGR1bXBPYmplY3RzKGxhYmVsKQoreworICAgIGNvbnNvbGUubG9nKCI9PT09PSAiICsgbGFiZWwg
KyAiID09PT09Iik7CisgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkob2JqZWN0MSkpOwor
ICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KG9iamVjdDIpKTsKKyAgICBjb25zb2xlLmxv
ZygiIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBvYmoxLCBvYmoyOworCisg
ICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0
VXAobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiZHVtcE9iamVjdHMoJ0luaXRpYWwnKSIsIHN0ZXAwKTsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDAoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVBZ2Vu
dC5ldmFsdWF0ZSgib2JqZWN0MSIsIHN0ZXAxKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDEoZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIG9iajEgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Q
YXlsb2FkKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJv
YmplY3QxIiwgc3RlcDIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMihlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgb2JqMiA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0
KTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisK
KyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFByaW1pdGl2ZShuZXh0KQorICAgICAgICB7CisgICAg
ICAgICAgICBvYmoxLnNldFByb3BlcnR5VmFsdWUoImZvbyIsICIyIiwgc3RlcDEpOworCisgICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZHVtcE9iamVjdHMoJ1NldCBwcmltaXRpdmUn
KSIsIG5leHQpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9u
IHRlc3RTZXRIYW5kbGUobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgb2JqMS5zZXRQcm9w
ZXJ0eVZhbHVlKCJmb28iLCAib2JqZWN0MiIsIHN0ZXAxKTsKKworICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDEoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoImR1bXBPYmplY3RzKCdTZXQgaGFuZGxlJykiLCBuZXh0KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VW5kZWZpbmVk
KG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9iajEuc2V0UHJvcGVydHlWYWx1ZSgiZm9v
IiwgInVuZGVmaW5lZCIsIHN0ZXAxKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImR1bXBPYmplY3RzKCdTZXQgdW5kZWZpbmVkJykiLCBuZXh0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIF0pOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyBXZWJJbnNwZWN0b3IuUmVtb3ZlT2JqZWN0LnNl
dFByb3BlcnR5VmFsdWUgaW1wbGVtZW50YXRpb24uCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlODY3ODdhZjQxMjI2YWRkODBiNzIxYzU5MGJjNDA2MjkxNWFjOGJiLi42
MTFjZmRkZmY2ZjkyZWMxY2MyOTE5OGJhYTQ2NzdlOWMzNmUyYjA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMjcgQEAKIDIwMTEtMDctMjUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUu
Y29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBzZXRQcm9wZXJ0eVZhbHVl
IHVzaW5nIGV2YWx1YXRlIGFuZCBjYWxsRnVuY3Rpb25PbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcnVudGltZS9ydW50aW1l
LXNldFByb3BlcnR5VmFsdWUuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICguKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0UHJvcGVy
dHlWYWx1ZS5ldmFsdWF0ZWRDYWxsYmFjay5zZXRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUuZXZhbHVh
dGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5
cGUuc2V0UHJvcGVydHlWYWx1ZS5wcm9wZXJ0eVNldENhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorCisyMDEx
LTA3LTI1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiB1c2UgZGVkaWNhdGVkIHR5cGUgZm9yIG9iamVjdCBpZCBpbiB0aGUgcHJv
dG9jb2wuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTExMAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAppbmRl
eCA2Y2Y2NWU4MjJmNGQ1YTU4ZWVlN2U3YjZhZDU1Y2RjYTZhYzVhNjRjLi41MmJmYWRlZGVhYTMy
YzNkODJlMDk2MTQ4ODNhODg3NWNhNDFjZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdC5jcHAKQEAgLTExMywxNyArMTEzLDYgQEAgTm9kZSogSW5qZWN0ZWRT
Y3JpcHQ6Om5vZGVGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKQogICAgIHJldHVy
biBJbmplY3RlZFNjcmlwdEhvc3Q6OnNjcmlwdFZhbHVlQXNOb2RlKHJlc3VsdFZhbHVlKTsKIH0K
IAotdm9pZCBJbmplY3RlZFNjcmlwdDo6c2V0UHJvcGVydHlWYWx1ZShFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxs
IGZ1bmN0aW9uKG1faW5qZWN0ZWRTY3JpcHRPYmplY3QsICJzZXRQcm9wZXJ0eVZhbHVlIik7Ci0g
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2JqZWN0SWQpOwotICAgIGZ1bmN0aW9uLmFwcGVu
ZEFyZ3VtZW50KHByb3BlcnR5TmFtZSk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZXhw
cmVzc2lvbik7Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7Ci0gICAgbWFrZUNh
bGwoZnVuY3Rpb24sICZyZXN1bHQpOwotICAgIHJlc3VsdC0+YXNTdHJpbmcoZXJyb3JTdHJpbmcp
OwotfQotCiB2b2lkIEluamVjdGVkU2NyaXB0OjpyZWxlYXNlT2JqZWN0KGNvbnN0IFN0cmluZyYg
b2JqZWN0SWQpCiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1faW5qZWN0ZWRT
Y3JpcHRPYmplY3QsICJyZWxlYXNlT2JqZWN0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5oCmluZGV4IGM5NDQ3MTVhMzI2YTQ0ZGY5NTI2ZmJhYmI0YTljZTE1YThl
YjljZjQuLjcwYjhjNjc3YTUzNGY1OTdmYmQ2ZTNiMDE0Njk2MGVlY2ExZjY4MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBAIC02MCw3ICs2MCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIGV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBT
Y3JpcHRWYWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3Qg
U3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1
ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCog
d2FzVGhyb3duKTsKICAgICB2b2lkIGdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIG9iamVjdElkLCBib29sIGlnbm9yZUhhc093blByb3BlcnR5LCBSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+KiByZXN1bHQpOwogICAgIE5vZGUqIG5vZGVGb3JPYmplY3RJZChjb25zdCBTdHJp
bmcmIG9iamVjdElkKTsKLSAgICB2b2lkIHNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3Qg
U3RyaW5nJiBleHByZXNzaW9uKTsKICAgICB2b2lkIHJlbGVhc2VPYmplY3QoY29uc3QgU3RyaW5n
JiBvYmplY3RJZCk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCAzNWJk
MTE1YzhiZDQ2NzJmNzYwMTEzOTQ2ZDMzZDUxZWYwY2MxZTcyLi41ZDhkNDU1Mjc0OTRkYWIwYWYz
MzRiMzgyOGYwNTUzNjRmYmEwY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC0xOTYsNyArMTk2LDcgQEAgSW5qZWN0ZWRTY3Jp
cHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0gdGhpcy5f
d3JhcE9iamVjdCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsKICAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHNob3cgc29tZXRoaW5nIGxp
a2UgImdldHRlciIgKGJ1ZyAxNjczNCkuCi0gICAgICAgICAgICAgICAgcHJvcGVydHkudmFsdWUg
PSBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdCgiXHUyMDE0Iik7IC8vIGVt
IGRhc2gKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eS52YWx1ZSA9IG5ldyBJbmplY3RlZFNjcmlw
dC5SZW1vdGVPYmplY3QoIlx1MjAxNCIpOyAvLyBlbSBkYXNoCiAgICAgICAgICAgICAgICAgcHJv
cGVydHkuaXNHZXR0ZXIgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHJvcGVy
dGllcy5wdXNoKHByb3BlcnR5KTsKQEAgLTIwNCw0MyArMjA0LDYgQEAgSW5qZWN0ZWRTY3JpcHQu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gcHJvcGVydGllczsKICAgICB9LAogCi0gICAg
c2V0UHJvcGVydHlWYWx1ZTogZnVuY3Rpb24ob2JqZWN0SWQsIHByb3BlcnR5TmFtZSwgZXhwcmVz
c2lvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXJzZWRPYmplY3RJZCA9IHRoaXMuX3BhcnNlT2Jq
ZWN0SWQob2JqZWN0SWQpOwotICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5fb2JqZWN0Rm9ySWQo
cGFyc2VkT2JqZWN0SWQpOwotICAgICAgICBpZiAoIXRoaXMuX2lzRGVmaW5lZChvYmplY3QpKQot
ICAgICAgICAgICAgcmV0dXJuICJPYmplY3Qgd2l0aCBnaXZlbiBpZCBub3QgZm91bmQiOwotCi0g
ICAgICAgIHZhciBleHByZXNzaW9uTGVuZ3RoID0gZXhwcmVzc2lvbi5sZW5ndGg7Ci0gICAgICAg
IGlmICghZXhwcmVzc2lvbkxlbmd0aCkgewotICAgICAgICAgICAgZGVsZXRlIG9iamVjdFtwcm9w
ZXJ0eU5hbWVdOwotICAgICAgICAgICAgLy8gQXZvaWQgZXhwbGljaXQgYXNzaWdubWVudCB0byB1
bmRlZmluZWQgYXMgaXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZW4gKHNlZSBjcmJ1Zy5jb20vODg0
MTQpLgotICAgICAgICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5h
bWUgaW4gb2JqZWN0KQotICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJDb3VuZCBub3QgZGVsZXRl
IHByb3BlcnR5LiI7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0KLSAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgIC8vIFN1cnJvdW5kIHRoZSBleHByZXNzaW9uIGluIHBh
cmVudGhlc2lzIHNvIHRoZSByZXN1bHQgb2YgdGhlIGV2YWwgaXMgdGhlIHJlc3VsdAotICAgICAg
ICAgICAgLy8gb2YgdGhlIHdob2xlIGV4cHJlc3Npb24gbm90IHRoZSBsYXN0IHBvdGVudGlhbCBz
dWItZXhwcmVzc2lvbi4KLQotICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSByZWdyZXNzaW9uIGlu
dHJvZHVjZWQgaGVyZTogZXZhbCBpcyBub3cgaGFwcGVuaW5nIGFnYWluc3QgZ2xvYmFsIG9iamVj
dCwKLSAgICAgICAgICAgIC8vIG5vdCBjYWxsIGZyYW1lIHdoaWxlIG9uIGEgYnJlYWtwb2ludC4K
LSAgICAgICAgICAgIC8vIFRPRE86IGJyaW5nIGV2YWx1YXRpb24gYWdhaW5zdCBjYWxsIGZyYW1l
IGJhY2suCi0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gSW5qZWN0ZWRTY3JpcHRIb3N0LmV2YWx1
YXRlKCIoIiArIGV4cHJlc3Npb24gKyAiKSIpOwotICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHJl
c3VsdCBpbiB0aGUgcHJvcGVydHkuCi0gICAgICAgICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9
IHJlc3VsdDsKLSAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgIHZhciByZXN1bHQgPSBJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVhdGUoIlwiIiAr
IGV4cHJlc3Npb24ucmVwbGFjZSgvIi9nLCAiXFxcIiIpICsgIlwiIik7Ci0gICAgICAgICAgICAg
ICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSByZXN1bHQ7Ci0gICAgICAgICAgICB9IGNhdGNoKGUp
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZS50b1N0cmluZygpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgfSwKLQogICAgIHJlbGVhc2VPYmplY3Q6IGZ1bmN0aW9uKG9iamVjdElk
KQogICAgIHsKICAgICAgICAgdmFyIHBhcnNlZE9iamVjdElkID0gdGhpcy5fcGFyc2VPYmplY3RJ
ZChvYmplY3RJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXgg
YTdiY2YyMWI1NzljMDdkYTE4ZGZlMTY3MjlmYWRlMDhjMGMzOWQ4OS4uYWJjMWEyZTk5ZWJhZTFm
MzExNTRkMjNjYzQ1YzE0M2ZkZjIxYTFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtMjk2LDE1ICsyOTYsNiBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJSZXR1cm5zIHByb3BlcnRpZXMgb2YgYSBnaXZlbiBvYmplY3QuIgogICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRQcm9wZXJ0
eVZhbHVlIiwKLSAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJlbW90ZU9iamVjdElkIiwgImRl
c2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVjdCB0byBzZXQgcHJvcGVydHkgb24u
IiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3BlcnR5TmFtZSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9wZXJ0eSBuYW1lIHRvIHNldCB2YWx1ZSBm
b3IuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImV4cHJlc3Npb24iLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRXhwcmVzc2lvbiB0byBldmFsdWF0ZS4iIH0K
LSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJNYWtl
cyBwcm9wZXJ0eSB3aXRoIGdpdmVuIG5hbWUgZXF1YWwgdG8gdGhlIGV4cHJlc3Npb24gZXZhbHVh
dGlvbiByZXN1bHQuIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAibmFtZSI6ICJyZWxlYXNlT2JqZWN0IiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjog
IlJlbW90ZU9iamVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVj
dCB0byByZWxlYXNlLiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50LmNwcAppbmRleCAyOGFlYTc2OTM4YmE0MDMyYjk5N2IyYjM3YTIyNzIx
ODU5ZjhlOTRjLi5iMDUyMTdmYWM1MTAyYmEyYTU3NTRiZDUyMWYyNzhhMTE0MzViZTNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cApAQCAtMTA1LDE1ICsxMDUsNiBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJv
cGVydGllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZwogICAgIGluamVj
dGVkU2NyaXB0LmdldFByb3BlcnRpZXMoZXJyb3JTdHJpbmcsIG9iamVjdElkLCBpZ25vcmVIYXNP
d25Qcm9wZXJ0eSwgcmVzdWx0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnNl
dFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9i
amVjdElkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiBleHByZXNz
aW9uKQotewotICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwotICAgIGlm
ICghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICBpbmplY3RlZFNjcmlwdC5z
ZXRQcm9wZXJ0eVZhbHVlKGVycm9yU3RyaW5nLCBvYmplY3RJZCwgcHJvcGVydHlOYW1lLCBleHBy
ZXNzaW9uKTsKLSAgICBlbHNlCi0gICAgICAgICplcnJvclN0cmluZyA9ICJObyBpbmplY3RlZCBz
Y3JpcHQgZm91bmQiOwotfQotCiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cmVsZWFzZU9i
amVjdChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpCiB7CiAgICAgSW5qZWN0
ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0
ZWRTY3JpcHRGb3JPYmplY3RJZChvYmplY3RJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5kZXggYWMwMWRhNGM1MjJiYjEyYWNjNDkz
MzAyZTRkNDI2NjMxMjQ4ODc0OS4uNGRlNWRlZWU1MDhjNjVmN2ZlNzVlNDYzNjU5ZTA4NGExNmE2
ZGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1l
QWdlbnQuaApAQCAtNTcsNyArNTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWxsRnVuY3Rpb25P
bihFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgZXhw
cmVzc2lvbiwgY29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiogY29uc3Qgb3B0aW9uYWxBcmd1
bWVudHMsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bik7
CiAgICAgdm9pZCByZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmpl
Y3RJZCk7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgUmVmUHRyPEluc3BlY3RvckFy
cmF5PiogcmVzdWx0KTsKLSAgICB2b2lkIHNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3Qg
U3RyaW5nJiBleHByZXNzaW9uKTsKICAgICB2b2lkIHJlbGVhc2VPYmplY3RHcm91cChFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCA1M2ZmM2ZkOTU2NGJm
MGRkMzJlZWEyMTExMDVjMmUzYjdjYmJiNzJjLi40ZmQ3Y2QxZTU1OGM3ZWQ2NDA3YzMyNjhmMmE2
MDVmNjZjOTEzYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTIwMiw3ICsyMDIs
OSBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJkaW1tZWQiKTsK
ICAgICAgICAgaWYgKHRoaXMucHJvcGVydHkud2FzVGhyb3duKQogICAgICAgICAgICAgdGhpcy52
YWx1ZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZXJyb3IiKTsKLSAgICAgICAgaWYgKHRoaXMucHJv
cGVydHkudmFsdWUudHlwZSkKKyAgICAgICAgaWYgKHRoaXMucHJvcGVydHkudmFsdWUuc3VidHlw
ZSkKKyAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUt
Zm9ybWF0dGVkLSIgKyB0aGlzLnByb3BlcnR5LnZhbHVlLnN1YnR5cGUpOworICAgICAgICBlbHNl
IGlmICh0aGlzLnByb3BlcnR5LnZhbHVlLnR5cGUpCiAgICAgICAgICAgICB0aGlzLnZhbHVlRWxl
bWVudC5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLWZvcm1hdHRlZC0iICsgdGhpcy5wcm9wZXJ0eS52
YWx1ZS50eXBlKTsKICAgICAgICAgaWYgKHRoaXMucHJvcGVydHkudmFsdWUuc3VidHlwZSA9PT0g
Im5vZGUiKQogICAgICAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y29udGV4dG1lbnUiLCB0aGlzLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwgZmFs
c2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1v
dGVPYmplY3QuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9i
amVjdC5qcwppbmRleCA0ZjljOTJmOWU2MWE1ZjhkOWQ3Zjg1MGM3ZjE0NjBiZmQxMzQ3ZDg5Li5k
ZjBkYWQzY2Y5YTRjYzVmYmI1Y2EwMGE4MjA5N2IzMDU4NDc2YmFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtMzEsMTAg
KzMxLDEwIEBACiBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQs
IHR5cGUsIHN1YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbikKIHsKICAgICB0aGlzLl90eXBlID0g
dHlwZTsKKyAgICB0aGlzLl9zdWJ0eXBlID0gc3VidHlwZTsKICAgICBpZiAob2JqZWN0SWQpIHsK
ICAgICAgICAgLy8gaGFuZGxlCiAgICAgICAgIHRoaXMuX29iamVjdElkID0gb2JqZWN0SWQ7Ci0g
ICAgICAgIHRoaXMuX3N1YnR5cGUgPSBzdWJ0eXBlOwogICAgICAgICB0aGlzLl9kZXNjcmlwdGlv
biA9IGRlc2NyaXB0aW9uOwogICAgICAgICB0aGlzLl9oYXNDaGlsZHJlbiA9IHRydWU7CiAgICAg
fSBlbHNlIHsKQEAgLTE0OSw3ICsxNDksMzQgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYWxsYmFjaygiQ2FuJ3QgZ2V0IGEgcHJvcGVydHkg
b2Ygbm9uLW9iamVjdC4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAg
ICBSdW50aW1lQWdlbnQuc2V0UHJvcGVydHlWYWx1ZSh0aGlzLl9vYmplY3RJZCwgbmFtZSwgdmFs
dWUsIGNhbGxiYWNrKTsKKworICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUodmFsdWUsIHVu
ZGVmaW5lZCwgZmFsc2UsIHRydWUsIGV2YWx1YXRlZENhbGxiYWNrLmJpbmQodGhpcykpOworCisg
ICAgICAgIGZ1bmN0aW9uIGV2YWx1YXRlZENhbGxiYWNrKGVycm9yLCByZXN1bHQsIHdhc1Rocm93
bikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yIHx8IHdhc1Rocm93bikgeworICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yIHx8IHJlc3VsdCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBzZXRQcm9wZXJ0
eVZhbHVlKHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB0aGlzW3Byb3BlcnR5TmFtZV0gPSBwcm9wZXJ0eVZhbHVlOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBkZWxldGUgcmVzdWx0LmRlc2NyaXB0aW9uOyAvLyBPcHRpbWl6
ZSBvbiB0cmFmZmljLgorICAgICAgICAgICAgUnVudGltZUFnZW50LmNhbGxGdW5jdGlvbk9uKHRo
aXMuX29iamVjdElkLCBzZXRQcm9wZXJ0eVZhbHVlLnRvU3RyaW5nKCksIFt7IHZhbHVlOm5hbWUg
fSwgcmVzdWx0XSwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAg
IGlmIChyZXN1bHQuX29iamVjdElkKQorICAgICAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5yZWxl
YXNlT2JqZWN0KHJlc3VsdC5fb2JqZWN0SWQpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gcHJvcGVydHlTZXRDYWxsYmFjayhlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pIHsKKyAgICAg
ICAgICAgIGlmIChlcnJvciB8fCB3YXNUaHJvd24pIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFj
ayhlcnJvciB8fCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0KICAgICB9LAogCiAgICAgcHVz
aE5vZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101880</attachid>
            <date>2011-07-25 09:28:03 -0700</date>
            <delta_ts>2011-07-25 09:31:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65112-20110725202801.patch</filename>
            <type>text/plain</type>
            <size>20305</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE2NjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOWY2ZDNiMmY3ZTljNTA5NTUyMjBk
OWUyOGZmMzVjNWQxNjlhYmJmLi5lMzc1ZjIxN2Y1ODYyYzUwMGY0YWFiMjgzNjkwMjllOWQ5NTI3
NzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTEtMDctMjUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBz
ZXRQcm9wZXJ0eVZhbHVlIHVzaW5nIGV2YWx1YXRlIGFuZCBjYWxsRnVuY3Rpb25PbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUxMTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9ydW50
aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS5odG1sOiBBZGRl
ZC4KKworMjAxMS0wNy0yNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIGRlZGljYXRlZCB0eXBlIGZvciBvYmplY3QgaWQg
aW4gdGhlIHByb3RvY29sLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUxMTAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3Rv
Y29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b3RvY29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDAwNWVlNzI5N2NlMmVkZjU5
ODE1ZDE2NTgzMzM2ZWRiYzQ3MDE1NTYuLjhlNzZmMjQ5OThjNGNiN2ZhMjJlZmNmYjJiODQ4NDAw
Y2E1Y2NjMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50
aW1lLWFnZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9j
b2wvcnVudGltZS1hZ2VudC1leHBlY3RlZC50eHQKQEAgLTc4LDQ4ICs3OCw2IEBAIHJlc3BvbnNl
OgogfQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUnVudGltZUFnZW50LnNldFByb3BlcnR5VmFsdWUoPHN0cmluZz4sImFzc2ln
bmVkQnlTZXRQcm9wZXJ0eVZhbHVlIiwidHJ1ZSIpCi0KLXJlcXVlc3Q6Ci17Ci0gICAgbWV0aG9k
IDogIlJ1bnRpbWUuc2V0UHJvcGVydHlWYWx1ZSIKLSAgICBwYXJhbXMgOiB7Ci0gICAgICAgIG9i
amVjdElkIDogPHN0cmluZz4KLSAgICAgICAgcHJvcGVydHlOYW1lIDogImFzc2lnbmVkQnlTZXRQ
cm9wZXJ0eVZhbHVlIgotICAgICAgICBleHByZXNzaW9uIDogInRydWUiCi0gICAgfQotICAgIGlk
IDogPG51bWJlcj4KLX0KLQotcmVzcG9uc2U6Ci17Ci0gICAgcmVzdWx0IDogewotICAgIH0KLSAg
ICBpZCA6IDxudW1iZXI+Ci19Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SdW50aW1lQWdlbnQuc2V0UHJvcGVydHlWYWx1ZSg8
c3RyaW5nPiwicmVtb3ZlZEJ5U2V0UHJvcGVydHlWYWx1ZSIsIiIpCi0KLXJlcXVlc3Q6Ci17Ci0g
ICAgbWV0aG9kIDogIlJ1bnRpbWUuc2V0UHJvcGVydHlWYWx1ZSIKLSAgICBwYXJhbXMgOiB7Ci0g
ICAgICAgIG9iamVjdElkIDogPHN0cmluZz4KLSAgICAgICAgcHJvcGVydHlOYW1lIDogInJlbW92
ZWRCeVNldFByb3BlcnR5VmFsdWUiCi0gICAgICAgIGV4cHJlc3Npb24gOiAiIgotICAgIH0KLSAg
ICBpZCA6IDxudW1iZXI+Ci19Ci0KLXJlc3BvbnNlOgotewotICAgIHJlc3VsdCA6IHsKLSAgICB9
Ci0gICAgaWQgOiA8bnVtYmVyPgotfQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogUnVudGltZUFnZW50LmdldFByb3BlcnRpZXMo
PHN0cmluZz4sZmFsc2UpCiAKIHJlcXVlc3Q6CkBAIC0xNDQsMTMgKzEwMiw2IEBAIHJlc3BvbnNl
OgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBuYW1lIDogImFzc2lnbmVkQnlTZXRQcm9wZXJ0eVZhbHVlIgotICAgICAgICAg
ICAgICAgIHZhbHVlIDogewotICAgICAgICAgICAgICAgICAgICB0eXBlIDogImJvb2xlYW4iCi0g
ICAgICAgICAgICAgICAgICAgIHZhbHVlIDogdHJ1ZQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBuYW1lIDogIl9fcHJvdG9f
XyIKICAgICAgICAgICAgICAgICB2YWx1ZSA6IHsKICAgICAgICAgICAgICAgICAgICAgdHlwZSA6
ICJvYmplY3QiCkBAIC0yMDgsNyArMTU5LDYgQEAgQ292ZXJhZ2UgZm9yIFJ1bnRpbWVBZ2VudAog
ICAgIGV2YWx1YXRlIDogImNoZWNrZWQiCiAgICAgY2FsbEZ1bmN0aW9uT24gOiAiY2hlY2tlZCIK
ICAgICBnZXRQcm9wZXJ0aWVzIDogImNoZWNrZWQiCi0gICAgc2V0UHJvcGVydHlWYWx1ZSA6ICJj
aGVja2VkIgogICAgIHJlbGVhc2VPYmplY3QgOiAiY2hlY2tlZCIKICAgICByZWxlYXNlT2JqZWN0
R3JvdXAgOiAiY2hlY2tlZCIKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm90b2NvbC9ydW50aW1lLWFnZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9j
b2wvcnVudGltZS1hZ2VudC5odG1sCmluZGV4IGM1ZWY2NzFmOTgwZTcwNjg1ZmM1Zjg2YmQwZDlj
ZDY3YjBkYmI5OWQuLjliMDYwMGMwOTYyYmMyZmQ2MWE5M2JhNmU5YjUxMzg1YmQ4M2M3ZjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQuaHRt
bApAQCAtNiw3ICs2LDYgQEAKIAogZnVuY3Rpb24gVGVzdE9iamVjdCgpCiB7Ci0gICAgdGhpcy5y
ZW1vdmVkQnlTZXRQcm9wZXJ0eVZhbHVlID0gImRvZXNuJ3Qgd29yayI7CiB9CiAKIHRlc3RPYmpl
Y3QgPSBuZXcgVGVzdE9iamVjdCgpOwpAQCAtMjEsOCArMjAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIFsiUnVudGltZUFnZW50IiwgImV2YWx1YXRlIiwgJ3Rlc3RPYmplY3QnLCAn
dGVzdCcsIGZhbHNlXSwKICAgICAgICAgICAgIFsiUnVudGltZUFnZW50IiwgImV2YWx1YXRlIiwg
J3Rlc3RPYmplY3QnLCAndGVzdCddLAogICAgICAgICAgICAgWyJSdW50aW1lQWdlbnQiLCAiY2Fs
bEZ1bmN0aW9uT24iLCByZXN1bHQub2JqZWN0SWQsICdmdW5jdGlvbigpIHsgdGhpcy5hc3NpZ25l
ZEJ5Q2FsbEZ1bmN0aW9uT24gPSAiY2FsbEZ1bmN0aW9uT24gZnVuY3Rpb24gd29ya3MgZmluZSI7
IHJldHVybiB0aGlzLmFzc2lnbmVkQnlDYWxsRnVuY3Rpb25PbjsgfSddLAotICAgICAgICAgICAg
WyJSdW50aW1lQWdlbnQiLCAic2V0UHJvcGVydHlWYWx1ZSIsIHJlc3VsdC5vYmplY3RJZCwgJ2Fz
c2lnbmVkQnlTZXRQcm9wZXJ0eVZhbHVlJywgJ3RydWUnXSwKLSAgICAgICAgICAgIFsiUnVudGlt
ZUFnZW50IiwgInNldFByb3BlcnR5VmFsdWUiLCByZXN1bHQub2JqZWN0SWQsICdyZW1vdmVkQnlT
ZXRQcm9wZXJ0eVZhbHVlJywgJyddLAogICAgICAgICAgICAgWyJSdW50aW1lQWdlbnQiLCAiZ2V0
UHJvcGVydGllcyIsIHJlc3VsdC5vYmplY3RJZCwgZmFsc2VdLAogICAgICAgICAgICAgWyJSdW50
aW1lQWdlbnQiLCAicmVsZWFzZU9iamVjdCIsIHJlc3VsdC5vYmplY3RJZF0sCiAgICAgICAgICAg
ICBbIlJ1bnRpbWVBZ2VudCIsICJyZWxlYXNlT2JqZWN0R3JvdXAiLCAndGVzdCddXTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlW
YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1l
LXNldFByb3BlcnR5VmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzODU2YjZiMjc2Zjcz
NzVjNTMyYmNkMTQwZGZkOWJjZjRiYjI2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLXNldFByb3BlcnR5VmFsdWUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogPT09PT0gSW5pdGlh
bCA9PT09PQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiB7ImZvbyI6MX0KK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxMzogeyJiYXIiOjJ9CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDExOiA9PT09PSBTZXQgcHJpbWl0aXZlID09PT09CitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTI6IHsiZm9vIjoyfQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiB7
ImJhciI6Mn0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNDogCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTE6ID09PT09IFNldCBoYW5kbGUgPT09PT0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjog
eyJmb28iOnsiYmFyIjoyfX0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogeyJiYXIiOjJ9CitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiA9PT09
PSBTZXQgdW5kZWZpbmVkID09PT09CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHt9CitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTM6IHsiYmFyIjoyfQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0
OiAKK1Rlc3RzIFdlYkluc3BlY3Rvci5SZW1vdmVPYmplY3Quc2V0UHJvcGVydHlWYWx1ZSBpbXBs
ZW1lbnRhdGlvbi4KKworCitSdW5uaW5nOiB0ZXN0U2V0VXAKKworUnVubmluZzogdGVzdFNldFBy
aW1pdGl2ZQorCitSdW5uaW5nOiB0ZXN0U2V0SGFuZGxlCisKK1J1bm5pbmc6IHRlc3RTZXRVbmRl
ZmluZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvcnVudGlt
ZS1zZXRQcm9wZXJ0eVZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9y
dW50aW1lLXNldFByb3BlcnR5VmFsdWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDI3ZGRkMTI4MDg4MzVi
ZmE1ODFmZjY4YWQxNTk4OWIwZDQ4MjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1zZXRQcm9wZXJ0eVZhbHVlLmh0bWwKQEAgLTAsMCAr
MSw5NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgb2Jq
ZWN0MSA9IHsgZm9vOiAxIH07Cit2YXIgb2JqZWN0MiA9IHsgYmFyOiAyIH07CisKK2Z1bmN0aW9u
IGR1bXBPYmplY3RzKGxhYmVsKQoreworICAgIGNvbnNvbGUubG9nKCI9PT09PSAiICsgbGFiZWwg
KyAiID09PT09Iik7CisgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkob2JqZWN0MSkpOwor
ICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KG9iamVjdDIpKTsKKyAgICBjb25zb2xlLmxv
ZygiIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBvYmoxLCBvYmoyOworCisg
ICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0
VXAobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiZHVtcE9iamVjdHMoJ0luaXRpYWwnKSIsIHN0ZXAwKTsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gc3RlcDAoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVBZ2Vu
dC5ldmFsdWF0ZSgib2JqZWN0MSIsIHN0ZXAxKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDEoZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIG9iajEgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Q
YXlsb2FkKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJv
YmplY3QxIiwgc3RlcDIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMihlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgb2JqMiA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0
KTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisK
KyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFByaW1pdGl2ZShuZXh0KQorICAgICAgICB7CisgICAg
ICAgICAgICBvYmoxLnNldFByb3BlcnR5VmFsdWUoImZvbyIsICIyIiwgc3RlcDEpOworCisgICAg
ICAgICAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZHVtcE9iamVjdHMoJ1NldCBwcmltaXRpdmUn
KSIsIG5leHQpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9u
IHRlc3RTZXRIYW5kbGUobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgb2JqMS5zZXRQcm9w
ZXJ0eVZhbHVlKCJmb28iLCAib2JqZWN0MiIsIHN0ZXAxKTsKKworICAgICAgICAgICAgZnVuY3Rp
b24gc3RlcDEoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoImR1bXBPYmplY3RzKCdTZXQgaGFuZGxlJykiLCBuZXh0KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VW5kZWZpbmVk
KG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9iajEuc2V0UHJvcGVydHlWYWx1ZSgiZm9v
IiwgInVuZGVmaW5lZCIsIHN0ZXAxKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImR1bXBPYmplY3RzKCdTZXQgdW5kZWZpbmVkJykiLCBuZXh0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0RXhjZXB0aW9uKG5leHQpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIG9iajEuc2V0UHJvcGVydHlWYWx1ZSgiZm9vIiwgInRocm93
ICdleGNlcHRpb24nIiwgc3RlcDEpOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMShlcnJv
cikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXAoZXJy
b3IpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImR1bXBP
YmplY3RzKCdTZXQgZXhjZXB0aW9uJykiLCBuZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIF0pOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHA+CitUZXN0cyBXZWJJbnNwZWN0b3IuUmVtb3ZlT2JqZWN0LnNldFByb3BlcnR5
VmFsdWUgaW1wbGVtZW50YXRpb24uCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBlODY3ODdhZjQxMjI2YWRkODBiNzIxYzU5MGJjNDA2MjkxNWFjOGJiLi42MTFjZmRkZmY2
ZjkyZWMxY2MyOTE5OGJhYTQ2NzdlOWMzNmUyYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcg
QEAKIDIwMTEtMDctMjUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBzZXRQcm9wZXJ0eVZhbHVlIHVzaW5nIGV2
YWx1YXRlIGFuZCBjYWxsRnVuY3Rpb25PbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjUxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLXNldFByb3Bl
cnR5VmFsdWUuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICguKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5o
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0UHJvcGVydHlWYWx1ZS5l
dmFsdWF0ZWRDYWxsYmFjay5zZXRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUuZXZhbHVhdGVkQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0UHJv
cGVydHlWYWx1ZS5wcm9wZXJ0eVNldENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUpOgorCisyMDExLTA3LTI1ICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVj
dG9yOiB1c2UgZGVkaWNhdGVkIHR5cGUgZm9yIG9iamVjdCBpZCBpbiB0aGUgcHJvdG9jb2wuCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTExMAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAppbmRleCA2Y2Y2NWU4
MjJmNGQ1YTU4ZWVlN2U3YjZhZDU1Y2RjYTZhYzVhNjRjLi41MmJmYWRlZGVhYTMyYzNkODJlMDk2
MTQ4ODNhODg3NWNhNDFjZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5jcHAKQEAgLTExMywxNyArMTEzLDYgQEAgTm9kZSogSW5qZWN0ZWRTY3JpcHQ6Om5v
ZGVGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKQogICAgIHJldHVybiBJbmplY3Rl
ZFNjcmlwdEhvc3Q6OnNjcmlwdFZhbHVlQXNOb2RlKHJlc3VsdFZhbHVlKTsKIH0KIAotdm9pZCBJ
bmplY3RlZFNjcmlwdDo6c2V0UHJvcGVydHlWYWx1ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25z
dCBTdHJpbmcmIGV4cHJlc3Npb24pCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9u
KG1faW5qZWN0ZWRTY3JpcHRPYmplY3QsICJzZXRQcm9wZXJ0eVZhbHVlIik7Ci0gICAgZnVuY3Rp
b24uYXBwZW5kQXJndW1lbnQob2JqZWN0SWQpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KHByb3BlcnR5TmFtZSk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZXhwcmVzc2lvbik7
Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7Ci0gICAgbWFrZUNhbGwoZnVuY3Rp
b24sICZyZXN1bHQpOwotICAgIHJlc3VsdC0+YXNTdHJpbmcoZXJyb3JTdHJpbmcpOwotfQotCiB2
b2lkIEluamVjdGVkU2NyaXB0OjpyZWxlYXNlT2JqZWN0KGNvbnN0IFN0cmluZyYgb2JqZWN0SWQp
CiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1faW5qZWN0ZWRTY3JpcHRPYmpl
Y3QsICJyZWxlYXNlT2JqZWN0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5oCmluZGV4IGM5NDQ3MTVhMzI2YTQ0ZGY5NTI2ZmJhYmI0YTljZTE1YThlYjljZjQuLjcw
YjhjNjc3YTUzNGY1OTdmYmQ2ZTNiMDE0Njk2MGVlY2ExZjY4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTY3JpcHRWYWx1
ZSYgY2FsbEZyYW1lcywgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5k
TGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3du
KTsKICAgICB2b2lkIGdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9i
amVjdElkLCBib29sIGlnbm9yZUhhc093blByb3BlcnR5LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
KiByZXN1bHQpOwogICAgIE5vZGUqIG5vZGVGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVj
dElkKTsKLSAgICB2b2lkIHNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uKTsKICAgICB2b2lkIHJlbGVhc2VPYmplY3QoY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCAzNWJkMTE1YzhiZDQ2
NzJmNzYwMTEzOTQ2ZDMzZDUxZWYwY2MxZTcyLi41ZDhkNDU1Mjc0OTRkYWIwYWYzMzRiMzgyOGYw
NTUzNjRmYmEwY2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0U291cmNlLmpzCkBAIC0xOTYsNyArMTk2LDcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0gdGhpcy5fd3JhcE9iamVj
dCh2YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHNob3cgc29tZXRoaW5nIGxpa2UgImdldHRl
ciIgKGJ1ZyAxNjczNCkuCi0gICAgICAgICAgICAgICAgcHJvcGVydHkudmFsdWUgPSBJbmplY3Rl
ZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdCgiXHUyMDE0Iik7IC8vIGVtIGRhc2gKKyAg
ICAgICAgICAgICAgICBwcm9wZXJ0eS52YWx1ZSA9IG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVP
YmplY3QoIlx1MjAxNCIpOyAvLyBlbSBkYXNoCiAgICAgICAgICAgICAgICAgcHJvcGVydHkuaXNH
ZXR0ZXIgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHJvcGVydGllcy5wdXNo
KHByb3BlcnR5KTsKQEAgLTIwNCw0MyArMjA0LDYgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBl
ID0gewogICAgICAgICByZXR1cm4gcHJvcGVydGllczsKICAgICB9LAogCi0gICAgc2V0UHJvcGVy
dHlWYWx1ZTogZnVuY3Rpb24ob2JqZWN0SWQsIHByb3BlcnR5TmFtZSwgZXhwcmVzc2lvbikKLSAg
ICB7Ci0gICAgICAgIHZhciBwYXJzZWRPYmplY3RJZCA9IHRoaXMuX3BhcnNlT2JqZWN0SWQob2Jq
ZWN0SWQpOwotICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5fb2JqZWN0Rm9ySWQocGFyc2VkT2Jq
ZWN0SWQpOwotICAgICAgICBpZiAoIXRoaXMuX2lzRGVmaW5lZChvYmplY3QpKQotICAgICAgICAg
ICAgcmV0dXJuICJPYmplY3Qgd2l0aCBnaXZlbiBpZCBub3QgZm91bmQiOwotCi0gICAgICAgIHZh
ciBleHByZXNzaW9uTGVuZ3RoID0gZXhwcmVzc2lvbi5sZW5ndGg7Ci0gICAgICAgIGlmICghZXhw
cmVzc2lvbkxlbmd0aCkgewotICAgICAgICAgICAgZGVsZXRlIG9iamVjdFtwcm9wZXJ0eU5hbWVd
OwotICAgICAgICAgICAgLy8gQXZvaWQgZXhwbGljaXQgYXNzaWdubWVudCB0byB1bmRlZmluZWQg
YXMgaXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZW4gKHNlZSBjcmJ1Zy5jb20vODg0MTQpLgotICAg
ICAgICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgaW4gb2Jq
ZWN0KQotICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJDb3VuZCBub3QgZGVsZXRlIHByb3BlcnR5
LiI7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0KLSAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgIC8vIFN1cnJvdW5kIHRoZSBleHByZXNzaW9uIGluIHBhcmVudGhlc2lz
IHNvIHRoZSByZXN1bHQgb2YgdGhlIGV2YWwgaXMgdGhlIHJlc3VsdAotICAgICAgICAgICAgLy8g
b2YgdGhlIHdob2xlIGV4cHJlc3Npb24gbm90IHRoZSBsYXN0IHBvdGVudGlhbCBzdWItZXhwcmVz
c2lvbi4KLQotICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQg
aGVyZTogZXZhbCBpcyBub3cgaGFwcGVuaW5nIGFnYWluc3QgZ2xvYmFsIG9iamVjdCwKLSAgICAg
ICAgICAgIC8vIG5vdCBjYWxsIGZyYW1lIHdoaWxlIG9uIGEgYnJlYWtwb2ludC4KLSAgICAgICAg
ICAgIC8vIFRPRE86IGJyaW5nIGV2YWx1YXRpb24gYWdhaW5zdCBjYWxsIGZyYW1lIGJhY2suCi0g
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gSW5qZWN0ZWRTY3JpcHRIb3N0LmV2YWx1YXRlKCIoIiAr
IGV4cHJlc3Npb24gKyAiKSIpOwotICAgICAgICAgICAgLy8gU3RvcmUgdGhlIHJlc3VsdCBpbiB0
aGUgcHJvcGVydHkuCi0gICAgICAgICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHJlc3VsdDsK
LSAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAg
IHZhciByZXN1bHQgPSBJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVhdGUoIlwiIiArIGV4cHJlc3Np
b24ucmVwbGFjZSgvIi9nLCAiXFxcIiIpICsgIlwiIik7Ci0gICAgICAgICAgICAgICAgb2JqZWN0
W3Byb3BlcnR5TmFtZV0gPSByZXN1bHQ7Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZS50b1N0cmluZygpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfSwKLQogICAgIHJlbGVhc2VPYmplY3Q6IGZ1bmN0aW9uKG9iamVjdElkKQogICAgIHsK
ICAgICAgICAgdmFyIHBhcnNlZE9iamVjdElkID0gdGhpcy5fcGFyc2VPYmplY3RJZChvYmplY3RJ
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24g
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYTdiY2YyMWI1
NzljMDdkYTE4ZGZlMTY3MjlmYWRlMDhjMGMzOWQ4OS4uYWJjMWEyZTk5ZWJhZTFmMzExNTRkMjNj
YzQ1YzE0M2ZkZjIxYTFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgpAQCAtMjk2LDE1ICsyOTYsNiBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJS
ZXR1cm5zIHByb3BlcnRpZXMgb2YgYSBnaXZlbiBvYmplY3QuIgogICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRQcm9wZXJ0eVZhbHVlIiwK
LSAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJlbW90ZU9iamVjdElkIiwgImRlc2NyaXB0aW9u
IjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVjdCB0byBzZXQgcHJvcGVydHkgb24uIiB9LAotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3BlcnR5TmFtZSIsICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9wZXJ0eSBuYW1lIHRvIHNldCB2YWx1ZSBmb3IuIiB9LAot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImV4cHJlc3Npb24iLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiRXhwcmVzc2lvbiB0byBldmFsdWF0ZS4iIH0KLSAgICAgICAg
ICAgICAgICBdLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJNYWtlcyBwcm9wZXJ0
eSB3aXRoIGdpdmVuIG5hbWUgZXF1YWwgdG8gdGhlIGV4cHJlc3Npb24gZXZhbHVhdGlvbiByZXN1
bHQuIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFt
ZSI6ICJyZWxlYXNlT2JqZWN0IiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJlbW90ZU9i
amVjdElkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIG9iamVjdCB0byByZWxl
YXNlLiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmNwcAppbmRleCAyOGFlYTc2OTM4YmE0MDMyYjk5N2IyYjM3YTIyNzIxODU5ZjhlOTRj
Li5iMDUyMTdmYWM1MTAyYmEyYTU3NTRiZDUyMWYyNzhhMTE0MzViZTNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcApAQCAtMTA1
LDE1ICsxMDUsNiBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyhF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZwogICAgIGluamVjdGVkU2NyaXB0
LmdldFByb3BlcnRpZXMoZXJyb3JTdHJpbmcsIG9iamVjdElkLCBpZ25vcmVIYXNPd25Qcm9wZXJ0
eSwgcmVzdWx0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnNldFByb3BlcnR5
VmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQotewot
ICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXItPmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwotICAgIGlmICghaW5qZWN0
ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICBpbmplY3RlZFNjcmlwdC5zZXRQcm9wZXJ0
eVZhbHVlKGVycm9yU3RyaW5nLCBvYmplY3RJZCwgcHJvcGVydHlOYW1lLCBleHByZXNzaW9uKTsK
LSAgICBlbHNlCi0gICAgICAgICplcnJvclN0cmluZyA9ICJObyBpbmplY3RlZCBzY3JpcHQgZm91
bmQiOwotfQotCiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cmVsZWFzZU9iamVjdChFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpCiB7CiAgICAgSW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRG
b3JPYmplY3RJZChvYmplY3RJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUnVudGltZUFnZW50LmgKaW5kZXggYWMwMWRhNGM1MjJiYjEyYWNjNDkzMzAyZTRkNDI2
NjMxMjQ4ODc0OS4uNGRlNWRlZWU1MDhjNjVmN2ZlNzVlNDYzNjU5ZTA4NGExNmE2ZGRlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaApA
QCAtNTcsNyArNTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWxsRnVuY3Rpb25PbihFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwg
Y29uc3QgUmVmUHRyPEluc3BlY3RvckFycmF5PiogY29uc3Qgb3B0aW9uYWxBcmd1bWVudHMsIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bik7CiAgICAgdm9p
ZCByZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CiAg
ICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVz
dWx0KTsKLSAgICB2b2lkIHNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uKTsKICAgICB2b2lkIHJlbGVhc2VPYmplY3RHcm91cChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVj
dFByb3BlcnRpZXNTZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwppbmRleCA1M2ZmM2ZkOTU2NGJmMGRkMzJlZWEy
MTExMDVjMmUzYjdjYmJiNzJjLi40ZmQ3Y2QxZTU1OGM3ZWQ2NDA3YzMyNjhmMmE2MDVmNjZjOTEz
YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVj
dFByb3BlcnRpZXNTZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKQEAgLTIwMiw3ICsyMDIsOSBAQCBXZWJJ
bnNwZWN0b3IuT2JqZWN0UHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICB0aGlzLnZhbHVlRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJkaW1tZWQiKTsKICAgICAgICAg
aWYgKHRoaXMucHJvcGVydHkud2FzVGhyb3duKQogICAgICAgICAgICAgdGhpcy52YWx1ZUVsZW1l
bnQuYWRkU3R5bGVDbGFzcygiZXJyb3IiKTsKLSAgICAgICAgaWYgKHRoaXMucHJvcGVydHkudmFs
dWUudHlwZSkKKyAgICAgICAgaWYgKHRoaXMucHJvcGVydHkudmFsdWUuc3VidHlwZSkKKyAgICAg
ICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZm9ybWF0dGVk
LSIgKyB0aGlzLnByb3BlcnR5LnZhbHVlLnN1YnR5cGUpOworICAgICAgICBlbHNlIGlmICh0aGlz
LnByb3BlcnR5LnZhbHVlLnR5cGUpCiAgICAgICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJjb25zb2xlLWZvcm1hdHRlZC0iICsgdGhpcy5wcm9wZXJ0eS52YWx1ZS50eXBl
KTsKICAgICAgICAgaWYgKHRoaXMucHJvcGVydHkudmFsdWUuc3VidHlwZSA9PT0gIm5vZGUiKQog
ICAgICAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1l
bnUiLCB0aGlzLl9jb250ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwgZmFsc2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3Qu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwpp
bmRleCA0ZjljOTJmOWU2MWE1ZjhkOWQ3Zjg1MGM3ZjE0NjBiZmQxMzQ3ZDg5Li45NTNmMzY5M2Jj
YThjNTg0ZjM2OTkxZjk2OWM3ZjRlZDVlNzViZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtMzEsMTAgKzMxLDEwIEBA
CiBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5cGUsIHN1
YnR5cGUsIHZhbHVlLCBkZXNjcmlwdGlvbikKIHsKICAgICB0aGlzLl90eXBlID0gdHlwZTsKKyAg
ICB0aGlzLl9zdWJ0eXBlID0gc3VidHlwZTsKICAgICBpZiAob2JqZWN0SWQpIHsKICAgICAgICAg
Ly8gaGFuZGxlCiAgICAgICAgIHRoaXMuX29iamVjdElkID0gb2JqZWN0SWQ7Ci0gICAgICAgIHRo
aXMuX3N1YnR5cGUgPSBzdWJ0eXBlOwogICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IGRlc2Ny
aXB0aW9uOwogICAgICAgICB0aGlzLl9oYXNDaGlsZHJlbiA9IHRydWU7CiAgICAgfSBlbHNlIHsK
QEAgLTE0NiwxMCArMTQ2LDM3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBl
ID0gewogICAgIHNldFByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBjYWxsYmFj
aykKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fb2JqZWN0SWQpIHsKLSAgICAgICAgICAgIGNh
bGxiYWNrKCJDYW4ndCBnZXQgYSBwcm9wZXJ0eSBvZiBub24tb2JqZWN0LiIpOworICAgICAgICAg
ICAgY2FsbGJhY2soIkNhbid0IHNldCBhIHByb3BlcnR5IG9mIG5vbi1vYmplY3QuIik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgUnVudGltZUFnZW50LnNldFByb3Bl
cnR5VmFsdWUodGhpcy5fb2JqZWN0SWQsIG5hbWUsIHZhbHVlLCBjYWxsYmFjayk7CisKKyAgICAg
ICAgUnVudGltZUFnZW50LmV2YWx1YXRlKHZhbHVlLCB1bmRlZmluZWQsIGZhbHNlLCB0cnVlLCBl
dmFsdWF0ZWRDYWxsYmFjay5iaW5kKHRoaXMpKTsKKworICAgICAgICBmdW5jdGlvbiBldmFsdWF0
ZWRDYWxsYmFjayhlcnJvciwgcmVzdWx0LCB3YXNUaHJvd24pCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmIChlcnJvciB8fCB3YXNUaHJvd24pIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhl
cnJvciB8fCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZnVuY3Rpb24gc2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUsIHBy
b3BlcnR5VmFsdWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhpc1twcm9wZXJ0
eU5hbWVdID0gcHJvcGVydHlWYWx1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGVs
ZXRlIHJlc3VsdC5kZXNjcmlwdGlvbjsgLy8gT3B0aW1pemUgb24gdHJhZmZpYy4KKyAgICAgICAg
ICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJZCwgc2V0UHJvcGVy
dHlWYWx1ZS50b1N0cmluZygpLCBbeyB2YWx1ZTpuYW1lIH0sIHJlc3VsdF0sIHByb3BlcnR5U2V0
Q2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgICAgICBpZiAocmVzdWx0Ll9vYmplY3RJZCkK
KyAgICAgICAgICAgICAgICBSdW50aW1lQWdlbnQucmVsZWFzZU9iamVjdChyZXN1bHQuX29iamVj
dElkKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHByb3BlcnR5U2V0Q2FsbGJhY2so
ZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKSB7CisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgd2Fz
VGhyb3duKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IgfHwgcmVzdWx0KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFj
aygpOworICAgICAgICB9CiAgICAgfSwKIAogICAgIHB1c2hOb2RlVG9Gcm9udGVuZDogZnVuY3Rp
b24oY2FsbGJhY2spCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101881</attachid>
            <date>2011-07-25 09:31:29 -0700</date>
            <delta_ts>2011-07-25 23:27:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65112-20110725203127.patch</filename>
            <type>text/plain</type>
            <size>20534</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE2NjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOWY2ZDNiMmY3ZTljNTA5NTUyMjBk
OWUyOGZmMzVjNWQxNjlhYmJmLi5lMzc1ZjIxN2Y1ODYyYzUwMGY0YWFiMjgzNjkwMjllOWQ5NTI3
NzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTEtMDctMjUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBz
ZXRQcm9wZXJ0eVZhbHVlIHVzaW5nIGV2YWx1YXRlIGFuZCBjYWxsRnVuY3Rpb25PbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUxMTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9ydW50
aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS5odG1sOiBBZGRl
ZC4KKworMjAxMS0wNy0yNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIGRlZGljYXRlZCB0eXBlIGZvciBvYmplY3QgaWQg
aW4gdGhlIHByb3RvY29sLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUxMTAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3Rv
Y29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b3RvY29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDAwNWVlNzI5N2NlMmVkZjU5
ODE1ZDE2NTgzMzM2ZWRiYzQ3MDE1NTYuLjhlNzZmMjQ5OThjNGNiN2ZhMjJlZmNmYjJiODQ4NDAw
Y2E1Y2NjMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50
aW1lLWFnZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9j
b2wvcnVudGltZS1hZ2VudC1leHBlY3RlZC50eHQKQEAgLTc4LDQ4ICs3OCw2IEBAIHJlc3BvbnNl
OgogfQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUnVudGltZUFnZW50LnNldFByb3BlcnR5VmFsdWUoPHN0cmluZz4sImFzc2ln
bmVkQnlTZXRQcm9wZXJ0eVZhbHVlIiwidHJ1ZSIpCi0KLXJlcXVlc3Q6Ci17Ci0gICAgbWV0aG9k
IDogIlJ1bnRpbWUuc2V0UHJvcGVydHlWYWx1ZSIKLSAgICBwYXJhbXMgOiB7Ci0gICAgICAgIG9i
amVjdElkIDogPHN0cmluZz4KLSAgICAgICAgcHJvcGVydHlOYW1lIDogImFzc2lnbmVkQnlTZXRQ
cm9wZXJ0eVZhbHVlIgotICAgICAgICBleHByZXNzaW9uIDogInRydWUiCi0gICAgfQotICAgIGlk
IDogPG51bWJlcj4KLX0KLQotcmVzcG9uc2U6Ci17Ci0gICAgcmVzdWx0IDogewotICAgIH0KLSAg
ICBpZCA6IDxudW1iZXI+Ci19Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SdW50aW1lQWdlbnQuc2V0UHJvcGVydHlWYWx1ZSg8
c3RyaW5nPiwicmVtb3ZlZEJ5U2V0UHJvcGVydHlWYWx1ZSIsIiIpCi0KLXJlcXVlc3Q6Ci17Ci0g
ICAgbWV0aG9kIDogIlJ1bnRpbWUuc2V0UHJvcGVydHlWYWx1ZSIKLSAgICBwYXJhbXMgOiB7Ci0g
ICAgICAgIG9iamVjdElkIDogPHN0cmluZz4KLSAgICAgICAgcHJvcGVydHlOYW1lIDogInJlbW92
ZWRCeVNldFByb3BlcnR5VmFsdWUiCi0gICAgICAgIGV4cHJlc3Npb24gOiAiIgotICAgIH0KLSAg
ICBpZCA6IDxudW1iZXI+Ci19Ci0KLXJlc3BvbnNlOgotewotICAgIHJlc3VsdCA6IHsKLSAgICB9
Ci0gICAgaWQgOiA8bnVtYmVyPgotfQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogUnVudGltZUFnZW50LmdldFByb3BlcnRpZXMo
PHN0cmluZz4sZmFsc2UpCiAKIHJlcXVlc3Q6CkBAIC0xNDQsMTMgKzEwMiw2IEBAIHJlc3BvbnNl
OgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBuYW1lIDogImFzc2lnbmVkQnlTZXRQcm9wZXJ0eVZhbHVlIgotICAgICAgICAg
ICAgICAgIHZhbHVlIDogewotICAgICAgICAgICAgICAgICAgICB0eXBlIDogImJvb2xlYW4iCi0g
ICAgICAgICAgICAgICAgICAgIHZhbHVlIDogdHJ1ZQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBuYW1lIDogIl9fcHJvdG9f
XyIKICAgICAgICAgICAgICAgICB2YWx1ZSA6IHsKICAgICAgICAgICAgICAgICAgICAgdHlwZSA6
ICJvYmplY3QiCkBAIC0yMDgsNyArMTU5LDYgQEAgQ292ZXJhZ2UgZm9yIFJ1bnRpbWVBZ2VudAog
ICAgIGV2YWx1YXRlIDogImNoZWNrZWQiCiAgICAgY2FsbEZ1bmN0aW9uT24gOiAiY2hlY2tlZCIK
ICAgICBnZXRQcm9wZXJ0aWVzIDogImNoZWNrZWQiCi0gICAgc2V0UHJvcGVydHlWYWx1ZSA6ICJj
aGVja2VkIgogICAgIHJlbGVhc2VPYmplY3QgOiAiY2hlY2tlZCIKICAgICByZWxlYXNlT2JqZWN0
R3JvdXAgOiAiY2hlY2tlZCIKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9w
cm90b2NvbC9ydW50aW1lLWFnZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9j
b2wvcnVudGltZS1hZ2VudC5odG1sCmluZGV4IGM1ZWY2NzFmOTgwZTcwNjg1ZmM1Zjg2YmQwZDlj
ZDY3YjBkYmI5OWQuLjliMDYwMGMwOTYyYmMyZmQ2MWE5M2JhNmU5YjUxMzg1YmQ4M2M3ZjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQuaHRt
bApAQCAtNiw3ICs2LDYgQEAKIAogZnVuY3Rpb24gVGVzdE9iamVjdCgpCiB7Ci0gICAgdGhpcy5y
ZW1vdmVkQnlTZXRQcm9wZXJ0eVZhbHVlID0gImRvZXNuJ3Qgd29yayI7CiB9CiAKIHRlc3RPYmpl
Y3QgPSBuZXcgVGVzdE9iamVjdCgpOwpAQCAtMjEsOCArMjAsNiBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIFsiUnVudGltZUFnZW50IiwgImV2YWx1YXRlIiwgJ3Rlc3RPYmplY3QnLCAn
dGVzdCcsIGZhbHNlXSwKICAgICAgICAgICAgIFsiUnVudGltZUFnZW50IiwgImV2YWx1YXRlIiwg
J3Rlc3RPYmplY3QnLCAndGVzdCddLAogICAgICAgICAgICAgWyJSdW50aW1lQWdlbnQiLCAiY2Fs
bEZ1bmN0aW9uT24iLCByZXN1bHQub2JqZWN0SWQsICdmdW5jdGlvbigpIHsgdGhpcy5hc3NpZ25l
ZEJ5Q2FsbEZ1bmN0aW9uT24gPSAiY2FsbEZ1bmN0aW9uT24gZnVuY3Rpb24gd29ya3MgZmluZSI7
IHJldHVybiB0aGlzLmFzc2lnbmVkQnlDYWxsRnVuY3Rpb25PbjsgfSddLAotICAgICAgICAgICAg
WyJSdW50aW1lQWdlbnQiLCAic2V0UHJvcGVydHlWYWx1ZSIsIHJlc3VsdC5vYmplY3RJZCwgJ2Fz
c2lnbmVkQnlTZXRQcm9wZXJ0eVZhbHVlJywgJ3RydWUnXSwKLSAgICAgICAgICAgIFsiUnVudGlt
ZUFnZW50IiwgInNldFByb3BlcnR5VmFsdWUiLCByZXN1bHQub2JqZWN0SWQsICdyZW1vdmVkQnlT
ZXRQcm9wZXJ0eVZhbHVlJywgJyddLAogICAgICAgICAgICAgWyJSdW50aW1lQWdlbnQiLCAiZ2V0
UHJvcGVydGllcyIsIHJlc3VsdC5vYmplY3RJZCwgZmFsc2VdLAogICAgICAgICAgICAgWyJSdW50
aW1lQWdlbnQiLCAicmVsZWFzZU9iamVjdCIsIHJlc3VsdC5vYmplY3RJZF0sCiAgICAgICAgICAg
ICBbIlJ1bnRpbWVBZ2VudCIsICJyZWxlYXNlT2JqZWN0R3JvdXAiLCAndGVzdCddXTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlW
YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1l
LXNldFByb3BlcnR5VmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDA0ZjMwZTcyZTAw
Y2ZmOTdlYzNmZTYwMzk5OTJmYTM3OGMyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcnVudGltZS9ydW50aW1lLXNldFByb3BlcnR5VmFsdWUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogPT09PT0gSW5pdGlh
bCA9PT09PQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiB7ImZvbyI6MX0KK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxMzogeyJiYXIiOjJ9CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDExOiA9PT09PSBTZXQgcHJpbWl0aXZlID09PT09CitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTI6IHsiZm9vIjoyfQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiB7
ImJhciI6Mn0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNDogCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTE6ID09PT09IFNldCBoYW5kbGUgPT09PT0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjog
eyJmb28iOnsiYmFyIjoyfX0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMzogeyJiYXIiOjJ9CitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTQ6IAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiA9PT09
PSBTZXQgdW5kZWZpbmVkID09PT09CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHt9CitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTM6IHsiYmFyIjoyfQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0
OiAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogPT09PT0gU2V0IGV4Y2VwdGlvbiA9PT09PQor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiB7fQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiB7
ImJhciI6Mn0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNDogCitUZXN0cyBXZWJJbnNwZWN0b3Iu
UmVtb3ZlT2JqZWN0LnNldFByb3BlcnR5VmFsdWUgaW1wbGVtZW50YXRpb24uCisKKworUnVubmlu
ZzogdGVzdFNldFVwCisKK1J1bm5pbmc6IHRlc3RTZXRQcmltaXRpdmUKKworUnVubmluZzogdGVz
dFNldEhhbmRsZQorCitSdW5uaW5nOiB0ZXN0U2V0VW5kZWZpbmVkCisKK1J1bm5pbmc6IHRlc3RT
ZXRFeGNlcHRpb24KK3sKKyAgICB0eXBlIDogInN0cmluZyIKKyAgICB2YWx1ZSA6ICJleGNlcHRp
b24iCit9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL3J1bnRp
bWUtc2V0UHJvcGVydHlWYWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUv
cnVudGltZS1zZXRQcm9wZXJ0eVZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAyN2RkZDEyODA4ODM1
YmZhNTgxZmY2OGFkMTU5ODliMGQ0ODI0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9ydW50aW1lL3J1bnRpbWUtc2V0UHJvcGVydHlWYWx1ZS5odG1sCkBAIC0wLDAg
KzEsOTYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordmFyIG9i
amVjdDEgPSB7IGZvbzogMSB9OwordmFyIG9iamVjdDIgPSB7IGJhcjogMiB9OworCitmdW5jdGlv
biBkdW1wT2JqZWN0cyhsYWJlbCkKK3sKKyAgICBjb25zb2xlLmxvZygiPT09PT0gIiArIGxhYmVs
ICsgIiA9PT09PSIpOworICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KG9iamVjdDEpKTsK
KyAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShvYmplY3QyKSk7CisgICAgY29uc29sZS5s
b2coIiIpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgb2JqMSwgb2JqMjsKKwor
ICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNl
dFVwKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoImR1bXBPYmplY3RzKCdJbml0aWFsJykiLCBzdGVwMCk7CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIHN0ZXAwKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBSdW50aW1lQWdl
bnQuZXZhbHVhdGUoIm9iamVjdDEiLCBzdGVwMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0ZXAxKGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBvYmoxID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9t
UGF5bG9hZChyZXN1bHQpOworICAgICAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgi
b2JqZWN0MSIsIHN0ZXAyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
c3RlcDIoZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIG9iajIgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3Vs
dCk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAor
CisgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRQcmltaXRpdmUobmV4dCkKKyAgICAgICAgeworICAg
ICAgICAgICAgb2JqMS5zZXRQcm9wZXJ0eVZhbHVlKCJmb28iLCAiMiIsIHN0ZXAxKTsKKworICAg
ICAgICAgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImR1bXBPYmplY3RzKCdTZXQgcHJpbWl0aXZl
JykiLCBuZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlv
biB0ZXN0U2V0SGFuZGxlKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9iajEuc2V0UHJv
cGVydHlWYWx1ZSgiZm9vIiwgIm9iamVjdDIiLCBzdGVwMSk7CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHN0ZXAxKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJkdW1wT2JqZWN0cygnU2V0IGhhbmRsZScpIiwgbmV4dCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFVuZGVmaW5l
ZChuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBvYmoxLnNldFByb3BlcnR5VmFsdWUoImZv
byIsICJ1bmRlZmluZWQiLCBzdGVwMSk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAxKCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJkdW1wT2JqZWN0cygnU2V0IHVuZGVmaW5lZCcpIiwgbmV4dCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldEV4Y2VwdGlvbihuZXh0KQor
ICAgICAgICB7CisgICAgICAgICAgICBvYmoxLnNldFByb3BlcnR5VmFsdWUoImZvbyIsICJ0aHJv
dyAnZXhjZXB0aW9uJyIsIHN0ZXAxKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDEoZXJy
b3IpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wKGVy
cm9yKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkdW1w
T2JqZWN0cygnU2V0IGV4Y2VwdGlvbicpIiwgbmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICBdKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwPgorVGVzdHMgV2ViSW5zcGVjdG9yLlJlbW92ZU9iamVjdC5zZXRQcm9wZXJ0
eVZhbHVlIGltcGxlbWVudGF0aW9uLgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZTg2Nzg3YWY0MTIyNmFkZDgwYjcyMWM1OTBiYzQwNjI5MTVhYzhiYi4uNjExY2ZkZGZm
NmY5MmVjMWNjMjkxOThiYWE0Njc3ZTljMzZlMmIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3
IEBACiAyMDExLTA3LTI1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXBsZW1lbnQgc2V0UHJvcGVydHlWYWx1ZSB1c2luZyBl
dmFsdWF0ZSBhbmQgY2FsbEZ1bmN0aW9uT24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY1MTEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3J1bnRpbWUvcnVudGltZS1zZXRQcm9w
ZXJ0eVZhbHVlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6
CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoLik6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFByb3BlcnR5VmFsdWUu
ZXZhbHVhdGVkQ2FsbGJhY2suc2V0UHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZS5zZXRQcm9wZXJ0eVZhbHVlLmV2YWx1YXRlZENhbGxi
YWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnNldFBy
b3BlcnR5VmFsdWUucHJvcGVydHlTZXRDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0LnByb3RvdHlwZS5zZXRQcm9wZXJ0eVZhbHVlKToKKworMjAxMS0wNy0yNSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogdXNlIGRlZGljYXRlZCB0eXBlIGZvciBvYmplY3QgaWQgaW4gdGhlIHByb3RvY29sLgog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUxMTAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXggNmNmNjVl
ODIyZjRkNWE1OGVlZTdlN2I2YWQ1NWNkY2E2YWM1YTY0Yy4uNTJiZmFkZWRlYWEzMmMzZDgyZTA5
NjE0ODgzYTg4NzVjYTQxY2RlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuY3BwCkBAIC0xMTMsMTcgKzExMyw2IEBAIE5vZGUqIEluamVjdGVkU2NyaXB0Ojpu
b2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKICAgICByZXR1cm4gSW5qZWN0
ZWRTY3JpcHRIb3N0OjpzY3JpcHRWYWx1ZUFzTm9kZShyZXN1bHRWYWx1ZSk7CiB9CiAKLXZvaWQg
SW5qZWN0ZWRTY3JpcHQ6OnNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29u
c3QgU3RyaW5nJiBleHByZXNzaW9uKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlv
bihtX2luamVjdGVkU2NyaXB0T2JqZWN0LCAic2V0UHJvcGVydHlWYWx1ZSIpOwotICAgIGZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KG9iamVjdElkKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVu
dChwcm9wZXJ0eU5hbWUpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGV4cHJlc3Npb24p
OwotICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcmVzdWx0OwotICAgIG1ha2VDYWxsKGZ1bmN0
aW9uLCAmcmVzdWx0KTsKLSAgICByZXN1bHQtPmFzU3RyaW5nKGVycm9yU3RyaW5nKTsKLX0KLQog
dm9pZCBJbmplY3RlZFNjcmlwdDo6cmVsZWFzZU9iamVjdChjb25zdCBTdHJpbmcmIG9iamVjdElk
KQogewogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX2luamVjdGVkU2NyaXB0T2Jq
ZWN0LCAicmVsZWFzZU9iamVjdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHQuaAppbmRleCBjOTQ0NzE1YTMyNmE0NGRmOTUyNmZiYWJiNGE5Y2UxNWE4ZWI5Y2Y0Li43
MGI4YzY3N2E1MzRmNTk3ZmJkNmUzYjAxNDY5NjBlZWNhMWY2ODE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtNjAsNyArNjAsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU2NyaXB0VmFs
dWUmIGNhbGxGcmFtZXMsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYg
ZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9vbCBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93
bik7CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBv
YmplY3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgUmVmUHRyPEluc3BlY3RvckFycmF5
PiogcmVzdWx0KTsKICAgICBOb2RlKiBub2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmpl
Y3RJZCk7Ci0gICAgdm9pZCBzZXRQcm9wZXJ0eVZhbHVlKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYg
ZXhwcmVzc2lvbik7CiAgICAgdm9pZCByZWxlYXNlT2JqZWN0KGNvbnN0IFN0cmluZyYgb2JqZWN0
SWQpOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggMzViZDExNWM4YmQ0
NjcyZjc2MDExMzk0NmQzM2Q1MWVmMGNjMWU3Mi4uNWQ4ZDQ1NTI3NDk0ZGFiMGFmMzM0YjM4Mjhm
MDU1MzY0ZmJhMGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qcwpAQCAtMTk2LDcgKzE5Niw3IEBAIEluamVjdGVkU2NyaXB0LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICBwcm9wZXJ0eS52YWx1ZSA9IHRoaXMuX3dyYXBPYmpl
Y3QodmFsdWUsIG9iamVjdEdyb3VwTmFtZSk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBzaG93IHNvbWV0aGluZyBsaWtlICJnZXR0
ZXIiIChidWcgMTY3MzQpLgotICAgICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0gSW5qZWN0
ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21PYmplY3QoIlx1MjAxNCIpOyAvLyBlbSBkYXNoCisg
ICAgICAgICAgICAgICAgcHJvcGVydHkudmFsdWUgPSBuZXcgSW5qZWN0ZWRTY3JpcHQuUmVtb3Rl
T2JqZWN0KCJcdTIwMTQiKTsgLy8gZW0gZGFzaAogICAgICAgICAgICAgICAgIHByb3BlcnR5Lmlz
R2V0dGVyID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHByb3BlcnRpZXMucHVz
aChwcm9wZXJ0eSk7CkBAIC0yMDQsNDMgKzIwNCw2IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7CiAgICAgfSwKIAotICAgIHNldFByb3Bl
cnR5VmFsdWU6IGZ1bmN0aW9uKG9iamVjdElkLCBwcm9wZXJ0eU5hbWUsIGV4cHJlc3Npb24pCi0g
ICAgewotICAgICAgICB2YXIgcGFyc2VkT2JqZWN0SWQgPSB0aGlzLl9wYXJzZU9iamVjdElkKG9i
amVjdElkKTsKLSAgICAgICAgdmFyIG9iamVjdCA9IHRoaXMuX29iamVjdEZvcklkKHBhcnNlZE9i
amVjdElkKTsKLSAgICAgICAgaWYgKCF0aGlzLl9pc0RlZmluZWQob2JqZWN0KSkKLSAgICAgICAg
ICAgIHJldHVybiAiT2JqZWN0IHdpdGggZ2l2ZW4gaWQgbm90IGZvdW5kIjsKLQotICAgICAgICB2
YXIgZXhwcmVzc2lvbkxlbmd0aCA9IGV4cHJlc3Npb24ubGVuZ3RoOwotICAgICAgICBpZiAoIWV4
cHJlc3Npb25MZW5ndGgpIHsKLSAgICAgICAgICAgIGRlbGV0ZSBvYmplY3RbcHJvcGVydHlOYW1l
XTsKLSAgICAgICAgICAgIC8vIEF2b2lkIGV4cGxpY2l0IGFzc2lnbm1lbnQgdG8gdW5kZWZpbmVk
IGFzIGl0cyB2YWx1ZSBjYW4gYmUgb3ZlcnJpZGVuIChzZWUgY3JidWcuY29tLzg4NDE0KS4KLSAg
ICAgICAgICAgIHZhciByZXN1bHQ7Ci0gICAgICAgICAgICBpZiAocHJvcGVydHlOYW1lIGluIG9i
amVjdCkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSAiQ291bmQgbm90IGRlbGV0ZSBwcm9wZXJ0
eS4iOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotCi0gICAgICAgIHRy
eSB7Ci0gICAgICAgICAgICAvLyBTdXJyb3VuZCB0aGUgZXhwcmVzc2lvbiBpbiBwYXJlbnRoZXNp
cyBzbyB0aGUgcmVzdWx0IG9mIHRoZSBldmFsIGlzIHRoZSByZXN1bHQKLSAgICAgICAgICAgIC8v
IG9mIHRoZSB3aG9sZSBleHByZXNzaW9uIG5vdCB0aGUgbGFzdCBwb3RlbnRpYWwgc3ViLWV4cHJl
c3Npb24uCi0KLSAgICAgICAgICAgIC8vIFRoZXJlIGlzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2Vk
IGhlcmU6IGV2YWwgaXMgbm93IGhhcHBlbmluZyBhZ2FpbnN0IGdsb2JhbCBvYmplY3QsCi0gICAg
ICAgICAgICAvLyBub3QgY2FsbCBmcmFtZSB3aGlsZSBvbiBhIGJyZWFrcG9pbnQuCi0gICAgICAg
ICAgICAvLyBUT0RPOiBicmluZyBldmFsdWF0aW9uIGFnYWluc3QgY2FsbCBmcmFtZSBiYWNrLgot
ICAgICAgICAgICAgdmFyIHJlc3VsdCA9IEluamVjdGVkU2NyaXB0SG9zdC5ldmFsdWF0ZSgiKCIg
KyBleHByZXNzaW9uICsgIikiKTsKLSAgICAgICAgICAgIC8vIFN0b3JlIHRoZSByZXN1bHQgaW4g
dGhlIHByb3BlcnR5LgotICAgICAgICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSByZXN1bHQ7
Ci0gICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICB2YXIgcmVzdWx0ID0gSW5qZWN0ZWRTY3JpcHRIb3N0LmV2YWx1YXRlKCJcIiIgKyBleHByZXNz
aW9uLnJlcGxhY2UoLyIvZywgIlxcXCIiKSArICJcIiIpOwotICAgICAgICAgICAgICAgIG9iamVj
dFtwcm9wZXJ0eU5hbWVdID0gcmVzdWx0OwotICAgICAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIGUudG9TdHJpbmcoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH0sCi0KICAgICByZWxlYXNlT2JqZWN0OiBmdW5jdGlvbihvYmplY3RJZCkKICAgICB7
CiAgICAgICAgIHZhciBwYXJzZWRPYmplY3RJZCA9IHRoaXMuX3BhcnNlT2JqZWN0SWQob2JqZWN0
SWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGE3YmNmMjFi
NTc5YzA3ZGExOGRmZTE2NzI5ZmFkZTA4YzBjMzlkODkuLmFiYzFhMmU5OWViYWUxZjMxMTU0ZDIz
Y2M0NWMxNDNmZGYyMWExZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KQEAgLTI5NiwxNSArMjk2LDYgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
UmV0dXJucyBwcm9wZXJ0aWVzIG9mIGEgZ2l2ZW4gb2JqZWN0LiIKICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAic2V0UHJvcGVydHlWYWx1ZSIs
Ci0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib2JqZWN0SWQiLCAiJHJlZiI6ICJSZW1vdGVPYmplY3RJZCIsICJkZXNjcmlwdGlv
biI6ICJJZGVudGlmaWVyIG9mIHRoZSBvYmplY3QgdG8gc2V0IHByb3BlcnR5IG9uLiIgfSwKLSAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9wZXJ0eU5hbWUiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiUHJvcGVydHkgbmFtZSB0byBzZXQgdmFsdWUgZm9yLiIgfSwK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJleHByZXNzaW9uIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIkV4cHJlc3Npb24gdG8gZXZhbHVhdGUuIiB9Ci0gICAgICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTWFrZXMgcHJvcGVy
dHkgd2l0aCBnaXZlbiBuYW1lIGVxdWFsIHRvIHRoZSBleHByZXNzaW9uIGV2YWx1YXRpb24gcmVz
dWx0LiIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5h
bWUiOiAicmVsZWFzZU9iamVjdCIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0SWQiLCAiJHJlZiI6ICJSZW1vdGVP
YmplY3RJZCIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBvYmplY3QgdG8gcmVs
ZWFzZS4iIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRp
bWVBZ2VudC5jcHAKaW5kZXggMjhhZWE3NjkzOGJhNDAzMmI5OTdiMmIzN2EyMjcyMTg1OWY4ZTk0
Yy4uYjA1MjE3ZmFjNTEwMmJhMmE1NzU0YmQ1MjFmMjc4YTExNDM1YmUzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTEw
NSwxNSArMTA1LDYgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmdldFByb3BlcnRpZXMo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcKICAgICBpbmplY3RlZFNjcmlw
dC5nZXRQcm9wZXJ0aWVzKGVycm9yU3RyaW5nLCBvYmplY3RJZCwgaWdub3JlSGFzT3duUHJvcGVy
dHksIHJlc3VsdCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpzZXRQcm9wZXJ0
eVZhbHVlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwg
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKLXsK
LSAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVjdElkKG9iamVjdElkKTsKLSAgICBpZiAoIWluamVj
dGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkKLSAgICAgICAgaW5qZWN0ZWRTY3JpcHQuc2V0UHJvcGVy
dHlWYWx1ZShlcnJvclN0cmluZywgb2JqZWN0SWQsIHByb3BlcnR5TmFtZSwgZXhwcmVzc2lvbik7
Ci0gICAgZWxzZQotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gaW5qZWN0ZWQgc2NyaXB0IGZv
dW5kIjsKLX0KLQogdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnJlbGVhc2VPYmplY3QoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkKQogewogICAgIEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0
Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IGFjMDFkYTRjNTIyYmIxMmFjYzQ5MzMwMmU0ZDQy
NjYzMTI0ODg3NDkuLjRkZTVkZWVlNTA4YzY1ZjdmZTc1ZTQ2MzY1OWUwODRhMTZhNmRkZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgK
QEAgLTU3LDcgKzU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgY2FsbEZ1bmN0aW9uT24oRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24s
IGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNvbnN0IG9wdGlvbmFsQXJndW1lbnRzLCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0LCBib29sKiB3YXNUaHJvd24pOwogICAgIHZv
aWQgcmVsZWFzZU9iamVjdChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwog
ICAgIHZvaWQgZ2V0UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0
SWQsIGJvb2wgaWdub3JlSGFzT3duUHJvcGVydHksIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJl
c3VsdCk7Ci0gICAgdm9pZCBzZXRQcm9wZXJ0eVZhbHVlKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYg
ZXhwcmVzc2lvbik7CiAgICAgdm9pZCByZWxlYXNlT2JqZWN0R3JvdXAoRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmpl
Y3RQcm9wZXJ0aWVzU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKaW5kZXggNTNmZjNmZDk1NjRiZjBkZDMyZWVh
MjExMTA1YzJlM2I3Y2JiYjcyYy4uNGZkN2NkMWU1NThjN2VkNjQwN2MzMjY4ZjJhNjA1ZjY2Yzkx
M2M5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmpl
Y3RQcm9wZXJ0aWVzU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCkBAIC0yMDIsNyArMjAyLDkgQEAgV2Vi
SW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdGhpcy52YWx1ZUVsZW1lbnQuYWRkU3R5bGVDbGFzcygiZGltbWVkIik7CiAgICAgICAg
IGlmICh0aGlzLnByb3BlcnR5Lndhc1Rocm93bikKICAgICAgICAgICAgIHRoaXMudmFsdWVFbGVt
ZW50LmFkZFN0eWxlQ2xhc3MoImVycm9yIik7Ci0gICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnZh
bHVlLnR5cGUpCisgICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnZhbHVlLnN1YnR5cGUpCisgICAg
ICAgICAgICB0aGlzLnZhbHVlRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLWZvcm1hdHRl
ZC0iICsgdGhpcy5wcm9wZXJ0eS52YWx1ZS5zdWJ0eXBlKTsKKyAgICAgICAgZWxzZSBpZiAodGhp
cy5wcm9wZXJ0eS52YWx1ZS50eXBlKQogICAgICAgICAgICAgdGhpcy52YWx1ZUVsZW1lbnQuYWRk
U3R5bGVDbGFzcygiY29uc29sZS1mb3JtYXR0ZWQtIiArIHRoaXMucHJvcGVydHkudmFsdWUudHlw
ZSk7CiAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5LnZhbHVlLnN1YnR5cGUgPT09ICJub2RlIikK
ICAgICAgICAgICAgIHRoaXMudmFsdWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRt
ZW51IiwgdGhpcy5fY29udGV4dE1lbnVFdmVudEZpcmVkLmJpbmQodGhpcyksIGZhbHNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMK
aW5kZXggNGY5YzkyZjllNjFhNWY4ZDlkN2Y4NTBjN2YxNDYwYmZkMTM0N2Q4OS4uOTUzZjM2OTNi
Y2E4YzU4NGYzNjk5MWY5NjljN2Y0ZWQ1ZTc1YmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTMxLDEwICszMSwxMCBA
QAogV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdElkLCB0eXBlLCBz
dWJ0eXBlLCB2YWx1ZSwgZGVzY3JpcHRpb24pCiB7CiAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Cisg
ICAgdGhpcy5fc3VidHlwZSA9IHN1YnR5cGU7CiAgICAgaWYgKG9iamVjdElkKSB7CiAgICAgICAg
IC8vIGhhbmRsZQogICAgICAgICB0aGlzLl9vYmplY3RJZCA9IG9iamVjdElkOwotICAgICAgICB0
aGlzLl9zdWJ0eXBlID0gc3VidHlwZTsKICAgICAgICAgdGhpcy5fZGVzY3JpcHRpb24gPSBkZXNj
cmlwdGlvbjsKICAgICAgICAgdGhpcy5faGFzQ2hpbGRyZW4gPSB0cnVlOwogICAgIH0gZWxzZSB7
CkBAIC0xNDYsMTAgKzE0NiwzNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlw
ZSA9IHsKICAgICBzZXRQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSwgY2FsbGJh
Y2spCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX29iamVjdElkKSB7Ci0gICAgICAgICAgICBj
YWxsYmFjaygiQ2FuJ3QgZ2V0IGEgcHJvcGVydHkgb2Ygbm9uLW9iamVjdC4iKTsKKyAgICAgICAg
ICAgIGNhbGxiYWNrKCJDYW4ndCBzZXQgYSBwcm9wZXJ0eSBvZiBub24tb2JqZWN0LiIpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIFJ1bnRpbWVBZ2VudC5zZXRQcm9w
ZXJ0eVZhbHVlKHRoaXMuX29iamVjdElkLCBuYW1lLCB2YWx1ZSwgY2FsbGJhY2spOworCisgICAg
ICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSh2YWx1ZSwgdW5kZWZpbmVkLCBmYWxzZSwgdHJ1ZSwg
ZXZhbHVhdGVkQ2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgZnVuY3Rpb24gZXZhbHVh
dGVkQ2FsbGJhY2soZXJyb3IsIHJlc3VsdCwgd2FzVGhyb3duKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoZXJyb3IgfHwgd2FzVGhyb3duKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2so
ZXJyb3IgfHwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNldFByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lLCBw
cm9wZXJ0eVZhbHVlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRoaXNbcHJvcGVy
dHlOYW1lXSA9IHByb3BlcnR5VmFsdWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRl
bGV0ZSByZXN1bHQuZGVzY3JpcHRpb247IC8vIE9wdGltaXplIG9uIHRyYWZmaWMuCisgICAgICAg
ICAgICBSdW50aW1lQWdlbnQuY2FsbEZ1bmN0aW9uT24odGhpcy5fb2JqZWN0SWQsIHNldFByb3Bl
cnR5VmFsdWUudG9TdHJpbmcoKSwgW3sgdmFsdWU6bmFtZSB9LCByZXN1bHRdLCBwcm9wZXJ0eVNl
dENhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5fb2JqZWN0SWQp
CisgICAgICAgICAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QocmVzdWx0Ll9vYmpl
Y3RJZCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBwcm9wZXJ0eVNldENhbGxiYWNr
KGVycm9yLCByZXN1bHQsIHdhc1Rocm93bikgeworICAgICAgICAgICAgaWYgKGVycm9yIHx8IHdh
c1Rocm93bikgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yIHx8IHJlc3VsdCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICBwdXNoTm9kZVRvRnJvbnRlbmQ6IGZ1bmN0
aW9uKGNhbGxiYWNrKQo=
</data>
<flag name="review"
          id="96944"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>