<?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>97741</bug_id>
          
          <creation_ts>2012-09-26 16:48:41 -0700</creation_ts>
          <short_desc>PerformanceTests/CSS/StyleSheetInsert.html has a time-dependent non-Gaussian distribution</short_desc>
          <delta_ts>2012-09-27 16:38:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77037</blocked>
    
    <blocked>97743</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>729071</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-26 16:48:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/browser/trunk/PerformanceTests/CSS/StyleSheetInsert.html&apos;s run function adds new nodes in each run but doesn&apos;t remove them. As a result, run gets slower on each call, resulting in values like:
22.0, 26.0, 27.0, 31.0, 33.0, 35.0, 37.0, 43.0, 44.0, 45.0

We need to remove the nodes added in each run so that values follow a normal distribution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729072</commentid>
    <comment_count>1</comment_count>
      <attachid>165897</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-26 16:49:29 -0700</bug_when>
    <thetext>Created attachment 165897
Results page illustrating the problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729075</commentid>
    <comment_count>2</comment_count>
      <attachid>165898</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-26 16:53:01 -0700</bug_when>
    <thetext>Created attachment 165898
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729082</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-26 17:04:31 -0700</bug_when>
    <thetext>Note that the results obtained after this patch is included in the first attachment. Notice the standard deviation went down from ~25% to ~8%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729913</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-27 15:24:04 -0700</bug_when>
    <thetext>I&apos;m making results page warn time-dependent distributions in https://bugs.webkit.org/show_bug.cgi?id=97818 so that we can detect these problems easily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729993</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-27 16:38:16 -0700</bug_when>
    <thetext>This bug is beautifully visualized in https://bug-97818-attachments.webkit.org/attachment.cgi?id=166055.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729994</commentid>
    <comment_count>6</comment_count>
      <attachid>165898</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-27 16:38:44 -0700</bug_when>
    <thetext>Comment on attachment 165898
Fixes the bug

Clearing flags on attachment: 165898

Committed r129817: &lt;http://trac.webkit.org/changeset/129817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729995</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-27 16:38:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>165897</attachid>
            <date>2012-09-26 16:49:29 -0700</date>
            <delta_ts>2012-09-26 16:49:29 -0700</delta_ts>
            <desc>Results page illustrating the problem</desc>
            <filename>stylesheetinsert-original.html</filename>
            <type>text/html</type>
            <size>21096</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHRpdGxlPldlYktpdCBQZXJmb3JtYW5jZSBU
ZXN0IFJlc3VsdHM8L3RpdGxlPgo8c2NyaXB0IHNyYz0iL1VzZXJzL3JuaXdhL3dlYmtpdC9QZXJm
b3JtYW5jZVRlc3RzL0Ryb21hZW8vcmVzb3VyY2VzL2Ryb21hZW8vd2ViL2xpYi9qcXVlcnktMS42
LjQuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvYnJv
d3Nlci90cnVuay9QZXJmb3JtYW5jZVRlc3RzL0Ryb21hZW8vcmVzb3VyY2VzL2Ryb21hZW8vd2Vi
L2xpYi9qcXVlcnktMS42LjQuanM/Zm9ybWF0PXR4dCI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIv
VXNlcnMvcm5pd2Evd2Via2l0L1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL2pxdWVyeS5mbG90
Lm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3RyYWMud2Via2l0Lm9yZy9i
cm93c2VyL3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL2pxdWVyeS5mbG90Lm1pbi5q
cz9mb3JtYXQ9dHh0Ij48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Ii9Vc2Vycy9ybml3YS93ZWJraXQv
UGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvanF1ZXJ5LnRhYmxlc29ydGVyLm1pbi5qcyI+PC9z
Y3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5r
L1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL2pxdWVyeS50YWJsZXNvcnRlci5taW4uanM/Zm9y
bWF0PXR4dCI+PC9zY3JpcHQ+CjxzY3JpcHQgaWQ9Impzb24iIHR5cGU9ImFwcGxpY2F0aW9uL2pz
b24iPlt7InRpbWVzdGFtcCI6IDEzNDg3MDA5MDksICJyZXN1bHRzIjogeyJDU1MvU3R5bGVTaGVl
dEluc2VydDpKU0hlYXAiOiB7Im1pbiI6IDYyMTYwLjAsICJtYXgiOiA2NDkxMi4wLCAibWVkaWFu
IjogNjQxMTIuMCwgInZhbHVlcyI6IFs2MjE2MC4wLCA2MzY5Ni4wLCA2Mzc5Mi4wLCA2MzkyMC4w
LCA2NDAxNi4wLCA2NDIwOC4wLCA2NDMwNC4wLCA2NDU3Ni4wLCA2NDU0NC4wLCA2NDkxMi4wXSwg
InN0ZGV2IjogNzE1LjY0MTkyMTYzMzk5NjYyLCAiYXZnIjogNjQwMTIuODAwMDAwMDAwMDAzLCAi
dW5pdCI6ICJieXRlcyJ9LCAiQ1NTL1N0eWxlU2hlZXRJbnNlcnQiOiB7Im1pbiI6IDIyLjAsICJt
YXgiOiA0NS4wLCAibWVkaWFuIjogMzQuMCwgInZhbHVlcyI6IFsyMi4wLCAyNi4wLCAyNy4wLCAz
MS4wLCAzMy4wLCAzNS4wLCAzNy4wLCA0My4wLCA0NC4wLCA0NS4wXSwgInN0ZGV2IjogNy42MDMy
ODg3NjIxMDgxNDM4LCAiYXZnIjogMzQuMzAwMDAwMDAwMDAwMDA0LCAidW5pdCI6ICJtcyJ9LCAi
Q1NTL1N0eWxlU2hlZXRJbnNlcnQ6TWFsbG9jIjogeyJtaW4iOiAxMDg4MTAyNC4wLCAibWF4Ijog
MTE5NDA1MjAuMCwgIm1lZGlhbiI6IDEwOTQ2MzYwLjAsICJ2YWx1ZXMiOiBbMTA5NjA0ODguMCwg
MTA5MjUxMDQuMCwgMTA5MTg2NTYuMCwgMTA5MzIyMzIuMCwgMTA5MjMzMDQuMCwgMTA4ODEwMjQu
MCwgMTE5NDA1MjAuMCwgMTE5MjQ2NzIuMCwgMTE5MTU3NjguMCwgMTE4ODY4MDguMF0sICJzdGRl
diI6IDQ4NzE5My43MTU0NzczNjUzNiwgImF2ZyI6IDExMzIwODU3LjYsICJ1bml0IjogImJ5dGVz
In19LCAiYnJhbmNoIjogIndlYmtpdC10cnVuayIsICJ3ZWJraXQtcmV2aXNpb24iOiAiMTI5NzAz
In0sIHsidGltZXN0YW1wIjogMTM0ODcwMDkyNCwgInJlc3VsdHMiOiB7IkNTUy9TdHlsZVNoZWV0
SW5zZXJ0IjogeyJtaW4iOiAyMS4wLCAibWF4IjogNDYuMCwgIm1lZGlhbiI6IDM0LjAsICJ2YWx1
ZXMiOiBbMjEuMCwgMjUuMCwgMjcuMCwgMjkuMCwgMzIuMCwgMzYuMCwgMzguMCwgNDEuMCwgNDYu
MCwgNDUuMF0sICJzdGRldiI6IDguMTM2MzM4MjQyNzIzMTk2NSwgImF2ZyI6IDM0LjAsICJ1bml0
IjogIm1zIn0sICJDU1MvU3R5bGVTaGVldEluc2VydDpKU0hlYXAiOiB7Im1pbiI6IDYyMTYwLjAs
ICJtYXgiOiA2NDkxMi4wLCAibWVkaWFuIjogNjQxMTIuMCwgInZhbHVlcyI6IFs2MjE2MC4wLCA2
MzY5Ni4wLCA2Mzc5Mi4wLCA2MzkyMC4wLCA2NDAxNi4wLCA2NDIwOC4wLCA2NDMwNC4wLCA2NDU3
Ni4wLCA2NDU0NC4wLCA2NDkxMi4wXSwgInN0ZGV2IjogNzE1LjY0MTkyMTYzMzk5NjYyLCAiYXZn
IjogNjQwMTIuODAwMDAwMDAwMDAzLCAidW5pdCI6ICJieXRlcyJ9LCAiQ1NTL1N0eWxlU2hlZXRJ
bnNlcnQ6TWFsbG9jIjogeyJtaW4iOiAxMDg4MTA2NC4wLCAibWF4IjogMTE5NDA1NjAuMCwgIm1l
ZGlhbiI6IDEwOTQ0MzUyLjAsICJ2YWx1ZXMiOiBbMTA5NTY0MzIuMCwgMTA5MjUxNDQuMCwgMTA5
MTg2OTYuMCwgMTA5MzIyNzIuMCwgMTA5MjMzNDQuMCwgMTA4ODEwNjQuMCwgMTE5NDA1NjAuMCwg
MTE5MjQ3MTIuMCwgMTE5MTU4MDguMCwgMTE4ODY4NDguMF0sICJzdGRldiI6IDQ4NzQ5OC4xNDQ3
NDE0OTQ5NywgImF2ZyI6IDExMzIwNDg4LjAsICJ1bml0IjogImJ5dGVzIn19LCAiYnJhbmNoIjog
IndlYmtpdC10cnVuayIsICJ3ZWJraXQtcmV2aXNpb24iOiAiMTI5NzAzIn0sIHsidGltZXN0YW1w
IjogMTM0ODcwMDk4MSwgInJlc3VsdHMiOiB7IkNTUy9TdHlsZVNoZWV0SW5zZXJ0OkpTSGVhcCI6
IHsibWluIjogNjIxNjAuMCwgIm1heCI6IDY0Nzg0LjAsICJtZWRpYW4iOiA2NDExMi4wLCAidmFs
dWVzIjogWzYyMTYwLjAsIDYzNjk2LjAsIDYzNzkyLjAsIDYzOTIwLjAsIDY0MDE2LjAsIDY0MjA4
LjAsIDY0MzA0LjAsIDY0NTc2LjAsIDY0NTQ0LjAsIDY0Nzg0LjBdLCAic3RkZXYiOiA3MDAuNDI3
Mjk4MTU0NDkwMzYsICJhdmciOiA2NDAwMC4wLCAidW5pdCI6ICJieXRlcyJ9LCAiQ1NTL1N0eWxl
U2hlZXRJbnNlcnQiOiB7Im1pbiI6IDI0LjAsICJtYXgiOiA0NS4wLCAibWVkaWFuIjogMzQuMCwg
InZhbHVlcyI6IFsyNS4wLCAyNC4wLCAyOC4wLCAzMC4wLCAzMy4wLCAzNS4wLCAzNy4wLCA0MC4w
LCA0My4wLCA0NS4wXSwgInN0ZGV2IjogNi45NDI2MjE5ODMwODM5MTExLCAiYXZnIjogMzQuMCwg
InVuaXQiOiAibXMifSwgIkNTUy9TdHlsZVNoZWV0SW5zZXJ0Ok1hbGxvYyI6IHsibWluIjogMTA4
ODEwNjQuMCwgIm1heCI6IDExOTQwNTYwLjAsICJtZWRpYW4iOiAxMDk0ODQ0OC4wLCAidmFsdWVz
IjogWzEwOTYwNTI4LjAsIDEwOTI5MjQwLjAsIDEwOTIyNzkyLjAsIDEwOTM2MzY4LjAsIDEwOTIz
MzQ0LjAsIDEwODgxMDY0LjAsIDExOTQwNTYwLjAsIDExOTI0NzEyLjAsIDExOTE1ODA4LjAsIDEx
ODg2ODQ4LjBdLCAic3RkZXYiOiA0ODYxOTguNzE3MjE4MjE3MDksICJhdmciOiAxMTMyMjEyNi40
LCAidW5pdCI6ICJieXRlcyJ9fSwgImJyYW5jaCI6ICJ3ZWJraXQtdHJ1bmsiLCAid2Via2l0LXJl
dmlzaW9uIjogIjEyOTcwMyJ9LCB7InRpbWVzdGFtcCI6IDEzNDg3MDEyMTgsICJ3ZWJraXQtcmV2
aXNpb24iOiAiMTI5NzAzIiwgImRlc2NyaXB0aW9uIjogIm1vZCIsICJicmFuY2giOiAid2Via2l0
LXRydW5rIiwgInJlc3VsdHMiOiB7IkNTUy9TdHlsZVNoZWV0SW5zZXJ0IjogeyJtaW4iOiAxOC4w
LCAibWF4IjogMjQuMCwgIm1lZGlhbiI6IDIyLjAsICJ2YWx1ZXMiOiBbMjIuMCwgMTkuMCwgMTgu
MCwgMTguMCwgMTkuMCwgMjAuMCwgMjMuMCwgMjIuMCwgMjQuMCwgMjIuMCwgMjEuMCwgMjAuMCwg
MjIuMCwgMjIuMCwgMjEuMCwgMjAuMCwgMjIuMCwgMjIuMCwgMjIuMCwgMjIuMF0sICJzdGRldiI6
IDEuNTk2MDg4OTY5OTUxMjM2MiwgImF2ZyI6IDIxLjA1MDAwMDAwMDAwMDAwMSwgInVuaXQiOiAi
bXMifSwgIkNTUy9TdHlsZVNoZWV0SW5zZXJ0OkpTSGVhcCI6IHsibWluIjogNjI3MDQuMCwgIm1h
eCI6IDY2MzUyLjAsICJtZWRpYW4iOiA2NTE1Mi4wLCAidmFsdWVzIjogWzYyNzA0LjAsIDY0MTEy
LjAsIDY0MjQwLjAsIDY0MzY4LjAsIDY0NDY0LjAsIDY0NTI4LjAsIDY0NjI0LjAsIDY0NzY4LjAs
IDY0ODY0LjAsIDY1MTA0LjAsIDY1MjAwLjAsIDY1Mjk2LjAsIDY1MzkyLjAsIDY1NTYwLjAsIDY1
NjU2LjAsIDY1OTY4LjAsIDY2MDY0LjAsIDY2MTYwLjAsIDY2MjU2LjAsIDY2MzUyLjBdLCAic3Rk
ZXYiOiA4NzkuNjU5OTM0MjkyNzkyMTcsICJhdmciOiA2NTA4NC4wLCAidW5pdCI6ICJieXRlcyJ9
LCAiQ1NTL1N0eWxlU2hlZXRJbnNlcnQ6TWFsbG9jIjogeyJtaW4iOiAxMzYyODExMi4wLCAibWF4
IjogMTM4MjAzNTIuMCwgIm1lZGlhbiI6IDEzNjgzNzE2LjAsICJ2YWx1ZXMiOiBbMTM4MjAzNTIu
MCwgMTM3NjMwNjQuMCwgMTM3MjY3MDQuMCwgMTM3NTEwNDAuMCwgMTM3MjI3MjAuMCwgMTM3MzQ5
NjAuMCwgMTM3MDE2MDguMCwgMTM3MTc3NzYuMCwgMTM2ODQxNjguMCwgMTM2OTM1OTIuMCwgMTM2
NzUyMDAuMCwgMTM2ODMyNjQuMCwgMTM2NTkwMjQuMCwgMTM2NjcwODguMCwgMTM2NTQ4OTYuMCwg
MTM2NjI5NjAuMCwgMTM2MzU2NjQuMCwgMTM2NDc5NjguMCwgMTM2MjgxMTIuMCwgMTM2NDAyMDgu
MF0sICJzdGRldiI6IDQ3OTI3Ljc3NzUwNTc0MzI5NSwgImF2ZyI6IDEzNjkzNTE4LjQsICJ1bml0
IjogImJ5dGVzIn19fSwgeyJ0aW1lc3RhbXAiOiAxMzQ4NzAyNzMxLCAiZGVzY3JpcHRpb24iOiAi
bW9kIiwgInJlc3VsdHMiOiB7IkNTUy9TdHlsZVNoZWV0SW5zZXJ0OkpTSGVhcCI6IHsibWluIjog
NjI3MDQuMCwgIm1heCI6IDY2MzUyLjAsICJtZWRpYW4iOiA2NTE1Mi4wLCAidmFsdWVzIjogWzYy
NzA0LjAsIDY0MTEyLjAsIDY0MjQwLjAsIDY0MzY4LjAsIDY0NDY0LjAsIDY0NTI4LjAsIDY0NjI0
LjAsIDY0NzY4LjAsIDY0ODY0LjAsIDY1MTA0LjAsIDY1MjAwLjAsIDY1Mjk2LjAsIDY1MzkyLjAs
IDY1NTYwLjAsIDY1NjU2LjAsIDY1OTY4LjAsIDY2MDY0LjAsIDY2MTYwLjAsIDY2MjU2LjAsIDY2
MzUyLjBdLCAic3RkZXYiOiA4NzkuNjU5OTM0MjkyNzkyMTcsICJhdmciOiA2NTA4NC4wLCAidW5p
dCI6ICJieXRlcyJ9LCAiQ1NTL1N0eWxlU2hlZXRJbnNlcnQiOiB7Im1pbiI6IDE5LjAsICJtYXgi
OiAyMy4wLCAibWVkaWFuIjogMjAuMCwgInZhbHVlcyI6IFsyMC4wLCAxOS4wLCAxOS4wLCAyMS4w
LCAxOS4wLCAyMC4wLCAyMy4wLCAyMS4wLCAyMS4wLCAyMS4wLCAyMS4wLCAyMC4wLCAyMC4wLCAy
MC4wLCAyMC4wLCAyMi4wLCAyMC4wLCAxOS4wLCAxOS4wLCAyMC4wXSwgInN0ZGV2IjogMS4wNDI4
MzI2ODA3MzA3MSwgImF2ZyI6IDIwLjI1LCAidW5pdCI6ICJtcyJ9LCAiQ1NTL1N0eWxlU2hlZXRJ
bnNlcnQ6TWFsbG9jIjogeyJtaW4iOiAxMzE2MzA4OC4wLCAibWF4IjogMTM4MTYyOTYuMCwgIm1l
ZGlhbiI6IDEzNjgzNzEyLjAsICJ2YWx1ZXMiOiBbMTM4MTYyOTYuMCwgMTM3NTkwMDguMCwgMTM3
MzA2ODguMCwgMTM3NDI5MjAuMCwgMTM3MDI2ODguMCwgMTM3MzQ5MzYuMCwgMTM2OTc1MDQuMCwg
MTM3MTM3MTIuMCwgMTM2ODAxMjguMCwgMTM2OTM2ODAuMCwgMTM2NjMxMDQuMCwgMTM2ODcyOTYu
MCwgMTM2NTQ5OTIuMCwgMTMxNjMwODguMCwgMTM2NDY3ODQuMCwgMTM2NzUxNDQuMCwgMTM2MzU2
NTYuMCwgMTM2NTIwMzIuMCwgMTM2MTIwNjQuMCwgMTM2MjgxOTIuMF0sICJzdGRldiI6IDEyNDcw
Ny40NzA5NDE1NTk2NiwgImF2ZyI6IDEzNjY0NDk1LjYwMDAwMDAwMSwgInVuaXQiOiAiYnl0ZXMi
fX0sICJicmFuY2giOiAid2Via2l0LXRydW5rIiwgIndlYmtpdC1yZXZpc2lvbiI6ICIxMjk3MDMi
fSwgeyJ0aW1lc3RhbXAiOiAxMzQ4NzAyNzYxLCAid2Via2l0LXJldmlzaW9uIjogIjEyOTcwMyIs
ICJyZXN1bHRzIjogeyJDU1MvU3R5bGVTaGVldEluc2VydCI6IHsibWluIjogMTcuMCwgIm1heCI6
IDIyLjAsICJtZWRpYW4iOiAyMC4wLCAidmFsdWVzIjogWzIwLjAsIDIwLjAsIDE4LjAsIDE3LjAs
IDE3LjAsIDE5LjAsIDE4LjAsIDIxLjAsIDIwLjAsIDIyLjAsIDIyLjAsIDIyLjAsIDIyLjAsIDE5
LjAsIDIwLjAsIDE5LjAsIDIwLjAsIDIwLjAsIDIwLjAsIDIxLjBdLCAic3RkZXYiOiAxLjUyNTYx
NDYzMDIzOTIzNDIsICJhdmciOiAxOS44NTAwMDAwMDAwMDAwMDEsICJ1bml0IjogIm1zIn0sICJD
U1MvU3R5bGVTaGVldEluc2VydDpKU0hlYXAiOiB7Im1pbiI6IDYyNDgwLjAsICJtYXgiOiA2NjM1
Mi4wLCAibWVkaWFuIjogNjUxNTIuMCwgInZhbHVlcyI6IFs2MjQ4MC4wLCA2NDExMi4wLCA2NDI0
MC4wLCA2NDM2OC4wLCA2NDQ2NC4wLCA2NDUyOC4wLCA2NDYyNC4wLCA2NDc2OC4wLCA2NDg2NC4w
LCA2NTEwNC4wLCA2NTIwMC4wLCA2NTI5Ni4wLCA2NTM5Mi4wLCA2NTU2MC4wLCA2NTY1Ni4wLCA2
NTk2OC4wLCA2NjA2NC4wLCA2NjE2MC4wLCA2NjI1Ni4wLCA2NjM1Mi4wXSwgInN0ZGV2IjogOTEw
Ljc2NzIzNzAwNDA1NDU1LCAiYXZnIjogNjUwNzIuODAwMDAwMDAwMDAzLCAidW5pdCI6ICJieXRl
cyJ9LCAiQ1NTL1N0eWxlU2hlZXRJbnNlcnQ6TWFsbG9jIjogeyJtaW4iOiAxMzYxMjAzMi4wLCAi
bWF4IjogMTM4MjAzOTIuMCwgIm1lZGlhbiI6IDEzNjg1NjY4LjAsICJ2YWx1ZXMiOiBbMTM4MjAz
OTIuMCwgMTM3NTg5NjguMCwgMTM3MjI1NjguMCwgMTM3NDI5MTIuMCwgMTM3MTg2MjQuMCwgMTM3
MzQ4OTYuMCwgMTM2OTc0NzIuMCwgMTM3MjE2OTYuMCwgMTM2ODAwOTYuMCwgMTM3MDU3MzYuMCwg
MTM2NzEwMzIuMCwgMTM2OTEyNDAuMCwgMTM2NTg5ODQuMCwgMTM2NzkxMzYuMCwgMTM2NDY4ODAu
MCwgMTM2NjY5OTIuMCwgMTM2MjM2MTYuMCwgMTM2MzU4NzIuMCwgMTM2MTIwMzIuMCwgMTM2MzIx
ODQuMF0sICJzdGRldiI6IDUwMjEyLjQ3MzQyMDg1NDA3NiwgImF2ZyI6IDEzNjkxMDY2LjQsICJ1
bml0IjogImJ5dGVzIn19LCAiYnJhbmNoIjogIndlYmtpdC10cnVuayIsICJkZXNjcmlwdGlvbiI6
ICJtb2QifV08L3NjcmlwdD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCnNlY3Rpb24gewogICAg
YmFja2dyb3VuZDogd2hpdGU7CiAgICBwYWRkaW5nOiAxMHB4OwogICAgcG9zaXRpb246IHJlbGF0
aXZlOwp9CgpzZWN0aW9uIGgxIHsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGZvbnQtc2l6
ZTogMWVtOwp9CgpzZWN0aW9uIC50b29sdGlwIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAg
IHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6ICNmZmNjNjY7CiAgICBib3JkZXIt
cmFkaXVzOiA1cHg7CiAgICBwYWRkaW5nOiAwcHggNXB4Owp9Cgpib2R5IHsKICAgIHBhZGRpbmc6
IDBweDsKICAgIG1hcmdpbjogMHB4OwogICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7Cn0KCnRh
YmxlIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgd2lkdGg6IDEwMCU7Cn0KCnRhYmxlLCB0
ZCwgdGggewogICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICAgIHBhZGRpbmc6IDVweDsK
fQoKdHIuZXZlbiB7CiAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2Owp9Cgp0YWJsZSB0ZCB7CiAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOwp9Cgp0aCwgdGQg
ewogICAgY3Vyc29yOiBwb2ludGVyOwogICAgY3Vyc29yOiBoYW5kOwp9Cgp0aCB7CiAgICBiYWNr
Z3JvdW5kOiAjZTZlZWVlOwogICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIs
IGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2IoMjQ0LCAyNDQsIDI0NCkpLCB0byhyZ2Io
MjE3LCAyMTcsIDIxNykpKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7Cn0KCnRoOmFmdGVy
IHsKICAgIGNvbnRlbnQ6ICcgXDI1QjgnOwp9Cgp0aC5oZWFkZXJTb3J0VXA6YWZ0ZXIgewogICAg
Y29udGVudDogJyBcMjVCRSc7Cn0KCnRoLmhlYWRlclNvcnREb3duOmFmdGVyIHsKICAgIGNvbnRl
bnQ6ICcgXDI1QjQnOwp9Cgp0ZC5jb21wYXJpc29uLCB0ZC5yZXN1bHQgewogICAgdGV4dC1hbGln
bjogcmlnaHQ7Cn0KCnRkLmJldHRlciB7CiAgICBjb2xvcjogIzZjNjsKfQoKdGQud29yc2Ugewog
ICAgY29sb3I6ICNjNjY7Cn0KCi5jaGVja2JveCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
CiAgICBiYWNrZ3JvdW5kOiAjZWVlOwogICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChs
aW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShyZ2IoMjIwLCAyMjAsIDIyMCkpLCB0
byhyZ2IoMjAwLCAyMDAsIDIwMCkpKTsKICAgIGJvcmRlcjogaW5zZXQgMXB4ICNkZGQ7CiAgICBi
b3JkZXItcmFkaXVzOiA1cHg7CiAgICBtYXJnaW46IDEwcHg7CiAgICBmb250LXNpemU6IHNtYWxs
OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgY3Vyc29yOiBoYW5kOwogICAgLXdlYmtpdC11c2Vy
LXNlbGVjdDogbm9uZTsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgouY2hlY2tib3ggc3BhbiB7
CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBsaW5lLWhlaWdodDogMTAwJTsKICAgIHBh
ZGRpbmc6IDVweCA4cHg7CiAgICBib3JkZXI6IG91dHNldCAxcHggdHJhbnNwYXJlbnQ7Cn0KCi5j
aGVja2JveCAuY2hlY2tlZCB7CiAgICBiYWNrZ3JvdW5kOiAjZTZlZWVlOwogICAgYmFja2dyb3Vu
ZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShy
Z2IoMjU1LCAyNTUsIDI1NSkpLCB0byhyZ2IoMjM1LCAyMzUsIDIzNSkpKTsKICAgIGJvcmRlcjog
b3V0c2V0IDFweCAjZWVlOwogICAgYm9yZGVyLXJhZGl1czogNXB4Owp9Cgo8L3N0eWxlPgo8L2hl
YWQ+Cjxib2R5Pgo8ZGl2IHN0eWxlPSJwYWRkaW5nOiAwIDEwcHg7Ij4KUmVzdWx0IDxzcGFuIGlk
PSJ0aW1lLW1lbW9yeSIgY2xhc3M9ImNoZWNrYm94Ij48c3BhbiBjbGFzcz0iY2hlY2tlZCI+VGlt
ZTwvc3Bhbj48c3Bhbj5NZW1vcnk8L3NwYW4+PC9zcGFuPgpSZWZlcmVuY2UgPHNwYW4gaWQ9InJl
ZmVyZW5jZSIgY2xhc3M9ImNoZWNrYm94Ij48L3NwYW4+CjwvZGl2Pgo8c2NyaXB0PgoKJChkb2N1
bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewogICAgJCgnLmNoZWNrYm94JykuZWFjaChmdW5jdGlv
biAoaW5kZXgsIGNoZWNrYm94KSB7CiAgICAgICAgJChjaGVja2JveCkuY2hpbGRyZW4oJ3NwYW4n
KS5jbGljayhmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xh
c3MoJ2NoZWNrZWQnKSkKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgJChjaGVj
a2JveCkuY2hpbGRyZW4oJ3NwYW4nKS5yZW1vdmVDbGFzcygnY2hlY2tlZCcpOwogICAgICAgICAg
ICAkKHRoaXMpLmFkZENsYXNzKCdjaGVja2VkJyk7CiAgICAgICAgICAgICQoY2hlY2tib3gpLnRy
aWdnZXIoJ2NoYW5nZScsICQodGhpcykpOwogICAgICAgIH0pOwogICAgfSk7Cn0pCgo8L3Njcmlw
dD4KPHRhYmxlIGlkPSJjb250YWluZXIiPjwvdGFibGU+CjxzY3JpcHQ+CgpmdW5jdGlvbiBUZXN0
UmVzdWx0KGFzc29jaWF0ZWRUZXN0LCByZXN1bHQsIGFzc29jaWF0ZWRSdW4pIHsKICAgIHRoaXMu
dW5pdCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlc3VsdC51bml0OyB9CiAgICB0aGlzLnRlc3Qg
PSBmdW5jdGlvbiAoKSB7IHJldHVybiBhc3NvY2lhdGVkVGVzdDsgfQogICAgdGhpcy52YWx1ZXMg
PSBmdW5jdGlvbiAoKSB7IHJldHVybiByZXN1bHQudmFsdWVzID8gcmVzdWx0LnZhbHVlcy5tYXAo
ZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiBhc3NvY2lhdGVkVGVzdC5zY2FsaW5nRmFjdG9yKCkg
KiB2YWx1ZTsgfSkgOiB1bmRlZmluZWQ7IH0KICAgIHRoaXMudW5zY2FsZWRNZWFuID0gZnVuY3Rp
b24gKCkgeyByZXR1cm4gcmVzdWx0LmF2ZzsgfQogICAgdGhpcy5tZWFuID0gZnVuY3Rpb24gKCkg
eyByZXR1cm4gYXNzb2NpYXRlZFRlc3Quc2NhbGluZ0ZhY3RvcigpICogcmVzdWx0LmF2ZzsgfQog
ICAgdGhpcy5taW4gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBhc3NvY2lhdGVkVGVzdC5zY2FsaW5n
RmFjdG9yKCkgKiByZXN1bHQubWluOyB9CiAgICB0aGlzLm1heCA9IGZ1bmN0aW9uICgpIHsgcmV0
dXJuIGFzc29jaWF0ZWRUZXN0LnNjYWxpbmdGYWN0b3IoKSAqIHJlc3VsdC5tYXg7IH0KICAgIHRo
aXMuc3RkZXYgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBhc3NvY2lhdGVkVGVzdC5zY2FsaW5nRmFj
dG9yKCkgKiByZXN1bHQuc3RkZXY7IH0KICAgIHRoaXMuc3RkZXZSYXRpbyA9IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIHJlc3VsdC5zdGRldiAvIHJlc3VsdC5hdmc7IH0KICAgIHRoaXMucGVyY2VudERp
ZmZlcmVuY2UgPSBmdW5jdGlvbihvdGhlcikgeyByZXR1cm4gKG90aGVyLm1lYW4oKSAtIHRoaXMu
bWVhbigpKSAvIHRoaXMubWVhbigpOyB9CiAgICB0aGlzLmlzU3RhdGlzdGljYWxseVNpZ25pZmlj
YW50ID0gZnVuY3Rpb24gKG90aGVyKSB7CiAgICAgICAgdmFyIGRpZmYgPSBNYXRoLmFicyhvdGhl
ci5tZWFuKCkgLSB0aGlzLm1lYW4oKSk7CiAgICAgICAgcmV0dXJuIGRpZmYgPiB0aGlzLnN0ZGV2
KCkgJiYgZGlmZiA+IG90aGVyLnN0ZGV2KCk7CiAgICB9CiAgICB0aGlzLnJ1biA9IGZ1bmN0aW9u
ICgpIHsgcmV0dXJuIGFzc29jaWF0ZWRSdW47IH0KfQoKZnVuY3Rpb24gVGVzdFJ1bihlbnRyeSkg
ewogICAgdGhpcy5kZXNjcmlwdGlvbiA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGVudHJ5WydkZXNj
cmlwdGlvbiddOyB9CiAgICB0aGlzLndlYmtpdFJldmlzaW9uID0gZnVuY3Rpb24gKCkgeyByZXR1
cm4gZW50cnlbJ3dlYmtpdC1yZXZpc2lvbiddOyB9CiAgICB0aGlzLmxhYmVsID0gZnVuY3Rpb24g
KCkgewogICAgICAgIHZhciBsYWJlbCA9ICdyJyArIHRoaXMud2Via2l0UmV2aXNpb24oKTsKICAg
ICAgICBpZiAodGhpcy5kZXNjcmlwdGlvbigpKQogICAgICAgICAgICBsYWJlbCArPSAnICZkYXNo
OyAnICsgdGhpcy5kZXNjcmlwdGlvbigpOwogICAgICAgIHJldHVybiBsYWJlbDsKICAgIH0KfQoK
ZnVuY3Rpb24gUGVyZlRlc3QobmFtZSkgewogICAgdmFyIHRlc3RSZXN1bHRzID0gW107CiAgICB2
YXIgY2FjaGVkVW5pdCA9IG51bGw7CiAgICB2YXIgY2FjaGVkU2NhbGluZ0ZhY3RvciA9IG51bGw7
CgogICAgLy8gV2UgY2FuJ3QgZG8gdGhpcyBpbiBUZXN0UmVzdWx0IGJlY2F1c2UgYWxsIHJlc3Vs
dHMgZm9yIGVhY2ggdGVzdCBuZWVkIHRvIHNoYXJlIHRoZSBzYW1lIHVuaXQgYW5kIHRoZSBzYW1l
IHNjYWxpbmcgZmFjdG9yLgogICAgZnVuY3Rpb24gY29tcHV0ZVNjYWxpbmdGYWN0b3JJZk5lZWRl
ZCgpIHsKICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGJlIGFkanVzdGluZyB1bml0cyBv
biBldmVyeSB0ZXN0IHJlc3VsdC4KICAgICAgICAvLyBXZSBjYW4gb25seSBkbyB0aGlzIG9uIHRo
ZSBmaXJzdCB0ZXN0LgogICAgICAgIGlmICghdGVzdFJlc3VsdHMubGVuZ3RoIHx8IGNhY2hlZFVu
aXQpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgdmFyIHVuaXQgPSB0ZXN0UmVzdWx0c1sw
XS51bml0KCk7IC8vIEZJWE1FOiBXZSBzaG91bGQgdmVyaWZ5IHRoYXQgYWxsIHJlc3VsdHMgaGF2
ZSB0aGUgc2FtZSB1bml0LgogICAgICAgIHZhciBtZWFuID0gdGVzdFJlc3VsdHNbMF0udW5zY2Fs
ZWRNZWFuKCk7IC8vIEZJWE1FOiBXZSBzaG91bGQgbG9vayBhdCBhbGwgdmFsdWVzLgogICAgICAg
IHZhciBraWxvID0gdW5pdCA9PSAnYnl0ZXMnID8gMTAyNCA6IDEwMDA7CiAgICAgICAgaWYgKG1l
YW4gPiAxMCAqIGtpbG8gKiBraWxvICYmIHVuaXQgIT0gJ21zJykgewogICAgICAgICAgICBjYWNo
ZWRTY2FsaW5nRmFjdG9yID0gMSAvIGtpbG8gLyBraWxvOwogICAgICAgICAgICBjYWNoZWRVbml0
ID0gJ00gJyArIHVuaXQ7CiAgICAgICAgfSBlbHNlIGlmIChtZWFuID4gMTAgKiBraWxvKSB7CiAg
ICAgICAgICAgIGNhY2hlZFNjYWxpbmdGYWN0b3IgPSAxIC8ga2lsbzsKICAgICAgICAgICAgY2Fj
aGVkVW5pdCA9IHVuaXQgPT0gJ21zJyA/ICdzJyA6ICgnSyAnICsgdW5pdCk7CiAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgY2FjaGVkU2NhbGluZ0ZhY3RvciA9IDE7CiAgICAgICAgICAgIGNh
Y2hlZFVuaXQgPSB1bml0OwogICAgICAgIH0KICAgIH0KCiAgICB0aGlzLm5hbWUgPSBmdW5jdGlv
biAoKSB7IHJldHVybiBuYW1lOyB9CiAgICB0aGlzLmlzTWVtb3J5VGVzdCA9IGZ1bmN0aW9uICgp
IHsgcmV0dXJuIG5hbWUuaW5kZXhPZignOicpID49IDA7IH0KICAgIHRoaXMuYWRkUmVzdWx0ID0g
ZnVuY3Rpb24gKG5ld1Jlc3VsdCkgewogICAgICAgIHRlc3RSZXN1bHRzLnB1c2gobmV3UmVzdWx0
KTsKICAgICAgICBjYWNoZWRVbml0ID0gbnVsbDsKICAgICAgICBjYWNoZWRTY2FsaW5nRmFjdG9y
ID0gbnVsbDsKICAgIH0KICAgIHRoaXMucmVzdWx0cyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRl
c3RSZXN1bHRzOyB9CiAgICB0aGlzLnNjYWxpbmdGYWN0b3IgPSBmdW5jdGlvbigpIHsKICAgICAg
ICBjb21wdXRlU2NhbGluZ0ZhY3RvcklmTmVlZGVkKCk7CiAgICAgICAgcmV0dXJuIGNhY2hlZFNj
YWxpbmdGYWN0b3I7CiAgICB9CiAgICB0aGlzLnVuaXQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAg
Y29tcHV0ZVNjYWxpbmdGYWN0b3JJZk5lZWRlZCgpOwogICAgICAgIHJldHVybiBjYWNoZWRVbml0
OwogICAgfQogICAgdGhpcy5zbWFsbGVySXNCZXR0ZXIgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0
aGlzLnVuaXQoKSA9PSAnbXMnIHx8IHRoaXMudW5pdCgpID09ICdieXRlcyc7IH0KfQoKdmFyIHBs
b3RDb2xvciA9ICdyZ2IoMjMwLDUwLDUwKSc7CnZhciBzdWJwb2ludHNQbG90T3B0aW9ucyA9IHsK
ICAgIGxpbmVzOiB7c2hvdzp0cnVlLCBsaW5lV2lkdGg6IDB9LAogICAgY29sb3I6IHBsb3RDb2xv
ciwKICAgIHBvaW50czoge3Nob3c6IHRydWUsIHJhZGl1czogMX0sCiAgICBiYXJzOiB7c2hvdzog
ZmFsc2V9fTsKCnZhciBtYWluUGxvdE9wdGlvbnMgPSB7CiAgICB4YXhpczogewogICAgICAgIG1p
bjogLTAuNSwKICAgICAgICB0aWNrU2l6ZTogMSwKICAgIH0sCiAgICBjcm9zc2hhaXI6IHsgbW9k
ZTogJ3knIH0sCiAgICBzZXJpZXM6IHsgc2hhZG93U2l6ZTogMCB9LAogICAgYmFyczoge3Nob3c6
IHRydWUsIGFsaWduOiAnY2VudGVyJywgYmFyV2lkdGg6IDAuNX0sCiAgICBsaW5lczogeyBzaG93
OiBmYWxzZSB9LAogICAgcG9pbnRzOiB7IHNob3c6IHRydWUgfSwKICAgIGdyaWQ6IHsKICAgICAg
ICBib3JkZXJXaWR0aDogMiwKICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJywKICAgICAg
ICBob3ZlcmFibGU6IHRydWUsCiAgICAgICAgYXV0b0hpZ2hsaWdodDogZmFsc2UsCiAgICB9Cn07
CgpmdW5jdGlvbiBjcmVhdGVQbG90KGNvbnRhaW5lciwgdGVzdCkgewogICAgdmFyIHNlY3Rpb24g
PSAkKCc8c2VjdGlvbj48ZGl2IGNsYXNzPSJwbG90Ij48L2Rpdj4nCiAgICAgICAgKyAnPHNwYW4g
Y2xhc3M9InRvb2x0aXAiPjwvc3Bhbj48L3NlY3Rpb24+Jyk7CiAgICBzZWN0aW9uLmNoaWxkcmVu
KCcucGxvdCcpLmNzcyh7J3dpZHRoJzogMTAwICogdGVzdC5yZXN1bHRzKCkubGVuZ3RoICsgJ3B4
JywgJ2hlaWdodCc6ICczMDBweCd9KTsKICAgICQoY29udGFpbmVyKS5hcHBlbmQoc2VjdGlvbik7
CgogICAgdmFyIHBsb3RDb250YWluZXIgPSBzZWN0aW9uLmNoaWxkcmVuKCcucGxvdCcpOwogICAg
dmFyIG1pbklzWmVybyA9IHRydWU7CiAgICBhdHRhY2hQbG90KHRlc3QsIHBsb3RDb250YWluZXIs
IG1pbklzWmVybyk7CgogICAgdmFyIHRvb2x0aXAgPSBzZWN0aW9uLmNoaWxkcmVuKCcudG9vbHRp
cCcpOwogICAgcGxvdENvbnRhaW5lci5iaW5kKCdwbG90aG92ZXInLCBmdW5jdGlvbiAoZXZlbnQs
IHBvc2l0aW9uLCBpdGVtKSB7CiAgICAgICAgaWYgKGl0ZW0pIHsKICAgICAgICAgICAgdmFyIHBv
c3RmaXggPSBpdGVtLnNlcmllcy5pZCA/ICcgKCcgKyBpdGVtLnNlcmllcy5pZCArICcpJyA6ICcn
OwogICAgICAgICAgICB0b29sdGlwLmh0bWwoaXRlbS5kYXRhcG9pbnRbMV0udG9QcmVjaXNpb24o
NCkgKyBwb3N0Zml4KTsKICAgICAgICAgICAgdmFyIHNlY3Rpb25PZmZzZXQgPSAkKHNlY3Rpb24p
Lm9mZnNldCgpOwogICAgICAgICAgICB0b29sdGlwLmNzcyh7bGVmdDogaXRlbS5wYWdlWCAtIHNl
Y3Rpb25PZmZzZXQubGVmdCAtIHRvb2x0aXAub3V0ZXJXaWR0aCgpIC8gMiwgdG9wOiBpdGVtLnBh
Z2VZIC0gc2VjdGlvbk9mZnNldC50b3AgKyAxMH0pOwogICAgICAgICAgICB0b29sdGlwLmZhZGVJ
bigyMDApOwogICAgICAgIH0gZWxzZQogICAgICAgICAgICB0b29sdGlwLmhpZGUoKTsKICAgIH0p
OwogICAgcGxvdENvbnRhaW5lci5tb3VzZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgdG9vbHRp
cC5oaWRlKCk7CiAgICB9KTsKICAgIHBsb3RDb250YWluZXIuY2xpY2soZnVuY3Rpb24gKGV2ZW50
KSB7CiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICBtaW5Jc1plcm8gPSAh
bWluSXNaZXJvOwogICAgICAgIGF0dGFjaFBsb3QodGVzdCwgcGxvdENvbnRhaW5lciwgbWluSXNa
ZXJvKTsKICAgIH0pOwoKICAgIHJldHVybiBzZWN0aW9uOwp9CgpmdW5jdGlvbiBhdHRhY2hQbG90
KHRlc3QsIHBsb3RDb250YWluZXIsIG1pbklzWmVybykgewogICAgdmFyIHJlc3VsdHMgPSB0ZXN0
LnJlc3VsdHMoKTsKCiAgICB2YXIgdmFsdWVzID0gcmVzdWx0cy5yZWR1Y2UoZnVuY3Rpb24gKHZh
bHVlcywgcmVzdWx0LCBpbmRleCkgewogICAgICAgIHZhciBuZXdWYWx1ZXMgPSByZXN1bHQudmFs
dWVzKCk7CiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlcyA/IHZhbHVlcy5jb25jYXQobmV3VmFsdWVz
Lm1hcChmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIFtpbmRleCwgdmFsdWVdOyB9KSkgOiB2YWx1
ZXM7CiAgICB9LCBbXSk7CgogICAgdmFyIHBsb3REYXRhID0gW107CiAgICBpZiAodmFsdWVzLmxl
bmd0aCkKICAgICAgICBwbG90RGF0YSA9IFskLmV4dGVuZCh0cnVlLCB7fSwgc3VicG9pbnRzUGxv
dE9wdGlvbnMsIHtkYXRhOiB2YWx1ZXN9KV07CiAgICBlbHNlIHsKICAgICAgICBmdW5jdGlvbiBt
YWtlU3VicG9pbnRzKGlkLCBjYWxsYmFjaykgeyByZXR1cm4gJC5leHRlbmQodHJ1ZSwge30sIHN1
YnBvaW50c1Bsb3RPcHRpb25zLCB7aWQ6IGlkLCBkYXRhOiByZXN1bHRzLm1hcChjYWxsYmFjayl9
KTsgfQogICAgICAgIHBsb3REYXRhID0gW21ha2VTdWJwb2ludHMoJ21pbicsIGZ1bmN0aW9uIChy
ZXN1bHQsIGluZGV4KSB7IHJldHVybiBbaW5kZXgsIHJlc3VsdC5taW4oKV07IH0pLAogICAgICAg
IG1ha2VTdWJwb2ludHMoJ21heCcsIGZ1bmN0aW9uIChyZXN1bHQsIGluZGV4KSB7IHJldHVybiBb
aW5kZXgsIHJlc3VsdC5tYXgoKV07IH0pLAogICAgICAgIG1ha2VTdWJwb2ludHMoJy0mIzk2Mzsn
LCBmdW5jdGlvbiAocmVzdWx0LCBpbmRleCkgeyByZXR1cm4gW2luZGV4LCByZXN1bHQubWVhbigp
IC0gcmVzdWx0LnN0ZGV2KCldOyB9KSwKICAgICAgICBtYWtlU3VicG9pbnRzKCcrJiM5NjM7Jywg
ZnVuY3Rpb24gKHJlc3VsdCwgaW5kZXgpIHsgcmV0dXJuIFtpbmRleCwgcmVzdWx0Lm1lYW4oKSAr
IHJlc3VsdC5zdGRldigpXTsgfSldOwogICAgfQoKICAgIHBsb3REYXRhLnB1c2goe2lkOiAnJm11
OycsIGRhdGE6IHJlc3VsdHMubWFwKGZ1bmN0aW9uIChyZXN1bHQsIGluZGV4KSB7IHJldHVybiBb
aW5kZXgsIHJlc3VsdC5tZWFuKCldOyB9KSwgY29sb3I6IHBsb3RDb2xvcn0pOwoKICAgIHZhciBj
dXJyZW50UGxvdE9wdGlvbnMgPSAkLmV4dGVuZCh0cnVlLCB7fSwgbWFpblBsb3RPcHRpb25zLCB7
eWF4aXM6IHsKICAgICAgICBtaW46IG1pbklzWmVybyA/IDAgOiBNYXRoLm1pbi5hcHBseShNYXRo
LCByZXN1bHRzLm1hcChmdW5jdGlvbiAocmVzdWx0LCBpbmRleCkgeyByZXR1cm4gcmVzdWx0Lm1p
bigpOyB9KSkgKiAwLjk4LAogICAgICAgIG1heDogTWF0aC5tYXguYXBwbHkoTWF0aCwgcmVzdWx0
cy5tYXAoZnVuY3Rpb24gKHJlc3VsdCwgaW5kZXgpIHsgcmV0dXJuIHJlc3VsdC5tYXgoKTsgfSkp
ICogKG1pbklzWmVybyA/IDEuMSA6IDEuMDEpfX0pOwoKICAgIGN1cnJlbnRQbG90T3B0aW9ucy54
YXhpcy5tYXggPSByZXN1bHRzLmxlbmd0aCAtIDAuNTsKICAgIGN1cnJlbnRQbG90T3B0aW9ucy54
YXhpcy50aWNrcyA9IHJlc3VsdHMubWFwKGZ1bmN0aW9uIChyZXN1bHQsIGluZGV4KSB7IHJldHVy
biBbaW5kZXgsIHJlc3VsdC5ydW4oKS5sYWJlbCgpXTsgfSk7CgogICAgJC5wbG90KHBsb3RDb250
YWluZXIsIHBsb3REYXRhLCBjdXJyZW50UGxvdE9wdGlvbnMpOwp9CgpmdW5jdGlvbiB0b0ZpeGVk
V2lkdGhQcmVjaXNpb24odmFsdWUpIHsKICAgIHZhciBkZWNpbWFsID0gdmFsdWUudG9GaXhlZCgy
KTsKICAgIHJldHVybiBkZWNpbWFsOwp9CgpmdW5jdGlvbiBmb3JtYXRQZXJjZW50YWdlKGZyYWN0
aW9uKSB7CiAgICB2YXIgcGVyY2VudGFnZSA9IGZyYWN0aW9uICogMTAwOwogICAgcmV0dXJuIChm
cmFjdGlvbiAqIDEwMCkudG9GaXhlZCgyKSArICclJzsKfQoKZnVuY3Rpb24gY3JlYXRlVGFibGUo
dGVzdHMsIHJ1bnMsIHNob3VsZElnbm9yZU1lbW9yeSwgcmVmZXJlbmNlSW5kZXgpIHsKICAgICQo
JyNjb250YWluZXInKS5odG1sKCc8dGhlYWQ+PHRyPjx0aD5UZXN0PC90aD48dGg+VW5pdDwvdGg+
JyArIHJ1bnMubWFwKGZ1bmN0aW9uIChydW4sIGluZGV4KSB7CiAgICAgICAgcmV0dXJuICc8dGgg
Y29sc3Bhbj0iJyArIChpbmRleCA9PSByZWZlcmVuY2VJbmRleCA/IDIgOiAzKSArICciIGNsYXNz
PSJ7c29ydGVyOiBcJ2NvbXBhcmlzb25cJ30iPicgKyBydW4ubGFiZWwoKSArICc8L3RoPic7CiAg
ICB9KS5yZWR1Y2UoZnVuY3Rpb24gKG1hcmt1cCwgY2VsbCkgeyByZXR1cm4gbWFya3VwICsgY2Vs
bDsgfSwgJycpICsgJzwvdHI+PC9oZWFkPjx0Ym9keT48L3Rib2R5PicpOwoKICAgIHZhciB0ZXN0
TmFtZXMgPSBbXTsKICAgIGZvciAodGVzdE5hbWUgaW4gdGVzdHMpCiAgICAgICAgdGVzdE5hbWVz
LnB1c2godGVzdE5hbWUpOwoKICAgIHRlc3ROYW1lcy5zb3J0KCkubWFwKGZ1bmN0aW9uICh0ZXN0
TmFtZSkgewogICAgICAgIHZhciB0ZXN0ID0gdGVzdHNbdGVzdE5hbWVdOwogICAgICAgIGlmICh0
ZXN0LmlzTWVtb3J5VGVzdCgpICE9IHNob3VsZElnbm9yZU1lbW9yeSkKICAgICAgICAgICAgY3Jl
YXRlVGFibGVSb3codGVzdCwgdGVzdC5yZXN1bHRzKClbcmVmZXJlbmNlSW5kZXhdKTsKICAgIH0p
OwoKICAgICQoJyNjb250YWluZXInKS50YWJsZXNvcnRlcih7d2lkZ2V0czogWyd6ZWJyYSddfSk7
Cn0KCmZ1bmN0aW9uIGNyZWF0ZVRhYmxlUm93KHRlc3QsIHJlZmVyZW5jZVJlc3VsdCkgewogICAg
dmFyIHRhYmxlUm93ID0gJCgnPHRyPjx0ZCBjbGFzcz0idGVzdCI+JyArIHRlc3QubmFtZSgpICsg
JzwvdGQ+PHRkIGNsYXNzPSJ1bml0Ij4nICsgdGVzdC51bml0KCkgKyAnPC90ZD48L3RyPicpOwoK
ICAgIHRhYmxlUm93LmFwcGVuZCh0ZXN0LnJlc3VsdHMoKS5tYXAoZnVuY3Rpb24gKHJlc3VsdCwg
aW5kZXgpIHsKICAgICAgICB2YXIgc2Vjb25kQ2VsbCA9ICcnOwogICAgICAgIHZhciBoaWRkZW5W
YWx1ZSA9ICcnOwogICAgICAgIGlmIChyZXN1bHQgIT09IHJlZmVyZW5jZVJlc3VsdCkgewogICAg
ICAgICAgICB2YXIgcGVyY2VudERpZmZlcmVuY2UgPSByZWZlcmVuY2VSZXN1bHQucGVyY2VudERp
ZmZlcmVuY2UocmVzdWx0KTsKICAgICAgICAgICAgdmFyIGJldHRlciA9IHRlc3Quc21hbGxlcklz
QmV0dGVyKCkgPyBwZXJjZW50RGlmZmVyZW5jZSA8IDAgOiBwZXJjZW50RGlmZmVyZW5jZSA+IDA7
CiAgICAgICAgICAgIHZhciBjb21wYXJpc29uID0gJyc7CiAgICAgICAgICAgIHZhciBjbGFzc05h
bWUgPSAnY29tcGFyaXNvbic7CiAgICAgICAgICAgIGlmIChyZWZlcmVuY2VSZXN1bHQuaXNTdGF0
aXN0aWNhbGx5U2lnbmlmaWNhbnQocmVzdWx0KSkgewogICAgICAgICAgICAgICAgY29tcGFyaXNv
biA9IGZvcm1hdFBlcmNlbnRhZ2UoTWF0aC5hYnMocGVyY2VudERpZmZlcmVuY2UpKSArIChiZXR0
ZXIgPyAnIEJldHRlcicgOiAnIFdvcnNlJm5ic3A7Jyk7CiAgICAgICAgICAgICAgICBjbGFzc05h
bWUgKz0gYmV0dGVyID8gJyBiZXR0ZXInIDogJyB3b3JzZSc7CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgaGlkZGVuVmFsdWUgPSAnPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPnwnICsgY29t
cGFyaXNvbiArICc8L3NwYW4+JzsKICAgICAgICAgICAgc2Vjb25kQ2VsbCA9ICc8L3RkPjx0ZCBj
bGFzcz0iJyArIGNsYXNzTmFtZSArICciPicgKyBjb21wYXJpc29uOwogICAgICAgIH0KCiAgICAg
ICAgdmFyIHN0YXRpc3RpY3MgPSAnJnNpZ21hOz0nICsgdG9GaXhlZFdpZHRoUHJlY2lzaW9uKHJl
c3VsdC5zdGRldigpKSArICcsIG1pbj0nICsgdG9GaXhlZFdpZHRoUHJlY2lzaW9uKHJlc3VsdC5t
aW4oKSkKICAgICAgICAgICAgKyAnLCBtYXg9JyArIHRvRml4ZWRXaWR0aFByZWNpc2lvbihyZXN1
bHQubWF4KCkpOwoKICAgICAgICAvLyBUYWJsZXNvcnRlciBkb2Vzbid0IGtub3cgYWJvdXQgdGhl
IHNlY29uZCBjZWxsIHNvIHB1dCB0aGUgY29tcGFyaXNvbiBpbiB0aGUgaW52aXNpYmxlIGVsZW1l
bnQuCiAgICAgICAgcmV0dXJuICc8dGQgY2xhc3M9InJlc3VsdCIgdGl0bGU9IicgKyBzdGF0aXN0
aWNzICsgJyI+JyArIHRvRml4ZWRXaWR0aFByZWNpc2lvbihyZXN1bHQubWVhbigpKSArIGhpZGRl
blZhbHVlCiAgICAgICAgICAgICsgJzwvdGQ+PHRkIGNsYXNzPSJzdGRldiIgdGl0bGU9IicgKyBz
dGF0aXN0aWNzICsgJyI+JnBsdXNtbjsgJwogICAgICAgICAgICArIGZvcm1hdFBlcmNlbnRhZ2Uo
cmVzdWx0LnN0ZGV2UmF0aW8oKSkgKyBzZWNvbmRDZWxsICsgJzwvdGQ+JzsKICAgIH0pLnJlZHVj
ZShmdW5jdGlvbiAobWFya3VwLCBjZWxsKSB7IHJldHVybiBtYXJrdXAgKyBjZWxsOyB9LCAnJykp
OwoKICAgICQoJyNjb250YWluZXInKS5jaGlsZHJlbigndGJvZHknKS5sYXN0KCkuYXBwZW5kKHRh
YmxlUm93KTsKCiAgICB0YWJsZVJvdy5jbGljayhmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICBp
ZiAoZXZlbnQudGFyZ2V0ICE9IHRhYmxlUm93WzBdICYmIGV2ZW50LnRhcmdldC5wYXJlbnROb2Rl
ICE9IHRhYmxlUm93WzBdKQogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7CgogICAgICAgIHZhciBmaXJzdENlbGwgPSB0YWJsZVJvdy5jaGlsZHJlbign
dGQnKS5maXJzdCgpOwogICAgICAgIGlmIChmaXJzdENlbGwuY2hpbGRyZW4oJ3NlY3Rpb24nKS5s
ZW5ndGgpIHsKICAgICAgICAgICAgZmlyc3RDZWxsLmNoaWxkcmVuKCdzZWN0aW9uJykucmVtb3Zl
KCk7CiAgICAgICAgICAgIHRhYmxlUm93LmNoaWxkcmVuKCd0ZCcpLmNzcyh7J3BhZGRpbmctYm90
dG9tJzogJyd9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgcGxvdCA9IGNyZWF0
ZVBsb3QoZmlyc3RDZWxsLCB0ZXN0KTsKICAgICAgICAgICAgcGxvdC5jc3Moeydwb3NpdGlvbic6
ICdhYnNvbHV0ZScsICd6LWluZGV4JzogMn0pOwogICAgICAgICAgICB2YXIgb2Zmc2V0ID0gdGFi
bGVSb3cub2Zmc2V0KCk7CiAgICAgICAgICAgIG9mZnNldC5sZWZ0ICs9IDE7CiAgICAgICAgICAg
IG9mZnNldC50b3AgKz0gdGFibGVSb3cub3V0ZXJIZWlnaHQoKTsKICAgICAgICAgICAgcGxvdC5v
ZmZzZXQob2Zmc2V0KTsKICAgICAgICAgICAgdGFibGVSb3cuY2hpbGRyZW4oJ3RkJykuY3NzKHsn
cGFkZGluZy1ib3R0b20nOiBwbG90Lm91dGVySGVpZ2h0KCkgKyA1fSk7CiAgICAgICAgfQoKICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKfQoKZnVuY3Rpb24gaW5pdCgpIHsKICAgICQudGFi
bGVzb3J0ZXIuYWRkUGFyc2VyKHsKICAgICAgICBpZDogJ2NvbXBhcmlzb24nLAogICAgICAgIGlz
OiBmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIHJldHVybiBzLmluZGV4T2YoJ3wnKSA+PSAwOwog
ICAgICAgIH0sCiAgICAgICAgZm9ybWF0OiBmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIHZhciBw
YXJzZWQgPSBwYXJzZUZsb2F0KHMuc3Vic3RyaW5nKHMuaW5kZXhPZignfCcpICsgMSkpOwogICAg
ICAgICAgICByZXR1cm4gaXNOYU4ocGFyc2VkKSA/IDAgOiBwYXJzZWQ7CiAgICAgICAgfSwKICAg
ICAgICB0eXBlOiAnbnVtZXJpYycsCiAgICB9KTsKCiAgICB2YXIgcnVucyA9IFtdOwogICAgdmFy
IHRlc3RzID0ge307CiAgICAkLmVhY2goSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnanNvbicpLnRleHRDb250ZW50KSwgZnVuY3Rpb24gKGluZGV4LCBlbnRyeSkgewogICAgICAg
IHZhciBydW4gPSBuZXcgVGVzdFJ1bihlbnRyeSk7CiAgICAgICAgcnVucy5wdXNoKHJ1bik7CiAg
ICAgICAgJC5lYWNoKGVudHJ5LnJlc3VsdHMsIGZ1bmN0aW9uICh0ZXN0LCByZXN1bHQpIHsKICAg
ICAgICAgICAgaWYgKCF0ZXN0c1t0ZXN0XSkKICAgICAgICAgICAgICAgIHRlc3RzW3Rlc3RdID0g
bmV3IFBlcmZUZXN0KHRlc3QpOwogICAgICAgICAgICB0ZXN0c1t0ZXN0XS5hZGRSZXN1bHQobmV3
IFRlc3RSZXN1bHQodGVzdHNbdGVzdF0sIHJlc3VsdCwgcnVuKSk7CiAgICAgICAgfSk7CiAgICB9
KTsKCiAgICB2YXIgc2hvdWxkSWdub3JlTWVtb3J5PSB0cnVlOwogICAgdmFyIHJlZmVyZW5jZUlu
ZGV4ID0gMDsKICAgIGNyZWF0ZVRhYmxlKHRlc3RzLCBydW5zLCBzaG91bGRJZ25vcmVNZW1vcnks
IHJlZmVyZW5jZUluZGV4KTsKCiAgICAkKCcjdGltZS1tZW1vcnknKS5iaW5kKCdjaGFuZ2UnLCBm
dW5jdGlvbiAoZXZlbnQsIGNoZWNrZWRFbGVtZW50KSB7CiAgICAgICAgc2hvdWxkSWdub3JlTWVt
b3J5ID0gY2hlY2tlZEVsZW1lbnQudGV4dENvbnRlbnQgPT0gJ1RpbWUnOwogICAgICAgIGNyZWF0
ZVRhYmxlKHRlc3RzLCBydW5zLCBzaG91bGRJZ25vcmVNZW1vcnksIHJlZmVyZW5jZUluZGV4KTsK
ICAgIH0pOwoKICAgIHJ1bnMubWFwKGZ1bmN0aW9uIChydW4sIGluZGV4KSB7CiAgICAgICAgJCgn
I3JlZmVyZW5jZScpLmFwcGVuZCgnPHNwYW4gdmFsdWU9IicgKyBpbmRleCArICciJyArIChpbmRl
eCA9PSByZWZlcmVuY2VJbmRleCA/ICcgY2xhc3M9ImNoZWNrZWQiJyA6ICcnKSArICc+JyArIHJ1
bi5sYWJlbCgpICsgJzwvc3Bhbj4nKTsKICAgIH0pCgogICAgJCgnI3JlZmVyZW5jZScpLmJpbmQo
J2NoYW5nZScsIGZ1bmN0aW9uIChldmVudCwgY2hlY2tlZEVsZW1lbnQpIHsKICAgICAgICByZWZl
cmVuY2VJbmRleCA9IHBhcnNlSW50KGNoZWNrZWRFbGVtZW50LmdldEF0dHJpYnV0ZSgndmFsdWUn
KSk7CiAgICAgICAgY3JlYXRlVGFibGUodGVzdHMsIHJ1bnMsIHNob3VsZElnbm9yZU1lbW9yeSwg
cmVmZXJlbmNlSW5kZXgpOwogICAgfSk7Cn0KCmluaXQoKTsKCjwvc2NyaXB0Pgo8L2JvZHk+Cjwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165898</attachid>
            <date>2012-09-26 16:53:01 -0700</date>
            <delta_ts>2012-09-27 16:38:44 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>fix97741</filename>
            <type>text/plain</type>
            <size>2471</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjk3MTIpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5LTI2ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFBlcmZvcm1hbmNlVGVz
dHMvQ1NTL1N0eWxlU2hlZXRJbnNlcnQuaHRtbCBoYXMgYSB0aW1lLWRlcGVuZGVudCBub24tR2F1
c3NpYW4gZGlzdHJpYnV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05Nzc0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlc2V0IHRoZSBjb250ZW50IGluIHRoZSBpZnJhbWUgaW4gZWFjaCBydW4gc28g
dGhhdCB0aGUgcnVudGltZSBmcm9tIGVhY2ggcnVuIGZvbGxvd3MgYSBub3JtYWwgZGlzdHJpYnV0
aW9uLgorICAgICAgICBXZSBjYW4gY2xlYW51cCB0aGlzIGNvZGUgb25jZSBteSBwYXRjaCB0byBy
ZXBsYWNlIHRoZSBhcmd1bWVudCBsaXN0IG9mIHJ1biBieSBhbiBvYmplY3QgaXMgbGFuZGVkLgor
CisgICAgICAgICogQ1NTL1N0eWxlU2hlZXRJbnNlcnQuaHRtbDoKKwogMjAxMi0wOS0yNiAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgcnVuUGVyU2Vjb25k
IGluIFBlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJyYXkqIGFuZCBldmVudC10YXJn
ZXQtd3JhcHBlcgpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9DU1MvU3R5bGVTaGVldEluc2VydC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvQ1NTL1N0eWxlU2hlZXRJbnNlcnQu
aHRtbAkocmV2aXNpb24gMTI5NzEwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9DU1MvU3R5bGVTaGVl
dEluc2VydC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDE5ICs3LDI4IEBACiA8aWZyYW1lPjwv
aWZyYW1lPgogPC9ib2R5PgogPHNjcmlwdD4KLXZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXTsKLXZhciB0ZXN0RG9jID0gZnJhbWUuY29udGVudERv
Y3VtZW50OwotdmFyIGRvY1RleHQgPSAiIjsKLWRvY1RleHQgKz0gIjxib2R5PjxzdHlsZT4uZm9v
IHtjb2xvcjpyZWR9PC9zdHlsZT4iOwotZG9jVGV4dCArPSAiPGRpdiBjbGFzcz0nYmFyJz5Gb288
L2Rpdj4iOwotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQotICAgIGRvY1RleHQgKz0g
IjxkaXYgY2xhc3M9J2Zvbyc+Rm9vPC9kaXY+IjsKLXRlc3REb2MuYm9keS5pbm5lckhUTUwgPSBk
b2NUZXh0OworCitmdW5jdGlvbiBzZXR1cCgpIHsKKyAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07CisgICAgdmFyIHRlc3REb2MgPSBmcmFt
ZS5jb250ZW50RG9jdW1lbnQ7CisgICAgdmFyIGRvY1RleHQgPSAiIjsKKyAgICBkb2NUZXh0ICs9
ICI8Ym9keT48c3R5bGU+LmZvbyB7Y29sb3I6cmVkfTwvc3R5bGU+IjsKKyAgICBkb2NUZXh0ICs9
ICI8ZGl2IGNsYXNzPSdiYXInPkZvbzwvZGl2PiI7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKQorICAgICAgICBkb2NUZXh0ICs9ICI8ZGl2IGNsYXNzPSdmb28nPkZvbzwvZGl2
PiI7CisgICAgdGVzdERvYy5ib2R5LmlubmVySFRNTCA9IGRvY1RleHQ7CisgICAgcmV0dXJuIHRl
c3REb2M7Cit9CiAKIFBlcmZUZXN0UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKLSAgICB2YXIgc3R5
bGVFbGVtID0gdGVzdERvYy5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOwotICAgIHN0eWxlRWxlbS5p
bm5lclRleHQgPSAiLmJhciB7Y29sb3I6Z3JlZW59IjsKLSAgICB0ZXN0RG9jLmJvZHkuaW5zZXJ0
QmVmb3JlKHN0eWxlRWxlbSwgdGVzdERvYy5ib2R5LmZpcnN0Q2hpbGQpOwotfSwgNTAsIDEwKTsK
KyAgICB2YXIgdGVzdERvYyA9IHNldHVwKCk7CisgICAgdmFyIHN0YXJ0ID0gUGVyZlRlc3RSdW5u
ZXIubm93KCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsgaSsrKSB7CisgICAgICAgIHZh
ciBzdHlsZUVsZW0gPSB0ZXN0RG9jLmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CisgICAgICAgIHN0
eWxlRWxlbS5pbm5lclRleHQgPSAiLmJhciB7Y29sb3I6Z3JlZW59IjsKKyAgICAgICAgdGVzdERv
Yy5ib2R5Lmluc2VydEJlZm9yZShzdHlsZUVsZW0sIHRlc3REb2MuYm9keS5maXJzdENoaWxkKTsK
KyAgICB9CisgICAgcmV0dXJuIFBlcmZUZXN0UnVubmVyLm5vdygpIC0gc3RhcnQ7Cit9LCAxKTsK
IDwvc2NyaXB0PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>