<?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>77439</bug_id>
          
          <creation_ts>2012-01-31 07:49:30 -0800</creation_ts>
          <short_desc>Web Inspector: [InspectorIndexedDB] Add tests for database names and database structure requests.</short_desc>
          <delta_ts>2012-02-13 09:19:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75386</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>546050</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-31 07:49:30 -0800</bug_when>
    <thetext>Add tests for database names and database structure requests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546055</commentid>
    <comment_count>1</comment_count>
      <attachid>124732</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-31 07:55:30 -0800</bug_when>
    <thetext>Created attachment 124732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546056</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 07:57:01 -0800</bug_when>
    <thetext>Attachment 124732 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546068</commentid>
    <comment_count>3</comment_count>
      <attachid>124736</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-31 08:11:46 -0800</bug_when>
    <thetext>Created attachment 124736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546071</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 08:13:58 -0800</bug_when>
    <thetext>Attachment 124736 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546095</commentid>
    <comment_count>5</comment_count>
      <attachid>124736</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 08:43:36 -0800</bug_when>
    <thetext>Comment on attachment 124736
Patch

Attachment 124736 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11378036

New failing tests:
http/tests/inspector/indexeddb/database-names.html
http/tests/inspector/indexeddb/database-structure.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546132</commentid>
    <comment_count>6</comment_count>
      <attachid>124752</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-31 09:08:19 -0800</bug_when>
    <thetext>Created attachment 124752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546143</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 09:11:52 -0800</bug_when>
    <thetext>Attachment 124752 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546991</commentid>
    <comment_count>8</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-02-01 04:03:12 -0800</bug_when>
    <thetext>Committed r106463: &lt;http://trac.webkit.org/changeset/106463&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555320</commentid>
    <comment_count>9</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-02-13 09:19:37 -0800</bug_when>
    <thetext>*** Bug 77002 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124732</attachid>
            <date>2012-01-31 07:55:30 -0800</date>
            <delta_ts>2012-01-31 08:11:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77439-20120131195527.patch</filename>
            <type>text/plain</type>
            <size>23699</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhmYmE1OGY2Mzc2NDIw
MzMzZTQ2MWU2NzUzYzM5ZWNkZjk1ZmRiYi4uOGUxNWRkNzZhNTRkNGI2YjVjNzY4M2E4Mjg2ODFm
MWViYWExNzZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTMxICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtJbnNwZWN0b3JJbmRleGVkREJdIEFkZCB0ZXN0cyBmb3IgZGF0YWJhc2UgbmFtZXMgYW5k
IGRhdGFiYXNlIHN0cnVjdHVyZSByZXF1ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRk
Yi9kYXRhYmFzZS1uYW1lcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvSW5kZXhlZERCTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5k
ZXhlZERCTW9kZWwucHJvdG90eXBlLnJlZnJlc2hEYXRhYmFzZSk6CisKIDIwMTItMDEtMzEgIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFBhcmVudCBTVkdGb250
RmFjZUVsZW1lbnRzIHN0eWxlIGRlY2xhcmF0aW9uIHRvIHRoZSBydWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luZGV4ZWREQk1vZGVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmRleGVkREJNb2RlbC5qcwppbmRleCA0
YmZlOTZiODI2NTJmMjUxZGRmMjM0MjJiODdkNzRiNDVlNmIwYjVjLi43NTcxNmQyZDE2NzM2MDZm
NjNkM2JjYzlmYzdhNTY3YWRkYzcxOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0luZGV4ZWREQk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSW5kZXhlZERCTW9kZWwuanMKQEAgLTUzLDYgKzUzLDExIEBAIFdl
Ykluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2Zy
YW1lc05hdmlnYXRlZFJlY3Vyc2l2ZWx5KFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5t
YWluRnJhbWUpOwogICAgIH0sCiAgICAgCisgICAgcmVmcmVzaERhdGFiYXNlOiBmdW5jdGlvbihm
cmFtZUlkLCBkYXRhYmFzZU5hbWUpCisgICAgeworICAgICAgICB0aGlzLl9sb2FkRGF0YWJhc2Uo
ZnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9LAorICAgIAogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lfSByZXNvdXJjZVRyZWVGcmFtZQog
ICAgICAqLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDJkMjM3NzBhMzNkMDA0ZTcwZDFhYTlhNmY1ZDIzZjZjYWJmM2I3MzUu
LjMzZjM1ODZlMTU3NmRiZGYyNWRhYjg3ZWFhZTYyZWE3MmE4Mjg3ZmUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MiBAQAorMjAxMi0wMS0zMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbSW5zcGVjdG9ySW5kZXhlZERCXSBBZGQgdGVz
dHMgZm9yIGRhdGFiYXNlIG5hbWVzIGFuZCBkYXRhYmFzZSBzdHJ1Y3R1cmUgcmVxdWVzdHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWVz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9k
YXRhYmFzZS1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9pbmRleGVkZGItdGVzdC5q
czogQWRkZWQuCisgICAgICAgIChpbml0aWFsaXplX0luZGV4ZWREQlRlc3QuSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZVdpdGhDYWxsYmFjayk6CisgICAgICAgIChpbml0aWFsaXplX0luZGV4ZWREQlRl
c3QuSW5zcGVjdG9yVGVzdC5faW5zdGFsbEluZGV4ZWREQlNuaWZmZXIuY29uc29sZU1lc3NhZ2VP
dmVycmlkZSk6CisgICAgICAgIChpbml0aWFsaXplX0luZGV4ZWREQlRlc3QuSW5zcGVjdG9yVGVz
dC5faW5zdGFsbEluZGV4ZWREQlNuaWZmZXIpOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbmRleGVk
REJUZXN0Lkluc3BlY3RvclRlc3QuY3JlYXRlRGF0YWJhc2UpOgorICAgICAgICAoaW5pdGlhbGl6
ZV9JbmRleGVkREJUZXN0Lkluc3BlY3RvclRlc3QuZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAo
aW5pdGlhbGl6ZV9JbmRleGVkREJUZXN0Lkluc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3RvcmUp
OgorICAgICAgICAoaW5pdGlhbGl6ZV9JbmRleGVkREJUZXN0Lkluc3BlY3RvclRlc3QuZGVsZXRl
T2JqZWN0U3RvcmUpOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbmRleGVkREJUZXN0Lkluc3BlY3Rv
clRlc3QuY3JlYXRlT2JqZWN0U3RvcmVJbmRleCk6CisgICAgICAgIChpbml0aWFsaXplX0luZGV4
ZWREQlRlc3QuSW5zcGVjdG9yVGVzdC5kZWxldGVPYmplY3RTdG9yZUluZGV4KToKKyAgICAgICAg
KGluaXRpYWxpemVfSW5kZXhlZERCVGVzdCk6CisgICAgICAgIChkaXNwYXRjaENhbGxiYWNrKToK
KyAgICAgICAgKG9uSW5kZXhlZERCRXJyb3IpOgorICAgICAgICAoZG9XaXRoRGF0YWJhc2UuaW5u
ZXJDYWxsYmFjayk6CisgICAgICAgIChkb1dpdGhEYXRhYmFzZSk6CisgICAgICAgIChkb1dpdGhW
ZXJzaW9uVHJhbnNhY3Rpb24uc3RlcDIuc3RlcDMpOgorICAgICAgICAoZG9XaXRoVmVyc2lvblRy
YW5zYWN0aW9uLnN0ZXAyKToKKyAgICAgICAgKGRvV2l0aFZlcnNpb25UcmFuc2FjdGlvbik6Cisg
ICAgICAgIChjcmVhdGVEYXRhYmFzZS5jbG9zZURhdGFiYXNlKToKKyAgICAgICAgKGNyZWF0ZURh
dGFiYXNlKToKKyAgICAgICAgKGRlbGV0ZURhdGFiYXNlKToKKyAgICAgICAgKGNyZWF0ZU9iamVj
dFN0b3JlLndpdGhUcmFuc2FjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKGNyZWF0ZU9iamVjdFN0
b3JlKToKKyAgICAgICAgKGRlbGV0ZU9iamVjdFN0b3JlLndpdGhUcmFuc2FjdGlvbkNhbGxiYWNr
KToKKyAgICAgICAgKGNyZWF0ZU9iamVjdFN0b3JlSW5kZXgud2l0aFRyYW5zYWN0aW9uQ2FsbGJh
Y2spOgorICAgICAgICAoY3JlYXRlT2JqZWN0U3RvcmVJbmRleCk6CisgICAgICAgIChkZWxldGVP
YmplY3RTdG9yZUluZGV4LndpdGhUcmFuc2FjdGlvbkNhbGxiYWNrKToKKwogMjAxMi0wMS0zMSAg
WXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgW0Nocm9taXVtXSBV
bnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb24gY2hhbmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFz
ZS1uYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODBlNjU2MjExYTJlZTNmOTRmNWQ1Mzg3
YzRhZWU0ZGE2NjY4NzQ3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1lcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxOSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1OiBJbnNwZWN0b3JUZXN0LkluZGV4
ZWREQl9jYWxsYmFjazEKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogSW5zcGVjdG9yVGVzdC5J
bmRleGVkREJfY2FsbGJhY2syCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzU6IEluc3BlY3RvclRl
c3QuSW5kZXhlZERCX2NhbGxiYWNrMworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1OiBJbnNwZWN0
b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazQKK1Rlc3RzIHRoYXQgZGF0YWJhc2UgbmFtZXMgYXJl
IGNvcnJlY3RseSBsb2FkZWQgYW5kIHNhdmVkIGluIEluZGV4ZWREQk1vZGVsLgorCitEdW1waW5n
IGRhdGFiYXNlIG5hbWVzOgorRHVtcGluZyBkYXRhYmFzZSBuYW1lczoKKyAgICB0ZXN0RGF0YWJh
c2UxCisKK0R1bXBpbmcgZGF0YWJhc2UgbmFtZXM6CisgICAgdGVzdERhdGFiYXNlMQorICAgIHRl
c3REYXRhYmFzZTIKKworRHVtcGluZyBkYXRhYmFzZSBuYW1lczoKKyAgICB0ZXN0RGF0YWJhc2Ux
CisKK0R1bXBpbmcgZGF0YWJhc2UgbmFtZXM6CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1lcy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLW5hbWVzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWI2ZDJhZjY0NDFkMzBhNzZlOTBiMTQxZmE1MTdhZjg3MGUzYTMyMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRk
Yi9kYXRhYmFzZS1uYW1lcy5odG1sCkBAIC0wLDAgKzEsODYgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
ImluZGV4ZWRkYi10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICB2YXIgaW5kZXhlZERCTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1v
ZGVsKCk7CisgICAgdmFyIG1haW5GcmFtZUlkID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1v
ZGVsLm1haW5GcmFtZS5pZDsKKworICAgIGZ1bmN0aW9uIGR1bXBEYXRhYmFzZU5hbWVzKCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIGRhdGFiYXNlIG5h
bWVzOiIpOworICAgICAgICB2YXIgZnJhbWUgPSBpbmRleGVkREJNb2RlbC5fZnJhbWVzW21haW5G
cmFtZUlkXTsKKyAgICAgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICB2YXIgc2VjdXJpdHlPcmlnaW4gPSBmcmFtZS5zZWN1cml0eU9yaWdpbjsKKyAgICAgICAg
dmFyIG5hbWVzID0gaW5kZXhlZERCTW9kZWwuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5T3JpZ2lu
W3NlY3VyaXR5T3JpZ2luXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5n
dGg7ICsraSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIG5h
bWVzW2ldKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOworICAgIH0KKwor
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCRGlzcGF0
Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZU5hbWVzTG9hZGVkIiwgc3RlcDIsIGZhbHNlKTsKKwor
ICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAgICB7CisgICAgICAgIGR1bXBEYXRhYmFzZU5hbWVzKCk7
CisgICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlRGF0YWJhc2UobWFpbkZyYW1lSWQsICJ0ZXN0
RGF0YWJhc2UxIiwgc3RlcDMpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERC
RGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZU5hbWVzTG9hZGVkIiwgc3RlcDQsIGZhbHNl
KTsKKyAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlTmFtZXMoKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwNCgpCisgICAgeworICAgICAgICBkdW1wRGF0YWJhc2VOYW1l
cygpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZURhdGFiYXNlKG1haW5GcmFtZUlkLCAi
dGVzdERhdGFiYXNlMiIsIHN0ZXA1KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNSgpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4
ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1lc0xvYWRlZCIsIHN0ZXA2LCBm
YWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFzZU5hbWVzKCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDYoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNl
TmFtZXMoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kZWxldGVEYXRhYmFzZShtYWluRnJhbWVJ
ZCwgInRlc3REYXRhYmFzZTIiLCBzdGVwNyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDco
KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5J
bmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNlTmFtZXNMb2FkZWQiLCBzdGVw
OCwgZmFsc2UpOworICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2VOYW1lcygp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA4KCkKKyAgICB7CisgICAgICAgIGR1bXBEYXRh
YmFzZU5hbWVzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZGVsZXRlRGF0YWJhc2UobWFpbkZy
YW1lSWQsICJ0ZXN0RGF0YWJhc2UxIiwgc3RlcDkpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXA5KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZU5hbWVzTG9hZGVkIiwg
c3RlcDEwLCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFzZU5h
bWVzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEwKCkKKyAgICB7CisgICAgICAgIGR1
bXBEYXRhYmFzZU5hbWVzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8cD5UZXN0cyB0aGF0IGRhdGFiYXNlIG5hbWVzIGFyZSBjb3JyZWN0bHkgbG9hZGVkIGFuZCBz
YXZlZCBpbiBJbmRleGVkREJNb2RlbC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3Ry
dWN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
ZGV4ZWRkYi9kYXRhYmFzZS1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MjIx
MjQyYzJiMDEwZDJkODJiMzJjNzY1MjU0YTVlZGJjZjJlNmMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0
dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExMSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDc1OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazEKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSA3NTogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2syCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgNzU6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMworQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDc1OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazQKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA3NTogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s1CitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNzU6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNr
NgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxs
YmFjazcKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJf
Y2FsbGJhY2s4CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzU6IEluc3BlY3RvclRlc3QuSW5kZXhl
ZERCX2NhbGxiYWNrOQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1OiBJbnNwZWN0b3JUZXN0Lklu
ZGV4ZWREQl9jYWxsYmFjazEwCitUZXN0cyB0aGF0IGRhdGFiYXNlIG5hbWVzIGFyZSBjb3JyZWN0
bHkgbG9hZGVkIGFuZCBzYXZlZCBpbiBJbmRleGVkREJNb2RlbC4KKworRHVtcGluZyBkYXRhYmFz
ZToKK0R1bXBpbmcgZGF0YWJhc2U6Cit0ZXN0RGF0YWJhc2UxCisgICAgdmVyc2lvbjogCisgICAg
b2JqZWN0U3RvcmVzOgorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNlMQorICAgIHZl
cnNpb246IDEKKyAgICBvYmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0b3JlMQorICAgICAg
ICBrZXlQYXRoOiB0ZXN0LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAorCitEdW1waW5nIGRh
dGFiYXNlOgordGVzdERhdGFiYXNlMQorICAgIHZlcnNpb246IDIKKyAgICBvYmplY3RTdG9yZXM6
CisgICAgdGVzdE9iamVjdFN0b3JlMQorICAgICAgICBrZXlQYXRoOiB0ZXN0LmtleS5wYXRoCisg
ICAgICAgIGluZGV4ZXM6IAorICAgIHRlc3RPYmplY3RTdG9yZTIKKyAgICAgICAga2V5UGF0aDog
CisgICAgICAgIGluZGV4ZXM6IAorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNlMQor
ICAgIHZlcnNpb246IDMKKyAgICBvYmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0b3JlMQor
ICAgICAgICBrZXlQYXRoOiB0ZXN0LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAorICAgIHRl
c3RPYmplY3RTdG9yZTIKKyAgICAgICAga2V5UGF0aDogCisgICAgICAgIGluZGV4ZXM6IAorICAg
ICAgICB0ZXN0SW5kZXhOYW1lMQorICAgICAgICAgICAga2V5UGF0aDoga2V5LnBhdGgxCisgICAg
ICAgICAgICB1bmlxdWU6IGZhbHNlCisgICAgICAgICAgICBtdWx0aUVudHJ5OiB0cnVlCisKK0R1
bXBpbmcgZGF0YWJhc2U6Cit0ZXN0RGF0YWJhc2UxCisgICAgdmVyc2lvbjogNAorICAgIG9iamVj
dFN0b3JlczoKKyAgICB0ZXN0T2JqZWN0U3RvcmUxCisgICAgICAgIGtleVBhdGg6IHRlc3Qua2V5
LnBhdGgKKyAgICAgICAgaW5kZXhlczogCisgICAgdGVzdE9iamVjdFN0b3JlMgorICAgICAgICBr
ZXlQYXRoOiAKKyAgICAgICAgaW5kZXhlczogCisgICAgICAgIHRlc3RJbmRleE5hbWUxCisgICAg
ICAgICAgICBrZXlQYXRoOiBrZXkucGF0aDEKKyAgICAgICAgICAgIHVuaXF1ZTogZmFsc2UKKyAg
ICAgICAgICAgIG11bHRpRW50cnk6IHRydWUKKyAgICAgICAgdGVzdEluZGV4TmFtZTIKKyAgICAg
ICAgICAgIGtleVBhdGg6IGtleS5wYXRoMgorICAgICAgICAgICAgdW5pcXVlOiB0cnVlCisgICAg
ICAgICAgICBtdWx0aUVudHJ5OiBmYWxzZQorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFi
YXNlMQorICAgIHZlcnNpb246IDUKKyAgICBvYmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0
b3JlMQorICAgICAgICBrZXlQYXRoOiB0ZXN0LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAor
ICAgIHRlc3RPYmplY3RTdG9yZTIKKyAgICAgICAga2V5UGF0aDogCisgICAgICAgIGluZGV4ZXM6
IAorICAgICAgICB0ZXN0SW5kZXhOYW1lMQorICAgICAgICAgICAga2V5UGF0aDoga2V5LnBhdGgx
CisgICAgICAgICAgICB1bmlxdWU6IGZhbHNlCisgICAgICAgICAgICBtdWx0aUVudHJ5OiB0cnVl
CisKK0R1bXBpbmcgZGF0YWJhc2U6Cit0ZXN0RGF0YWJhc2UxCisgICAgdmVyc2lvbjogNgorICAg
IG9iamVjdFN0b3JlczoKKyAgICB0ZXN0T2JqZWN0U3RvcmUxCisgICAgICAgIGtleVBhdGg6IHRl
c3Qua2V5LnBhdGgKKyAgICAgICAgaW5kZXhlczogCisgICAgdGVzdE9iamVjdFN0b3JlMgorICAg
ICAgICBrZXlQYXRoOiAKKyAgICAgICAgaW5kZXhlczogCisKK0R1bXBpbmcgZGF0YWJhc2U6Cit0
ZXN0RGF0YWJhc2UxCisgICAgdmVyc2lvbjogNworICAgIG9iamVjdFN0b3JlczoKKyAgICB0ZXN0
T2JqZWN0U3RvcmUxCisgICAgICAgIGtleVBhdGg6IHRlc3Qua2V5LnBhdGgKKyAgICAgICAgaW5k
ZXhlczogCisKK0R1bXBpbmcgZGF0YWJhc2U6Cit0ZXN0RGF0YWJhc2UxCisgICAgdmVyc2lvbjog
OAorICAgIG9iamVjdFN0b3JlczoKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2RhNTg4YTUxOGVkMmQzY2FlNTdiMzFhOWM5Yjk5MzY0OTRjMjQ1Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4
ZWRkYi9kYXRhYmFzZS1zdHJ1Y3R1cmUuaHRtbApAQCAtMCwwICsxLDE4OSBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iaW5kZXhlZGRiLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIHZhciBpbmRleGVkREJNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuSW5k
ZXhlZERCTW9kZWwoKTsKKyAgICB2YXIgbWFpbkZyYW1lSWQgPSBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUcmVlTW9kZWwubWFpbkZyYW1lLmlkOworICAgIHZhciBkYXRhYmFzZU5hbWUgPSAidGVzdERh
dGFiYXNlMSI7CisKKyAgICBmdW5jdGlvbiBkdW1wRGF0YWJhc2UoKQorICAgIHsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgZGF0YWJhc2U6Iik7CisgICAgICAgIHZh
ciBmcmFtZSA9IGluZGV4ZWREQk1vZGVsLl9mcmFtZXNbbWFpbkZyYW1lSWRdOworICAgICAgICBp
ZiAoIWZyYW1lKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgZGF0YWJhc2UgPSBm
cmFtZS5kYXRhYmFzZXNbZGF0YWJhc2VOYW1lXTsKKyAgICAgICAgaWYgKCFkYXRhYmFzZSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoZGF0YWJh
c2UubmFtZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgdmVyc2lvbjog
IiArIGRhdGFiYXNlLnZlcnNpb24pOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
ICAgIG9iamVjdFN0b3JlczoiKTsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlTmFtZXMgPSBbXTsK
KyAgICAgICAgZm9yICh2YXIgb2JqZWN0U3RvcmVOYW1lIGluIGRhdGFiYXNlLm9iamVjdFN0b3Jl
cykKKyAgICAgICAgICAgIG9iamVjdFN0b3JlTmFtZXMucHVzaChvYmplY3RTdG9yZU5hbWUpOwor
ICAgICAgICBvYmplY3RTdG9yZU5hbWVzLnNvcnQoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBvYmplY3RTdG9yZU5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgb2Jq
ZWN0U3RvcmUgPSBkYXRhYmFzZS5vYmplY3RTdG9yZXNbb2JqZWN0U3RvcmVOYW1lc1tpXV07Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyBvYmplY3RTdG9yZS5u
YW1lKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgICAgIGtleVBh
dGg6ICIgKyBvYmplY3RTdG9yZS5rZXlQYXRoKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCIgICAgICAgIGluZGV4ZXM6ICIpOworICAgICAgICAgICAgdmFyIGluZGV4TmFt
ZXMgPSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGluZGV4TmFtZSBpbiBvYmplY3RTdG9yZS5p
bmRleGVzKQorICAgICAgICAgICAgICAgIGluZGV4TmFtZXMucHVzaChpbmRleE5hbWUpOworICAg
ICAgICAgICAgaW5kZXhOYW1lcy5zb3J0KCk7CisgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsg
aiA8IGluZGV4TmFtZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICB2YXIgaW5kZXgg
PSBvYmplY3RTdG9yZS5pbmRleGVzW2luZGV4TmFtZXNbal1dOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgICAgICIgKyBpbmRleC5uYW1lKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAgICAga2V5UGF0aDogIiAr
IGluZGV4LmtleVBhdGgpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCIgICAgICAgICAgICB1bmlxdWU6ICIgKyBpbmRleC51bmlxdWUpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgICAgICAgICBtdWx0aUVudHJ5OiAiICsgaW5k
ZXgubXVsdGlFbnRyeSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiIpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFz
ZU5hbWVzTG9hZGVkIiwgc3RlcDIsIGZhbHNlKTsKKworICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlRGF0YWJhc2UobWFpbkZyYW1lSWQsIGRh
dGFiYXNlTmFtZSwgc3RlcDMpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERC
RGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZU5hbWVzTG9hZGVkIiwgc3RlcDQsIGZhbHNl
KTsKKyAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlTmFtZXMoKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwNCgpCisgICAgeworICAgICAgICBkdW1wRGF0YWJhc2UoKTsK
KworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWRE
QkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VMb2FkZWQiLCBzdGVwNSwgZmFsc2UpOwor
ICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2UobWFpbkZyYW1lSWQsIGRhdGFi
YXNlTmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDUoKQorICAgIHsKKyAgICAgICAg
ZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVPYmplY3RTdG9y
ZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lLCAidGVzdE9iamVjdFN0b3JlMSIsICJ0ZXN0Lmtl
eS5wYXRoIiwgdHJ1ZSwgc3RlcDYpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA2KCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhl
ZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZUxvYWRlZCIsIHN0ZXA3LCBmYWxzZSk7
CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFzZShtYWluRnJhbWVJZCwgZGF0
YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwNygpCisgICAgeworICAgICAg
ICBkdW1wRGF0YWJhc2UoKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZU9iamVjdFN0
b3JlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsICJ0ZXN0T2JqZWN0U3RvcmUyIiwgIiIsIGZh
bHNlLCBzdGVwOCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDgoKQorICAgIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRj
aGVyLnByb3RvdHlwZSwgImRhdGFiYXNlTG9hZGVkIiwgc3RlcDksIGZhbHNlKTsKKyAgICAgICAg
aW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA5KCkKKyAgICB7CisgICAgICAgIGR1bXBEYXRh
YmFzZSgpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3RvcmVJbmRleCht
YWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lLCAidGVzdE9iamVjdFN0b3JlMiIsICJ0ZXN0SW5kZXhO
YW1lMSIsICJrZXkucGF0aDEiLCBmYWxzZSwgdHJ1ZSwgc3RlcDEwKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMTAoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNlTG9h
ZGVkIiwgc3RlcDExLCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRh
YmFzZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBz
dGVwMTEoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5jcmVhdGVPYmplY3RTdG9yZUluZGV4KG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUs
ICJ0ZXN0T2JqZWN0U3RvcmUyIiwgInRlc3RJbmRleE5hbWUyIiwgImtleS5wYXRoMiIsIHRydWUs
IGZhbHNlLCBzdGVwMTIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAxMigpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRp
c3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VMb2FkZWQiLCBzdGVwMTMsIGZhbHNlKTsKKyAg
ICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFz
ZU5hbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAxMygpCisgICAgeworICAgICAgICBk
dW1wRGF0YWJhc2UoKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmRlbGV0ZU9iamVjdFN0b3Jl
SW5kZXgobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgInRlc3RPYmplY3RTdG9yZTIiLCAidGVz
dEluZGV4TmFtZTIiLCBzdGVwMTQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAxNCgpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4
ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VMb2FkZWQiLCBzdGVwMTUsIGZhbHNl
KTsKKyAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKG1haW5GcmFtZUlkLCBk
YXRhYmFzZU5hbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAxNSgpCisgICAgeworICAg
ICAgICBkdW1wRGF0YWJhc2UoKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmRlbGV0ZU9iamVj
dFN0b3JlSW5kZXgobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgInRlc3RPYmplY3RTdG9yZTIi
LCAidGVzdEluZGV4TmFtZTEiLCBzdGVwMTYpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAx
NigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9y
LkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VMb2FkZWQiLCBzdGVwMTcs
IGZhbHNlKTsKKyAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKG1haW5GcmFt
ZUlkLCBkYXRhYmFzZU5hbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAxNygpCisgICAg
eworICAgICAgICBkdW1wRGF0YWJhc2UoKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmRlbGV0
ZU9iamVjdFN0b3JlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsICJ0ZXN0T2JqZWN0U3RvcmUy
Iiwgc3RlcDE4KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMTgoKQorICAgIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRj
aGVyLnByb3RvdHlwZSwgImRhdGFiYXNlTG9hZGVkIiwgc3RlcDE5LCBmYWxzZSk7CisgICAgICAg
IGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFzZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1l
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMTkoKQorICAgIHsKKyAgICAgICAgZHVtcERh
dGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kZWxldGVPYmplY3RTdG9yZShtYWlu
RnJhbWVJZCwgZGF0YWJhc2VOYW1lLCAidGVzdE9iamVjdFN0b3JlMSIsIHN0ZXAyMCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gc3RlcDIwKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJk
YXRhYmFzZUxvYWRlZCIsIHN0ZXAyMSwgZmFsc2UpOworICAgICAgICBpbmRleGVkREJNb2RlbC5y
ZWZyZXNoRGF0YWJhc2UobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc3RlcDIxKCkKKyAgICB7CisgICAgICAgIGR1bXBEYXRhYmFzZSgpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmRlbGV0ZURhdGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUs
IHN0ZXAyMik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDIyKCkKKyAgICB7CisgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyB0aGF0IGRhdGFiYXNlIG5h
bWVzIGFyZSBjb3JyZWN0bHkgbG9hZGVkIGFuZCBzYXZlZCBpbiBJbmRleGVkREJNb2RlbC48L3A+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbmRleGVkZGIvaW5kZXhlZGRiLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbmRleGVkZGIvaW5kZXhlZGRiLXRlc3QuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI4
NWEwZTdlMTkwNjQ3ZWYxNmYzZTE4Zjc5ZjFjZmNkNzM4MWFiZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9pbmRleGVkZGItdGVz
dC5qcwpAQCAtMCwwICsxLDE4MCBAQAordmFyIGluaXRpYWxpemVfSW5kZXhlZERCVGVzdCA9IGZ1
bmN0aW9uKCkgeworCit2YXIgc25pZmZlckluc3RhbGxlZCA9IGZhbHNlOwordmFyIGxhc3RDYWxs
YmFja0lkID0gMDsKK3ZhciBjYWxsYmFja3MgPSB7fTsKK3ZhciBjYWxsYmFja0lkUHJlZml4ID0g
Ikluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrIjsKK0luc3BlY3RvclRlc3QuZXZhbHVh
dGVXaXRoQ2FsbGJhY2sgPSBmdW5jdGlvbihmcmFtZUlkLCBtZXRob2ROYW1lLCBwYXJhbWV0ZXJz
LCBjYWxsYmFjaykKK3sKKyAgICBpZiAoIXNuaWZmZXJJbnN0YWxsZWQpCisgICAgICAgIEluc3Bl
Y3RvclRlc3QuX2luc3RhbGxJbmRleGVkREJTbmlmZmVyKCk7CisgICAgdmFyIGNhbGxiYWNrSWQg
PSArK2xhc3RDYWxsYmFja0lkOworICAgIGNhbGxiYWNrc1tjYWxsYmFja0lkXSA9IGNhbGxiYWNr
OworICAgIHZhciBwYXJhbWV0ZXJzU3RyaW5nID0gIlwiIiArIGNhbGxiYWNrSWRQcmVmaXggKyBj
YWxsYmFja0lkICsgIlwiIjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtZXRlcnMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHR5cGVvZihwYXJhbWV0ZXJzW2ldKSA9PT0gInN0cmlu
ZyIpCisgICAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nICs9ICIsIFwiIiArIHBhcmFtZXRlcnNb
aV0gKyAiXCIiOworICAgICAgICBlbHNlIGlmICgodHlwZW9mKHBhcmFtZXRlcnNbaV0pID09PSAi
bnVtYmVyIikgfHwgKHR5cGVvZihwYXJhbWV0ZXJzW2ldKSA9PT0gImJvb2xlYW4iKSkKKyAgICAg
ICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgKz0gIiwgIiArIHBhcmFtZXRlcnNbaV07CisgICAgfQor
CisgICAgdmFyIHJlcXVlc3RTdHJpbmcgPSBtZXRob2ROYW1lICsgIigiICsgcGFyYW1ldGVyc1N0
cmluZyArICIpIjsKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKHJlcXVlc3RTdHJp
bmcpOworfTsKKworSW5zcGVjdG9yVGVzdC5faW5zdGFsbEluZGV4ZWREQlNuaWZmZXIgPSBmdW5j
dGlvbigpCit7CisgICAgc25pZmZlckluc3RhbGxlZCA9IHRydWU7CisgICAgSW5zcGVjdG9yVGVz
dC5hZGRDb25zb2xlU25pZmZlcihjb25zb2xlTWVzc2FnZU92ZXJyaWRlLCB0cnVlKTsKKworICAg
IGZ1bmN0aW9uIGNvbnNvbGVNZXNzYWdlT3ZlcnJpZGUobXNnKQorICAgIHsKKyAgICAgICAgdmFy
IHRleHQgPSBtc2cuX21lc3NhZ2VUZXh0OworICAgICAgICBpZiAodGV4dC5pbmRleE9mKGNhbGxi
YWNrSWRQcmVmaXgpICE9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgY2Fs
bGJhY2tJZCA9IHRleHQuc3Vic3RyaW5nKGNhbGxiYWNrSWRQcmVmaXgubGVuZ3RoKTsKKyAgICAg
ICAgY2FsbGJhY2tzW2NhbGxiYWNrSWRdLmNhbGwoKTsKKyAgICAgICAgZGVsZXRlIGNhbGxiYWNr
c1tjYWxsYmFja0lkXTsKKyAgICB9Cit9OworCitJbnNwZWN0b3JUZXN0LmNyZWF0ZURhdGFiYXNl
ID0gZnVuY3Rpb24oZnJhbWVJZCwgZGF0YWJhc2VOYW1lLCBjYWxsYmFjaykKK3sKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrKGZyYW1lSWQsICJjcmVhdGVEYXRhYmFzZSIs
IFtkYXRhYmFzZU5hbWVdLCBjYWxsYmFjaykKK307CisKK0luc3BlY3RvclRlc3QuZGVsZXRlRGF0
YWJhc2UgPSBmdW5jdGlvbihmcmFtZUlkLCBkYXRhYmFzZU5hbWUsIGNhbGxiYWNrKQoreworICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVXaXRoQ2FsbGJhY2soZnJhbWVJZCwgImRlbGV0ZURhdGFi
YXNlIiwgW2RhdGFiYXNlTmFtZV0sIGNhbGxiYWNrKQorfTsKKworSW5zcGVjdG9yVGVzdC5jcmVh
dGVPYmplY3RTdG9yZSA9IGZ1bmN0aW9uKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3Rv
cmVOYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCBjYWxsYmFjaykKK3sKKyAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrKGZyYW1lSWQsICJjcmVhdGVPYmplY3RTdG9yZSIs
IFtkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudF0s
IGNhbGxiYWNrKQorfTsKKworSW5zcGVjdG9yVGVzdC5kZWxldGVPYmplY3RTdG9yZSA9IGZ1bmN0
aW9uKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBjYWxsYmFjaykKK3sK
KyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrKGZyYW1lSWQsICJkZWxldGVP
YmplY3RTdG9yZSIsIFtkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZV0sIGNhbGxiYWNrKQor
fTsKKworSW5zcGVjdG9yVGVzdC5jcmVhdGVPYmplY3RTdG9yZUluZGV4ID0gZnVuY3Rpb24oZnJh
bWVJZCwgZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIG9iamVjdFN0b3JlSW5kZXhOYW1l
LCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnksIGNhbGxiYWNrKQoreworICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVXaXRoQ2FsbGJhY2soZnJhbWVJZCwgImNyZWF0ZU9iamVjdFN0b3JlSW5k
ZXgiLCBbZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIG9iamVjdFN0b3JlSW5kZXhOYW1l
LCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnldLCBjYWxsYmFjaykKK307CisKK0luc3BlY3Rv
clRlc3QuZGVsZXRlT2JqZWN0U3RvcmVJbmRleCA9IGZ1bmN0aW9uKGZyYW1lSWQsIGRhdGFiYXNl
TmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBvYmplY3RTdG9yZUluZGV4TmFtZSwgY2FsbGJhY2spCit7
CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayhmcmFtZUlkLCAiZGVsZXRl
T2JqZWN0U3RvcmVJbmRleCIsIFtkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgb2JqZWN0
U3RvcmVJbmRleE5hbWVdLCBjYWxsYmFjaykKK307CisKK307CisKK3ZhciBpbmRleGVkREIgPSB3
aW5kb3cuaW5kZXhlZGRiIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREI7CisKK2Z1bmN0aW9uIGRp
c3BhdGNoQ2FsbGJhY2soY2FsbGJhY2tJZCkKK3sKKyAgICBjb25zb2xlLmxvZyhjYWxsYmFja0lk
KTsKK30KKworZnVuY3Rpb24gb25JbmRleGVkREJFcnJvcihlKQoreworICAgIGNvbnNvbGUubG9n
KGUpOworfQorCitmdW5jdGlvbiBkb1dpdGhEYXRhYmFzZShkYXRhYmFzZU5hbWUsIGNhbGxiYWNr
KQoreworICAgIGZ1bmN0aW9uIGlubmVyQ2FsbGJhY2soKQorICAgIHsKKyAgICAgICAgdmFyIGRi
ID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgICAgIGNhbGxiYWNrKGRiKTsKKyAgICB9CisKKyAgICB2
YXIgcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRhdGFiYXNlTmFtZSk7CisgICAgcmVxdWVzdC5v
bmJsb2NrZWQgPSBvbkluZGV4ZWREQkVycm9yOworICAgIHJlcXVlc3Qub25lcnJvciA9IG9uSW5k
ZXhlZERCRXJyb3I7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBpbm5lckNhbGxiYWNrOworfQor
CitmdW5jdGlvbiBkb1dpdGhWZXJzaW9uVHJhbnNhY3Rpb24oZGF0YWJhc2VOYW1lLCBjYWxsYmFj
aywgY29tbWl0Q2FsbGJhY2spCit7CisgICAgZG9XaXRoRGF0YWJhc2UoZGF0YWJhc2VOYW1lLCBz
dGVwMik7CisKKyAgICBmdW5jdGlvbiBzdGVwMihkYikKKyAgICB7CisgICAgICAgIHZhciByZXF1
ZXN0ID0gZGIuc2V0VmVyc2lvbihOdW1iZXIoZGIudmVyc2lvbikgKyAxKTsKKyAgICAgICAgcmVx
dWVzdC5vbmJsb2NrZWQgPSBvbkluZGV4ZWREQkVycm9yOworICAgICAgICByZXF1ZXN0Lm9uZXJy
b3IgPSBvbkluZGV4ZWREQkVycm9yOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHN0ZXAz
OworCisgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICAgICAgeworICAgICAgICAgICAgY2Fs
bGJhY2soZGIsIHJlcXVlc3QucmVzdWx0KTsKKyAgICAgICAgICAgIGRiLmNsb3NlKCk7CisgICAg
ICAgICAgICBjb21taXRDYWxsYmFjaygpOworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlv
biBjcmVhdGVEYXRhYmFzZShjYWxsYmFja0lkLCBkYXRhYmFzZU5hbWUpCit7CisgICAgdmFyIHJl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYXRhYmFzZU5hbWUsIDApOworICAgIHJlcXVlc3Qub25l
cnJvciA9IG9uSW5kZXhlZERCRXJyb3I7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbG9zZURh
dGFiYXNlOworCisgICAgZnVuY3Rpb24gY2xvc2VEYXRhYmFzZSgpCisgICAgeworICAgICAgICBy
ZXF1ZXN0LnJlc3VsdC5jbG9zZSgpOworICAgICAgICBkaXNwYXRjaENhbGxiYWNrKGNhbGxiYWNr
SWQpOworICAgIH0KK30KKworZnVuY3Rpb24gZGVsZXRlRGF0YWJhc2UoY2FsbGJhY2tJZCwgZGF0
YWJhc2VOYW1lKQoreworICAgIHZhciByZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRhdGFiYXNlTmFtZSk7CisgICAgcmVxdWVzdC5vbmVycm9yID0gb25JbmRleGVkREJFcnJvcjsK
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRpc3BhdGNoQ2FsbGJhY2suYmluZCh0aGlzLCBjYWxs
YmFja0lkKTsKK30KKworZnVuY3Rpb24gY3JlYXRlT2JqZWN0U3RvcmUoY2FsbGJhY2tJZCwgZGF0
YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQpCit7Cisg
ICAgZG9XaXRoVmVyc2lvblRyYW5zYWN0aW9uKGRhdGFiYXNlTmFtZSwgd2l0aFRyYW5zYWN0aW9u
Q2FsbGJhY2ssIGRpc3BhdGNoQ2FsbGJhY2suYmluZCh0aGlzLCBjYWxsYmFja0lkKSk7CisKKyAg
ICBmdW5jdGlvbiB3aXRoVHJhbnNhY3Rpb25DYWxsYmFjayhkYiwgdHJhbnNhY3Rpb24pCisgICAg
eworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvYmplY3RTdG9yZU5h
bWUsIHsga2V5UGF0aDoga2V5UGF0aCwgYXV0b0luY3JlbWVudDogYXV0b0luY3JlbWVudCB9KTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZU9iamVjdFN0b3JlKGNhbGxiYWNrSWQsIGRhdGFi
YXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lKQoreworICAgIGRvV2l0aFZlcnNpb25UcmFuc2FjdGlv
bihkYXRhYmFzZU5hbWUsIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrLCBkaXNwYXRjaENhbGxiYWNr
LmJpbmQodGhpcywgY2FsbGJhY2tJZCkpOworCisgICAgZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9u
Q2FsbGJhY2soZGIsIHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIu
ZGVsZXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IGNyZWF0ZU9iamVjdFN0b3JlSW5kZXgoY2FsbGJhY2tJZCwgZGF0YWJhc2VOYW1lLCBvYmplY3RT
dG9yZU5hbWUsIG9iamVjdFN0b3JlSW5kZXhOYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50
cnkpCit7CisgICAgZG9XaXRoVmVyc2lvblRyYW5zYWN0aW9uKGRhdGFiYXNlTmFtZSwgd2l0aFRy
YW5zYWN0aW9uQ2FsbGJhY2ssIGRpc3BhdGNoQ2FsbGJhY2suYmluZCh0aGlzLCBjYWxsYmFja0lk
KSk7CisKKyAgICBmdW5jdGlvbiB3aXRoVHJhbnNhY3Rpb25DYWxsYmFjayhkYiwgdHJhbnNhY3Rp
b24pCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZShvYmplY3RTdG9yZU5hbWUpOworICAgICAgICBvYmplY3RTdG9yZS5jcmVhdGVJbmRleChv
YmplY3RTdG9yZUluZGV4TmFtZSwga2V5UGF0aCwgeyB1bmlxdWU6IHVuaXF1ZSwgbXVsdGlFbnRy
eTogbXVsdGlFbnRyeSB9KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZU9iamVjdFN0b3Jl
SW5kZXgoY2FsbGJhY2tJZCwgZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIG9iamVjdFN0
b3JlSW5kZXhOYW1lKQoreworICAgIGRvV2l0aFZlcnNpb25UcmFuc2FjdGlvbihkYXRhYmFzZU5h
bWUsIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrLCBkaXNwYXRjaENhbGxiYWNrLmJpbmQodGhpcywg
Y2FsbGJhY2tJZCkpOworCisgICAgZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9uQ2FsbGJhY2soZGIs
IHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuZGVs
ZXRlSW5kZXgob2JqZWN0U3RvcmVJbmRleE5hbWUpOworICAgIH0KK30KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124736</attachid>
            <date>2012-01-31 08:11:46 -0800</date>
            <delta_ts>2012-01-31 09:08:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77439-20120131201144.patch</filename>
            <type>text/plain</type>
            <size>23721</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTgxNjc2NjFhNTU1NTBm
NDE0ZjhjMzUwZWUwNWMzZGQ5NDMwN2MwZC4uNDNlZGI0YzU4ZWEwZGE5NDdjMjMxZDE4NWVmODA0
YjZmNjU3MzkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTMxICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtJbnNwZWN0b3JJbmRleGVkREJdIEFkZCB0ZXN0cyBmb3IgZGF0YWJhc2UgbmFtZXMgYW5k
IGRhdGFiYXNlIHN0cnVjdHVyZSByZXF1ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRk
Yi9kYXRhYmFzZS1uYW1lcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvSW5kZXhlZERCTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5k
ZXhlZERCTW9kZWwucHJvdG90eXBlLnJlZnJlc2hEYXRhYmFzZSk6CisKIDIwMTItMDEtMzEgIFBl
dGVyIFJ5YmluICA8cGV0ZXIucnliaW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHk6IHJlaW1wbGVtZW50IGdlbmVyYXRlZCBhcnJh
eSB0eXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9J
bmRleGVkREJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5k
ZXhlZERCTW9kZWwuanMKaW5kZXggNGJmZTk2YjgyNjUyZjI1MWRkZjIzNDIyYjg3ZDc0YjQ1ZTZi
MGI1Yy4uNzU3MTZkMmQxNjczNjA2ZjYzZDNiY2M5ZmM3YTU2N2FkZGM3MThjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmRleGVkREJNb2RlbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luZGV4ZWREQk1vZGVsLmpz
CkBAIC01Myw2ICs1MywxMSBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9mcmFtZXNOYXZpZ2F0ZWRSZWN1cnNpdmVseShXZWJJbnNwZWN0
b3IucmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKICAgICB9LAogICAgIAorICAgIHJlZnJl
c2hEYXRhYmFzZTogZnVuY3Rpb24oZnJhbWVJZCwgZGF0YWJhc2VOYW1lKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fbG9hZERhdGFiYXNlKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7CisgICAgfSwKKyAg
ICAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFt
ZX0gcmVzb3VyY2VUcmVlRnJhbWUKICAgICAgKi8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyZDIzNzcwYTMzZDAwNGU3MGQx
YWE5YTZmNWQyM2Y2Y2FiZjNiNzM1Li4zM2YzNTg2ZTE1NzZkYmRmMjVkYWI4N2VhYWU2MmVhNzJh
ODI4N2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTItMDEtMzEgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0luc3Bl
Y3RvckluZGV4ZWREQl0gQWRkIHRlc3RzIGZvciBkYXRhYmFzZSBuYW1lcyBhbmQgZGF0YWJhc2Ug
c3RydWN0dXJlIHJlcXVlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzc0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1l
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
ZGV4ZWRkYi9kYXRhYmFzZS1uYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLXN0
cnVjdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRl
eGVkZGIvaW5kZXhlZGRiLXRlc3QuanM6IEFkZGVkLgorICAgICAgICAoaW5pdGlhbGl6ZV9JbmRl
eGVkREJUZXN0Lkluc3BlY3RvclRlc3QuZXZhbHVhdGVXaXRoQ2FsbGJhY2spOgorICAgICAgICAo
aW5pdGlhbGl6ZV9JbmRleGVkREJUZXN0Lkluc3BlY3RvclRlc3QuX2luc3RhbGxJbmRleGVkREJT
bmlmZmVyLmNvbnNvbGVNZXNzYWdlT3ZlcnJpZGUpOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbmRl
eGVkREJUZXN0Lkluc3BlY3RvclRlc3QuX2luc3RhbGxJbmRleGVkREJTbmlmZmVyKToKKyAgICAg
ICAgKGluaXRpYWxpemVfSW5kZXhlZERCVGVzdC5JbnNwZWN0b3JUZXN0LmNyZWF0ZURhdGFiYXNl
KToKKyAgICAgICAgKGluaXRpYWxpemVfSW5kZXhlZERCVGVzdC5JbnNwZWN0b3JUZXN0LmRlbGV0
ZURhdGFiYXNlKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5kZXhlZERCVGVzdC5JbnNwZWN0b3JU
ZXN0LmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5kZXhlZERCVGVz
dC5JbnNwZWN0b3JUZXN0LmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKGluaXRpYWxpemVf
SW5kZXhlZERCVGVzdC5JbnNwZWN0b3JUZXN0LmNyZWF0ZU9iamVjdFN0b3JlSW5kZXgpOgorICAg
ICAgICAoaW5pdGlhbGl6ZV9JbmRleGVkREJUZXN0Lkluc3BlY3RvclRlc3QuZGVsZXRlT2JqZWN0
U3RvcmVJbmRleCk6CisgICAgICAgIChpbml0aWFsaXplX0luZGV4ZWREQlRlc3QpOgorICAgICAg
ICAoZGlzcGF0Y2hDYWxsYmFjayk6CisgICAgICAgIChvbkluZGV4ZWREQkVycm9yKToKKyAgICAg
ICAgKGRvV2l0aERhdGFiYXNlLmlubmVyQ2FsbGJhY2spOgorICAgICAgICAoZG9XaXRoRGF0YWJh
c2UpOgorICAgICAgICAoZG9XaXRoVmVyc2lvblRyYW5zYWN0aW9uLnN0ZXAyLnN0ZXAzKToKKyAg
ICAgICAgKGRvV2l0aFZlcnNpb25UcmFuc2FjdGlvbi5zdGVwMik6CisgICAgICAgIChkb1dpdGhW
ZXJzaW9uVHJhbnNhY3Rpb24pOgorICAgICAgICAoY3JlYXRlRGF0YWJhc2UuY2xvc2VEYXRhYmFz
ZSk6CisgICAgICAgIChjcmVhdGVEYXRhYmFzZSk6CisgICAgICAgIChkZWxldGVEYXRhYmFzZSk6
CisgICAgICAgIChjcmVhdGVPYmplY3RTdG9yZS53aXRoVHJhbnNhY3Rpb25DYWxsYmFjayk6Cisg
ICAgICAgIChjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChkZWxldGVPYmplY3RTdG9yZS53
aXRoVHJhbnNhY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChjcmVhdGVPYmplY3RTdG9yZUluZGV4
LndpdGhUcmFuc2FjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKGNyZWF0ZU9iamVjdFN0b3JlSW5k
ZXgpOgorICAgICAgICAoZGVsZXRlT2JqZWN0U3RvcmVJbmRleC53aXRoVHJhbnNhY3Rpb25DYWxs
YmFjayk6CisKIDIwMTItMDEtMzEgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9uIGNoYW5nZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9k
YXRhYmFzZS1uYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgw
ZTY1NjIxMWEyZWUzZjk0ZjVkNTM4N2M0YWVlNGRhNjY2ODc0NzAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFt
ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3
NTogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2sxCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNzU6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDc1OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazMKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA3NTogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s0CitUZXN0cyB0
aGF0IGRhdGFiYXNlIG5hbWVzIGFyZSBjb3JyZWN0bHkgbG9hZGVkIGFuZCBzYXZlZCBpbiBJbmRl
eGVkREJNb2RlbC4KKworRHVtcGluZyBkYXRhYmFzZSBuYW1lczoKK0R1bXBpbmcgZGF0YWJhc2Ug
bmFtZXM6CisgICAgdGVzdERhdGFiYXNlMQorCitEdW1waW5nIGRhdGFiYXNlIG5hbWVzOgorICAg
IHRlc3REYXRhYmFzZTEKKyAgICB0ZXN0RGF0YWJhc2UyCisKK0R1bXBpbmcgZGF0YWJhc2UgbmFt
ZXM6CisgICAgdGVzdERhdGFiYXNlMQorCitEdW1waW5nIGRhdGFiYXNlIG5hbWVzOgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJh
c2UtbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRk
Yi9kYXRhYmFzZS1uYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNmQyYWY2NDQxZDMwYTc2ZTkwYjE0
MWZhNTE3YWY4NzBlM2EzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZXMuaHRtbApAQCAtMCwwICsxLDg2
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJpbmRleGVkZGItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGluZGV4ZWREQk1vZGVsID0gbmV3IFdl
Ykluc3BlY3Rvci5JbmRleGVkREJNb2RlbCgpOworICAgIHZhciBtYWluRnJhbWVJZCA9IFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUuaWQ7CisKKyAgICBmdW5jdGlvbiBk
dW1wRGF0YWJhc2VOYW1lcygpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRHVtcGluZyBkYXRhYmFzZSBuYW1lczoiKTsKKyAgICAgICAgdmFyIGZyYW1lID0gaW5kZXhl
ZERCTW9kZWwuX2ZyYW1lc1ttYWluRnJhbWVJZF07CisgICAgICAgIGlmICghZnJhbWUpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHNlY3VyaXR5T3JpZ2luID0gZnJhbWUuc2Vj
dXJpdHlPcmlnaW47CisgICAgICAgIHZhciBuYW1lcyA9IGluZGV4ZWREQk1vZGVsLl9kYXRhYmFz
ZU5hbWVzQnlTZWN1cml0eU9yaWdpbltzZWN1cml0eU9yaWdpbl07CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiICAgICIgKyBuYW1lc1tpXSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCIiKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5z
cGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1lc0xvYWRl
ZCIsIHN0ZXAyLCBmYWxzZSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgeworICAgICAg
ICBkdW1wRGF0YWJhc2VOYW1lcygpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZURhdGFi
YXNlKG1haW5GcmFtZUlkLCAidGVzdERhdGFiYXNlMSIsIHN0ZXAzKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMygpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1l
c0xvYWRlZCIsIHN0ZXA0LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hE
YXRhYmFzZU5hbWVzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDQoKQorICAgIHsKKyAg
ICAgICAgZHVtcERhdGFiYXNlTmFtZXMoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVE
YXRhYmFzZShtYWluRnJhbWVJZCwgInRlc3REYXRhYmFzZTIiLCBzdGVwNSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gc3RlcDUoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNl
TmFtZXNMb2FkZWQiLCBzdGVwNiwgZmFsc2UpOworICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZy
ZXNoRGF0YWJhc2VOYW1lcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA2KCkKKyAgICB7
CisgICAgICAgIGR1bXBEYXRhYmFzZU5hbWVzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZGVs
ZXRlRGF0YWJhc2UobWFpbkZyYW1lSWQsICJ0ZXN0RGF0YWJhc2UyIiwgc3RlcDcpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0ZXA3KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
U25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRh
YmFzZU5hbWVzTG9hZGVkIiwgc3RlcDgsIGZhbHNlKTsKKyAgICAgICAgaW5kZXhlZERCTW9kZWwu
cmVmcmVzaERhdGFiYXNlTmFtZXMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwOCgpCisg
ICAgeworICAgICAgICBkdW1wRGF0YWJhc2VOYW1lcygpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmRlbGV0ZURhdGFiYXNlKG1haW5GcmFtZUlkLCAidGVzdERhdGFiYXNlMSIsIHN0ZXA5KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBzdGVwOSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAi
ZGF0YWJhc2VOYW1lc0xvYWRlZCIsIHN0ZXAxMCwgZmFsc2UpOworICAgICAgICBpbmRleGVkREJN
b2RlbC5yZWZyZXNoRGF0YWJhc2VOYW1lcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAx
MCgpCisgICAgeworICAgICAgICBkdW1wRGF0YWJhc2VOYW1lcygpOworICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhhdCBkYXRhYmFzZSBuYW1lcyBhcmUg
Y29ycmVjdGx5IGxvYWRlZCBhbmQgc2F2ZWQgaW4gSW5kZXhlZERCTW9kZWwuPC9wPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5kZXhlZGRiL2RhdGFiYXNlLXN0cnVjdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xODIyMTI0MmMyYjAxMGQyZDgyYjMyYzc2NTI1NGE1ZWRiY2YyZTZj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5k
ZXhlZGRiL2RhdGFiYXNlLXN0cnVjdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMTEgQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJh
Y2sxCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzU6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2Nh
bGxiYWNrMgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWRE
Ql9jYWxsYmFjazMKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogSW5zcGVjdG9yVGVzdC5JbmRl
eGVkREJfY2FsbGJhY2s0CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzU6IEluc3BlY3RvclRlc3Qu
SW5kZXhlZERCX2NhbGxiYWNrNQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1OiBJbnNwZWN0b3JU
ZXN0LkluZGV4ZWREQl9jYWxsYmFjazYKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogSW5zcGVj
dG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s3CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzU6IElu
c3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrOAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1
OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazkKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA3NTogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2sxMAorVGVzdHMgdGhhdCBkYXRh
YmFzZSBuYW1lcyBhcmUgY29ycmVjdGx5IGxvYWRlZCBhbmQgc2F2ZWQgaW4gSW5kZXhlZERCTW9k
ZWwuCisKK0R1bXBpbmcgZGF0YWJhc2U6CitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNl
MQorICAgIHZlcnNpb246IAorICAgIG9iamVjdFN0b3JlczoKKworRHVtcGluZyBkYXRhYmFzZToK
K3Rlc3REYXRhYmFzZTEKKyAgICB2ZXJzaW9uOiAxCisgICAgb2JqZWN0U3RvcmVzOgorICAgIHRl
c3RPYmplY3RTdG9yZTEKKyAgICAgICAga2V5UGF0aDogdGVzdC5rZXkucGF0aAorICAgICAgICBp
bmRleGVzOiAKKworRHVtcGluZyBkYXRhYmFzZToKK3Rlc3REYXRhYmFzZTEKKyAgICB2ZXJzaW9u
OiAyCisgICAgb2JqZWN0U3RvcmVzOgorICAgIHRlc3RPYmplY3RTdG9yZTEKKyAgICAgICAga2V5
UGF0aDogdGVzdC5rZXkucGF0aAorICAgICAgICBpbmRleGVzOiAKKyAgICB0ZXN0T2JqZWN0U3Rv
cmUyCisgICAgICAgIGtleVBhdGg6IAorICAgICAgICBpbmRleGVzOiAKKworRHVtcGluZyBkYXRh
YmFzZToKK3Rlc3REYXRhYmFzZTEKKyAgICB2ZXJzaW9uOiAzCisgICAgb2JqZWN0U3RvcmVzOgor
ICAgIHRlc3RPYmplY3RTdG9yZTEKKyAgICAgICAga2V5UGF0aDogdGVzdC5rZXkucGF0aAorICAg
ICAgICBpbmRleGVzOiAKKyAgICB0ZXN0T2JqZWN0U3RvcmUyCisgICAgICAgIGtleVBhdGg6IAor
ICAgICAgICBpbmRleGVzOiAKKyAgICAgICAgdGVzdEluZGV4TmFtZTEKKyAgICAgICAgICAgIGtl
eVBhdGg6IGtleS5wYXRoMQorICAgICAgICAgICAgdW5pcXVlOiBmYWxzZQorICAgICAgICAgICAg
bXVsdGlFbnRyeTogdHJ1ZQorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNlMQorICAg
IHZlcnNpb246IDQKKyAgICBvYmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0b3JlMQorICAg
ICAgICBrZXlQYXRoOiB0ZXN0LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAorICAgIHRlc3RP
YmplY3RTdG9yZTIKKyAgICAgICAga2V5UGF0aDogCisgICAgICAgIGluZGV4ZXM6IAorICAgICAg
ICB0ZXN0SW5kZXhOYW1lMQorICAgICAgICAgICAga2V5UGF0aDoga2V5LnBhdGgxCisgICAgICAg
ICAgICB1bmlxdWU6IGZhbHNlCisgICAgICAgICAgICBtdWx0aUVudHJ5OiB0cnVlCisgICAgICAg
IHRlc3RJbmRleE5hbWUyCisgICAgICAgICAgICBrZXlQYXRoOiBrZXkucGF0aDIKKyAgICAgICAg
ICAgIHVuaXF1ZTogdHJ1ZQorICAgICAgICAgICAgbXVsdGlFbnRyeTogZmFsc2UKKworRHVtcGlu
ZyBkYXRhYmFzZToKK3Rlc3REYXRhYmFzZTEKKyAgICB2ZXJzaW9uOiA1CisgICAgb2JqZWN0U3Rv
cmVzOgorICAgIHRlc3RPYmplY3RTdG9yZTEKKyAgICAgICAga2V5UGF0aDogdGVzdC5rZXkucGF0
aAorICAgICAgICBpbmRleGVzOiAKKyAgICB0ZXN0T2JqZWN0U3RvcmUyCisgICAgICAgIGtleVBh
dGg6IAorICAgICAgICBpbmRleGVzOiAKKyAgICAgICAgdGVzdEluZGV4TmFtZTEKKyAgICAgICAg
ICAgIGtleVBhdGg6IGtleS5wYXRoMQorICAgICAgICAgICAgdW5pcXVlOiBmYWxzZQorICAgICAg
ICAgICAgbXVsdGlFbnRyeTogdHJ1ZQorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNl
MQorICAgIHZlcnNpb246IDYKKyAgICBvYmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0b3Jl
MQorICAgICAgICBrZXlQYXRoOiB0ZXN0LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAorICAg
IHRlc3RPYmplY3RTdG9yZTIKKyAgICAgICAga2V5UGF0aDogCisgICAgICAgIGluZGV4ZXM6IAor
CitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNlMQorICAgIHZlcnNpb246IDcKKyAgICBv
YmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0b3JlMQorICAgICAgICBrZXlQYXRoOiB0ZXN0
LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERh
dGFiYXNlMQorICAgIHZlcnNpb246IDgKKyAgICBvYmplY3RTdG9yZXM6CisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLXN0
cnVjdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRi
L2RhdGFiYXNlLXN0cnVjdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkYTU4OGE1MThlZDJkM2NhZTU3
YjMxYTljOWI5OTM2NDk0YzI0NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0bWwKQEAgLTAs
MCArMSwxODkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImluZGV4ZWRkYi10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgaW5kZXhlZERCTW9kZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsKCk7CisgICAgdmFyIG1haW5GcmFtZUlk
ID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZS5pZDsKKyAgICB2YXIg
ZGF0YWJhc2VOYW1lID0gInRlc3REYXRhYmFzZTEiOworCisgICAgZnVuY3Rpb24gZHVtcERhdGFi
YXNlKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIGRh
dGFiYXNlOiIpOworICAgICAgICB2YXIgZnJhbWUgPSBpbmRleGVkREJNb2RlbC5fZnJhbWVzW21h
aW5GcmFtZUlkXTsKKyAgICAgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgdmFyIGRhdGFiYXNlID0gZnJhbWUuZGF0YWJhc2VzW2RhdGFiYXNlTmFtZV07CisgICAg
ICAgIGlmICghZGF0YWJhc2UpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KGRhdGFiYXNlLm5hbWUpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAgIHZlcnNpb246ICIgKyBkYXRhYmFzZS52ZXJzaW9uKTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBvYmplY3RTdG9yZXM6Iik7CisgICAgICAgIHZhciBv
YmplY3RTdG9yZU5hbWVzID0gW107CisgICAgICAgIGZvciAodmFyIG9iamVjdFN0b3JlTmFtZSBp
biBkYXRhYmFzZS5vYmplY3RTdG9yZXMpCisgICAgICAgICAgICBvYmplY3RTdG9yZU5hbWVzLnB1
c2gob2JqZWN0U3RvcmVOYW1lKTsKKyAgICAgICAgb2JqZWN0U3RvcmVOYW1lcy5zb3J0KCk7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVOYW1lcy5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJhc2Uub2JqZWN0U3RvcmVzW29i
amVjdFN0b3JlTmFtZXNbaV1dOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgICAiICsgb2JqZWN0U3RvcmUubmFtZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAgICAgICBrZXlQYXRoOiAiICsgb2JqZWN0U3RvcmUua2V5UGF0aCk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICBpbmRleGVzOiAiKTsKKyAg
ICAgICAgICAgIHZhciBpbmRleE5hbWVzID0gW107CisgICAgICAgICAgICBmb3IgKHZhciBpbmRl
eE5hbWUgaW4gb2JqZWN0U3RvcmUuaW5kZXhlcykKKyAgICAgICAgICAgICAgICBpbmRleE5hbWVz
LnB1c2goaW5kZXhOYW1lKTsKKyAgICAgICAgICAgIGluZGV4TmFtZXMuc29ydCgpOworICAgICAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBpbmRleE5hbWVzLmxlbmd0aDsgKytqKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGluZGV4ID0gb2JqZWN0U3RvcmUuaW5kZXhlc1tpbmRleE5hbWVzW2pd
XTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAiICsg
aW5kZXgubmFtZSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
ICAgICAgICAgIGtleVBhdGg6ICIgKyBpbmRleC5rZXlQYXRoKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAgICAgdW5pcXVlOiAiICsgaW5kZXgudW5p
cXVlKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAg
ICAgbXVsdGlFbnRyeTogIiArIGluZGV4Lm11bHRpRW50cnkpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKKyAgICB9CisKKyAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNo
ZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1lc0xvYWRlZCIsIHN0ZXAyLCBmYWxzZSk7CisKKyAg
ICBmdW5jdGlvbiBzdGVwMigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZURh
dGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsIHN0ZXAzKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMygpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1l
c0xvYWRlZCIsIHN0ZXA0LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hE
YXRhYmFzZU5hbWVzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDQoKQorICAgIHsKKyAg
ICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNlTG9h
ZGVkIiwgc3RlcDUsIGZhbHNlKTsKKyAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFi
YXNlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXA1KCkKKyAgICB7CisgICAgICAgIGR1bXBEYXRhYmFzZSgpOworCisgICAgICAgIEluc3BlY3Rv
clRlc3QuY3JlYXRlT2JqZWN0U3RvcmUobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgInRlc3RP
YmplY3RTdG9yZTEiLCAidGVzdC5rZXkucGF0aCIsIHRydWUsIHN0ZXA2KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwNigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VM
b2FkZWQiLCBzdGVwNywgZmFsc2UpOworICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0
YWJhc2UobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDcoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5jcmVhdGVPYmplY3RTdG9yZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lLCAidGVz
dE9iamVjdFN0b3JlMiIsICIiLCBmYWxzZSwgc3RlcDgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHN0ZXA4KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZUxvYWRlZCIsIHN0
ZXA5LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFzZShtYWlu
RnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwOSgpCisg
ICAgeworICAgICAgICBkdW1wRGF0YWJhc2UoKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZU9iamVjdFN0b3JlSW5kZXgobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgInRlc3RPYmpl
Y3RTdG9yZTIiLCAidGVzdEluZGV4TmFtZTEiLCAia2V5LnBhdGgxIiwgZmFsc2UsIHRydWUsIHN0
ZXAxMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEwKCkKKyAgICB7CisgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5w
cm90b3R5cGUsICJkYXRhYmFzZUxvYWRlZCIsIHN0ZXAxMSwgZmFsc2UpOworICAgICAgICBpbmRl
eGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2UobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDExKCkKKyAgICB7CisgICAgICAgIGR1bXBEYXRhYmFz
ZSgpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3RvcmVJbmRleChtYWlu
RnJhbWVJZCwgZGF0YWJhc2VOYW1lLCAidGVzdE9iamVjdFN0b3JlMiIsICJ0ZXN0SW5kZXhOYW1l
MiIsICJrZXkucGF0aDIiLCB0cnVlLCBmYWxzZSwgc3RlcDEyKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBzdGVwMTIoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNlTG9hZGVk
Iiwgc3RlcDEzLCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFz
ZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVw
MTMoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5kZWxldGVPYmplY3RTdG9yZUluZGV4KG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsICJ0
ZXN0T2JqZWN0U3RvcmUyIiwgInRlc3RJbmRleE5hbWUyIiwgc3RlcDE0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwMTQoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNl
TG9hZGVkIiwgc3RlcDE1LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hE
YXRhYmFzZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBzdGVwMTUoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5kZWxldGVPYmplY3RTdG9yZUluZGV4KG1haW5GcmFtZUlkLCBkYXRhYmFzZU5h
bWUsICJ0ZXN0T2JqZWN0U3RvcmUyIiwgInRlc3RJbmRleE5hbWUxIiwgc3RlcDE2KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwMTYoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRh
dGFiYXNlTG9hZGVkIiwgc3RlcDE3LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJl
ZnJlc2hEYXRhYmFzZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMTcoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kZWxldGVPYmplY3RTdG9yZShtYWluRnJhbWVJZCwgZGF0YWJhc2VO
YW1lLCAidGVzdE9iamVjdFN0b3JlMiIsIHN0ZXAxOCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDE4KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZUxvYWRlZCIsIHN0
ZXAxOSwgZmFsc2UpOworICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2UobWFp
bkZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDE5KCkK
KyAgICB7CisgICAgICAgIGR1bXBEYXRhYmFzZSgpOworCisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZGVsZXRlT2JqZWN0U3RvcmUobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgInRlc3RPYmplY3RT
dG9yZTEiLCBzdGVwMjApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyMCgpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRp
c3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VMb2FkZWQiLCBzdGVwMjEsIGZhbHNlKTsKKyAg
ICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFz
ZU5hbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyMSgpCisgICAgeworICAgICAgICBk
dW1wRGF0YWJhc2UoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kZWxldGVEYXRhYmFzZShtYWlu
RnJhbWVJZCwgZGF0YWJhc2VOYW1lLCBzdGVwMjIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXAyMigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
IH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+
VGVzdHMgdGhhdCBkYXRhYmFzZSBuYW1lcyBhcmUgY29ycmVjdGx5IGxvYWRlZCBhbmQgc2F2ZWQg
aW4gSW5kZXhlZERCTW9kZWwuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2luZGV4ZWRkYi10ZXN0Lmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2luZGV4ZWRkYi10
ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAyODVhMGU3ZTE5MDY0N2VmMTZmM2UxOGY3OWYxY2ZjZDczODFh
YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bmRleGVkZGIvaW5kZXhlZGRiLXRlc3QuanMKQEAgLTAsMCArMSwxODAgQEAKK3ZhciBpbml0aWFs
aXplX0luZGV4ZWREQlRlc3QgPSBmdW5jdGlvbigpIHsKKwordmFyIHNuaWZmZXJJbnN0YWxsZWQg
PSBmYWxzZTsKK3ZhciBsYXN0Q2FsbGJhY2tJZCA9IDA7Cit2YXIgY2FsbGJhY2tzID0ge307Cit2
YXIgY2FsbGJhY2tJZFByZWZpeCA9ICJJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjayI7
CitJbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrID0gZnVuY3Rpb24oZnJhbWVJZCwg
bWV0aG9kTmFtZSwgcGFyYW1ldGVycywgY2FsbGJhY2spCit7CisgICAgaWYgKCFzbmlmZmVySW5z
dGFsbGVkKQorICAgICAgICBJbnNwZWN0b3JUZXN0Ll9pbnN0YWxsSW5kZXhlZERCU25pZmZlcigp
OworICAgIHZhciBjYWxsYmFja0lkID0gKytsYXN0Q2FsbGJhY2tJZDsKKyAgICBjYWxsYmFja3Nb
Y2FsbGJhY2tJZF0gPSBjYWxsYmFjazsKKyAgICB2YXIgcGFyYW1ldGVyc1N0cmluZyA9ICJcIiIg
KyBjYWxsYmFja0lkUHJlZml4ICsgY2FsbGJhY2tJZCArICJcIiI7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBwYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmICh0eXBlb2YocGFy
YW1ldGVyc1tpXSkgPT09ICJzdHJpbmciKQorICAgICAgICAgICAgcGFyYW1ldGVyc1N0cmluZyAr
PSAiLCBcIiIgKyBwYXJhbWV0ZXJzW2ldICsgIlwiIjsKKyAgICAgICAgZWxzZSBpZiAoKHR5cGVv
ZihwYXJhbWV0ZXJzW2ldKSA9PT0gIm51bWJlciIpIHx8ICh0eXBlb2YocGFyYW1ldGVyc1tpXSkg
PT09ICJib29sZWFuIikpCisgICAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nICs9ICIsICIgKyBw
YXJhbWV0ZXJzW2ldOworICAgIH0KKworICAgIHZhciByZXF1ZXN0U3RyaW5nID0gbWV0aG9kTmFt
ZSArICIoIiArIHBhcmFtZXRlcnNTdHJpbmcgKyAiKSI7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZShyZXF1ZXN0U3RyaW5nKTsKK307CisKK0luc3BlY3RvclRlc3QuX2luc3RhbGxJ
bmRleGVkREJTbmlmZmVyID0gZnVuY3Rpb24oKQoreworICAgIHNuaWZmZXJJbnN0YWxsZWQgPSB0
cnVlOworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoY29uc29sZU1lc3NhZ2VP
dmVycmlkZSwgdHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBjb25zb2xlTWVzc2FnZU92ZXJyaWRlKG1z
ZykKKyAgICB7CisgICAgICAgIHZhciB0ZXh0ID0gbXNnLl9tZXNzYWdlVGV4dDsKKyAgICAgICAg
aWYgKHRleHQuaW5kZXhPZihjYWxsYmFja0lkUHJlZml4KSAhPT0gMCkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgdmFyIGNhbGxiYWNrSWQgPSB0ZXh0LnN1YnN0cmluZyhjYWxsYmFja0lk
UHJlZml4Lmxlbmd0aCk7CisgICAgICAgIGNhbGxiYWNrc1tjYWxsYmFja0lkXS5jYWxsKCk7Cisg
ICAgICAgIGRlbGV0ZSBjYWxsYmFja3NbY2FsbGJhY2tJZF07CisgICAgfQorfTsKKworSW5zcGVj
dG9yVGVzdC5jcmVhdGVEYXRhYmFzZSA9IGZ1bmN0aW9uKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSwg
Y2FsbGJhY2spCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayhmcmFt
ZUlkLCAiY3JlYXRlRGF0YWJhc2UiLCBbZGF0YWJhc2VOYW1lXSwgY2FsbGJhY2spCit9OworCitJ
bnNwZWN0b3JUZXN0LmRlbGV0ZURhdGFiYXNlID0gZnVuY3Rpb24oZnJhbWVJZCwgZGF0YWJhc2VO
YW1lLCBjYWxsYmFjaykKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNr
KGZyYW1lSWQsICJkZWxldGVEYXRhYmFzZSIsIFtkYXRhYmFzZU5hbWVdLCBjYWxsYmFjaykKK307
CisKK0luc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3RvcmUgPSBmdW5jdGlvbihmcmFtZUlkLCBk
YXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudCwgY2Fs
bGJhY2spCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayhmcmFtZUlk
LCAiY3JlYXRlT2JqZWN0U3RvcmUiLCBbZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIGtl
eVBhdGgsIGF1dG9JbmNyZW1lbnRdLCBjYWxsYmFjaykKK307CisKK0luc3BlY3RvclRlc3QuZGVs
ZXRlT2JqZWN0U3RvcmUgPSBmdW5jdGlvbihmcmFtZUlkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0
b3JlTmFtZSwgY2FsbGJhY2spCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxs
YmFjayhmcmFtZUlkLCAiZGVsZXRlT2JqZWN0U3RvcmUiLCBbZGF0YWJhc2VOYW1lLCBvYmplY3RT
dG9yZU5hbWVdLCBjYWxsYmFjaykKK307CisKK0luc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3Rv
cmVJbmRleCA9IGZ1bmN0aW9uKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1l
LCBvYmplY3RTdG9yZUluZGV4TmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5LCBjYWxs
YmFjaykKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrKGZyYW1lSWQs
ICJjcmVhdGVPYmplY3RTdG9yZUluZGV4IiwgW2RhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1l
LCBvYmplY3RTdG9yZUluZGV4TmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5XSwgY2Fs
bGJhY2spCit9OworCitJbnNwZWN0b3JUZXN0LmRlbGV0ZU9iamVjdFN0b3JlSW5kZXggPSBmdW5j
dGlvbihmcmFtZUlkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgb2JqZWN0U3RvcmVJ
bmRleE5hbWUsIGNhbGxiYWNrKQoreworICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVXaXRoQ2Fs
bGJhY2soZnJhbWVJZCwgImRlbGV0ZU9iamVjdFN0b3JlSW5kZXgiLCBbZGF0YWJhc2VOYW1lLCBv
YmplY3RTdG9yZU5hbWUsIG9iamVjdFN0b3JlSW5kZXhOYW1lXSwgY2FsbGJhY2spCit9OworCit9
OworCit2YXIgaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWRkYiB8fCB3aW5kb3cud2Via2l0SW5k
ZXhlZERCOworCitmdW5jdGlvbiBkaXNwYXRjaENhbGxiYWNrKGNhbGxiYWNrSWQpCit7CisgICAg
Y29uc29sZS5sb2coY2FsbGJhY2tJZCk7Cit9CisKK2Z1bmN0aW9uIG9uSW5kZXhlZERCRXJyb3Io
ZSkKK3sKKyAgICBjb25zb2xlLmxvZyhlKTsKK30KKworZnVuY3Rpb24gZG9XaXRoRGF0YWJhc2Uo
ZGF0YWJhc2VOYW1lLCBjYWxsYmFjaykKK3sKKyAgICBmdW5jdGlvbiBpbm5lckNhbGxiYWNrKCkK
KyAgICB7CisgICAgICAgIHZhciBkYiA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICBjYWxsYmFj
ayhkYik7CisgICAgfQorCisgICAgdmFyIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYXRhYmFz
ZU5hbWUpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gb25JbmRleGVkREJFcnJvcjsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSBvbkluZGV4ZWREQkVycm9yOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gaW5uZXJDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZG9XaXRoVmVyc2lvblRyYW5zYWN0aW9u
KGRhdGFiYXNlTmFtZSwgY2FsbGJhY2ssIGNvbW1pdENhbGxiYWNrKQoreworICAgIGRvV2l0aERh
dGFiYXNlKGRhdGFiYXNlTmFtZSwgc3RlcDIpOworCisgICAgZnVuY3Rpb24gc3RlcDIoZGIpCisg
ICAgeworICAgICAgICB2YXIgcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oTnVtYmVyKGRiLnZlcnNp
b24pICsgMSk7CisgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gb25JbmRleGVkREJFcnJvcjsK
KyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gb25JbmRleGVkREJFcnJvcjsKKyAgICAgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBzdGVwMzsKKworICAgICAgICBmdW5jdGlvbiBzdGVwMygpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKGRiLCByZXF1ZXN0LnJlc3VsdCk7CisgICAgICAg
ICAgICBkYi5jbG9zZSgpOworICAgICAgICAgICAgY29tbWl0Q2FsbGJhY2soKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworZnVuY3Rpb24gY3JlYXRlRGF0YWJhc2UoY2FsbGJhY2tJZCwgZGF0YWJh
c2VOYW1lKQoreworICAgIHZhciByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGF0YWJhc2VOYW1l
LCAwKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSBvbkluZGV4ZWREQkVycm9yOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gY2xvc2VEYXRhYmFzZTsKKworICAgIGZ1bmN0aW9uIGNsb3NlRGF0YWJh
c2UoKQorICAgIHsKKyAgICAgICAgcmVxdWVzdC5yZXN1bHQuY2xvc2UoKTsKKyAgICAgICAgZGlz
cGF0Y2hDYWxsYmFjayhjYWxsYmFja0lkKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURh
dGFiYXNlKGNhbGxiYWNrSWQsIGRhdGFiYXNlTmFtZSkKK3sKKyAgICB2YXIgcmVxdWVzdCA9IGlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYXRhYmFzZU5hbWUpOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IG9uSW5kZXhlZERCRXJyb3I7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkaXNwYXRjaENh
bGxiYWNrLmJpbmQodGhpcywgY2FsbGJhY2tJZCk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZU9iamVj
dFN0b3JlKGNhbGxiYWNrSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBrZXlQYXRo
LCBhdXRvSW5jcmVtZW50KQoreworICAgIGRvV2l0aFZlcnNpb25UcmFuc2FjdGlvbihkYXRhYmFz
ZU5hbWUsIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrLCBkaXNwYXRjaENhbGxiYWNrLmJpbmQodGhp
cywgY2FsbGJhY2tJZCkpOworCisgICAgZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9uQ2FsbGJhY2so
ZGIsIHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lLCB7IGtleVBhdGg6IGtleVBhdGgsIGF1dG9JbmNyZW1l
bnQ6IGF1dG9JbmNyZW1lbnQgfSk7CisgICAgfQorfQorCitmdW5jdGlvbiBkZWxldGVPYmplY3RT
dG9yZShjYWxsYmFja0lkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSkKK3sKKyAgICBk
b1dpdGhWZXJzaW9uVHJhbnNhY3Rpb24oZGF0YWJhc2VOYW1lLCB3aXRoVHJhbnNhY3Rpb25DYWxs
YmFjaywgZGlzcGF0Y2hDYWxsYmFjay5iaW5kKHRoaXMsIGNhbGxiYWNrSWQpKTsKKworICAgIGZ1
bmN0aW9uIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrKGRiLCB0cmFuc2FjdGlvbikKKyAgICB7Cisg
ICAgICAgIHZhciBzdG9yZSA9IGRiLmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7
CisgICAgfQorfQorCitmdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZUluZGV4KGNhbGxiYWNrSWQs
IGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBvYmplY3RTdG9yZUluZGV4TmFtZSwga2V5
UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KQoreworICAgIGRvV2l0aFZlcnNpb25UcmFuc2FjdGlv
bihkYXRhYmFzZU5hbWUsIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrLCBkaXNwYXRjaENhbGxiYWNr
LmJpbmQodGhpcywgY2FsbGJhY2tJZCkpOworCisgICAgZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9u
Q2FsbGJhY2soZGIsIHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKKyAgICAgICAgb2Jq
ZWN0U3RvcmUuY3JlYXRlSW5kZXgob2JqZWN0U3RvcmVJbmRleE5hbWUsIGtleVBhdGgsIHsgdW5p
cXVlOiB1bmlxdWUsIG11bHRpRW50cnk6IG11bHRpRW50cnkgfSk7CisgICAgfQorfQorCitmdW5j
dGlvbiBkZWxldGVPYmplY3RTdG9yZUluZGV4KGNhbGxiYWNrSWQsIGRhdGFiYXNlTmFtZSwgb2Jq
ZWN0U3RvcmVOYW1lLCBvYmplY3RTdG9yZUluZGV4TmFtZSkKK3sKKyAgICBkb1dpdGhWZXJzaW9u
VHJhbnNhY3Rpb24oZGF0YWJhc2VOYW1lLCB3aXRoVHJhbnNhY3Rpb25DYWxsYmFjaywgZGlzcGF0
Y2hDYWxsYmFjay5iaW5kKHRoaXMsIGNhbGxiYWNrSWQpKTsKKworICAgIGZ1bmN0aW9uIHdpdGhU
cmFuc2FjdGlvbkNhbGxiYWNrKGRiLCB0cmFuc2FjdGlvbikKKyAgICB7CisgICAgICAgIHZhciBv
YmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7Cisg
ICAgICAgIG9iamVjdFN0b3JlLmRlbGV0ZUluZGV4KG9iamVjdFN0b3JlSW5kZXhOYW1lKTsKKyAg
ICB9Cit9CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124752</attachid>
            <date>2012-01-31 09:08:19 -0800</date>
            <delta_ts>2012-02-01 03:33:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77439-20120131210817.patch</filename>
            <type>text/plain</type>
            <size>23721</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTgxNjc2NjFhNTU1NTBm
NDE0ZjhjMzUwZWUwNWMzZGQ5NDMwN2MwZC4uNDNlZGI0YzU4ZWEwZGE5NDdjMjMxZDE4NWVmODA0
YjZmNjU3MzkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTMxICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtJbnNwZWN0b3JJbmRleGVkREJdIEFkZCB0ZXN0cyBmb3IgZGF0YWJhc2UgbmFtZXMgYW5k
IGRhdGFiYXNlIHN0cnVjdHVyZSByZXF1ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRk
Yi9kYXRhYmFzZS1uYW1lcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvSW5kZXhlZERCTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5k
ZXhlZERCTW9kZWwucHJvdG90eXBlLnJlZnJlc2hEYXRhYmFzZSk6CisKIDIwMTItMDEtMzEgIFBl
dGVyIFJ5YmluICA8cGV0ZXIucnliaW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHk6IHJlaW1wbGVtZW50IGdlbmVyYXRlZCBhcnJh
eSB0eXBlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9J
bmRleGVkREJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5k
ZXhlZERCTW9kZWwuanMKaW5kZXggNGJmZTk2YjgyNjUyZjI1MWRkZjIzNDIyYjg3ZDc0YjQ1ZTZi
MGI1Yy4uNzU3MTZkMmQxNjczNjA2ZjYzZDNiY2M5ZmM3YTU2N2FkZGM3MThjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmRleGVkREJNb2RlbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luZGV4ZWREQk1vZGVsLmpz
CkBAIC01Myw2ICs1MywxMSBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9mcmFtZXNOYXZpZ2F0ZWRSZWN1cnNpdmVseShXZWJJbnNwZWN0
b3IucmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lKTsKICAgICB9LAogICAgIAorICAgIHJlZnJl
c2hEYXRhYmFzZTogZnVuY3Rpb24oZnJhbWVJZCwgZGF0YWJhc2VOYW1lKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fbG9hZERhdGFiYXNlKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7CisgICAgfSwKKyAg
ICAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFt
ZX0gcmVzb3VyY2VUcmVlRnJhbWUKICAgICAgKi8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyZDIzNzcwYTMzZDAwNGU3MGQx
YWE5YTZmNWQyM2Y2Y2FiZjNiNzM1Li4zM2YzNTg2ZTE1NzZkYmRmMjVkYWI4N2VhYWU2MmVhNzJh
ODI4N2ZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTItMDEtMzEgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0luc3Bl
Y3RvckluZGV4ZWREQl0gQWRkIHRlc3RzIGZvciBkYXRhYmFzZSBuYW1lcyBhbmQgZGF0YWJhc2Ug
c3RydWN0dXJlIHJlcXVlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzc0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1l
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
ZGV4ZWRkYi9kYXRhYmFzZS1uYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLXN0
cnVjdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRl
eGVkZGIvaW5kZXhlZGRiLXRlc3QuanM6IEFkZGVkLgorICAgICAgICAoaW5pdGlhbGl6ZV9JbmRl
eGVkREJUZXN0Lkluc3BlY3RvclRlc3QuZXZhbHVhdGVXaXRoQ2FsbGJhY2spOgorICAgICAgICAo
aW5pdGlhbGl6ZV9JbmRleGVkREJUZXN0Lkluc3BlY3RvclRlc3QuX2luc3RhbGxJbmRleGVkREJT
bmlmZmVyLmNvbnNvbGVNZXNzYWdlT3ZlcnJpZGUpOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbmRl
eGVkREJUZXN0Lkluc3BlY3RvclRlc3QuX2luc3RhbGxJbmRleGVkREJTbmlmZmVyKToKKyAgICAg
ICAgKGluaXRpYWxpemVfSW5kZXhlZERCVGVzdC5JbnNwZWN0b3JUZXN0LmNyZWF0ZURhdGFiYXNl
KToKKyAgICAgICAgKGluaXRpYWxpemVfSW5kZXhlZERCVGVzdC5JbnNwZWN0b3JUZXN0LmRlbGV0
ZURhdGFiYXNlKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5kZXhlZERCVGVzdC5JbnNwZWN0b3JU
ZXN0LmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5kZXhlZERCVGVz
dC5JbnNwZWN0b3JUZXN0LmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKGluaXRpYWxpemVf
SW5kZXhlZERCVGVzdC5JbnNwZWN0b3JUZXN0LmNyZWF0ZU9iamVjdFN0b3JlSW5kZXgpOgorICAg
ICAgICAoaW5pdGlhbGl6ZV9JbmRleGVkREJUZXN0Lkluc3BlY3RvclRlc3QuZGVsZXRlT2JqZWN0
U3RvcmVJbmRleCk6CisgICAgICAgIChpbml0aWFsaXplX0luZGV4ZWREQlRlc3QpOgorICAgICAg
ICAoZGlzcGF0Y2hDYWxsYmFjayk6CisgICAgICAgIChvbkluZGV4ZWREQkVycm9yKToKKyAgICAg
ICAgKGRvV2l0aERhdGFiYXNlLmlubmVyQ2FsbGJhY2spOgorICAgICAgICAoZG9XaXRoRGF0YWJh
c2UpOgorICAgICAgICAoZG9XaXRoVmVyc2lvblRyYW5zYWN0aW9uLnN0ZXAyLnN0ZXAzKToKKyAg
ICAgICAgKGRvV2l0aFZlcnNpb25UcmFuc2FjdGlvbi5zdGVwMik6CisgICAgICAgIChkb1dpdGhW
ZXJzaW9uVHJhbnNhY3Rpb24pOgorICAgICAgICAoY3JlYXRlRGF0YWJhc2UuY2xvc2VEYXRhYmFz
ZSk6CisgICAgICAgIChjcmVhdGVEYXRhYmFzZSk6CisgICAgICAgIChkZWxldGVEYXRhYmFzZSk6
CisgICAgICAgIChjcmVhdGVPYmplY3RTdG9yZS53aXRoVHJhbnNhY3Rpb25DYWxsYmFjayk6Cisg
ICAgICAgIChjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChkZWxldGVPYmplY3RTdG9yZS53
aXRoVHJhbnNhY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChjcmVhdGVPYmplY3RTdG9yZUluZGV4
LndpdGhUcmFuc2FjdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKGNyZWF0ZU9iamVjdFN0b3JlSW5k
ZXgpOgorICAgICAgICAoZGVsZXRlT2JqZWN0U3RvcmVJbmRleC53aXRoVHJhbnNhY3Rpb25DYWxs
YmFjayk6CisKIDIwMTItMDEtMzEgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgog
CiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9uIGNoYW5nZS4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9k
YXRhYmFzZS1uYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBm
YjM0NGQwYzNkYTQ5ZGE1NjAzNTU4M2FjMjk5NDY0M2ExNjA5ZTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFt
ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3
NzogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2sxCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNzc6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrMgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDc3OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazMKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA3NzogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s0CitUZXN0cyB0
aGF0IGRhdGFiYXNlIG5hbWVzIGFyZSBjb3JyZWN0bHkgbG9hZGVkIGFuZCBzYXZlZCBpbiBJbmRl
eGVkREJNb2RlbC4KKworRHVtcGluZyBkYXRhYmFzZSBuYW1lczoKK0R1bXBpbmcgZGF0YWJhc2Ug
bmFtZXM6CisgICAgdGVzdERhdGFiYXNlMQorCitEdW1waW5nIGRhdGFiYXNlIG5hbWVzOgorICAg
IHRlc3REYXRhYmFzZTEKKyAgICB0ZXN0RGF0YWJhc2UyCisKK0R1bXBpbmcgZGF0YWJhc2UgbmFt
ZXM6CisgICAgdGVzdERhdGFiYXNlMQorCitEdW1waW5nIGRhdGFiYXNlIG5hbWVzOgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJh
c2UtbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRk
Yi9kYXRhYmFzZS1uYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNmQyYWY2NDQxZDMwYTc2ZTkwYjE0
MWZhNTE3YWY4NzBlM2EzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZXMuaHRtbApAQCAtMCwwICsxLDg2
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJpbmRleGVkZGItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGluZGV4ZWREQk1vZGVsID0gbmV3IFdl
Ykluc3BlY3Rvci5JbmRleGVkREJNb2RlbCgpOworICAgIHZhciBtYWluRnJhbWVJZCA9IFdlYklu
c3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUuaWQ7CisKKyAgICBmdW5jdGlvbiBk
dW1wRGF0YWJhc2VOYW1lcygpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRHVtcGluZyBkYXRhYmFzZSBuYW1lczoiKTsKKyAgICAgICAgdmFyIGZyYW1lID0gaW5kZXhl
ZERCTW9kZWwuX2ZyYW1lc1ttYWluRnJhbWVJZF07CisgICAgICAgIGlmICghZnJhbWUpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHNlY3VyaXR5T3JpZ2luID0gZnJhbWUuc2Vj
dXJpdHlPcmlnaW47CisgICAgICAgIHZhciBuYW1lcyA9IGluZGV4ZWREQk1vZGVsLl9kYXRhYmFz
ZU5hbWVzQnlTZWN1cml0eU9yaWdpbltzZWN1cml0eU9yaWdpbl07CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiICAgICIgKyBuYW1lc1tpXSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCIiKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5z
cGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1lc0xvYWRl
ZCIsIHN0ZXAyLCBmYWxzZSk7CisKKyAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgeworICAgICAg
ICBkdW1wRGF0YWJhc2VOYW1lcygpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZURhdGFi
YXNlKG1haW5GcmFtZUlkLCAidGVzdERhdGFiYXNlMSIsIHN0ZXAzKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMygpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1l
c0xvYWRlZCIsIHN0ZXA0LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hE
YXRhYmFzZU5hbWVzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDQoKQorICAgIHsKKyAg
ICAgICAgZHVtcERhdGFiYXNlTmFtZXMoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVE
YXRhYmFzZShtYWluRnJhbWVJZCwgInRlc3REYXRhYmFzZTIiLCBzdGVwNSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gc3RlcDUoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNl
TmFtZXNMb2FkZWQiLCBzdGVwNiwgZmFsc2UpOworICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZy
ZXNoRGF0YWJhc2VOYW1lcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXA2KCkKKyAgICB7
CisgICAgICAgIGR1bXBEYXRhYmFzZU5hbWVzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZGVs
ZXRlRGF0YWJhc2UobWFpbkZyYW1lSWQsICJ0ZXN0RGF0YWJhc2UyIiwgc3RlcDcpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0ZXA3KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
U25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRh
YmFzZU5hbWVzTG9hZGVkIiwgc3RlcDgsIGZhbHNlKTsKKyAgICAgICAgaW5kZXhlZERCTW9kZWwu
cmVmcmVzaERhdGFiYXNlTmFtZXMoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwOCgpCisg
ICAgeworICAgICAgICBkdW1wRGF0YWJhc2VOYW1lcygpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmRlbGV0ZURhdGFiYXNlKG1haW5GcmFtZUlkLCAidGVzdERhdGFiYXNlMSIsIHN0ZXA5KTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBzdGVwOSgpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAi
ZGF0YWJhc2VOYW1lc0xvYWRlZCIsIHN0ZXAxMCwgZmFsc2UpOworICAgICAgICBpbmRleGVkREJN
b2RlbC5yZWZyZXNoRGF0YWJhc2VOYW1lcygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAx
MCgpCisgICAgeworICAgICAgICBkdW1wRGF0YWJhc2VOYW1lcygpOworICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhhdCBkYXRhYmFzZSBuYW1lcyBhcmUg
Y29ycmVjdGx5IGxvYWRlZCBhbmQgc2F2ZWQgaW4gSW5kZXhlZERCTW9kZWwuPC9wPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5kZXhlZGRiL2RhdGFiYXNlLXN0cnVjdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMjg1YWM0MjIwMmFhMjc0MTExN2EzNDM3NmVkNDhhNjI4NzJhNDI4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5k
ZXhlZGRiL2RhdGFiYXNlLXN0cnVjdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMTEgQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NzogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJh
Y2sxCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzc6IEluc3BlY3RvclRlc3QuSW5kZXhlZERCX2Nh
bGxiYWNrMgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc3OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWRE
Ql9jYWxsYmFjazMKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NzogSW5zcGVjdG9yVGVzdC5JbmRl
eGVkREJfY2FsbGJhY2s0CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzc6IEluc3BlY3RvclRlc3Qu
SW5kZXhlZERCX2NhbGxiYWNrNQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc3OiBJbnNwZWN0b3JU
ZXN0LkluZGV4ZWREQl9jYWxsYmFjazYKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NzogSW5zcGVj
dG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s3CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzc6IElu
c3BlY3RvclRlc3QuSW5kZXhlZERCX2NhbGxiYWNrOAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc3
OiBJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjazkKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA3NzogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2sxMAorVGVzdHMgdGhhdCBkYXRh
YmFzZSBuYW1lcyBhcmUgY29ycmVjdGx5IGxvYWRlZCBhbmQgc2F2ZWQgaW4gSW5kZXhlZERCTW9k
ZWwuCisKK0R1bXBpbmcgZGF0YWJhc2U6CitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNl
MQorICAgIHZlcnNpb246IAorICAgIG9iamVjdFN0b3JlczoKKworRHVtcGluZyBkYXRhYmFzZToK
K3Rlc3REYXRhYmFzZTEKKyAgICB2ZXJzaW9uOiAxCisgICAgb2JqZWN0U3RvcmVzOgorICAgIHRl
c3RPYmplY3RTdG9yZTEKKyAgICAgICAga2V5UGF0aDogdGVzdC5rZXkucGF0aAorICAgICAgICBp
bmRleGVzOiAKKworRHVtcGluZyBkYXRhYmFzZToKK3Rlc3REYXRhYmFzZTEKKyAgICB2ZXJzaW9u
OiAyCisgICAgb2JqZWN0U3RvcmVzOgorICAgIHRlc3RPYmplY3RTdG9yZTEKKyAgICAgICAga2V5
UGF0aDogdGVzdC5rZXkucGF0aAorICAgICAgICBpbmRleGVzOiAKKyAgICB0ZXN0T2JqZWN0U3Rv
cmUyCisgICAgICAgIGtleVBhdGg6IAorICAgICAgICBpbmRleGVzOiAKKworRHVtcGluZyBkYXRh
YmFzZToKK3Rlc3REYXRhYmFzZTEKKyAgICB2ZXJzaW9uOiAzCisgICAgb2JqZWN0U3RvcmVzOgor
ICAgIHRlc3RPYmplY3RTdG9yZTEKKyAgICAgICAga2V5UGF0aDogdGVzdC5rZXkucGF0aAorICAg
ICAgICBpbmRleGVzOiAKKyAgICB0ZXN0T2JqZWN0U3RvcmUyCisgICAgICAgIGtleVBhdGg6IAor
ICAgICAgICBpbmRleGVzOiAKKyAgICAgICAgdGVzdEluZGV4TmFtZTEKKyAgICAgICAgICAgIGtl
eVBhdGg6IGtleS5wYXRoMQorICAgICAgICAgICAgdW5pcXVlOiBmYWxzZQorICAgICAgICAgICAg
bXVsdGlFbnRyeTogdHJ1ZQorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNlMQorICAg
IHZlcnNpb246IDQKKyAgICBvYmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0b3JlMQorICAg
ICAgICBrZXlQYXRoOiB0ZXN0LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAorICAgIHRlc3RP
YmplY3RTdG9yZTIKKyAgICAgICAga2V5UGF0aDogCisgICAgICAgIGluZGV4ZXM6IAorICAgICAg
ICB0ZXN0SW5kZXhOYW1lMQorICAgICAgICAgICAga2V5UGF0aDoga2V5LnBhdGgxCisgICAgICAg
ICAgICB1bmlxdWU6IGZhbHNlCisgICAgICAgICAgICBtdWx0aUVudHJ5OiB0cnVlCisgICAgICAg
IHRlc3RJbmRleE5hbWUyCisgICAgICAgICAgICBrZXlQYXRoOiBrZXkucGF0aDIKKyAgICAgICAg
ICAgIHVuaXF1ZTogdHJ1ZQorICAgICAgICAgICAgbXVsdGlFbnRyeTogZmFsc2UKKworRHVtcGlu
ZyBkYXRhYmFzZToKK3Rlc3REYXRhYmFzZTEKKyAgICB2ZXJzaW9uOiA1CisgICAgb2JqZWN0U3Rv
cmVzOgorICAgIHRlc3RPYmplY3RTdG9yZTEKKyAgICAgICAga2V5UGF0aDogdGVzdC5rZXkucGF0
aAorICAgICAgICBpbmRleGVzOiAKKyAgICB0ZXN0T2JqZWN0U3RvcmUyCisgICAgICAgIGtleVBh
dGg6IAorICAgICAgICBpbmRleGVzOiAKKyAgICAgICAgdGVzdEluZGV4TmFtZTEKKyAgICAgICAg
ICAgIGtleVBhdGg6IGtleS5wYXRoMQorICAgICAgICAgICAgdW5pcXVlOiBmYWxzZQorICAgICAg
ICAgICAgbXVsdGlFbnRyeTogdHJ1ZQorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNl
MQorICAgIHZlcnNpb246IDYKKyAgICBvYmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0b3Jl
MQorICAgICAgICBrZXlQYXRoOiB0ZXN0LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAorICAg
IHRlc3RPYmplY3RTdG9yZTIKKyAgICAgICAga2V5UGF0aDogCisgICAgICAgIGluZGV4ZXM6IAor
CitEdW1waW5nIGRhdGFiYXNlOgordGVzdERhdGFiYXNlMQorICAgIHZlcnNpb246IDcKKyAgICBv
YmplY3RTdG9yZXM6CisgICAgdGVzdE9iamVjdFN0b3JlMQorICAgICAgICBrZXlQYXRoOiB0ZXN0
LmtleS5wYXRoCisgICAgICAgIGluZGV4ZXM6IAorCitEdW1waW5nIGRhdGFiYXNlOgordGVzdERh
dGFiYXNlMQorICAgIHZlcnNpb246IDgKKyAgICBvYmplY3RTdG9yZXM6CisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2RhdGFiYXNlLXN0
cnVjdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRi
L2RhdGFiYXNlLXN0cnVjdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkYTU4OGE1MThlZDJkM2NhZTU3
YjMxYTljOWI5OTM2NDk0YzI0NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2Utc3RydWN0dXJlLmh0bWwKQEAgLTAs
MCArMSwxODkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImluZGV4ZWRkYi10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgaW5kZXhlZERCTW9kZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsKCk7CisgICAgdmFyIG1haW5GcmFtZUlk
ID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZS5pZDsKKyAgICB2YXIg
ZGF0YWJhc2VOYW1lID0gInRlc3REYXRhYmFzZTEiOworCisgICAgZnVuY3Rpb24gZHVtcERhdGFi
YXNlKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIGRh
dGFiYXNlOiIpOworICAgICAgICB2YXIgZnJhbWUgPSBpbmRleGVkREJNb2RlbC5fZnJhbWVzW21h
aW5GcmFtZUlkXTsKKyAgICAgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgdmFyIGRhdGFiYXNlID0gZnJhbWUuZGF0YWJhc2VzW2RhdGFiYXNlTmFtZV07CisgICAg
ICAgIGlmICghZGF0YWJhc2UpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KGRhdGFiYXNlLm5hbWUpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAgIHZlcnNpb246ICIgKyBkYXRhYmFzZS52ZXJzaW9uKTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBvYmplY3RTdG9yZXM6Iik7CisgICAgICAgIHZhciBv
YmplY3RTdG9yZU5hbWVzID0gW107CisgICAgICAgIGZvciAodmFyIG9iamVjdFN0b3JlTmFtZSBp
biBkYXRhYmFzZS5vYmplY3RTdG9yZXMpCisgICAgICAgICAgICBvYmplY3RTdG9yZU5hbWVzLnB1
c2gob2JqZWN0U3RvcmVOYW1lKTsKKyAgICAgICAgb2JqZWN0U3RvcmVOYW1lcy5zb3J0KCk7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVOYW1lcy5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGF0YWJhc2Uub2JqZWN0U3RvcmVzW29i
amVjdFN0b3JlTmFtZXNbaV1dOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgICAiICsgb2JqZWN0U3RvcmUubmFtZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiICAgICAgICBrZXlQYXRoOiAiICsgb2JqZWN0U3RvcmUua2V5UGF0aCk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICBpbmRleGVzOiAiKTsKKyAg
ICAgICAgICAgIHZhciBpbmRleE5hbWVzID0gW107CisgICAgICAgICAgICBmb3IgKHZhciBpbmRl
eE5hbWUgaW4gb2JqZWN0U3RvcmUuaW5kZXhlcykKKyAgICAgICAgICAgICAgICBpbmRleE5hbWVz
LnB1c2goaW5kZXhOYW1lKTsKKyAgICAgICAgICAgIGluZGV4TmFtZXMuc29ydCgpOworICAgICAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBpbmRleE5hbWVzLmxlbmd0aDsgKytqKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGluZGV4ID0gb2JqZWN0U3RvcmUuaW5kZXhlc1tpbmRleE5hbWVzW2pd
XTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAiICsg
aW5kZXgubmFtZSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
ICAgICAgICAgIGtleVBhdGg6ICIgKyBpbmRleC5rZXlQYXRoKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAgICAgdW5pcXVlOiAiICsgaW5kZXgudW5p
cXVlKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgICAgICAg
ICAgbXVsdGlFbnRyeTogIiArIGluZGV4Lm11bHRpRW50cnkpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKKyAgICB9CisKKyAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNo
ZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1lc0xvYWRlZCIsIHN0ZXAyLCBmYWxzZSk7CisKKyAg
ICBmdW5jdGlvbiBzdGVwMigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZURh
dGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsIHN0ZXAzKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMygpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VOYW1l
c0xvYWRlZCIsIHN0ZXA0LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hE
YXRhYmFzZU5hbWVzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDQoKQorICAgIHsKKyAg
ICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNlTG9h
ZGVkIiwgc3RlcDUsIGZhbHNlKTsKKyAgICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFi
YXNlKG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXA1KCkKKyAgICB7CisgICAgICAgIGR1bXBEYXRhYmFzZSgpOworCisgICAgICAgIEluc3BlY3Rv
clRlc3QuY3JlYXRlT2JqZWN0U3RvcmUobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgInRlc3RP
YmplY3RTdG9yZTEiLCAidGVzdC5rZXkucGF0aCIsIHRydWUsIHN0ZXA2KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwNigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VM
b2FkZWQiLCBzdGVwNywgZmFsc2UpOworICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0
YWJhc2UobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDcoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5jcmVhdGVPYmplY3RTdG9yZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lLCAidGVz
dE9iamVjdFN0b3JlMiIsICIiLCBmYWxzZSwgc3RlcDgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHN0ZXA4KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZUxvYWRlZCIsIHN0
ZXA5LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFzZShtYWlu
RnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwOSgpCisg
ICAgeworICAgICAgICBkdW1wRGF0YWJhc2UoKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZU9iamVjdFN0b3JlSW5kZXgobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgInRlc3RPYmpl
Y3RTdG9yZTIiLCAidGVzdEluZGV4TmFtZTEiLCAia2V5LnBhdGgxIiwgZmFsc2UsIHRydWUsIHN0
ZXAxMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEwKCkKKyAgICB7CisgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5w
cm90b3R5cGUsICJkYXRhYmFzZUxvYWRlZCIsIHN0ZXAxMSwgZmFsc2UpOworICAgICAgICBpbmRl
eGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2UobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDExKCkKKyAgICB7CisgICAgICAgIGR1bXBEYXRhYmFz
ZSgpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3RvcmVJbmRleChtYWlu
RnJhbWVJZCwgZGF0YWJhc2VOYW1lLCAidGVzdE9iamVjdFN0b3JlMiIsICJ0ZXN0SW5kZXhOYW1l
MiIsICJrZXkucGF0aDIiLCB0cnVlLCBmYWxzZSwgc3RlcDEyKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBzdGVwMTIoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNlTG9hZGVk
Iiwgc3RlcDEzLCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hEYXRhYmFz
ZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVw
MTMoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5kZWxldGVPYmplY3RTdG9yZUluZGV4KG1haW5GcmFtZUlkLCBkYXRhYmFzZU5hbWUsICJ0
ZXN0T2JqZWN0U3RvcmUyIiwgInRlc3RJbmRleE5hbWUyIiwgc3RlcDE0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBzdGVwMTQoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRhdGFiYXNl
TG9hZGVkIiwgc3RlcDE1LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlZnJlc2hE
YXRhYmFzZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBzdGVwMTUoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5kZWxldGVPYmplY3RTdG9yZUluZGV4KG1haW5GcmFtZUlkLCBkYXRhYmFzZU5h
bWUsICJ0ZXN0T2JqZWN0U3RvcmUyIiwgInRlc3RJbmRleE5hbWUxIiwgc3RlcDE2KTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzdGVwMTYoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRh
dGFiYXNlTG9hZGVkIiwgc3RlcDE3LCBmYWxzZSk7CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJl
ZnJlc2hEYXRhYmFzZShtYWluRnJhbWVJZCwgZGF0YWJhc2VOYW1lKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGVwMTcoKQorICAgIHsKKyAgICAgICAgZHVtcERhdGFiYXNlKCk7CisKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5kZWxldGVPYmplY3RTdG9yZShtYWluRnJhbWVJZCwgZGF0YWJhc2VO
YW1lLCAidGVzdE9iamVjdFN0b3JlMiIsIHN0ZXAxOCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDE4KCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IuSW5kZXhlZERCRGlzcGF0Y2hlci5wcm90b3R5cGUsICJkYXRhYmFzZUxvYWRlZCIsIHN0
ZXAxOSwgZmFsc2UpOworICAgICAgICBpbmRleGVkREJNb2RlbC5yZWZyZXNoRGF0YWJhc2UobWFp
bkZyYW1lSWQsIGRhdGFiYXNlTmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDE5KCkK
KyAgICB7CisgICAgICAgIGR1bXBEYXRhYmFzZSgpOworCisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZGVsZXRlT2JqZWN0U3RvcmUobWFpbkZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgInRlc3RPYmplY3RT
dG9yZTEiLCBzdGVwMjApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyMCgpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRp
c3BhdGNoZXIucHJvdG90eXBlLCAiZGF0YWJhc2VMb2FkZWQiLCBzdGVwMjEsIGZhbHNlKTsKKyAg
ICAgICAgaW5kZXhlZERCTW9kZWwucmVmcmVzaERhdGFiYXNlKG1haW5GcmFtZUlkLCBkYXRhYmFz
ZU5hbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyMSgpCisgICAgeworICAgICAgICBk
dW1wRGF0YWJhc2UoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kZWxldGVEYXRhYmFzZShtYWlu
RnJhbWVJZCwgZGF0YWJhc2VOYW1lLCBzdGVwMjIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXAyMigpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
IH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+
VGVzdHMgdGhhdCBkYXRhYmFzZSBuYW1lcyBhcmUgY29ycmVjdGx5IGxvYWRlZCBhbmQgc2F2ZWQg
aW4gSW5kZXhlZERCTW9kZWwuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2luZGV4ZWRkYi10ZXN0Lmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2luZGV4ZWRkYi10
ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAyODVhMGU3ZTE5MDY0N2VmMTZmM2UxOGY3OWYxY2ZjZDczODFh
YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bmRleGVkZGIvaW5kZXhlZGRiLXRlc3QuanMKQEAgLTAsMCArMSwxODAgQEAKK3ZhciBpbml0aWFs
aXplX0luZGV4ZWREQlRlc3QgPSBmdW5jdGlvbigpIHsKKwordmFyIHNuaWZmZXJJbnN0YWxsZWQg
PSBmYWxzZTsKK3ZhciBsYXN0Q2FsbGJhY2tJZCA9IDA7Cit2YXIgY2FsbGJhY2tzID0ge307Cit2
YXIgY2FsbGJhY2tJZFByZWZpeCA9ICJJbnNwZWN0b3JUZXN0LkluZGV4ZWREQl9jYWxsYmFjayI7
CitJbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrID0gZnVuY3Rpb24oZnJhbWVJZCwg
bWV0aG9kTmFtZSwgcGFyYW1ldGVycywgY2FsbGJhY2spCit7CisgICAgaWYgKCFzbmlmZmVySW5z
dGFsbGVkKQorICAgICAgICBJbnNwZWN0b3JUZXN0Ll9pbnN0YWxsSW5kZXhlZERCU25pZmZlcigp
OworICAgIHZhciBjYWxsYmFja0lkID0gKytsYXN0Q2FsbGJhY2tJZDsKKyAgICBjYWxsYmFja3Nb
Y2FsbGJhY2tJZF0gPSBjYWxsYmFjazsKKyAgICB2YXIgcGFyYW1ldGVyc1N0cmluZyA9ICJcIiIg
KyBjYWxsYmFja0lkUHJlZml4ICsgY2FsbGJhY2tJZCArICJcIiI7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBwYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmICh0eXBlb2YocGFy
YW1ldGVyc1tpXSkgPT09ICJzdHJpbmciKQorICAgICAgICAgICAgcGFyYW1ldGVyc1N0cmluZyAr
PSAiLCBcIiIgKyBwYXJhbWV0ZXJzW2ldICsgIlwiIjsKKyAgICAgICAgZWxzZSBpZiAoKHR5cGVv
ZihwYXJhbWV0ZXJzW2ldKSA9PT0gIm51bWJlciIpIHx8ICh0eXBlb2YocGFyYW1ldGVyc1tpXSkg
PT09ICJib29sZWFuIikpCisgICAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nICs9ICIsICIgKyBw
YXJhbWV0ZXJzW2ldOworICAgIH0KKworICAgIHZhciByZXF1ZXN0U3RyaW5nID0gbWV0aG9kTmFt
ZSArICIoIiArIHBhcmFtZXRlcnNTdHJpbmcgKyAiKSI7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZShyZXF1ZXN0U3RyaW5nKTsKK307CisKK0luc3BlY3RvclRlc3QuX2luc3RhbGxJ
bmRleGVkREJTbmlmZmVyID0gZnVuY3Rpb24oKQoreworICAgIHNuaWZmZXJJbnN0YWxsZWQgPSB0
cnVlOworICAgIEluc3BlY3RvclRlc3QuYWRkQ29uc29sZVNuaWZmZXIoY29uc29sZU1lc3NhZ2VP
dmVycmlkZSwgdHJ1ZSk7CisKKyAgICBmdW5jdGlvbiBjb25zb2xlTWVzc2FnZU92ZXJyaWRlKG1z
ZykKKyAgICB7CisgICAgICAgIHZhciB0ZXh0ID0gbXNnLl9tZXNzYWdlVGV4dDsKKyAgICAgICAg
aWYgKHRleHQuaW5kZXhPZihjYWxsYmFja0lkUHJlZml4KSAhPT0gMCkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgdmFyIGNhbGxiYWNrSWQgPSB0ZXh0LnN1YnN0cmluZyhjYWxsYmFja0lk
UHJlZml4Lmxlbmd0aCk7CisgICAgICAgIGNhbGxiYWNrc1tjYWxsYmFja0lkXS5jYWxsKCk7Cisg
ICAgICAgIGRlbGV0ZSBjYWxsYmFja3NbY2FsbGJhY2tJZF07CisgICAgfQorfTsKKworSW5zcGVj
dG9yVGVzdC5jcmVhdGVEYXRhYmFzZSA9IGZ1bmN0aW9uKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSwg
Y2FsbGJhY2spCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayhmcmFt
ZUlkLCAiY3JlYXRlRGF0YWJhc2UiLCBbZGF0YWJhc2VOYW1lXSwgY2FsbGJhY2spCit9OworCitJ
bnNwZWN0b3JUZXN0LmRlbGV0ZURhdGFiYXNlID0gZnVuY3Rpb24oZnJhbWVJZCwgZGF0YWJhc2VO
YW1lLCBjYWxsYmFjaykKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNr
KGZyYW1lSWQsICJkZWxldGVEYXRhYmFzZSIsIFtkYXRhYmFzZU5hbWVdLCBjYWxsYmFjaykKK307
CisKK0luc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3RvcmUgPSBmdW5jdGlvbihmcmFtZUlkLCBk
YXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudCwgY2Fs
bGJhY2spCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxsYmFjayhmcmFtZUlk
LCAiY3JlYXRlT2JqZWN0U3RvcmUiLCBbZGF0YWJhc2VOYW1lLCBvYmplY3RTdG9yZU5hbWUsIGtl
eVBhdGgsIGF1dG9JbmNyZW1lbnRdLCBjYWxsYmFjaykKK307CisKK0luc3BlY3RvclRlc3QuZGVs
ZXRlT2JqZWN0U3RvcmUgPSBmdW5jdGlvbihmcmFtZUlkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0
b3JlTmFtZSwgY2FsbGJhY2spCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZVdpdGhDYWxs
YmFjayhmcmFtZUlkLCAiZGVsZXRlT2JqZWN0U3RvcmUiLCBbZGF0YWJhc2VOYW1lLCBvYmplY3RT
dG9yZU5hbWVdLCBjYWxsYmFjaykKK307CisKK0luc3BlY3RvclRlc3QuY3JlYXRlT2JqZWN0U3Rv
cmVJbmRleCA9IGZ1bmN0aW9uKGZyYW1lSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1l
LCBvYmplY3RTdG9yZUluZGV4TmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5LCBjYWxs
YmFjaykKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlV2l0aENhbGxiYWNrKGZyYW1lSWQs
ICJjcmVhdGVPYmplY3RTdG9yZUluZGV4IiwgW2RhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1l
LCBvYmplY3RTdG9yZUluZGV4TmFtZSwga2V5UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5XSwgY2Fs
bGJhY2spCit9OworCitJbnNwZWN0b3JUZXN0LmRlbGV0ZU9iamVjdFN0b3JlSW5kZXggPSBmdW5j
dGlvbihmcmFtZUlkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgb2JqZWN0U3RvcmVJ
bmRleE5hbWUsIGNhbGxiYWNrKQoreworICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVXaXRoQ2Fs
bGJhY2soZnJhbWVJZCwgImRlbGV0ZU9iamVjdFN0b3JlSW5kZXgiLCBbZGF0YWJhc2VOYW1lLCBv
YmplY3RTdG9yZU5hbWUsIG9iamVjdFN0b3JlSW5kZXhOYW1lXSwgY2FsbGJhY2spCit9OworCit9
OworCit2YXIgaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWRkYiB8fCB3aW5kb3cud2Via2l0SW5k
ZXhlZERCOworCitmdW5jdGlvbiBkaXNwYXRjaENhbGxiYWNrKGNhbGxiYWNrSWQpCit7CisgICAg
Y29uc29sZS5sb2coY2FsbGJhY2tJZCk7Cit9CisKK2Z1bmN0aW9uIG9uSW5kZXhlZERCRXJyb3Io
ZSkKK3sKKyAgICBjb25zb2xlLmxvZyhlKTsKK30KKworZnVuY3Rpb24gZG9XaXRoRGF0YWJhc2Uo
ZGF0YWJhc2VOYW1lLCBjYWxsYmFjaykKK3sKKyAgICBmdW5jdGlvbiBpbm5lckNhbGxiYWNrKCkK
KyAgICB7CisgICAgICAgIHZhciBkYiA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICBjYWxsYmFj
ayhkYik7CisgICAgfQorCisgICAgdmFyIHJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYXRhYmFz
ZU5hbWUpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gb25JbmRleGVkREJFcnJvcjsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSBvbkluZGV4ZWREQkVycm9yOworICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gaW5uZXJDYWxsYmFjazsKK30KKworZnVuY3Rpb24gZG9XaXRoVmVyc2lvblRyYW5zYWN0aW9u
KGRhdGFiYXNlTmFtZSwgY2FsbGJhY2ssIGNvbW1pdENhbGxiYWNrKQoreworICAgIGRvV2l0aERh
dGFiYXNlKGRhdGFiYXNlTmFtZSwgc3RlcDIpOworCisgICAgZnVuY3Rpb24gc3RlcDIoZGIpCisg
ICAgeworICAgICAgICB2YXIgcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oTnVtYmVyKGRiLnZlcnNp
b24pICsgMSk7CisgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gb25JbmRleGVkREJFcnJvcjsK
KyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gb25JbmRleGVkREJFcnJvcjsKKyAgICAgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBzdGVwMzsKKworICAgICAgICBmdW5jdGlvbiBzdGVwMygpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKGRiLCByZXF1ZXN0LnJlc3VsdCk7CisgICAgICAg
ICAgICBkYi5jbG9zZSgpOworICAgICAgICAgICAgY29tbWl0Q2FsbGJhY2soKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworZnVuY3Rpb24gY3JlYXRlRGF0YWJhc2UoY2FsbGJhY2tJZCwgZGF0YWJh
c2VOYW1lKQoreworICAgIHZhciByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGF0YWJhc2VOYW1l
LCAwKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSBvbkluZGV4ZWREQkVycm9yOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gY2xvc2VEYXRhYmFzZTsKKworICAgIGZ1bmN0aW9uIGNsb3NlRGF0YWJh
c2UoKQorICAgIHsKKyAgICAgICAgcmVxdWVzdC5yZXN1bHQuY2xvc2UoKTsKKyAgICAgICAgZGlz
cGF0Y2hDYWxsYmFjayhjYWxsYmFja0lkKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRlbGV0ZURh
dGFiYXNlKGNhbGxiYWNrSWQsIGRhdGFiYXNlTmFtZSkKK3sKKyAgICB2YXIgcmVxdWVzdCA9IGlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYXRhYmFzZU5hbWUpOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IG9uSW5kZXhlZERCRXJyb3I7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkaXNwYXRjaENh
bGxiYWNrLmJpbmQodGhpcywgY2FsbGJhY2tJZCk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZU9iamVj
dFN0b3JlKGNhbGxiYWNrSWQsIGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBrZXlQYXRo
LCBhdXRvSW5jcmVtZW50KQoreworICAgIGRvV2l0aFZlcnNpb25UcmFuc2FjdGlvbihkYXRhYmFz
ZU5hbWUsIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrLCBkaXNwYXRjaENhbGxiYWNrLmJpbmQodGhp
cywgY2FsbGJhY2tJZCkpOworCisgICAgZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9uQ2FsbGJhY2so
ZGIsIHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lLCB7IGtleVBhdGg6IGtleVBhdGgsIGF1dG9JbmNyZW1l
bnQ6IGF1dG9JbmNyZW1lbnQgfSk7CisgICAgfQorfQorCitmdW5jdGlvbiBkZWxldGVPYmplY3RT
dG9yZShjYWxsYmFja0lkLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSkKK3sKKyAgICBk
b1dpdGhWZXJzaW9uVHJhbnNhY3Rpb24oZGF0YWJhc2VOYW1lLCB3aXRoVHJhbnNhY3Rpb25DYWxs
YmFjaywgZGlzcGF0Y2hDYWxsYmFjay5iaW5kKHRoaXMsIGNhbGxiYWNrSWQpKTsKKworICAgIGZ1
bmN0aW9uIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrKGRiLCB0cmFuc2FjdGlvbikKKyAgICB7Cisg
ICAgICAgIHZhciBzdG9yZSA9IGRiLmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7
CisgICAgfQorfQorCitmdW5jdGlvbiBjcmVhdGVPYmplY3RTdG9yZUluZGV4KGNhbGxiYWNrSWQs
IGRhdGFiYXNlTmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBvYmplY3RTdG9yZUluZGV4TmFtZSwga2V5
UGF0aCwgdW5pcXVlLCBtdWx0aUVudHJ5KQoreworICAgIGRvV2l0aFZlcnNpb25UcmFuc2FjdGlv
bihkYXRhYmFzZU5hbWUsIHdpdGhUcmFuc2FjdGlvbkNhbGxiYWNrLCBkaXNwYXRjaENhbGxiYWNr
LmJpbmQodGhpcywgY2FsbGJhY2tJZCkpOworCisgICAgZnVuY3Rpb24gd2l0aFRyYW5zYWN0aW9u
Q2FsbGJhY2soZGIsIHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKKyAgICAgICAgb2Jq
ZWN0U3RvcmUuY3JlYXRlSW5kZXgob2JqZWN0U3RvcmVJbmRleE5hbWUsIGtleVBhdGgsIHsgdW5p
cXVlOiB1bmlxdWUsIG11bHRpRW50cnk6IG11bHRpRW50cnkgfSk7CisgICAgfQorfQorCitmdW5j
dGlvbiBkZWxldGVPYmplY3RTdG9yZUluZGV4KGNhbGxiYWNrSWQsIGRhdGFiYXNlTmFtZSwgb2Jq
ZWN0U3RvcmVOYW1lLCBvYmplY3RTdG9yZUluZGV4TmFtZSkKK3sKKyAgICBkb1dpdGhWZXJzaW9u
VHJhbnNhY3Rpb24oZGF0YWJhc2VOYW1lLCB3aXRoVHJhbnNhY3Rpb25DYWxsYmFjaywgZGlzcGF0
Y2hDYWxsYmFjay5iaW5kKHRoaXMsIGNhbGxiYWNrSWQpKTsKKworICAgIGZ1bmN0aW9uIHdpdGhU
cmFuc2FjdGlvbkNhbGxiYWNrKGRiLCB0cmFuc2FjdGlvbikKKyAgICB7CisgICAgICAgIHZhciBv
YmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7Cisg
ICAgICAgIG9iamVjdFN0b3JlLmRlbGV0ZUluZGV4KG9iamVjdFN0b3JlSW5kZXhOYW1lKTsKKyAg
ICB9Cit9CisK
</data>
<flag name="review"
          id="126095"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>