<?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>44532</bug_id>
          
          <creation_ts>2010-08-24 09:46:34 -0700</creation_ts>
          <short_desc>Web Inspector: add &quot;Attribute Modified&quot; and &quot;Node Removed&quot; DOM breakpoints</short_desc>
          <delta_ts>2010-08-25 05:17:02 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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 Podivilov">podivilov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>pfeldman</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>268604</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-08-24 09:46:34 -0700</bug_when>
    <thetext>Web Inspector: add &quot;Attribute Modified&quot; and &quot;Node Removed&quot; DOM breakpoints</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268610</commentid>
    <comment_count>1</comment_count>
      <attachid>65287</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-08-24 09:59:12 -0700</bug_when>
    <thetext>Created attachment 65287
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268628</commentid>
    <comment_count>2</comment_count>
      <attachid>65287</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-24 10:27:11 -0700</bug_when>
    <thetext>Comment on attachment 65287
Proposed patch.

LayoutTests/inspector/dom-breakpoints.html:17
 +      element[name] = value;
I think this should be element.setAttribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269123</commentid>
    <comment_count>3</comment_count>
      <attachid>65391</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-08-25 02:58:47 -0700</bug_when>
    <thetext>Created attachment 65391
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269124</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-08-25 02:59:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 65287 [details])
&gt; LayoutTests/inspector/dom-breakpoints.html:17
&gt;  +      element[name] = value;
&gt; I think this should be element.setAttribute

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269132</commentid>
    <comment_count>5</comment_count>
      <attachid>65391</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-25 03:16:02 -0700</bug_when>
    <thetext>Comment on attachment 65391
Proposed patch.

WebCore/inspector/front-end/ElementsTreeOutline.js:769
 +              contextMenu.appendItem(WebInspector.UIString(&quot;Stop On Subtree Modifications&quot;),
Stop _on_</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269133</commentid>
    <comment_count>6</comment_count>
      <attachid>65392</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-08-25 03:19:07 -0700</bug_when>
    <thetext>Created attachment 65392
On -&gt; on</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269136</commentid>
    <comment_count>7</comment_count>
      <attachid>65392</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-25 03:26:58 -0700</bug_when>
    <thetext>Comment on attachment 65392
On -&gt; on

It does not seem to have localized strings changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269139</commentid>
    <comment_count>8</comment_count>
      <attachid>65395</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-08-25 03:36:52 -0700</bug_when>
    <thetext>Created attachment 65395
+ strings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269173</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-25 05:17:02 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/http/tests/inspector/debugger-test2.js
	M	LayoutTests/http/tests/inspector/inspector-test2.js
	M	LayoutTests/inspector/dom-breakpoints-expected.txt
	M	LayoutTests/inspector/dom-breakpoints.html
	M	WebCore/ChangeLog
	M	WebCore/English.lproj/localizedStrings.js
	M	WebCore/inspector/InspectorDOMAgent.cpp
	M	WebCore/inspector/front-end/DOMAgent.js
	M	WebCore/inspector/front-end/ElementsTreeOutline.js
Committed r66008</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65287</attachid>
            <date>2010-08-24 09:59:12 -0700</date>
            <delta_ts>2010-08-25 02:58:59 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>new_types.patch</filename>
            <type>text/plain</type>
            <size>15184</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMWQwOGVkLi4zMWQ5ZDhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjIgQEAKIAogICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgIkF0dHJpYnV0ZSBNb2RpZmllZCIgYW5kICJOb2RlIFJlbW92ZWQiIERPTSBicmVha3BvaW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1MzIK
KworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QyLmpzOgorICAg
ICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QuSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVz
ZWQucGF1c2VkU2NyaXB0KToKKyAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3Bl
Y3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdDIuanM6CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3Qu
KToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdCk6CisgICAgICAgICogaW5zcGVj
dG9yL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2Rv
bS1icmVha3BvaW50cy5odG1sOgorCisyMDEwLTA4LTI0ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rp
dmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNob3cgRE9NIGJyZWFrcG9pbnRzIGluIHNpZGVi
YXIgcGFuZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ0MjQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdDIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci10ZXN0Mi5qcwppbmRleCA1NWY1MDM2Li41MjhlZThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Mi5qcworKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Mi5qcwpAQCAtNDEsNyArNDEsMTMg
QEAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCA9IGZ1bmN0aW9uKCkKIAogSW5z
cGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQgPSBmdW5jdGlvbihjYWxsYmFjaykKIHsKLSAgICBJ
bnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3RvciwgInBhdXNlZFNjcmlwdCIsIGNh
bGxiYWNrKTsKKyAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3RvciwgInBh
dXNlZFNjcmlwdCIsIHBhdXNlZFNjcmlwdCk7CisKKyAgICBmdW5jdGlvbiBwYXVzZWRTY3JpcHQo
Y2FsbEZyYW1lcykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJQYXVz
ZWQgYXQgbGluZSAiICsgY2FsbEZyYW1lc1swXS5saW5lICsgIiBpbiAiICsgY2FsbEZyYW1lc1sw
XS5mdW5jdGlvbk5hbWUpOworICAgICAgICBjYWxsYmFjayhjYWxsRnJhbWVzKTsKKyAgICB9CiB9
OwogCiBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbiA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Mi5qcwppbmRl
eCA3ZjVmZmQxLi40ZDhiZjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzCkBAIC0zNSw2ICszNSw3IEBAIEluc3BlY3RvclRl
c3QucmVsb2FkUGFnZSA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogSW5zcGVjdG9yVGVzdC5maW5kRE9N
Tm9kZSA9IGZ1bmN0aW9uKHJvb3QsIGZpbHRlciwgY2FsbGJhY2spCiB7CiAgICAgdmFyIGZvdW5k
ID0gZmFsc2U7CisgICAgdmFyIHBlbmRpbmdDYWxscyA9IDA7CiAKICAgICBpZiAocm9vdCkKICAg
ICAgICAgZmluZERPTU5vZGUocm9vdCk7CkBAIC01NSwxNCArNTYsMTkgQEAgSW5zcGVjdG9yVGVz
dC5maW5kRE9NTm9kZSA9IGZ1bmN0aW9uKHJvb3QsIGZpbHRlciwgY2FsbGJhY2spCiAgICAgICAg
IGlmIChmaWx0ZXIobm9kZSkpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKG5vZGUpOwogICAgICAg
ICAgICAgZm91bmQgPSB0cnVlOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHBlbmRpbmdDYWxscyArPSAxOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRv
bUFnZW50LmdldENoaWxkTm9kZXNBc3luYyhub2RlLCBwcm9jZXNzQ2hpbGRyZW4pOworICAgICAg
ICB9CiAKICAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc0NoaWxkcmVuKGNoaWxkcmVuKQogICAgICAg
ICB7CisgICAgICAgICAgICBwZW5kaW5nQ2FsbHMgLT0gMTsKKwogICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7ICFmb3VuZCAmJiBjaGlsZHJlbiAmJiBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kp
CiAgICAgICAgICAgICAgICAgZmluZERPTU5vZGUoY2hpbGRyZW5baV0pOwotICAgICAgICAgICAg
aWYgKCFmb3VuZCAmJiBub2RlID09PSByb290KQorCisgICAgICAgICAgICBpZiAoIWZvdW5kICYm
ICFwZW5kaW5nQ2FsbHMgJiYgbm9kZSA9PSByb290KQogICAgICAgICAgICAgICAgIGNhbGxiYWNr
KG51bGwpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzMsNiArNzksNyBAQCBJbnNwZWN0b3JUZXN0
Ll9hZGRTbmlmZmVyID0gZnVuY3Rpb24ocmVjZWl2ZXIsIG1ldGhvZE5hbWUsIG92ZXJyaWRlLCBv
cHRfc3RpY2t5KQogICAgIHZhciBvcmlnaW5hbCA9IHJlY2VpdmVyW21ldGhvZE5hbWVdOwogICAg
IGlmICh0eXBlb2Ygb3JpZ2luYWwgIT09ICJmdW5jdGlvbiIpCiAgICAgICAgIHRocm93ICgiQ2Fu
bm90IGZpbmQgbWV0aG9kIHRvIG92ZXJyaWRlOiAiICsgbWV0aG9kTmFtZSk7CisKICAgICByZWNl
aXZlclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKHZhcl9hcmdzKSB7CiAgICAgICAgIHRyeSB7CiAg
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJndW1lbnRzKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtwb2ludHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50
eHQKaW5kZXggMDZkNTMzZi4uOTNmMWU5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSwxNCBAQAogVGVzdHMg
RE9NIGJyZWFrcG9pbnRzLiBCdWcgNDI4ODYKIAogRGVidWdnZXIgd2FzIGVuYWJsZWQuCi1Gb3Vu
ZCBkaXYgZWxlbWVudC4KLVNldCBET00gYnJlYWtwb2ludC4KLVBhdXNlZCBhdCBsaW5lIDEwIGlu
IGFwcGVuZEVsZW1lbnQKK0ZvdW5kIGRvbSBub2RlIGQwLgorU2V0IHN1YnRyZWUgbW9kaWZpZWQg
RE9NIGJyZWFrcG9pbnQgb24gZDAuCitQYXVzZWQgYXQgbGluZSAxMSBpbiBhcHBlbmRFbGVtZW50
CitGb3VuZCBkb20gbm9kZSBkMS4KK1NldCBhdHRyaWJ1dGUgbW9kaWZpZWQgRE9NIGJyZWFrcG9p
bnQgb24gZDEuCitQYXVzZWQgYXQgbGluZSAxNyBpbiBtb2RpZnlBdHRyaWJ1dGUKK0ZvdW5kIGRv
bSBub2RlIGQxLgorU2V0IG5vZGUgcmVtb3ZlZCBET00gYnJlYWtwb2ludCBvbiBkMS4KK1BhdXNl
ZCBhdCBsaW5lIDIzIGluIHJlbW92ZUVsZW1lbnQKIERlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy5odG1sCmluZGV4IDQwZmQyYTku
LjY0YTU4NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtwb2lu
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnRzLmh0bWwK
QEAgLTQsMzcgKzQsODcgQEAKIDxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci10ZXN0Mi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1mdW5jdGlvbiBhcHBlbmRF
bGVtZW50KCkKK2Z1bmN0aW9uIGFwcGVuZEVsZW1lbnQocGFyZW50SWQsIGNoaWxkSWQpCiB7CiAg
ICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImQwIikuYXBwZW5kQ2hpbGQoY2hpbGQpOworICAgIGNoaWxkLmlk
ID0gY2hpbGRJZDsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwYXJlbnRJZCkuYXBwZW5k
Q2hpbGQoY2hpbGQpOworfQorCitmdW5jdGlvbiBtb2RpZnlBdHRyaWJ1dGUoZWxlbWVudElkLCBu
YW1lLCB2YWx1ZSkKK3sKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJZCk7CisgICAgZWxlbWVudFtuYW1lXSA9IHZhbHVlOworfQorCitmdW5jdGlvbiBy
ZW1vdmVFbGVtZW50KGVsZW1lbnRJZCkKK3sKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGVsZW1lbnQpOwogfQogCiB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIHsKLSAgICBJbnNwZWN0
b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0YXJ0RGVidWdnZXJUZXN0Q2FsbGJhY2spOworICAg
IEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3Qoc3RlcDEpOwogCi0gICAgZnVuY3Rpb24g
c3RhcnREZWJ1Z2dlclRlc3RDYWxsYmFjaygpCisgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5maW5kRE9NTm9kZShudWxsLCBmdW5jdGlvbihub2RlKSB7
Ci0gICAgICAgICAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09ICJkMCI7Ci0g
ICAgICAgIH0sIGZpbmRET01Ob2RlQ2FsbGJhY2spOworICAgICAgICBmaW5kRE9NTm9kZUJ5SWQo
ImQwIiwgc3RlcDIpOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGZpbmRET01Ob2RlQ2FsbGJhY2so
bm9kZSkKKyAgICBmdW5jdGlvbiBzdGVwMihub2RlKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkZvdW5kIGRpdiBlbGVtZW50LiIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiRm91bmQgZG9tIG5vZGUgZDAuIik7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5kb21CcmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KG5vZGUsIFdlYkluc3BlY3Rvci5E
T01CcmVha3BvaW50LlR5cGVzLlN1YnRyZWVNb2RpZmllZCk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJTZXQgRE9NIGJyZWFrcG9pbnQuIik7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJbkNvbnNvbGUoImFwcGVuZEVsZW1lbnQoKSIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LndhaXRVbnRpbFBhdXNlZCh3YWl0VW50aWxQYXVzZWRDYWxsYmFjayk7CisgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXQgc3VidHJlZSBtb2RpZmllZCBET00gYnJlYWtw
b2ludCBvbiBkMC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgi
YXBwZW5kRWxlbWVudCgnZDAnLCAnZDEnKSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRV
bnRpbFBhdXNlZChzdGVwMy5iaW5kKG51bGwsIG5vZGUpKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBzdGVwMyhub2RlKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRN
YW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnRzRm9yTm9kZShub2RlKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZXN1bWVFeGVjdXRpb24oKTsKKyAgICAgICAgZmluZERPTU5vZGVCeUlkKCJkMSIsIHN0
ZXA0KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB3YWl0VW50aWxQYXVzZWRDYWxsYmFjayhjYWxs
RnJhbWVzKQorICAgIGZ1bmN0aW9uIHN0ZXA0KG5vZGUpCiAgICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiUGF1c2VkIGF0IGxpbmUgIiArIGNhbGxGcmFtZXNbMF0ubGluZSAr
ICIgaW4gIiArIGNhbGxGcmFtZXNbMF0uZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkZvdW5kIGRvbSBub2RlIGQxLiIpOworICAgICAgICBXZWJJbnNwZWN0
b3IuZG9tQnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChub2RlLCBXZWJJbnNwZWN0b3Iu
RE9NQnJlYWtwb2ludC5UeXBlcy5BdHRyaWJ1dGVNb2RpZmllZCk7CisgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJTZXQgYXR0cmlidXRlIG1vZGlmaWVkIERPTSBicmVha3BvaW50IG9u
IGQxLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJtb2RpZnlB
dHRyaWJ1dGUoJ2QxJywgJ2NsYXNzTmFtZScsICdmb28nKSIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LndhaXRVbnRpbFBhdXNlZChzdGVwNS5iaW5kKG51bGwsIG5vZGUpKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwNShub2RlKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUJy
ZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnRzRm9yTm9kZShub2RlKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24oKTsKKyAgICAgICAgZmluZERPTU5vZGVCeUlk
KCJkMSIsIHN0ZXA2KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNihub2RlKQorICAgIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZvdW5kIGRvbSBub2RlIGQxLiIpOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChu
b2RlLCBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcy5Ob2RlUmVtb3ZlZCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXQgbm9kZSByZW1vdmVkIERPTSBicmVha3Bv
aW50IG9uIGQxLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJy
ZW1vdmVFbGVtZW50KCdkMScpIik7CisgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1
c2VkKHN0ZXA3LmJpbmQobnVsbCwgbm9kZSkpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA3
KG5vZGUpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludE1hbmFnZXIu
cmVtb3ZlQnJlYWtwb2ludHNGb3JOb2RlKG5vZGUpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlRGVidWdnZXJUZXN0KCk7CiAgICAgfQorCisgICAgZnVuY3Rpb24gZmluZERPTU5vZGVC
eUlkKGlkLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuZmluZERPTU5v
ZGUobnVsbCwgZnVuY3Rpb24obm9kZSkgeworICAgICAgICAgICAgcmV0dXJuIG5vZGUuZ2V0QXR0
cmlidXRlKCJpZCIpID09PSBpZDsKKyAgICAgICAgfSwgY2FsbGJhY2spOworICAgIH0KIH07CiAK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBiNjIwZWFhLi5kZmVhMDBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDI1IEBACiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkICJB
dHRyaWJ1dGUgTW9kaWZpZWQiIGFuZCAiTm9kZSBSZW1vdmVkIiBET00gYnJlYWtwb2ludHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NTMyCisKKyAg
ICAgICAgVGVzdDogaW5zcGVjdG9yL2RvbS1icmVha3BvaW50Lmh0bWwKKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JET01BZ2VudDo6c2V0RE9NQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JET01BZ2VudDo6cmVtb3ZlRE9NQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6ZGlkSW5zZXJ0RE9NTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6ZGlkUmVtb3ZlRE9NTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6ZGlkTW9kaWZ5RE9NQXR0cik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxl
bWVudC5wcm90b3R5cGUuX3BvcHVsYXRlVGFnQ29udGV4dE1lbnUpOgorCisyMDEwLTA4LTI0ICBQ
YXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNob3cgRE9N
IGJyZWFrcG9pbnRzIGluIHNpZGViYXIgcGFuZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ0MjQKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCmluZGV4IDlkZTYyMGQuLjUxNmI3ZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKQEAgLTE5OCw5ICsxOTgsMTIgQEAgcHVibGljOgogfTsKIAogZW51
bSBET01CcmVha3BvaW50VHlwZSB7Ci0gICAgRE9NQnJlYWtwb2ludFR5cGVTdWJ0cmVlTW9kaWZp
ZWQgPSAwCisgICAgU3VidHJlZU1vZGlmaWVkID0gMCwKKyAgICBBdHRyaWJ1dGVNb2RpZmllZCwK
KyAgICBOb2RlUmVtb3ZlZAogfTsKIAorY29uc3QgdWludDMyX3QgaW5oZXJpdGFibGVET01CcmVh
a3BvaW50VHlwZXNNYXNrID0gKDEgPDwgU3VidHJlZU1vZGlmaWVkKTsKIGNvbnN0IGludCBkb21C
cmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdCA9IDE2OwogCiB9CkBAIC03NDEsOCArNzQ0LDEwIEBA
IHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldERPTUJyZWFrcG9pbnQobG9uZyBub2RlSWQsIGxv
bmcgdHlwZSkKIAogICAgIHVpbnQzMl90IHJvb3RCaXQgPSAxIDw8IHR5cGU7CiAgICAgbV9icmVh
a3BvaW50cy5zZXQobm9kZSwgbV9icmVha3BvaW50cy5nZXQobm9kZSkgfCByb290Qml0KTsKLSAg
ICBmb3IgKE5vZGUqIGNoaWxkID0gaW5uZXJGaXJzdENoaWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQg
PSBpbm5lck5leHRTaWJsaW5nKGNoaWxkKSkKLSAgICAgICAgdXBkYXRlU3VidHJlZUJyZWFrcG9p
bnRzKGNoaWxkLCByb290Qml0LCB0cnVlKTsKKyAgICBpZiAocm9vdEJpdCAmIGluaGVyaXRhYmxl
RE9NQnJlYWtwb2ludFR5cGVzTWFzaykgeworICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gaW5u
ZXJGaXJzdENoaWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbm5lck5leHRTaWJsaW5nKGNoaWxk
KSkKKyAgICAgICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhjaGlsZCwgcm9vdEJpdCwg
dHJ1ZSk7CisgICAgfQogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZW1vdmVET01CcmVh
a3BvaW50KGxvbmcgbm9kZUlkLCBsb25nIHR5cGUpCkBAIC03NTcsMTEgKzc2MiwxMSBAQCB2b2lk
IEluc3BlY3RvckRPTUFnZW50OjpyZW1vdmVET01CcmVha3BvaW50KGxvbmcgbm9kZUlkLCBsb25n
IHR5cGUpCiAgICAgICAgIG1fYnJlYWtwb2ludHMuc2V0KG5vZGUsIG1hc2spOwogICAgIGVsc2UK
ICAgICAgICAgbV9icmVha3BvaW50cy5yZW1vdmUobm9kZSk7Ci0gICAgaWYgKG1hc2sgJiAocm9v
dEJpdCA8PCBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdCkpCi0gICAgICAgIHJldHVybjsK
IAotICAgIGZvciAoTm9kZSogY2hpbGQgPSBpbm5lckZpcnN0Q2hpbGQobm9kZSk7IGNoaWxkOyBj
aGlsZCA9IGlubmVyTmV4dFNpYmxpbmcoY2hpbGQpKQotICAgICAgICB1cGRhdGVTdWJ0cmVlQnJl
YWtwb2ludHMoY2hpbGQsIHJvb3RCaXQsIGZhbHNlKTsKKyAgICBpZiAoKHJvb3RCaXQgJiBpbmhl
cml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01hc2spICYmICEobWFzayAmIChyb290Qml0IDw8IGRv
bUJyZWFrcG9pbnREZXJpdmVkVHlwZVNoaWZ0KSkpIHsKKyAgICAgICAgZm9yIChOb2RlKiBjaGls
ZCA9IGlubmVyRmlyc3RDaGlsZChub2RlKTsgY2hpbGQ7IGNoaWxkID0gaW5uZXJOZXh0U2libGlu
ZyhjaGlsZCkpCisgICAgICAgICAgICB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoY2hpbGQsIHJv
b3RCaXQsIGZhbHNlKTsKKyAgICB9CiB9CiAKIFN0cmluZyBJbnNwZWN0b3JET01BZ2VudDo6ZG9j
dW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdApAQCAtOTY2LDEzICs5NzEs
MTQgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkSW5zZXJ0RE9NTm9kZShOb2RlKiBub2Rl
KQogCiAgICAgaWYgKG1fYnJlYWtwb2ludHMuc2l6ZSgpKSB7CiAgICAgICAgIE5vZGUqIHBhcmVu
dCA9IGlubmVyUGFyZW50Tm9kZShub2RlKTsKLSAgICAgICAgaWYgKGhhc0JyZWFrcG9pbnQocGFy
ZW50LCBET01CcmVha3BvaW50VHlwZVN1YnRyZWVNb2RpZmllZCkpIHsKKyAgICAgICAgaWYgKGhh
c0JyZWFrcG9pbnQocGFyZW50LCBTdWJ0cmVlTW9kaWZpZWQpKSB7CiAgICAgICAgICAgICBpZiAo
IXBhdXNlT25CcmVha3BvaW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIHVpbnQzMl90IG1hc2sgPSBtX2JyZWFrcG9pbnRzLmdldChwYXJlbnQpOwotICAg
ICAgICBtYXNrID0gbWFzayB8IChtYXNrID4+IGRvbUJyZWFrcG9pbnREZXJpdmVkVHlwZVNoaWZ0
KSAmICgoMSA8PCBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdCkgLSAxKTsKLSAgICAgICAg
dXBkYXRlU3VidHJlZUJyZWFrcG9pbnRzKG5vZGUsIG1hc2ssIHRydWUpOworICAgICAgICB1aW50
MzJfdCBpbmhlcml0YWJsZVR5cGVzTWFzayA9IChtYXNrIHwgKG1hc2sgPj4gZG9tQnJlYWtwb2lu
dERlcml2ZWRUeXBlU2hpZnQpKSAmIGluaGVyaXRhYmxlRE9NQnJlYWtwb2ludFR5cGVzTWFzazsK
KyAgICAgICAgaWYgKGluaGVyaXRhYmxlVHlwZXNNYXNrKQorICAgICAgICAgICAgdXBkYXRlU3Vi
dHJlZUJyZWFrcG9pbnRzKG5vZGUsIGluaGVyaXRhYmxlVHlwZXNNYXNrLCB0cnVlKTsKICAgICB9
CiAKICAgICAvLyBXZSBjb3VsZCBiZSBhdHRhY2hpbmcgZXhpc3Rpbmcgc3VidHJlZS4gRm9yZ2V0
IHRoZSBiaW5kaW5ncy4KQEAgLTEwMDIsNyArMTAwOCw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6OmRpZFJlbW92ZURPTU5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKG1fYnJlYWtwb2ludHMuc2l6ZSgpKSB7Ci0gICAgICAgIGlmIChoYXNCcmVha3BvaW50KGlu
bmVyUGFyZW50Tm9kZShub2RlKSwgRE9NQnJlYWtwb2ludFR5cGVTdWJ0cmVlTW9kaWZpZWQpKSB7
CisgICAgICAgIGlmIChoYXNCcmVha3BvaW50KG5vZGUsIE5vZGVSZW1vdmVkKSB8fCBoYXNCcmVh
a3BvaW50KGlubmVyUGFyZW50Tm9kZShub2RlKSwgU3VidHJlZU1vZGlmaWVkKSkgewogICAgICAg
ICAgICAgaWYgKCFwYXVzZU9uQnJlYWtwb2ludCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpAQCAtMTA0Miw2ICsxMDQ4LDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OmRpZE1vZGlmeURPTUF0dHIoRWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWlkKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBpZiAoaGFzQnJlYWtwb2ludChlbGVtZW50LCBBdHRyaWJ1dGVNb2Rp
ZmllZCkpIHsKKyAgICAgICAgaWYgKCFwYXVzZU9uQnJlYWtwb2ludCgpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIG1fZnJvbnRlbmQtPmF0dHJpYnV0ZXNVcGRhdGVkKGlkLCBi
dWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKaW5kZXggZDExOTY4MC4uMGQ3OWQ1MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtNzI4LDExICs3MjgsMTUgQEAg
V2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQgPSBmdW5jdGlvbihub2RlLCB0eXBlKQogfQogCiBX
ZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcyA9IHsKLSAgICBTdWJ0cmVlTW9kaWZpZWQ6
IDAKKyAgICBTdWJ0cmVlTW9kaWZpZWQ6IDAsCisgICAgQXR0cmlidXRlTW9kaWZpZWQ6IDEsCisg
ICAgTm9kZVJlbW92ZWQ6IDIKIH07CiAKIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50LkxhYmVs
cyA9IHt9OwogV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQuTGFiZWxzW1dlYkluc3BlY3Rvci5E
T01CcmVha3BvaW50LlR5cGVzLlN1YnRyZWVNb2RpZmllZF0gPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlN1YnRyZWUgTW9kaWZpZWQiKTsKK1dlYkluc3BlY3Rvci5ET01CcmVha3BvaW50LkxhYmVs
c1tXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcy5BdHRyaWJ1dGVNb2RpZmllZF0gPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkF0dHJpYnV0ZSBNb2RpZmllZCIpOworV2ViSW5zcGVjdG9y
LkRPTUJyZWFrcG9pbnQuTGFiZWxzW1dlYkluc3BlY3Rvci5ET01CcmVha3BvaW50LlR5cGVzLk5v
ZGVSZW1vdmVkXSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm9kZSBSZW1vdmVkIik7CiAKIFdl
Ykluc3BlY3Rvci5ET01CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICBnZXQgZW5hYmxlZCgp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0
bGluZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5l
LmpzCmluZGV4IDBlYzFlYjMuLjQ2YTM4YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCkBAIC00MDIsNyArNDAyLDcgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB2YXIg
bm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgIGlmICghbm9kZS5ub2RlTmFt
ZSB8fCBub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJpbWciKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAKKwogICAgICAgICBmdW5jdGlvbiBzZXRUb29sdGlwKHByb3BlcnRp
ZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykKQEAgLTc2Niw4ICs3
NjYsMTIgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgLy8gQWRkIGRlYmJ1Z2luZy1yZWxhdGVkIGFjdGlvbnMKICAgICAgICAgICAg
IGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwogCi0gICAgICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RvcCBvbiBzdWJ0cmVlIG1vZGlm
aWNhdGlvbnMiKSwKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJTdG9wIE9uIFN1YnRyZWUgTW9kaWZpY2F0aW9ucyIpLAogICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50LmJp
bmQoV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLCB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LCBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcy5TdWJ0cmVlTW9kaWZpZWQpKTsK
KyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTdG9wIE9uIEF0dHJpYnV0ZXMgTW9kaWZpY2F0aW9ucyIpLAorICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kb21CcmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50LmJpbmQoV2ViSW5z
cGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCBXZWJJ
bnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcy5BdHRyaWJ1dGVNb2RpZmllZCkpOworICAgICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3Ag
T24gTm9kZSBSZW1vdmFsIiksCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFr
cG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQuYmluZChXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2lu
dE1hbmFnZXIsIHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIFdlYkluc3BlY3Rvci5ET01CcmVha3Bv
aW50LlR5cGVzLk5vZGVSZW1vdmVkKSk7CiAKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZW1vdmUgQnJlYWtwb2ludHMiKSwKICAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludE1hbmFnZXIucmVtb3ZlQnJlYWtw
b2ludHNGb3JOb2RlLmJpbmQoV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLCB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65391</attachid>
            <date>2010-08-25 02:58:47 -0700</date>
            <delta_ts>2010-08-25 03:19:34 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>new_types.patch</filename>
            <type>text/plain</type>
            <size>15056</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YzUzZjFlLi44M2VmNDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDgt
MjUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
ICJBdHRyaWJ1dGUgTW9kaWZpZWQiIGFuZCAiTm9kZSBSZW1vdmVkIiBET00gYnJlYWtwb2ludHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NTMyCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Mi5qczoKKyAgICAg
ICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2Vk
LnBhdXNlZFNjcmlwdCk6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0
b3JUZXN0LndhaXRVbnRpbFBhdXNlZCk6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QyLmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lik6
CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9kb20tYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kb20t
YnJlYWtwb2ludHMuaHRtbDoKKwogMjAxMC0wOC0yNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2hpbmljaGlybyBIYW1hamkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QyLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKaW5k
ZXggNTVmNTAzNi4uNTI4ZWU4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKQEAgLTQxLDcgKzQxLDEzIEBAIEluc3BlY3RvclRl
c3QuY29tcGxldGVEZWJ1Z2dlclRlc3QgPSBmdW5jdGlvbigpCiAKIEluc3BlY3RvclRlc3Qud2Fp
dFVudGlsUGF1c2VkID0gZnVuY3Rpb24oY2FsbGJhY2spCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5f
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJwYXVzZWRTY3JpcHQiLCBjYWxsYmFjayk7CisgICAg
SW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJwYXVzZWRTY3JpcHQiLCBw
YXVzZWRTY3JpcHQpOworCisgICAgZnVuY3Rpb24gcGF1c2VkU2NyaXB0KGNhbGxGcmFtZXMpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUGF1c2VkIGF0IGxpbmUgIiAr
IGNhbGxGcmFtZXNbMF0ubGluZSArICIgaW4gIiArIGNhbGxGcmFtZXNbMF0uZnVuY3Rpb25OYW1l
KTsKKyAgICAgICAgY2FsbGJhY2soY2FsbEZyYW1lcyk7CisgICAgfQogfTsKIAogSW5zcGVjdG9y
VGVzdC5yZXN1bWVFeGVjdXRpb24gPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMKaW5kZXggN2Y1ZmZkMS4uNGQ4
YmY3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0Mi5qcwpAQCAtMzUsNiArMzUsNyBAQCBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Ug
PSBmdW5jdGlvbihjYWxsYmFjaykKIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUgPSBmdW5jdGlv
bihyb290LCBmaWx0ZXIsIGNhbGxiYWNrKQogewogICAgIHZhciBmb3VuZCA9IGZhbHNlOworICAg
IHZhciBwZW5kaW5nQ2FsbHMgPSAwOwogCiAgICAgaWYgKHJvb3QpCiAgICAgICAgIGZpbmRET01O
b2RlKHJvb3QpOwpAQCAtNTUsMTQgKzU2LDE5IEBAIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUg
PSBmdW5jdGlvbihyb290LCBmaWx0ZXIsIGNhbGxiYWNrKQogICAgICAgICBpZiAoZmlsdGVyKG5v
ZGUpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhub2RlKTsKICAgICAgICAgICAgIGZvdW5kID0g
dHJ1ZTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwZW5k
aW5nQ2FsbHMgKz0gMTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5nZXRDaGls
ZE5vZGVzQXN5bmMobm9kZSwgcHJvY2Vzc0NoaWxkcmVuKTsKKyAgICAgICAgfQogCiAgICAgICAg
IGZ1bmN0aW9uIHByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbikKICAgICAgICAgeworICAgICAgICAg
ICAgcGVuZGluZ0NhbGxzIC09IDE7CisKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyAhZm91
bmQgJiYgY2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAgICAgICAg
ICAgIGZpbmRET01Ob2RlKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgICAgIGlmICghZm91bmQgJiYg
bm9kZSA9PT0gcm9vdCkKKworICAgICAgICAgICAgaWYgKCFmb3VuZCAmJiAhcGVuZGluZ0NhbGxz
ICYmIG5vZGUgPT0gcm9vdCkKICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTczLDYgKzc5LDcgQEAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlciA9
IGZ1bmN0aW9uKHJlY2VpdmVyLCBtZXRob2ROYW1lLCBvdmVycmlkZSwgb3B0X3N0aWNreSkKICAg
ICB2YXIgb3JpZ2luYWwgPSByZWNlaXZlclttZXRob2ROYW1lXTsKICAgICBpZiAodHlwZW9mIG9y
aWdpbmFsICE9PSAiZnVuY3Rpb24iKQogICAgICAgICB0aHJvdyAoIkNhbm5vdCBmaW5kIG1ldGhv
ZCB0byBvdmVycmlkZTogIiArIG1ldGhvZE5hbWUpOworCiAgICAgcmVjZWl2ZXJbbWV0aG9kTmFt
ZV0gPSBmdW5jdGlvbih2YXJfYXJncykgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFy
IHJlc3VsdCA9IG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IDA2ZDUz
M2YuLjkzZjFlOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtw
b2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtw
b2ludHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsMTQgQEAKIFRlc3RzIERPTSBicmVha3BvaW50
cy4gQnVnIDQyODg2CiAKIERlYnVnZ2VyIHdhcyBlbmFibGVkLgotRm91bmQgZGl2IGVsZW1lbnQu
Ci1TZXQgRE9NIGJyZWFrcG9pbnQuCi1QYXVzZWQgYXQgbGluZSAxMCBpbiBhcHBlbmRFbGVtZW50
CitGb3VuZCBkb20gbm9kZSBkMC4KK1NldCBzdWJ0cmVlIG1vZGlmaWVkIERPTSBicmVha3BvaW50
IG9uIGQwLgorUGF1c2VkIGF0IGxpbmUgMTEgaW4gYXBwZW5kRWxlbWVudAorRm91bmQgZG9tIG5v
ZGUgZDEuCitTZXQgYXR0cmlidXRlIG1vZGlmaWVkIERPTSBicmVha3BvaW50IG9uIGQxLgorUGF1
c2VkIGF0IGxpbmUgMTcgaW4gbW9kaWZ5QXR0cmlidXRlCitGb3VuZCBkb20gbm9kZSBkMS4KK1Nl
dCBub2RlIHJlbW92ZWQgRE9NIGJyZWFrcG9pbnQgb24gZDEuCitQYXVzZWQgYXQgbGluZSAyMyBp
biByZW1vdmVFbGVtZW50CiBEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20tYnJlYWtwb2ludHMuaHRtbAppbmRleCA0MGZkMmE5Li5mYmI2NTMyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy5odG1sCkBAIC00LDM3ICs0LDg3
IEBACiA8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotZnVuY3Rpb24gYXBwZW5kRWxlbWVudCgpCitmdW5j
dGlvbiBhcHBlbmRFbGVtZW50KHBhcmVudElkLCBjaGlsZElkKQogewogICAgIHZhciBjaGlsZCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkMCIpLmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICBjaGlsZC5pZCA9IGNoaWxkSWQ7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocGFyZW50SWQpLmFwcGVuZENoaWxkKGNoaWxkKTsK
K30KKworZnVuY3Rpb24gbW9kaWZ5QXR0cmlidXRlKGVsZW1lbnRJZCwgbmFtZSwgdmFsdWUpCit7
CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwor
ICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKK30KKworZnVuY3Rpb24gcmVt
b3ZlRWxlbWVudChlbGVtZW50SWQpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChlbGVtZW50KTsKIH0KIAogdmFyIHRlc3QgPSBmdW5jdGlvbigpCiB7Ci0gICAgSW5zcGVjdG9y
VGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGFydERlYnVnZ2VyVGVzdENhbGxiYWNrKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKIAotICAgIGZ1bmN0aW9uIHN0
YXJ0RGVidWdnZXJUZXN0Q2FsbGJhY2soKQorICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUobnVsbCwgZnVuY3Rpb24obm9kZSkgewot
ICAgICAgICAgICAgcmV0dXJuIG5vZGUuZ2V0QXR0cmlidXRlKCJpZCIpID09PSAiZDAiOwotICAg
ICAgICB9LCBmaW5kRE9NTm9kZUNhbGxiYWNrKTsKKyAgICAgICAgZmluZERPTU5vZGVCeUlkKCJk
MCIsIHN0ZXAyKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBmaW5kRE9NTm9kZUNhbGxiYWNrKG5v
ZGUpCisgICAgZnVuY3Rpb24gc3RlcDIobm9kZSkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJGb3VuZCBkaXYgZWxlbWVudC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkZvdW5kIGRvbSBub2RlIGQwLiIpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tQnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChub2RlLCBXZWJJbnNwZWN0b3IuRE9N
QnJlYWtwb2ludC5UeXBlcy5TdWJ0cmVlTW9kaWZpZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2V0IERPTSBicmVha3BvaW50LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5Db25zb2xlKCJhcHBlbmRFbGVtZW50KCkiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC53YWl0VW50aWxQYXVzZWQod2FpdFVudGlsUGF1c2VkQ2FsbGJhY2spOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IHN1YnRyZWUgbW9kaWZpZWQgRE9NIGJyZWFrcG9p
bnQgb24gZDAuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImFw
cGVuZEVsZW1lbnQoJ2QwJywgJ2QxJykiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50
aWxQYXVzZWQoc3RlcDMuYmluZChudWxsLCBub2RlKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDMobm9kZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFu
YWdlci5yZW1vdmVCcmVha3BvaW50c0Zvck5vZGUobm9kZSk7CisgICAgICAgIEluc3BlY3RvclRl
c3QucmVzdW1lRXhlY3V0aW9uKCk7CisgICAgICAgIGZpbmRET01Ob2RlQnlJZCgiZDEiLCBzdGVw
NCk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gd2FpdFVudGlsUGF1c2VkQ2FsbGJhY2soY2FsbEZy
YW1lcykKKyAgICBmdW5jdGlvbiBzdGVwNChub2RlKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlBhdXNlZCBhdCBsaW5lICIgKyBjYWxsRnJhbWVzWzBdLmxpbmUgKyAi
IGluICIgKyBjYWxsRnJhbWVzWzBdLmZ1bmN0aW9uTmFtZSk7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJGb3VuZCBkb20gbm9kZSBkMS4iKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQobm9kZSwgV2ViSW5zcGVjdG9yLkRP
TUJyZWFrcG9pbnQuVHlwZXMuQXR0cmlidXRlTW9kaWZpZWQpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU2V0IGF0dHJpYnV0ZSBtb2RpZmllZCBET00gYnJlYWtwb2ludCBvbiBk
MS4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgibW9kaWZ5QXR0
cmlidXRlKCdkMScsICdjbGFzc05hbWUnLCAnZm9vJykiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0VW50aWxQYXVzZWQoc3RlcDUuYmluZChudWxsLCBub2RlKSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc3RlcDUobm9kZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVh
a3BvaW50TWFuYWdlci5yZW1vdmVCcmVha3BvaW50c0Zvck5vZGUobm9kZSk7CisgICAgICAgIElu
c3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKCk7CisgICAgICAgIGZpbmRET01Ob2RlQnlJZCgi
ZDEiLCBzdGVwNik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDYobm9kZSkKKyAgICB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGb3VuZCBkb20gbm9kZSBkMS4iKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQobm9k
ZSwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQuVHlwZXMuTm9kZVJlbW92ZWQpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IG5vZGUgcmVtb3ZlZCBET00gYnJlYWtwb2lu
dCBvbiBkMS4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgicmVt
b3ZlRWxlbWVudCgnZDEnKSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNl
ZChzdGVwNy5iaW5kKG51bGwsIG5vZGUpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNyhu
b2RlKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnJl
bW92ZUJyZWFrcG9pbnRzRm9yTm9kZShub2RlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZURlYnVnZ2VyVGVzdCgpOwogICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmRET01Ob2RlQnlJ
ZChpZCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRET01Ob2Rl
KG51bGwsIGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgICAgICAgIHJldHVybiBub2RlLmdldEF0dHJp
YnV0ZSgiaWQiKSA9PT0gaWQ7CisgICAgICAgIH0sIGNhbGxiYWNrKTsKKyAgICB9CiB9OwogCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNDY4OWVjOS4uYzVkNzU0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOC0yNCAgUGF2
ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgIkF0dHJp
YnV0ZSBNb2RpZmllZCIgYW5kICJOb2RlIFJlbW92ZWQiIERPTSBicmVha3BvaW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1MzIKKworICAgICAg
ICBUZXN0OiBpbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnQuaHRtbAorCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpzZXRET01CcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpyZW1vdmVET01CcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRJbnNlcnRET01Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRSZW1vdmVET01Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRNb2RpZnlET01BdHRyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNU
cmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50
LnByb3RvdHlwZS5fcG9wdWxhdGVUYWdDb250ZXh0TWVudSk6CisKIDIwMTAtMDgtMjUgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNoaW5p
Y2hpcm8gSGFtYWppCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXgg
NzM4NTMzNS4uYjhhZTA0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cApAQCAtMTk5LDkgKzE5OSwxMiBAQCBwdWJsaWM6CiB9OwogCiBlbnVtIERPTUJyZWFrcG9pbnRU
eXBlIHsKLSAgICBET01CcmVha3BvaW50VHlwZVN1YnRyZWVNb2RpZmllZCA9IDAKKyAgICBTdWJ0
cmVlTW9kaWZpZWQgPSAwLAorICAgIEF0dHJpYnV0ZU1vZGlmaWVkLAorICAgIE5vZGVSZW1vdmVk
CiB9OwogCitjb25zdCB1aW50MzJfdCBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01hc2sg
PSAoMSA8PCBTdWJ0cmVlTW9kaWZpZWQpOwogY29uc3QgaW50IGRvbUJyZWFrcG9pbnREZXJpdmVk
VHlwZVNoaWZ0ID0gMTY7CiAKIH0KQEAgLTc0Miw4ICs3NDUsMTAgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6c2V0RE9NQnJlYWtwb2ludChsb25nIG5vZGVJZCwgbG9uZyB0eXBlKQogCiAgICAg
dWludDMyX3Qgcm9vdEJpdCA9IDEgPDwgdHlwZTsKICAgICBtX2JyZWFrcG9pbnRzLnNldChub2Rl
LCBtX2JyZWFrcG9pbnRzLmdldChub2RlKSB8IHJvb3RCaXQpOwotICAgIGZvciAoTm9kZSogY2hp
bGQgPSBpbm5lckZpcnN0Q2hpbGQobm9kZSk7IGNoaWxkOyBjaGlsZCA9IGlubmVyTmV4dFNpYmxp
bmcoY2hpbGQpKQotICAgICAgICB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoY2hpbGQsIHJvb3RC
aXQsIHRydWUpOworICAgIGlmIChyb290Qml0ICYgaW5oZXJpdGFibGVET01CcmVha3BvaW50VHlw
ZXNNYXNrKSB7CisgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBpbm5lckZpcnN0Q2hpbGQobm9k
ZSk7IGNoaWxkOyBjaGlsZCA9IGlubmVyTmV4dFNpYmxpbmcoY2hpbGQpKQorICAgICAgICAgICAg
dXBkYXRlU3VidHJlZUJyZWFrcG9pbnRzKGNoaWxkLCByb290Qml0LCB0cnVlKTsKKyAgICB9CiB9
CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlbW92ZURPTUJyZWFrcG9pbnQobG9uZyBub2Rl
SWQsIGxvbmcgdHlwZSkKQEAgLTc1OCwxMSArNzYzLDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6OnJlbW92ZURPTUJyZWFrcG9pbnQobG9uZyBub2RlSWQsIGxvbmcgdHlwZSkKICAgICAgICAg
bV9icmVha3BvaW50cy5zZXQobm9kZSwgbWFzayk7CiAgICAgZWxzZQogICAgICAgICBtX2JyZWFr
cG9pbnRzLnJlbW92ZShub2RlKTsKLSAgICBpZiAobWFzayAmIChyb290Qml0IDw8IGRvbUJyZWFr
cG9pbnREZXJpdmVkVHlwZVNoaWZ0KSkKLSAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChOb2Rl
KiBjaGlsZCA9IGlubmVyRmlyc3RDaGlsZChub2RlKTsgY2hpbGQ7IGNoaWxkID0gaW5uZXJOZXh0
U2libGluZyhjaGlsZCkpCi0gICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhjaGlsZCwg
cm9vdEJpdCwgZmFsc2UpOworICAgIGlmICgocm9vdEJpdCAmIGluaGVyaXRhYmxlRE9NQnJlYWtw
b2ludFR5cGVzTWFzaykgJiYgIShtYXNrICYgKHJvb3RCaXQgPDwgZG9tQnJlYWtwb2ludERlcml2
ZWRUeXBlU2hpZnQpKSkgeworICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gaW5uZXJGaXJzdENo
aWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbm5lck5leHRTaWJsaW5nKGNoaWxkKSkKKyAgICAg
ICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhjaGlsZCwgcm9vdEJpdCwgZmFsc2UpOwor
ICAgIH0KIH0KIAogU3RyaW5nIEluc3BlY3RvckRPTUFnZW50Ojpkb2N1bWVudFVSTFN0cmluZyhE
b2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CkBAIC05NjcsMTMgKzk3MiwxNCBAQCB2b2lkIEluc3Bl
Y3RvckRPTUFnZW50OjpkaWRJbnNlcnRET01Ob2RlKE5vZGUqIG5vZGUpCiAKICAgICBpZiAobV9i
cmVha3BvaW50cy5zaXplKCkpIHsKICAgICAgICAgTm9kZSogcGFyZW50ID0gaW5uZXJQYXJlbnRO
b2RlKG5vZGUpOwotICAgICAgICBpZiAoaGFzQnJlYWtwb2ludChwYXJlbnQsIERPTUJyZWFrcG9p
bnRUeXBlU3VidHJlZU1vZGlmaWVkKSkgeworICAgICAgICBpZiAoaGFzQnJlYWtwb2ludChwYXJl
bnQsIFN1YnRyZWVNb2RpZmllZCkpIHsKICAgICAgICAgICAgIGlmICghcGF1c2VPbkJyZWFrcG9p
bnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgdWludDMy
X3QgbWFzayA9IG1fYnJlYWtwb2ludHMuZ2V0KHBhcmVudCk7Ci0gICAgICAgIG1hc2sgPSAobWFz
ayB8IChtYXNrID4+IGRvbUJyZWFrcG9pbnREZXJpdmVkVHlwZVNoaWZ0KSkgJiAoKDEgPDwgZG9t
QnJlYWtwb2ludERlcml2ZWRUeXBlU2hpZnQpIC0gMSk7Ci0gICAgICAgIHVwZGF0ZVN1YnRyZWVC
cmVha3BvaW50cyhub2RlLCBtYXNrLCB0cnVlKTsKKyAgICAgICAgdWludDMyX3QgaW5oZXJpdGFi
bGVUeXBlc01hc2sgPSAobWFzayB8IChtYXNrID4+IGRvbUJyZWFrcG9pbnREZXJpdmVkVHlwZVNo
aWZ0KSkgJiBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01hc2s7CisgICAgICAgIGlmIChp
bmhlcml0YWJsZVR5cGVzTWFzaykKKyAgICAgICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50
cyhub2RlLCBpbmhlcml0YWJsZVR5cGVzTWFzaywgdHJ1ZSk7CiAgICAgfQogCiAgICAgLy8gV2Ug
Y291bGQgYmUgYXR0YWNoaW5nIGV4aXN0aW5nIHN1YnRyZWUuIEZvcmdldCB0aGUgYmluZGluZ3Mu
CkBAIC0xMDAzLDcgKzEwMDksNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRSZW1vdmVE
T01Ob2RlKE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2JyZWFrcG9p
bnRzLnNpemUoKSkgewotICAgICAgICBpZiAoaGFzQnJlYWtwb2ludChpbm5lclBhcmVudE5vZGUo
bm9kZSksIERPTUJyZWFrcG9pbnRUeXBlU3VidHJlZU1vZGlmaWVkKSkgeworICAgICAgICBpZiAo
aGFzQnJlYWtwb2ludChub2RlLCBOb2RlUmVtb3ZlZCkgfHwgaGFzQnJlYWtwb2ludChpbm5lclBh
cmVudE5vZGUobm9kZSksIFN1YnRyZWVNb2RpZmllZCkpIHsKICAgICAgICAgICAgIGlmICghcGF1
c2VPbkJyZWFrcG9pbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTEwNDMsNiArMTA0OSwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRNb2RpZnlET01B
dHRyKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFpZCkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgaWYgKGhhc0JyZWFrcG9pbnQoZWxlbWVudCwgQXR0cmlidXRlTW9kaWZpZWQpKSB7CisgICAg
ICAgIGlmICghcGF1c2VPbkJyZWFrcG9pbnQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBtX2Zyb250ZW5kLT5hdHRyaWJ1dGVzVXBkYXRlZChpZCwgYnVpbGRBcnJheUZvckVs
ZW1lbnRBdHRyaWJ1dGVzKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RPTUFnZW50LmpzCmluZGV4IGQxMTk2ODAuLjBkNzlkNTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRE9NQWdlbnQuanMKQEAgLTcyOCwxMSArNzI4LDE1IEBAIFdlYkluc3BlY3Rvci5E
T01CcmVha3BvaW50ID0gZnVuY3Rpb24obm9kZSwgdHlwZSkKIH0KIAogV2ViSW5zcGVjdG9yLkRP
TUJyZWFrcG9pbnQuVHlwZXMgPSB7Ci0gICAgU3VidHJlZU1vZGlmaWVkOiAwCisgICAgU3VidHJl
ZU1vZGlmaWVkOiAwLAorICAgIEF0dHJpYnV0ZU1vZGlmaWVkOiAxLAorICAgIE5vZGVSZW1vdmVk
OiAyCiB9OwogCiBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5MYWJlbHMgPSB7fTsKIFdlYklu
c3BlY3Rvci5ET01CcmVha3BvaW50LkxhYmVsc1tXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5U
eXBlcy5TdWJ0cmVlTW9kaWZpZWRdID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdWJ0cmVlIE1v
ZGlmaWVkIik7CitXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5MYWJlbHNbV2ViSW5zcGVjdG9y
LkRPTUJyZWFrcG9pbnQuVHlwZXMuQXR0cmlidXRlTW9kaWZpZWRdID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJBdHRyaWJ1dGUgTW9kaWZpZWQiKTsKK1dlYkluc3BlY3Rvci5ET01CcmVha3BvaW50
LkxhYmVsc1tXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcy5Ob2RlUmVtb3ZlZF0gPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vZGUgUmVtb3ZlZCIpOwogCiBXZWJJbnNwZWN0b3IuRE9N
QnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IGVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwppbmRleCAwZWMx
ZWIzLi40NmEzOGM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcwpAQCAtNDAyLDcgKzQwMiw3IEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0OwogICAgICAgICBpZiAoIW5vZGUubm9kZU5hbWUgfHwgbm9kZS5ub2Rl
TmFtZS50b0xvd2VyQ2FzZSgpICE9PSAiaW1nIikKICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgCisKICAgICAgICAgZnVuY3Rpb24gc2V0VG9vbHRpcChwcm9wZXJ0aWVzKQogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXMpCkBAIC03NjYsOCArNzY2LDEyIEBAIFdlYklu
c3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIC8v
IEFkZCBkZWJidWdpbmctcmVsYXRlZCBhY3Rpb25zCiAgICAgICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRTZXBhcmF0b3IoKTsKIAotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3Agb24gc3VidHJlZSBtb2RpZmljYXRpb25zIiksCisg
ICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
U3RvcCBPbiBTdWJ0cmVlIE1vZGlmaWNhdGlvbnMiKSwKICAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZG9tQnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludC5iaW5kKFdlYkluc3BlY3Rv
ci5kb21CcmVha3BvaW50TWFuYWdlciwgdGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV2ViSW5zcGVj
dG9yLkRPTUJyZWFrcG9pbnQuVHlwZXMuU3VidHJlZU1vZGlmaWVkKSk7CisgICAgICAgICAgICBj
b250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RvcCBPbiBBdHRy
aWJ1dGVzIE1vZGlmaWNhdGlvbnMiKSwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9t
QnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludC5iaW5kKFdlYkluc3BlY3Rvci5kb21CcmVh
a3BvaW50TWFuYWdlciwgdGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV2ViSW5zcGVjdG9yLkRPTUJy
ZWFrcG9pbnQuVHlwZXMuQXR0cmlidXRlTW9kaWZpZWQpKTsKKyAgICAgICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdG9wIE9uIE5vZGUgUmVtb3Zh
bCIpLAorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFuYWdlci5z
ZXRCcmVha3BvaW50LmJpbmQoV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLCB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LCBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcy5Ob2Rl
UmVtb3ZlZCkpOwogCiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVtb3ZlIEJyZWFrcG9pbnRzIiksCiAgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnRzRm9yTm9kZS5i
aW5kKFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFuYWdlciwgdGhpcy5yZXByZXNlbnRlZE9i
amVjdCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65392</attachid>
            <date>2010-08-25 03:19:07 -0700</date>
            <delta_ts>2010-08-25 03:36:52 -0700</delta_ts>
            <desc>On -&gt; on</desc>
            <filename>new_types.patch</filename>
            <type>text/plain</type>
            <size>15056</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YzUzZjFlLi44M2VmNDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDgt
MjUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
ICJBdHRyaWJ1dGUgTW9kaWZpZWQiIGFuZCAiTm9kZSBSZW1vdmVkIiBET00gYnJlYWtwb2ludHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NTMyCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Mi5qczoKKyAgICAg
ICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2Vk
LnBhdXNlZFNjcmlwdCk6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0
b3JUZXN0LndhaXRVbnRpbFBhdXNlZCk6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QyLmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lik6
CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9kb20tYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kb20t
YnJlYWtwb2ludHMuaHRtbDoKKwogMjAxMC0wOC0yNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2hpbmljaGlybyBIYW1hamkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QyLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKaW5k
ZXggNTVmNTAzNi4uNTI4ZWU4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKQEAgLTQxLDcgKzQxLDEzIEBAIEluc3BlY3RvclRl
c3QuY29tcGxldGVEZWJ1Z2dlclRlc3QgPSBmdW5jdGlvbigpCiAKIEluc3BlY3RvclRlc3Qud2Fp
dFVudGlsUGF1c2VkID0gZnVuY3Rpb24oY2FsbGJhY2spCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5f
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJwYXVzZWRTY3JpcHQiLCBjYWxsYmFjayk7CisgICAg
SW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJwYXVzZWRTY3JpcHQiLCBw
YXVzZWRTY3JpcHQpOworCisgICAgZnVuY3Rpb24gcGF1c2VkU2NyaXB0KGNhbGxGcmFtZXMpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUGF1c2VkIGF0IGxpbmUgIiAr
IGNhbGxGcmFtZXNbMF0ubGluZSArICIgaW4gIiArIGNhbGxGcmFtZXNbMF0uZnVuY3Rpb25OYW1l
KTsKKyAgICAgICAgY2FsbGJhY2soY2FsbEZyYW1lcyk7CisgICAgfQogfTsKIAogSW5zcGVjdG9y
VGVzdC5yZXN1bWVFeGVjdXRpb24gPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMKaW5kZXggN2Y1ZmZkMS4uNGQ4
YmY3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0Mi5qcwpAQCAtMzUsNiArMzUsNyBAQCBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Ug
PSBmdW5jdGlvbihjYWxsYmFjaykKIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUgPSBmdW5jdGlv
bihyb290LCBmaWx0ZXIsIGNhbGxiYWNrKQogewogICAgIHZhciBmb3VuZCA9IGZhbHNlOworICAg
IHZhciBwZW5kaW5nQ2FsbHMgPSAwOwogCiAgICAgaWYgKHJvb3QpCiAgICAgICAgIGZpbmRET01O
b2RlKHJvb3QpOwpAQCAtNTUsMTQgKzU2LDE5IEBAIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUg
PSBmdW5jdGlvbihyb290LCBmaWx0ZXIsIGNhbGxiYWNrKQogICAgICAgICBpZiAoZmlsdGVyKG5v
ZGUpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhub2RlKTsKICAgICAgICAgICAgIGZvdW5kID0g
dHJ1ZTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwZW5k
aW5nQ2FsbHMgKz0gMTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5nZXRDaGls
ZE5vZGVzQXN5bmMobm9kZSwgcHJvY2Vzc0NoaWxkcmVuKTsKKyAgICAgICAgfQogCiAgICAgICAg
IGZ1bmN0aW9uIHByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbikKICAgICAgICAgeworICAgICAgICAg
ICAgcGVuZGluZ0NhbGxzIC09IDE7CisKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyAhZm91
bmQgJiYgY2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAgICAgICAg
ICAgIGZpbmRET01Ob2RlKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgICAgIGlmICghZm91bmQgJiYg
bm9kZSA9PT0gcm9vdCkKKworICAgICAgICAgICAgaWYgKCFmb3VuZCAmJiAhcGVuZGluZ0NhbGxz
ICYmIG5vZGUgPT0gcm9vdCkKICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTczLDYgKzc5LDcgQEAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlciA9
IGZ1bmN0aW9uKHJlY2VpdmVyLCBtZXRob2ROYW1lLCBvdmVycmlkZSwgb3B0X3N0aWNreSkKICAg
ICB2YXIgb3JpZ2luYWwgPSByZWNlaXZlclttZXRob2ROYW1lXTsKICAgICBpZiAodHlwZW9mIG9y
aWdpbmFsICE9PSAiZnVuY3Rpb24iKQogICAgICAgICB0aHJvdyAoIkNhbm5vdCBmaW5kIG1ldGhv
ZCB0byBvdmVycmlkZTogIiArIG1ldGhvZE5hbWUpOworCiAgICAgcmVjZWl2ZXJbbWV0aG9kTmFt
ZV0gPSBmdW5jdGlvbih2YXJfYXJncykgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFy
IHJlc3VsdCA9IG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IDA2ZDUz
M2YuLjkzZjFlOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtw
b2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtw
b2ludHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsMTQgQEAKIFRlc3RzIERPTSBicmVha3BvaW50
cy4gQnVnIDQyODg2CiAKIERlYnVnZ2VyIHdhcyBlbmFibGVkLgotRm91bmQgZGl2IGVsZW1lbnQu
Ci1TZXQgRE9NIGJyZWFrcG9pbnQuCi1QYXVzZWQgYXQgbGluZSAxMCBpbiBhcHBlbmRFbGVtZW50
CitGb3VuZCBkb20gbm9kZSBkMC4KK1NldCBzdWJ0cmVlIG1vZGlmaWVkIERPTSBicmVha3BvaW50
IG9uIGQwLgorUGF1c2VkIGF0IGxpbmUgMTEgaW4gYXBwZW5kRWxlbWVudAorRm91bmQgZG9tIG5v
ZGUgZDEuCitTZXQgYXR0cmlidXRlIG1vZGlmaWVkIERPTSBicmVha3BvaW50IG9uIGQxLgorUGF1
c2VkIGF0IGxpbmUgMTcgaW4gbW9kaWZ5QXR0cmlidXRlCitGb3VuZCBkb20gbm9kZSBkMS4KK1Nl
dCBub2RlIHJlbW92ZWQgRE9NIGJyZWFrcG9pbnQgb24gZDEuCitQYXVzZWQgYXQgbGluZSAyMyBp
biByZW1vdmVFbGVtZW50CiBEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20tYnJlYWtwb2ludHMuaHRtbAppbmRleCA0MGZkMmE5Li5mYmI2NTMyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy5odG1sCkBAIC00LDM3ICs0LDg3
IEBACiA8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotZnVuY3Rpb24gYXBwZW5kRWxlbWVudCgpCitmdW5j
dGlvbiBhcHBlbmRFbGVtZW50KHBhcmVudElkLCBjaGlsZElkKQogewogICAgIHZhciBjaGlsZCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkMCIpLmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICBjaGlsZC5pZCA9IGNoaWxkSWQ7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocGFyZW50SWQpLmFwcGVuZENoaWxkKGNoaWxkKTsK
K30KKworZnVuY3Rpb24gbW9kaWZ5QXR0cmlidXRlKGVsZW1lbnRJZCwgbmFtZSwgdmFsdWUpCit7
CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwor
ICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKK30KKworZnVuY3Rpb24gcmVt
b3ZlRWxlbWVudChlbGVtZW50SWQpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChlbGVtZW50KTsKIH0KIAogdmFyIHRlc3QgPSBmdW5jdGlvbigpCiB7Ci0gICAgSW5zcGVjdG9y
VGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGFydERlYnVnZ2VyVGVzdENhbGxiYWNrKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKIAotICAgIGZ1bmN0aW9uIHN0
YXJ0RGVidWdnZXJUZXN0Q2FsbGJhY2soKQorICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUobnVsbCwgZnVuY3Rpb24obm9kZSkgewot
ICAgICAgICAgICAgcmV0dXJuIG5vZGUuZ2V0QXR0cmlidXRlKCJpZCIpID09PSAiZDAiOwotICAg
ICAgICB9LCBmaW5kRE9NTm9kZUNhbGxiYWNrKTsKKyAgICAgICAgZmluZERPTU5vZGVCeUlkKCJk
MCIsIHN0ZXAyKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBmaW5kRE9NTm9kZUNhbGxiYWNrKG5v
ZGUpCisgICAgZnVuY3Rpb24gc3RlcDIobm9kZSkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJGb3VuZCBkaXYgZWxlbWVudC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkZvdW5kIGRvbSBub2RlIGQwLiIpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tQnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChub2RlLCBXZWJJbnNwZWN0b3IuRE9N
QnJlYWtwb2ludC5UeXBlcy5TdWJ0cmVlTW9kaWZpZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2V0IERPTSBicmVha3BvaW50LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5Db25zb2xlKCJhcHBlbmRFbGVtZW50KCkiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC53YWl0VW50aWxQYXVzZWQod2FpdFVudGlsUGF1c2VkQ2FsbGJhY2spOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IHN1YnRyZWUgbW9kaWZpZWQgRE9NIGJyZWFrcG9p
bnQgb24gZDAuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImFw
cGVuZEVsZW1lbnQoJ2QwJywgJ2QxJykiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50
aWxQYXVzZWQoc3RlcDMuYmluZChudWxsLCBub2RlKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDMobm9kZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFu
YWdlci5yZW1vdmVCcmVha3BvaW50c0Zvck5vZGUobm9kZSk7CisgICAgICAgIEluc3BlY3RvclRl
c3QucmVzdW1lRXhlY3V0aW9uKCk7CisgICAgICAgIGZpbmRET01Ob2RlQnlJZCgiZDEiLCBzdGVw
NCk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gd2FpdFVudGlsUGF1c2VkQ2FsbGJhY2soY2FsbEZy
YW1lcykKKyAgICBmdW5jdGlvbiBzdGVwNChub2RlKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlBhdXNlZCBhdCBsaW5lICIgKyBjYWxsRnJhbWVzWzBdLmxpbmUgKyAi
IGluICIgKyBjYWxsRnJhbWVzWzBdLmZ1bmN0aW9uTmFtZSk7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJGb3VuZCBkb20gbm9kZSBkMS4iKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQobm9kZSwgV2ViSW5zcGVjdG9yLkRP
TUJyZWFrcG9pbnQuVHlwZXMuQXR0cmlidXRlTW9kaWZpZWQpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU2V0IGF0dHJpYnV0ZSBtb2RpZmllZCBET00gYnJlYWtwb2ludCBvbiBk
MS4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgibW9kaWZ5QXR0
cmlidXRlKCdkMScsICdjbGFzc05hbWUnLCAnZm9vJykiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0VW50aWxQYXVzZWQoc3RlcDUuYmluZChudWxsLCBub2RlKSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc3RlcDUobm9kZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVh
a3BvaW50TWFuYWdlci5yZW1vdmVCcmVha3BvaW50c0Zvck5vZGUobm9kZSk7CisgICAgICAgIElu
c3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKCk7CisgICAgICAgIGZpbmRET01Ob2RlQnlJZCgi
ZDEiLCBzdGVwNik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDYobm9kZSkKKyAgICB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGb3VuZCBkb20gbm9kZSBkMS4iKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQobm9k
ZSwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQuVHlwZXMuTm9kZVJlbW92ZWQpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IG5vZGUgcmVtb3ZlZCBET00gYnJlYWtwb2lu
dCBvbiBkMS4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgicmVt
b3ZlRWxlbWVudCgnZDEnKSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNl
ZChzdGVwNy5iaW5kKG51bGwsIG5vZGUpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNyhu
b2RlKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnJl
bW92ZUJyZWFrcG9pbnRzRm9yTm9kZShub2RlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZURlYnVnZ2VyVGVzdCgpOwogICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmRET01Ob2RlQnlJ
ZChpZCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRET01Ob2Rl
KG51bGwsIGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgICAgICAgIHJldHVybiBub2RlLmdldEF0dHJp
YnV0ZSgiaWQiKSA9PT0gaWQ7CisgICAgICAgIH0sIGNhbGxiYWNrKTsKKyAgICB9CiB9OwogCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNDY4OWVjOS4uYzVkNzU0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOC0yNCAgUGF2
ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgIkF0dHJp
YnV0ZSBNb2RpZmllZCIgYW5kICJOb2RlIFJlbW92ZWQiIERPTSBicmVha3BvaW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1MzIKKworICAgICAg
ICBUZXN0OiBpbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnQuaHRtbAorCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpzZXRET01CcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpyZW1vdmVET01CcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRJbnNlcnRET01Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRSZW1vdmVET01Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRNb2RpZnlET01BdHRyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNU
cmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50
LnByb3RvdHlwZS5fcG9wdWxhdGVUYWdDb250ZXh0TWVudSk6CisKIDIwMTAtMDgtMjUgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNoaW5p
Y2hpcm8gSGFtYWppCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXgg
NzM4NTMzNS4uYjhhZTA0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cApAQCAtMTk5LDkgKzE5OSwxMiBAQCBwdWJsaWM6CiB9OwogCiBlbnVtIERPTUJyZWFrcG9pbnRU
eXBlIHsKLSAgICBET01CcmVha3BvaW50VHlwZVN1YnRyZWVNb2RpZmllZCA9IDAKKyAgICBTdWJ0
cmVlTW9kaWZpZWQgPSAwLAorICAgIEF0dHJpYnV0ZU1vZGlmaWVkLAorICAgIE5vZGVSZW1vdmVk
CiB9OwogCitjb25zdCB1aW50MzJfdCBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01hc2sg
PSAoMSA8PCBTdWJ0cmVlTW9kaWZpZWQpOwogY29uc3QgaW50IGRvbUJyZWFrcG9pbnREZXJpdmVk
VHlwZVNoaWZ0ID0gMTY7CiAKIH0KQEAgLTc0Miw4ICs3NDUsMTAgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6c2V0RE9NQnJlYWtwb2ludChsb25nIG5vZGVJZCwgbG9uZyB0eXBlKQogCiAgICAg
dWludDMyX3Qgcm9vdEJpdCA9IDEgPDwgdHlwZTsKICAgICBtX2JyZWFrcG9pbnRzLnNldChub2Rl
LCBtX2JyZWFrcG9pbnRzLmdldChub2RlKSB8IHJvb3RCaXQpOwotICAgIGZvciAoTm9kZSogY2hp
bGQgPSBpbm5lckZpcnN0Q2hpbGQobm9kZSk7IGNoaWxkOyBjaGlsZCA9IGlubmVyTmV4dFNpYmxp
bmcoY2hpbGQpKQotICAgICAgICB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoY2hpbGQsIHJvb3RC
aXQsIHRydWUpOworICAgIGlmIChyb290Qml0ICYgaW5oZXJpdGFibGVET01CcmVha3BvaW50VHlw
ZXNNYXNrKSB7CisgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBpbm5lckZpcnN0Q2hpbGQobm9k
ZSk7IGNoaWxkOyBjaGlsZCA9IGlubmVyTmV4dFNpYmxpbmcoY2hpbGQpKQorICAgICAgICAgICAg
dXBkYXRlU3VidHJlZUJyZWFrcG9pbnRzKGNoaWxkLCByb290Qml0LCB0cnVlKTsKKyAgICB9CiB9
CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlbW92ZURPTUJyZWFrcG9pbnQobG9uZyBub2Rl
SWQsIGxvbmcgdHlwZSkKQEAgLTc1OCwxMSArNzYzLDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6OnJlbW92ZURPTUJyZWFrcG9pbnQobG9uZyBub2RlSWQsIGxvbmcgdHlwZSkKICAgICAgICAg
bV9icmVha3BvaW50cy5zZXQobm9kZSwgbWFzayk7CiAgICAgZWxzZQogICAgICAgICBtX2JyZWFr
cG9pbnRzLnJlbW92ZShub2RlKTsKLSAgICBpZiAobWFzayAmIChyb290Qml0IDw8IGRvbUJyZWFr
cG9pbnREZXJpdmVkVHlwZVNoaWZ0KSkKLSAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChOb2Rl
KiBjaGlsZCA9IGlubmVyRmlyc3RDaGlsZChub2RlKTsgY2hpbGQ7IGNoaWxkID0gaW5uZXJOZXh0
U2libGluZyhjaGlsZCkpCi0gICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhjaGlsZCwg
cm9vdEJpdCwgZmFsc2UpOworICAgIGlmICgocm9vdEJpdCAmIGluaGVyaXRhYmxlRE9NQnJlYWtw
b2ludFR5cGVzTWFzaykgJiYgIShtYXNrICYgKHJvb3RCaXQgPDwgZG9tQnJlYWtwb2ludERlcml2
ZWRUeXBlU2hpZnQpKSkgeworICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0gaW5uZXJGaXJzdENo
aWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbm5lck5leHRTaWJsaW5nKGNoaWxkKSkKKyAgICAg
ICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhjaGlsZCwgcm9vdEJpdCwgZmFsc2UpOwor
ICAgIH0KIH0KIAogU3RyaW5nIEluc3BlY3RvckRPTUFnZW50Ojpkb2N1bWVudFVSTFN0cmluZyhE
b2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CkBAIC05NjcsMTMgKzk3MiwxNCBAQCB2b2lkIEluc3Bl
Y3RvckRPTUFnZW50OjpkaWRJbnNlcnRET01Ob2RlKE5vZGUqIG5vZGUpCiAKICAgICBpZiAobV9i
cmVha3BvaW50cy5zaXplKCkpIHsKICAgICAgICAgTm9kZSogcGFyZW50ID0gaW5uZXJQYXJlbnRO
b2RlKG5vZGUpOwotICAgICAgICBpZiAoaGFzQnJlYWtwb2ludChwYXJlbnQsIERPTUJyZWFrcG9p
bnRUeXBlU3VidHJlZU1vZGlmaWVkKSkgeworICAgICAgICBpZiAoaGFzQnJlYWtwb2ludChwYXJl
bnQsIFN1YnRyZWVNb2RpZmllZCkpIHsKICAgICAgICAgICAgIGlmICghcGF1c2VPbkJyZWFrcG9p
bnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgdWludDMy
X3QgbWFzayA9IG1fYnJlYWtwb2ludHMuZ2V0KHBhcmVudCk7Ci0gICAgICAgIG1hc2sgPSAobWFz
ayB8IChtYXNrID4+IGRvbUJyZWFrcG9pbnREZXJpdmVkVHlwZVNoaWZ0KSkgJiAoKDEgPDwgZG9t
QnJlYWtwb2ludERlcml2ZWRUeXBlU2hpZnQpIC0gMSk7Ci0gICAgICAgIHVwZGF0ZVN1YnRyZWVC
cmVha3BvaW50cyhub2RlLCBtYXNrLCB0cnVlKTsKKyAgICAgICAgdWludDMyX3QgaW5oZXJpdGFi
bGVUeXBlc01hc2sgPSAobWFzayB8IChtYXNrID4+IGRvbUJyZWFrcG9pbnREZXJpdmVkVHlwZVNo
aWZ0KSkgJiBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01hc2s7CisgICAgICAgIGlmIChp
bmhlcml0YWJsZVR5cGVzTWFzaykKKyAgICAgICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50
cyhub2RlLCBpbmhlcml0YWJsZVR5cGVzTWFzaywgdHJ1ZSk7CiAgICAgfQogCiAgICAgLy8gV2Ug
Y291bGQgYmUgYXR0YWNoaW5nIGV4aXN0aW5nIHN1YnRyZWUuIEZvcmdldCB0aGUgYmluZGluZ3Mu
CkBAIC0xMDAzLDcgKzEwMDksNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRSZW1vdmVE
T01Ob2RlKE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2JyZWFrcG9p
bnRzLnNpemUoKSkgewotICAgICAgICBpZiAoaGFzQnJlYWtwb2ludChpbm5lclBhcmVudE5vZGUo
bm9kZSksIERPTUJyZWFrcG9pbnRUeXBlU3VidHJlZU1vZGlmaWVkKSkgeworICAgICAgICBpZiAo
aGFzQnJlYWtwb2ludChub2RlLCBOb2RlUmVtb3ZlZCkgfHwgaGFzQnJlYWtwb2ludChpbm5lclBh
cmVudE5vZGUobm9kZSksIFN1YnRyZWVNb2RpZmllZCkpIHsKICAgICAgICAgICAgIGlmICghcGF1
c2VPbkJyZWFrcG9pbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTEwNDMsNiArMTA0OSwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRNb2RpZnlET01B
dHRyKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFpZCkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgaWYgKGhhc0JyZWFrcG9pbnQoZWxlbWVudCwgQXR0cmlidXRlTW9kaWZpZWQpKSB7CisgICAg
ICAgIGlmICghcGF1c2VPbkJyZWFrcG9pbnQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBtX2Zyb250ZW5kLT5hdHRyaWJ1dGVzVXBkYXRlZChpZCwgYnVpbGRBcnJheUZvckVs
ZW1lbnRBdHRyaWJ1dGVzKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RPTUFnZW50LmpzCmluZGV4IGQxMTk2ODAuLjBkNzlkNTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRE9NQWdlbnQuanMKQEAgLTcyOCwxMSArNzI4LDE1IEBAIFdlYkluc3BlY3Rvci5E
T01CcmVha3BvaW50ID0gZnVuY3Rpb24obm9kZSwgdHlwZSkKIH0KIAogV2ViSW5zcGVjdG9yLkRP
TUJyZWFrcG9pbnQuVHlwZXMgPSB7Ci0gICAgU3VidHJlZU1vZGlmaWVkOiAwCisgICAgU3VidHJl
ZU1vZGlmaWVkOiAwLAorICAgIEF0dHJpYnV0ZU1vZGlmaWVkOiAxLAorICAgIE5vZGVSZW1vdmVk
OiAyCiB9OwogCiBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5MYWJlbHMgPSB7fTsKIFdlYklu
c3BlY3Rvci5ET01CcmVha3BvaW50LkxhYmVsc1tXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5U
eXBlcy5TdWJ0cmVlTW9kaWZpZWRdID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdWJ0cmVlIE1v
ZGlmaWVkIik7CitXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5MYWJlbHNbV2ViSW5zcGVjdG9y
LkRPTUJyZWFrcG9pbnQuVHlwZXMuQXR0cmlidXRlTW9kaWZpZWRdID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJBdHRyaWJ1dGUgTW9kaWZpZWQiKTsKK1dlYkluc3BlY3Rvci5ET01CcmVha3BvaW50
LkxhYmVsc1tXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcy5Ob2RlUmVtb3ZlZF0gPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5vZGUgUmVtb3ZlZCIpOwogCiBXZWJJbnNwZWN0b3IuRE9N
QnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IGVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwppbmRleCAwZWMx
ZWIzLi43ZjQ4MTYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcwpAQCAtNDAyLDcgKzQwMiw3IEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0OwogICAgICAgICBpZiAoIW5vZGUubm9kZU5hbWUgfHwgbm9kZS5ub2Rl
TmFtZS50b0xvd2VyQ2FzZSgpICE9PSAiaW1nIikKICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgCisKICAgICAgICAgZnVuY3Rpb24gc2V0VG9vbHRpcChwcm9wZXJ0aWVzKQogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXMpCkBAIC03NjYsOCArNzY2LDEyIEBAIFdlYklu
c3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIC8v
IEFkZCBkZWJidWdpbmctcmVsYXRlZCBhY3Rpb25zCiAgICAgICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRTZXBhcmF0b3IoKTsKIAotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3Agb24gc3VidHJlZSBtb2RpZmljYXRpb25zIiksCisg
ICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
U3RvcCBvbiBTdWJ0cmVlIE1vZGlmaWNhdGlvbnMiKSwKICAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZG9tQnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludC5iaW5kKFdlYkluc3BlY3Rv
ci5kb21CcmVha3BvaW50TWFuYWdlciwgdGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV2ViSW5zcGVj
dG9yLkRPTUJyZWFrcG9pbnQuVHlwZXMuU3VidHJlZU1vZGlmaWVkKSk7CisgICAgICAgICAgICBj
b250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RvcCBvbiBBdHRy
aWJ1dGVzIE1vZGlmaWNhdGlvbnMiKSwKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZG9t
QnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludC5iaW5kKFdlYkluc3BlY3Rvci5kb21CcmVh
a3BvaW50TWFuYWdlciwgdGhpcy5yZXByZXNlbnRlZE9iamVjdCwgV2ViSW5zcGVjdG9yLkRPTUJy
ZWFrcG9pbnQuVHlwZXMuQXR0cmlidXRlTW9kaWZpZWQpKTsKKyAgICAgICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdG9wIG9uIE5vZGUgUmVtb3Zh
bCIpLAorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFuYWdlci5z
ZXRCcmVha3BvaW50LmJpbmQoV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLCB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LCBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5UeXBlcy5Ob2Rl
UmVtb3ZlZCkpOwogCiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVtb3ZlIEJyZWFrcG9pbnRzIiksCiAgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnRzRm9yTm9kZS5i
aW5kKFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFuYWdlciwgdGhpcy5yZXByZXNlbnRlZE9i
amVjdCkpOwo=
</data>
<flag name="review"
          id="54168"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65395</attachid>
            <date>2010-08-25 03:36:52 -0700</date>
            <delta_ts>2010-08-25 04:55:31 -0700</delta_ts>
            <desc>+ strings</desc>
            <filename>new_types.patch</filename>
            <type>text/plain</type>
            <size>15666</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YzUzZjFlLi44M2VmNDFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDgt
MjUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRk
ICJBdHRyaWJ1dGUgTW9kaWZpZWQiIGFuZCAiTm9kZSBSZW1vdmVkIiBET00gYnJlYWtwb2ludHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NTMyCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Mi5qczoKKyAgICAg
ICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2Vk
LnBhdXNlZFNjcmlwdCk6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0
b3JUZXN0LndhaXRVbnRpbFBhdXNlZCk6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QyLmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lik6
CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9kb20tYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kb20t
YnJlYWtwb2ludHMuaHRtbDoKKwogMjAxMC0wOC0yNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2hpbmljaGlybyBIYW1hamkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QyLmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKaW5k
ZXggNTVmNTAzNi4uNTI4ZWU4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKQEAgLTQxLDcgKzQxLDEzIEBAIEluc3BlY3RvclRl
c3QuY29tcGxldGVEZWJ1Z2dlclRlc3QgPSBmdW5jdGlvbigpCiAKIEluc3BlY3RvclRlc3Qud2Fp
dFVudGlsUGF1c2VkID0gZnVuY3Rpb24oY2FsbGJhY2spCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5f
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJwYXVzZWRTY3JpcHQiLCBjYWxsYmFjayk7CisgICAg
SW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJwYXVzZWRTY3JpcHQiLCBw
YXVzZWRTY3JpcHQpOworCisgICAgZnVuY3Rpb24gcGF1c2VkU2NyaXB0KGNhbGxGcmFtZXMpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUGF1c2VkIGF0IGxpbmUgIiAr
IGNhbGxGcmFtZXNbMF0ubGluZSArICIgaW4gIiArIGNhbGxGcmFtZXNbMF0uZnVuY3Rpb25OYW1l
KTsKKyAgICAgICAgY2FsbGJhY2soY2FsbEZyYW1lcyk7CisgICAgfQogfTsKIAogSW5zcGVjdG9y
VGVzdC5yZXN1bWVFeGVjdXRpb24gPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMKaW5kZXggN2Y1ZmZkMS4uNGQ4
YmY3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0Mi5qcwpAQCAtMzUsNiArMzUsNyBAQCBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Ug
PSBmdW5jdGlvbihjYWxsYmFjaykKIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUgPSBmdW5jdGlv
bihyb290LCBmaWx0ZXIsIGNhbGxiYWNrKQogewogICAgIHZhciBmb3VuZCA9IGZhbHNlOworICAg
IHZhciBwZW5kaW5nQ2FsbHMgPSAwOwogCiAgICAgaWYgKHJvb3QpCiAgICAgICAgIGZpbmRET01O
b2RlKHJvb3QpOwpAQCAtNTUsMTQgKzU2LDE5IEBAIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUg
PSBmdW5jdGlvbihyb290LCBmaWx0ZXIsIGNhbGxiYWNrKQogICAgICAgICBpZiAoZmlsdGVyKG5v
ZGUpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhub2RlKTsKICAgICAgICAgICAgIGZvdW5kID0g
dHJ1ZTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwZW5k
aW5nQ2FsbHMgKz0gMTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5nZXRDaGls
ZE5vZGVzQXN5bmMobm9kZSwgcHJvY2Vzc0NoaWxkcmVuKTsKKyAgICAgICAgfQogCiAgICAgICAg
IGZ1bmN0aW9uIHByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbikKICAgICAgICAgeworICAgICAgICAg
ICAgcGVuZGluZ0NhbGxzIC09IDE7CisKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyAhZm91
bmQgJiYgY2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAgICAgICAg
ICAgIGZpbmRET01Ob2RlKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgICAgIGlmICghZm91bmQgJiYg
bm9kZSA9PT0gcm9vdCkKKworICAgICAgICAgICAgaWYgKCFmb3VuZCAmJiAhcGVuZGluZ0NhbGxz
ICYmIG5vZGUgPT0gcm9vdCkKICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTczLDYgKzc5LDcgQEAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlciA9
IGZ1bmN0aW9uKHJlY2VpdmVyLCBtZXRob2ROYW1lLCBvdmVycmlkZSwgb3B0X3N0aWNreSkKICAg
ICB2YXIgb3JpZ2luYWwgPSByZWNlaXZlclttZXRob2ROYW1lXTsKICAgICBpZiAodHlwZW9mIG9y
aWdpbmFsICE9PSAiZnVuY3Rpb24iKQogICAgICAgICB0aHJvdyAoIkNhbm5vdCBmaW5kIG1ldGhv
ZCB0byBvdmVycmlkZTogIiArIG1ldGhvZE5hbWUpOworCiAgICAgcmVjZWl2ZXJbbWV0aG9kTmFt
ZV0gPSBmdW5jdGlvbih2YXJfYXJncykgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFy
IHJlc3VsdCA9IG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IDA2ZDUz
M2YuLjkzZjFlOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtw
b2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtw
b2ludHMtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsMTQgQEAKIFRlc3RzIERPTSBicmVha3BvaW50
cy4gQnVnIDQyODg2CiAKIERlYnVnZ2VyIHdhcyBlbmFibGVkLgotRm91bmQgZGl2IGVsZW1lbnQu
Ci1TZXQgRE9NIGJyZWFrcG9pbnQuCi1QYXVzZWQgYXQgbGluZSAxMCBpbiBhcHBlbmRFbGVtZW50
CitGb3VuZCBkb20gbm9kZSBkMC4KK1NldCBzdWJ0cmVlIG1vZGlmaWVkIERPTSBicmVha3BvaW50
IG9uIGQwLgorUGF1c2VkIGF0IGxpbmUgMTEgaW4gYXBwZW5kRWxlbWVudAorRm91bmQgZG9tIG5v
ZGUgZDEuCitTZXQgYXR0cmlidXRlIG1vZGlmaWVkIERPTSBicmVha3BvaW50IG9uIGQxLgorUGF1
c2VkIGF0IGxpbmUgMTcgaW4gbW9kaWZ5QXR0cmlidXRlCitGb3VuZCBkb20gbm9kZSBkMS4KK1Nl
dCBub2RlIHJlbW92ZWQgRE9NIGJyZWFrcG9pbnQgb24gZDEuCitQYXVzZWQgYXQgbGluZSAyMyBp
biByZW1vdmVFbGVtZW50CiBEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20tYnJlYWtwb2ludHMuaHRtbAppbmRleCA0MGZkMmE5Li5mYmI2NTMyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy5odG1sCkBAIC00LDM3ICs0LDg3
IEBACiA8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotZnVuY3Rpb24gYXBwZW5kRWxlbWVudCgpCitmdW5j
dGlvbiBhcHBlbmRFbGVtZW50KHBhcmVudElkLCBjaGlsZElkKQogewogICAgIHZhciBjaGlsZCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkMCIpLmFwcGVuZENoaWxkKGNoaWxkKTsKKyAgICBjaGlsZC5pZCA9IGNoaWxkSWQ7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocGFyZW50SWQpLmFwcGVuZENoaWxkKGNoaWxkKTsK
K30KKworZnVuY3Rpb24gbW9kaWZ5QXR0cmlidXRlKGVsZW1lbnRJZCwgbmFtZSwgdmFsdWUpCit7
CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwor
ICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKK30KKworZnVuY3Rpb24gcmVt
b3ZlRWxlbWVudChlbGVtZW50SWQpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SWQpOworICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChlbGVtZW50KTsKIH0KIAogdmFyIHRlc3QgPSBmdW5jdGlvbigpCiB7Ci0gICAgSW5zcGVjdG9y
VGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGFydERlYnVnZ2VyVGVzdENhbGxiYWNrKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHN0ZXAxKTsKIAotICAgIGZ1bmN0aW9uIHN0
YXJ0RGVidWdnZXJUZXN0Q2FsbGJhY2soKQorICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZmluZERPTU5vZGUobnVsbCwgZnVuY3Rpb24obm9kZSkgewot
ICAgICAgICAgICAgcmV0dXJuIG5vZGUuZ2V0QXR0cmlidXRlKCJpZCIpID09PSAiZDAiOwotICAg
ICAgICB9LCBmaW5kRE9NTm9kZUNhbGxiYWNrKTsKKyAgICAgICAgZmluZERPTU5vZGVCeUlkKCJk
MCIsIHN0ZXAyKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBmaW5kRE9NTm9kZUNhbGxiYWNrKG5v
ZGUpCisgICAgZnVuY3Rpb24gc3RlcDIobm9kZSkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJGb3VuZCBkaXYgZWxlbWVudC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkZvdW5kIGRvbSBub2RlIGQwLiIpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tQnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChub2RlLCBXZWJJbnNwZWN0b3IuRE9N
QnJlYWtwb2ludC5UeXBlcy5TdWJ0cmVlTW9kaWZpZWQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2V0IERPTSBicmVha3BvaW50LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5Db25zb2xlKCJhcHBlbmRFbGVtZW50KCkiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC53YWl0VW50aWxQYXVzZWQod2FpdFVudGlsUGF1c2VkQ2FsbGJhY2spOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IHN1YnRyZWUgbW9kaWZpZWQgRE9NIGJyZWFrcG9p
bnQgb24gZDAuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImFw
cGVuZEVsZW1lbnQoJ2QwJywgJ2QxJykiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50
aWxQYXVzZWQoc3RlcDMuYmluZChudWxsLCBub2RlKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDMobm9kZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFu
YWdlci5yZW1vdmVCcmVha3BvaW50c0Zvck5vZGUobm9kZSk7CisgICAgICAgIEluc3BlY3RvclRl
c3QucmVzdW1lRXhlY3V0aW9uKCk7CisgICAgICAgIGZpbmRET01Ob2RlQnlJZCgiZDEiLCBzdGVw
NCk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gd2FpdFVudGlsUGF1c2VkQ2FsbGJhY2soY2FsbEZy
YW1lcykKKyAgICBmdW5jdGlvbiBzdGVwNChub2RlKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlBhdXNlZCBhdCBsaW5lICIgKyBjYWxsRnJhbWVzWzBdLmxpbmUgKyAi
IGluICIgKyBjYWxsRnJhbWVzWzBdLmZ1bmN0aW9uTmFtZSk7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJGb3VuZCBkb20gbm9kZSBkMS4iKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQobm9kZSwgV2ViSW5zcGVjdG9yLkRP
TUJyZWFrcG9pbnQuVHlwZXMuQXR0cmlidXRlTW9kaWZpZWQpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU2V0IGF0dHJpYnV0ZSBtb2RpZmllZCBET00gYnJlYWtwb2ludCBvbiBk
MS4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgibW9kaWZ5QXR0
cmlidXRlKCdkMScsICdjbGFzc05hbWUnLCAnZm9vJykiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC53YWl0VW50aWxQYXVzZWQoc3RlcDUuYmluZChudWxsLCBub2RlKSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc3RlcDUobm9kZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVh
a3BvaW50TWFuYWdlci5yZW1vdmVCcmVha3BvaW50c0Zvck5vZGUobm9kZSk7CisgICAgICAgIElu
c3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKCk7CisgICAgICAgIGZpbmRET01Ob2RlQnlJZCgi
ZDEiLCBzdGVwNik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDYobm9kZSkKKyAgICB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGb3VuZCBkb20gbm9kZSBkMS4iKTsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQobm9k
ZSwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQuVHlwZXMuTm9kZVJlbW92ZWQpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IG5vZGUgcmVtb3ZlZCBET00gYnJlYWtwb2lu
dCBvbiBkMS4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgicmVt
b3ZlRWxlbWVudCgnZDEnKSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNl
ZChzdGVwNy5iaW5kKG51bGwsIG5vZGUpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNyhu
b2RlKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2VyLnJl
bW92ZUJyZWFrcG9pbnRzRm9yTm9kZShub2RlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZURlYnVnZ2VyVGVzdCgpOwogICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmRET01Ob2RlQnlJ
ZChpZCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmZpbmRET01Ob2Rl
KG51bGwsIGZ1bmN0aW9uKG5vZGUpIHsKKyAgICAgICAgICAgIHJldHVybiBub2RlLmdldEF0dHJp
YnV0ZSgiaWQiKSA9PT0gaWQ7CisgICAgICAgIH0sIGNhbGxiYWNrKTsKKyAgICB9CiB9OwogCiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNDY4OWVjOS4uYzVkNzU0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOC0yNCAgUGF2
ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgIkF0dHJp
YnV0ZSBNb2RpZmllZCIgYW5kICJOb2RlIFJlbW92ZWQiIERPTSBicmVha3BvaW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1MzIKKworICAgICAg
ICBUZXN0OiBpbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnQuaHRtbAorCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpzZXRET01CcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpyZW1vdmVET01CcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRJbnNlcnRET01Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRSZW1vdmVET01Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpkaWRNb2RpZnlET01BdHRyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNU
cmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50
LnByb3RvdHlwZS5fcG9wdWxhdGVUYWdDb250ZXh0TWVudSk6CisKIDIwMTAtMDgtMjUgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNoaW5p
Y2hpcm8gSGFtYWppCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmlu
ZGV4IDE2ZDg3YWVhMmNlOWZjYTg3N2Y4Nzc5ZWMyMDY2MzUyMGFkYzA3ZTcuLjM4ZjEyYWU2YmVj
M2Q5YjYzZmUwZWUzYjFkMTUyMGNkZTQ5ZTc2YTMgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVs
dGEgNTk4CnpjbWRtVmlzezJlclZYbGN6OWtHTDNgR28/M2BxPjdLdnBWKTApc0NASzBedm5Cbl5t
RGZoO0E0U2ZIcGE1R3llXwp6MEBkSkFLUkpNM2ZBVWZ9d2F1UCNUR3F4WFZCPjstV0c+TGlHN1E3
fnohcmg1Z3NUQT11c0p7UzY1cihHPV5+U30Kejc1RkFVUGdqfjtBRmVaYlhGQV96JEJZaiQlPXJ2
P2xNX3J1JjVPflRuI188MGJYcTNSJXNoci02aHtYRyNxJHtvCnpmYTstb3JTYSZVb0tVREFpS0hI
PTN5Vjh9Y0lEdTwxR2s+WjJVXyooO2Nmd3sza0MqejU7I2F4IUombTVfKGJ9TQplTHtxRk1yeGp7
JClAKmZTYT5yKm1kZCVaZDN5SE0kIT9GUEkhK3ZASQoKZGVsdGEgMzgKd2NtVis+ME5NWlcoRV9y
ezA8YXw+bGhxejN2JmtNUEpGezA+JkpNR3FZNDlBZ2Q1QXMmdm5gOW05YSVYTUM7JEtlCgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDczODUzMzUuLmI4YWUwNDcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTE5OSw5ICsxOTks
MTIgQEAgcHVibGljOgogfTsKIAogZW51bSBET01CcmVha3BvaW50VHlwZSB7Ci0gICAgRE9NQnJl
YWtwb2ludFR5cGVTdWJ0cmVlTW9kaWZpZWQgPSAwCisgICAgU3VidHJlZU1vZGlmaWVkID0gMCwK
KyAgICBBdHRyaWJ1dGVNb2RpZmllZCwKKyAgICBOb2RlUmVtb3ZlZAogfTsKIAorY29uc3QgdWlu
dDMyX3QgaW5oZXJpdGFibGVET01CcmVha3BvaW50VHlwZXNNYXNrID0gKDEgPDwgU3VidHJlZU1v
ZGlmaWVkKTsKIGNvbnN0IGludCBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdCA9IDE2Owog
CiB9CkBAIC03NDIsOCArNzQ1LDEwIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldERPTUJy
ZWFrcG9pbnQobG9uZyBub2RlSWQsIGxvbmcgdHlwZSkKIAogICAgIHVpbnQzMl90IHJvb3RCaXQg
PSAxIDw8IHR5cGU7CiAgICAgbV9icmVha3BvaW50cy5zZXQobm9kZSwgbV9icmVha3BvaW50cy5n
ZXQobm9kZSkgfCByb290Qml0KTsKLSAgICBmb3IgKE5vZGUqIGNoaWxkID0gaW5uZXJGaXJzdENo
aWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbm5lck5leHRTaWJsaW5nKGNoaWxkKSkKLSAgICAg
ICAgdXBkYXRlU3VidHJlZUJyZWFrcG9pbnRzKGNoaWxkLCByb290Qml0LCB0cnVlKTsKKyAgICBp
ZiAocm9vdEJpdCAmIGluaGVyaXRhYmxlRE9NQnJlYWtwb2ludFR5cGVzTWFzaykgeworICAgICAg
ICBmb3IgKE5vZGUqIGNoaWxkID0gaW5uZXJGaXJzdENoaWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQg
PSBpbm5lck5leHRTaWJsaW5nKGNoaWxkKSkKKyAgICAgICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVh
a3BvaW50cyhjaGlsZCwgcm9vdEJpdCwgdHJ1ZSk7CisgICAgfQogfQogCiB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpyZW1vdmVET01CcmVha3BvaW50KGxvbmcgbm9kZUlkLCBsb25nIHR5cGUpCkBA
IC03NTgsMTEgKzc2MywxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZW1vdmVET01CcmVh
a3BvaW50KGxvbmcgbm9kZUlkLCBsb25nIHR5cGUpCiAgICAgICAgIG1fYnJlYWtwb2ludHMuc2V0
KG5vZGUsIG1hc2spOwogICAgIGVsc2UKICAgICAgICAgbV9icmVha3BvaW50cy5yZW1vdmUobm9k
ZSk7Ci0gICAgaWYgKG1hc2sgJiAocm9vdEJpdCA8PCBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVT
aGlmdCkpCi0gICAgICAgIHJldHVybjsKIAotICAgIGZvciAoTm9kZSogY2hpbGQgPSBpbm5lckZp
cnN0Q2hpbGQobm9kZSk7IGNoaWxkOyBjaGlsZCA9IGlubmVyTmV4dFNpYmxpbmcoY2hpbGQpKQot
ICAgICAgICB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoY2hpbGQsIHJvb3RCaXQsIGZhbHNlKTsK
KyAgICBpZiAoKHJvb3RCaXQgJiBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01hc2spICYm
ICEobWFzayAmIChyb290Qml0IDw8IGRvbUJyZWFrcG9pbnREZXJpdmVkVHlwZVNoaWZ0KSkpIHsK
KyAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGlubmVyRmlyc3RDaGlsZChub2RlKTsgY2hpbGQ7
IGNoaWxkID0gaW5uZXJOZXh0U2libGluZyhjaGlsZCkpCisgICAgICAgICAgICB1cGRhdGVTdWJ0
cmVlQnJlYWtwb2ludHMoY2hpbGQsIHJvb3RCaXQsIGZhbHNlKTsKKyAgICB9CiB9CiAKIFN0cmlu
ZyBJbnNwZWN0b3JET01BZ2VudDo6ZG9jdW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQqIGRvY3VtZW50
KSBjb25zdApAQCAtOTY3LDEzICs5NzIsMTQgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlk
SW5zZXJ0RE9NTm9kZShOb2RlKiBub2RlKQogCiAgICAgaWYgKG1fYnJlYWtwb2ludHMuc2l6ZSgp
KSB7CiAgICAgICAgIE5vZGUqIHBhcmVudCA9IGlubmVyUGFyZW50Tm9kZShub2RlKTsKLSAgICAg
ICAgaWYgKGhhc0JyZWFrcG9pbnQocGFyZW50LCBET01CcmVha3BvaW50VHlwZVN1YnRyZWVNb2Rp
ZmllZCkpIHsKKyAgICAgICAgaWYgKGhhc0JyZWFrcG9pbnQocGFyZW50LCBTdWJ0cmVlTW9kaWZp
ZWQpKSB7CiAgICAgICAgICAgICBpZiAoIXBhdXNlT25CcmVha3BvaW50KCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHVpbnQzMl90IG1hc2sgPSBtX2JyZWFr
cG9pbnRzLmdldChwYXJlbnQpOwotICAgICAgICBtYXNrID0gKG1hc2sgfCAobWFzayA+PiBkb21C
cmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdCkpICYgKCgxIDw8IGRvbUJyZWFrcG9pbnREZXJpdmVk
VHlwZVNoaWZ0KSAtIDEpOwotICAgICAgICB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMobm9kZSwg
bWFzaywgdHJ1ZSk7CisgICAgICAgIHVpbnQzMl90IGluaGVyaXRhYmxlVHlwZXNNYXNrID0gKG1h
c2sgfCAobWFzayA+PiBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdCkpICYgaW5oZXJpdGFi
bGVET01CcmVha3BvaW50VHlwZXNNYXNrOworICAgICAgICBpZiAoaW5oZXJpdGFibGVUeXBlc01h
c2spCisgICAgICAgICAgICB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMobm9kZSwgaW5oZXJpdGFi
bGVUeXBlc01hc2ssIHRydWUpOwogICAgIH0KIAogICAgIC8vIFdlIGNvdWxkIGJlIGF0dGFjaGlu
ZyBleGlzdGluZyBzdWJ0cmVlLiBGb3JnZXQgdGhlIGJpbmRpbmdzLgpAQCAtMTAwMyw3ICsxMDA5
LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkUmVtb3ZlRE9NTm9kZShOb2RlKiBub2Rl
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9icmVha3BvaW50cy5zaXplKCkpIHsKLSAg
ICAgICAgaWYgKGhhc0JyZWFrcG9pbnQoaW5uZXJQYXJlbnROb2RlKG5vZGUpLCBET01CcmVha3Bv
aW50VHlwZVN1YnRyZWVNb2RpZmllZCkpIHsKKyAgICAgICAgaWYgKGhhc0JyZWFrcG9pbnQobm9k
ZSwgTm9kZVJlbW92ZWQpIHx8IGhhc0JyZWFrcG9pbnQoaW5uZXJQYXJlbnROb2RlKG5vZGUpLCBT
dWJ0cmVlTW9kaWZpZWQpKSB7CiAgICAgICAgICAgICBpZiAoIXBhdXNlT25CcmVha3BvaW50KCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMDQzLDYgKzEwNDksMTEg
QEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkTW9kaWZ5RE9NQXR0cihFbGVtZW50KiBlbGVt
ZW50KQogICAgIGlmICghaWQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChoYXNCcmVha3Bv
aW50KGVsZW1lbnQsIEF0dHJpYnV0ZU1vZGlmaWVkKSkgeworICAgICAgICBpZiAoIXBhdXNlT25C
cmVha3BvaW50KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9mcm9udGVu
ZC0+YXR0cmlidXRlc1VwZGF0ZWQoaWQsIGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhl
bGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01BZ2VudC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwppbmRl
eCBkMTE5NjgwLi4wZDc5ZDUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50
LmpzCkBAIC03MjgsMTEgKzcyOCwxNSBAQCBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludCA9IGZ1
bmN0aW9uKG5vZGUsIHR5cGUpCiB9CiAKIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50LlR5cGVz
ID0gewotICAgIFN1YnRyZWVNb2RpZmllZDogMAorICAgIFN1YnRyZWVNb2RpZmllZDogMCwKKyAg
ICBBdHRyaWJ1dGVNb2RpZmllZDogMSwKKyAgICBOb2RlUmVtb3ZlZDogMgogfTsKIAogV2ViSW5z
cGVjdG9yLkRPTUJyZWFrcG9pbnQuTGFiZWxzID0ge307CiBXZWJJbnNwZWN0b3IuRE9NQnJlYWtw
b2ludC5MYWJlbHNbV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQuVHlwZXMuU3VidHJlZU1vZGlm
aWVkXSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3VidHJlZSBNb2RpZmllZCIpOworV2ViSW5z
cGVjdG9yLkRPTUJyZWFrcG9pbnQuTGFiZWxzW1dlYkluc3BlY3Rvci5ET01CcmVha3BvaW50LlR5
cGVzLkF0dHJpYnV0ZU1vZGlmaWVkXSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQXR0cmlidXRl
IE1vZGlmaWVkIik7CitXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludC5MYWJlbHNbV2ViSW5zcGVj
dG9yLkRPTUJyZWFrcG9pbnQuVHlwZXMuTm9kZVJlbW92ZWRdID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJOb2RlIFJlbW92ZWQiKTsKIAogV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQucHJvdG90
eXBlID0gewogICAgIGdldCBlbmFibGVkKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggMGVjMWViMy4uN2Y0ODE2MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUu
anMKQEAgLTQwMiw3ICs0MDIsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBub2RlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdDsK
ICAgICAgICAgaWYgKCFub2RlLm5vZGVOYW1lIHx8IG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2Uo
KSAhPT0gImltZyIpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgICAgIGZ1
bmN0aW9uIHNldFRvb2x0aXAocHJvcGVydGllcykKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KCFwcm9wZXJ0aWVzKQpAQCAtNzY2LDggKzc2NiwxMiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAvLyBBZGQgZGViYnVnaW5nLXJl
bGF0ZWQgYWN0aW9ucwogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7
CiAKLSAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJTdG9wIG9uIHN1YnRyZWUgbW9kaWZpY2F0aW9ucyIpLAorICAgICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3Agb24gU3VidHJlZSBN
b2RpZmljYXRpb25zIiksCiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9p
bnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQuYmluZChXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludE1h
bmFnZXIsIHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50
LlR5cGVzLlN1YnRyZWVNb2RpZmllZCkpOworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
SXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0b3Agb24gQXR0cmlidXRlcyBNb2RpZmljYXRp
b25zIiksCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUJyZWFrcG9pbnRNYW5hZ2Vy
LnNldEJyZWFrcG9pbnQuYmluZChXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludE1hbmFnZXIsIHRo
aXMucmVwcmVzZW50ZWRPYmplY3QsIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50LlR5cGVzLkF0
dHJpYnV0ZU1vZGlmaWVkKSk7CisgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiU3RvcCBvbiBOb2RlIFJlbW92YWwiKSwKKyAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludC5iaW5k
KFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50TWFuYWdlciwgdGhpcy5yZXByZXNlbnRlZE9iamVj
dCwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQuVHlwZXMuTm9kZVJlbW92ZWQpKTsKIAogICAg
ICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJl
bW92ZSBCcmVha3BvaW50cyIpLAogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21CcmVh
a3BvaW50TWFuYWdlci5yZW1vdmVCcmVha3BvaW50c0Zvck5vZGUuYmluZChXZWJJbnNwZWN0b3Iu
ZG9tQnJlYWtwb2ludE1hbmFnZXIsIHRoaXMucmVwcmVzZW50ZWRPYmplY3QpKTsK
</data>
<flag name="review"
          id="54176"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>