<?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>88829</bug_id>
          
          <creation_ts>2012-06-11 18:39:41 -0700</creation_ts>
          <short_desc>IndexedDB: Add tests, an assert, and some comments around open/close/setVersion call sequencing</short_desc>
          <delta_ts>2012-06-13 10:31:20 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>jsbell</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>646532</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-11 18:39:41 -0700</bug_when>
    <thetext>IndexedDB: Add tests, an assert, and some comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646536</commentid>
    <comment_count>1</comment_count>
      <attachid>146989</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-11 18:41:20 -0700</bug_when>
    <thetext>Created attachment 146989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646542</commentid>
    <comment_count>2</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-11 18:45:59 -0700</bug_when>
    <thetext>Some tests and comments I added while looking through our pending call queues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647368</commentid>
    <comment_count>3</comment_count>
      <attachid>146989</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-12 14:54:32 -0700</bug_when>
    <thetext>Comment on attachment 146989
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        IndexedDB: Add tests, an assert, and some comments

Be more specific about the domain of the changes, e.g. &quot;around open/close/setVersion call sequencing&quot;

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:291
&gt; +    // If there were any pending set version calls, we better have started one.

Only true if there is only one connection to this database, correct? If that&apos;s the case, can we ASSERT on that at the start of the function?

(That&apos;s a surprise to me - I thought we called processPendingCalls() more often. Either way, we should be assertive about it.)

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:317
&gt; +    // Given the check above, it appears that calls cannot be requeued by

Add an ASSERT at the end of the function that m_pendingOpenCalls is empty?

&gt; LayoutTests/storage/indexeddb/factory-deletedatabase-interactions-expected.txt:74
&gt; +PASS self.steps.toString() is &quot;h.open,h.open.onsuccess,h2.open,h2.open.onsuccess,h.setVersion,deleteDatabase(),h2.onversionchange,h.setVersion.onblocked,h3.open,h2.close,h.setVersion.onsuccess,h.setVersion.transaction-complete,h.onversionchange,deleteDatabase().onblocked,h.close,deleteDatabase().onsuccess,h3.open.onsuccess&quot;

Feel free to rewrite this test if it&apos;ll improve comprehensibility. (It seemed like a good idea at the time, but looks a little &quot;too clever&quot; to me now.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647467</commentid>
    <comment_count>4</comment_count>
      <attachid>146989</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-12 16:39:17 -0700</bug_when>
    <thetext>Comment on attachment 146989
Patch

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

Added a few ASSERTS.  Those invariants might change shortly, but awareness of what changes is the point here.

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        IndexedDB: Add tests, an assert, and some comments
&gt; 
&gt; Be more specific about the domain of the changes, e.g. &quot;around open/close/setVersion call sequencing&quot;

Done.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:291
&gt;&gt; +    // If there were any pending set version calls, we better have started one.
&gt; 
&gt; Only true if there is only one connection to this database, correct? If that&apos;s the case, can we ASSERT on that at the start of the function?
&gt; 
&gt; (That&apos;s a surprise to me - I thought we called processPendingCalls() more often. Either way, we should be assertive about it.)

We call processPendingCalls when the last or second to last connection has closed and when a version change transaction has finished.  So yeah, we only call it when there is at most one remaining connection, good catch.  ASSERT added.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:317
&gt;&gt; +    // Given the check above, it appears that calls cannot be requeued by
&gt; 
&gt; Add an ASSERT at the end of the function that m_pendingOpenCalls is empty?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647468</commentid>
    <comment_count>5</comment_count>
      <attachid>147189</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-12 16:39:55 -0700</bug_when>
    <thetext>Created attachment 147189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647476</commentid>
    <comment_count>6</comment_count>
      <attachid>147192</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-12 16:47:34 -0700</bug_when>
    <thetext>Created attachment 147192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647482</commentid>
    <comment_count>7</comment_count>
      <attachid>147192</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-12 16:51:12 -0700</bug_when>
    <thetext>Comment on attachment 147192
Patch

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

&gt; LayoutTests/storage/indexeddb/resources/factory-deletedatabase-interactions.js:20
&gt; +                debug(&quot;    in versionchange, old = &quot; + e.target.version + &quot; new = &quot; + e.version);

Really minor, but maybe use JSON.stringify(e.target.version) and JSON.stringify(e.version) so they&apos;re quoted when strings? (The output currently looks a bit odd when there&apos;s no old version.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647487</commentid>
    <comment_count>8</comment_count>
      <attachid>147192</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-12 16:54:00 -0700</bug_when>
    <thetext>Comment on attachment 147192
Patch

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

&gt;&gt; LayoutTests/storage/indexeddb/resources/factory-deletedatabase-interactions.js:20
&gt;&gt; +                debug(&quot;    in versionchange, old = &quot; + e.target.version + &quot; new = &quot; + e.version);
&gt; 
&gt; Really minor, but maybe use JSON.stringify(e.target.version) and JSON.stringify(e.version) so they&apos;re quoted when strings? (The output currently looks a bit odd when there&apos;s no old version.)

SG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647522</commentid>
    <comment_count>9</comment_count>
      <attachid>147200</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-12 17:28:12 -0700</bug_when>
    <thetext>Created attachment 147200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647579</commentid>
    <comment_count>10</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-12 18:42:17 -0700</bug_when>
    <thetext>Tony, could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648147</commentid>
    <comment_count>11</comment_count>
      <attachid>147200</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-13 09:44:13 -0700</bug_when>
    <thetext>Comment on attachment 147200
Patch

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

&gt; LayoutTests/storage/indexeddb/resources/three-setversion-calls.js:48
&gt; +      if (i == 0) {

Nit: if (!i) would be WebKit style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648161</commentid>
    <comment_count>12</comment_count>
      <attachid>147200</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-13 09:52:52 -0700</bug_when>
    <thetext>Comment on attachment 147200
Patch

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

&gt;&gt; LayoutTests/storage/indexeddb/resources/three-setversion-calls.js:48
&gt;&gt; +      if (i == 0) {
&gt; 
&gt; Nit: if (!i) would be WebKit style.

Thanks, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648170</commentid>
    <comment_count>13</comment_count>
      <attachid>147348</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-06-13 09:57:42 -0700</bug_when>
    <thetext>Created attachment 147348
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648224</commentid>
    <comment_count>14</comment_count>
      <attachid>147348</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 10:31:09 -0700</bug_when>
    <thetext>Comment on attachment 147348
Patch for landing

Clearing flags on attachment: 147348

Committed r120222: &lt;http://trac.webkit.org/changeset/120222&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648225</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 10:31:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146989</attachid>
            <date>2012-06-11 18:41:20 -0700</date>
            <delta_ts>2012-06-12 16:39:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88829-20120611184120.patch</filename>
            <type>text/plain</type>
            <size>14079</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAyYTA2ZDRmMDA2Nzkz
YWU1YTQxYWI1YTYzODk5OTZhNjAxZGVhMC4uYWZjOTVmMjhkNmIzYzM2MmIzYzk3M2E3YzczYzdl
NGI3MzVjMmE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTExICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCB0ZXN0cywgYW4gYXNzZXJ0LCBhbmQgc29tZSBjb21tZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi90aHJl
ZS1zZXR2ZXJzaW9uLWNhbGxzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VC
YWNrZW5kSW1wbDo6cHJvY2Vzc1BlbmRpbmdDYWxscyk6CisKIDIwMTItMDYtMTEgIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFBvcnQg
RHJhd2luZ0J1ZmZlckNocm9taXVtIGZyb20gVGV4dHVyZUxheWVyQ2hyb21pdW0gb3ZlciB0byBX
ZWJFeHRlcm5hbFRleHR1cmVMYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBhZGE4NWMx
ODAxNDQ5OGYxNWY0MDA0NjBjNzU2MDMxZDkzMjkzZTdjLi41ODNlMjVmYWI5ZWE1MDhhNDEzOGNk
ZDIyYzhmMzg1OWRkM2M0Y2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMjg4LDYgKzI4
OCwxNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMo
KQogICAgICAgICBBU1NFUlQoIWVjKTsKICAgICB9CiAKKyAgICAvLyBJZiB0aGVyZSB3ZXJlIGFu
eSBwZW5kaW5nIHNldCB2ZXJzaW9uIGNhbGxzLCB3ZSBiZXR0ZXIgaGF2ZSBzdGFydGVkIG9uZS4K
KyAgICBBU1NFUlQobV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmlzRW1wdHkoKSB8fCBtX3J1bm5p
bmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOworCisgICAgLy8gbV9wZW5kaW5nU2V0VmVyc2lv
bkNhbGxzIGlzIG5vbi1lbXB0eSBpbiB0d28gY2FzZXM6CisgICAgLy8gMSkgV2hlbiB0d28gdmVy
c2lvbmNoYW5nZSB0cmFuc2FjdGlvbnMgYXJlIHJlcXVlc3RlZCB3aGlsZSBhbm90aGVyCisgICAg
Ly8gICAgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gaXMgcnVubmluZy4KKyAgICAvLyAyKSBX
aGVuIHRocmVlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb25zIGFyZSByZXF1ZXN0ZWQgaW4gYSBy
b3csIGJlZm9yZQorICAgIC8vICAgIGFueSBvZiB0aGVpciBldmVudCBoYW5kbGVycyBhcmUgcnVu
LgorICAgIC8vIE5vdGUgdGhhdCB0aGlzIGNoZWNrIGlzIG9ubHkgYW4gb3B0aW1pemF0aW9uIHRv
IHJlZHVjZSBxdWV1ZS1jaHVybiBhbmQKKyAgICAvLyBub3QgbmVjZXNzYXJ5IGZvciBjb3JyZWN0
bmVzczsgZGVsZXRlRGF0YWJhc2UgYW5kIG9wZW5Db25uZWN0aW9uIHdpbGwKKyAgICAvLyByZXF1
ZXVlIHRoZWlyIGNhbGxzIGlmIHRoaXMgY29uZGl0aW9uIGlzIHRydWUuCiAgICAgaWYgKG1fcnVu
bmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiB8fCAhbV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxz
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yOTksMTEgKzMxMCwxNiBAQCB2b2lk
IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgICAgICBk
ZWxldGVEYXRhYmFzZShwZW5kaW5nRGVsZXRlQ2FsbC0+Y2FsbGJhY2tzKCkpOwogICAgIH0KIAor
ICAgIC8vIFRoaXMgY2hlY2sgaXMgYWxzbyBub3QgcmVhbGx5IG5lZWRlZCwgb3BlbkNvbm5lY3Rp
b24gd291bGQganVzdCByZXF1ZXVlIGl0cyBjYWxscy4KICAgICBpZiAobV9ydW5uaW5nVmVyc2lv
bkNoYW5nZVRyYW5zYWN0aW9uIHx8ICFtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMuaXNFbXB0eSgp
IHx8ICFtX3BlbmRpbmdEZWxldGVDYWxscy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHdoaWxlICghbV9wZW5kaW5nT3BlbkNhbGxzLmlzRW1wdHkoKSkgewotICAgICAgICBSZWZQ
dHI8UGVuZGluZ09wZW5DYWxsPiBwZW5kaW5nT3BlbkNhbGwgPSBtX3BlbmRpbmdPcGVuQ2FsbHMu
dGFrZUZpcnN0KCk7CisgICAgLy8gR2l2ZW4gdGhlIGNoZWNrIGFib3ZlLCBpdCBhcHBlYXJzIHRo
YXQgY2FsbHMgY2Fubm90IGJlIHJlcXVldWVkIGJ5CisgICAgLy8gb3BlbkNvbm5lY3Rpb24sIGJ1
dCB1c2UgYSBkaWZmZXJlbnQgcXVldWUgZm9yIGl0ZXJhdGlvbiB0byBiZSBzYWZlLgorICAgIERl
cXVlPFJlZlB0cjxQZW5kaW5nT3BlbkNhbGw+ID4gcGVuZGluZ09wZW5DYWxsczsKKyAgICBtX3Bl
bmRpbmdPcGVuQ2FsbHMuc3dhcChwZW5kaW5nT3BlbkNhbGxzKTsKKyAgICB3aGlsZSAoIXBlbmRp
bmdPcGVuQ2FsbHMuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxQZW5kaW5nT3BlbkNhbGw+
IHBlbmRpbmdPcGVuQ2FsbCA9IHBlbmRpbmdPcGVuQ2FsbHMudGFrZUZpcnN0KCk7CiAgICAgICAg
IG9wZW5Db25uZWN0aW9uKHBlbmRpbmdPcGVuQ2FsbC0+Y2FsbGJhY2tzKCkpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNWNlYTQ4NDc5YzUwNDgyODk5NTAyMTEzZjc4ZTg2ZjViYTU2MjA1Li4xYTU1ZGY5
NmI5YjU0Y2Y3NDkxYmZiNzE2NGMzOTUxZjQ4MTQzZjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTItMDYtMTEgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEluZGV4ZWREQjogQWRkIHRlc3RzLCBhbiBhc3NlcnQsIGFuZCBzb21lIGNvbW1lbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODgyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9mYWN0b3J5LWRlbGV0ZWRh
dGFiYXNlLWludGVyYWN0aW9ucy5qczoKKyAgICAgICAgKENvbm5lY3Rpb24udGhpcy5vcGVuLnJl
cS5vbnN1Y2Nlc3MudGhhdC5oYW5kbGUub252ZXJzaW9uY2hhbmdlKToKKyAgICAgICAgKENvbm5l
Y3Rpb24udGhpcy5vcGVuLnJlcS5vbnN1Y2Nlc3MpOgorICAgICAgICAoQ29ubmVjdGlvbi50aGlz
Lm9wZW4pOgorICAgICAgICAodGVzdDMpOgorICAgICAgICAodGVzdDQucnVuU3RlcHMuKToKKyAg
ICAgICAgKHRlc3Q0KToKKyAgICAgICAgKHRlc3Q0Lik6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3RocmVlLXNldHZlcnNpb24tY2FsbHMuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgIChvcGVuREJDb25uZWN0aW9uKToKKyAgICAgICAgKHN1Y2Nlc3NI
YW5kbGVyLnJldHVybi50cmFucy5vbmNvbXBsZXRlKToKKyAgICAgICAgKG9wZW5TdWNjZXNzMS5k
ZWxldGVSZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgIChvcGVuU3VjY2VzczEpOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24tY2FsbHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9uLWNh
bGxzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA2LTExICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkZWQgaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQv
YmxvYi11cmwtaW4taWZyYW1lLmh0bWwgYmFjayB0byB0aGUgTWFjIHNraXAgbGlzdCwgYXMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0
YWJhc2UtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dApp
bmRleCBhMTgyYmM2Zjc2YTMxYjkxMmQ3ZWQxN2ZlNjI1MWI1MmEzZTRmNWVhLi43MjkzOGNiYmRk
MDFjOWY2MWE3ODBiZDk3M2IzZGRmMjRhNjZjNGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxl
dGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xMiw2ICsxMiw3IEBAIHNl
bGYuZGJuYW1lID0gJ3Rlc3QxJzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10KICdoLm9w
ZW4ub25zdWNjZXNzJwogJ2RlbGV0ZURhdGFiYXNlKCknCiAnaC5vbnZlcnNpb25jaGFuZ2UnCisg
ICAgaW4gdmVyc2lvbmNoYW5nZSwgb2xkID0gIG5ldyA9IAogICAgIGggY2xvc2luZywgYnV0IG5v
dCBpbW1lZGlhdGVseQogJ2RlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkJwogJ2guY2xvc2UnCkBA
IC0yNCw2ICsyNSw3IEBAIHNlbGYuZGJuYW1lID0gJ3Rlc3QyJzsgc2VsZi52ZXIgPSAxOyBzZWxm
LnN0ZXBzID0gW10KICdoLm9wZW4ub25zdWNjZXNzJwogJ2RlbGV0ZURhdGFiYXNlKCknCiAnaC5v
bnZlcnNpb25jaGFuZ2UnCisgICAgaW4gdmVyc2lvbmNoYW5nZSwgb2xkID0gIG5ldyA9IAogICAg
IGggY2xvc2luZyBpbW1lZGlhdGVseQogJ2guY2xvc2UnCiAnZGVsZXRlRGF0YWJhc2UoKS5vbmJs
b2NrZWQnCkBAIC00MCwxMSArNDIsMzYgQEAgc2VsZi5kYm5hbWUgPSAndGVzdDMnOyBzZWxmLnZl
ciA9IDE7IHNlbGYuc3RlcHMgPSBbXQogJ2guc2V0VmVyc2lvbi5vbnN1Y2Nlc3MnCiAnaC5zZXRW
ZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlJwogJ2gub252ZXJzaW9uY2hhbmdlJworICAgIGlu
IHZlcnNpb25jaGFuZ2UsIG9sZCA9IDEgbmV3ID0gCiAgICAgaCBjbG9zaW5nLCBidXQgbm90IGlt
bWVkaWF0ZWx5CiAnZGVsZXRlRGF0YWJhc2UoKS5vbmJsb2NrZWQnCiAnaC5jbG9zZScKICdkZWxl
dGVEYXRhYmFzZSgpLm9uc3VjY2VzcycKIFBBU1Mgc2VsZi5zdGVwcy50b1N0cmluZygpIGlzICJo
Lm9wZW4saC5vcGVuLm9uc3VjY2VzcyxoLnNldFZlcnNpb24sZGVsZXRlRGF0YWJhc2UoKSxoLnNl
dFZlcnNpb24ub25zdWNjZXNzLGguc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZSxoLm9u
dmVyc2lvbmNoYW5nZSxkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCxoLmNsb3NlLGRlbGV0ZURh
dGFiYXNlKCkub25zdWNjZXNzIgorCitURVNUOiBDb3JyZWN0IG9yZGVyIHdoZW4gdGhlcmUgYXJl
IHBlbmRpbmcgc2V0VmVyc2lvbiwgZGVsZXRlIGFuZCBvcGVuIGNhbGxzLgorc2VsZi5kYm5hbWUg
PSAndGVzdDQnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQorJ2gub3BlbicKKydoLm9w
ZW4ub25zdWNjZXNzJworJ2gyLm9wZW4nCisnaDIub3Blbi5vbnN1Y2Nlc3MnCisnaC5zZXRWZXJz
aW9uJworJ2RlbGV0ZURhdGFiYXNlKCknCisnaDIub252ZXJzaW9uY2hhbmdlJworICAgIGluIHZl
cnNpb25jaGFuZ2UsIG9sZCA9ICBuZXcgPSAxCisnaC5zZXRWZXJzaW9uLm9uYmxvY2tlZCcKKydo
My5vcGVuJworJ2gyLmNsb3NlJworJ2guc2V0VmVyc2lvbi5vbnN1Y2Nlc3MnCisnaC5zZXRWZXJz
aW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlJworJ2gub252ZXJzaW9uY2hhbmdlJworICAgIGluIHZl
cnNpb25jaGFuZ2UsIG9sZCA9IDEgbmV3ID0gCisgICAgaCBjbG9zaW5nLCBidXQgbm90IGltbWVk
aWF0ZWx5CisnZGVsZXRlRGF0YWJhc2UoKS5vbmJsb2NrZWQnCisnaC5jbG9zZScKKydkZWxldGVE
YXRhYmFzZSgpLm9uc3VjY2VzcycKKydoMy5vcGVuLm9uc3VjY2VzcycKK1BBU1Mgc2VsZi5zdGVw
cy50b1N0cmluZygpIGlzICJoLm9wZW4saC5vcGVuLm9uc3VjY2VzcyxoMi5vcGVuLGgyLm9wZW4u
b25zdWNjZXNzLGguc2V0VmVyc2lvbixkZWxldGVEYXRhYmFzZSgpLGgyLm9udmVyc2lvbmNoYW5n
ZSxoLnNldFZlcnNpb24ub25ibG9ja2VkLGgzLm9wZW4saDIuY2xvc2UsaC5zZXRWZXJzaW9uLm9u
c3VjY2VzcyxoLnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUsaC5vbnZlcnNpb25jaGFu
Z2UsZGVsZXRlRGF0YWJhc2UoKS5vbmJsb2NrZWQsaC5jbG9zZSxkZWxldGVEYXRhYmFzZSgpLm9u
c3VjY2VzcyxoMy5vcGVuLm9uc3VjY2VzcyIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ZhY3RvcnktZGVsZXRlZGF0
YWJhc2UtaW50ZXJhY3Rpb25zLmpzCmluZGV4IGU5ZDliNzk0M2RlYTVmM2U2NjliNTRlODJmMzU3
ZDk2YjI4NGZiMGMuLmJmZThjY2EwNmE1MjgwZWExYTZiZTE2NDlkMjk5ZjlhYjhlN2E3NjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9mYWN0b3J5
LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMu
anMKQEAgLTE3LDYgKzE3LDcgQEAgZnVuY3Rpb24gQ29ubmVjdGlvbihpZCkgewogICAgICAgICAg
ICAgc2VsZi5zdGVwcy5wdXNoKGV2YWxBbmRMb2coIiciICsgaWQgKyAiLm9wZW4ub25zdWNjZXNz
JyIpKTsKICAgICAgICAgICAgIHRoYXQuaGFuZGxlLm9udmVyc2lvbmNoYW5nZSA9IGZ1bmN0aW9u
KGUpIHsKICAgICAgICAgICAgICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJyIgKyBp
ZCArICIub252ZXJzaW9uY2hhbmdlJyIpKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiICAgIGlu
IHZlcnNpb25jaGFuZ2UsIG9sZCA9ICIgKyBlLnRhcmdldC52ZXJzaW9uICsgIiBuZXcgPSAiICsg
ZS52ZXJzaW9uKTsKICAgICAgICAgICAgICAgICBpZiAob3B0cyAmJiBvcHRzLm9udmVyc2lvbikg
eyBvcHRzLm9udmVyc2lvbi5jYWxsKHRoYXQpOyB9CiAgICAgICAgICAgICB9OwogICAgICAgICAg
ICAgaWYgKG9wdHMgJiYgb3B0cy5vbnN1Y2Nlc3MpIHsgb3B0cy5vbnN1Y2Nlc3MuY2FsbCh0aGF0
KTsgfQpAQCAtMTc5LDYgKzE4MCw1MyBAQCBmdW5jdGlvbiB0ZXN0MygpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaC5jbG9zZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImRlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzIgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF0udG9TdHJpbmcoKSk7CisgICAgICAgIHRlc3Q0KCk7CisgICAgfQorfQorCitm
dW5jdGlvbiB0ZXN0NCgpIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRFU1Q6IENvcnJl
Y3Qgb3JkZXIgd2hlbiB0aGVyZSBhcmUgcGVuZGluZyBzZXRWZXJzaW9uLCBkZWxldGUgYW5kIG9w
ZW4gY2FsbHMuIik7CisgICAgZXZhbEFuZExvZygic2VsZi5kYm5hbWUgPSAndGVzdDQnOyBzZWxm
LnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXSIpOworICAgIHZhciBoID0gbmV3IENvbm5lY3Rpb24o
ImgiKTsKKyAgICB2YXIgaDIgPSBuZXcgQ29ubmVjdGlvbigiaDIiKTsKKyAgICB2YXIgaDMgPSBu
ZXcgQ29ubmVjdGlvbigiaDMiKTsKKyAgICBydW5TdGVwcyhbZnVuY3Rpb24oZG9OZXh0KSB7IGgu
b3Blbih7b25zdWNjZXNzOiBkb05leHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9udmVyc2lvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiICAgIGggY2xvc2luZywgYnV0IG5vdCBpbW1l
ZGlhdGVseSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsgaC5jbG9zZSgpOyB9LCAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBoMi5vcGVuKHtvbnN1
Y2Nlc3M6IGRvTmV4dH0pOyB9LAorICAgICAgICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaC5z
ZXRWZXJzaW9uKHtvbmJsb2NrZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoMy5vcGVuKHtvbnN1Y2Nlc3M6IGZpbmlzaFRlc3R9
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaDIuY2xv
c2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb05leHQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgZGVs
ZXRlRGF0YWJhc2UoIiIsIHNlbGYuZGJuYW1lKTsgfSwKKyAgICAgICAgICAgICAgXSk7CisKKyAg
ICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InNlbGYuc3RlcHMudG9TdHJpbmcoKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
Imgub3BlbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgub3Blbi5vbnN1Y2Nl
c3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vcGVuIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaDIub3Blbi5vbnN1Y2Nlc3MiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJoLnNldFZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkZWxldGVEYXRhYmFzZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaDIub252ZXJzaW9uY2hhbmdlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaC5zZXRWZXJzaW9uLm9uYmxvY2tlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImgzLm9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5jbG9zZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImguc2V0VmVyc2lvbi5vbnN1Y2Nlc3Mi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLnNldFZlcnNpb24udHJhbnNhY3Rp
b24tY29tcGxldGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLm9udmVyc2lv
bmNoYW5nZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNl
KCkub25ibG9ja2VkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5jbG9zZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNlKCkub25zdWNj
ZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDMub3Blbi5vbnN1Y2Nlc3Mi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLnRvU3RyaW5nKCkpOwogICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy5qcyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE5OWUwY2QwYjVhMDMwNWM4Yjk4MDFiNDhlYTZjMjQ0NThlZjFmYWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
dGhyZWUtc2V0dmVyc2lvbi1jYWxscy5qcwpAQCAtMCwwICsxLDYwIEBACitpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30K
KworZGVzY3JpcHRpb24oIlRocmVlIHNldFZlcnNpb24gY2FsbHMgYXJlIHF1ZXVlZCBjb3JyZWN0
bHkgLSBleGVyY2lzZXMgYW4gb3RoZXJ3aXNlLXVudGVzdGVkIGNvZGUgcGF0aCIpOworCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIG9wZW5EQkNv
bm5lY3Rpb24oKTsKK30KKworZnVuY3Rpb24gb3BlbkRCQ29ubmVjdGlvbigpCit7CisgICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCd0aHJlZS1zZXR2ZXJzaW9uLWNhbGxz
JykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzMTsKKyAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc3VjY2Vz
c0hhbmRsZXIoaWQpCit7CisgIHJldHVybiBmdW5jdGlvbihlKSB7CisgICAgdHJhbnMgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgZGVidWcoInNldFZlcnNpb24gIiArIGlkKTsKKyAgICB0cmFucy5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgdHJhbnMub25hYm9ydCA9IHVu
ZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5jdGlvbihl
dnQpIHsKKyAgICAgIGRlYnVnKCJzZXRWZXJzaW9uICIgKyBpZCArICIgY29tcGxldGUiKTsKKyAg
ICAgIGlmIChpZCA9PSBrTnVtVmVyc2lvbkNhbGxzIC0gMSkgeworICAgICAgICBldmFsQW5kTG9n
KCJmaW5pc2hlZEFsbFNldFZlcnNpb25zID0gdHJ1ZSIpOworICAgICAgICBjb25uZWN0aW9uLmNs
b3NlKCk7CisgICAgICB9CisgICAgfQorICB9Cit9CisKK2ZpbmlzaGVkQWxsU2V0VmVyc2lvbnMg
PSBmYWxzZTsKK2tOdW1WZXJzaW9uQ2FsbHMgPSAzOworZnVuY3Rpb24gb3BlblN1Y2Nlc3MxKGUp
Cit7CisgICAgY29ubmVjdGlvbiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGtOdW1WZXJzaW9uQ2FsbHM7IGkrKykgeworICAgICAgdmNSZXF1ZXN0ID0gZXZhbEFu
ZExvZygnY29ubmVjdGlvbi5zZXRWZXJzaW9uKCJ2ZXJzaW9uICcgKyBpICsgJyIpJyk7CisgICAg
ICB2Y1JlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICAg
IHZjUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICB2Y1Jl
cXVlc3Qub25zdWNjZXNzID0gc3VjY2Vzc0hhbmRsZXIoaSk7CisgICAgICBpZiAoaSA9PSAwKSB7
CisgICAgICAgIGRlbGV0ZVJlcXVlc3QgPSBldmFsQW5kTG9nKCdpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoInRocmVlLXNldHZlcnNpb24tY2FsbHMiKScpOworICAgICAgICBkZWxldGVSZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgZGVsZXRlUmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICBkZWJ1ZygiU3VjY2Vzc2Z1bGx5
IGRlbGV0ZWQgZGF0YWJhc2UiKTsKKyAgICAgICAgICBzaG91bGRCZVRydWUoImZpbmlzaGVkQWxs
U2V0VmVyc2lvbnMiKTsKKyAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfTsKKyAg
ICAgIH0KKyAgICB9Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24tY2FsbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2Y5NjIyYWM0MjA4MzVjYjU4OGEzOWFkZDA2NmVkNzIwNmNlYjcxMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RocmVlLXNl
dHZlcnNpb24tY2FsbHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1RocmVlIHNldFZl
cnNpb24gY2FsbHMgYXJlIHF1ZXVlZCBjb3JyZWN0bHkgLSBleGVyY2lzZXMgYW4gb3RoZXJ3aXNl
LXVudGVzdGVkIGNvZGUgcGF0aAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5k
ZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5t
b3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2lu
ZGV4ZWREQi5vcGVuKCd0aHJlZS1zZXR2ZXJzaW9uLWNhbGxzJykKK2Nvbm5lY3Rpb24uc2V0VmVy
c2lvbigidmVyc2lvbiAwIikKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgidGhyZWUtc2V0dmVy
c2lvbi1jYWxscyIpCitjb25uZWN0aW9uLnNldFZlcnNpb24oInZlcnNpb24gMSIpCitjb25uZWN0
aW9uLnNldFZlcnNpb24oInZlcnNpb24gMiIpCitzZXRWZXJzaW9uIDAKK3NldFZlcnNpb24gMCBj
b21wbGV0ZQorc2V0VmVyc2lvbiAxCitzZXRWZXJzaW9uIDEgY29tcGxldGUKK3NldFZlcnNpb24g
Mgorc2V0VmVyc2lvbiAyIGNvbXBsZXRlCitmaW5pc2hlZEFsbFNldFZlcnNpb25zID0gdHJ1ZQor
U3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgZGF0YWJhc2UKK1BBU1MgZmluaXNoZWRBbGxTZXRWZXJzaW9u
cyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0
dmVyc2lvbi1jYWxscy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUt
c2V0dmVyc2lvbi1jYWxscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNDc2ODk0MTA4OGVkYmQ1M2EwMzIy
MjAwMWU2OTEyODUwOWIyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGhyZWUt
c2V0dmVyc2lvbi1jYWxscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147189</attachid>
            <date>2012-06-12 16:39:55 -0700</date>
            <delta_ts>2012-06-12 16:47:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88829-20120612163955.patch</filename>
            <type>text/plain</type>
            <size>14752</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTAyYTA2ZDRmMDA2Nzkz
YWU1YTQxYWI1YTYzODk5OTZhNjAxZGVhMC4uMmZhYzE3NTIwMjk5MzZmYjUzMDEwMDA5ZDcxMjNk
NWM5ZWE0ZDI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTEyICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCB0ZXN0cywgYW4gYXNzZXJ0LCBhbmQgc29tZSBjb21tZW50cyBhcm91bmQgb3Blbi9jbG9zZS9z
ZXRWZXJzaW9uIGNhbGwgc2VxdWVuY2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9u
LWNhbGxzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
cHJvY2Vzc1BlbmRpbmdDYWxscyk6CisKIDIwMTItMDYtMTEgIEphbWVzIFJvYmluc29uICA8amFt
ZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFBvcnQgRHJhd2luZ0J1ZmZl
ckNocm9taXVtIGZyb20gVGV4dHVyZUxheWVyQ2hyb21pdW0gb3ZlciB0byBXZWJFeHRlcm5hbFRl
eHR1cmVMYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBhZGE4NWMxODAxNDQ5OGYxNWY0
MDA0NjBjNzU2MDMxZDkzMjkzZTdjLi41Y2Q0ZDUyZWEyZjU5Y2E4MzE3ODkxNmUzMzI0MzM0MTQ0
ZGQ1ZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMjc4LDYgKzI3OCw4IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZChQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cHJvY2Vz
c1BlbmRpbmdDYWxscygpCiB7CisgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuc2l6
ZSgpIDw9IDEpOworCiAgICAgLy8gUGVuZGluZyBjYWxscyBtYXkgYmUgcmVxdWV1ZWQgb3IgYWJv
cnRlZAogICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+ID4gcGVuZGluZ1Nl
dFZlcnNpb25DYWxsczsKICAgICBtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMuc3dhcChwZW5kaW5n
U2V0VmVyc2lvbkNhbGxzKTsKQEAgLTI4OCw2ICsyOTAsMTcgQEAgdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICAgICAgQVNTRVJUKCFlYyk7CiAg
ICAgfQogCisgICAgLy8gSWYgdGhlcmUgd2VyZSBhbnkgcGVuZGluZyBzZXQgdmVyc2lvbiBjYWxs
cywgd2UgYmV0dGVyIGhhdmUgc3RhcnRlZCBvbmUuCisgICAgQVNTRVJUKG1fcGVuZGluZ1NldFZl
cnNpb25DYWxscy5pc0VtcHR5KCkgfHwgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KTsKKworICAgIC8vIG1fcGVuZGluZ1NldFZlcnNpb25DYWxscyBpcyBub24tZW1wdHkgaW4gdHdv
IGNhc2VzOgorICAgIC8vIDEpIFdoZW4gdHdvIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb25zIGFy
ZSByZXF1ZXN0ZWQgd2hpbGUgYW5vdGhlcgorICAgIC8vICAgIHZlcnNpb24gY2hhbmdlIHRyYW5z
YWN0aW9uIGlzIHJ1bm5pbmcuCisgICAgLy8gMikgV2hlbiB0aHJlZSB2ZXJzaW9uY2hhbmdlIHRy
YW5zYWN0aW9ucyBhcmUgcmVxdWVzdGVkIGluIGEgcm93LCBiZWZvcmUKKyAgICAvLyAgICBhbnkg
b2YgdGhlaXIgZXZlbnQgaGFuZGxlcnMgYXJlIHJ1bi4KKyAgICAvLyBOb3RlIHRoYXQgdGhpcyBj
aGVjayBpcyBvbmx5IGFuIG9wdGltaXphdGlvbiB0byByZWR1Y2UgcXVldWUtY2h1cm4gYW5kCisg
ICAgLy8gbm90IG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3M7IGRlbGV0ZURhdGFiYXNlIGFuZCBv
cGVuQ29ubmVjdGlvbiB3aWxsCisgICAgLy8gcmVxdWV1ZSB0aGVpciBjYWxscyBpZiB0aGlzIGNv
bmRpdGlvbiBpcyB0cnVlLgogICAgIGlmIChtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rp
b24gfHwgIW1fcGVuZGluZ1NldFZlcnNpb25DYWxscy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtMjk5LDEzICszMTIsMTkgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpw
cm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICAgICAgZGVsZXRlRGF0YWJhc2UocGVuZGluZ0RlbGV0
ZUNhbGwtPmNhbGxiYWNrcygpKTsKICAgICB9CiAKKyAgICAvLyBUaGlzIGNoZWNrIGlzIGFsc28g
bm90IHJlYWxseSBuZWVkZWQsIG9wZW5Db25uZWN0aW9uIHdvdWxkIGp1c3QgcmVxdWV1ZSBpdHMg
Y2FsbHMuCiAgICAgaWYgKG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiB8fCAhbV9w
ZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nRGVsZXRlQ2FsbHMu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB3aGlsZSAoIW1fcGVuZGluZ09wZW5D
YWxscy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVmUHRyPFBlbmRpbmdPcGVuQ2FsbD4gcGVuZGlu
Z09wZW5DYWxsID0gbV9wZW5kaW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOworICAgIC8vIEdpdmVu
IHRoZSBjaGVjayBhYm92ZSwgaXQgYXBwZWFycyB0aGF0IGNhbGxzIGNhbm5vdCBiZSByZXF1ZXVl
ZCBieQorICAgIC8vIG9wZW5Db25uZWN0aW9uLCBidXQgdXNlIGEgZGlmZmVyZW50IHF1ZXVlIGZv
ciBpdGVyYXRpb24gdG8gYmUgc2FmZS4KKyAgICBEZXF1ZTxSZWZQdHI8UGVuZGluZ09wZW5DYWxs
PiA+IHBlbmRpbmdPcGVuQ2FsbHM7CisgICAgbV9wZW5kaW5nT3BlbkNhbGxzLnN3YXAocGVuZGlu
Z09wZW5DYWxscyk7CisgICAgd2hpbGUgKCFwZW5kaW5nT3BlbkNhbGxzLmlzRW1wdHkoKSkgewor
ICAgICAgICBSZWZQdHI8UGVuZGluZ09wZW5DYWxsPiBwZW5kaW5nT3BlbkNhbGwgPSBwZW5kaW5n
T3BlbkNhbGxzLnRha2VGaXJzdCgpOwogICAgICAgICBvcGVuQ29ubmVjdGlvbihwZW5kaW5nT3Bl
bkNhbGwtPmNhbGxiYWNrcygpKTsKICAgICB9CisgICAgQVNTRVJUKG1fcGVuZGluZ09wZW5DYWxs
cy5pc0VtcHR5KCkpOwogfQogCiBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb24oRE9NU3RyaW5nTGlzdCog
b2JqZWN0U3RvcmVOYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZjVjZWE0ODQ3OWM1MDQ4Mjg5OTUwMjExM2Y3OGU4NmY1YmE1NjIwNS4uNWQ2OWZj
ZjYwODU0MjZhZGE1ZTAxNDk2ODRiM2M4MmRiNzEyZWY1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBA
CisyMDEyLTA2LTEyICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBJbmRleGVkREI6IEFkZCB0ZXN0cywgYW4gYXNzZXJ0LCBhbmQgc29tZSBjb21tZW50cyBh
cm91bmQgb3Blbi9jbG9zZS9zZXRWZXJzaW9uIGNhbGwgc2VxdWVuY2luZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2Zh
Y3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRl
cmFjdGlvbnMuanM6CisgICAgICAgIChDb25uZWN0aW9uLnRoaXMub3Blbi5yZXEub25zdWNjZXNz
LnRoYXQuaGFuZGxlLm9udmVyc2lvbmNoYW5nZSk6CisgICAgICAgIChDb25uZWN0aW9uLnRoaXMu
b3Blbi5yZXEub25zdWNjZXNzKToKKyAgICAgICAgKENvbm5lY3Rpb24udGhpcy5vcGVuKToKKyAg
ICAgICAgKHRlc3QzKToKKyAgICAgICAgKHRlc3Q0LnJ1blN0ZXBzLik6CisgICAgICAgICh0ZXN0
NCk6CisgICAgICAgICh0ZXN0NC4pOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAob3BlbkRCQ29ubmVjdGlvbik6CisgICAgICAgIChzdWNjZXNzSGFuZGxlci5yZXR1
cm4udHJhbnMub25jb21wbGV0ZSk6CisgICAgICAgIChvcGVuU3VjY2VzczEuZGVsZXRlUmVxdWVz
dC5vbnN1Y2Nlc3MpOgorICAgICAgICAob3BlblN1Y2Nlc3MxKToKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy5odG1sOiBB
ZGRlZC4KKwogMjAxMi0wNi0xMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZGVkIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2Jsb2ItdXJsLWlu
LWlmcmFtZS5odG1sIGJhY2sgdG8gdGhlIE1hYyBza2lwIGxpc3QsIGFzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVy
YWN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0
b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggYTE4MmJj
NmY3NmEzMWI5MTJkN2VkMTdmZTYyNTFiNTJhM2U0ZjVlYS4uNzI5MzhjYmJkZDAxYzlmNjFhNzgw
YmQ5NzNiM2RkZjI0YTY2YzRiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2Ut
aW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMTIsNiArMTIsNyBAQCBzZWxmLmRibmFtZSA9
ICd0ZXN0MSc7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdCiAnaC5vcGVuLm9uc3VjY2Vz
cycKICdkZWxldGVEYXRhYmFzZSgpJwogJ2gub252ZXJzaW9uY2hhbmdlJworICAgIGluIHZlcnNp
b25jaGFuZ2UsIG9sZCA9ICBuZXcgPSAKICAgICBoIGNsb3NpbmcsIGJ1dCBub3QgaW1tZWRpYXRl
bHkKICdkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCcKICdoLmNsb3NlJwpAQCAtMjQsNiArMjUs
NyBAQCBzZWxmLmRibmFtZSA9ICd0ZXN0Mic7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtd
CiAnaC5vcGVuLm9uc3VjY2VzcycKICdkZWxldGVEYXRhYmFzZSgpJwogJ2gub252ZXJzaW9uY2hh
bmdlJworICAgIGluIHZlcnNpb25jaGFuZ2UsIG9sZCA9ICBuZXcgPSAKICAgICBoIGNsb3Npbmcg
aW1tZWRpYXRlbHkKICdoLmNsb3NlJwogJ2RlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkJwpAQCAt
NDAsMTEgKzQyLDM2IEBAIHNlbGYuZGJuYW1lID0gJ3Rlc3QzJzsgc2VsZi52ZXIgPSAxOyBzZWxm
LnN0ZXBzID0gW10KICdoLnNldFZlcnNpb24ub25zdWNjZXNzJwogJ2guc2V0VmVyc2lvbi50cmFu
c2FjdGlvbi1jb21wbGV0ZScKICdoLm9udmVyc2lvbmNoYW5nZScKKyAgICBpbiB2ZXJzaW9uY2hh
bmdlLCBvbGQgPSAxIG5ldyA9IAogICAgIGggY2xvc2luZywgYnV0IG5vdCBpbW1lZGlhdGVseQog
J2RlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkJwogJ2guY2xvc2UnCiAnZGVsZXRlRGF0YWJhc2Uo
KS5vbnN1Y2Nlc3MnCiBQQVNTIHNlbGYuc3RlcHMudG9TdHJpbmcoKSBpcyAiaC5vcGVuLGgub3Bl
bi5vbnN1Y2Nlc3MsaC5zZXRWZXJzaW9uLGRlbGV0ZURhdGFiYXNlKCksaC5zZXRWZXJzaW9uLm9u
c3VjY2VzcyxoLnNldFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUsaC5vbnZlcnNpb25jaGFu
Z2UsZGVsZXRlRGF0YWJhc2UoKS5vbmJsb2NrZWQsaC5jbG9zZSxkZWxldGVEYXRhYmFzZSgpLm9u
c3VjY2VzcyIKKworVEVTVDogQ29ycmVjdCBvcmRlciB3aGVuIHRoZXJlIGFyZSBwZW5kaW5nIHNl
dFZlcnNpb24sIGRlbGV0ZSBhbmQgb3BlbiBjYWxscy4KK3NlbGYuZGJuYW1lID0gJ3Rlc3Q0Jzsg
c2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10KKydoLm9wZW4nCisnaC5vcGVuLm9uc3VjY2Vz
cycKKydoMi5vcGVuJworJ2gyLm9wZW4ub25zdWNjZXNzJworJ2guc2V0VmVyc2lvbicKKydkZWxl
dGVEYXRhYmFzZSgpJworJ2gyLm9udmVyc2lvbmNoYW5nZScKKyAgICBpbiB2ZXJzaW9uY2hhbmdl
LCBvbGQgPSAgbmV3ID0gMQorJ2guc2V0VmVyc2lvbi5vbmJsb2NrZWQnCisnaDMub3BlbicKKydo
Mi5jbG9zZScKKydoLnNldFZlcnNpb24ub25zdWNjZXNzJworJ2guc2V0VmVyc2lvbi50cmFuc2Fj
dGlvbi1jb21wbGV0ZScKKydoLm9udmVyc2lvbmNoYW5nZScKKyAgICBpbiB2ZXJzaW9uY2hhbmdl
LCBvbGQgPSAxIG5ldyA9IAorICAgIGggY2xvc2luZywgYnV0IG5vdCBpbW1lZGlhdGVseQorJ2Rl
bGV0ZURhdGFiYXNlKCkub25ibG9ja2VkJworJ2guY2xvc2UnCisnZGVsZXRlRGF0YWJhc2UoKS5v
bnN1Y2Nlc3MnCisnaDMub3Blbi5vbnN1Y2Nlc3MnCitQQVNTIHNlbGYuc3RlcHMudG9TdHJpbmco
KSBpcyAiaC5vcGVuLGgub3Blbi5vbnN1Y2Nlc3MsaDIub3BlbixoMi5vcGVuLm9uc3VjY2Vzcyxo
LnNldFZlcnNpb24sZGVsZXRlRGF0YWJhc2UoKSxoMi5vbnZlcnNpb25jaGFuZ2UsaC5zZXRWZXJz
aW9uLm9uYmxvY2tlZCxoMy5vcGVuLGgyLmNsb3NlLGguc2V0VmVyc2lvbi5vbnN1Y2Nlc3MsaC5z
ZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlLGgub252ZXJzaW9uY2hhbmdlLGRlbGV0ZURh
dGFiYXNlKCkub25ibG9ja2VkLGguY2xvc2UsZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MsaDMu
b3Blbi5vbnN1Y2Nlc3MiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVy
YWN0aW9ucy5qcwppbmRleCBlOWQ5Yjc5NDNkZWE1ZjNlNjY5YjU0ZTgyZjM1N2Q5NmIyODRmYjBj
Li5iZmU4Y2NhMDZhNTI4MGVhMWE2YmUxNjQ5ZDI5OWY5YWI4ZTdhNzYzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRh
YmFzZS1pbnRlcmFjdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmpzCkBAIC0xNyw2
ICsxNyw3IEBAIGZ1bmN0aW9uIENvbm5lY3Rpb24oaWQpIHsKICAgICAgICAgICAgIHNlbGYuc3Rl
cHMucHVzaChldmFsQW5kTG9nKCInIiArIGlkICsgIi5vcGVuLm9uc3VjY2VzcyciKSk7CiAgICAg
ICAgICAgICB0aGF0LmhhbmRsZS5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbihlKSB7CiAgICAg
ICAgICAgICAgICAgc2VsZi5zdGVwcy5wdXNoKGV2YWxBbmRMb2coIiciICsgaWQgKyAiLm9udmVy
c2lvbmNoYW5nZSciKSk7CisgICAgICAgICAgICAgICAgZGVidWcoIiAgICBpbiB2ZXJzaW9uY2hh
bmdlLCBvbGQgPSAiICsgZS50YXJnZXQudmVyc2lvbiArICIgbmV3ID0gIiArIGUudmVyc2lvbik7
CiAgICAgICAgICAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5vbnZlcnNpb24pIHsgb3B0cy5vbnZl
cnNpb24uY2FsbCh0aGF0KTsgfQogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIGlmIChvcHRz
ICYmIG9wdHMub25zdWNjZXNzKSB7IG9wdHMub25zdWNjZXNzLmNhbGwodGhhdCk7IH0KQEAgLTE3
OSw2ICsxODAsNTMgQEAgZnVuY3Rpb24gdGVzdDMoKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImguY2xvc2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWxl
dGVEYXRhYmFzZSgpLm9uc3VjY2VzcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBd
LnRvU3RyaW5nKCkpOworICAgICAgICB0ZXN0NCgpOworICAgIH0KK30KKworZnVuY3Rpb24gdGVz
dDQoKSB7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJURVNUOiBDb3JyZWN0IG9yZGVyIHdo
ZW4gdGhlcmUgYXJlIHBlbmRpbmcgc2V0VmVyc2lvbiwgZGVsZXRlIGFuZCBvcGVuIGNhbGxzLiIp
OworICAgIGV2YWxBbmRMb2coInNlbGYuZGJuYW1lID0gJ3Rlc3Q0Jzsgc2VsZi52ZXIgPSAxOyBz
ZWxmLnN0ZXBzID0gW10iKTsKKyAgICB2YXIgaCA9IG5ldyBDb25uZWN0aW9uKCJoIik7CisgICAg
dmFyIGgyID0gbmV3IENvbm5lY3Rpb24oImgyIik7CisgICAgdmFyIGgzID0gbmV3IENvbm5lY3Rp
b24oImgzIik7CisgICAgcnVuU3RlcHMoW2Z1bmN0aW9uKGRvTmV4dCkgeyBoLm9wZW4oe29uc3Vj
Y2VzczogZG9OZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
bnZlcnNpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVidWcoIiAgICBoIGNsb3NpbmcsIGJ1dCBub3QgaW1tZWRpYXRlbHkiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7IGguY2xvc2UoKTsgfSwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH19KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaDIub3Blbih7b25zdWNjZXNzOiBkb05l
eHR9KTsgfSwKKyAgICAgICAgICAgICAgZnVuY3Rpb24oZG9OZXh0KSB7IGguc2V0VmVyc2lvbih7
b25ibG9ja2VkOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaDMub3Blbih7b25zdWNjZXNzOiBmaW5pc2hUZXN0fSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgyLmNsb3NlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG9OZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgZnVuY3Rpb24oZG9OZXh0KSB7IGRlbGV0ZURhdGFiYXNl
KCIiLCBzZWxmLmRibmFtZSk7IH0sCisgICAgICAgICAgICAgIF0pOworCisgICAgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzZWxmLnN0ZXBz
LnRvU3RyaW5nKCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJoLm9wZW4iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLm9wZW4ub25zdWNjZXNzIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaDIub3BlbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImgyLm9wZW4ub25zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiaC5zZXRWZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVsZXRlRGF0YWJhc2UoKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgyLm9u
dmVyc2lvbmNoYW5nZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImguc2V0VmVy
c2lvbi5vbmJsb2NrZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMy5vcGVu
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDIuY2xvc2UiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJoLnNldFZlcnNpb24ub25zdWNjZXNzIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5vbnZlcnNpb25jaGFuZ2UiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tl
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImguY2xvc2UiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkZWxldGVEYXRhYmFzZSgpLm9uc3VjY2VzcyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImgzLm9wZW4ub25zdWNjZXNzIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXS50b1N0cmluZygpKTsKICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3RocmVlLXNldHZlcnNpb24tY2FsbHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOTllMGNkMGI1YTAzMDVjOGI5ODAxYjQ4ZWE2YzI0NDU4ZWYxZmFlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RocmVlLXNldHZl
cnNpb24tY2FsbHMuanMKQEAgLTAsMCArMSw2MCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
eworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0
aW9uKCJUaHJlZSBzZXRWZXJzaW9uIGNhbGxzIGFyZSBxdWV1ZWQgY29ycmVjdGx5IC0gZXhlcmNp
c2VzIGFuIG90aGVyd2lzZS11bnRlc3RlZCBjb2RlIHBhdGgiKTsKKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBvcGVuREJDb25uZWN0aW9uKCk7
Cit9CisKK2Z1bmN0aW9uIG9wZW5EQkNvbm5lY3Rpb24oKQoreworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbigndGhyZWUtc2V0dmVyc2lvbi1jYWxscycpIik7CisgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczE7CisgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIHN1Y2Nlc3NIYW5kbGVyKGlk
KQoreworICByZXR1cm4gZnVuY3Rpb24oZSkgeworICAgIHRyYW5zID0gZS50YXJnZXQucmVzdWx0
OworICAgIGRlYnVnKCJzZXRWZXJzaW9uICIgKyBpZCk7CisgICAgdHJhbnMub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJv
cnRDYWxsYmFjazsKKyAgICB0cmFucy5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZ0KSB7CisgICAg
ICBkZWJ1Zygic2V0VmVyc2lvbiAiICsgaWQgKyAiIGNvbXBsZXRlIik7CisgICAgICBpZiAoaWQg
PT0ga051bVZlcnNpb25DYWxscyAtIDEpIHsKKyAgICAgICAgZXZhbEFuZExvZygiZmluaXNoZWRB
bGxTZXRWZXJzaW9ucyA9IHRydWUiKTsKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpOworICAg
ICAgfQorICAgIH0KKyAgfQorfQorCitmaW5pc2hlZEFsbFNldFZlcnNpb25zID0gZmFsc2U7Citr
TnVtVmVyc2lvbkNhbGxzID0gMzsKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzMShlKQoreworICAgIGNv
bm5lY3Rpb24gPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrTnVt
VmVyc2lvbkNhbGxzOyBpKyspIHsKKyAgICAgIHZjUmVxdWVzdCA9IGV2YWxBbmRMb2coJ2Nvbm5l
Y3Rpb24uc2V0VmVyc2lvbigidmVyc2lvbiAnICsgaSArICciKScpOworICAgICAgdmNSZXF1ZXN0
Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgICB2Y1JlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgdmNSZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHN1Y2Nlc3NIYW5kbGVyKGkpOworICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICBk
ZWxldGVSZXF1ZXN0ID0gZXZhbEFuZExvZygnaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJ0aHJl
ZS1zZXR2ZXJzaW9uLWNhbGxzIiknKTsKKyAgICAgICAgZGVsZXRlUmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIGRlbGV0ZVJlcXVlc3Qub25zdWNjZXNz
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgZGVidWcoIlN1Y2Nlc3NmdWxseSBkZWxldGVkIGRh
dGFiYXNlIik7CisgICAgICAgICAgc2hvdWxkQmVUcnVlKCJmaW5pc2hlZEFsbFNldFZlcnNpb25z
Iik7CisgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH07CisgICAgICB9CisgICAg
fQorfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24tY2FsbHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNmOTYyMmFjNDIwODM1Y2I1ODhhMzlhZGQwNjZlZDcyMDZjZWI3MTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9uLWNh
bGxzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitUaHJlZSBzZXRWZXJzaW9uIGNhbGxz
IGFyZSBxdWV1ZWQgY29ycmVjdGx5IC0gZXhlcmNpc2VzIGFuIG90aGVyd2lzZS11bnRlc3RlZCBj
b2RlIHBhdGgKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitpbmRleGVkREIub3Bl
bigndGhyZWUtc2V0dmVyc2lvbi1jYWxscycpCitjb25uZWN0aW9uLnNldFZlcnNpb24oInZlcnNp
b24gMCIpCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoInRocmVlLXNldHZlcnNpb24tY2FsbHMi
KQorY29ubmVjdGlvbi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIDEiKQorY29ubmVjdGlvbi5zZXRWZXJz
aW9uKCJ2ZXJzaW9uIDIiKQorc2V0VmVyc2lvbiAwCitzZXRWZXJzaW9uIDAgY29tcGxldGUKK3Nl
dFZlcnNpb24gMQorc2V0VmVyc2lvbiAxIGNvbXBsZXRlCitzZXRWZXJzaW9uIDIKK3NldFZlcnNp
b24gMiBjb21wbGV0ZQorZmluaXNoZWRBbGxTZXRWZXJzaW9ucyA9IHRydWUKK1N1Y2Nlc3NmdWxs
eSBkZWxldGVkIGRhdGFiYXNlCitQQVNTIGZpbmlzaGVkQWxsU2V0VmVyc2lvbnMgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24tY2Fs
bHMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24t
Y2FsbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjQ3Njg5NDEwODhlZGJkNTNhMDMyMjIwMDFlNjkxMjg1
MDliMmE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dGhyZWUtc2V0dmVyc2lvbi1jYWxscy5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RocmVlLXNldHZlcnNpb24t
Y2FsbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147192</attachid>
            <date>2012-06-12 16:47:34 -0700</date>
            <delta_ts>2012-06-12 17:28:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88829-20120612164734.patch</filename>
            <type>text/plain</type>
            <size>14708</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZmMTUxNjkwY2U2OGQ3
ZWU3Yjc2N2EwNTdlZGVhM2EzMGI2MzRlNC4uM2Y1ZmQ1MjM3ZDdkMmE5N2I1ZmM3ZWNjMGMxOWJk
OTA2ZGRlNmZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTEyICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCB0ZXN0cywgYW4gYXNzZXJ0LCBhbmQgc29tZSBjb21tZW50cyBhcm91bmQgb3Blbi9jbG9zZS9z
ZXRWZXJzaW9uIGNhbGwgc2VxdWVuY2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9u
LWNhbGxzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
cHJvY2Vzc1BlbmRpbmdDYWxscyk6CisKIDIwMTItMDYtMTIgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgRml4IHBhY2tpbmcgaW4gU3R5bGVC
b3hEYXRhIGZvciBXaW5kb3dzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBhMDg2YTE3MjFh
MTljMzhiZmQ1NDA5MjkyMjgxMzM3ZjI3OTc4MDNiLi4xMmYyOTAyNWFiM2E4OTU2MmM1ZTExOTRm
Mzk4MDA3ZGNkNjc2MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMjgwLDYgKzI4MCw4
IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZChQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6cHJvY2Vzc1BlbmRpbmdDYWxscygpCiB7CisgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFj
a3NTZXQuc2l6ZSgpIDw9IDEpOworCiAgICAgLy8gUGVuZGluZyBjYWxscyBtYXkgYmUgcmVxdWV1
ZWQgb3IgYWJvcnRlZAogICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+ID4g
cGVuZGluZ1NldFZlcnNpb25DYWxsczsKICAgICBtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMuc3dh
cChwZW5kaW5nU2V0VmVyc2lvbkNhbGxzKTsKQEAgLTI5MCw2ICsyOTIsMTcgQEAgdm9pZCBJREJE
YXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICAgICAgQVNTRVJU
KCFlYyk7CiAgICAgfQogCisgICAgLy8gSWYgdGhlcmUgd2VyZSBhbnkgcGVuZGluZyBzZXQgdmVy
c2lvbiBjYWxscywgd2UgYmV0dGVyIGhhdmUgc3RhcnRlZCBvbmUuCisgICAgQVNTRVJUKG1fcGVu
ZGluZ1NldFZlcnNpb25DYWxscy5pc0VtcHR5KCkgfHwgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRy
YW5zYWN0aW9uKTsKKworICAgIC8vIG1fcGVuZGluZ1NldFZlcnNpb25DYWxscyBpcyBub24tZW1w
dHkgaW4gdHdvIGNhc2VzOgorICAgIC8vIDEpIFdoZW4gdHdvIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb25zIGFyZSByZXF1ZXN0ZWQgd2hpbGUgYW5vdGhlcgorICAgIC8vICAgIHZlcnNpb24gY2hh
bmdlIHRyYW5zYWN0aW9uIGlzIHJ1bm5pbmcuCisgICAgLy8gMikgV2hlbiB0aHJlZSB2ZXJzaW9u
Y2hhbmdlIHRyYW5zYWN0aW9ucyBhcmUgcmVxdWVzdGVkIGluIGEgcm93LCBiZWZvcmUKKyAgICAv
LyAgICBhbnkgb2YgdGhlaXIgZXZlbnQgaGFuZGxlcnMgYXJlIHJ1bi4KKyAgICAvLyBOb3RlIHRo
YXQgdGhpcyBjaGVjayBpcyBvbmx5IGFuIG9wdGltaXphdGlvbiB0byByZWR1Y2UgcXVldWUtY2h1
cm4gYW5kCisgICAgLy8gbm90IG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3M7IGRlbGV0ZURhdGFi
YXNlIGFuZCBvcGVuQ29ubmVjdGlvbiB3aWxsCisgICAgLy8gcmVxdWV1ZSB0aGVpciBjYWxscyBp
ZiB0aGlzIGNvbmRpdGlvbiBpcyB0cnVlLgogICAgIGlmIChtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24gfHwgIW1fcGVuZGluZ1NldFZlcnNpb25DYWxscy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMzAxLDEzICszMTQsMTkgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICAgICAgZGVsZXRlRGF0YWJhc2UocGVu
ZGluZ0RlbGV0ZUNhbGwtPmNhbGxiYWNrcygpKTsKICAgICB9CiAKKyAgICAvLyBUaGlzIGNoZWNr
IGlzIGFsc28gbm90IHJlYWxseSBuZWVkZWQsIG9wZW5Db25uZWN0aW9uIHdvdWxkIGp1c3QgcmVx
dWV1ZSBpdHMgY2FsbHMuCiAgICAgaWYgKG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
biB8fCAhbV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nRGVs
ZXRlQ2FsbHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB3aGlsZSAoIW1fcGVu
ZGluZ09wZW5DYWxscy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVmUHRyPFBlbmRpbmdPcGVuQ2Fs
bD4gcGVuZGluZ09wZW5DYWxsID0gbV9wZW5kaW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOworICAg
IC8vIEdpdmVuIHRoZSBjaGVjayBhYm92ZSwgaXQgYXBwZWFycyB0aGF0IGNhbGxzIGNhbm5vdCBi
ZSByZXF1ZXVlZCBieQorICAgIC8vIG9wZW5Db25uZWN0aW9uLCBidXQgdXNlIGEgZGlmZmVyZW50
IHF1ZXVlIGZvciBpdGVyYXRpb24gdG8gYmUgc2FmZS4KKyAgICBEZXF1ZTxSZWZQdHI8UGVuZGlu
Z09wZW5DYWxsPiA+IHBlbmRpbmdPcGVuQ2FsbHM7CisgICAgbV9wZW5kaW5nT3BlbkNhbGxzLnN3
YXAocGVuZGluZ09wZW5DYWxscyk7CisgICAgd2hpbGUgKCFwZW5kaW5nT3BlbkNhbGxzLmlzRW1w
dHkoKSkgeworICAgICAgICBSZWZQdHI8UGVuZGluZ09wZW5DYWxsPiBwZW5kaW5nT3BlbkNhbGwg
PSBwZW5kaW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOwogICAgICAgICBvcGVuQ29ubmVjdGlvbihw
ZW5kaW5nT3BlbkNhbGwtPmNhbGxiYWNrcygpKTsKICAgICB9CisgICAgQVNTRVJUKG1fcGVuZGlu
Z09wZW5DYWxscy5pc0VtcHR5KCkpOwogfQogCiBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb24oRE9NU3Ry
aW5nTGlzdCogb2JqZWN0U3RvcmVOYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggM2U0ZmJjNGM1ODkzYmZhOTQ0OTljMjU4YWEyZTU0OTMwZTRiZjJj
ZS4uOWYyM2Y1ZTQ1MTQ1ZWExZjliNTMzZWY4M2UyYjJjYmZmM2UyM2QwNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI4IEBACisyMDEyLTA2LTEyICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBJbmRleGVkREI6IEFkZCB0ZXN0cywgYW4gYXNzZXJ0LCBhbmQgc29tZSBj
b21tZW50cyBhcm91bmQgb3Blbi9jbG9zZS9zZXRWZXJzaW9uIGNhbGwgc2VxdWVuY2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRh
YmFzZS1pbnRlcmFjdGlvbnMuanM6CisgICAgICAgIChDb25uZWN0aW9uLnRoaXMub3Blbi5yZXEu
b25zdWNjZXNzLnRoYXQuaGFuZGxlLm9udmVyc2lvbmNoYW5nZSk6CisgICAgICAgIChDb25uZWN0
aW9uLnRoaXMub3Blbi5yZXEub25zdWNjZXNzKToKKyAgICAgICAgKENvbm5lY3Rpb24udGhpcy5v
cGVuKToKKyAgICAgICAgKHRlc3QzKToKKyAgICAgICAgKHRlc3Q0LnJ1blN0ZXBzLik6CisgICAg
ICAgICh0ZXN0NCk6CisgICAgICAgICh0ZXN0NC4pOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAob3BlbkRCQ29ubmVjdGlvbik6CisgICAgICAgIChzdWNjZXNzSGFu
ZGxlci5yZXR1cm4udHJhbnMub25jb21wbGV0ZSk6CisgICAgICAgIChvcGVuU3VjY2VzczEuZGVs
ZXRlUmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAob3BlblN1Y2Nlc3MxKToKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxs
cy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIERGRyBzaG91bGQgbm90IEFTU0VSVCBpZiB5b3UgaGF2ZSBhIGRvdWJs
ZSB1c2Ugb2YgYSB2YXJpYWJsZSB0aGF0IGlzIG5vdCByZXZlYWxlZCB0byBiZSBhIGRvdWJsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVk
YXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0
CmluZGV4IGExODJiYzZmNzZhMzFiOTEyZDdlZDE3ZmU2MjUxYjUyYTNlNGY1ZWEuLjcyOTM4Y2Ji
ZGQwMWM5ZjYxYTc4MGJkOTczYjNkZGYyNGE2NmM0YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRl
bGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEyLDYgKzEyLDcgQEAg
c2VsZi5kYm5hbWUgPSAndGVzdDEnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQogJ2gu
b3Blbi5vbnN1Y2Nlc3MnCiAnZGVsZXRlRGF0YWJhc2UoKScKICdoLm9udmVyc2lvbmNoYW5nZScK
KyAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQgPSAgbmV3ID0gCiAgICAgaCBjbG9zaW5nLCBidXQg
bm90IGltbWVkaWF0ZWx5CiAnZGVsZXRlRGF0YWJhc2UoKS5vbmJsb2NrZWQnCiAnaC5jbG9zZScK
QEAgLTI0LDYgKzI1LDcgQEAgc2VsZi5kYm5hbWUgPSAndGVzdDInOyBzZWxmLnZlciA9IDE7IHNl
bGYuc3RlcHMgPSBbXQogJ2gub3Blbi5vbnN1Y2Nlc3MnCiAnZGVsZXRlRGF0YWJhc2UoKScKICdo
Lm9udmVyc2lvbmNoYW5nZScKKyAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQgPSAgbmV3ID0gCiAg
ICAgaCBjbG9zaW5nIGltbWVkaWF0ZWx5CiAnaC5jbG9zZScKICdkZWxldGVEYXRhYmFzZSgpLm9u
YmxvY2tlZCcKQEAgLTQwLDExICs0MiwzNiBAQCBzZWxmLmRibmFtZSA9ICd0ZXN0Myc7IHNlbGYu
dmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdCiAnaC5zZXRWZXJzaW9uLm9uc3VjY2VzcycKICdoLnNl
dFZlcnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUnCiAnaC5vbnZlcnNpb25jaGFuZ2UnCisgICAg
aW4gdmVyc2lvbmNoYW5nZSwgb2xkID0gMSBuZXcgPSAKICAgICBoIGNsb3NpbmcsIGJ1dCBub3Qg
aW1tZWRpYXRlbHkKICdkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCcKICdoLmNsb3NlJwogJ2Rl
bGV0ZURhdGFiYXNlKCkub25zdWNjZXNzJwogUEFTUyBzZWxmLnN0ZXBzLnRvU3RyaW5nKCkgaXMg
Imgub3BlbixoLm9wZW4ub25zdWNjZXNzLGguc2V0VmVyc2lvbixkZWxldGVEYXRhYmFzZSgpLGgu
c2V0VmVyc2lvbi5vbnN1Y2Nlc3MsaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlLGgu
b252ZXJzaW9uY2hhbmdlLGRlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkLGguY2xvc2UsZGVsZXRl
RGF0YWJhc2UoKS5vbnN1Y2Nlc3MiCisKK1RFU1Q6IENvcnJlY3Qgb3JkZXIgd2hlbiB0aGVyZSBh
cmUgcGVuZGluZyBzZXRWZXJzaW9uLCBkZWxldGUgYW5kIG9wZW4gY2FsbHMuCitzZWxmLmRibmFt
ZSA9ICd0ZXN0NCc7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdCisnaC5vcGVuJworJ2gu
b3Blbi5vbnN1Y2Nlc3MnCisnaDIub3BlbicKKydoMi5vcGVuLm9uc3VjY2VzcycKKydoLnNldFZl
cnNpb24nCisnZGVsZXRlRGF0YWJhc2UoKScKKydoMi5vbnZlcnNpb25jaGFuZ2UnCisgICAgaW4g
dmVyc2lvbmNoYW5nZSwgb2xkID0gIG5ldyA9IDEKKydoLnNldFZlcnNpb24ub25ibG9ja2VkJwor
J2gzLm9wZW4nCisnaDIuY2xvc2UnCisnaC5zZXRWZXJzaW9uLm9uc3VjY2VzcycKKydoLnNldFZl
cnNpb24udHJhbnNhY3Rpb24tY29tcGxldGUnCisnaC5vbnZlcnNpb25jaGFuZ2UnCisgICAgaW4g
dmVyc2lvbmNoYW5nZSwgb2xkID0gMSBuZXcgPSAKKyAgICBoIGNsb3NpbmcsIGJ1dCBub3QgaW1t
ZWRpYXRlbHkKKydkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCcKKydoLmNsb3NlJworJ2RlbGV0
ZURhdGFiYXNlKCkub25zdWNjZXNzJworJ2gzLm9wZW4ub25zdWNjZXNzJworUEFTUyBzZWxmLnN0
ZXBzLnRvU3RyaW5nKCkgaXMgImgub3BlbixoLm9wZW4ub25zdWNjZXNzLGgyLm9wZW4saDIub3Bl
bi5vbnN1Y2Nlc3MsaC5zZXRWZXJzaW9uLGRlbGV0ZURhdGFiYXNlKCksaDIub252ZXJzaW9uY2hh
bmdlLGguc2V0VmVyc2lvbi5vbmJsb2NrZWQsaDMub3BlbixoMi5jbG9zZSxoLnNldFZlcnNpb24u
b25zdWNjZXNzLGguc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZSxoLm9udmVyc2lvbmNo
YW5nZSxkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCxoLmNsb3NlLGRlbGV0ZURhdGFiYXNlKCku
b25zdWNjZXNzLGgzLm9wZW4ub25zdWNjZXNzIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuanMg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVk
YXRhYmFzZS1pbnRlcmFjdGlvbnMuanMKaW5kZXggZTlkOWI3OTQzZGVhNWYzZTY2OWI1NGU4MmYz
NTdkOTZiMjg0ZmIwYy4uYmZlOGNjYTA2YTUyODBlYTFhNmJlMTY0OWQyOTlmOWFiOGU3YTc2MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ZhY3Rv
cnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9u
cy5qcwpAQCAtMTcsNiArMTcsNyBAQCBmdW5jdGlvbiBDb25uZWN0aW9uKGlkKSB7CiAgICAgICAg
ICAgICBzZWxmLnN0ZXBzLnB1c2goZXZhbEFuZExvZygiJyIgKyBpZCArICIub3Blbi5vbnN1Y2Nl
c3MnIikpOwogICAgICAgICAgICAgdGhhdC5oYW5kbGUub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rp
b24oZSkgewogICAgICAgICAgICAgICAgIHNlbGYuc3RlcHMucHVzaChldmFsQW5kTG9nKCInIiAr
IGlkICsgIi5vbnZlcnNpb25jaGFuZ2UnIikpOworICAgICAgICAgICAgICAgIGRlYnVnKCIgICAg
aW4gdmVyc2lvbmNoYW5nZSwgb2xkID0gIiArIGUudGFyZ2V0LnZlcnNpb24gKyAiIG5ldyA9ICIg
KyBlLnZlcnNpb24pOwogICAgICAgICAgICAgICAgIGlmIChvcHRzICYmIG9wdHMub252ZXJzaW9u
KSB7IG9wdHMub252ZXJzaW9uLmNhbGwodGhhdCk7IH0KICAgICAgICAgICAgIH07CiAgICAgICAg
ICAgICBpZiAob3B0cyAmJiBvcHRzLm9uc3VjY2VzcykgeyBvcHRzLm9uc3VjY2Vzcy5jYWxsKHRo
YXQpOyB9CkBAIC0xNzksNiArMTgwLDUzIEBAIGZ1bmN0aW9uIHRlc3QzKCkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJoLmNsb3NlIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MiCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXS50b1N0cmluZygpKTsKKyAgICAgICAgdGVzdDQoKTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIHRlc3Q0KCkgeworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVEVTVDogQ29y
cmVjdCBvcmRlciB3aGVuIHRoZXJlIGFyZSBwZW5kaW5nIHNldFZlcnNpb24sIGRlbGV0ZSBhbmQg
b3BlbiBjYWxscy4iKTsKKyAgICBldmFsQW5kTG9nKCJzZWxmLmRibmFtZSA9ICd0ZXN0NCc7IHNl
bGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdIik7CisgICAgdmFyIGggPSBuZXcgQ29ubmVjdGlv
bigiaCIpOworICAgIHZhciBoMiA9IG5ldyBDb25uZWN0aW9uKCJoMiIpOworICAgIHZhciBoMyA9
IG5ldyBDb25uZWN0aW9uKCJoMyIpOworICAgIHJ1blN0ZXBzKFtmdW5jdGlvbihkb05leHQpIHsg
aC5vcGVuKHtvbnN1Y2Nlc3M6IGRvTmV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb252ZXJzaW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIgICAgaCBjbG9zaW5nLCBidXQgbm90IGlt
bWVkaWF0ZWx5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBoLmNsb3NlKCk7IH0sIDApOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgZnVuY3Rpb24oZG9OZXh0KSB7IGgyLm9wZW4oe29u
c3VjY2VzczogZG9OZXh0fSk7IH0sCisgICAgICAgICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBo
LnNldFZlcnNpb24oe29uYmxvY2tlZDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgzLm9wZW4oe29uc3VjY2VzczogZmluaXNoVGVz
dH0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoMi5j
bG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvTmV4dCgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBk
ZWxldGVEYXRhYmFzZSgiIiwgc2VsZi5kYm5hbWUpOyB9LAorICAgICAgICAgICAgICBdKTsKKwor
ICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygic2VsZi5zdGVwcy50b1N0cmluZygpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsiaC5vcGVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5vcGVuLm9uc3Vj
Y2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgyLm9wZW4iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vcGVuLm9uc3VjY2VzcyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImguc2V0VmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNlKCkiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJoMi5vbnZlcnNpb25jaGFuZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJoLnNldFZlcnNpb24ub25ibG9ja2VkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaDMub3BlbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgyLmNsb3Nl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5zZXRWZXJzaW9uLm9uc3VjY2Vz
cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImguc2V0VmVyc2lvbi50cmFuc2Fj
dGlvbi1jb21wbGV0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgub252ZXJz
aW9uY2hhbmdlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVsZXRlRGF0YWJh
c2UoKS5vbmJsb2NrZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLmNsb3Nl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVsZXRlRGF0YWJhc2UoKS5vbnN1
Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMy5vcGVuLm9uc3VjY2Vz
cyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmcoKSk7CiAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RocmVlLXNldHZlcnNpb24tY2FsbHMu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTk5ZTBjZDBiNWEwMzA1YzhiOTgwMWI0OGVhNmMyNDQ1OGVmMWZhZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmpzCkBAIC0wLDAgKzEsNjAgQEAKK2lmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOwor
fQorCitkZXNjcmlwdGlvbigiVGhyZWUgc2V0VmVyc2lvbiBjYWxscyBhcmUgcXVldWVkIGNvcnJl
Y3RseSAtIGV4ZXJjaXNlcyBhbiBvdGhlcndpc2UtdW50ZXN0ZWQgY29kZSBwYXRoIik7CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgb3BlbkRC
Q29ubmVjdGlvbigpOworfQorCitmdW5jdGlvbiBvcGVuREJDb25uZWN0aW9uKCkKK3sKKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3RocmVlLXNldHZlcnNpb24tY2Fs
bHMnKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3MxOworICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitmdW5jdGlvbiBzdWNj
ZXNzSGFuZGxlcihpZCkKK3sKKyAgcmV0dXJuIGZ1bmN0aW9uKGUpIHsKKyAgICB0cmFucyA9IGUu
dGFyZ2V0LnJlc3VsdDsKKyAgICBkZWJ1Zygic2V0VmVyc2lvbiAiICsgaWQpOworICAgIHRyYW5z
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB0cmFucy5vbmFib3J0ID0g
dW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgdHJhbnMub25jb21wbGV0ZSA9IGZ1bmN0aW9u
KGV2dCkgeworICAgICAgZGVidWcoInNldFZlcnNpb24gIiArIGlkICsgIiBjb21wbGV0ZSIpOwor
ICAgICAgaWYgKGlkID09IGtOdW1WZXJzaW9uQ2FsbHMgLSAxKSB7CisgICAgICAgIGV2YWxBbmRM
b2coImZpbmlzaGVkQWxsU2V0VmVyc2lvbnMgPSB0cnVlIik7CisgICAgICAgIGNvbm5lY3Rpb24u
Y2xvc2UoKTsKKyAgICAgIH0KKyAgICB9CisgIH0KK30KKworZmluaXNoZWRBbGxTZXRWZXJzaW9u
cyA9IGZhbHNlOwora051bVZlcnNpb25DYWxscyA9IDM7CitmdW5jdGlvbiBvcGVuU3VjY2VzczEo
ZSkKK3sKKyAgICBjb25uZWN0aW9uID0gZS50YXJnZXQucmVzdWx0OworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwga051bVZlcnNpb25DYWxsczsgaSsrKSB7CisgICAgICB2Y1JlcXVlc3QgPSBldmFs
QW5kTG9nKCdjb25uZWN0aW9uLnNldFZlcnNpb24oInZlcnNpb24gJyArIGkgKyAnIiknKTsKKyAg
ICAgIHZjUmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAg
ICAgdmNSZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgIHZj
UmVxdWVzdC5vbnN1Y2Nlc3MgPSBzdWNjZXNzSGFuZGxlcihpKTsKKyAgICAgIGlmIChpID09IDAp
IHsKKyAgICAgICAgZGVsZXRlUmVxdWVzdCA9IGV2YWxBbmRMb2coJ2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZSgidGhyZWUtc2V0dmVyc2lvbi1jYWxscyIpJyk7CisgICAgICAgIGRlbGV0ZVJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICBkZWxldGVSZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGRlYnVnKCJTdWNjZXNzZnVs
bHkgZGVsZXRlZCBkYXRhYmFzZSIpOworICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiZmluaXNoZWRB
bGxTZXRWZXJzaW9ucyIpOworICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9Owor
ICAgICAgfQorICAgIH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jZjk2MjJhYzQyMDgzNWNiNTg4YTM5YWRkMDY2ZWQ3MjA2Y2ViNzEw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUt
c2V0dmVyc2lvbi1jYWxscy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGhyZWUgc2V0
VmVyc2lvbiBjYWxscyBhcmUgcXVldWVkIGNvcnJlY3RseSAtIGV4ZXJjaXNlcyBhbiBvdGhlcndp
c2UtdW50ZXN0ZWQgY29kZSBwYXRoCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKwor
aW5kZXhlZERCLm9wZW4oJ3RocmVlLXNldHZlcnNpb24tY2FsbHMnKQorY29ubmVjdGlvbi5zZXRW
ZXJzaW9uKCJ2ZXJzaW9uIDAiKQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJ0aHJlZS1zZXR2
ZXJzaW9uLWNhbGxzIikKK2Nvbm5lY3Rpb24uc2V0VmVyc2lvbigidmVyc2lvbiAxIikKK2Nvbm5l
Y3Rpb24uc2V0VmVyc2lvbigidmVyc2lvbiAyIikKK3NldFZlcnNpb24gMAorc2V0VmVyc2lvbiAw
IGNvbXBsZXRlCitzZXRWZXJzaW9uIDEKK3NldFZlcnNpb24gMSBjb21wbGV0ZQorc2V0VmVyc2lv
biAyCitzZXRWZXJzaW9uIDIgY29tcGxldGUKK2ZpbmlzaGVkQWxsU2V0VmVyc2lvbnMgPSB0cnVl
CitTdWNjZXNzZnVsbHkgZGVsZXRlZCBkYXRhYmFzZQorUEFTUyBmaW5pc2hlZEFsbFNldFZlcnNp
b25zIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1z
ZXR2ZXJzaW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90aHJl
ZS1zZXR2ZXJzaW9uLWNhbGxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY0NzY4OTQxMDg4ZWRiZDUzYTAz
MjIyMDAxZTY5MTI4NTA5YjJhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24tY2FsbHMuaHRtbApAQCAtMCwwICsxLDEwIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90aHJl
ZS1zZXR2ZXJzaW9uLWNhbGxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147200</attachid>
            <date>2012-06-12 17:28:12 -0700</date>
            <delta_ts>2012-06-13 09:57:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88829-20120612172812.patch</filename>
            <type>text/plain</type>
            <size>14808</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZmMTUxNjkwY2U2OGQ3
ZWU3Yjc2N2EwNTdlZGVhM2EzMGI2MzRlNC4uM2Y1ZmQ1MjM3ZDdkMmE5N2I1ZmM3ZWNjMGMxOWJk
OTA2ZGRlNmZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTEyICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCB0ZXN0cywgYW4gYXNzZXJ0LCBhbmQgc29tZSBjb21tZW50cyBhcm91bmQgb3Blbi9jbG9zZS9z
ZXRWZXJzaW9uIGNhbGwgc2VxdWVuY2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9u
LWNhbGxzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
cHJvY2Vzc1BlbmRpbmdDYWxscyk6CisKIDIwMTItMDYtMTIgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgRml4IHBhY2tpbmcgaW4gU3R5bGVC
b3hEYXRhIGZvciBXaW5kb3dzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBhMDg2YTE3MjFh
MTljMzhiZmQ1NDA5MjkyMjgxMzM3ZjI3OTc4MDNiLi4xMmYyOTAyNWFiM2E4OTU2MmM1ZTExOTRm
Mzk4MDA3ZGNkNjc2MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMjgwLDYgKzI4MCw4
IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZChQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuCiAKIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6cHJvY2Vzc1BlbmRpbmdDYWxscygpCiB7CisgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFj
a3NTZXQuc2l6ZSgpIDw9IDEpOworCiAgICAgLy8gUGVuZGluZyBjYWxscyBtYXkgYmUgcmVxdWV1
ZWQgb3IgYWJvcnRlZAogICAgIERlcXVlPFJlZlB0cjxQZW5kaW5nU2V0VmVyc2lvbkNhbGw+ID4g
cGVuZGluZ1NldFZlcnNpb25DYWxsczsKICAgICBtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMuc3dh
cChwZW5kaW5nU2V0VmVyc2lvbkNhbGxzKTsKQEAgLTI5MCw2ICsyOTIsMTcgQEAgdm9pZCBJREJE
YXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICAgICAgQVNTRVJU
KCFlYyk7CiAgICAgfQogCisgICAgLy8gSWYgdGhlcmUgd2VyZSBhbnkgcGVuZGluZyBzZXQgdmVy
c2lvbiBjYWxscywgd2UgYmV0dGVyIGhhdmUgc3RhcnRlZCBvbmUuCisgICAgQVNTRVJUKG1fcGVu
ZGluZ1NldFZlcnNpb25DYWxscy5pc0VtcHR5KCkgfHwgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRy
YW5zYWN0aW9uKTsKKworICAgIC8vIG1fcGVuZGluZ1NldFZlcnNpb25DYWxscyBpcyBub24tZW1w
dHkgaW4gdHdvIGNhc2VzOgorICAgIC8vIDEpIFdoZW4gdHdvIHZlcnNpb25jaGFuZ2UgdHJhbnNh
Y3Rpb25zIGFyZSByZXF1ZXN0ZWQgd2hpbGUgYW5vdGhlcgorICAgIC8vICAgIHZlcnNpb24gY2hh
bmdlIHRyYW5zYWN0aW9uIGlzIHJ1bm5pbmcuCisgICAgLy8gMikgV2hlbiB0aHJlZSB2ZXJzaW9u
Y2hhbmdlIHRyYW5zYWN0aW9ucyBhcmUgcmVxdWVzdGVkIGluIGEgcm93LCBiZWZvcmUKKyAgICAv
LyAgICBhbnkgb2YgdGhlaXIgZXZlbnQgaGFuZGxlcnMgYXJlIHJ1bi4KKyAgICAvLyBOb3RlIHRo
YXQgdGhpcyBjaGVjayBpcyBvbmx5IGFuIG9wdGltaXphdGlvbiB0byByZWR1Y2UgcXVldWUtY2h1
cm4gYW5kCisgICAgLy8gbm90IG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3M7IGRlbGV0ZURhdGFi
YXNlIGFuZCBvcGVuQ29ubmVjdGlvbiB3aWxsCisgICAgLy8gcmVxdWV1ZSB0aGVpciBjYWxscyBp
ZiB0aGlzIGNvbmRpdGlvbiBpcyB0cnVlLgogICAgIGlmIChtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24gfHwgIW1fcGVuZGluZ1NldFZlcnNpb25DYWxscy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMzAxLDEzICszMTQsMTkgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICAgICAgZGVsZXRlRGF0YWJhc2UocGVu
ZGluZ0RlbGV0ZUNhbGwtPmNhbGxiYWNrcygpKTsKICAgICB9CiAKKyAgICAvLyBUaGlzIGNoZWNr
IGlzIGFsc28gbm90IHJlYWxseSBuZWVkZWQsIG9wZW5Db25uZWN0aW9uIHdvdWxkIGp1c3QgcmVx
dWV1ZSBpdHMgY2FsbHMuCiAgICAgaWYgKG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
biB8fCAhbV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nRGVs
ZXRlQ2FsbHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB3aGlsZSAoIW1fcGVu
ZGluZ09wZW5DYWxscy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVmUHRyPFBlbmRpbmdPcGVuQ2Fs
bD4gcGVuZGluZ09wZW5DYWxsID0gbV9wZW5kaW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOworICAg
IC8vIEdpdmVuIHRoZSBjaGVjayBhYm92ZSwgaXQgYXBwZWFycyB0aGF0IGNhbGxzIGNhbm5vdCBi
ZSByZXF1ZXVlZCBieQorICAgIC8vIG9wZW5Db25uZWN0aW9uLCBidXQgdXNlIGEgZGlmZmVyZW50
IHF1ZXVlIGZvciBpdGVyYXRpb24gdG8gYmUgc2FmZS4KKyAgICBEZXF1ZTxSZWZQdHI8UGVuZGlu
Z09wZW5DYWxsPiA+IHBlbmRpbmdPcGVuQ2FsbHM7CisgICAgbV9wZW5kaW5nT3BlbkNhbGxzLnN3
YXAocGVuZGluZ09wZW5DYWxscyk7CisgICAgd2hpbGUgKCFwZW5kaW5nT3BlbkNhbGxzLmlzRW1w
dHkoKSkgeworICAgICAgICBSZWZQdHI8UGVuZGluZ09wZW5DYWxsPiBwZW5kaW5nT3BlbkNhbGwg
PSBwZW5kaW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOwogICAgICAgICBvcGVuQ29ubmVjdGlvbihw
ZW5kaW5nT3BlbkNhbGwtPmNhbGxiYWNrcygpKTsKICAgICB9CisgICAgQVNTRVJUKG1fcGVuZGlu
Z09wZW5DYWxscy5pc0VtcHR5KCkpOwogfQogCiBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb24oRE9NU3Ry
aW5nTGlzdCogb2JqZWN0U3RvcmVOYW1lcywgdW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggM2U0ZmJjNGM1ODkzYmZhOTQ0OTljMjU4YWEyZTU0OTMwZTRiZjJj
ZS4uOWYyM2Y1ZTQ1MTQ1ZWExZjliNTMzZWY4M2UyYjJjYmZmM2UyM2QwNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI4IEBACisyMDEyLTA2LTEyICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBJbmRleGVkREI6IEFkZCB0ZXN0cywgYW4gYXNzZXJ0LCBhbmQgc29tZSBj
b21tZW50cyBhcm91bmQgb3Blbi9jbG9zZS9zZXRWZXJzaW9uIGNhbGwgc2VxdWVuY2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRh
YmFzZS1pbnRlcmFjdGlvbnMuanM6CisgICAgICAgIChDb25uZWN0aW9uLnRoaXMub3Blbi5yZXEu
b25zdWNjZXNzLnRoYXQuaGFuZGxlLm9udmVyc2lvbmNoYW5nZSk6CisgICAgICAgIChDb25uZWN0
aW9uLnRoaXMub3Blbi5yZXEub25zdWNjZXNzKToKKyAgICAgICAgKENvbm5lY3Rpb24udGhpcy5v
cGVuKToKKyAgICAgICAgKHRlc3QzKToKKyAgICAgICAgKHRlc3Q0LnJ1blN0ZXBzLik6CisgICAg
ICAgICh0ZXN0NCk6CisgICAgICAgICh0ZXN0NC4pOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAob3BlbkRCQ29ubmVjdGlvbik6CisgICAgICAgIChzdWNjZXNzSGFu
ZGxlci5yZXR1cm4udHJhbnMub25jb21wbGV0ZSk6CisgICAgICAgIChvcGVuU3VjY2VzczEuZGVs
ZXRlUmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAob3BlblN1Y2Nlc3MxKToKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxs
cy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIERGRyBzaG91bGQgbm90IEFTU0VSVCBpZiB5b3UgaGF2ZSBhIGRvdWJs
ZSB1c2Ugb2YgYSB2YXJpYWJsZSB0aGF0IGlzIG5vdCByZXZlYWxlZCB0byBiZSBhIGRvdWJsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVk
YXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0
CmluZGV4IGExODJiYzZmNzZhMzFiOTEyZDdlZDE3ZmU2MjUxYjUyYTNlNGY1ZWEuLmNiYTk5NThm
YTg4MGY0ZmRlODE2ZmFmZTkwNGU5N2NkM2ZiNWUyZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9mYWN0b3J5LWRl
bGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEyLDYgKzEyLDcgQEAg
c2VsZi5kYm5hbWUgPSAndGVzdDEnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXQogJ2gu
b3Blbi5vbnN1Y2Nlc3MnCiAnZGVsZXRlRGF0YWJhc2UoKScKICdoLm9udmVyc2lvbmNoYW5nZScK
KyAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQgPSAiIiBuZXcgPSAiIgogICAgIGggY2xvc2luZywg
YnV0IG5vdCBpbW1lZGlhdGVseQogJ2RlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkJwogJ2guY2xv
c2UnCkBAIC0yNCw2ICsyNSw3IEBAIHNlbGYuZGJuYW1lID0gJ3Rlc3QyJzsgc2VsZi52ZXIgPSAx
OyBzZWxmLnN0ZXBzID0gW10KICdoLm9wZW4ub25zdWNjZXNzJwogJ2RlbGV0ZURhdGFiYXNlKCkn
CiAnaC5vbnZlcnNpb25jaGFuZ2UnCisgICAgaW4gdmVyc2lvbmNoYW5nZSwgb2xkID0gIiIgbmV3
ID0gIiIKICAgICBoIGNsb3NpbmcgaW1tZWRpYXRlbHkKICdoLmNsb3NlJwogJ2RlbGV0ZURhdGFi
YXNlKCkub25ibG9ja2VkJwpAQCAtNDAsMTEgKzQyLDM2IEBAIHNlbGYuZGJuYW1lID0gJ3Rlc3Qz
Jzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10KICdoLnNldFZlcnNpb24ub25zdWNjZXNz
JwogJ2guc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZScKICdoLm9udmVyc2lvbmNoYW5n
ZScKKyAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQgPSAiMSIgbmV3ID0gIiIKICAgICBoIGNsb3Np
bmcsIGJ1dCBub3QgaW1tZWRpYXRlbHkKICdkZWxldGVEYXRhYmFzZSgpLm9uYmxvY2tlZCcKICdo
LmNsb3NlJwogJ2RlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzJwogUEFTUyBzZWxmLnN0ZXBzLnRv
U3RyaW5nKCkgaXMgImgub3BlbixoLm9wZW4ub25zdWNjZXNzLGguc2V0VmVyc2lvbixkZWxldGVE
YXRhYmFzZSgpLGguc2V0VmVyc2lvbi5vbnN1Y2Nlc3MsaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9u
LWNvbXBsZXRlLGgub252ZXJzaW9uY2hhbmdlLGRlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkLGgu
Y2xvc2UsZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MiCisKK1RFU1Q6IENvcnJlY3Qgb3JkZXIg
d2hlbiB0aGVyZSBhcmUgcGVuZGluZyBzZXRWZXJzaW9uLCBkZWxldGUgYW5kIG9wZW4gY2FsbHMu
CitzZWxmLmRibmFtZSA9ICd0ZXN0NCc7IHNlbGYudmVyID0gMTsgc2VsZi5zdGVwcyA9IFtdCisn
aC5vcGVuJworJ2gub3Blbi5vbnN1Y2Nlc3MnCisnaDIub3BlbicKKydoMi5vcGVuLm9uc3VjY2Vz
cycKKydoLnNldFZlcnNpb24nCisnZGVsZXRlRGF0YWJhc2UoKScKKydoMi5vbnZlcnNpb25jaGFu
Z2UnCisgICAgaW4gdmVyc2lvbmNoYW5nZSwgb2xkID0gIiIgbmV3ID0gIjEiCisnaC5zZXRWZXJz
aW9uLm9uYmxvY2tlZCcKKydoMy5vcGVuJworJ2gyLmNsb3NlJworJ2guc2V0VmVyc2lvbi5vbnN1
Y2Nlc3MnCisnaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlJworJ2gub252ZXJzaW9u
Y2hhbmdlJworICAgIGluIHZlcnNpb25jaGFuZ2UsIG9sZCA9ICIxIiBuZXcgPSAiIgorICAgIGgg
Y2xvc2luZywgYnV0IG5vdCBpbW1lZGlhdGVseQorJ2RlbGV0ZURhdGFiYXNlKCkub25ibG9ja2Vk
JworJ2guY2xvc2UnCisnZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MnCisnaDMub3Blbi5vbnN1
Y2Nlc3MnCitQQVNTIHNlbGYuc3RlcHMudG9TdHJpbmcoKSBpcyAiaC5vcGVuLGgub3Blbi5vbnN1
Y2Nlc3MsaDIub3BlbixoMi5vcGVuLm9uc3VjY2VzcyxoLnNldFZlcnNpb24sZGVsZXRlRGF0YWJh
c2UoKSxoMi5vbnZlcnNpb25jaGFuZ2UsaC5zZXRWZXJzaW9uLm9uYmxvY2tlZCxoMy5vcGVuLGgy
LmNsb3NlLGguc2V0VmVyc2lvbi5vbnN1Y2Nlc3MsaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNv
bXBsZXRlLGgub252ZXJzaW9uY2hhbmdlLGRlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkLGguY2xv
c2UsZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MsaDMub3Blbi5vbnN1Y2Nlc3MiCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9mYWN0b3J5LWRlbGV0ZWRhdGFi
YXNlLWludGVyYWN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy5qcwppbmRleCBlOWQ5Yjc5
NDNkZWE1ZjNlNjY5YjU0ZTgyZjM1N2Q5NmIyODRmYjBjLi5mMDM3NWIyOTgyMzYyOGJlMWEwZmMx
YTBmOTk3YzAzNWJkNGZjM2E2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ZhY3RvcnktZGVsZXRl
ZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmpzCkBAIC0xNyw2ICsxNyw3IEBAIGZ1bmN0aW9uIENvbm5l
Y3Rpb24oaWQpIHsKICAgICAgICAgICAgIHNlbGYuc3RlcHMucHVzaChldmFsQW5kTG9nKCInIiAr
IGlkICsgIi5vcGVuLm9uc3VjY2VzcyciKSk7CiAgICAgICAgICAgICB0aGF0LmhhbmRsZS5vbnZl
cnNpb25jaGFuZ2UgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgc2VsZi5zdGVwcy5w
dXNoKGV2YWxBbmRMb2coIiciICsgaWQgKyAiLm9udmVyc2lvbmNoYW5nZSciKSk7CisgICAgICAg
ICAgICAgICAgZGVidWcoIiAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQgPSAiICsgSlNPTi5zdHJp
bmdpZnkoZS50YXJnZXQudmVyc2lvbikgKyAiIG5ldyA9ICIgKyBKU09OLnN0cmluZ2lmeShlLnZl
cnNpb24pKTsKICAgICAgICAgICAgICAgICBpZiAob3B0cyAmJiBvcHRzLm9udmVyc2lvbikgeyBv
cHRzLm9udmVyc2lvbi5jYWxsKHRoYXQpOyB9CiAgICAgICAgICAgICB9OwogICAgICAgICAgICAg
aWYgKG9wdHMgJiYgb3B0cy5vbnN1Y2Nlc3MpIHsgb3B0cy5vbnN1Y2Nlc3MuY2FsbCh0aGF0KTsg
fQpAQCAtMTc5LDggKzE4MCw1NSBAQCBmdW5jdGlvbiB0ZXN0MygpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaC5jbG9zZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzIgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF0udG9TdHJpbmcoKSk7CisgICAgICAgIHRlc3Q0KCk7CisgICAgfQorfQorCitmdW5j
dGlvbiB0ZXN0NCgpIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRFU1Q6IENvcnJlY3Qg
b3JkZXIgd2hlbiB0aGVyZSBhcmUgcGVuZGluZyBzZXRWZXJzaW9uLCBkZWxldGUgYW5kIG9wZW4g
Y2FsbHMuIik7CisgICAgZXZhbEFuZExvZygic2VsZi5kYm5hbWUgPSAndGVzdDQnOyBzZWxmLnZl
ciA9IDE7IHNlbGYuc3RlcHMgPSBbXSIpOworICAgIHZhciBoID0gbmV3IENvbm5lY3Rpb24oImgi
KTsKKyAgICB2YXIgaDIgPSBuZXcgQ29ubmVjdGlvbigiaDIiKTsKKyAgICB2YXIgaDMgPSBuZXcg
Q29ubmVjdGlvbigiaDMiKTsKKyAgICBydW5TdGVwcyhbZnVuY3Rpb24oZG9OZXh0KSB7IGgub3Bl
bih7b25zdWNjZXNzOiBkb05leHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9udmVyc2lvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiICAgIGggY2xvc2luZywgYnV0IG5vdCBpbW1lZGlh
dGVseSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsgaC5jbG9zZSgpOyB9LCAwKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfX0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBoMi5vcGVuKHtvbnN1Y2Nl
c3M6IGRvTmV4dH0pOyB9LAorICAgICAgICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgaC5zZXRW
ZXJzaW9uKHtvbmJsb2NrZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoMy5vcGVuKHtvbnN1Y2Nlc3M6IGZpbmlzaFRlc3R9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaDIuY2xvc2Uo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb05leHQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBmdW5jdGlvbihkb05leHQpIHsgZGVsZXRl
RGF0YWJhc2UoIiIsIHNlbGYuZGJuYW1lKTsgfSwKKyAgICAgICAgICAgICAgXSk7CisKKyAgICBm
dW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNl
bGYuc3RlcHMudG9TdHJpbmcoKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImgu
b3BlbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgub3Blbi5vbnN1Y2Nlc3Mi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vcGVuIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaDIub3Blbi5vbnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJoLnNldFZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkZWxldGVEYXRhYmFzZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaDIub252ZXJzaW9uY2hhbmdlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aC5zZXRWZXJzaW9uLm9uYmxvY2tlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImgzLm9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5jbG9zZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImguc2V0VmVyc2lvbi5vbnN1Y2Nlc3MiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLnNldFZlcnNpb24udHJhbnNhY3Rpb24t
Y29tcGxldGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLm9udmVyc2lvbmNo
YW5nZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNlKCku
b25ibG9ja2VkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5jbG9zZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNz
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDMub3Blbi5vbnN1Y2Nlc3MiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLnRvU3RyaW5nKCkpOwogICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICB9CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE5OWUwY2QwYjVhMDMwNWM4Yjk4MDFiNDhlYTZjMjQ0NThlZjFmYWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGhyZWUtc2V0dmVy
c2lvbi1jYWxscy5qcwpAQCAtMCwwICsxLDYwIEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7
CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRp
b24oIlRocmVlIHNldFZlcnNpb24gY2FsbHMgYXJlIHF1ZXVlZCBjb3JyZWN0bHkgLSBleGVyY2lz
ZXMgYW4gb3RoZXJ3aXNlLXVudGVzdGVkIGNvZGUgcGF0aCIpOworCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIG9wZW5EQkNvbm5lY3Rpb24oKTsK
K30KKworZnVuY3Rpb24gb3BlbkRCQ29ubmVjdGlvbigpCit7CisgICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5vcGVuKCd0aHJlZS1zZXR2ZXJzaW9uLWNhbGxzJykiKTsKKyAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzMTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0hhbmRsZXIoaWQp
Cit7CisgIHJldHVybiBmdW5jdGlvbihlKSB7CisgICAgdHJhbnMgPSBlLnRhcmdldC5yZXN1bHQ7
CisgICAgZGVidWcoInNldFZlcnNpb24gIiArIGlkKTsKKyAgICB0cmFucy5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5jdGlvbihldnQpIHsKKyAgICAg
IGRlYnVnKCJzZXRWZXJzaW9uICIgKyBpZCArICIgY29tcGxldGUiKTsKKyAgICAgIGlmIChpZCA9
PSBrTnVtVmVyc2lvbkNhbGxzIC0gMSkgeworICAgICAgICBldmFsQW5kTG9nKCJmaW5pc2hlZEFs
bFNldFZlcnNpb25zID0gdHJ1ZSIpOworICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCk7CisgICAg
ICB9CisgICAgfQorICB9Cit9CisKK2ZpbmlzaGVkQWxsU2V0VmVyc2lvbnMgPSBmYWxzZTsKK2tO
dW1WZXJzaW9uQ2FsbHMgPSAzOworZnVuY3Rpb24gb3BlblN1Y2Nlc3MxKGUpCit7CisgICAgY29u
bmVjdGlvbiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtOdW1W
ZXJzaW9uQ2FsbHM7IGkrKykgeworICAgICAgdmNSZXF1ZXN0ID0gZXZhbEFuZExvZygnY29ubmVj
dGlvbi5zZXRWZXJzaW9uKCJ2ZXJzaW9uICcgKyBpICsgJyIpJyk7CisgICAgICB2Y1JlcXVlc3Qu
b25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICAgIHZjUmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICB2Y1JlcXVlc3Qub25zdWNj
ZXNzID0gc3VjY2Vzc0hhbmRsZXIoaSk7CisgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgIGRl
bGV0ZVJlcXVlc3QgPSBldmFsQW5kTG9nKCdpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoInRocmVl
LXNldHZlcnNpb24tY2FsbHMiKScpOworICAgICAgICBkZWxldGVSZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgZGVsZXRlUmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbigpIHsKKyAgICAgICAgICBkZWJ1ZygiU3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgZGF0
YWJhc2UiKTsKKyAgICAgICAgICBzaG91bGRCZVRydWUoImZpbmlzaGVkQWxsU2V0VmVyc2lvbnMi
KTsKKyAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfTsKKyAgICAgIH0KKyAgICB9
Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3RocmVlLXNldHZlcnNpb24tY2FsbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2Y5NjIyYWM0MjA4MzVjYjU4OGEzOWFkZDA2NmVkNzIwNmNlYjcxMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24tY2Fs
bHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1RocmVlIHNldFZlcnNpb24gY2FsbHMg
YXJlIHF1ZXVlZCBjb3JyZWN0bHkgLSBleGVyY2lzZXMgYW4gb3RoZXJ3aXNlLXVudGVzdGVkIGNv
ZGUgcGF0aAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2luZGV4ZWREQi5vcGVu
KCd0aHJlZS1zZXR2ZXJzaW9uLWNhbGxzJykKK2Nvbm5lY3Rpb24uc2V0VmVyc2lvbigidmVyc2lv
biAwIikKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgidGhyZWUtc2V0dmVyc2lvbi1jYWxscyIp
Citjb25uZWN0aW9uLnNldFZlcnNpb24oInZlcnNpb24gMSIpCitjb25uZWN0aW9uLnNldFZlcnNp
b24oInZlcnNpb24gMiIpCitzZXRWZXJzaW9uIDAKK3NldFZlcnNpb24gMCBjb21wbGV0ZQorc2V0
VmVyc2lvbiAxCitzZXRWZXJzaW9uIDEgY29tcGxldGUKK3NldFZlcnNpb24gMgorc2V0VmVyc2lv
biAyIGNvbXBsZXRlCitmaW5pc2hlZEFsbFNldFZlcnNpb25zID0gdHJ1ZQorU3VjY2Vzc2Z1bGx5
IGRlbGV0ZWQgZGF0YWJhc2UKK1BBU1MgZmluaXNoZWRBbGxTZXRWZXJzaW9ucyBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxs
cy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1j
YWxscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNDc2ODk0MTA4OGVkYmQ1M2EwMzIyMjAwMWU2OTEyODUw
OWIyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90
aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGhyZWUtc2V0dmVyc2lvbi1j
YWxscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147348</attachid>
            <date>2012-06-13 09:57:42 -0700</date>
            <delta_ts>2012-06-13 10:31:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88829-20120613095742.patch</filename>
            <type>text/plain</type>
            <size>14819</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZiYTk3MWZhM2FlODUy
OTAwMmNiOWM3NjhkOTRkNjVhOWQxYTg5Ny4uZDg3MzkzNjllMTFiYzliZjhjNmI5ZjY4MTMxZGE0
YmI4MDM0YTViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA2LTEyICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFk
ZCB0ZXN0cywgYW4gYXNzZXJ0LCBhbmQgc29tZSBjb21tZW50cyBhcm91bmQgb3Blbi9jbG9zZS9z
ZXRWZXJzaW9uIGNhbGwgc2VxdWVuY2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODg4MjkKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5n
LgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24tY2Fs
bHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9j
ZXNzUGVuZGluZ0NhbGxzKToKKwogMjAxMi0wNi0wOSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFcnJvcnMgd2hlbiBwZW5k
aW5nIGNvbnNvbGUgbWVzc2FnZXMgYXJlIGF0dGFjaGVkIHRvIEphdmFTY3JpcHRTb3VyY2VGcmFt
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggYTA4NmExNzIxYTE5YzM4YmZkNTQwOTI5MjI4
MTMzN2YyNzk3ODAzYi4uMTJmMjkwMjVhYjNhODk1NjJjNWUxMTk0ZjM5ODAwN2RjZDY3NjBmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VC
YWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTI4MCw2ICsyODAsOCBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uRmluaXNoZWQoUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbgogCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5n
Q2FsbHMoKQogeworICAgIEFTU0VSVChtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LnNpemUoKSA8PSAx
KTsKKwogICAgIC8vIFBlbmRpbmcgY2FsbHMgbWF5IGJlIHJlcXVldWVkIG9yIGFib3J0ZWQKICAg
ICBEZXF1ZTxSZWZQdHI8UGVuZGluZ1NldFZlcnNpb25DYWxsPiA+IHBlbmRpbmdTZXRWZXJzaW9u
Q2FsbHM7CiAgICAgbV9wZW5kaW5nU2V0VmVyc2lvbkNhbGxzLnN3YXAocGVuZGluZ1NldFZlcnNp
b25DYWxscyk7CkBAIC0yOTAsNiArMjkyLDE3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6cHJvY2Vzc1BlbmRpbmdDYWxscygpCiAgICAgICAgIEFTU0VSVCghZWMpOwogICAgIH0KIAor
ICAgIC8vIElmIHRoZXJlIHdlcmUgYW55IHBlbmRpbmcgc2V0IHZlcnNpb24gY2FsbHMsIHdlIGJl
dHRlciBoYXZlIHN0YXJ0ZWQgb25lLgorICAgIEFTU0VSVChtX3BlbmRpbmdTZXRWZXJzaW9uQ2Fs
bHMuaXNFbXB0eSgpIHx8IG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik7CisKKyAg
ICAvLyBtX3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMgaXMgbm9uLWVtcHR5IGluIHR3byBjYXNlczoK
KyAgICAvLyAxKSBXaGVuIHR3byB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9ucyBhcmUgcmVxdWVz
dGVkIHdoaWxlIGFub3RoZXIKKyAgICAvLyAgICB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiBp
cyBydW5uaW5nLgorICAgIC8vIDIpIFdoZW4gdGhyZWUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
bnMgYXJlIHJlcXVlc3RlZCBpbiBhIHJvdywgYmVmb3JlCisgICAgLy8gICAgYW55IG9mIHRoZWly
IGV2ZW50IGhhbmRsZXJzIGFyZSBydW4uCisgICAgLy8gTm90ZSB0aGF0IHRoaXMgY2hlY2sgaXMg
b25seSBhbiBvcHRpbWl6YXRpb24gdG8gcmVkdWNlIHF1ZXVlLWNodXJuIGFuZAorICAgIC8vIG5v
dCBuZWNlc3NhcnkgZm9yIGNvcnJlY3RuZXNzOyBkZWxldGVEYXRhYmFzZSBhbmQgb3BlbkNvbm5l
Y3Rpb24gd2lsbAorICAgIC8vIHJlcXVldWUgdGhlaXIgY2FsbHMgaWYgdGhpcyBjb25kaXRpb24g
aXMgdHJ1ZS4KICAgICBpZiAobV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uIHx8ICFt
X3BlbmRpbmdTZXRWZXJzaW9uQ2FsbHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKQEAg
LTMwMSwxMyArMzE0LDE5IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cHJvY2Vzc1Bl
bmRpbmdDYWxscygpCiAgICAgICAgIGRlbGV0ZURhdGFiYXNlKHBlbmRpbmdEZWxldGVDYWxsLT5j
YWxsYmFja3MoKSk7CiAgICAgfQogCisgICAgLy8gVGhpcyBjaGVjayBpcyBhbHNvIG5vdCByZWFs
bHkgbmVlZGVkLCBvcGVuQ29ubmVjdGlvbiB3b3VsZCBqdXN0IHJlcXVldWUgaXRzIGNhbGxzLgog
ICAgIGlmIChtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gfHwgIW1fcGVuZGluZ1Nl
dFZlcnNpb25DYWxscy5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0RlbGV0ZUNhbGxzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2hpbGUgKCFtX3BlbmRpbmdPcGVuQ2FsbHMuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIFJlZlB0cjxQZW5kaW5nT3BlbkNhbGw+IHBlbmRpbmdPcGVuQ2Fs
bCA9IG1fcGVuZGluZ09wZW5DYWxscy50YWtlRmlyc3QoKTsKKyAgICAvLyBHaXZlbiB0aGUgY2hl
Y2sgYWJvdmUsIGl0IGFwcGVhcnMgdGhhdCBjYWxscyBjYW5ub3QgYmUgcmVxdWV1ZWQgYnkKKyAg
ICAvLyBvcGVuQ29ubmVjdGlvbiwgYnV0IHVzZSBhIGRpZmZlcmVudCBxdWV1ZSBmb3IgaXRlcmF0
aW9uIHRvIGJlIHNhZmUuCisgICAgRGVxdWU8UmVmUHRyPFBlbmRpbmdPcGVuQ2FsbD4gPiBwZW5k
aW5nT3BlbkNhbGxzOworICAgIG1fcGVuZGluZ09wZW5DYWxscy5zd2FwKHBlbmRpbmdPcGVuQ2Fs
bHMpOworICAgIHdoaWxlICghcGVuZGluZ09wZW5DYWxscy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
UmVmUHRyPFBlbmRpbmdPcGVuQ2FsbD4gcGVuZGluZ09wZW5DYWxsID0gcGVuZGluZ09wZW5DYWxs
cy50YWtlRmlyc3QoKTsKICAgICAgICAgb3BlbkNvbm5lY3Rpb24ocGVuZGluZ09wZW5DYWxsLT5j
YWxsYmFja3MoKSk7CiAgICAgfQorICAgIEFTU0VSVChtX3BlbmRpbmdPcGVuQ2FsbHMuaXNFbXB0
eSgpKTsKIH0KIAogUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IElE
QkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uKERPTVN0cmluZ0xpc3QqIG9iamVjdFN0
b3JlTmFtZXMsIHVuc2lnbmVkIHNob3J0IG1vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDdhMzg1OTYxMmE2NTRmMzY5OTQ1OTYwMTg3ODYyODIzZjRlODE0OGIuLjI1YjMyYzY2NDhjMTQy
NmFmYjZkZDI1ZWI4MzFiNDMyMDU2NjQyMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0w
Ni0xMiAgRGF2aWQgR3JvZ2FuICA8ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5k
ZXhlZERCOiBBZGQgdGVzdHMsIGFuIGFzc2VydCwgYW5kIHNvbWUgY29tbWVudHMgYXJvdW5kIG9w
ZW4vY2xvc2Uvc2V0VmVyc2lvbiBjYWxsIHNlcXVlbmNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4ODI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VG9ueSBDaGFuZy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRl
ZGF0YWJhc2UtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMuanM6
CisgICAgICAgIChDb25uZWN0aW9uLnRoaXMub3Blbi5yZXEub25zdWNjZXNzLnRoYXQuaGFuZGxl
Lm9udmVyc2lvbmNoYW5nZSk6CisgICAgICAgIChDb25uZWN0aW9uLnRoaXMub3Blbi5yZXEub25z
dWNjZXNzKToKKyAgICAgICAgKENvbm5lY3Rpb24udGhpcy5vcGVuKToKKyAgICAgICAgKHRlc3Qz
KToKKyAgICAgICAgKHRlc3Q0LnJ1blN0ZXBzLik6CisgICAgICAgICh0ZXN0NCk6CisgICAgICAg
ICh0ZXN0NC4pOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90aHJlZS1z
ZXR2ZXJzaW9uLWNhbGxzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAob3Bl
bkRCQ29ubmVjdGlvbik6CisgICAgICAgIChzdWNjZXNzSGFuZGxlci5yZXR1cm4udHJhbnMub25j
b21wbGV0ZSk6CisgICAgICAgIChvcGVuU3VjY2VzczEuZGVsZXRlUmVxdWVzdC5vbnN1Y2Nlc3Mp
OgorICAgICAgICAob3BlblN1Y2Nlc3MxKToKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90
aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wNi0xMyAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAg
IFNraXAgdGhlIGlzb2xhdGVkIHdvcmxkIHRlc3RzIGZvciBHdGsgLSB0aGUgaW5mcmFzdHJ1Y3R1
cmUgaXMgbWlzc2luZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRlcmFjdGlv
bnMtZXhwZWN0ZWQudHh0CmluZGV4IGExODJiYzZmNzZhMzFiOTEyZDdlZDE3ZmU2MjUxYjUyYTNl
NGY1ZWEuLmNiYTk5NThmYTg4MGY0ZmRlODE2ZmFmZTkwNGU5N2NkM2ZiNWUyZmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ZhY3RvcnktZGVsZXRlZGF0YWJhc2Ut
aW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy1leHBlY3RlZC50eHQKQEAg
LTEyLDYgKzEyLDcgQEAgc2VsZi5kYm5hbWUgPSAndGVzdDEnOyBzZWxmLnZlciA9IDE7IHNlbGYu
c3RlcHMgPSBbXQogJ2gub3Blbi5vbnN1Y2Nlc3MnCiAnZGVsZXRlRGF0YWJhc2UoKScKICdoLm9u
dmVyc2lvbmNoYW5nZScKKyAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQgPSAiIiBuZXcgPSAiIgog
ICAgIGggY2xvc2luZywgYnV0IG5vdCBpbW1lZGlhdGVseQogJ2RlbGV0ZURhdGFiYXNlKCkub25i
bG9ja2VkJwogJ2guY2xvc2UnCkBAIC0yNCw2ICsyNSw3IEBAIHNlbGYuZGJuYW1lID0gJ3Rlc3Qy
Jzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10KICdoLm9wZW4ub25zdWNjZXNzJwogJ2Rl
bGV0ZURhdGFiYXNlKCknCiAnaC5vbnZlcnNpb25jaGFuZ2UnCisgICAgaW4gdmVyc2lvbmNoYW5n
ZSwgb2xkID0gIiIgbmV3ID0gIiIKICAgICBoIGNsb3NpbmcgaW1tZWRpYXRlbHkKICdoLmNsb3Nl
JwogJ2RlbGV0ZURhdGFiYXNlKCkub25ibG9ja2VkJwpAQCAtNDAsMTEgKzQyLDM2IEBAIHNlbGYu
ZGJuYW1lID0gJ3Rlc3QzJzsgc2VsZi52ZXIgPSAxOyBzZWxmLnN0ZXBzID0gW10KICdoLnNldFZl
cnNpb24ub25zdWNjZXNzJwogJ2guc2V0VmVyc2lvbi50cmFuc2FjdGlvbi1jb21wbGV0ZScKICdo
Lm9udmVyc2lvbmNoYW5nZScKKyAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQgPSAiMSIgbmV3ID0g
IiIKICAgICBoIGNsb3NpbmcsIGJ1dCBub3QgaW1tZWRpYXRlbHkKICdkZWxldGVEYXRhYmFzZSgp
Lm9uYmxvY2tlZCcKICdoLmNsb3NlJwogJ2RlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzJwogUEFT
UyBzZWxmLnN0ZXBzLnRvU3RyaW5nKCkgaXMgImgub3BlbixoLm9wZW4ub25zdWNjZXNzLGguc2V0
VmVyc2lvbixkZWxldGVEYXRhYmFzZSgpLGguc2V0VmVyc2lvbi5vbnN1Y2Nlc3MsaC5zZXRWZXJz
aW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRlLGgub252ZXJzaW9uY2hhbmdlLGRlbGV0ZURhdGFiYXNl
KCkub25ibG9ja2VkLGguY2xvc2UsZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MiCisKK1RFU1Q6
IENvcnJlY3Qgb3JkZXIgd2hlbiB0aGVyZSBhcmUgcGVuZGluZyBzZXRWZXJzaW9uLCBkZWxldGUg
YW5kIG9wZW4gY2FsbHMuCitzZWxmLmRibmFtZSA9ICd0ZXN0NCc7IHNlbGYudmVyID0gMTsgc2Vs
Zi5zdGVwcyA9IFtdCisnaC5vcGVuJworJ2gub3Blbi5vbnN1Y2Nlc3MnCisnaDIub3BlbicKKydo
Mi5vcGVuLm9uc3VjY2VzcycKKydoLnNldFZlcnNpb24nCisnZGVsZXRlRGF0YWJhc2UoKScKKydo
Mi5vbnZlcnNpb25jaGFuZ2UnCisgICAgaW4gdmVyc2lvbmNoYW5nZSwgb2xkID0gIiIgbmV3ID0g
IjEiCisnaC5zZXRWZXJzaW9uLm9uYmxvY2tlZCcKKydoMy5vcGVuJworJ2gyLmNsb3NlJworJ2gu
c2V0VmVyc2lvbi5vbnN1Y2Nlc3MnCisnaC5zZXRWZXJzaW9uLnRyYW5zYWN0aW9uLWNvbXBsZXRl
JworJ2gub252ZXJzaW9uY2hhbmdlJworICAgIGluIHZlcnNpb25jaGFuZ2UsIG9sZCA9ICIxIiBu
ZXcgPSAiIgorICAgIGggY2xvc2luZywgYnV0IG5vdCBpbW1lZGlhdGVseQorJ2RlbGV0ZURhdGFi
YXNlKCkub25ibG9ja2VkJworJ2guY2xvc2UnCisnZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3Mn
CisnaDMub3Blbi5vbnN1Y2Nlc3MnCitQQVNTIHNlbGYuc3RlcHMudG9TdHJpbmcoKSBpcyAiaC5v
cGVuLGgub3Blbi5vbnN1Y2Nlc3MsaDIub3BlbixoMi5vcGVuLm9uc3VjY2VzcyxoLnNldFZlcnNp
b24sZGVsZXRlRGF0YWJhc2UoKSxoMi5vbnZlcnNpb25jaGFuZ2UsaC5zZXRWZXJzaW9uLm9uYmxv
Y2tlZCxoMy5vcGVuLGgyLmNsb3NlLGguc2V0VmVyc2lvbi5vbnN1Y2Nlc3MsaC5zZXRWZXJzaW9u
LnRyYW5zYWN0aW9uLWNvbXBsZXRlLGgub252ZXJzaW9uY2hhbmdlLGRlbGV0ZURhdGFiYXNlKCku
b25ibG9ja2VkLGguY2xvc2UsZGVsZXRlRGF0YWJhc2UoKS5vbnN1Y2Nlc3MsaDMub3Blbi5vbnN1
Y2Nlc3MiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9mYWN0
b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9mYWN0b3J5LWRlbGV0ZWRhdGFiYXNlLWludGVyYWN0aW9ucy5q
cwppbmRleCBlOWQ5Yjc5NDNkZWE1ZjNlNjY5YjU0ZTgyZjM1N2Q5NmIyODRmYjBjLi5mMDM3NWIy
OTgyMzYyOGJlMWEwZmMxYTBmOTk3YzAzNWJkNGZjM2E2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZmFjdG9yeS1kZWxldGVkYXRhYmFzZS1pbnRl
cmFjdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2ZhY3RvcnktZGVsZXRlZGF0YWJhc2UtaW50ZXJhY3Rpb25zLmpzCkBAIC0xNyw2ICsxNyw3IEBA
IGZ1bmN0aW9uIENvbm5lY3Rpb24oaWQpIHsKICAgICAgICAgICAgIHNlbGYuc3RlcHMucHVzaChl
dmFsQW5kTG9nKCInIiArIGlkICsgIi5vcGVuLm9uc3VjY2VzcyciKSk7CiAgICAgICAgICAgICB0
aGF0LmhhbmRsZS5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAg
ICAgc2VsZi5zdGVwcy5wdXNoKGV2YWxBbmRMb2coIiciICsgaWQgKyAiLm9udmVyc2lvbmNoYW5n
ZSciKSk7CisgICAgICAgICAgICAgICAgZGVidWcoIiAgICBpbiB2ZXJzaW9uY2hhbmdlLCBvbGQg
PSAiICsgSlNPTi5zdHJpbmdpZnkoZS50YXJnZXQudmVyc2lvbikgKyAiIG5ldyA9ICIgKyBKU09O
LnN0cmluZ2lmeShlLnZlcnNpb24pKTsKICAgICAgICAgICAgICAgICBpZiAob3B0cyAmJiBvcHRz
Lm9udmVyc2lvbikgeyBvcHRzLm9udmVyc2lvbi5jYWxsKHRoYXQpOyB9CiAgICAgICAgICAgICB9
OwogICAgICAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5vbnN1Y2Nlc3MpIHsgb3B0cy5vbnN1Y2Nl
c3MuY2FsbCh0aGF0KTsgfQpAQCAtMTc5LDggKzE4MCw1NSBAQCBmdW5jdGlvbiB0ZXN0MygpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaC5jbG9zZSIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFiYXNlKCkub25zdWNjZXNzIgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF0udG9TdHJpbmcoKSk7CisgICAgICAgIHRlc3Q0KCk7Cisg
ICAgfQorfQorCitmdW5jdGlvbiB0ZXN0NCgpIHsKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
IlRFU1Q6IENvcnJlY3Qgb3JkZXIgd2hlbiB0aGVyZSBhcmUgcGVuZGluZyBzZXRWZXJzaW9uLCBk
ZWxldGUgYW5kIG9wZW4gY2FsbHMuIik7CisgICAgZXZhbEFuZExvZygic2VsZi5kYm5hbWUgPSAn
dGVzdDQnOyBzZWxmLnZlciA9IDE7IHNlbGYuc3RlcHMgPSBbXSIpOworICAgIHZhciBoID0gbmV3
IENvbm5lY3Rpb24oImgiKTsKKyAgICB2YXIgaDIgPSBuZXcgQ29ubmVjdGlvbigiaDIiKTsKKyAg
ICB2YXIgaDMgPSBuZXcgQ29ubmVjdGlvbigiaDMiKTsKKyAgICBydW5TdGVwcyhbZnVuY3Rpb24o
ZG9OZXh0KSB7IGgub3Blbih7b25zdWNjZXNzOiBkb05leHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9udmVyc2lvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiICAgIGggY2xvc2luZywg
YnV0IG5vdCBpbW1lZGlhdGVseSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgaC5jbG9zZSgpOyB9LCAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIGZ1bmN0aW9uKGRvTmV4dCkgeyBo
Mi5vcGVuKHtvbnN1Y2Nlc3M6IGRvTmV4dH0pOyB9LAorICAgICAgICAgICAgICBmdW5jdGlvbihk
b05leHQpIHsgaC5zZXRWZXJzaW9uKHtvbmJsb2NrZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoMy5vcGVuKHtvbnN1Y2Nlc3M6
IGZpbmlzaFRlc3R9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaDIuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9fSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb05leHQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBmdW5jdGlvbihk
b05leHQpIHsgZGVsZXRlRGF0YWJhc2UoIiIsIHNlbGYuZGJuYW1lKTsgfSwKKyAgICAgICAgICAg
ICAgXSk7CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInNlbGYuc3RlcHMudG9TdHJpbmcoKSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbImgub3BlbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgu
b3Blbi5vbnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoMi5vcGVu
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDIub3Blbi5vbnN1Y2Nlc3MiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLnNldFZlcnNpb24iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkZWxldGVEYXRhYmFzZSgpIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaDIub252ZXJzaW9uY2hhbmdlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaC5zZXRWZXJzaW9uLm9uYmxvY2tlZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImgzLm9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJoMi5jbG9zZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImguc2V0VmVyc2lv
bi5vbnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoLnNldFZlcnNp
b24udHJhbnNhY3Rpb24tY29tcGxldGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJoLm9udmVyc2lvbmNoYW5nZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRl
bGV0ZURhdGFiYXNlKCkub25ibG9ja2VkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaC5jbG9zZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlbGV0ZURhdGFi
YXNlKCkub25zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaDMub3Bl
bi5vbnN1Y2Nlc3MiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLnRvU3RyaW5nKCkp
OwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CiAKLXRlc3QoKTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90aHJlZS1zZXR2ZXJzaW9uLWNhbGxz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRjZmU4MTI3OTYyMWRlN2Y3ZjhmZDA2NDVhNzZkYmYxYjI4MzE4NDQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy5qcwpAQCAtMCwwICsxLDYwIEBACitpZiAodGhpcy5p
bXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsK
K30KKworZGVzY3JpcHRpb24oIlRocmVlIHNldFZlcnNpb24gY2FsbHMgYXJlIHF1ZXVlZCBjb3Jy
ZWN0bHkgLSBleGVyY2lzZXMgYW4gb3RoZXJ3aXNlLXVudGVzdGVkIGNvZGUgcGF0aCIpOworCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIG9wZW5E
QkNvbm5lY3Rpb24oKTsKK30KKworZnVuY3Rpb24gb3BlbkRCQ29ubmVjdGlvbigpCit7CisgICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCd0aHJlZS1zZXR2ZXJzaW9uLWNh
bGxzJykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzMTsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gc3Vj
Y2Vzc0hhbmRsZXIoaWQpCit7CisgIHJldHVybiBmdW5jdGlvbihlKSB7CisgICAgdHJhbnMgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgZGVidWcoInNldFZlcnNpb24gIiArIGlkKTsKKyAgICB0cmFu
cy5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgdHJhbnMub25hYm9ydCA9
IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5jdGlv
bihldnQpIHsKKyAgICAgIGRlYnVnKCJzZXRWZXJzaW9uICIgKyBpZCArICIgY29tcGxldGUiKTsK
KyAgICAgIGlmIChpZCA9PSBrTnVtVmVyc2lvbkNhbGxzIC0gMSkgeworICAgICAgICBldmFsQW5k
TG9nKCJmaW5pc2hlZEFsbFNldFZlcnNpb25zID0gdHJ1ZSIpOworICAgICAgICBjb25uZWN0aW9u
LmNsb3NlKCk7CisgICAgICB9CisgICAgfQorICB9Cit9CisKK2ZpbmlzaGVkQWxsU2V0VmVyc2lv
bnMgPSBmYWxzZTsKK2tOdW1WZXJzaW9uQ2FsbHMgPSAzOworZnVuY3Rpb24gb3BlblN1Y2Nlc3Mx
KGUpCit7CisgICAgY29ubmVjdGlvbiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGtOdW1WZXJzaW9uQ2FsbHM7IGkrKykgeworICAgICAgdmNSZXF1ZXN0ID0gZXZh
bEFuZExvZygnY29ubmVjdGlvbi5zZXRWZXJzaW9uKCJ2ZXJzaW9uICcgKyBpICsgJyIpJyk7Cisg
ICAgICB2Y1JlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAg
ICAgIHZjUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICB2
Y1JlcXVlc3Qub25zdWNjZXNzID0gc3VjY2Vzc0hhbmRsZXIoaSk7CisgICAgICBpZiAoIWkpIHsK
KyAgICAgICAgZGVsZXRlUmVxdWVzdCA9IGV2YWxBbmRMb2coJ2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZSgidGhyZWUtc2V0dmVyc2lvbi1jYWxscyIpJyk7CisgICAgICAgIGRlbGV0ZVJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICBkZWxldGVSZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGRlYnVnKCJTdWNjZXNzZnVsbHkg
ZGVsZXRlZCBkYXRhYmFzZSIpOworICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiZmluaXNoZWRBbGxT
ZXRWZXJzaW9ucyIpOworICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9OworICAg
ICAgfQorICAgIH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdGhyZWUtc2V0dmVyc2lvbi1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2ZXJzaW9uLWNhbGxzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZjk2MjJhYzQyMDgzNWNiNTg4YTM5YWRkMDY2ZWQ3MjA2Y2ViNzEwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdGhyZWUtc2V0
dmVyc2lvbi1jYWxscy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGhyZWUgc2V0VmVy
c2lvbiBjYWxscyBhcmUgcXVldWVkIGNvcnJlY3RseSAtIGV4ZXJjaXNlcyBhbiBvdGhlcndpc2Ut
dW50ZXN0ZWQgY29kZSBwYXRoCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworaW5k
ZXhlZERCLm9wZW4oJ3RocmVlLXNldHZlcnNpb24tY2FsbHMnKQorY29ubmVjdGlvbi5zZXRWZXJz
aW9uKCJ2ZXJzaW9uIDAiKQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJ0aHJlZS1zZXR2ZXJz
aW9uLWNhbGxzIikKK2Nvbm5lY3Rpb24uc2V0VmVyc2lvbigidmVyc2lvbiAxIikKK2Nvbm5lY3Rp
b24uc2V0VmVyc2lvbigidmVyc2lvbiAyIikKK3NldFZlcnNpb24gMAorc2V0VmVyc2lvbiAwIGNv
bXBsZXRlCitzZXRWZXJzaW9uIDEKK3NldFZlcnNpb24gMSBjb21wbGV0ZQorc2V0VmVyc2lvbiAy
CitzZXRWZXJzaW9uIDIgY29tcGxldGUKK2ZpbmlzaGVkQWxsU2V0VmVyc2lvbnMgPSB0cnVlCitT
dWNjZXNzZnVsbHkgZGVsZXRlZCBkYXRhYmFzZQorUEFTUyBmaW5pc2hlZEFsbFNldFZlcnNpb25z
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1zZXR2
ZXJzaW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90aHJlZS1z
ZXR2ZXJzaW9uLWNhbGxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY0NzY4OTQxMDg4ZWRiZDUzYTAzMjIy
MDAxZTY5MTI4NTA5YjJhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3RocmVlLXNldHZlcnNpb24tY2FsbHMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90aHJlZS1z
ZXR2ZXJzaW9uLWNhbGxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>