<?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>90813</bug_id>
          
          <creation_ts>2012-07-09 12:39:22 -0700</creation_ts>
          <short_desc>Refactor common Pointer Lock test code to a harness.</short_desc>
          <delta_ts>2012-07-09 14:19:35 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77029</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vincent Scheib">scheib</reporter>
          <assigned_to name="Vincent Scheib">scheib</assigned_to>
          <cc>enne</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665082</commentid>
    <comment_count>0</comment_count>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-07-09 12:39:22 -0700</bug_when>
    <thetext>Refactor common Pointer Lock test code to a harness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665084</commentid>
    <comment_count>1</comment_count>
      <attachid>151301</attachid>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-07-09 12:43:24 -0700</bug_when>
    <thetext>Created attachment 151301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665118</commentid>
    <comment_count>2</comment_count>
      <attachid>151301</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-09 13:22:01 -0700</bug_when>
    <thetext>Comment on attachment 151301
Patch

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

&gt; LayoutTests/pointer-lock/resources/pointer-lock-test-harness.js:5
&gt; +    doNextStepButton.innerText = &quot;doNextStep button for manual testing. Use keyboard to select and press (TAB, then SPACE) when pointer locked.&quot;;

What about only adding the button or the text if there isn&apos;t a window.testRunner, so that this text doesn&apos;t get baked into every expectation file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665142</commentid>
    <comment_count>3</comment_count>
      <attachid>151311</attachid>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-07-09 13:59:57 -0700</bug_when>
    <thetext>Created attachment 151311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665144</commentid>
    <comment_count>4</comment_count>
      <attachid>151301</attachid>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-07-09 14:01:01 -0700</bug_when>
    <thetext>Comment on attachment 151301
Patch

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

&gt;&gt; LayoutTests/pointer-lock/resources/pointer-lock-test-harness.js:5
&gt;&gt; +    doNextStepButton.innerText = &quot;doNextStep button for manual testing. Use keyboard to select and press (TAB, then SPACE) when pointer locked.&quot;;
&gt; 
&gt; What about only adding the button or the text if there isn&apos;t a window.testRunner, so that this text doesn&apos;t get baked into every expectation file?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665151</commentid>
    <comment_count>5</comment_count>
      <attachid>151311</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-09 14:05:01 -0700</bug_when>
    <thetext>Comment on attachment 151311
Patch

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665166</commentid>
    <comment_count>6</comment_count>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2012-07-09 14:19:35 -0700</bug_when>
    <thetext>Committed r122158: &lt;http://trac.webkit.org/changeset/122158&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151301</attachid>
            <date>2012-07-09 12:43:24 -0700</date>
            <delta_ts>2012-07-09 14:01:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90813-20120709124324.patch</filename>
            <type>text/plain</type>
            <size>24856</size>
            <attacher name="Vincent Scheib">scheib</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDk1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTIyNjA4OWFhNjE5MTRjMDNjYmNi
NmRhNTI1OTdhYjg5NjdlZDFlMS4uZjY3YTM2YjhkODMyOGZhZWNhOTMyZGFjYzgyYmZmNTNhMmNi
NmI3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTA5ICBWaW5jZW50IFNjaGVpYiAg
PHNjaGVpYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgY29tbW9uIFBvaW50ZXIg
TG9jayB0ZXN0IGNvZGUgdG8gYSBoYXJuZXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBvaW50ZXItbG9jay9idWc5MDM5MS1tb3ZlLXRoZW4td2lu
ZG93LW9wZW4tY3Jhc2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBvaW50ZXItbG9jay9idWc5
MDM5MS1tb3ZlLXRoZW4td2luZG93LW9wZW4tY3Jhc2guaHRtbDoKKyAgICAgICAgKiBwb2ludGVy
LWxvY2svbG9jay1hbHJlYWR5LWxvY2tlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcG9pbnRl
ci1sb2NrL2xvY2stYWxyZWFkeS1sb2NrZWQuaHRtbDoKKyAgICAgICAgKiBwb2ludGVyLWxvY2sv
bG9jay1mYWlsLXJlc3BvbnNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcG9pbnRlci1sb2Nr
L2xvY2stZmFpbC1yZXNwb25zZXMuaHRtbDoKKyAgICAgICAgKiBwb2ludGVyLWxvY2svbW91c2Ut
ZXZlbnQtZGVsaXZlcnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBvaW50ZXItbG9jay9tb3Vz
ZS1ldmVudC1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIHBvaW50ZXItbG9jay9wb2ludGVyLWxv
Y2stYXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwb2ludGVyLWxvY2svcG9pbnRlci1sb2Nr
LWFwaS5odG1sOgorICAgICAgICAqIHBvaW50ZXItbG9jay9wb2ludGVybG9ja2NoYW5nZS1wb2lu
dGVybG9ja2Vycm9yLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcG9pbnRlci1sb2Nr
L3BvaW50ZXJsb2NrY2hhbmdlLXBvaW50ZXJsb2NrZXJyb3ItZXZlbnRzLmh0bWw6CisgICAgICAg
ICogcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrbG9zdC1ldmVudC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrbG9zdC1ldmVudC5odG1sOgorICAgICAgICAq
IHBvaW50ZXItbG9jay9yZXNvdXJjZXMvcG9pbnRlci1sb2NrLXRlc3QtaGFybmVzcy5qczogQWRk
ZWQuCisgICAgICAgIChkb05leHRTdGVwLmVsc2UpOgorICAgICAgICAoZG9OZXh0U3RlcFdpdGhV
c2VyR2VzdHVyZSk6CisgICAgICAgIChldmVudEV4cGVjdGVkLnRhcmdldEhhbmRlck5vZGUuZXZl
bnRIYW5kbGVyTmFtZSk6CisgICAgICAgIChldmVudEV4cGVjdGVkKToKKyAgICAgICAgKGV4cGVj
dE9ubHlDaGFuZ2VFdmVudCk6CisgICAgICAgIChleHBlY3RPbmx5RXJyb3JFdmVudCk6CisgICAg
ICAgIChleHBlY3ROb0V2ZW50cyk6CisKIDIwMTItMDctMDkgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJk
ZW5pbmcuIFNraXAgdGhlIGZhaWxpbmcgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bv
aW50ZXItbG9jay9idWc5MDM5MS1tb3ZlLXRoZW4td2luZG93LW9wZW4tY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2J1ZzkwMzkxLW1vdmUtdGhlbi13aW5kb3ct
b3Blbi1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXggMGQxMDM1YzRhMjUyM2U2ZDZiOWY2Nzc4MzM3
OTAwZDFkNWE4MTdkMy4uOGM4YzIzOTkwNzU0ZWQzZjFlZDYwYTQ2MGU4MGI1NzY5OWFhODU3OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2J1ZzkwMzkxLW1vdmUtdGhlbi13
aW5kb3ctb3Blbi1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1s
b2NrL2J1ZzkwMzkxLW1vdmUtdGhlbi13aW5kb3ctb3Blbi1jcmFzaC1leHBlY3RlZC50eHQKQEAg
LTMsNiArMyw3IEBAIGJ1ZyA5MDM5MTogcG9pbnRlciBsb2NrIG1vdXNlIG1vdmUgZXZlbnRzIHRo
ZW4gd2luZG93Lm9wZW4gc2hvdWxkIG5vdCBjcmFzaC4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIAogCitkb05leHRTdGVwIGJ1dHRvbiBmb3IgbWFudWFsIHRlc3RpbmcuIFVzZSBrZXlib2Fy
ZCB0byBzZWxlY3QgYW5kIHByZXNzIChUQUIsIHRoZW4gU1BBQ0UpIHdoZW4gcG9pbnRlciBsb2Nr
ZWQuCiAgICAgIExvY2tpbmcgdGFyZ2V0ZGl2MS4KIFBBU1MgZG9jdW1lbnQub253ZWJraXRwb2lu
dGVybG9ja2NoYW5nZSBldmVudCByZWNlaXZlZC4KICAgICAgU2VuZGluZyBtb3VzZSBtb3ZlIGV2
ZW50cy4KQEAgLTExLDUgKzEyLDQgQEAgUEFTUyBEaWRuJ3QgY3Jhc2gKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQotZG9OZXh0U3RlcCBmb3IgbWFudWFs
IHRlc3RpbmcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2J1ZzkwMzkx
LW1vdmUtdGhlbi13aW5kb3ctb3Blbi1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1s
b2NrL2J1ZzkwMzkxLW1vdmUtdGhlbi13aW5kb3ctb3Blbi1jcmFzaC5odG1sCmluZGV4IGNjZjQx
MzFhZWNmNmY1Mzc5NTA4YTNkNmM2M2NlZDhmYzRjZWNjYTAuLjVmYmY1YjNkMTE3MDZiZjE3N2M4
MDBhYzMxNzlhOWZlNmJlZThkMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9j
ay9idWc5MDM5MS1tb3ZlLXRoZW4td2luZG93LW9wZW4tY3Jhc2guaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyLWxvY2svYnVnOTAzOTEtbW92ZS10aGVuLXdpbmRvdy1vcGVuLWNyYXNoLmh0
bWwKQEAgLTIsMTAgKzIsMTAgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wb2ludGVyLWxvY2stdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgogPGRpdj4KLSAgPGJ1dHRvbiBvbmNsaWNrPSJkb05leHRTdGVwKCdtYW51YWwnKTsi
PmRvTmV4dFN0ZXAgZm9yIG1hbnVhbCB0ZXN0aW5nPC9idXR0b24+CiAgIDxkaXYgaWQ9InRhcmdl
dDEiPjwvZGl2PgogPC9kaXY+CiA8c2NyaXB0PgpAQCAtMTQsMTYgKzE0LDYgQEAKIAogICAgIHRh
cmdldGRpdjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpOwogCi0gICAgY3Vy
cmVudFN0ZXAgPSAwOwotICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAobWFudWFsKQotICAgIHsKLSAg
ICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgIW1hbnVhbCkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9kby5sZW5ndGgpCi0g
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3RlcCsrXSgp
OyB9LCAwKTsKLSAgICAgICAgZWxzZSBpZiAoY3VycmVudFN0ZXArKyA9PSB0b2RvLmxlbmd0aCkK
LSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSwg
MCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGRlYnVnKCIgICAgIExvY2tpbmcgdGFyZ2V0ZGl2MS4iKQpAQCAtMzEsNyArMjEsNyBAQAog
ICAgICAgICAgICAgZG9jdW1lbnQub253ZWJraXRwb2ludGVybG9ja2NoYW5nZSA9IGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5vbndlYmtpdHBvaW50ZXJsb2NrY2hhbmdl
ID0gbnVsbDsKICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJkb2N1bWVudC5vbndlYmtpdHBv
aW50ZXJsb2NrY2hhbmdlIGV2ZW50IHJlY2VpdmVkLiIpOwotICAgICAgICAgICAgICAgIGRvTmV4
dFN0ZXAoJ21hbnVhbCcpOworICAgICAgICAgICAgICAgIGRvTmV4dFN0ZXAoKTsKICAgICAgICAg
ICAgIH07CiAgICAgICAgIH0sCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKQEAgLTQwLDcgKzMwLDcg
QEAKICAgICAgICAgICAgIHRhcmdldGRpdjEub25tb3VzZW1vdmUgPSBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCsrbW91c2VNb3ZlRXZlbnRzID09IDIpIHsKICAgICAgICAgICAg
ICAgICAgICAgdGFyZ2V0ZGl2MS5vbm1vdXNlbW92ZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAg
ICAgIGRvTmV4dFN0ZXAoJ21hbnVhbCcpOworICAgICAgICAgICAgICAgICAgICBkb05leHRTdGVw
KCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgewpAQCAtNTQsMTAgKzQ0LDEwIEBACiAgICAgICAgICAgICB3aW5k
b3cub3BlbigpOwogICAgICAgICAgICAgdGVzdFBhc3NlZCgiRGlkbid0IGNyYXNoIik7CiAgICAg
ICAgICAgICBkb2N1bWVudC53ZWJraXRFeGl0UG9pbnRlckxvY2soKTsKLSAgICAgICAgICAgIGRv
TmV4dFN0ZXAoJ21hbnVhbCcpOworICAgICAgICAgICAgZG9OZXh0U3RlcCgpOwogICAgICAgICB9
LAogICAgIF07Ci0gICAgZG9OZXh0U3RlcCgpOworICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1
cmUoKTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
b2ludGVyLWxvY2svbG9jay1hbHJlYWR5LWxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wb2ludGVyLWxvY2svbG9jay1hbHJlYWR5LWxvY2tlZC1leHBlY3RlZC50eHQKaW5kZXggZjY1
ZmMzODk1YmE1ZTZjOWI3MTA4NjIxMDNlMDZiY2ZhN2RlZjAyNy4uZmZlNGU5NzEwNGMxY2VkYzE1
ODgzNDE1ZWViNjMwYTY1ZGZiZWI5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRlci1s
b2NrL2xvY2stYWxyZWFkeS1sb2NrZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3Bv
aW50ZXItbG9jay9sb2NrLWFscmVhZHktbG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcg
QEAgVGVzdCBjYWxsaW5nIGxvY2sgd2hlbiBhbHJlYWR5IGluIGEgbG9ja2VkIHN0YXRlLgogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK2RvTmV4dFN0ZXAgYnV0dG9uIGZvciBtYW51YWwg
dGVzdGluZy4gVXNlIGtleWJvYXJkIHRvIHNlbGVjdCBhbmQgcHJlc3MgKFRBQiwgdGhlbiBTUEFD
RSkgd2hlbiBwb2ludGVyIGxvY2tlZC4KIFBBU1MgZG9jdW1lbnQud2Via2l0UG9pbnRlckxvY2tF
bGVtZW50IGlzIG51bGwKICAgICAgTG9ja2luZyB0YXJnZXRkaXYxLgogUEFTUyBkb2N1bWVudC5v
bndlYmtpdHBvaW50ZXJsb2NrY2hhbmdlIGV2ZW50IHJlY2VpdmVkLgpAQCAtMzEsNSArMzIsNCBA
QCBQQVNTIGRvY3VtZW50LndlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCBpcyB0YXJnZXRkaXYyCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLWRvTmV4dFN0
ZXAgZm9yIG1hbnVhbCB0ZXN0aW5nCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXIt
bG9jay9sb2NrLWFscmVhZHktbG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2sv
bG9jay1hbHJlYWR5LWxvY2tlZC5odG1sCmluZGV4IGVjMDI0ZjZjMTM3NmIxZDI0OTNhNTk3NDg5
ZjI1OTM2NzIxZDViNzMuLjlmNGQ1NzQ2MTY0M2M2YmZhNDJmZjgzYmJjZGVkZTUyZjg3ZWRkYTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWFscmVhZHktbG9ja2Vk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stYWxyZWFkeS1sb2NrZWQu
aHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3BvaW50ZXItbG9jay10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+CiA8ZGl2PgotICA8YnV0dG9uIG9uY2xpY2s9ImRvTmV4dFN0ZXAoJ21hbnVhbCcp
OyI+ZG9OZXh0U3RlcCBmb3IgbWFudWFsIHRlc3Rpbmc8L2J1dHRvbj4KICAgPGRpdiBpZD0idGFy
Z2V0MSI+PC9kaXY+CiAgIDxkaXYgaWQ9InRhcmdldDIiPjwvZGl2PgogPC9kaXY+CkBAIC0yMiw3
ICsyMiw3IEBACiAgICAgICAgIHsKICAgICAgICAgICAgIHRlc3RQYXNzZWQoImRvY3VtZW50Lm9u
d2Via2l0cG9pbnRlcmxvY2tjaGFuZ2UgZXZlbnQgcmVjZWl2ZWQuIik7CiAgICAgICAgICAgICBz
aG91bGRCZSgiZG9jdW1lbnQud2Via2l0UG9pbnRlckxvY2tFbGVtZW50IiwgZXhwZWN0ZWRUYXJn
ZXRUb0JlTG9ja2VkU3RyaW5nKTsKLSAgICAgICAgICAgIGRvTmV4dFN0ZXAoKTsKKyAgICAgICAg
ICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1cmUoKTsKICAgICAgICAgfTsKICAgICBkb2N1bWVu
dC5vbndlYmtpdHBvaW50ZXJsb2NrZXJyb3IgPQogICAgICAgICBmdW5jdGlvbiAoKSB7IHRlc3RG
YWlsZWQoImRvY3VtZW50Lm9ud2Via2l0cG9pbnRlcmxvY2tlcnJvciBldmVudCByZWNlaXZlZC4i
KTsgZmluaXNoSlNUZXN0KCk7IH07CkBAIC0zNSwxNiArMzUsNiBAQAogICAgIHRhcmdldGRpdjIu
YWRkRXZlbnRMaXN0ZW5lcigid2Via2l0cG9pbnRlcmxvY2tsb3N0IiwKICAgICAgICAgZnVuY3Rp
b24gKCkgeyBzaG91bGRCZSgiZXhwZWN0VGFyZ2V0MlVubG9jayIsICJ0cnVlIik7IH0pOwogCi0g
ICAgY3VycmVudFN0ZXAgPSAwOwotICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAobWFudWFsKQotICAg
IHsKLSAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgIW1hbnVhbCkK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9kby5sZW5n
dGgpCi0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3Rl
cCsrXSgpOyB9LCAwKTsKLSAgICAgICAgZWxzZSBpZiAoY3VycmVudFN0ZXArKyA9PSB0b2RvLmxl
bmd0aCkKLSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3Qo
KTsgfSwgMCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRQb2ludGVyTG9ja0VsZW1lbnQiLCAi
bnVsbCIpOwpAQCAtMTEwLDcgKzEwMCw3IEBACiAgICAgICAgICAgICBleHBlY3RlZFRhcmdldFRv
QmVMb2NrZWRTdHJpbmcgPSAidGFyZ2V0ZGl2MiI7CiAgICAgICAgIH0sCiAgICAgXTsKLSAgICBk
b05leHRTdGVwKCk7CisgICAgZG9OZXh0U3RlcFdpdGhVc2VyR2VzdHVyZSgpOwogPC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2Nr
LWZhaWwtcmVzcG9uc2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9s
b2NrLWZhaWwtcmVzcG9uc2VzLWV4cGVjdGVkLnR4dAppbmRleCA4NTM4ZDY5MGQ3NWFlMDljMDJk
ODI0MjQ0YzQyYmMxMzhlZDQwYTI2Li5kYWJmODE2YWZhNTlkN2Q1ZWIwNDg4NzI4NzE3MjliMDVh
MDk1YmU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbG9jay1mYWlsLXJl
c3BvbnNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2st
ZmFpbC1yZXNwb25zZXMtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBUZXN0IGFzeW5jaHJv
bm91cyByZXN1bHRzIG9mIGNhbGxpbmcgbG9jay4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCitkb05leHRTdGVwIGJ1dHRvbiBmb3IgbWFudWFsIHRlc3RpbmcuIFVzZSBrZXlib2FyZCB0
byBzZWxlY3QgYW5kIHByZXNzIChUQUIsIHRoZW4gU1BBQ0UpIHdoZW4gcG9pbnRlciBsb2NrZWQu
CiBQQVNTIHdpbmRvdy50ZXN0UnVubmVyIGlzIGRlZmluZWQuCiBQQVNTIExvY2sgZmFpbGVkIChh
ZnRlciB3ZSBjYWxsZWQgdGVzdFJ1bm5lci5zZXRQb2ludGVyTG9ja1dpbGxGYWlsU3luY2hyb25v
dXNseSkKIFBBU1MgTG9jayBmYWlsZWQgKGFmdGVyIHdlIGNhbGxlZCB0ZXN0UnVubmVyLnNldFBv
aW50ZXJMb2NrV2lsbEZhaWxBc3luY2hyb25vdXNseSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BvaW50ZXItbG9jay9sb2NrLWZhaWwtcmVzcG9uc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2lu
dGVyLWxvY2svbG9jay1mYWlsLXJlc3BvbnNlcy5odG1sCmluZGV4IGNkZjVjNjM2ZDRlNzM0Yjdl
OGVjY2QxNTcxNTkyZmY4NTA4NWYyM2YuLmQ4YzI5NzcwNTI0ODdlNTU1MGZiNGRiNjU2ODgwMDJh
ZTQ5NTQ1YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWZhaWwt
cmVzcG9uc2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stZmFpbC1y
ZXNwb25zZXMuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wb2ludGVyLWxvY2stdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KQEAgLTksMTAgKzEwLDYgQEAKICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgc2hvdWxkQmVEZWZpbmVkKCJ3aW5kb3cudGVzdFJ1
bm5lciIpOwogCi0gICAgY3VycmVudFN0ZXAgPSAwOwotICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAo
KSB7Ci0gICAgICB0b2RvW2N1cnJlbnRTdGVwKytdKCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAg
ICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9pbnRlckxv
Y2tXaWxsRmFpbFN5bmNocm9ub3VzbHkoKTsKQEAgLTIzLDcgKzIwLDcgQEAKICAgICAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiTG9jayBmYWlsZWQgKGFmdGVyIHdlIGNhbGxlZCB0ZXN0UnVubmVyLnNl
dFBvaW50ZXJMb2NrV2lsbEZhaWxTeW5jaHJvbm91c2x5KSIpOwotICAgICAgICAgICAgICAgICAg
ICBkb05leHRTdGVwKCk7CisgICAgICAgICAgICAgICAgICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdl
c3R1cmUoKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfSwKICAgICAgICAgZnVuY3Rp
b24gKCkgewpAQCAtMzgsOSArMzUsOCBAQAogICAgICAgICAgICAgICAgICAgICBkb05leHRTdGVw
KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCi0gICAgICAgIGZpbmlzaEpTVGVz
dAogICAgIF07Ci0gICAgZG9OZXh0U3RlcCgpOworICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1
cmUoKTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
b2ludGVyLWxvY2svbW91c2UtZXZlbnQtZGVsaXZlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcG9pbnRlci1sb2NrL21vdXNlLWV2ZW50LWRlbGl2ZXJ5LWV4cGVjdGVkLnR4dAppbmRleCBh
MmNmYWU0ZmVlMWMxYzFkYjMyYWVkOWUyZmY2NGU1NDMxZGUyZDU4Li43NmIxMTU1NzUwMzRmMDc5
ZTUzYjg1NWU2N2I1MTg1YzRhYTAyYTlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wb2ludGVy
LWxvY2svbW91c2UtZXZlbnQtZGVsaXZlcnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXItbG9jay9tb3VzZS1ldmVudC1kZWxpdmVyeS1leHBlY3RlZC50eHQKQEAgLTMsNiAr
Myw3IEBAIFRlc3QgbW91c2UgZXZlbnRzIGFyZSByb3V0ZWQgdG8gbG9jayB0YXJnZXQuCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorZG9OZXh0U3RlcCBidXR0b24gZm9yIG1hbnVhbCB0
ZXN0aW5nLiBVc2Uga2V5Ym9hcmQgdG8gc2VsZWN0IGFuZCBwcmVzcyAoVEFCLCB0aGVuIFNQQUNF
KSB3aGVuIHBvaW50ZXIgbG9ja2VkLgogUEFTUyBkb2N1bWVudC5vbndlYmtpdHBvaW50ZXJsb2Nr
Y2hhbmdlIGV2ZW50IHJlY2VpdmVkLgogUEFTUyBkb2N1bWVudC53ZWJraXRQb2ludGVyTG9ja0Vs
ZW1lbnQgaXMgdGFyZ2V0ZGl2MQogICAgICBXaXRoIGEgbG9jayBpbiBwbGFjZSBzZW5kIGEgY2xp
Y2suCkBAIC0zMiw1ICszMyw0IEBAIFBBU1MgZXZlbnQgdHlwZTogY2xpY2ssIHRhcmdldDogdGFy
Z2V0MiwgcmVjZWl2ZWQgb246IHRhcmdldDIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQotZG9OZXh0U3RlcCBmb3IgbWFudWFsIHRlc3RpbmcKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL21vdXNlLWV2ZW50LWRlbGl2ZXJ5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbW91c2UtZXZlbnQtZGVsaXZlcnkuaHRtbApp
bmRleCA4ZDA3YTBhZjc2NWNiYjg4MGU1OTMzOTM2ZDQyYmJmMzg5OWFhNmNjLi5lMmYwNDEwNDEz
ZGUxNDEwN2E1YTkyNDlmNDRlMjQ4MzdmZmM4NGY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
b2ludGVyLWxvY2svbW91c2UtZXZlbnQtZGVsaXZlcnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyLWxvY2svbW91c2UtZXZlbnQtZGVsaXZlcnkuaHRtbApAQCAtMiwxMCArMiwxMCBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvaW50ZXItbG9jay10
ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgaWQ9ImJvZHkiPgogPGRp
dj4KLSAgPGJ1dHRvbiBvbmNsaWNrPSJkb05leHRTdGVwKCdtYW51YWwnKTsiPmRvTmV4dFN0ZXAg
Zm9yIG1hbnVhbCB0ZXN0aW5nPC9idXR0b24+CiAgIDxkaXYgaWQ9InRhcmdldDEiPjwvZGl2Pgog
ICA8ZGl2IGlkPSJ0YXJnZXQyIj48L2Rpdj4KIDwvZGl2PgpAQCAtMjIsNyArMjIsNyBAQAogICAg
ICAgICB7CiAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJkb2N1bWVudC5vbndlYmtpdHBvaW50ZXJs
b2NrY2hhbmdlIGV2ZW50IHJlY2VpdmVkLiIpOwogICAgICAgICAgICAgc2hvdWxkQmUoImRvY3Vt
ZW50LndlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCIsIGV4cGVjdGVkVGFyZ2V0VG9CZUxvY2tlZFN0
cmluZyk7Ci0gICAgICAgICAgICBkb05leHRTdGVwKCdtYW51YWwnKTsKKyAgICAgICAgICAgIGRv
TmV4dFN0ZXAoKTsKICAgICAgICAgfTsKICAgICBkb2N1bWVudC5vbndlYmtpdHBvaW50ZXJsb2Nr
ZXJyb3IgPQogICAgICAgICBmdW5jdGlvbiAoKSB7IHRlc3RGYWlsZWQoImRvY3VtZW50Lm9ud2Vi
a2l0cG9pbnRlcmxvY2tlcnJvciBldmVudCByZWNlaXZlZC4iKTsgZmluaXNoSlNUZXN0KCk7IH07
CkBAIC0zNSwxNiArMzUsNiBAQAogICAgICAgdGVzdFBhc3NlZCgiZXZlbnQgdHlwZTogIiArIGUu
dHlwZSArICIsIHRhcmdldDogIiArIGUudGFyZ2V0LmlkICsgIiwgcmVjZWl2ZWQgb246ICIgKyBl
LmN1cnJlbnRUYXJnZXQuaWQpOwogICAgIH0KIAotICAgIGN1cnJlbnRTdGVwID0gMDsKLSAgICBm
dW5jdGlvbiBkb05leHRTdGVwKG1hbnVhbCkKLSAgICB7Ci0gICAgICAgIGlmICghd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyICYmICFtYW51YWwpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGlmIChjdXJyZW50U3RlcCA8IHRvZG8ubGVuZ3RoKQotICAgICAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbiAoKSB7IHRvZG9bY3VycmVudFN0ZXArK10oKTsgfSwgMCk7Ci0gICAgICAgIGVs
c2UgaWYgKGN1cnJlbnRTdGVwKysgPT0gdG9kby5sZW5ndGgpCi0gICAgICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uICgpIHsgZmluaXNoSlNUZXN0KCk7IH0sIDApOwotICAgIH0KICAgICB0b2Rv
ID0gWwogICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXJnZXRkaXYxLndlYmtp
dFJlcXVlc3RQb2ludGVyTG9jaygpOwpAQCAtNjEsNyArNTEsNyBAQAogICAgICAgICAgICAgICAg
IHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICAgICAgICAgICAgICB3aW5kb3cu
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZG9OZXh0
U3RlcCgpOworICAgICAgICAgICAgZG9OZXh0U3RlcFdpdGhVc2VyR2VzdHVyZSgpOwogICAgICAg
ICB9LAogICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXJnZXRkaXYyLndlYmtp
dFJlcXVlc3RQb2ludGVyTG9jaygpOwpAQCAtNzgsNyArNjgsNyBAQAogICAgICAgICAgICAgICAg
IHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICAgICAgICAgICAgICB3aW5kb3cu
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZG9OZXh0
U3RlcCgpOworICAgICAgICAgICAgZG9OZXh0U3RlcFdpdGhVc2VyR2VzdHVyZSgpOwogICAgICAg
ICB9LAogICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkZWJ1ZygiICAgICBFbnN1
cmUgZG91YmxlIGNsaWNrcyB3b3JrIGFzIGV4cGVjdGVkLCBzZW5kaW5nIDQgY2xpY2tzLiIpCkBA
IC0xMDMsMTAgKzkzLDEwIEBACiAgICAgICAgICAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOwogICAgICAgICAgICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZVVwKCk7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBkb05leHRTdGVwKCk7CisgICAgICAgICAgICBk
b05leHRTdGVwV2l0aFVzZXJHZXN0dXJlKCk7CiAgICAgICAgIH0sCiAgICAgXTsKLSAgICBkb05l
eHRTdGVwKCk7CisgICAgZG9OZXh0U3RlcFdpdGhVc2VyR2VzdHVyZSgpOwogPC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVy
LWxvY2stYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVy
LWxvY2stYXBpLWV4cGVjdGVkLnR4dAppbmRleCBhZGQyYWFhZmZhMGNkMjg3YTljN2U4MGEyMGQ2
ZTVkYzlhMTgyYzdkLi5iZmRlM2E5MzU3OTIwN2E2OGFhMmU2YmVkZjRhMTllZjc2MDNhOGFhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlci1sb2NrLWFwaS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXItbG9jay1hcGkt
ZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNyBAQCBCYXNpYyBBUEkgZXhpc3RlbmNlIHRlc3QgZm9y
IFBvaW50ZXIgTG9jay4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitkb05leHRTdGVw
IGJ1dHRvbiBmb3IgbWFudWFsIHRlc3RpbmcuIFVzZSBrZXlib2FyZCB0byBzZWxlY3QgYW5kIHBy
ZXNzIChUQUIsIHRoZW4gU1BBQ0UpIHdoZW4gcG9pbnRlciBsb2NrZWQuCiBQQVNTIG5hdmlnYXRv
ci53ZWJraXRQb2ludGVyIGlzIGRlZmluZWQuCiBQQVNTIHR5cGVvZiBuYXZpZ2F0b3Iud2Via2l0
UG9pbnRlci5pc0xvY2tlZCBpcyAnYm9vbGVhbicKIFBBU1MgbmF2aWdhdG9yLndlYmtpdFBvaW50
ZXIuaXNMb2NrZWQgaXMgZmFsc2UKQEAgLTE3LDQgKzE4LDQgQEAgUEFTUyBlbGVtZW50LndlYmtp
dFJlcXVlc3RQb2ludGVyTG9jayBpcyBkZWZpbmVkLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1kb05leHRTdGVwIGZvciBtYW51YWwgdGVzdGluZwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlci1sb2NrLWFwaS5o
dG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXItbG9jay1hcGkuaHRtbAppbmRl
eCBmYjE0ZGM0OWU3ZWI5NjcyMWEyNjRhMTI3Yzg4NzAxYWQ3YjI1ODAzLi5jZTEyZGI0ZDBkZWE4
OTE4MWVjZDNlZDljMDBkNzQ1M2VhYjRjOTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wb2lu
dGVyLWxvY2svcG9pbnRlci1sb2NrLWFwaS5odG1sCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXIt
bG9jay9wb2ludGVyLWxvY2stYXBpLmh0bWwKQEAgLTIsMjMgKzIsMTMgQEAKIDxodG1sPgogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2ludGVyLWxvY2stdGVzdC1oYXJuZXNz
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPGJ1dHRvbiBvbmNsaWNrPSJkb05leHRT
dGVwKCdtYW51YWwnKTsiPmRvTmV4dFN0ZXAgZm9yIG1hbnVhbCB0ZXN0aW5nPC9idXR0b24+CiA8
c2NyaXB0PgogICAgIGRlc2NyaXB0aW9uKCJCYXNpYyBBUEkgZXhpc3RlbmNlIHRlc3QgZm9yIFBv
aW50ZXIgTG9jay4iKQogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgIGN1
cnJlbnRTdGVwID0gMDsKLSAgICBmdW5jdGlvbiBkb05leHRTdGVwKG1hbnVhbCkKLSAgICB7Ci0g
ICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgJiYgIW1hbnVhbCkKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9kby5sZW5ndGgpCi0gICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3RlcCsrXSgpOyB9LCAwKTsK
LSAgICAgICAgZWxzZSBpZiAoY3VycmVudFN0ZXArKyA9PSB0b2RvLmxlbmd0aCkKLSAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSwgMCk7Ci0gICAg
fQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHNob3Vs
ZEJlRGVmaW5lZCgibmF2aWdhdG9yLndlYmtpdFBvaW50ZXIiKTsKQEAgLTQzLDcgKzMzLDcgQEAK
ICAgICAgICAgICAgIGRvTmV4dFN0ZXAoKTsKICAgICAgICAgfSwKICAgICBdOwotICAgIGRvTmV4
dFN0ZXAoKTsKKyAgICBkb05leHRTdGVwV2l0aFVzZXJHZXN0dXJlKCk7CiA8L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJs
b2NrY2hhbmdlLXBvaW50ZXJsb2NrZXJyb3ItZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2NoYW5nZS1wb2ludGVybG9ja2Vycm9yLWV2ZW50
cy1leHBlY3RlZC50eHQKaW5kZXggNjljNjYzMzYwOTkzYjVkODFkMDVhYWI3NDc1MWVhODUxMGEy
YTM5MS4uZTMyOTIxNGVkOTQ3NjlhNGFjMWZjMTk1YmYzMzUyNTFhNzBjYjkxMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrY2hhbmdlLXBvaW50ZXJsb2Nr
ZXJyb3ItZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2sv
cG9pbnRlcmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMtZXhwZWN0ZWQudHh0CkBA
IC0zLDYgKzMsNyBAQCBUZXN0IGV4cGVjdGVkIHBvaW50ZXJsb2NrY2hhbmdlIGFuZCBwb2ludGVy
bG9ja2Vycm9yIGV2ZW50cy4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitkb05leHRT
dGVwIGJ1dHRvbiBmb3IgbWFudWFsIHRlc3RpbmcuIFVzZSBrZXlib2FyZCB0byBzZWxlY3QgYW5k
IHByZXNzIChUQUIsIHRoZW4gU1BBQ0UpIHdoZW4gcG9pbnRlciBsb2NrZWQuCiAgICAgIFVubG9j
ay4KICAgICAgTG9jayB0YXJnZXREaXYxLgogUEFTUyBvbndlYmtpdHBvaW50ZXJsb2NrY2hhbmdl
IHJlY2VpdmVkIGFmdGVyOiBMb2NrIHRhcmdldERpdjEuCkBAIC0zNiw1ICszNyw0IEBAIFBBU1Mg
b253ZWJraXRwb2ludGVybG9ja2Vycm9yIHJlY2VpdmVkIGFmdGVyOiBMb2NrIHdpdGggYXN5bmNo
cm9ub3VzIGZhaWx1cmUuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKLWRvTmV4dFN0ZXAgZm9yIG1hbnVhbCB0ZXN0aW5nCiAgIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrY2hhbmdlLXBvaW50ZXJsb2NrZXJy
b3ItZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlcmxvY2tjaGFu
Z2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMuaHRtbAppbmRleCAyMGMxM2I1Y2Q2ZGEyMjI5MDIx
OTUyNWUzZWIwYTdlNmM2MzljZTZkLi45YTEwMWM0ZTQ5MjI2Mjc0NWIxNWRmN2EwYTZmMTBkMzli
NTE3NWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlcmxvY2tj
aGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wb2lu
dGVyLWxvY2svcG9pbnRlcmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMuaHRtbApA
QCAtMiwxMCArMiwxMCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvaW50ZXItbG9jay10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CiA8ZGl2PgotICA8YnV0dG9uIG9uY2xpY2s9ImRvTmV4dFN0ZXAoJ21hbnVhbCcpOyI+ZG9O
ZXh0U3RlcCBmb3IgbWFudWFsIHRlc3Rpbmc8L2J1dHRvbj4KICAgPGRpdiBpZD0idGFyZ2V0MSI+
PC9kaXY+CiAgIDxkaXYgaWQ9InRhcmdldDIiPjwvZGl2PgogICA8aWZyYW1lIGlkPSJpZnJhbWUx
Ij48L2lmcmFtZT4KQEAgLTIwLDU5ICsyMCwxMSBAQAogICAgIHRhcmdldElmcmFtZTEgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lMSIpOwogICAgIHRhcmdldElmcmFtZTIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaWZyYW1lMiIpOwogCi0gICAgZnVuY3Rpb24gZXZlbnRFeHBl
Y3RlZChldmVudEhhbmRsZXJOYW1lLCBtZXNzYWdlLCBleHBlY3RlZENhbGxzLCB0YXJnZXRIYW5k
ZXJOb2RlKQotICAgIHsKLSAgICAgICAgdGFyZ2V0SGFuZGVyTm9kZVtldmVudEhhbmRsZXJOYW1l
XSA9IGZ1bmN0aW9uICgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChl
eHBlY3RlZENhbGxzLS0pIHsKLSAgICAgICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoZXZlbnRIYW5kbGVyTmFtZSArICIgcmVjZWl2ZWQgYWZ0ZXI6ICIg
KyBtZXNzYWdlKTsKLSAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAg
ICAgICAgICAgZG9OZXh0U3RlcCgpOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnRIYW5kbGVyTmFtZSArICIgcmVjZWl2ZWQgYWZ0
ZXI6ICIgKyBtZXNzYWdlKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfTsKLSAg
ICB9OwotCi0gICAgZnVuY3Rpb24gZXhwZWN0T25seUNoYW5nZUV2ZW50KG1lc3NhZ2UsIHRhcmdl
dERvY3VtZW50KSB7Ci0gICAgICAgIGRlYnVnKCIgICAgICIgKyBtZXNzYWdlKTsKLSAgICAgICAg
dGFyZ2V0RG9jdW1lbnQgPSB0YXJnZXREb2N1bWVudCAhPT0gdW5kZWZpbmVkID8gdGFyZ2V0RG9j
dW1lbnQgOiBkb2N1bWVudDsKLSAgICAgICAgZXZlbnRFeHBlY3RlZCgib253ZWJraXRwb2ludGVy
bG9ja2NoYW5nZSIsIG1lc3NhZ2UsIDEsIHRhcmdldERvY3VtZW50KTsKLSAgICAgICAgZXZlbnRF
eHBlY3RlZCgib253ZWJraXRwb2ludGVybG9ja2Vycm9yIiwgbWVzc2FnZSwgMCwgdGFyZ2V0RG9j
dW1lbnQpOwotICAgIH07Ci0KLSAgICBmdW5jdGlvbiBleHBlY3RPbmx5RXJyb3JFdmVudChtZXNz
YWdlLCB0YXJnZXREb2N1bWVudCkgewotICAgICAgICBkZWJ1ZygiICAgICAiICsgbWVzc2FnZSk7
Ci0gICAgICAgIHRhcmdldERvY3VtZW50ID0gdGFyZ2V0RG9jdW1lbnQgIT09IHVuZGVmaW5lZCA/
IHRhcmdldERvY3VtZW50IDogZG9jdW1lbnQ7Ci0gICAgICAgIGV2ZW50RXhwZWN0ZWQoIm9ud2Vi
a2l0cG9pbnRlcmxvY2tjaGFuZ2UiLCBtZXNzYWdlLCAwLCB0YXJnZXREb2N1bWVudCk7Ci0gICAg
ICAgIGV2ZW50RXhwZWN0ZWQoIm9ud2Via2l0cG9pbnRlcmxvY2tlcnJvciIsIG1lc3NhZ2UsIDEs
IHRhcmdldERvY3VtZW50KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gZXhwZWN0Tm9FdmVudHMo
bWVzc2FnZSwgdGFyZ2V0RG9jdW1lbnQpIHsKLSAgICAgICAgZGVidWcoIiAgICAgIiArIG1lc3Nh
Z2UpOwotICAgICAgICB0YXJnZXREb2N1bWVudCA9IHRhcmdldERvY3VtZW50ICE9PSB1bmRlZmlu
ZWQgPyB0YXJnZXREb2N1bWVudCA6IGRvY3VtZW50OwotICAgICAgICBldmVudEV4cGVjdGVkKCJv
bndlYmtpdHBvaW50ZXJsb2NrY2hhbmdlIiwgbWVzc2FnZSwgMCwgdGFyZ2V0RG9jdW1lbnQpOwot
ICAgICAgICBldmVudEV4cGVjdGVkKCJvbndlYmtpdHBvaW50ZXJsb2NrZXJyb3IiLCBtZXNzYWdl
LCAwLCB0YXJnZXREb2N1bWVudCk7Ci0gICAgfTsKLQotICAgIGN1cnJlbnRTdGVwID0gMDsKLSAg
ICBmdW5jdGlvbiBkb05leHRTdGVwKG1hbnVhbCkKLSAgICB7Ci0gICAgICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIgJiYgIW1hbnVhbCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYg
KGN1cnJlbnRTdGVwIDwgdG9kby5sZW5ndGgpCi0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uICgpIHsgdG9kb1tjdXJyZW50U3RlcCsrXSgpOyB9LCAwKTsKLSAgICAgICAgZWxzZSBpZiAo
Y3VycmVudFN0ZXArKyA9PSB0b2RvLmxlbmd0aCkKLSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSwgMCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAg
ICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGV4cGVjdE5vRXZlbnRzKCJVbmxvY2su
Iik7CiAgICAgICAgICAgICBkb2N1bWVudC53ZWJraXRFeGl0UG9pbnRlckxvY2soKTsKLSAgICAg
ICAgICAgIGRvTmV4dFN0ZXAoKTsKKyAgICAgICAgICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1
cmUoKTsKICAgICAgICAgfSwKICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZXhw
ZWN0T25seUNoYW5nZUV2ZW50KCJMb2NrIHRhcmdldERpdjEuIik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlcmxvY2tsb3N0LWV2ZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2xvc3QtZXZlbnQtZXhwZWN0ZWQu
dHh0CmluZGV4IGFlZjBhZGM5ZWU5YzJjMDEzYjJjNWZkYTEzNmQ0MDU1MzRmZmRlZDIuLjdiYzMw
NDc0NDUwNTRiMGMzNWFiY2I1ZmY4MGIyZjU3Zjc0ZjcyNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2xvc3QtZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2xvc3QtZXZlbnQtZXhwZWN0ZWQu
dHh0CkBAIC0zLDYgKzMsNyBAQCBUZXN0IHRoYXQgcG9pbnRlcmxvY2tsb3N0IGV2ZW50IGlzIGRp
c3BhdGNoZWQuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorZG9OZXh0U3RlcCBidXR0
b24gZm9yIG1hbnVhbCB0ZXN0aW5nLiBVc2Uga2V5Ym9hcmQgdG8gc2VsZWN0IGFuZCBwcmVzcyAo
VEFCLCB0aGVuIFNQQUNFKSB3aGVuIHBvaW50ZXIgbG9ja2VkLgogUEFTUyB3aW5kb3cudGVzdFJ1
bm5lciBpcyBkZWZpbmVkLgogUEFTUyBuYXZpZ2F0b3Iud2Via2l0UG9pbnRlci5pc0xvY2tlZCBp
cyB0cnVlCiBQQVNTIGRvY3VtZW50LndlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCBpcyB0YXJnZXRk
aXYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2xvc3Qt
ZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2xvc3QtZXZl
bnQuaHRtbAppbmRleCAyYWRjMWI3ZGRkNDMyZTJkN2RjMzhhODBlZDIyOWIxOGJlM2M5YjRhLi4z
YmMzMTZmNGE0YWQxNmE0MjI4NDg5N2QwZjdlYTY4MDZlYWE0ZDkzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlcmxvY2tsb3N0LWV2ZW50Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrbG9zdC1ldmVudC5odG1sCkBAIC0yLDYg
KzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvaW50
ZXItbG9jay10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8ZGl2
PgpAQCAtNDgsMTAgKzQ5LDYgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIGN1cnJlbnRTdGVw
ID0gMDsKLSAgICBmdW5jdGlvbiBkb05leHRTdGVwKCkgewotICAgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7IHRvZG9bY3VycmVudFN0ZXArK10oKTsgfSwgMCk7Ci0gICAgfQogICAgIHRvZG8g
PSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIG5hdmlnYXRvci53ZWJraXRQ
b2ludGVyLmxvY2sodGFyZ2V0ZGl2LApAQCAtNzQsNyArNzEsNyBAQAogICAgICAgICAgICAgLy8g
bG9ja2xvc3RIYW5kbGVyIHdpbGwgY2F0Y2ggdW5sb2NrcyBhbmQgY2FsbCBkb05leHRTdGVwIHRv
IGJyaW5nIHVzIGhlcmUuCiAgICAgICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQud2Via2l0UG9p
bnRlckxvY2tFbGVtZW50IiwgIm51bGwiKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJuYXZpZ2F0
b3Iud2Via2l0UG9pbnRlci5pc0xvY2tlZCIsICJmYWxzZSIpOwotICAgICAgICAgICAgZG9OZXh0
U3RlcCgpOworICAgICAgICAgICAgZG9OZXh0U3RlcFdpdGhVc2VyR2VzdHVyZSgpOwogICAgICAg
ICB9LAogICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBuYXZpZ2F0b3Iud2Via2l0
UG9pbnRlci5sb2NrKHRhcmdldGRpdiwKQEAgLTEwMCw5ICs5Nyw4IEBACiAgICAgICAgICAgICBz
aG91bGRCZSgiZG9jdW1lbnQud2Via2l0UG9pbnRlckxvY2tFbGVtZW50IiwgIm51bGwiKTsKICAg
ICAgICAgICAgIGRvTmV4dFN0ZXAoKTsKICAgICAgICAgfSwKLSAgICAgICAgZmluaXNoSlNUZXN0
CiAgICAgXTsKLSAgICBkb05leHRTdGVwKCk7CisgICAgZG9OZXh0U3RlcFdpdGhVc2VyR2VzdHVy
ZSgpOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bv
aW50ZXItbG9jay9yZXNvdXJjZXMvcG9pbnRlci1sb2NrLXRlc3QtaGFybmVzcy5qcyBiL0xheW91
dFRlc3RzL3BvaW50ZXItbG9jay9yZXNvdXJjZXMvcG9pbnRlci1sb2NrLXRlc3QtaGFybmVzcy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYzdkOTZmNGZjMWFlNGYzZWY5MGY2NWUzMTE5ZDg5NWViZmFkNmQxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3Jlc291cmNlcy9wb2lu
dGVyLWxvY2stdGVzdC1oYXJuZXNzLmpzCkBAIC0wLDAgKzEsNjIgQEAKKy8vIEF1dG9tYXRpY2Fs
bHkgYWRkIGRvTmV4dFN0ZXBCdXR0b24gdG8gZG9jdW1lbnQuCitzZXRUaW1lb3V0KGZ1bmN0aW9u
ICgpIHsKKyAgICBkb05leHRTdGVwQnV0dG9uID0gZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkZXNjcmlwdGlvbiIpLm5leHRTaWJsaW5nKTsKKyAgICBkb05leHRTdGVwQnV0dG9uLm9uY2xp
Y2sgPSBkb05leHRTdGVwOworICAgIGRvTmV4dFN0ZXBCdXR0b24uaW5uZXJUZXh0ID0gImRvTmV4
dFN0ZXAgYnV0dG9uIGZvciBtYW51YWwgdGVzdGluZy4gVXNlIGtleWJvYXJkIHRvIHNlbGVjdCBh
bmQgcHJlc3MgKFRBQiwgdGhlbiBTUEFDRSkgd2hlbiBwb2ludGVyIGxvY2tlZC4iOworfSwgMCk7
CisKK2Z1bmN0aW9uIGRvTmV4dFN0ZXAoKQoreworICAgIGlmICh0eXBlb2YoY3VycmVudFN0ZXAp
ID09ICJ1bmRlZmluZWQiKQorICAgICAgICBjdXJyZW50U3RlcCA9IDA7CisKKyAgICBpZiAoY3Vy
cmVudFN0ZXAgPCB0b2RvLmxlbmd0aCkKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7
IHRvZG9bY3VycmVudFN0ZXArK10oKTsgfSwgMCk7CisgICAgZWxzZSBpZiAoY3VycmVudFN0ZXAr
KyA9PSB0b2RvLmxlbmd0aCkKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGZpbmlz
aEpTVGVzdCgpOyB9LCAwKTsKK30KKworZnVuY3Rpb24gZG9OZXh0U3RlcFdpdGhVc2VyR2VzdHVy
ZSgpCit7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuOyAvLyBX
YWl0IGZvciBodW1hbiB0byBwcmVzcyBkb05leHRTdGVwIGJ1dHRvbi4KKyAgICBkb05leHRTdGVw
KCk7Cit9CisKK2Z1bmN0aW9uIGV2ZW50RXhwZWN0ZWQoZXZlbnRIYW5kbGVyTmFtZSwgbWVzc2Fn
ZSwgZXhwZWN0ZWRDYWxscywgdGFyZ2V0SGFuZGVyTm9kZSkKK3sKKyAgICB0YXJnZXRIYW5kZXJO
b2RlW2V2ZW50SGFuZGxlck5hbWVdID0gZnVuY3Rpb24gKCkgeworICAgICAgICBzd2l0Y2ggKGV4
cGVjdGVkQ2FsbHMtLSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50SGFuZGxlck5hbWUgKyAiIHJlY2VpdmVkIGFmdGVyOiAiICsgbWVzc2FnZSk7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICBkb05leHRTdGVwV2l0aFVzZXJHZXN0dXJlKCk7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50SGFuZGxlck5hbWUgKyAiIHJlY2Vp
dmVkIGFmdGVyOiAiICsgbWVzc2FnZSk7CisgICAgICAgIH07CisgICAgfTsKK307CisKK2Z1bmN0
aW9uIGV4cGVjdE9ubHlDaGFuZ2VFdmVudChtZXNzYWdlLCB0YXJnZXREb2N1bWVudCkgeworICAg
IGRlYnVnKCIgICAgICIgKyBtZXNzYWdlKTsKKyAgICB0YXJnZXREb2N1bWVudCA9IHRhcmdldERv
Y3VtZW50ICE9PSB1bmRlZmluZWQgPyB0YXJnZXREb2N1bWVudCA6IGRvY3VtZW50OworICAgIGV2
ZW50RXhwZWN0ZWQoIm9ud2Via2l0cG9pbnRlcmxvY2tjaGFuZ2UiLCBtZXNzYWdlLCAxLCB0YXJn
ZXREb2N1bWVudCk7CisgICAgZXZlbnRFeHBlY3RlZCgib253ZWJraXRwb2ludGVybG9ja2Vycm9y
IiwgbWVzc2FnZSwgMCwgdGFyZ2V0RG9jdW1lbnQpOworfTsKKworZnVuY3Rpb24gZXhwZWN0T25s
eUVycm9yRXZlbnQobWVzc2FnZSwgdGFyZ2V0RG9jdW1lbnQpIHsKKyAgICBkZWJ1ZygiICAgICAi
ICsgbWVzc2FnZSk7CisgICAgdGFyZ2V0RG9jdW1lbnQgPSB0YXJnZXREb2N1bWVudCAhPT0gdW5k
ZWZpbmVkID8gdGFyZ2V0RG9jdW1lbnQgOiBkb2N1bWVudDsKKyAgICBldmVudEV4cGVjdGVkKCJv
bndlYmtpdHBvaW50ZXJsb2NrY2hhbmdlIiwgbWVzc2FnZSwgMCwgdGFyZ2V0RG9jdW1lbnQpOwor
ICAgIGV2ZW50RXhwZWN0ZWQoIm9ud2Via2l0cG9pbnRlcmxvY2tlcnJvciIsIG1lc3NhZ2UsIDEs
IHRhcmdldERvY3VtZW50KTsKK307CisKK2Z1bmN0aW9uIGV4cGVjdE5vRXZlbnRzKG1lc3NhZ2Us
IHRhcmdldERvY3VtZW50KSB7CisgICAgZGVidWcoIiAgICAgIiArIG1lc3NhZ2UpOworICAgIHRh
cmdldERvY3VtZW50ID0gdGFyZ2V0RG9jdW1lbnQgIT09IHVuZGVmaW5lZCA/IHRhcmdldERvY3Vt
ZW50IDogZG9jdW1lbnQ7CisgICAgZXZlbnRFeHBlY3RlZCgib253ZWJraXRwb2ludGVybG9ja2No
YW5nZSIsIG1lc3NhZ2UsIDAsIHRhcmdldERvY3VtZW50KTsKKyAgICBldmVudEV4cGVjdGVkKCJv
bndlYmtpdHBvaW50ZXJsb2NrZXJyb3IiLCBtZXNzYWdlLCAwLCB0YXJnZXREb2N1bWVudCk7Cit9
OworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151311</attachid>
            <date>2012-07-09 13:59:57 -0700</date>
            <delta_ts>2012-07-09 14:05:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90813-20120709135956.patch</filename>
            <type>text/plain</type>
            <size>21291</size>
            <attacher name="Vincent Scheib">scheib</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDk1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTIyNjA4OWFhNjE5MTRjMDNjYmNi
NmRhNTI1OTdhYjg5NjdlZDFlMS4uZjY3YTM2YjhkODMyOGZhZWNhOTMyZGFjYzgyYmZmNTNhMmNi
NmI3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTA5ICBWaW5jZW50IFNjaGVpYiAg
PHNjaGVpYkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgY29tbW9uIFBvaW50ZXIg
TG9jayB0ZXN0IGNvZGUgdG8gYSBoYXJuZXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBvaW50ZXItbG9jay9idWc5MDM5MS1tb3ZlLXRoZW4td2lu
ZG93LW9wZW4tY3Jhc2gtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBvaW50ZXItbG9jay9idWc5
MDM5MS1tb3ZlLXRoZW4td2luZG93LW9wZW4tY3Jhc2guaHRtbDoKKyAgICAgICAgKiBwb2ludGVy
LWxvY2svbG9jay1hbHJlYWR5LWxvY2tlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogcG9pbnRl
ci1sb2NrL2xvY2stYWxyZWFkeS1sb2NrZWQuaHRtbDoKKyAgICAgICAgKiBwb2ludGVyLWxvY2sv
bG9jay1mYWlsLXJlc3BvbnNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcG9pbnRlci1sb2Nr
L2xvY2stZmFpbC1yZXNwb25zZXMuaHRtbDoKKyAgICAgICAgKiBwb2ludGVyLWxvY2svbW91c2Ut
ZXZlbnQtZGVsaXZlcnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBvaW50ZXItbG9jay9tb3Vz
ZS1ldmVudC1kZWxpdmVyeS5odG1sOgorICAgICAgICAqIHBvaW50ZXItbG9jay9wb2ludGVyLWxv
Y2stYXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwb2ludGVyLWxvY2svcG9pbnRlci1sb2Nr
LWFwaS5odG1sOgorICAgICAgICAqIHBvaW50ZXItbG9jay9wb2ludGVybG9ja2NoYW5nZS1wb2lu
dGVybG9ja2Vycm9yLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcG9pbnRlci1sb2Nr
L3BvaW50ZXJsb2NrY2hhbmdlLXBvaW50ZXJsb2NrZXJyb3ItZXZlbnRzLmh0bWw6CisgICAgICAg
ICogcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrbG9zdC1ldmVudC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrbG9zdC1ldmVudC5odG1sOgorICAgICAgICAq
IHBvaW50ZXItbG9jay9yZXNvdXJjZXMvcG9pbnRlci1sb2NrLXRlc3QtaGFybmVzcy5qczogQWRk
ZWQuCisgICAgICAgIChkb05leHRTdGVwLmVsc2UpOgorICAgICAgICAoZG9OZXh0U3RlcFdpdGhV
c2VyR2VzdHVyZSk6CisgICAgICAgIChldmVudEV4cGVjdGVkLnRhcmdldEhhbmRlck5vZGUuZXZl
bnRIYW5kbGVyTmFtZSk6CisgICAgICAgIChldmVudEV4cGVjdGVkKToKKyAgICAgICAgKGV4cGVj
dE9ubHlDaGFuZ2VFdmVudCk6CisgICAgICAgIChleHBlY3RPbmx5RXJyb3JFdmVudCk6CisgICAg
ICAgIChleHBlY3ROb0V2ZW50cyk6CisKIDIwMTItMDctMDkgIEtyaXN0w7NmIEtvc3p0ecOzICA8
a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJk
ZW5pbmcuIFNraXAgdGhlIGZhaWxpbmcgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bv
aW50ZXItbG9jay9idWc5MDM5MS1tb3ZlLXRoZW4td2luZG93LW9wZW4tY3Jhc2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2J1ZzkwMzkxLW1vdmUtdGhlbi13aW5kb3ct
b3Blbi1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXggMGQxMDM1YzRhMjUyM2U2ZDZiOWY2Nzc4MzM3
OTAwZDFkNWE4MTdkMy4uZjg2ZDE1MGJkMjVhOTBhZjI3ZGU0YTZlZTk2ZDFmMDk4NzRhYjljMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2J1ZzkwMzkxLW1vdmUtdGhlbi13
aW5kb3ctb3Blbi1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1s
b2NrL2J1ZzkwMzkxLW1vdmUtdGhlbi13aW5kb3ctb3Blbi1jcmFzaC1leHBlY3RlZC50eHQKQEAg
LTExLDUgKzExLDQgQEAgUEFTUyBEaWRuJ3QgY3Jhc2gKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQotZG9OZXh0U3RlcCBmb3IgbWFudWFsIHRlc3RpbmcK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2J1ZzkwMzkxLW1vdmUtdGhl
bi13aW5kb3ctb3Blbi1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2J1Zzkw
MzkxLW1vdmUtdGhlbi13aW5kb3ctb3Blbi1jcmFzaC5odG1sCmluZGV4IGNjZjQxMzFhZWNmNmY1
Mzc5NTA4YTNkNmM2M2NlZDhmYzRjZWNjYTAuLjVmYmY1YjNkMTE3MDZiZjE3N2M4MDBhYzMxNzlh
OWZlNmJlZThkMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9idWc5MDM5
MS1tb3ZlLXRoZW4td2luZG93LW9wZW4tY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wb2lu
dGVyLWxvY2svYnVnOTAzOTEtbW92ZS10aGVuLXdpbmRvdy1vcGVuLWNyYXNoLmh0bWwKQEAgLTIs
MTAgKzIsMTAgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
b2ludGVyLWxvY2stdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5Pgog
PGRpdj4KLSAgPGJ1dHRvbiBvbmNsaWNrPSJkb05leHRTdGVwKCdtYW51YWwnKTsiPmRvTmV4dFN0
ZXAgZm9yIG1hbnVhbCB0ZXN0aW5nPC9idXR0b24+CiAgIDxkaXYgaWQ9InRhcmdldDEiPjwvZGl2
PgogPC9kaXY+CiA8c2NyaXB0PgpAQCAtMTQsMTYgKzE0LDYgQEAKIAogICAgIHRhcmdldGRpdjEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpOwogCi0gICAgY3VycmVudFN0ZXAg
PSAwOwotICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAobWFudWFsKQotICAgIHsKLSAgICAgICAgaWYg
KCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgIW1hbnVhbCkKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9kby5sZW5ndGgpCi0gICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3RlcCsrXSgpOyB9LCAwKTsK
LSAgICAgICAgZWxzZSBpZiAoY3VycmVudFN0ZXArKyA9PSB0b2RvLmxlbmd0aCkKLSAgICAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSwgMCk7Ci0gICAg
fQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRlYnVn
KCIgICAgIExvY2tpbmcgdGFyZ2V0ZGl2MS4iKQpAQCAtMzEsNyArMjEsNyBAQAogICAgICAgICAg
ICAgZG9jdW1lbnQub253ZWJraXRwb2ludGVybG9ja2NoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5vbndlYmtpdHBvaW50ZXJsb2NrY2hhbmdlID0gbnVsbDsK
ICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJkb2N1bWVudC5vbndlYmtpdHBvaW50ZXJsb2Nr
Y2hhbmdlIGV2ZW50IHJlY2VpdmVkLiIpOwotICAgICAgICAgICAgICAgIGRvTmV4dFN0ZXAoJ21h
bnVhbCcpOworICAgICAgICAgICAgICAgIGRvTmV4dFN0ZXAoKTsKICAgICAgICAgICAgIH07CiAg
ICAgICAgIH0sCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKQEAgLTQwLDcgKzMwLDcgQEAKICAgICAg
ICAgICAgIHRhcmdldGRpdjEub25tb3VzZW1vdmUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKCsrbW91c2VNb3ZlRXZlbnRzID09IDIpIHsKICAgICAgICAgICAgICAgICAgICAg
dGFyZ2V0ZGl2MS5vbm1vdXNlbW92ZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGRvTmV4
dFN0ZXAoJ21hbnVhbCcpOworICAgICAgICAgICAgICAgICAgICBkb05leHRTdGVwKCk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewpAQCAtNTQsMTAgKzQ0LDEwIEBACiAgICAgICAgICAgICB3aW5kb3cub3Blbigp
OwogICAgICAgICAgICAgdGVzdFBhc3NlZCgiRGlkbid0IGNyYXNoIik7CiAgICAgICAgICAgICBk
b2N1bWVudC53ZWJraXRFeGl0UG9pbnRlckxvY2soKTsKLSAgICAgICAgICAgIGRvTmV4dFN0ZXAo
J21hbnVhbCcpOworICAgICAgICAgICAgZG9OZXh0U3RlcCgpOwogICAgICAgICB9LAogICAgIF07
Ci0gICAgZG9OZXh0U3RlcCgpOworICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1cmUoKTsKIDwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxv
Y2svbG9jay1hbHJlYWR5LWxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVy
LWxvY2svbG9jay1hbHJlYWR5LWxvY2tlZC1leHBlY3RlZC50eHQKaW5kZXggZjY1ZmMzODk1YmE1
ZTZjOWI3MTA4NjIxMDNlMDZiY2ZhN2RlZjAyNy4uMTNkNzRjN2U4YmJmNWY3NzkyMmUwYzliNzAw
MDQ5MzlkYTM4MDEzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2st
YWxyZWFkeS1sb2NrZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9j
ay9sb2NrLWFscmVhZHktbG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMzEsNSArMzEsNCBAQCBQQVNT
IGRvY3VtZW50LndlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCBpcyB0YXJnZXRkaXYyCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLWRvTmV4dFN0ZXAgZm9y
IG1hbnVhbCB0ZXN0aW5nCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9s
b2NrLWFscmVhZHktbG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbG9jay1h
bHJlYWR5LWxvY2tlZC5odG1sCmluZGV4IGVjMDI0ZjZjMTM3NmIxZDI0OTNhNTk3NDg5ZjI1OTM2
NzIxZDViNzMuLjlmNGQ1NzQ2MTY0M2M2YmZhNDJmZjgzYmJjZGVkZTUyZjg3ZWRkYTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWFscmVhZHktbG9ja2VkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stYWxyZWFkeS1sb2NrZWQuaHRtbApA
QCAtMiwxMCArMiwxMCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3BvaW50ZXItbG9jay10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CiA8ZGl2PgotICA8YnV0dG9uIG9uY2xpY2s9ImRvTmV4dFN0ZXAoJ21hbnVhbCcpOyI+ZG9O
ZXh0U3RlcCBmb3IgbWFudWFsIHRlc3Rpbmc8L2J1dHRvbj4KICAgPGRpdiBpZD0idGFyZ2V0MSI+
PC9kaXY+CiAgIDxkaXYgaWQ9InRhcmdldDIiPjwvZGl2PgogPC9kaXY+CkBAIC0yMiw3ICsyMiw3
IEBACiAgICAgICAgIHsKICAgICAgICAgICAgIHRlc3RQYXNzZWQoImRvY3VtZW50Lm9ud2Via2l0
cG9pbnRlcmxvY2tjaGFuZ2UgZXZlbnQgcmVjZWl2ZWQuIik7CiAgICAgICAgICAgICBzaG91bGRC
ZSgiZG9jdW1lbnQud2Via2l0UG9pbnRlckxvY2tFbGVtZW50IiwgZXhwZWN0ZWRUYXJnZXRUb0Jl
TG9ja2VkU3RyaW5nKTsKLSAgICAgICAgICAgIGRvTmV4dFN0ZXAoKTsKKyAgICAgICAgICAgIGRv
TmV4dFN0ZXBXaXRoVXNlckdlc3R1cmUoKTsKICAgICAgICAgfTsKICAgICBkb2N1bWVudC5vbndl
YmtpdHBvaW50ZXJsb2NrZXJyb3IgPQogICAgICAgICBmdW5jdGlvbiAoKSB7IHRlc3RGYWlsZWQo
ImRvY3VtZW50Lm9ud2Via2l0cG9pbnRlcmxvY2tlcnJvciBldmVudCByZWNlaXZlZC4iKTsgZmlu
aXNoSlNUZXN0KCk7IH07CkBAIC0zNSwxNiArMzUsNiBAQAogICAgIHRhcmdldGRpdjIuYWRkRXZl
bnRMaXN0ZW5lcigid2Via2l0cG9pbnRlcmxvY2tsb3N0IiwKICAgICAgICAgZnVuY3Rpb24gKCkg
eyBzaG91bGRCZSgiZXhwZWN0VGFyZ2V0MlVubG9jayIsICJ0cnVlIik7IH0pOwogCi0gICAgY3Vy
cmVudFN0ZXAgPSAwOwotICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAobWFudWFsKQotICAgIHsKLSAg
ICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgIW1hbnVhbCkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9kby5sZW5ndGgpCi0g
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3RlcCsrXSgp
OyB9LCAwKTsKLSAgICAgICAgZWxzZSBpZiAoY3VycmVudFN0ZXArKyA9PSB0b2RvLmxlbmd0aCkK
LSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSwg
MCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHNob3VsZEJlKCJkb2N1bWVudC53ZWJraXRQb2ludGVyTG9ja0VsZW1lbnQiLCAibnVsbCIp
OwpAQCAtMTEwLDcgKzEwMCw3IEBACiAgICAgICAgICAgICBleHBlY3RlZFRhcmdldFRvQmVMb2Nr
ZWRTdHJpbmcgPSAidGFyZ2V0ZGl2MiI7CiAgICAgICAgIH0sCiAgICAgXTsKLSAgICBkb05leHRT
dGVwKCk7CisgICAgZG9OZXh0U3RlcFdpdGhVc2VyR2VzdHVyZSgpOwogPC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWZhaWwt
cmVzcG9uc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbG9jay1mYWlsLXJlc3Bv
bnNlcy5odG1sCmluZGV4IGNkZjVjNjM2ZDRlNzM0YjdlOGVjY2QxNTcxNTkyZmY4NTA4NWYyM2Yu
LmQ4YzI5NzcwNTI0ODdlNTU1MGZiNGRiNjU2ODgwMDJhZTQ5NTQ1YzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWZhaWwtcmVzcG9uc2VzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stZmFpbC1yZXNwb25zZXMuaHRtbApAQCAtMiw2ICsy
LDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2ludGVy
LWxvY2stdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHNjcmlw
dD4KQEAgLTksMTAgKzEwLDYgQEAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAg
ICAgc2hvdWxkQmVEZWZpbmVkKCJ3aW5kb3cudGVzdFJ1bm5lciIpOwogCi0gICAgY3VycmVudFN0
ZXAgPSAwOwotICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAoKSB7Ci0gICAgICB0b2RvW2N1cnJlbnRT
dGVwKytdKCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3VzbHko
KTsKQEAgLTIzLDcgKzIwLDcgQEAKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiTG9jayBmYWls
ZWQgKGFmdGVyIHdlIGNhbGxlZCB0ZXN0UnVubmVyLnNldFBvaW50ZXJMb2NrV2lsbEZhaWxTeW5j
aHJvbm91c2x5KSIpOwotICAgICAgICAgICAgICAgICAgICBkb05leHRTdGVwKCk7CisgICAgICAg
ICAgICAgICAgICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1cmUoKTsKICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSwKICAgICAgICAgZnVuY3Rpb24gKCkgewpAQCAtMzgsOSArMzUsOCBA
QAogICAgICAgICAgICAgICAgICAgICBkb05leHRTdGVwKCk7CiAgICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0sCi0gICAgICAgIGZpbmlzaEpTVGVzdAogICAgIF07Ci0gICAgZG9OZXh0U3Rl
cCgpOworICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1cmUoKTsKIDwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbW91c2UtZXZlbnQt
ZGVsaXZlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL21vdXNlLWV2
ZW50LWRlbGl2ZXJ5LWV4cGVjdGVkLnR4dAppbmRleCBhMmNmYWU0ZmVlMWMxYzFkYjMyYWVkOWUy
ZmY2NGU1NDMxZGUyZDU4Li4xMTQ0ZDRhYjc3N2FmNWIxODgyZjg4NGQ0YTc5NTY5ODhkOWNlZjZl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbW91c2UtZXZlbnQtZGVsaXZl
cnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9tb3VzZS1ldmVu
dC1kZWxpdmVyeS1leHBlY3RlZC50eHQKQEAgLTMyLDUgKzMyLDQgQEAgUEFTUyBldmVudCB0eXBl
OiBjbGljaywgdGFyZ2V0OiB0YXJnZXQyLCByZWNlaXZlZCBvbjogdGFyZ2V0MgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1kb05leHRTdGVwIGZvciBt
YW51YWwgdGVzdGluZwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbW91
c2UtZXZlbnQtZGVsaXZlcnkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9tb3VzZS1l
dmVudC1kZWxpdmVyeS5odG1sCmluZGV4IDhkMDdhMGFmNzY1Y2JiODgwZTU5MzM5MzZkNDJiYmYz
ODk5YWE2Y2MuLmUyZjA0MTA0MTNkZTE0MTA3YTVhOTI0OWY0NGUyNDgzN2ZmYzg0ZjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9tb3VzZS1ldmVudC1kZWxpdmVyeS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9tb3VzZS1ldmVudC1kZWxpdmVyeS5odG1s
CkBAIC0yLDEwICsyLDEwIEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcG9pbnRlci1sb2NrLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keSBpZD0iYm9keSI+CiA8ZGl2PgotICA8YnV0dG9uIG9uY2xpY2s9ImRvTmV4dFN0ZXAoJ21h
bnVhbCcpOyI+ZG9OZXh0U3RlcCBmb3IgbWFudWFsIHRlc3Rpbmc8L2J1dHRvbj4KICAgPGRpdiBp
ZD0idGFyZ2V0MSI+PC9kaXY+CiAgIDxkaXYgaWQ9InRhcmdldDIiPjwvZGl2PgogPC9kaXY+CkBA
IC0yMiw3ICsyMiw3IEBACiAgICAgICAgIHsKICAgICAgICAgICAgIHRlc3RQYXNzZWQoImRvY3Vt
ZW50Lm9ud2Via2l0cG9pbnRlcmxvY2tjaGFuZ2UgZXZlbnQgcmVjZWl2ZWQuIik7CiAgICAgICAg
ICAgICBzaG91bGRCZSgiZG9jdW1lbnQud2Via2l0UG9pbnRlckxvY2tFbGVtZW50IiwgZXhwZWN0
ZWRUYXJnZXRUb0JlTG9ja2VkU3RyaW5nKTsKLSAgICAgICAgICAgIGRvTmV4dFN0ZXAoJ21hbnVh
bCcpOworICAgICAgICAgICAgZG9OZXh0U3RlcCgpOwogICAgICAgICB9OwogICAgIGRvY3VtZW50
Lm9ud2Via2l0cG9pbnRlcmxvY2tlcnJvciA9CiAgICAgICAgIGZ1bmN0aW9uICgpIHsgdGVzdEZh
aWxlZCgiZG9jdW1lbnQub253ZWJraXRwb2ludGVybG9ja2Vycm9yIGV2ZW50IHJlY2VpdmVkLiIp
OyBmaW5pc2hKU1Rlc3QoKTsgfTsKQEAgLTM1LDE2ICszNSw2IEBACiAgICAgICB0ZXN0UGFzc2Vk
KCJldmVudCB0eXBlOiAiICsgZS50eXBlICsgIiwgdGFyZ2V0OiAiICsgZS50YXJnZXQuaWQgKyAi
LCByZWNlaXZlZCBvbjogIiArIGUuY3VycmVudFRhcmdldC5pZCk7CiAgICAgfQogCi0gICAgY3Vy
cmVudFN0ZXAgPSAwOwotICAgIGZ1bmN0aW9uIGRvTmV4dFN0ZXAobWFudWFsKQotICAgIHsKLSAg
ICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgIW1hbnVhbCkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9kby5sZW5ndGgpCi0g
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3RlcCsrXSgp
OyB9LCAwKTsKLSAgICAgICAgZWxzZSBpZiAoY3VycmVudFN0ZXArKyA9PSB0b2RvLmxlbmd0aCkK
LSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSwg
MCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHRhcmdldGRpdjEud2Via2l0UmVxdWVzdFBvaW50ZXJMb2NrKCk7CkBAIC02MSw3ICs1MSw3
IEBACiAgICAgICAgICAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAg
ICAgICAgICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBkb05leHRTdGVwKCk7CisgICAgICAgICAgICBkb05leHRTdGVwV2l0aFVz
ZXJHZXN0dXJlKCk7CiAgICAgICAgIH0sCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIHRhcmdldGRpdjIud2Via2l0UmVxdWVzdFBvaW50ZXJMb2NrKCk7CkBAIC03OCw3ICs2OCw3
IEBACiAgICAgICAgICAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAg
ICAgICAgICAgICAgIHdpbmRvdy5ldmVudFNlbmRlci5tb3VzZVVwKCk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBkb05leHRTdGVwKCk7CisgICAgICAgICAgICBkb05leHRTdGVwV2l0aFVz
ZXJHZXN0dXJlKCk7CiAgICAgICAgIH0sCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGRlYnVnKCIgICAgIEVuc3VyZSBkb3VibGUgY2xpY2tzIHdvcmsgYXMgZXhwZWN0ZWQsIHNl
bmRpbmcgNCBjbGlja3MuIikKQEAgLTEwMywxMCArOTMsMTAgQEAKICAgICAgICAgICAgICAgICB3
aW5kb3cuZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CiAgICAgICAgICAgICAgICAgd2luZG93LmV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRvTmV4dFN0
ZXAoKTsKKyAgICAgICAgICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1cmUoKTsKICAgICAgICAg
fSwKICAgICBdOwotICAgIGRvTmV4dFN0ZXAoKTsKKyAgICBkb05leHRTdGVwV2l0aFVzZXJHZXN0
dXJlKCk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlci1sb2NrL3BvaW50ZXItbG9jay1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cG9pbnRlci1sb2NrL3BvaW50ZXItbG9jay1hcGktZXhwZWN0ZWQudHh0CmluZGV4IGFkZDJhYWFm
ZmEwY2QyODdhOWM3ZTgwYTIwZDZlNWRjOWExODJjN2QuLmViMmRjOTgwZWEyY2JhYWE0N2YzYTVh
NWZjNWEwN2ExNGNhOGU5MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9w
b2ludGVyLWxvY2stYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxv
Y2svcG9pbnRlci1sb2NrLWFwaS1leHBlY3RlZC50eHQKQEAgLTE3LDQgKzE3LDQgQEAgUEFTUyBl
bGVtZW50LndlYmtpdFJlcXVlc3RQb2ludGVyTG9jayBpcyBkZWZpbmVkLgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1kb05leHRTdGVwIGZvciBtYW51
YWwgdGVzdGluZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRl
ci1sb2NrLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXItbG9jay1h
cGkuaHRtbAppbmRleCBmYjE0ZGM0OWU3ZWI5NjcyMWEyNjRhMTI3Yzg4NzAxYWQ3YjI1ODAzLi5j
ZTEyZGI0ZDBkZWE4OTE4MWVjZDNlZDljMDBkNzQ1M2VhYjRjOTFjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlci1sb2NrLWFwaS5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BvaW50ZXItbG9jay9wb2ludGVyLWxvY2stYXBpLmh0bWwKQEAgLTIsMjMgKzIsMTMgQEAK
IDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wb2ludGVyLWxvY2st
dGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgotPGJ1dHRvbiBvbmNs
aWNrPSJkb05leHRTdGVwKCdtYW51YWwnKTsiPmRvTmV4dFN0ZXAgZm9yIG1hbnVhbCB0ZXN0aW5n
PC9idXR0b24+CiA8c2NyaXB0PgogICAgIGRlc2NyaXB0aW9uKCJCYXNpYyBBUEkgZXhpc3RlbmNl
IHRlc3QgZm9yIFBvaW50ZXIgTG9jay4iKQogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAotICAgIGN1cnJlbnRTdGVwID0gMDsKLSAgICBmdW5jdGlvbiBkb05leHRTdGVwKG1hbnVh
bCkKLSAgICB7Ci0gICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgJiYgIW1hbnVhbCkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9kby5sZW5ndGgp
Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3RlcCsr
XSgpOyB9LCAwKTsKLSAgICAgICAgZWxzZSBpZiAoY3VycmVudFN0ZXArKyA9PSB0b2RvLmxlbmd0
aCkKLSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3QoKTsg
fSwgMCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHNob3VsZEJlRGVmaW5lZCgibmF2aWdhdG9yLndlYmtpdFBvaW50ZXIiKTsKQEAgLTQz
LDcgKzMzLDcgQEAKICAgICAgICAgICAgIGRvTmV4dFN0ZXAoKTsKICAgICAgICAgfSwKICAgICBd
OwotICAgIGRvTmV4dFN0ZXAoKTsKKyAgICBkb05leHRTdGVwV2l0aFVzZXJHZXN0dXJlKCk7CiA8
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlci1s
b2NrL3BvaW50ZXJsb2NrY2hhbmdlLXBvaW50ZXJsb2NrZXJyb3ItZXZlbnRzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2NoYW5nZS1wb2ludGVybG9j
a2Vycm9yLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggNjljNjYzMzYwOTkzYjVkODFkMDVhYWI3
NDc1MWVhODUxMGEyYTM5MS4uYzViMTNlMDg1YzE0OTc0Yzk5OGZiMTYyYWEzNDhjMjdkYzcxMTU0
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrY2hhbmdl
LXBvaW50ZXJsb2NrZXJyb3ItZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyLWxvY2svcG9pbnRlcmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMtZXhw
ZWN0ZWQudHh0CkBAIC0zNiw1ICszNiw0IEBAIFBBU1Mgb253ZWJraXRwb2ludGVybG9ja2Vycm9y
IHJlY2VpdmVkIGFmdGVyOiBMb2NrIHdpdGggYXN5bmNocm9ub3VzIGZhaWx1cmUuCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLWRvTmV4dFN0ZXAgZm9y
IG1hbnVhbCB0ZXN0aW5nCiAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2Nr
L3BvaW50ZXJsb2NrY2hhbmdlLXBvaW50ZXJsb2NrZXJyb3ItZXZlbnRzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlcmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1ldmVu
dHMuaHRtbAppbmRleCAyMGMxM2I1Y2Q2ZGEyMjI5MDIxOTUyNWUzZWIwYTdlNmM2MzljZTZkLi45
YTEwMWM0ZTQ5MjI2Mjc0NWIxNWRmN2EwYTZmMTBkMzliNTE3NWRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlcmxvY2tjaGFuZ2UtcG9pbnRlcmxvY2tlcnJvci1l
dmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRlcmxvY2tjaGFu
Z2UtcG9pbnRlcmxvY2tlcnJvci1ldmVudHMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGh0bWw+
CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BvaW50ZXItbG9jay10ZXN0LWhh
cm5lc3MuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CiA8ZGl2PgotICA8YnV0dG9uIG9u
Y2xpY2s9ImRvTmV4dFN0ZXAoJ21hbnVhbCcpOyI+ZG9OZXh0U3RlcCBmb3IgbWFudWFsIHRlc3Rp
bmc8L2J1dHRvbj4KICAgPGRpdiBpZD0idGFyZ2V0MSI+PC9kaXY+CiAgIDxkaXYgaWQ9InRhcmdl
dDIiPjwvZGl2PgogICA8aWZyYW1lIGlkPSJpZnJhbWUxIj48L2lmcmFtZT4KQEAgLTIwLDU5ICsy
MCwxMSBAQAogICAgIHRhcmdldElmcmFtZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZy
YW1lMSIpOwogICAgIHRhcmdldElmcmFtZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWZy
YW1lMiIpOwogCi0gICAgZnVuY3Rpb24gZXZlbnRFeHBlY3RlZChldmVudEhhbmRsZXJOYW1lLCBt
ZXNzYWdlLCBleHBlY3RlZENhbGxzLCB0YXJnZXRIYW5kZXJOb2RlKQotICAgIHsKLSAgICAgICAg
dGFyZ2V0SGFuZGVyTm9kZVtldmVudEhhbmRsZXJOYW1lXSA9IGZ1bmN0aW9uICgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChleHBlY3RlZENhbGxzLS0pIHsKLSAgICAg
ICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnRI
YW5kbGVyTmFtZSArICIgcmVjZWl2ZWQgYWZ0ZXI6ICIgKyBtZXNzYWdlKTsKLSAgICAgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICAgICAgICAgZG9OZXh0U3RlcCgpOwot
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
ZXZlbnRIYW5kbGVyTmFtZSArICIgcmVjZWl2ZWQgYWZ0ZXI6ICIgKyBtZXNzYWdlKTsKLSAgICAg
ICAgICAgICAgICB9OwotICAgICAgICAgICAgfTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gZXhw
ZWN0T25seUNoYW5nZUV2ZW50KG1lc3NhZ2UsIHRhcmdldERvY3VtZW50KSB7Ci0gICAgICAgIGRl
YnVnKCIgICAgICIgKyBtZXNzYWdlKTsKLSAgICAgICAgdGFyZ2V0RG9jdW1lbnQgPSB0YXJnZXRE
b2N1bWVudCAhPT0gdW5kZWZpbmVkID8gdGFyZ2V0RG9jdW1lbnQgOiBkb2N1bWVudDsKLSAgICAg
ICAgZXZlbnRFeHBlY3RlZCgib253ZWJraXRwb2ludGVybG9ja2NoYW5nZSIsIG1lc3NhZ2UsIDEs
IHRhcmdldERvY3VtZW50KTsKLSAgICAgICAgZXZlbnRFeHBlY3RlZCgib253ZWJraXRwb2ludGVy
bG9ja2Vycm9yIiwgbWVzc2FnZSwgMCwgdGFyZ2V0RG9jdW1lbnQpOwotICAgIH07Ci0KLSAgICBm
dW5jdGlvbiBleHBlY3RPbmx5RXJyb3JFdmVudChtZXNzYWdlLCB0YXJnZXREb2N1bWVudCkgewot
ICAgICAgICBkZWJ1ZygiICAgICAiICsgbWVzc2FnZSk7Ci0gICAgICAgIHRhcmdldERvY3VtZW50
ID0gdGFyZ2V0RG9jdW1lbnQgIT09IHVuZGVmaW5lZCA/IHRhcmdldERvY3VtZW50IDogZG9jdW1l
bnQ7Ci0gICAgICAgIGV2ZW50RXhwZWN0ZWQoIm9ud2Via2l0cG9pbnRlcmxvY2tjaGFuZ2UiLCBt
ZXNzYWdlLCAwLCB0YXJnZXREb2N1bWVudCk7Ci0gICAgICAgIGV2ZW50RXhwZWN0ZWQoIm9ud2Vi
a2l0cG9pbnRlcmxvY2tlcnJvciIsIG1lc3NhZ2UsIDEsIHRhcmdldERvY3VtZW50KTsKLSAgICB9
OwotCi0gICAgZnVuY3Rpb24gZXhwZWN0Tm9FdmVudHMobWVzc2FnZSwgdGFyZ2V0RG9jdW1lbnQp
IHsKLSAgICAgICAgZGVidWcoIiAgICAgIiArIG1lc3NhZ2UpOwotICAgICAgICB0YXJnZXREb2N1
bWVudCA9IHRhcmdldERvY3VtZW50ICE9PSB1bmRlZmluZWQgPyB0YXJnZXREb2N1bWVudCA6IGRv
Y3VtZW50OwotICAgICAgICBldmVudEV4cGVjdGVkKCJvbndlYmtpdHBvaW50ZXJsb2NrY2hhbmdl
IiwgbWVzc2FnZSwgMCwgdGFyZ2V0RG9jdW1lbnQpOwotICAgICAgICBldmVudEV4cGVjdGVkKCJv
bndlYmtpdHBvaW50ZXJsb2NrZXJyb3IiLCBtZXNzYWdlLCAwLCB0YXJnZXREb2N1bWVudCk7Ci0g
ICAgfTsKLQotICAgIGN1cnJlbnRTdGVwID0gMDsKLSAgICBmdW5jdGlvbiBkb05leHRTdGVwKG1h
bnVhbCkKLSAgICB7Ci0gICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgJiYgIW1hbnVhbCkK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGN1cnJlbnRTdGVwIDwgdG9kby5sZW5n
dGgpCi0gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3Rl
cCsrXSgpOyB9LCAwKTsKLSAgICAgICAgZWxzZSBpZiAoY3VycmVudFN0ZXArKyA9PSB0b2RvLmxl
bmd0aCkKLSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBmaW5pc2hKU1Rlc3Qo
KTsgfSwgMCk7Ci0gICAgfQogICAgIHRvZG8gPSBbCiAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGV4cGVjdE5vRXZlbnRzKCJVbmxvY2suIik7CiAgICAgICAgICAgICBkb2N1bWVu
dC53ZWJraXRFeGl0UG9pbnRlckxvY2soKTsKLSAgICAgICAgICAgIGRvTmV4dFN0ZXAoKTsKKyAg
ICAgICAgICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1cmUoKTsKICAgICAgICAgfSwKICAgICAg
ICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZXhwZWN0T25seUNoYW5nZUV2ZW50KCJMb2Nr
IHRhcmdldERpdjEuIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9p
bnRlcmxvY2tsb3N0LWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcG9pbnRl
cmxvY2tsb3N0LWV2ZW50Lmh0bWwKaW5kZXggMmFkYzFiN2RkZDQzMmUyZDdkYzM4YTgwZWQyMjli
MThiZTNjOWI0YS4uM2JjMzE2ZjRhNGFkMTZhNDIyODQ4OTdkMGY3ZWE2ODA2ZWFhNGQ5MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL3BvaW50ZXJsb2NrbG9zdC1ldmVudC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9wb2ludGVybG9ja2xvc3QtZXZlbnQu
aHRtbApAQCAtMiw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wb2ludGVyLWxvY2stdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IDxib2R5PgogPGRpdj4KQEAgLTQ4LDEwICs0OSw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBjdXJyZW50U3RlcCA9IDA7Ci0gICAgZnVuY3Rpb24gZG9OZXh0U3RlcCgpIHsKLSAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24gKCkgeyB0b2RvW2N1cnJlbnRTdGVwKytdKCk7IH0sIDApOwotICAg
IH0KICAgICB0b2RvID0gWwogICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBuYXZp
Z2F0b3Iud2Via2l0UG9pbnRlci5sb2NrKHRhcmdldGRpdiwKQEAgLTc0LDcgKzcxLDcgQEAKICAg
ICAgICAgICAgIC8vIGxvY2tsb3N0SGFuZGxlciB3aWxsIGNhdGNoIHVubG9ja3MgYW5kIGNhbGwg
ZG9OZXh0U3RlcCB0byBicmluZyB1cyBoZXJlLgogICAgICAgICAgICAgc2hvdWxkQmUoImRvY3Vt
ZW50LndlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCIsICJudWxsIik7CiAgICAgICAgICAgICBzaG91
bGRCZSgibmF2aWdhdG9yLndlYmtpdFBvaW50ZXIuaXNMb2NrZWQiLCAiZmFsc2UiKTsKLSAgICAg
ICAgICAgIGRvTmV4dFN0ZXAoKTsKKyAgICAgICAgICAgIGRvTmV4dFN0ZXBXaXRoVXNlckdlc3R1
cmUoKTsKICAgICAgICAgfSwKICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgbmF2
aWdhdG9yLndlYmtpdFBvaW50ZXIubG9jayh0YXJnZXRkaXYsCkBAIC0xMDAsOSArOTcsOCBAQAog
ICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LndlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCIs
ICJudWxsIik7CiAgICAgICAgICAgICBkb05leHRTdGVwKCk7CiAgICAgICAgIH0sCi0gICAgICAg
IGZpbmlzaEpTVGVzdAogICAgIF07Ci0gICAgZG9OZXh0U3RlcCgpOworICAgIGRvTmV4dFN0ZXBX
aXRoVXNlckdlc3R1cmUoKTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcmVzb3VyY2VzL3BvaW50ZXItbG9jay10ZXN0LWhhcm5l
c3MuanMgYi9MYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svcmVzb3VyY2VzL3BvaW50ZXItbG9jay10
ZXN0LWhhcm5lc3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhhMWJlNWI4NzI0NDkxOTYwNmM0ZGVlOGNiZjI5
YzA4MGEwNWU4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXItbG9jay9y
ZXNvdXJjZXMvcG9pbnRlci1sb2NrLXRlc3QtaGFybmVzcy5qcwpAQCAtMCwwICsxLDY0IEBACisv
LyBBdXRvbWF0aWNhbGx5IGFkZCBkb05leHRTdGVwQnV0dG9uIHRvIGRvY3VtZW50IGZvciBtYW51
YWwgdGVzdHMuCitpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7CisgICAgICAgIGRvTmV4dFN0ZXBCdXR0b24gPSBkb2N1bWVudC5ib2R5Lmluc2Vy
dEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSwgZG9jdW1lbnQuYm9keS5m
aXJzdENoaWxkKTsKKyAgICAgICAgZG9OZXh0U3RlcEJ1dHRvbi5vbmNsaWNrID0gZG9OZXh0U3Rl
cDsKKyAgICAgICAgZG9OZXh0U3RlcEJ1dHRvbi5pbm5lclRleHQgPSAiZG9OZXh0U3RlcCBidXR0
b24gZm9yIG1hbnVhbCB0ZXN0aW5nLiBVc2Uga2V5Ym9hcmQgdG8gc2VsZWN0IGJ1dHRvbiBhbmQg
cHJlc3MgKFRBQiwgdGhlbiBTUEFDRSkuIjsKKyAgICB9LCAwKTsKK30KKworZnVuY3Rpb24gZG9O
ZXh0U3RlcCgpCit7CisgICAgaWYgKHR5cGVvZihjdXJyZW50U3RlcCkgPT0gInVuZGVmaW5lZCIp
CisgICAgICAgIGN1cnJlbnRTdGVwID0gMDsKKworICAgIGlmIChjdXJyZW50U3RlcCA8IHRvZG8u
bGVuZ3RoKQorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdG9kb1tjdXJyZW50U3Rl
cCsrXSgpOyB9LCAwKTsKKyAgICBlbHNlIGlmIChjdXJyZW50U3RlcCsrID09IHRvZG8ubGVuZ3Ro
KQorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgZmluaXNoSlNUZXN0KCk7IH0sIDAp
OworfQorCitmdW5jdGlvbiBkb05leHRTdGVwV2l0aFVzZXJHZXN0dXJlKCkKK3sKKyAgICBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICByZXR1cm47IC8vIFdhaXQgZm9yIGh1bWFuIHRv
IHByZXNzIGRvTmV4dFN0ZXAgYnV0dG9uLgorICAgIGRvTmV4dFN0ZXAoKTsKK30KKworZnVuY3Rp
b24gZXZlbnRFeHBlY3RlZChldmVudEhhbmRsZXJOYW1lLCBtZXNzYWdlLCBleHBlY3RlZENhbGxz
LCB0YXJnZXRIYW5kZXJOb2RlKQoreworICAgIHRhcmdldEhhbmRlck5vZGVbZXZlbnRIYW5kbGVy
TmFtZV0gPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHN3aXRjaCAoZXhwZWN0ZWRDYWxscy0tKSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnRIYW5kbGVyTmFt
ZSArICIgcmVjZWl2ZWQgYWZ0ZXI6ICIgKyBtZXNzYWdlKTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg
IGRvTmV4dFN0ZXAoKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
ZXZlbnRIYW5kbGVyTmFtZSArICIgcmVjZWl2ZWQgYWZ0ZXI6ICIgKyBtZXNzYWdlKTsKKyAgICAg
ICAgfTsKKyAgICB9OworfTsKKworZnVuY3Rpb24gZXhwZWN0T25seUNoYW5nZUV2ZW50KG1lc3Nh
Z2UsIHRhcmdldERvY3VtZW50KSB7CisgICAgZGVidWcoIiAgICAgIiArIG1lc3NhZ2UpOworICAg
IHRhcmdldERvY3VtZW50ID0gdGFyZ2V0RG9jdW1lbnQgIT09IHVuZGVmaW5lZCA/IHRhcmdldERv
Y3VtZW50IDogZG9jdW1lbnQ7CisgICAgZXZlbnRFeHBlY3RlZCgib253ZWJraXRwb2ludGVybG9j
a2NoYW5nZSIsIG1lc3NhZ2UsIDEsIHRhcmdldERvY3VtZW50KTsKKyAgICBldmVudEV4cGVjdGVk
KCJvbndlYmtpdHBvaW50ZXJsb2NrZXJyb3IiLCBtZXNzYWdlLCAwLCB0YXJnZXREb2N1bWVudCk7
Cit9OworCitmdW5jdGlvbiBleHBlY3RPbmx5RXJyb3JFdmVudChtZXNzYWdlLCB0YXJnZXREb2N1
bWVudCkgeworICAgIGRlYnVnKCIgICAgICIgKyBtZXNzYWdlKTsKKyAgICB0YXJnZXREb2N1bWVu
dCA9IHRhcmdldERvY3VtZW50ICE9PSB1bmRlZmluZWQgPyB0YXJnZXREb2N1bWVudCA6IGRvY3Vt
ZW50OworICAgIGV2ZW50RXhwZWN0ZWQoIm9ud2Via2l0cG9pbnRlcmxvY2tjaGFuZ2UiLCBtZXNz
YWdlLCAwLCB0YXJnZXREb2N1bWVudCk7CisgICAgZXZlbnRFeHBlY3RlZCgib253ZWJraXRwb2lu
dGVybG9ja2Vycm9yIiwgbWVzc2FnZSwgMSwgdGFyZ2V0RG9jdW1lbnQpOworfTsKKworZnVuY3Rp
b24gZXhwZWN0Tm9FdmVudHMobWVzc2FnZSwgdGFyZ2V0RG9jdW1lbnQpIHsKKyAgICBkZWJ1Zygi
ICAgICAiICsgbWVzc2FnZSk7CisgICAgdGFyZ2V0RG9jdW1lbnQgPSB0YXJnZXREb2N1bWVudCAh
PT0gdW5kZWZpbmVkID8gdGFyZ2V0RG9jdW1lbnQgOiBkb2N1bWVudDsKKyAgICBldmVudEV4cGVj
dGVkKCJvbndlYmtpdHBvaW50ZXJsb2NrY2hhbmdlIiwgbWVzc2FnZSwgMCwgdGFyZ2V0RG9jdW1l
bnQpOworICAgIGV2ZW50RXhwZWN0ZWQoIm9ud2Via2l0cG9pbnRlcmxvY2tlcnJvciIsIG1lc3Nh
Z2UsIDAsIHRhcmdldERvY3VtZW50KTsKK307CisK
</data>
<flag name="review"
          id="159744"
          type_id="1"
          status="+"
          setter="enne"
    />
          </attachment>
      

    </bug>

</bugzilla>