<?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>155723</bug_id>
          
          <creation_ts>2016-03-21 10:51:39 -0700</creation_ts>
          <short_desc>Update benchmark tests</short_desc>
          <delta_ts>2016-03-21 17:30:59 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1176768</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 10:51:39 -0700</bug_when>
    <thetext>Condense some of the tests, and remove redundant ones. Enhance the master suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176776</commentid>
    <comment_count>1</comment_count>
      <attachid>274604</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 11:02:32 -0700</bug_when>
    <thetext>Created attachment 274604
1. Merge text tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176777</commentid>
    <comment_count>2</comment_count>
      <attachid>274605</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 11:02:51 -0700</bug_when>
    <thetext>Created attachment 274605
2. Clean up miscellaneous test suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176778</commentid>
    <comment_count>3</comment_count>
      <attachid>274606</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 11:03:08 -0700</bug_when>
    <thetext>Created attachment 274606
3. Move compositing transforms test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176781</commentid>
    <comment_count>4</comment_count>
      <attachid>274607</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 11:03:26 -0700</bug_when>
    <thetext>Created attachment 274607
4. Move 3D suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176782</commentid>
    <comment_count>5</comment_count>
      <attachid>274608</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 11:03:50 -0700</bug_when>
    <thetext>Created attachment 274608
5. Add canvas tests that include all stroke and fill paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176783</commentid>
    <comment_count>6</comment_count>
      <attachid>274609</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 11:04:05 -0700</bug_when>
    <thetext>Created attachment 274609
6. Add a helper method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176784</commentid>
    <comment_count>7</comment_count>
      <attachid>274610</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 11:04:22 -0700</bug_when>
    <thetext>Created attachment 274610
7. Add quadratic and bezier segments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176786</commentid>
    <comment_count>8</comment_count>
      <attachid>274611</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 11:07:17 -0700</bug_when>
    <thetext>Created attachment 274611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176829</commentid>
    <comment_count>9</comment_count>
      <attachid>274611</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-03-21 13:31:00 -0700</bug_when>
    <thetext>Comment on attachment 274611
Patch

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

&gt; PerformanceTests/Animometer/tests/master/resources/canvas-tests.js:87
&gt; +        this.color = colors[Math.floor(Pseudo.random() * colors.length)];

Can&apos;t we use Stage.randomElementInArray() here?

&gt; PerformanceTests/Animometer/tests/master/resources/canvas-tests.js:95
&gt; +            nextPoint = this.randomPoint(stage, new Point(this.gridSizeX / 2, this.gridSizeY / 2));

this.gridSize.center() can be if this.gridSize is defined as a Point object.

&gt; PerformanceTests/Animometer/tests/master/resources/canvas-tests.js:101
&gt; +    gridSizeY: 40,

Should we use a point object instead of two variables?

&gt; PerformanceTests/Animometer/tests/master/resources/canvas-tests.js:123
&gt; +        var y = (coordinate.y + .5) * stage.size.y / (this.gridSizeY + 1);

What is the need for adding .5 to coordinate.x and coordinate.y? And why do we add 1 to this.gridSizeX and this.gridSizeY?

Can&apos;t we cache the value: gridCells = stage.size.divide(gridSize) and use it instead of this.gridSizeX and this.gridSizeY?

&gt; PerformanceTests/Animometer/tests/master/resources/text.js:26
&gt; +    ],

Do we need to add a class for Color? I think this array would be more readable if it is written as array of color pairs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176889</commentid>
    <comment_count>10</comment_count>
      <attachid>274611</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 17:25:15 -0700</bug_when>
    <thetext>Comment on attachment 274611
Patch

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

&gt;&gt; PerformanceTests/Animometer/tests/master/resources/canvas-tests.js:87
&gt;&gt; +        this.color = colors[Math.floor(Pseudo.random() * colors.length)];
&gt; 
&gt; Can&apos;t we use Stage.randomElementInArray() here?

Done.

&gt;&gt; PerformanceTests/Animometer/tests/master/resources/canvas-tests.js:123
&gt;&gt; +        var y = (coordinate.y + .5) * stage.size.y / (this.gridSizeY + 1);
&gt; 
&gt; What is the need for adding .5 to coordinate.x and coordinate.y? And why do we add 1 to this.gridSizeX and this.gridSizeY?
&gt; 
&gt; Can&apos;t we cache the value: gridCells = stage.size.divide(gridSize) and use it instead of this.gridSizeX and this.gridSizeY?

As I say in the Changelog, it&apos;s to scale down the whole thing a little bit so that you can see the full stroke along the edges of the grid.

I can move these numbers into stage.

&gt;&gt; PerformanceTests/Animometer/tests/master/resources/text.js:26
&gt;&gt; +    ],
&gt; 
&gt; Do we need to add a class for Color? I think this array would be more readable if it is written as array of color pairs.

It would probably be good to add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176890</commentid>
    <comment_count>11</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-21 17:30:59 -0700</bug_when>
    <thetext>Committed r198509: &lt;http://trac.webkit.org/changeset/198509&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274604</attachid>
            <date>2016-03-21 11:02:32 -0700</date>
            <delta_ts>2016-03-21 11:07:46 -0700</delta_ts>
            <desc>1. Merge text tests</desc>
            <filename>0001-Update-benchmark-tests.patch</filename>
            <type>text/plain</type>
            <size>9599</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAwM2I5NjFjM2JhODk2YzZiNDc5NzlhMTM5YmYxNDc2NjM4MGNhMDAyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDIxIE1hciAyMDE2IDEwOjU3OjM1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxLzddIFVwZGF0ZSBi
ZW5jaG1hcmsgdGVzdHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU3MjMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKTWVyZ2UgdGV4dCB0ZXN0cyB0b2dl
dGhlciBpbnRvIG9uZS4KCiogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzOiBS
ZW1vdmUgaW50ZXJuYXRpb25hbC5odG1sLgoqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVy
bmF0aW9uYWwuaHRtbDogUmVtb3ZlZC4KKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJj
ZXMvdGV4dC5qczoKKGFuaW1hdGUpOiBVcGRhdGUgc3R5bGluZy4gTWFudWFsbHkgY2FsY3VsYXRl
IGdyYWRpZW50cyBmb3IgdGhlIHNoYWRvdyBwYXJ0aWNsZXMuClJlZHVjZSB0aGUgc3RlcCBzaXpl
IGZvciB5IGRpcmVjdGlvbiB0byBhdm9pZCBjdXR0aW5nIHRleHQgb2ZmIGF0IHRoZSBtYXJnaW5z
LiBJbmNyZWFzZQpzdGVwIGZvciB4IHNpbmNlIHRoZXJlIHdpbGwgYmUgYSBsaXR0bGUgbW9yZSBy
b29tLgoqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3RleHQuaHRtbDogQWRkIG1vcmUgdHJhbnNs
YXRpb25zIGFuZCBsYXkgaXQgb3V0IGluIGEgdGFibGUuCi0tLQogLi4uL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL3J1bm5lci90ZXN0cy5qcyAgICAgICAgICAgfCAgNiArLS0KIC4uLi9Bbmltb21ldGVy
L3Rlc3RzL21hc3Rlci9pbnRlcm5hdGlvbmFsLmh0bWwgICAgIHwgNDAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvdGV4dC5qcyAgICAg
IHwgMzUgKysrKysrKysrKysrLS0tLS0tCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvbWFzdGVyL3RleHQuaHRtbCB8IDQzICsrKysrKysrKysrKysrKysrKysrLS0KIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKysrKysrKysr
CiA1IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQogZGVs
ZXRlIG1vZGUgMTAwNjQ0IFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIv
aW50ZXJuYXRpb25hbC5odG1sCgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qcwppbmRleCAwODgxZTMyLi4wOGIzM2Q2IDEwMDY0
NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0
cy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90
ZXN0cy5qcwpAQCAtMzMsMTAgKzMzLDYgQEAgU3VpdGVzLnB1c2gobmV3IFN1aXRlKCJBbmltb21l
dGVyIiwKICAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgbGluZSBzZWdtZW50cyIKICAgICAgICAg
fSwKICAgICAgICAgewotICAgICAgICAgICAgdXJsOiAibWFzdGVyL3RleHQuaHRtbCIsCi0gICAg
ICAgICAgICBuYW1lOiAiQSB0byBaIgotICAgICAgICB9LAotICAgICAgICB7CiAgICAgICAgICAg
ICB1cmw6ICJtYXN0ZXIvZm9jdXMuaHRtbCIsCiAgICAgICAgICAgICBuYW1lOiAiRm9jdXMiCiAg
ICAgICAgIH0sCkBAIC00NSw3ICs0MSw3IEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiQW5pbW9t
ZXRlciIsCiAgICAgICAgICAgICBuYW1lOiAiSW1hZ2VzIgogICAgICAgICB9LAogICAgICAgICB7
Ci0gICAgICAgICAgICB1cmw6ICJtYXN0ZXIvaW50ZXJuYXRpb25hbC5odG1sIiwKKyAgICAgICAg
ICAgIHVybDogIm1hc3Rlci90ZXh0Lmh0bWwiLAogICAgICAgICAgICAgbmFtZTogIkRlc2lnbiIK
ICAgICAgICAgfSwKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmlt
b21ldGVyL3Rlc3RzL21hc3Rlci9pbnRlcm5hdGlvbmFsLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVybmF0aW9uYWwuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzE1ZGE5My4uMDAwMDAwMAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVybmF0aW9uYWwuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyIgaHJlZj0icmVzb3VyY2VzL3N0YWdlLmNzcyI+Ci0gICAgPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KLQotICAgICAgICAjc3RhZ2UgewotICAgICAgICAgICAgZm9udC1mYW1pbHk6IEhl
bHZldGljYTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogNDhweDsKLSAgICAgICAgfQotICAgICAg
ICAjc3RhZ2UgZGl2IHsKLSAgICAgICAgICAgIHdpZHRoOiA2MCU7Ci0gICAgICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgICAg
IH0KLSAgICAgICAgI3RlbXBsYXRlIHsKLSAgICAgICAgICAgIGNvbG9yOiAjMTExOwotICAgICAg
ICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxkaXYgaWQ9InN0YWdlIj4K
LSAgICAgICAgPGRpdiBpZD0idGVtcGxhdGUiPgotICAgICAgICAgICAgPHA+6K6+6K6hPC9wPgot
ICAgICAgICAgICAgPHAgY2xhc3M9InJ0bCI+2KrYtdmF2YrZhTwvcD4KLSAgICAgICAgICAgIDxw
PtC00LjQt9Cw0LnQvTwvcD4KLSAgICAgICAgICAgIDxwPuODh+OCtuOCpOODszwvcD4KLSAgICAg
ICAgICAgIDxwIGNsYXNzPSJydGwiPtei15nXpteV15E8L3A+Ci0gICAgICAgICAgICA8cD7rlJTs
npDsnbg8L3A+Ci0gICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
eHQuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvdGV4dC5qcyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3RleHQuanMKaW5k
ZXggZDcwYjdhYS4uZjU5NTBiMiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvdGV4dC5qcworKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy90ZXh0LmpzCkBAIC0xMCwxMiArMTAs
MjAgQEAgdmFyIFRleHRTdGFnZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKICAg
ICB9LCB7CiAKICAgICBzaGFkb3dGYWxsb2ZmOiBuZXcgVW5pdEJlemllcihuZXcgUG9pbnQoMC4w
MTUsIDAuNzUwKSwgbmV3IFBvaW50KDAuNzU1LCAwLjIzNSkpLAotICAgIHNoaW1tZXJBdmVyYWdl
OiAwLjQsCisgICAgc2hpbW1lckF2ZXJhZ2U6IDAsCiAgICAgc2hpbW1lck1heDogMC41LAogICAg
IG1pbGxpc2Vjb25kc1BlclJvdGF0aW9uOiAxMDAwIC8gKC4yNiAqIE1hdGguUEkgKiAyKSwKLSAg
ICBwYXJ0aWNsZURpc3RhbmNlOiAxLAorICAgIHBhcnRpY2xlRGlzdGFuY2VYOiAxLjUsCisgICAg
cGFydGljbGVEaXN0YW5jZVk6IC41LAogICAgIGxpZ2h0bmVzc01pbjogMTMsCiAgICAgbGlnaHRu
ZXNzTWF4OiA5NCwKKyAgICBncmFkaWVudHM6IFsKKyAgICAgICAgWzEwLCAxNzYsIDE3NiwgMjA5
LCAxNDgsIDE0MF0sCisgICAgICAgIFsxNzEsIDEyMCwgMTU0LCAyNDUsIDE5NiwgMTU0XSwKKyAg
ICAgICAgWzIyNCwgOTksIDk5LCA3MSwgMTM0LCAxNDhdLAorICAgICAgICBbMTAxLCAxMDAsIDEx
NywgODAsIDIzMCwgMTc1XSwKKyAgICAgICAgWzIzMiwgMTY1LCAzMCwgNjksIDE4NiwgMTcyXQor
ICAgIF0sCiAKICAgICBpbml0aWFsaXplOiBmdW5jdGlvbihiZW5jaG1hcmspCiAgICAgewpAQCAt
NjYsMjEgKzc0LDI0IEBAIHZhciBUZXh0U3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3Mo
U3RhZ2UsCiAgICAgICAgIHZhciB4ID0gMDsKICAgICAgICAgdmFyIHkgPSAwOwogICAgICAgICB2
YXIgcHJvZ3Jlc3MgPSAwOwotICAgICAgICB2YXIgc3RlcFggPSBNYXRoLnNpbihhbmdsZSkgKiB0
aGlzLnBhcnRpY2xlRGlzdGFuY2U7Ci0gICAgICAgIHZhciBzdGVwWSA9IE1hdGguY29zKGFuZ2xl
KSAqIHRoaXMucGFydGljbGVEaXN0YW5jZTsKKyAgICAgICAgdmFyIHN0ZXBYID0gTWF0aC5zaW4o
YW5nbGUpICogdGhpcy5wYXJ0aWNsZURpc3RhbmNlWDsKKyAgICAgICAgdmFyIHN0ZXBZID0gTWF0
aC5jb3MoYW5nbGUpICogdGhpcy5wYXJ0aWNsZURpc3RhbmNlWTsKKyAgICAgICAgdmFyIGdyYWRp
ZW50ID0gdGhpcy5ncmFkaWVudHNbTWF0aC5mbG9vcihhbmdsZS8oTWF0aC5QSSAqIDIpKSAlIHRo
aXMuZ3JhZGllbnRzLmxlbmd0aF07CisgICAgICAgIHZhciBvZmZzZXQgPSBTdGFnZS5kYXRlQ291
bnRlclZhbHVlKDIwMCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fb2Zmc2V0
SW5kZXg7ICsraSkgewotICAgICAgICAgICAgeCArPSBzdGVwWDsKLSAgICAgICAgICAgIHkgKz0g
c3RlcFk7Ci0KICAgICAgICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy50ZXN0RWxlbWVudHNbaV07
CiAKICAgICAgICAgICAgIHZhciBjb2xvclByb2dyZXNzID0gdGhpcy5zaGFkb3dGYWxsb2ZmLnNv
bHZlKHByb2dyZXNzKTsKLSAgICAgICAgICAgIHZhciBzaGltbWVyID0gTWF0aC5zaW4oU3RhZ2Uu
ZGF0ZUNvdW50ZXJWYWx1ZSgxMDApIC0gY29sb3JQcm9ncmVzcyk7Ci0gICAgICAgICAgICBjb2xv
clByb2dyZXNzICs9IFV0aWxpdGllcy5sZXJwKHNoaW1tZXIsIHRoaXMuc2hpbW1lckF2ZXJhZ2Us
IHRoaXMuc2hpbW1lck1heCk7Ci0gICAgICAgICAgICB2YXIgaW50ZXJwb2xhdGVkTGlnaHRuZXNz
ID0gTWF0aC5yb3VuZChVdGlsaXRpZXMubGVycChNYXRoLm1heChNYXRoLm1pbihjb2xvclByb2dy
ZXNzLCAxKSwgMCksIHRoaXMubGlnaHRuZXNzTWluLCB0aGlzLmxpZ2h0bmVzc01heCkpOworICAg
ICAgICAgICAgdmFyIHNoaW1tZXIgPSBNYXRoLnNpbihvZmZzZXQgLSBjb2xvclByb2dyZXNzKTsK
KyAgICAgICAgICAgIGNvbG9yUHJvZ3Jlc3MgPSBNYXRoLm1heChNYXRoLm1pbihjb2xvclByb2dy
ZXNzICsgVXRpbGl0aWVzLmxlcnAoc2hpbW1lciwgdGhpcy5zaGltbWVyQXZlcmFnZSwgdGhpcy5z
aGltbWVyTWF4KSwgMSksIDApOworICAgICAgICAgICAgdmFyIHIgPSBNYXRoLnJvdW5kKFV0aWxp
dGllcy5sZXJwKGNvbG9yUHJvZ3Jlc3MsIGdyYWRpZW50WzBdLCBncmFkaWVudFszXSkpOworICAg
ICAgICAgICAgdmFyIGcgPSBNYXRoLnJvdW5kKFV0aWxpdGllcy5sZXJwKGNvbG9yUHJvZ3Jlc3Ms
IGdyYWRpZW50WzFdLCBncmFkaWVudFs0XSkpOworICAgICAgICAgICAgdmFyIGIgPSBNYXRoLnJv
dW5kKFV0aWxpdGllcy5sZXJwKGNvbG9yUHJvZ3Jlc3MsIGdyYWRpZW50WzJdLCBncmFkaWVudFs1
XSkpOworICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5jb2xvciA9ICJyZ2IoIiArIHIgKyAiLCIg
KyBnICsgIiwiICsgYiArICIpIjsKIAotICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5jb2xvciA9
ICJoc2woMCwwJSwiICsgaW50ZXJwb2xhdGVkTGlnaHRuZXNzICsgIiUpIjsKLSAgICAgICAgICAg
IGVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gInRyYW5zbGF0ZVgoIiArIE1hdGguZmxvb3IoeSkg
KyAicHgpIHRyYW5zbGF0ZVkoIiArIE1hdGguZmxvb3IoeCkgKyAicHgpIjsKKyAgICAgICAgICAg
IHggKz0gc3RlcFg7CisgICAgICAgICAgICB5ICs9IHN0ZXBZOworICAgICAgICAgICAgZWxlbWVu
dC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlWCgiICsgTWF0aC5mbG9vcih4KSArICJweCkg
dHJhbnNsYXRlWSgiICsgTWF0aC5mbG9vcih5KSArICJweCkiOwogCiAgICAgICAgICAgICBwcm9n
cmVzcyArPSB0aGlzLl9zdGVwUHJvZ3Jlc3M7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0Lmh0bWwKaW5kZXggYmMzMjgzNC4u
MDJiNTE2YSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21h
c3Rlci90ZXh0Lmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21h
c3Rlci90ZXh0Lmh0bWwKQEAgLTgsMjAgKzgsNTcgQEAKICAgICAgICAgI3N0YWdlIHsKICAgICAg
ICAgICAgIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7CiAgICAgICAgICAgICBmb250LXNpemU6IDQ4
cHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzEzNTM0Oy8qICNkMTk0OGM7Ki8K
ICAgICAgICAgfQogICAgICAgICAjc3RhZ2UgZGl2IHsKLSAgICAgICAgICAgIHdpZHRoOiAyMWVt
OworICAgICAgICAgICAgd2lkdGg6IDgwJTsKKyAgICAgICAgICAgIGhlaWdodDogOTAlOwogICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOwogICAgICAgICB9CiAgICAgICAgICN0ZW1wbGF0ZSB7Ci0gICAgICAgICAgICBjb2xvcjog
IzExMTsKKyAgICAgICAgICAgIGNvbG9yOiAjRkNGQ0ZDOworICAgICAgICB9CisgICAgICAgIHRh
YmxlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgIHdpZHRo
OiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICB9CisgICAgICAgIHRk
IHsKKyAgICAgICAgICAgIHdpZHRoOiAzMyU7CisgICAgICAgIH0KKyAgICAgICAgdHIgeworICAg
ICAgICAgICAgaGVpZ2h0OiAyMCU7CiAgICAgICAgIH0KICAgICA8L3N0eWxlPgogPC9oZWFkPgog
PGJvZHk+CiAgICAgPGRpdiBpZD0ic3RhZ2UiPgogICAgICAgICA8ZGl2IGlkPSJ0ZW1wbGF0ZSI+
Ci0gICAgICAgICAgICBXaGVuZXZlciB0aGUgYmxhY2sgZm94IGp1bXBlZCB0aGUgc3F1aXJyZWwg
Z2F6ZWQgc3VzcGljaW91c2x5LiBBbWF6aW5nbHkgZmV3IGRpc2NvdGhlcXVlcyBwcm92aWRlIGp1
a2Vib3hlcy4KKyAgICAgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgICAgICA8dGJvZHk+Cisg
ICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD7Pg8+H
zq3OtM65zr88L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkPuiuvuiuoTwvdGQ+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3V1bm5pdHRlbHU8L3RkPgorICAgICAgICAgICAg
ICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8dGQ+ZGVzaWduPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD7QtNC4
0LfQsNC50L08L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJydGwiPtiq
2LXZhdmK2YU8L3RkPgorICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAg
ICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+65SU7J6Q7J24PC90ZD4KKyAg
ICAgICAgICAgICAgICAgICAgICAgIDx0ZD5jb25jZXB0aW9uPC90ZD4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDx0ZD7jg4fjgrbjgqTjg7M8L3RkPgorICAgICAgICAgICAgICAgICAgICA8L3Ry
PgorICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+
a29uc3RydWt0aW9uPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0icnRs
Ij7XoteZ16bXldeRPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5kaXNlw7FvPC90
ZD4KKyAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3Rib2R5Pgor
ICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+CiAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNzU0OGQ3MS4uMzVlMDA0NCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxNi0wMy0yMCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgVXBk
YXRlIGJlbmNobWFyayB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU1NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTWVyZ2UgdGV4dCB0ZXN0cyB0b2dldGhlciBpbnRvIG9uZS4KKworICAgICAg
ICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qczogUmVtb3ZlIGludGVybmF0
aW9uYWwuaHRtbC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9pbnRlcm5hdGlv
bmFsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVz
b3VyY2VzL3RleHQuanM6CisgICAgICAgIChhbmltYXRlKTogVXBkYXRlIHN0eWxpbmcuIE1hbnVh
bGx5IGNhbGN1bGF0ZSBncmFkaWVudHMgZm9yIHRoZSBzaGFkb3cgcGFydGljbGVzLgorICAgICAg
ICBSZWR1Y2UgdGhlIHN0ZXAgc2l6ZSBmb3IgeSBkaXJlY3Rpb24gdG8gYXZvaWQgY3V0dGluZyB0
ZXh0IG9mZiBhdCB0aGUgbWFyZ2lucy4gSW5jcmVhc2UKKyAgICAgICAgc3RlcCBmb3IgeCBzaW5j
ZSB0aGVyZSB3aWxsIGJlIGEgbGl0dGxlIG1vcmUgcm9vbS4KKyAgICAgICAgKiBBbmltb21ldGVy
L3Rlc3RzL21hc3Rlci90ZXh0Lmh0bWw6IEFkZCBtb3JlIHRyYW5zbGF0aW9ucyBhbmQgbGF5IGl0
IG91dCBpbiBhIHRhYmxlLgorCiAyMDE2LTAzLTE4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYSBiYXNpYyBXZWJHTCB0ZXN0IHRvIEFuaW1vbWV0ZXIKLS0g
CjIuNi40IChBcHBsZSBHaXQtNjMpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274605</attachid>
            <date>2016-03-21 11:02:51 -0700</date>
            <delta_ts>2016-03-21 11:07:50 -0700</delta_ts>
            <desc>2. Clean up miscellaneous test suite.</desc>
            <filename>0002-Update-benchmark-tests.patch</filename>
            <type>text/plain</type>
            <size>16193</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAxNjk0MGEzNDJhZjI0NzNiMjMwODEyYTFiMDVhNTIzMzE4YjY2YmU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDIxIE1hciAyMDE2IDEwOjU4OjA3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyLzddIFVwZGF0ZSBi
ZW5jaG1hcmsgdGVzdHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU3MjMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQ2xlYW4gdXAgbWlzY2VsbGFuZW91
cyB0ZXN0IHN1aXRlLiBBZGQgYSBjYW52YXMgZWxsaXBzZSB0ZXN0LCBhbmQgcmVtb3ZlIHRoZSBv
dGhlcgpjYW52YXMgdGVzdHMuCgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90
ZXN0cy5qczogQWRkIGVsbGlwc2UgdGVzdHMgdG8gdGhlIHNpbXBsZSBzdWl0ZS4KKiBBbmltb21l
dGVyL3Rlc3RzL21pc2MvY2FudmFzLWVsZWN0cm9ucy5odG1sOiBSZW1vdmVkLgoqIEFuaW1vbWV0
ZXIvdGVzdHMvbWlzYy9jYW52YXMtc3RhcnMuaHRtbDogUmVtb3ZlZC4KKiBBbmltb21ldGVyL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanM6IFJlbW92ZWQuCiogQW5pbW9t
ZXRlci90ZXN0cy9taXNjL3Jlc291cmNlcy9jYW52YXMtc3RhcnMuanM6IFJlbW92ZWQuCiogQW5p
bW9tZXRlci90ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3NpbXBsZS1jYW52YXMtcGF0aHMuanM6IEFk
ZCBlbGxpcHNlIHByaW1pdGl2ZXMuCi0tLQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVn
LXJ1bm5lci90ZXN0cy5qcyAgICAgfCAgMTYgKy0tCiAuLi4vQW5pbW9tZXRlci90ZXN0cy9taXNj
L2NhbnZhcy1lbGVjdHJvbnMuaHRtbCAgICB8ICAxNiAtLS0KIC4uLi9Bbmltb21ldGVyL3Rlc3Rz
L21pc2MvY2FudmFzLXN0YXJzLmh0bWwgICAgICAgIHwgIDE2IC0tLQogLi4uL3Rlc3RzL21pc2Mv
cmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMgICAgICAgfCAxMTUgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAuLi4vdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2FudmFzLXN0YXJzLmpzICAgICAgICAg
ICB8IDEwOSAtLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vdGVzdHMvc2ltcGxlL3Jlc291cmNlcy9z
aW1wbGUtY2FudmFzLXBhdGhzLmpzICB8ICA0MiArKysrKysrKwogUGVyZm9ybWFuY2VUZXN0cy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKysrCiA3IGZpbGVzIGNoYW5n
ZWQsIDY3IGluc2VydGlvbnMoKyksIDI2NCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMtZWxlY3Ryb25z
Lmh0bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvbWlzYy9jYW52YXMtc3RhcnMuaHRtbAogZGVsZXRlIG1vZGUgMTAwNjQ0IFBlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL3Jlc291cmNlcy9jYW52YXMtZWxlY3Ryb25zLmpz
CiBkZWxldGUgbW9kZSAxMDA2NDQgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL2NhbnZhcy1zdGFycy5qcwoKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMKaW5kZXgg
YjAxOWNhYi4uYzhmNWQ1MiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMKQEAgLTI4MSw2ICsyODEs
MTAgQEAgU3VpdGVzLnB1c2gobmV3IFN1aXRlKCJCYXNpYyBjYW52YXMgcGF0aCBzdWl0ZSIsCiAg
ICAgICAgICAgICBuYW1lOiAiQ2FudmFzIHJlY3RzIgogICAgICAgICB9LAogICAgICAgICB7Cisg
ICAgICAgICAgICB1cmw6ICJzaW1wbGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sP3BhdGhUeXBl
PWVsbGlwc2UiLAorICAgICAgICAgICAgbmFtZTogIkNhbnZhcyBlbGxpcHNlcyIKKyAgICAgICAg
fSwKKyAgICAgICAgewogICAgICAgICAgICAgdXJsOiAic2ltcGxlL3NpbXBsZS1jYW52YXMtcGF0
aHMuaHRtbD9wYXRoVHlwZT1saW5lRmlsbCIsCiAgICAgICAgICAgICBuYW1lOiAiQ2FudmFzIGxp
bmUgcGF0aCwgZmlsbCIKICAgICAgICAgfSwKQEAgLTMwNSw2ICszMDksMTAgQEAgU3VpdGVzLnB1
c2gobmV3IFN1aXRlKCJCYXNpYyBjYW52YXMgcGF0aCBzdWl0ZSIsCiAgICAgICAgICAgICBuYW1l
OiAiQ2FudmFzIHJlY3RzLCBmaWxsIgogICAgICAgICB9LAogICAgICAgICB7CisgICAgICAgICAg
ICB1cmw6ICJzaW1wbGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sP3BhdGhUeXBlPWVsbGlwc2VG
aWxsIiwKKyAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgZWxsaXBzZXMsIGZpbGwiCisgICAgICAg
IH0sCisgICAgICAgIHsKICAgICAgICAgICAgIHVybDogInNpbXBsZS90aWxlZC1jYW52YXMtaW1h
Z2UuaHRtbCIsCiAgICAgICAgICAgICBuYW1lOiAiQ2FudmFzIHB1dC9nZXQgaW1hZ2UgZGF0YSIK
ICAgICAgICAgfSwKQEAgLTMyNiwxMyArMzM0LDUgQEAgU3VpdGVzLnB1c2gobmV3IFN1aXRlKCJN
aXNjZWxsYW5lb3VzIFRlc3RzIiwKICAgICAgICAgICAgIHVybDogIm1pc2MvY29tcG9zaXRpbmct
dHJhbnNmb3Jtcy5odG1sP3BhcnRpY2xlV2lkdGg9NTAmcGFydGljbGVIZWlnaHQ9NTAmZmlsdGVy
cz15ZXMmaW1hZ2VTcmM9Li4vcmVzb3VyY2VzL3lpbi15YW5nLnN2ZyIsCiAgICAgICAgICAgICBu
YW1lOiAiQ29tcG9zaXRlZCBUcmFuc2Zvcm1zIgogICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgICB1cmw6ICJtaXNjL2NhbnZhcy1lbGVjdHJvbnMuaHRtbCIsCi0gICAgICAgICAgICBu
YW1lOiAiQ2FudmFzIGVsZWN0cm9ucyIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICAgdXJsOiAibWlzYy9jYW52YXMtc3RhcnMuaHRtbCIsCi0gICAgICAgICAgICBuYW1lOiAiQ2Fu
dmFzIHN0YXJzIgotICAgICAgICB9LAogICAgIF0KICkpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLWVsZWN0cm9ucy5odG1sIGIvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLWVsZWN0cm9ucy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjkzM2JkLi4wMDAwMDAwCi0tLSBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZhcy1lbGVjdHJvbnMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vcmVzb3VyY2VzL3N0YWdlLmNzcyI+Ci08
L2hlYWQ+Ci08Ym9keT4KLSAgICA8Y2FudmFzIGlkPSJzdGFnZSI+PC9jYW52YXM+Ci0gICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY2FudmFzLWVsZWN0cm9ucy5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52
YXMtc3RhcnMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2Nh
bnZhcy1zdGFycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTViMGIyLi4w
MDAwMDAwCi0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZh
cy1zdGFycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9yZXNvdXJjZXMvc3Rh
Z2UuY3NzIj4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYW52YXMtc3RhcnMuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci0gICAgPGNhbnZhcyBpZD0ic3RhZ2UiPjwvY2FudmFzPgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2FudmFzLWVsZWN0cm9ucy5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmRjNmUyMS4uMDAwMDAwMAotLS0gYS9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2FudmFzLWVsZWN0cm9ucy5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0KLWZ1bmN0aW9u
IENhbnZhc0VsZWN0cm9uKHN0YWdlKQotewotICAgIHRoaXMuX2NvbnRleHQgPSBzdGFnZS5jb250
ZXh0OwotICAgIHRoaXMuX3N0YWdlU2l6ZSA9IHN0YWdlLnNpemU7Ci0KLSAgICB2YXIgbWluU2lk
ZSA9IE1hdGgubWluKHRoaXMuX3N0YWdlU2l6ZS53aWR0aCwgdGhpcy5fc3RhZ2VTaXplLmhlaWdo
dCk7Ci0gICAgdmFyIHJhZGl1c1ggPSBTdGFnZS5yYW5kb20obWluU2lkZSAvIDgsIDcgKiBtaW5T
aWRlIC8gMTYpOwotICAgIHZhciByYWRpdXNZID0gU3RhZ2UucmFuZG9tKG1pblNpZGUgLyA4LCAz
ICogcmFkaXVzWCAvIDQpOwotICAgIHRoaXMuX29yYml0UmFkaXVzZXMgPSBuZXcgUG9pbnQocmFk
aXVzWCwgcmFkaXVzWSk7Ci0gICAgdGhpcy5fcmFkaXVzID0gU3RhZ2UucmFuZG9tKDUsIDE1KTsK
LSAgICB0aGlzLl9kaXJlY3Rpb24gPSBTdGFnZS5yYW5kb21JbnQoMCwgMik7Ci0gICAgdGhpcy5f
YW5nbGUgPSBTdGFnZS5yYW5kb21JbnQoMCwgMzYwKTsKLSAgICB0aGlzLl9jb2xvciA9IFN0YWdl
LnJhbmRvbUNvbG9yKCk7Ci0gICAgdGhpcy5fcm90YXRlciA9IFN0YWdlLnJhbmRvbVJvdGF0ZXIo
KTsKLSAgICB0aGlzLl9yb3RhdGVyLm5leHQoU3RhZ2UucmFuZG9tKDAsIHRoaXMuX3JvdGF0ZXIu
aW50ZXJ2YWwpKTsKLX0KLQotQ2FudmFzRWxlY3Ryb24ucHJvdG90eXBlID0gewotICAgIF9kcmF3
OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIG9m
IHRoZSBvYmplY3Qgb24gdGhlIGVsbGlwc2UuCi0gICAgICAgIHZhciBhbmdsZSA9IHRoaXMuX2Rp
cmVjdGlvbiA/IHRoaXMuX3JvdGF0ZXIuZGVncmVlKCkgOiAzNjAgLSB0aGlzLl9yb3RhdGVyLmRl
Z3JlZSgpOwotICAgICAgICB2YXIgcG9zaXRpb24gPSB0aGlzLl9zdGFnZVNpemUuY2VudGVyLnN1
YnRyYWN0KFBvaW50LnBvaW50T25FbGxpcHNlKGFuZ2xlLCB0aGlzLl9vcmJpdFJhZGl1c2VzKSk7
Ci0KLSAgICAgICAgdGhpcy5fY29udGV4dC5zYXZlKCk7Ci0gICAgICAgICAgICB0aGlzLl9jb250
ZXh0LnRyYW5zbGF0ZSh0aGlzLl9zdGFnZVNpemUuY2VudGVyLngsIHRoaXMuX3N0YWdlU2l6ZS5j
ZW50ZXIueSk7Ci0gICAgICAgICAgICB0aGlzLl9jb250ZXh0LnJvdGF0ZSh0aGlzLl9hbmdsZSAq
IE1hdGguUEkgLyAxODApOwotICAgICAgICAgICAgdGhpcy5fY29udGV4dC50cmFuc2xhdGUoLXRo
aXMuX3N0YWdlU2l6ZS5jZW50ZXIueCwgLXRoaXMuX3N0YWdlU2l6ZS5jZW50ZXIueSk7Ci0KLSAg
ICAgICAgICAgIC8vIFNldCB0aGUgc3Ryb2tlIGFuZCB0aGUgZmlsbCBjb2xvcnMKLSAgICAgICAg
ICAgIHRoaXMuX2NvbnRleHQuc3Ryb2tlU3R5bGUgPSAicmdiYSgxOTIsIDE5MiwgMTkyLCAwLjkp
IjsKLSAgICAgICAgICAgIHRoaXMuX2NvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5fY29sb3I7Ci0K
LSAgICAgICAgICAgIC8vIERyYXcgdGhlIG9yYml0IG9mIHRoZSBvYmplY3QuCi0gICAgICAgICAg
ICBpZiAodGhpcy5fY29udGV4dC5lbGxpcHNlKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fY29u
dGV4dC5iZWdpblBhdGgoKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0LmVsbGlwc2Uo
dGhpcy5fc3RhZ2VTaXplLmNlbnRlci54LCB0aGlzLl9zdGFnZVNpemUuY2VudGVyLnksIHRoaXMu
X29yYml0UmFkaXVzZXMueCwgdGhpcy5fb3JiaXRSYWRpdXNlcy55LCAwLCAwLCAyICogTWF0aC5Q
SSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fY29udGV4dC5zdHJva2UoKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgLy8gRHJhdyB0aGUgb2JqZWN0LgotICAgICAgICAgICAgdGhpcy5f
Y29udGV4dC5iZWdpblBhdGgoKTsKLSAgICAgICAgICAgIHRoaXMuX2NvbnRleHQuYXJjKHBvc2l0
aW9uLngsIHBvc2l0aW9uLnksIHRoaXMuX3JhZGl1cywgMCwgTWF0aC5QSSAqIDIsIHRydWUpOwot
ICAgICAgICAgICAgdGhpcy5fY29udGV4dC5maWxsKCk7Ci0gICAgICAgIHRoaXMuX2NvbnRleHQu
cmVzdG9yZSgpOwotICAgIH0sCi0KLSAgICBhbmltYXRlOiBmdW5jdGlvbih0aW1lRGVsdGEpCi0g
ICAgewotICAgICAgICB0aGlzLl9yb3RhdGVyLm5leHQodGltZURlbHRhIC8gMTAwKTsKLSAgICAg
ICAgdGhpcy5fZHJhdygpOwotICAgIH0KLX07Ci0KLUNhbnZhc0VsZWN0cm9uc1N0YWdlID0gVXRp
bGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdlLAotICAgIGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIFN0YWdlLmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuX2VsZWN0cm9ucyA9IFtdOwotICAg
IH0sIHsKLQotICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGJlbmNobWFyaywgb3B0aW9ucykKLSAg
ICB7Ci0gICAgICAgIFN0YWdlLnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcywgYmVuY2ht
YXJrLCBvcHRpb25zKTsKLSAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5lbGVtZW50LmdldENv
bnRleHQoIjJkIik7Ci0gICAgfSwKLQotICAgIHR1bmU6IGZ1bmN0aW9uKGNvdW50KQotICAgIHsK
LSAgICAgICAgaWYgKGNvdW50ID09IDApCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
aWYgKGNvdW50ID4gMCkgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsg
KytpKQotICAgICAgICAgICAgICAgIHRoaXMuX2VsZWN0cm9ucy5wdXNoKG5ldyBDYW52YXNFbGVj
dHJvbih0aGlzKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBj
b3VudCA9IE1hdGgubWluKC1jb3VudCwgdGhpcy5fZWxlY3Ryb25zLmxlbmd0aCk7Ci0gICAgICAg
IHRoaXMuX2VsZWN0cm9ucy5zcGxpY2UoLWNvdW50LCBjb3VudCk7Ci0gICAgfSwKLQotICAgIGFu
aW1hdGU6IGZ1bmN0aW9uKHRpbWVEZWx0YSkKLSAgICB7Ci0gICAgICAgIHRoaXMuY29udGV4dC5j
bGVhclJlY3QoMCwgMCwgdGhpcy5zaXplLngsIHRoaXMuc2l6ZS55KTsKLQotICAgICAgICAvLyBE
cmF3IGEgYmlnIHN0YXIgaW4gdGhlIG1pZGRsZS4KLSAgICAgICAgdGhpcy5jb250ZXh0LmZpbGxT
dHlsZSA9ICJvcmFuZ2UiOwotICAgICAgICB0aGlzLmNvbnRleHQuYmVnaW5QYXRoKCk7Ci0gICAg
ICAgIHRoaXMuY29udGV4dC5hcmModGhpcy5zaXplLmNlbnRlci54LCB0aGlzLnNpemUuY2VudGVy
LnksIDUwLCAwLCBNYXRoLlBJICogMiwgdHJ1ZSk7Ci0gICAgICAgIHRoaXMuY29udGV4dC5maWxs
KCk7Ci0KLSAgICAgICAgdGhpcy5fZWxlY3Ryb25zLmZvckVhY2goZnVuY3Rpb24oZWxlY3Ryb24p
IHsKLSAgICAgICAgICAgIGVsZWN0cm9uLmFuaW1hdGUodGltZURlbHRhKTsKLSAgICAgICAgfSk7
Ci0gICAgfSwKLQotICAgIGNvbXBsZXhpdHk6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9lbGVjdHJvbnMubGVuZ3RoOwotICAgIH0KLX0pOwotCi1DYW52YXNFbGVjdHJv
bnNCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQmVuY2htYXJrLAotICAgIGZ1
bmN0aW9uKG9wdGlvbnMpCi0gICAgewotICAgICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBuZXcg
Q2FudmFzRWxlY3Ryb25zU3RhZ2UoKSwgb3B0aW9ucyk7Ci0gICAgfQotKTsKLQotd2luZG93LmJl
bmNobWFya0NsYXNzID0gQ2FudmFzRWxlY3Ryb25zQmVuY2htYXJrOwotCi19KSgpOwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9taXNjL3Jlc291cmNlcy9jYW52YXMtc3RhcnMuanMgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2FudmFzLXN0YXJzLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyN2M5Y2M5Li4wMDAwMDAwCi0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL3Jlc291cmNlcy9jYW52YXMtc3RhcnMuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxMDkgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotCi1mdW5jdGlv
biBDYW52YXNTdGFyKHN0YWdlKQotewotICAgIHRoaXMuX2NvbnRleHQgPSBzdGFnZS5jb250ZXh0
OwotCi0gICAgdGhpcy5fc2l6ZSA9IFN0YWdlLnJhbmRvbVNxdWFyZVNpemUoNSwgMjApOwotICAg
IHRoaXMuX2NlbnRlciA9IFN0YWdlLnJhbmRvbVBvc2l0aW9uKHN0YWdlLnNpemUuc3VidHJhY3Qo
dGhpcy5fc2l6ZSkpLmFkZCh0aGlzLl9zaXplLmNlbnRlcik7Ci0gICAgdGhpcy5fcm90YXRlWCA9
IDA7Ci0gICAgdGhpcy5fcm90YXRlRGVsdGFYID0gU3RhZ2UucmFuZG9tKDAuMywgMC43KTsKLX0K
LQotQ2FudmFzU3Rhci5wcm90b3R5cGUgPSB7Ci0gICAgX2RyYXc6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2NvbnRleHQuc2F2ZSgpOwotICAgICAgICB0aGlzLl9jb250ZXh0LnRy
YW5zbGF0ZSh0aGlzLl9jZW50ZXIueCwgdGhpcy5fY2VudGVyLnkpOwotCi0gICAgICAgIHRoaXMu
X2NvbnRleHQuZmlsbFN0eWxlID0gJ3llbGxvdyc7Ci0gICAgICAgIHRoaXMuX2NvbnRleHQuc3Ry
b2tlU3R5bGUgPSAnd2hpdGUnOwotCi0gICAgICAgIHRoaXMuX2NvbnRleHQubGluZVdpZHRoID0g
MTsKLQotICAgICAgICB0aGlzLl9jb250ZXh0LmJlZ2luUGF0aCgpOwotICAgICAgICB0aGlzLl9j
b250ZXh0Lm1vdmVUbyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgLXRo
aXMuX3NpemUueSAvICAyKTsKLSAgICAgICAgdGhpcy5fY29udGV4dC5saW5lVG8oK3RoaXMuX3Np
emUueCAvIDIwIC0gdGhpcy5fcm90YXRlWCAvIDUsIC10aGlzLl9zaXplLnkgLyAxMCk7Ci0gICAg
ICAgIHRoaXMuX2NvbnRleHQubGluZVRvKCt0aGlzLl9zaXplLnggLyA0ICAtIHRoaXMuX3JvdGF0
ZVgsICAgICAgICAgICAgICAgICAgICAgIDApOwotICAgICAgICB0aGlzLl9jb250ZXh0LmxpbmVU
bygrdGhpcy5fc2l6ZS54IC8gMjAgLSB0aGlzLl9yb3RhdGVYIC8gNSwgK3RoaXMuX3NpemUueSAv
IDEwKTsKLSAgICAgICAgdGhpcy5fY29udGV4dC5saW5lVG8oICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAsICt0aGlzLl9zaXplLnkgLyAgMik7Ci0gICAgICAgIHRoaXMuX2Nv
bnRleHQubGluZVRvKC10aGlzLl9zaXplLnggLyAyMCArIHRoaXMuX3JvdGF0ZVggLyA1LCArdGhp
cy5fc2l6ZS55IC8gMTApOwotICAgICAgICB0aGlzLl9jb250ZXh0LmxpbmVUbygtdGhpcy5fc2l6
ZS54IC8gIDQgKyB0aGlzLl9yb3RhdGVYLCAgICAgICAgICAgICAgICAgICAgICAwKTsKLSAgICAg
ICAgdGhpcy5fY29udGV4dC5saW5lVG8oLXRoaXMuX3NpemUueCAvIDIwICsgdGhpcy5fcm90YXRl
WCAvIDUsIC10aGlzLl9zaXplLnkgLyAxMCk7Ci0gICAgICAgIHRoaXMuX2NvbnRleHQubGluZVRv
KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAtdGhpcy5fc2l6ZS55IC8g
IDIpOwotCi0gICAgICAgIHRoaXMuX2NvbnRleHQuZmlsbCgpOwotICAgICAgICB0aGlzLl9jb250
ZXh0LnN0cm9rZSgpOwotICAgICAgICB0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpOwotICAgICAg
ICB0aGlzLl9jb250ZXh0LnJlc3RvcmUoKTsKLSAgICB9LAotCi0gICAgYW5pbWF0ZTogZnVuY3Rp
b24odGltZURlbHRhKQotICAgIHsKLSAgICAgICAgdGhpcy5fcm90YXRlWCArPSB0aGlzLl9yb3Rh
dGVEZWx0YVg7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3JvdGF0ZVggPiB0aGlzLl9zaXplLnggLyA0
IHx8IHRoaXMuX3JvdGF0ZVggPCAtdGhpcy5fc2l6ZS54IC8gNCkgewotICAgICAgICAgICAgdGhp
cy5fcm90YXRlRGVsdGFYID0gLXRoaXMuX3JvdGF0ZURlbHRhWDsKLSAgICAgICAgICAgIHRoaXMu
X3JvdGF0ZVggKz0gdGhpcy5fcm90YXRlRGVsdGFYOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhp
cy5fZHJhdygpOwotICAgIH0KLX07Ci0KLUNhbnZhc1N0YXJzU3RhZ2UgPSBVdGlsaXRpZXMuY3Jl
YXRlU3ViY2xhc3MoU3RhZ2UsCi0gICAgZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgU3RhZ2Uu
Y2FsbCh0aGlzKTsKLSAgICAgICAgdGhpcy5fb2JqZWN0cyA9IFtdOwotICAgIH0sIHsKLQotICAg
IGluaXRpYWxpemU6IGZ1bmN0aW9uKGJlbmNobWFyaywgb3B0aW9ucykKLSAgICB7Ci0gICAgICAg
IFN0YWdlLnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcywgYmVuY2htYXJrLCBvcHRpb25z
KTsKLSAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5lbGVtZW50LmdldENvbnRleHQoIjJkIik7
Ci0gICAgfSwKLQotICAgIHR1bmU6IGZ1bmN0aW9uKGNvdW50KQotICAgIHsKLSAgICAgICAgaWYg
KGNvdW50ID09IDApCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGNvdW50ID4g
MCkgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAg
ICAgICAgICAgIHRoaXMuX29iamVjdHMucHVzaChuZXcgQ2FudmFzU3Rhcih0aGlzKSk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBjb3VudCA9IE1hdGgubWluKC1j
b3VudCwgdGhpcy5fb2JqZWN0cy5sZW5ndGgpOwotICAgICAgICB0aGlzLl9vYmplY3RzLnNwbGlj
ZSgtY291bnQsIGNvdW50KTsKLSAgICB9LAotCi0gICAgYW5pbWF0ZTogZnVuY3Rpb24odGltZURl
bHRhKQotICAgIHsKLSAgICAgICAgdGhpcy5jb250ZXh0LmJlZ2luUGF0aCgpOwotICAgICAgICB0
aGlzLmNvbnRleHQuZmlsbFN0eWxlID0gJ2JsYWNrJzsKLSAgICAgICAgdGhpcy5jb250ZXh0LnJl
Y3QoMCwgMCwgdGhpcy5zaXplLndpZHRoLCB0aGlzLnNpemUuaGVpZ2h0KTsKLSAgICAgICAgdGhp
cy5jb250ZXh0LmZpbGwoKTsKLQotICAgICAgICB0aGlzLl9vYmplY3RzLmZvckVhY2goZnVuY3Rp
b24ob2JqZWN0KSB7Ci0gICAgICAgICAgICBvYmplY3QuYW5pbWF0ZSh0aW1lRGVsdGEpOwotICAg
ICAgICB9KTsKLSAgICB9LAotCi0gICAgY29tcGxleGl0eTogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMuX29iamVjdHMubGVuZ3RoOwotICAgIH0KLX0pOwotCi1DYW52YXNT
dGFyc0JlbmNobWFyayA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhCZW5jaG1hcmssCi0gICAg
ZnVuY3Rpb24ob3B0aW9ucykKLSAgICB7Ci0gICAgICAgIEJlbmNobWFyay5jYWxsKHRoaXMsIG5l
dyBDYW52YXNTdGFyc1N0YWdlKCksIG9wdGlvbnMpOwotICAgIH0KLSk7Ci0KLXdpbmRvdy5iZW5j
aG1hcmtDbGFzcyA9IENhbnZhc1N0YXJzQmVuY2htYXJrOwotCi19KSgpOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90
ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3NpbXBsZS1jYW52YXMtcGF0aHMuanMgYi9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291cmNlcy9zaW1wbGUtY2FudmFzLXBh
dGhzLmpzCmluZGV4IDcxOGY4YmMuLjg2MTNhZWYgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3NpbXBsZS1jYW52YXMtcGF0aHMu
anMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3NpbXBsZS9yZXNvdXJj
ZXMvc2ltcGxlLWNhbnZhcy1wYXRocy5qcwpAQCAtMjA5LDYgKzIwOSw0MiBAQCBDYW52YXNSZWN0
RmlsbCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKICAgICB9CiB9KTsKIAorQ2FudmFzRWxsaXBz
ZSA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKKyAgICBmdW5jdGlvbihzdGFnZSkgeworICAgICAg
ICB0aGlzLl9yYWRpdXMgPSBuZXcgUG9pbnQoU3RhZ2UucmFuZG9tSW50KDIwLCAyMDApLCBTdGFn
ZS5yYW5kb21JbnQoMjAsIDIwMCkpOworICAgICAgICB2YXIgdG9DZW50ZXIgPSBTdGFnZS5yYW5k
b21Qb3NpdGlvbihzdGFnZS5zaXplKS5zdWJ0cmFjdCh0aGlzLl9yYWRpdXMubXVsdGlwbHkoLjUp
KTsKKworICAgICAgICB0aGlzLl9jZW50ZXIgPSBTdGFnZS5yYW5kb21Qb3NpdGlvbih0aGlzLl9y
YWRpdXMpLmFkZCh0b0NlbnRlcik7CisgICAgICAgIHRoaXMuX3JvdGF0aW9uID0gU3RhZ2UucmFu
ZG9tQW5nbGUoKTsKKyAgICAgICAgdGhpcy5fc3RhcnRBbmdsZSA9IFN0YWdlLnJhbmRvbUFuZ2xl
KCk7CisgICAgICAgIHRoaXMuX2VuZEFuZ2xlID0gU3RhZ2UucmFuZG9tQW5nbGUoKTsKKyAgICAg
ICAgdGhpcy5fYW50aWNsb2Nrd2lzZSA9IFN0YWdlLnJhbmRvbUJvb2woKTsKKyAgICAgICAgdGhp
cy5fY29sb3IgPSBTdGFnZS5yYW5kb21Db2xvcigpOworICAgICAgICB0aGlzLl9saW5lV2lkdGgg
PSBTdGFnZS5yYW5kb21JbnQoMSwgMjApOworICAgIH0sIHsKKworICAgIGRyYXc6IGZ1bmN0aW9u
KGNvbnRleHQpIHsKKyAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IHRoaXMuX2NvbG9yOwor
ICAgICAgICBjb250ZXh0LmxpbmVXaWR0aCA9IHRoaXMuX2xpbmVXaWR0aDsKKyAgICAgICAgY29u
dGV4dC5iZWdpblBhdGgoKTsKKyAgICAgICAgY29udGV4dC5lbGxpcHNlKHRoaXMuX2NlbnRlci54
LCB0aGlzLl9jZW50ZXIueSwgdGhpcy5fcmFkaXVzLndpZHRoLCB0aGlzLl9yYWRpdXMuaGVpZ2h0
LCB0aGlzLl9yb3RhdGlvbiwgdGhpcy5fc3RhcnRBbmdsZSwgdGhpcy5fZW5kQW5nbGUsIHRoaXMu
X2FudGljbG9ja3dpc2UpOworICAgICAgICBjb250ZXh0LnN0cm9rZSgpOworICAgIH0KK30pOwor
CitDYW52YXNFbGxpcHNlRmlsbCA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKKyAgICBmdW5jdGlv
bihzdGFnZSkgeworICAgICAgICBDYW52YXNFbGxpcHNlLmNhbGwodGhpcywgc3RhZ2UpOworICAg
IH0sIHsKKworICAgIGRyYXc6IGZ1bmN0aW9uKGNvbnRleHQpIHsKKyAgICAgICAgY29udGV4dC5m
aWxsU3R5bGUgPSB0aGlzLl9jb2xvcjsKKyAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTsKKyAg
ICAgICAgY29udGV4dC5lbGxpcHNlKHRoaXMuX2NlbnRlci54LCB0aGlzLl9jZW50ZXIueSwgdGhp
cy5fcmFkaXVzLndpZHRoLCB0aGlzLl9yYWRpdXMuaGVpZ2h0LCB0aGlzLl9yb3RhdGlvbiwgdGhp
cy5fc3RhcnRBbmdsZSwgdGhpcy5fZW5kQW5nbGUsIHRoaXMuX2FudGljbG9ja3dpc2UpOworICAg
ICAgICBjb250ZXh0LmZpbGwoKTsKKyAgICB9Cit9KTsKKwogLy8gPT09IFNUQUdFUyA9PT0KIAog
U2ltcGxlQ2FudmFzUGF0aFN0cm9rZVN0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFNp
bXBsZUNhbnZhc1N0YWdlLApAQCAtMzQwLDYgKzM3Niw5IEBAIENhbnZhc1BhdGhCZW5jaG1hcmsg
PSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQmVuY2htYXJrLAogICAgICAgICBjYXNlICJyZWN0
IjoKICAgICAgICAgICAgIHN0YWdlID0gbmV3IFNpbXBsZUNhbnZhc1N0YWdlKENhbnZhc1JlY3Qp
OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgImVsbGlwc2UiOgorICAgICAgICAg
ICAgc3RhZ2UgPSBuZXcgU2ltcGxlQ2FudmFzU3RhZ2UoQ2FudmFzRWxsaXBzZSk7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSAibGluZUZpbGwiOgogICAgICAgICAgICAgc3RhZ2Ug
PSBuZXcgU2ltcGxlQ2FudmFzUGF0aEZpbGxTdGFnZShDYW52YXNMaW5lUG9pbnQpOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC0zNTgsNiArMzk3LDkgQEAgQ2FudmFzUGF0aEJlbmNobWFyayA9IFV0
aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhCZW5jaG1hcmssCiAgICAgICAgIGNhc2UgInJlY3RGaWxs
IjoKICAgICAgICAgICAgIHN0YWdlID0gbmV3IFNpbXBsZUNhbnZhc1N0YWdlKENhbnZhc1JlY3RG
aWxsKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJlbGxpcHNlRmlsbCI6Cisg
ICAgICAgICAgICBzdGFnZSA9IG5ldyBTaW1wbGVDYW52YXNTdGFnZShDYW52YXNFbGxpcHNlRmls
bCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIEJlbmNobWFyay5j
YWxsKHRoaXMsIHN0YWdlLCBvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzVlMDA0NC4uYTkw
MzUzYyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTUsNiArNSwyMyBAQAogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgIENsZWFuIHVwIG1pc2NlbGxhbmVvdXMgdGVz
dCBzdWl0ZS4gQWRkIGEgY2FudmFzIGVsbGlwc2UgdGVzdCwgYW5kIHJlbW92ZSB0aGUgb3RoZXIK
KyAgICAgICAgY2FudmFzIHRlc3RzLgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL3Rlc3RzLmpzOiBBZGQgZWxsaXBzZSB0ZXN0cyB0byB0aGUgc2ltcGxlIHN1
aXRlLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMtZWxlY3Ryb25zLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZhcy1zdGFy
cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWlzYy9yZXNvdXJj
ZXMvY2FudmFzLWVsZWN0cm9ucy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1zdGFycy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBB
bmltb21ldGVyL3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxlLWNhbnZhcy1wYXRocy5qczog
QWRkIGVsbGlwc2UgcHJpbWl0aXZlcy4KKworMjAxNi0wMy0yMCAgSm9uIExlZSAgPGpvbmxlZUBh
cHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGJlbmNobWFyayB0ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgTWVyZ2UgdGV4dCB0ZXN0cyB0b2dl
dGhlciBpbnRvIG9uZS4KIAogICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90
ZXN0cy5qczogUmVtb3ZlIGludGVybmF0aW9uYWwuaHRtbC4KLS0gCjIuNi40IChBcHBsZSBHaXQt
NjMpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274606</attachid>
            <date>2016-03-21 11:03:08 -0700</date>
            <delta_ts>2016-03-21 11:07:54 -0700</delta_ts>
            <desc>3. Move compositing transforms test.</desc>
            <filename>0003-Update-benchmark-tests.patch</filename>
            <type>text/plain</type>
            <size>9910</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBkOTk1MWQyNDk3MjkzNDU0ZWE5YWVhYTQ2ZTk0NDBiNjhkZGQwZGM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDIxIE1hciAyMDE2IDEwOjU5OjEwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzLzddIFVwZGF0ZSBi
ZW5jaG1hcmsgdGVzdHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU3MjMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKTW92ZSBjb21wb3NpdGluZyB0cmFu
c2Zvcm1zIHRlc3QgdG8gSFRNTCBzdWl0ZSBhbmQgcmVtb3ZlIHRoZSBlbXB0eSBNaXNjZWxsYW5l
b3VzIHN1aXRlLgoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanM6
CiogQW5pbW9tZXRlci90ZXN0cy9kb20vY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5odG1sOiBSZW5h
bWVkIGZyb20gUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY29tcG9zaXRp
bmctdHJhbnNmb3Jtcy5odG1sLgoqIEFuaW1vbWV0ZXIvdGVzdHMvZG9tL3Jlc291cmNlcy9jb21w
b3NpdGluZy10cmFuc2Zvcm1zLmpzOiBSZW5hbWVkIGZyb20gUGVyZm9ybWFuY2VUZXN0cy9Bbmlt
b21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuanMuCi0t
LQogLi4uL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcyAgICAgfCAx
MyArKy0tLQogLi4uL3Rlc3RzL2RvbS9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwgICAgICAg
ICAgfCAyNCArKysrKysrKwogLi4uL3Rlc3RzL2RvbS9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJh
bnNmb3Jtcy5qcyAgfCA2NiArKysrKysrKysrKysrKysrKysrKysrCiAuLi4vdGVzdHMvbWlzYy9j
b21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwgICAgICAgICB8IDI0IC0tLS0tLS0tCiAuLi4vdGVz
dHMvbWlzYy9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5qcyB8IDY2IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgMTMgKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyks
IDk5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFBlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9kb20vY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2RvbS9yZXNvdXJjZXMv
Y29tcG9zaXRpbmctdHJhbnNmb3Jtcy5qcwogZGVsZXRlIG1vZGUgMTAwNjQ0IFBlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNj
L3Jlc291cmNlcy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmpzCgpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5q
cwppbmRleCBjOGY1ZDUyLi5mZmFhNTM5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcworKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcwpAQCAtMTY4
LDYgKzE2OCwxMCBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIkhUTUwgc3VpdGUiLAogICAgICAg
ICB7CiAgICAgICAgICAgICB1cmw6ICJkb20vbGVhdmVzLmh0bWwiLAogICAgICAgICAgICAgbmFt
ZTogIkxlYXZlcyAyLjAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHVybDog
ImRvbS9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWw/cGFydGljbGVXaWR0aD01MCZwYXJ0aWNs
ZUhlaWdodD01MCZmaWx0ZXJzPXllcyZpbWFnZVNyYz0uLi9yZXNvdXJjZXMveWluLXlhbmcuc3Zn
IiwKKyAgICAgICAgICAgIG5hbWU6ICJDb21wb3NpdGVkIFRyYW5zZm9ybXMiCiAgICAgICAgIH0K
ICAgICBdCiApKTsKQEAgLTMyNywxMiArMzMxLDMgQEAgU3VpdGVzLnB1c2gobmV3IFN1aXRlKCIz
RCBHcmFwaGljcyIsCiAgICAgICAgIH0sCiAgICAgXQogKSk7Ci0KLVN1aXRlcy5wdXNoKG5ldyBT
dWl0ZSgiTWlzY2VsbGFuZW91cyBUZXN0cyIsCi0gICAgWwotICAgICAgICB7Ci0gICAgICAgICAg
ICB1cmw6ICJtaXNjL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbD9wYXJ0aWNsZVdpZHRoPTUw
JnBhcnRpY2xlSGVpZ2h0PTUwJmZpbHRlcnM9eWVzJmltYWdlU3JjPS4uL3Jlc291cmNlcy95aW4t
eWFuZy5zdmciLAotICAgICAgICAgICAgbmFtZTogIkNvbXBvc2l0ZWQgVHJhbnNmb3JtcyIKLSAg
ICAgICAgfSwKLSAgICBdCi0pKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9kb20vY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5odG1sIGIvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2RvbS9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ1YjBiZgotLS0gL2Rldi9udWxsCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9kb20vY29tcG9zaXRpbmctdHJh
bnNmb3Jtcy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vcmVzb3VyY2VzL3N0YWdlLmNzcyI+CisgICAg
PHN0eWxlPgorICAgICAgICBpbWcgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgd2lkdGg6IDgwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDgwcHg7CisgICAg
ICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic3RhZ2Ui
PjwvZGl2PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vYm91bmNpbmctcGFydGljbGVzL3Jlc291cmNlcy9ib3VuY2luZy1w
YXJ0aWNsZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tcG9z
aXRpbmctdHJhbnNmb3Jtcy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvZG9tL3Jlc291cmNlcy9jb21w
b3NpdGluZy10cmFuc2Zvcm1zLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L2RvbS9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45ZmQ0MDFlCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2RvbS9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJhbnNm
b3Jtcy5qcwpAQCAtMCwwICsxLDY2IEBACisoZnVuY3Rpb24oKSB7CisKK0JvdW5jaW5nQ29tcG9z
aXRlZEltYWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKEJvdW5jaW5nUGFydGljbGUsCisg
ICAgZnVuY3Rpb24oc3RhZ2UpCisgICAgeworICAgICAgICBCb3VuY2luZ1BhcnRpY2xlLmNhbGwo
dGhpcywgc3RhZ2UpOworCisgICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpOworICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLnNp
emUueCArICJweCI7CisgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLnNp
emUueSArICJweCI7CisgICAgICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHN0
YWdlLmltYWdlU3JjKTsKKworICAgICAgICBpZiAoc3RhZ2UudXNlRmlsdGVycykKKyAgICAgICAg
ICAgIHRoaXMuZWxlbWVudC5zdHlsZS5maWx0ZXIgPSAiaHVlLXJvdGF0ZSgiICsgU3RhZ2UucmFu
ZG9tQW5nbGUoKSArICJyYWQpIjsKKworICAgICAgICBzdGFnZS5lbGVtZW50LmFwcGVuZENoaWxk
KHRoaXMuZWxlbWVudCk7CisgICAgICAgIHRoaXMuX21vdmUoKTsKKyAgICB9LCB7CisKKyAgICBf
bW92ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRyYW5z
Zm9ybSA9ICJ0cmFuc2xhdGUzZCgiICsgdGhpcy5wb3NpdGlvbi54ICsgInB4LCIgKyB0aGlzLnBv
c2l0aW9uLnkgKyAicHgsIDApICIgKyB0aGlzLnJvdGF0ZXIucm90YXRlWigpOworICAgIH0sCisK
KyAgICBhbmltYXRlOiBmdW5jdGlvbih0aW1lRGVsdGEpCisgICAgeworICAgICAgICBCb3VuY2lu
Z1BhcnRpY2xlLnByb3RvdHlwZS5hbmltYXRlLmNhbGwodGhpcywgdGltZURlbHRhKTsKKyAgICAg
ICAgdGhpcy5fbW92ZSgpOworICAgIH0KK30pOworCitDb21wb3NpdGluZ1RyYW5zZm9ybXNTdGFn
ZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhCb3VuY2luZ1BhcnRpY2xlc1N0YWdlLAorICAg
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIEJvdW5jaW5nUGFydGljbGVzU3RhZ2UuY2FsbCh0
aGlzKTsKKyAgICB9LCB7CisKKyAgICBpbml0aWFsaXplOiBmdW5jdGlvbihiZW5jaG1hcmssIG9w
dGlvbnMpCisgICAgeworICAgICAgICBCb3VuY2luZ1BhcnRpY2xlc1N0YWdlLnByb3RvdHlwZS5p
bml0aWFsaXplLmNhbGwodGhpcywgYmVuY2htYXJrLCBvcHRpb25zKTsKKworICAgICAgICB0aGlz
LmltYWdlU3JjID0gb3B0aW9uc1siaW1hZ2VTcmMiXSB8fCAiLi4vcmVzb3VyY2VzL3lpbi15YW5n
LnN2ZyI7CisgICAgICAgIHRoaXMudXNlRmlsdGVycyA9IG9wdGlvbnNbImZpbHRlcnMiXSA9PSAi
eWVzIjsKKyAgICB9LAorCisgICAgY3JlYXRlUGFydGljbGU6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBuZXcgQm91bmNpbmdDb21wb3NpdGVkSW1hZ2UodGhpcyk7CisgICAgfSwK
KworICAgIHBhcnRpY2xlV2lsbEJlUmVtb3ZlZDogZnVuY3Rpb24ocGFydGljbGUpCisgICAgewor
ICAgICAgICBwYXJ0aWNsZS5lbGVtZW50LnJlbW92ZSgpOworICAgIH0KK30pOworCitDb21wb3Np
dGVkVHJhbnNmb3Jtc0JlbmNobWFyayA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhCZW5jaG1h
cmssCisgICAgZnVuY3Rpb24ob3B0aW9ucykKKyAgICB7CisgICAgICAgIEJlbmNobWFyay5jYWxs
KHRoaXMsIG5ldyBDb21wb3NpdGluZ1RyYW5zZm9ybXNTdGFnZSgpLCBvcHRpb25zKTsKKyAgICB9
CispOworCit3aW5kb3cuYmVuY2htYXJrQ2xhc3MgPSBDb21wb3NpdGVkVHJhbnNmb3Jtc0JlbmNo
bWFyazsKKworfSkoKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90
ZXN0cy9taXNjL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci90ZXN0cy9taXNjL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ1YjBiZi4uMDAwMDAwMAotLS0gYS9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3Jlc291cmNlcy9zdGFnZS5jc3MiPgotICAg
IDxzdHlsZT4KLSAgICAgICAgaW1nIHsKLSAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
LSAgICAgICAgICAgIHdpZHRoOiA4MHB4OwotICAgICAgICAgICAgaGVpZ2h0OiA4MHB4OwotICAg
ICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxkaXYgaWQ9InN0YWdl
Ij48L2Rpdj4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii4uL2JvdW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNpbmct
cGFydGljbGVzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbXBv
c2l0aW5nLXRyYW5zZm9ybXMuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2Nv
bXBvc2l0aW5nLXRyYW5zZm9ybXMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvbWlzYy9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOWZkNDAxZS4uMDAwMDAwMAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLShmdW5jdGlvbigpIHsKLQotQm91bmNp
bmdDb21wb3NpdGVkSW1hZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQm91bmNpbmdQYXJ0
aWNsZSwKLSAgICBmdW5jdGlvbihzdGFnZSkKLSAgICB7Ci0gICAgICAgIEJvdW5jaW5nUGFydGlj
bGUuY2FsbCh0aGlzLCBzdGFnZSk7Ci0KLSAgICAgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS53aWR0aCA9
IHRoaXMuc2l6ZS54ICsgInB4IjsKLSAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodCA9
IHRoaXMuc2l6ZS55ICsgInB4IjsKLSAgICAgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgi
c3JjIiwgc3RhZ2UuaW1hZ2VTcmMpOwotCi0gICAgICAgIGlmIChzdGFnZS51c2VGaWx0ZXJzKQot
ICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmZpbHRlciA9ICJodWUtcm90YXRlKCIgKyBT
dGFnZS5yYW5kb21BbmdsZSgpICsgInJhZCkiOwotCi0gICAgICAgIHN0YWdlLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKLSAgICAgICAgdGhpcy5fbW92ZSgpOwotICAgIH0sIHsK
LQotICAgIF9tb3ZlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLmVsZW1lbnQuc3R5
bGUudHJhbnNmb3JtID0gInRyYW5zbGF0ZTNkKCIgKyB0aGlzLnBvc2l0aW9uLnggKyAicHgsIiAr
IHRoaXMucG9zaXRpb24ueSArICJweCwgMCkgIiArIHRoaXMucm90YXRlci5yb3RhdGVaKCk7Ci0g
ICAgfSwKLQotICAgIGFuaW1hdGU6IGZ1bmN0aW9uKHRpbWVEZWx0YSkKLSAgICB7Ci0gICAgICAg
IEJvdW5jaW5nUGFydGljbGUucHJvdG90eXBlLmFuaW1hdGUuY2FsbCh0aGlzLCB0aW1lRGVsdGEp
OwotICAgICAgICB0aGlzLl9tb3ZlKCk7Ci0gICAgfQotfSk7Ci0KLUNvbXBvc2l0aW5nVHJhbnNm
b3Jtc1N0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKEJvdW5jaW5nUGFydGljbGVzU3Rh
Z2UsCi0gICAgZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgQm91bmNpbmdQYXJ0aWNsZXNTdGFn
ZS5jYWxsKHRoaXMpOwotICAgIH0sIHsKLQotICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGJlbmNo
bWFyaywgb3B0aW9ucykKLSAgICB7Ci0gICAgICAgIEJvdW5jaW5nUGFydGljbGVzU3RhZ2UucHJv
dG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLCBiZW5jaG1hcmssIG9wdGlvbnMpOwotCi0gICAg
ICAgIHRoaXMuaW1hZ2VTcmMgPSBvcHRpb25zWyJpbWFnZVNyYyJdIHx8ICIuLi9yZXNvdXJjZXMv
eWluLXlhbmcuc3ZnIjsKLSAgICAgICAgdGhpcy51c2VGaWx0ZXJzID0gb3B0aW9uc1siZmlsdGVy
cyJdID09ICJ5ZXMiOwotICAgIH0sCi0KLSAgICBjcmVhdGVQYXJ0aWNsZTogZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBCb3VuY2luZ0NvbXBvc2l0ZWRJbWFnZSh0aGlzKTsK
LSAgICB9LAotCi0gICAgcGFydGljbGVXaWxsQmVSZW1vdmVkOiBmdW5jdGlvbihwYXJ0aWNsZSkK
LSAgICB7Ci0gICAgICAgIHBhcnRpY2xlLmVsZW1lbnQucmVtb3ZlKCk7Ci0gICAgfQotfSk7Ci0K
LUNvbXBvc2l0ZWRUcmFuc2Zvcm1zQmVuY2htYXJrID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNz
KEJlbmNobWFyaywKLSAgICBmdW5jdGlvbihvcHRpb25zKQotICAgIHsKLSAgICAgICAgQmVuY2ht
YXJrLmNhbGwodGhpcywgbmV3IENvbXBvc2l0aW5nVHJhbnNmb3Jtc1N0YWdlKCksIG9wdGlvbnMp
OwotICAgIH0KLSk7Ci0KLXdpbmRvdy5iZW5jaG1hcmtDbGFzcyA9IENvbXBvc2l0ZWRUcmFuc2Zv
cm1zQmVuY2htYXJrOwotCi19KSgpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCBhOTAzNTNjLi5kYzZlOGQ1
IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5j
ZVRlc3RzL0NoYW5nZUxvZwpAQCAtNSw2ICs1LDE5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgTW92ZSBjb21wb3NpdGluZyB0cmFuc2Zvcm1zIHRl
c3QgdG8gSFRNTCBzdWl0ZSBhbmQgcmVtb3ZlIHRoZSBlbXB0eSBNaXNjZWxsYW5lb3VzIHN1aXRl
LgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpz
OgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvZG9tL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMu
aHRtbDogUmVuYW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNj
L2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3Rz
L2RvbS9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5qczogUmVuYW1lZCBmcm9tIFBl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL3Jlc291cmNlcy9jb21wb3NpdGlu
Zy10cmFuc2Zvcm1zLmpzLgorCisyMDE2LTAzLTIwICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgYmVuY2htYXJrIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU3MjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBDbGVhbiB1cCBtaXNjZWxsYW5lb3VzIHRlc3Qg
c3VpdGUuIEFkZCBhIGNhbnZhcyBlbGxpcHNlIHRlc3QsIGFuZCByZW1vdmUgdGhlIG90aGVyCiAg
ICAgICAgIGNhbnZhcyB0ZXN0cy4KIAotLSAKMi42LjQgKEFwcGxlIEdpdC02MykKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274607</attachid>
            <date>2016-03-21 11:03:26 -0700</date>
            <delta_ts>2016-03-21 11:07:58 -0700</delta_ts>
            <desc>4. Move 3D suite.</desc>
            <filename>0004-Update-benchmark-tests.patch</filename>
            <type>text/plain</type>
            <size>2176</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBjZWMzZWY5OTQ3YzM0Y2IzMTY3YWUzMDMzZTI3MTJlODA3NjQxNGY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDIxIE1hciAyMDE2IDExOjAwOjE4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0LzddIFVwZGF0ZSBi
ZW5jaG1hcmsgdGVzdHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU3MjMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBBbmltb21ldGVyL3Jlc291cmNl
cy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanM6IE1vdmUgM0Qgc3VpdGUgYmVmb3JlIGJhc2ljIGNhbnZh
cyBzdWl0ZS4KV2hlbiB1cGRhdGluZyB0aGUgcGVyZiBib3Qgc2NyaXB0LCB3ZSB3aWxsIGluY2x1
ZGUgdGhlIHN1aXRlcyB1cCB0byB0aGlzIG9uZSwgYnV0IGV4Y2x1ZGUKdGhlIGJhc2ljIGNhbnZh
cyBzdWl0ZS4KLS0tCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3Rz
LmpzICAgICAgICAgfCAxOCArKysrKysrKystLS0tLS0tLS0KIFBlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKysrKysrCiAyIGZp
bGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVz
dHMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci90ZXN0cy5qcwppbmRleCBmZmFhNTM5Li40ZTk2OGU1IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcworKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5q
cwpAQCAtMjI2LDYgKzIyNiwxNSBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIlNWRyBzdWl0ZSIs
CiAgICAgXQogKSk7CiAKK1N1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiM0QgR3JhcGhpY3MiLAorICAg
IFsKKyAgICAgICAgeworICAgICAgICAgICAgdXJsOiAiM2Qvd2ViZ2wuaHRtbCIsCisgICAgICAg
ICAgICBuYW1lOiAiV2ViR0wiCisgICAgICAgIH0sCisgICAgXQorKSk7CisKIFN1aXRlcy5wdXNo
KG5ldyBTdWl0ZSgiQmFzaWMgY2FudmFzIHBhdGggc3VpdGUiLAogICAgIFsKICAgICAgICAgewpA
QCAtMzIyLDEyICszMzEsMyBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIkJhc2ljIGNhbnZhcyBw
YXRoIHN1aXRlIiwKICAgICAgICAgfSwKICAgICBdCiApKTsKLQotU3VpdGVzLnB1c2gobmV3IFN1
aXRlKCIzRCBHcmFwaGljcyIsCi0gICAgWwotICAgICAgICB7Ci0gICAgICAgICAgICB1cmw6ICIz
ZC93ZWJnbC5odG1sIiwKLSAgICAgICAgICAgIG5hbWU6ICJXZWJHTCIKLSAgICAgICAgfSwKLSAg
ICBdCi0pKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGM2ZThkNS4uMDdlMDJkOSAxMDA2NDQKLS0tIGEv
UGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wMy0yMSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKKyAgICAgICAgVXBkYXRlIGJlbmNobWFyayB0ZXN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1
Zy1ydW5uZXIvdGVzdHMuanM6IE1vdmUgM0Qgc3VpdGUgYmVmb3JlIGJhc2ljIGNhbnZhcyBzdWl0
ZS4KKyAgICAgICAgV2hlbiB1cGRhdGluZyB0aGUgcGVyZiBib3Qgc2NyaXB0LCB3ZSB3aWxsIGlu
Y2x1ZGUgdGhlIHN1aXRlcyB1cCB0byB0aGlzIG9uZSwgYnV0IGV4Y2x1ZGUKKyAgICAgICAgdGhl
IGJhc2ljIGNhbnZhcyBzdWl0ZS4KKwogMjAxNi0wMy0yMCAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGJlbmNobWFyayB0ZXN0cwotLSAKMi42LjQgKEFwcGxl
IEdpdC02MykKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274608</attachid>
            <date>2016-03-21 11:03:50 -0700</date>
            <delta_ts>2016-03-21 11:08:01 -0700</delta_ts>
            <desc>5. Add canvas tests that include all stroke and fill paths.</desc>
            <filename>0005-Update-benchmark-tests.patch</filename>
            <type>text/plain</type>
            <size>5475</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBiOTBhMjU0NzNiNGJlZWM4NzUwNjVlYTIxNmU4MWNlM2M4MGQyMmFiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDIxIE1hciAyMDE2IDExOjAwOjQ5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA1LzddIFVwZGF0ZSBi
ZW5jaG1hcmsgdGVzdHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU3MjMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIGNhbnZhcyB0ZXN0cyB0aGF0
IGluY2x1ZGVzIGFsbCBzdHJva2UgYW5kIGZpbGwgcGF0aHMuIFRoaXMgbWFrZXMgaXQgcG9zc2li
bGUgdG8gYXZvaWQgaGF2aW5nIHRvCmluY2x1ZGUgdGhlIGZ1bGwgc2ltcGxlIGNhbnZhcyBzdWl0
ZSBmb3IgcGVyZiB0ZXN0aW5nLgoKKiBBbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIv
dGVzdHMuanM6IEFkZCBuZXcgdGVzdHMuIE1vdmUgdGhlIGNhbnZhcyB0ZXN0IGludG8gdGhlIENh
bnZhcwpzdWl0ZS4KKiBBbmltb21ldGVyL3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxlLWNh
bnZhcy1wYXRocy5qczogQWRkIGEgQ2FudmFzU3Ryb2tlIGFuZCBDYW52YXNGaWxsIHBhcnRpY2xl
CnRoYXQgcmFuZG9tIHNlbGVjdHMgYW4gb2JqZWN0IHRvIHJlbmRlci4KLS0tCiAuLi4vQW5pbW9t
ZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzICAgICB8IDIyICsrKysrKystLS0t
LQogLi4uL3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxlLWNhbnZhcy1wYXRocy5qcyAgfCA0
MiArKysrKysrKysrKysrKysrKysrKysrCiBQZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDcwIGlu
c2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvdGVzdHMuanMgYi9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcwppbmRleCA0
ZTk2OGU1Li5jM2JmYmM3IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
cmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcwpAQCAtMTc5LDEwICsxNzks
NiBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIkhUTUwgc3VpdGUiLAogU3VpdGVzLnB1c2gobmV3
IFN1aXRlKCJDYW52YXMgc3VpdGUiLAogICAgIFsKICAgICAgICAgewotICAgICAgICAgICAgdXJs
OiAiYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZhcy1zaGFwZXMuaHRtbD9wYXJ0aWNs
ZVdpZHRoPTEyJnBhcnRpY2xlSGVpZ2h0PTEyJnNoYXBlPWNpcmNsZSIsCi0gICAgICAgICAgICBu
YW1lOiAiY2FudmFzIGJvdW5jaW5nIGNpcmNsZXMiCi0gICAgICAgIH0sCi0gICAgICAgIHsKICAg
ICAgICAgICAgIHVybDogImJvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtc2hhcGVz
Lmh0bWw/cGFydGljbGVXaWR0aD00MCZwYXJ0aWNsZUhlaWdodD00MCZzaGFwZT1yZWN0JmNsaXA9
c3RhciIsCiAgICAgICAgICAgICBuYW1lOiAiY2FudmFzIGJvdW5jaW5nIGNsaXBwZWQgcmVjdHMi
CiAgICAgICAgIH0sCkBAIC0xOTgsNiArMTk0LDE4IEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgi
Q2FudmFzIHN1aXRlIiwKICAgICAgICAgICAgIHVybDogImJvdW5jaW5nLXBhcnRpY2xlcy9ib3Vu
Y2luZy1jYW52YXMtaW1hZ2VzLmh0bWw/cGFydGljbGVXaWR0aD04MCZwYXJ0aWNsZUhlaWdodD04
MCZpbWFnZVNyYz0uLi9yZXNvdXJjZXMveWluLXlhbmcucG5nIiwKICAgICAgICAgICAgIG5hbWU6
ICJjYW52YXMgYm91bmNpbmcgUE5HIGltYWdlcyIKICAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgdXJsOiAic2ltcGxlL3NpbXBsZS1jYW52YXMtcGF0aHMuaHRtbD9wYXRoVHlwZT1z
dHJva2VzIiwKKyAgICAgICAgICAgIG5hbWU6ICJTdHJva2Ugc2hhcGVzIgorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICB1cmw6ICJzaW1wbGUvc2ltcGxlLWNhbnZhcy1wYXRocy5o
dG1sP3BhdGhUeXBlPWZpbGxzIiwKKyAgICAgICAgICAgIG5hbWU6ICJGaWxsIHNoYXBlcyIKKyAg
ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgdXJsOiAic2ltcGxlL3RpbGVkLWNhbnZh
cy1pbWFnZS5odG1sIiwKKyAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgcHV0L2dldCBpbWFnZSBk
YXRhIgorICAgICAgICB9LAogICAgIF0KICkpOwogCkBAIC0zMjQsMTAgKzMzMiw2IEBAIFN1aXRl
cy5wdXNoKG5ldyBTdWl0ZSgiQmFzaWMgY2FudmFzIHBhdGggc3VpdGUiLAogICAgICAgICB7CiAg
ICAgICAgICAgICB1cmw6ICJzaW1wbGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sP3BhdGhUeXBl
PWVsbGlwc2VGaWxsIiwKICAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgZWxsaXBzZXMsIGZpbGwi
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHVybDogInNpbXBsZS90aWxlZC1j
YW52YXMtaW1hZ2UuaHRtbCIsCi0gICAgICAgICAgICBuYW1lOiAiQ2FudmFzIHB1dC9nZXQgaW1h
Z2UgZGF0YSIKLSAgICAgICAgfSwKKyAgICAgICAgfQogICAgIF0KICkpOwpkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxl
LWNhbnZhcy1wYXRocy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9zaW1w
bGUvcmVzb3VyY2VzL3NpbXBsZS1jYW52YXMtcGF0aHMuanMKaW5kZXggODYxM2FlZi4uZDA4NTYx
ZiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3NpbXBsZS9y
ZXNvdXJjZXMvc2ltcGxlLWNhbnZhcy1wYXRocy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291cmNlcy9zaW1wbGUtY2FudmFzLXBhdGhzLmpzCkBA
IC0yNDUsNiArMjQ1LDQyIEBAIENhbnZhc0VsbGlwc2VGaWxsID0gVXRpbGl0aWVzLmNyZWF0ZUNs
YXNzKAogICAgIH0KIH0pOwogCitDYW52YXNTdHJva2UgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3Mo
CisgICAgZnVuY3Rpb24gKHN0YWdlKSB7CisgICAgICAgIHRoaXMuX29iamVjdCA9IG5ldyB0aGlz
Lm9iamVjdFR5cGVzW1N0YWdlLnJhbmRvbUludCgwLCB0aGlzLm9iamVjdFR5cGVzLmxlbmd0aCAt
IDEpXShzdGFnZSk7CisgICAgfSwgeworCisgICAgb2JqZWN0VHlwZXM6IFsKKyAgICAgICAgQ2Fu
dmFzUXVhZHJhdGljU2VnbWVudCwKKyAgICAgICAgQ2FudmFzQmV6aWVyU2VnbWVudCwKKyAgICAg
ICAgQ2FudmFzQXJjVG9TZWdtZW50LAorICAgICAgICBDYW52YXNBcmNTZWdtZW50LAorICAgICAg
ICBDYW52YXNSZWN0LAorICAgICAgICBDYW52YXNFbGxpcHNlCisgICAgXSwKKworICAgIGRyYXc6
IGZ1bmN0aW9uKGNvbnRleHQpIHsKKyAgICAgICAgdGhpcy5fb2JqZWN0LmRyYXcoY29udGV4dCk7
CisgICAgfQorfSk7CisKK0NhbnZhc0ZpbGwgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCisgICAg
ZnVuY3Rpb24gKHN0YWdlKSB7CisgICAgICAgIHRoaXMuX29iamVjdCA9IG5ldyB0aGlzLm9iamVj
dFR5cGVzW1N0YWdlLnJhbmRvbUludCgwLCB0aGlzLm9iamVjdFR5cGVzLmxlbmd0aCAtIDEpXShz
dGFnZSk7CisgICAgfSwgeworCisgICAgb2JqZWN0VHlwZXM6IFsKKyAgICAgICAgQ2FudmFzQXJj
VG9TZWdtZW50RmlsbCwKKyAgICAgICAgQ2FudmFzQXJjU2VnbWVudEZpbGwsCisgICAgICAgIENh
bnZhc1JlY3RGaWxsLAorICAgICAgICBDYW52YXNFbGxpcHNlRmlsbAorICAgIF0sCisKKyAgICBk
cmF3OiBmdW5jdGlvbihjb250ZXh0KSB7CisgICAgICAgIHRoaXMuX29iamVjdC5kcmF3KGNvbnRl
eHQpOworICAgIH0KK30pOworCiAvLyA9PT0gU1RBR0VTID09PQogCiBTaW1wbGVDYW52YXNQYXRo
U3Ryb2tlU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoU2ltcGxlQ2FudmFzU3RhZ2Us
CkBAIC00MDAsNiArNDM2LDEyIEBAIENhbnZhc1BhdGhCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3Jl
YXRlU3ViY2xhc3MoQmVuY2htYXJrLAogICAgICAgICBjYXNlICJlbGxpcHNlRmlsbCI6CiAgICAg
ICAgICAgICBzdGFnZSA9IG5ldyBTaW1wbGVDYW52YXNTdGFnZShDYW52YXNFbGxpcHNlRmlsbCk7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAic3Ryb2tlcyI6CisgICAgICAgICAg
ICBzdGFnZSA9IG5ldyBTaW1wbGVDYW52YXNTdGFnZShDYW52YXNTdHJva2UpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgImZpbGxzIjoKKyAgICAgICAgICAgIHN0YWdlID0gbmV3
IFNpbXBsZUNhbnZhc1N0YWdlKENhbnZhc0ZpbGwpOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAogICAgICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBzdGFnZSwgb3B0aW9ucyk7CmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDA3ZTAyZDkuLjU4YjgwNTAgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNl
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTYtMDMtMjAgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAg
ICAgIFVwZGF0ZSBiZW5jaG1hcmsgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NTcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBjYW52YXMgdGVzdHMgdGhhdCBpbmNsdWRlcyBhbGwgc3Ry
b2tlIGFuZCBmaWxsIHBhdGhzLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGF2b2lkIGhhdmlu
ZyB0bworICAgICAgICBpbmNsdWRlIHRoZSBmdWxsIHNpbXBsZSBjYW52YXMgc3VpdGUgZm9yIHBl
cmYgdGVzdGluZy4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci90ZXN0cy5qczogQWRkIG5ldyB0ZXN0cy4gTW92ZSB0aGUgY2FudmFzIHRlc3QgaW50byB0aGUg
Q2FudmFzCisgICAgICAgIHN1aXRlLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvc2ltcGxl
L3Jlc291cmNlcy9zaW1wbGUtY2FudmFzLXBhdGhzLmpzOiBBZGQgYSBDYW52YXNTdHJva2UgYW5k
IENhbnZhc0ZpbGwgcGFydGljbGUKKyAgICAgICAgdGhhdCByYW5kb20gc2VsZWN0cyBhbiBvYmpl
Y3QgdG8gcmVuZGVyLgorCiAyMDE2LTAzLTIxICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4K
IAogICAgICAgICBVcGRhdGUgYmVuY2htYXJrIHRlc3RzCi0tIAoyLjYuNCAoQXBwbGUgR2l0LTYz
KQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274609</attachid>
            <date>2016-03-21 11:04:05 -0700</date>
            <delta_ts>2016-03-21 11:08:05 -0700</delta_ts>
            <desc>6. Add a helper method.</desc>
            <filename>0006-Update-benchmark-tests.patch</filename>
            <type>text/plain</type>
            <size>8360</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAxYzlkZWJkZDFiODU1NzRiN2FlZDQ4ODBiZGRkYzdkMjBjY2RlZTRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDIxIE1hciAyMDE2IDExOjAxOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCA2LzddIFVwZGF0ZSBi
ZW5jaG1hcmsgdGVzdHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU3MjMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIGEgaGVscGVyIG1ldGhvZCB0
aGF0IHNlbGVjdHMgYSByYW5kb20gZWxlbWVudCBmcm9tIGFuIGFycmF5LgoKKiBBbmltb21ldGVy
L3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzOgooU3RhZ2UucmFuZG9tRWxlbWVudEluQXJyYXkpOiBT
ZWxlY3QgYSByYW5kb20gZWxlbWVudCBmcm9tIHRoZSBwcm92aWRlZCBhcnJheS4KCiogQW5pbW9t
ZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXRhZ2dlZC1p
bWFnZXMuanM6IFJlZmFjdG9yLgoqIEFuaW1vbWV0ZXIvdGVzdHMvZG9tL3Jlc291cmNlcy9sZWF2
ZXMuanM6IERpdHRvLgoqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9kb20tcGFy
dGljbGVzLmpzOiBEaXR0by4KKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvaW1h
Z2UtZGF0YS5qczogRGl0dG8uCiogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2xl
YXZlcy5qczogRGl0dG8uCiogQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3NpbXBs
ZS1jYW52YXMtcGF0aHMuanM6IERpdHRvLgotLS0KIC4uLi9yZXNvdXJjZXMvYm91bmNpbmctdGFn
Z2VkLWltYWdlcy5qcyAgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9Bbmltb21ldGVyL3Rlc3Rz
L2RvbS9yZXNvdXJjZXMvbGVhdi9Wb2x1bWVzL0RhdGEvU2FuZGJveC9TYWZhcmkvT3BlblNvdXJj
ZTIvMDAwNi1VcGRhdGUtYmVuY2htYXJrLXRlc3RzLnBhdGNoZXMuanMgICAgICAgICAgfCAgMiAr
LQogLi4uL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvZG9tLXBhcnRpY2xlcy5qcyAgICAgICAgICAg
fCAgMiArLQogLi4uL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9pbWFnZS1kYXRh
LmpzICAgfCAgMiArLQogLi4uL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9sZWF2
ZXMuanMgICAgICAgfCAgMiArLQogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jl
c291cmNlcy9tYWluLmpzICAgfCAgNSArKysrKwogLi4uL3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMv
c2ltcGxlLWNhbnZhcy1wYXRocy5qcyAgICAgfCAgNCArKy0tCiBQZXJmb3JtYW5jZVRlc3RzL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysrKysr
KysKIDggZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFy
dGljbGVzL3Jlc291cmNlcy9ib3VuY2luZy10YWdnZWQtaW1hZ2VzLmpzIGIvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNp
bmctdGFnZ2VkLWltYWdlcy5qcwppbmRleCBhZDMzZTJkLi4xZWY2YTA5IDEwMDY0NAotLS0gYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL3Jlc291
cmNlcy9ib3VuY2luZy10YWdnZWQtaW1hZ2VzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXRhZ2dl
ZC1pbWFnZXMuanMKQEAgLTgsNyArOCw3IEBAIEJvdW5jaW5nVGFnZ2VkSW1hZ2UgPSBVdGlsaXRp
ZXMuY3JlYXRlU3ViY2xhc3MoQm91bmNpbmdQYXJ0aWNsZSwKICAgICAgICAgdGhpcy5lbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CiAgICAgICAgIHRoaXMuZWxlbWVudC5z
dHlsZS53aWR0aCA9IHRoaXMuc2l6ZS54ICsgInB4IjsKICAgICAgICAgdGhpcy5lbGVtZW50LnN0
eWxlLmhlaWdodCA9IHRoaXMuc2l6ZS55ICsgInB4IjsKLSAgICAgICAgdGhpcy5lbGVtZW50LnNl
dEF0dHJpYnV0ZSgic3JjIiwgc3RhZ2UuaW1hZ2VzW1N0YWdlLnJhbmRvbUludCgwLCBzdGFnZS5p
bWFnZXMubGVuZ3RoIC0gMSldLnNyYyk7CisgICAgICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1
dGUoInNyYyIsIFN0YWdlLnJhbmRvbUVsZW1lbnRJbkFycmF5KHN0YWdlLmltYWdlcykuc3JjKTsK
IAogICAgICAgICBzdGFnZS5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7CiAgICAg
ICAgIHRoaXMuX21vdmUoKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci90ZXN0cy9kb20vcmVzb3VyY2VzL2xlYXZlcy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9kb20vcmVzb3VyY2VzL2xlYXZlcy5qcwppbmRleCA3YjA3NzhlLi45Y2VmNTQ4
IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvZG9tL3Jlc291
cmNlcy9sZWF2ZXMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2Rv
bS9yZXNvdXJjZXMvbGVhdmVzLmpzCkBAIC0yLDcgKzIsNyBAQCBMZWFmID0gVXRpbGl0aWVzLmNy
ZWF0ZVN1YmNsYXNzKFBhcnRpY2xlLAogICAgIGZ1bmN0aW9uKHN0YWdlKQogICAgIHsKICAgICAg
ICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAg
IHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHN0YWdlLmltYWdlc1tTdGFnZS5yYW5k
b21JbnQoMCwgc3RhZ2UuaW1hZ2VzLmxlbmd0aCAtIDEpXS5zcmMpOworICAgICAgICB0aGlzLmVs
ZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCBTdGFnZS5yYW5kb21FbGVtZW50SW5BcnJheShzdGFn
ZS5pbWFnZXMpLnNyYyk7CiAgICAgICAgIHN0YWdlLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5l
bGVtZW50KTsKIAogICAgICAgICBQYXJ0aWNsZS5jYWxsKHRoaXMsIHN0YWdlKTsKZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2Rv
bS1wYXJ0aWNsZXMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVy
L3Jlc291cmNlcy9kb20tcGFydGljbGVzLmpzCmluZGV4IGU1ZjYxM2EuLmM2NTEyYmQgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2Vz
L2RvbS1wYXJ0aWNsZXMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L21hc3Rlci9yZXNvdXJjZXMvZG9tLXBhcnRpY2xlcy5qcwpAQCAtMTMsNyArMTMsNyBAQCBET01Q
YXJ0aWNsZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhQYXJ0aWNsZSwKICAgICB7CiAgICAg
ICAgIFBhcnRpY2xlLnByb3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpOwogCi0gICAgICAgIHZhciBl
bWl0TG9jYXRpb24gPSB0aGlzLnN0YWdlLmVtaXRMb2NhdGlvbltTdGFnZS5yYW5kb21JbnQoMCwg
dGhpcy5zdGFnZS5lbWl0TG9jYXRpb24ubGVuZ3RoIC0gMSldOworICAgICAgICB2YXIgZW1pdExv
Y2F0aW9uID0gU3RhZ2UucmFuZG9tRWxlbWVudEluQXJyYXkodGhpcy5zdGFnZS5lbWl0TG9jYXRp
b24pOwogICAgICAgICB0aGlzLnBvc2l0aW9uID0gbmV3IFBvaW50KGVtaXRMb2NhdGlvbi54LCBl
bWl0TG9jYXRpb24ueSk7CiAKICAgICAgICAgdmFyIGFuZ2xlID0gU3RhZ2UucmFuZG9tSW50KDAs
IHRoaXMuc3RhZ2UuZW1pdFN0ZXBzKSAvIHRoaXMuc3RhZ2UuZW1pdFN0ZXBzICogTWF0aC5QSSAq
IDIgKyBTdGFnZS5kYXRlQ291bnRlclZhbHVlKDEwMCkgKiB0aGlzLnN0YWdlLmVtaXNzaW9uU3Bp
bjsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIv
cmVzb3VyY2VzL2ltYWdlLWRhdGEuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvbWFzdGVyL3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzCmluZGV4IDA3ZDNkZDguLjdhMDI4ZjIg
MTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVz
b3VyY2VzL2ltYWdlLWRhdGEuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qcwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZh
ciBJbWFnZURhdGFTdGFnZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKICAgICAg
ICAgICAgICAgICBjb250ZXh0LnB1dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDApOwogICAgICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fcmVmcmVzaEVsZW1lbnQoZWxlbWVu
dCk7Ci0gICAgICAgICAgICAgICAgZWxlbWVudC5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZSh0
aGlzLmltYWdlc1tTdGFnZS5yYW5kb21JbnQoMCwgdGhpcy5pbWFnZXMubGVuZ3RoIC0gMSldLCAw
LCAwLCB0aGlzLmltYWdlV2lkdGgsIHRoaXMuaW1hZ2VIZWlnaHQpOworICAgICAgICAgICAgICAg
IGVsZW1lbnQuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoU3RhZ2UucmFuZG9tRWxlbWVudElu
QXJyYXkodGhpcy5pbWFnZXMpLCAwLCAwLCB0aGlzLmltYWdlV2lkdGgsIHRoaXMuaW1hZ2VIZWln
aHQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSwKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2xlYXZlcy5qcyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2xlYXZl
cy5qcwppbmRleCA5MTAxYjc1Li41MGJkMmZkIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9sZWF2ZXMuanMKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvbGVhdmVzLmpzCkBA
IC0yLDcgKzIsNyBAQCBMZWFmID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFBhcnRpY2xlLAog
ICAgIGZ1bmN0aW9uKHN0YWdlKQogICAgIHsKICAgICAgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1
dGUoInNyYyIsIHN0YWdlLmltYWdlc1tTdGFnZS5yYW5kb21JbnQoMCwgc3RhZ2UuaW1hZ2VzLmxl
bmd0aCAtIDEpXS5zcmMpOworICAgICAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMi
LCBTdGFnZS5yYW5kb21FbGVtZW50SW5BcnJheShzdGFnZS5pbWFnZXMpLnNyYyk7CiAgICAgICAg
IHZhciBzaXplU3RyaW5nID0gdGhpcy5zaXplTWluaW11bSArICJweCI7CiAgICAgICAgIHRoaXMu
ZWxlbWVudC5zdHlsZS53aWR0aCA9IHNpemVTdHJpbmc7CiAgICAgICAgIHRoaXMuZWxlbWVudC5z
dHlsZS5oZWlnaHQgPSBzaXplU3RyaW5nOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmlt
b21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCmluZGV4IGQ0ZGRmNGIuLjA0NTBkMjcgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFp
bi5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21h
aW4uanMKQEAgLTcyMCw2ICs3MjAsMTEgQEAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdChTdGFnZSwg
ewogICAgICAgICByZXR1cm4gZmlsdGVyTGlzdFt0aGlzLnJhbmRvbUludCgwLCBmaWx0ZXJMaXN0
Lmxlbmd0aCldOwogICAgIH0sCiAKKyAgICByYW5kb21FbGVtZW50SW5BcnJheTogZnVuY3Rpb24o
YXJyYXkpCisgICAgeworICAgICAgICByZXR1cm4gYXJyYXlbU3RhZ2UucmFuZG9tSW50KDAsIGFy
cmF5Lmxlbmd0aCAtIDEpXTsKKyAgICB9LAorCiAgICAgcm90YXRpbmdDb2xvcjogZnVuY3Rpb24o
Y3ljbGVMZW5ndGhNcywgc2F0dXJhdGlvbiwgbGlnaHRuZXNzKQogICAgIHsKICAgICAgICAgcmV0
dXJuICJoc2woIgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxlLWNhbnZhcy1wYXRocy5qcyBiL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3NpbXBsZS1jYW52YXMtcGF0aHMu
anMKaW5kZXggZDA4NTYxZi4uY2RhOTg1YiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxlLWNhbnZhcy1wYXRocy5qcwor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291cmNlcy9z
aW1wbGUtY2FudmFzLXBhdGhzLmpzCkBAIC0yNDcsNyArMjQ3LDcgQEAgQ2FudmFzRWxsaXBzZUZp
bGwgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAKIENhbnZhc1N0cm9rZSA9IFV0aWxpdGllcy5j
cmVhdGVDbGFzcygKICAgICBmdW5jdGlvbiAoc3RhZ2UpIHsKLSAgICAgICAgdGhpcy5fb2JqZWN0
ID0gbmV3IHRoaXMub2JqZWN0VHlwZXNbU3RhZ2UucmFuZG9tSW50KDAsIHRoaXMub2JqZWN0VHlw
ZXMubGVuZ3RoIC0gMSldKHN0YWdlKTsKKyAgICAgICAgdGhpcy5fb2JqZWN0ID0gbmV3IChTdGFn
ZS5yYW5kb21FbGVtZW50SW5BcnJheSh0aGlzLm9iamVjdFR5cGVzKSkoc3RhZ2UpOwogICAgIH0s
IHsKIAogICAgIG9iamVjdFR5cGVzOiBbCkBAIC0yNjYsNyArMjY2LDcgQEAgQ2FudmFzU3Ryb2tl
ID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAogCiBDYW52YXNGaWxsID0gVXRpbGl0aWVzLmNyZWF0
ZUNsYXNzKAogICAgIGZ1bmN0aW9uIChzdGFnZSkgewotICAgICAgICB0aGlzLl9vYmplY3QgPSBu
ZXcgdGhpcy5vYmplY3RUeXBlc1tTdGFnZS5yYW5kb21JbnQoMCwgdGhpcy5vYmplY3RUeXBlcy5s
ZW5ndGggLSAxKV0oc3RhZ2UpOworICAgICAgICB0aGlzLl9vYmplY3QgPSBuZXcgKFN0YWdlLnJh
bmRvbUVsZW1lbnRJbkFycmF5KHRoaXMub2JqZWN0VHlwZXMpKShzdGFnZSk7CiAgICAgfSwgewog
CiAgICAgb2JqZWN0VHlwZXM6IFsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdl
TG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNThiODA1MC4uMDg5ZGI0NyAx
MDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0wMy0yMSAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGJlbmNobWFyayB0ZXN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzIzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgaGVscGVyIG1l
dGhvZCB0aGF0IHNlbGVjdHMgYSByYW5kb20gZWxlbWVudCBmcm9tIGFuIGFycmF5LgorCisgICAg
ICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKKyAgICAgICAgKFN0YWdl
LnJhbmRvbUVsZW1lbnRJbkFycmF5KTogU2VsZWN0IGEgcmFuZG9tIGVsZW1lbnQgZnJvbSB0aGUg
cHJvdmlkZWQgYXJyYXkuCisKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBh
cnRpY2xlcy9yZXNvdXJjZXMvYm91bmNpbmctdGFnZ2VkLWltYWdlcy5qczogUmVmYWN0b3IuCisg
ICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9kb20vcmVzb3VyY2VzL2xlYXZlcy5qczogRGl0dG8u
CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2RvbS1wYXJ0aWNs
ZXMuanM6IERpdHRvLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNl
cy9pbWFnZS1kYXRhLmpzOiBEaXR0by4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rl
ci9yZXNvdXJjZXMvbGVhdmVzLmpzOiBEaXR0by4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3Rz
L3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxlLWNhbnZhcy1wYXRocy5qczogRGl0dG8uCisKIDIwMTYt
MDMtMjAgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBiZW5j
aG1hcmsgdGVzdHMKLS0gCjIuNi40IChBcHBsZSBHaXQtNjMpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274610</attachid>
            <date>2016-03-21 11:04:22 -0700</date>
            <delta_ts>2016-03-21 11:08:08 -0700</delta_ts>
            <desc>7. Add quadratic and bezier segments.</desc>
            <filename>0007-Update-benchmark-tests.patch</filename>
            <type>text/plain</type>
            <size>11450</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA5YTNhNzAzMzNhMTViMjYzNGE0ZjQxMDE1ZjEyMzRlM2UwMjY0NzVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDIxIE1hciAyMDE2IDExOjAxOjMyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCA3LzddIFVwZGF0ZSBi
ZW5jaG1hcmsgdGVzdHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTU3MjMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIHF1YWRyYXRpYyBhbmQgYmV6
aWVyIHNlZ21lbnRzIHRvIHRoZSBjYW52YXMgcGF0aCB0ZXN0LgoKKiBBbmltb21ldGVyL3Jlc291
cmNlcy9ydW5uZXIvdGVzdHMuanM6IFNvbWUgb2YgdGhlIHF1ZXJ5IHN0cmluZ3MgYXJlIHVubmVj
ZXNzYXJ5LgpSZW5hbWUgdGhlIHRlc3QuCiogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3Vy
Y2VzL2NhbnZhcy1zdGFnZS5qczoKKHR1bmUpOiBVcGRhdGUgdG8gYmUgYWJsZSB0byB0YWtlIGFu
IGFycmF5IG9mIHBvc3NpYmxlIGNvbnN0cnVjdG9ycy4gQ2hvb3NlIG9uZSByYW5kb21seS4KKiBB
bmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzOgooQ2FudmFz
TGluZVBvaW50LlV0aWxpdGllcy5jcmVhdGVDbGFzcyk6IE1vdmUgdGhlIHBvaW50IHNlbGVjdGlv
biBvdXQgdG8gYSBzZXBhcmF0ZQpmdW5jdGlvbiBjYWxsZWQgcmFuZG9tUG9pbnQoKSBmb3IgcmV1
c2UuIE1vdmUgWF9MT09QUywgWV9MT09QUywgYW5kIG9mZnNldHMgaW50byB0aGUKY2xhc3MgZGVm
aW5pdGlvbi4KKHJhbmRvbVBvaW50KTogU2NhbGUgdGhlIGdyaWQgZG93biBhIGxpdHRsZSBiaXQg
c28gdGhhdCB0aGUgbGluZXMgYWxvbmcgdGhlIGVkZ2Ugb2YgdGhlCmNhbnZhcyBhcmUgbm90IGN1
dCBvZmYgd2hlbiB0aGUgc3Ryb2tlIHNpemUgaXMgdGhpY2suCihDYW52YXNRdWFkcmF0aWNTZWdt
ZW50KTogQWRkZWQuCihDYW52YXNCZXppZXJTZWdtZW50KTogQWRkZWQuCihTaW1wbGVDYW52YXNT
dGFnZSk6IFBhc3MgaW4gYW4gYXJyYXkgb2YgdGhlIGRpZmZlcmVudCBzZWdtZW50IHR5cGVzLiBT
aW5jZSBsaW5lIHNlZ21lbnRzCmFyZSBzaG9ydCBjb21wYXJlZCB0byB0aGUgY3VydmVkIG9uZXMs
IG1ha2UgaXQgdHdpY2UgYXMgbGlrZWx5IHRvIHJlbmRlciBhIGxpbmUgc2VnbWVudC4KKFNpbXBs
ZUNhbnZhc1N0YWdlLmFuaW1hdGUpOiBVcGRhdGUgdGhlIGRyYXdpbmcgY29kZSBzbyB0aGF0IHdl
IHJlbmRlciBhbGwgbGluZSBzZWdtZW50cy4KLS0tCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL3Rlc3RzLmpzICAgICAgICAgICB8ICAgNCArLQogLi4uL3Rlc3RzL21hc3Rlci9yZXNv
dXJjZXMvY2FudmFzLXN0YWdlLmpzICAgICAgICAgfCAgIDggKy0KIC4uLi90ZXN0cy9tYXN0ZXIv
cmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyAgICAgICAgIHwgMTE5ICsrKysrKysrKysrKysrKy0t
LS0tLQogUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgMjUgKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDM2IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvcnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvdGVzdHMuanMKaW5kZXggMDhiMzNkNi4uYjIzNTI0OSAxMDA2NDQKLS0tIGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKQEAg
LTI1LDggKzI1LDggQEAgU3VpdGVzLnB1c2gobmV3IFN1aXRlKCJBbmltb21ldGVyIiwKICAgICAg
ICAgICAgIG5hbWU6ICJMZWF2ZXMiCiAgICAgICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHVybDogIm1hc3Rlci9jYW52YXMtc3RhZ2UuaHRtbD9wYXRoVHlwZT1saW5lUGF0aCZsaW5lSm9p
bj1yb3VuZCZsaW5lQ2FwPXJvdW5kIiwKLSAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgbGluZSBw
YXRoLCByb3VuZCBqb2luIgorICAgICAgICAgICAgdXJsOiAibWFzdGVyL2NhbnZhcy1zdGFnZS5o
dG1sP3BhdGhUeXBlPWxpbmVQYXRoIiwKKyAgICAgICAgICAgIG5hbWU6ICJQYXRocyIKICAgICAg
ICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgdXJsOiAibWFzdGVyL2NhbnZhcy1zdGFnZS5o
dG1sP3BhdGhUeXBlPWxpbmUmbGluZUNhcD1zcXVhcmUiLApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvY2FudmFzLXN0YWdlLmpz
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvY2Fu
dmFzLXN0YWdlLmpzCmluZGV4IDJhZDYzYTMuLjIyMDAyZWMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy1zdGFnZS5q
cworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNl
cy9jYW52YXMtc3RhZ2UuanMKQEAgLTI3LDggKzI3LDEyIEBAIFNpbXBsZUNhbnZhc1N0YWdlID0g
VXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdlLAogICAgICAgICBpZiAobmV3SW5kZXggPCAw
KSB7CiAgICAgICAgICAgICB0aGlzLm9mZnNldEluZGV4ID0gMDsKICAgICAgICAgICAgIG5ld0lu
ZGV4ID0gLW5ld0luZGV4OwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdJbmRl
eDsgKytpKQotICAgICAgICAgICAgICAgIHRoaXMub2JqZWN0cy5wdXNoKG5ldyB0aGlzLl9jYW52
YXNPYmplY3QodGhpcykpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdJbmRl
eDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NhbnZhc09iamVjdC5jb25zdHJ1
Y3RvciA9PT0gQXJyYXkpCisgICAgICAgICAgICAgICAgICAgIHRoaXMub2JqZWN0cy5wdXNoKG5l
dyAoU3RhZ2UucmFuZG9tRWxlbWVudEluQXJyYXkodGhpcy5fY2FudmFzT2JqZWN0KSkodGhpcykp
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5vYmplY3Rz
LnB1c2gobmV3IHRoaXMuX2NhbnZhc09iamVjdCh0aGlzKSk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgdGhpcy5vZmZzZXRJbmRleCA9IG5ld0luZGV4OwogICAg
IH0sCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVy
L3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
dGVzdHMvbWFzdGVyL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMKaW5kZXggZjlhMGM2Ni4uNmI4
MDU1MCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rl
ci9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcwpAQCAtODEsNDMgKzgx
LDk2IEBAIENhbnZhc0FyYyA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKIC8vIENhbnZhc0xpbmVQ
b2ludCBjb250YWlucyBubyBkcmF3KCkgbWV0aG9kIHNpbmNlIGl0IGlzIGVpdGhlciBtb3ZlVG8g
b3IKIC8vIGxpbmVUbyBkZXBlbmRpbmcgb24gaXRzIGluZGV4LgogQ2FudmFzTGluZVBvaW50ID0g
VXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAotICAgIGZ1bmN0aW9uKHN0YWdlLCBjb29yZGluYXRlTWF4
aW11bSkKKyAgICBmdW5jdGlvbihzdGFnZSkKICAgICB7Ci0gICAgICAgIHZhciBYX0xPT1BTID0g
NDA7Ci0gICAgICAgIHZhciBZX0xPT1BTID0gMjA7CisgICAgICAgIHZhciBjb2xvcnMgPSBbIiMx
MDEwMTAiLCAiIzgwODA4MCIsICIjYzBjMGMwIiwgIiMxMDEwMTAiLCAiIzgwODA4MCIsICIjYzBj
MGMwIiwgIiNlMDEwNDAiXTsKKyAgICAgICAgdGhpcy5jb2xvciA9IGNvbG9yc1tNYXRoLmZsb29y
KFBzZXVkby5yYW5kb20oKSAqIGNvbG9ycy5sZW5ndGgpXTsKKyAgICAgICAgdGhpcy53aWR0aCA9
IE1hdGgucG93KFBzZXVkby5yYW5kb20oKSwgNSkgKiAyMCArIDE7CisgICAgICAgIHRoaXMuaXNT
cGxpdCA9IFBzZXVkby5yYW5kb20oKSA+IDAuOTU7CisKKyAgICAgICAgdmFyIG5leHRQb2ludDsK
KyAgICAgICAgaWYgKHN0YWdlLm9iamVjdHMubGVuZ3RoKQorICAgICAgICAgICAgbmV4dFBvaW50
ID0gdGhpcy5yYW5kb21Qb2ludChzdGFnZSwgc3RhZ2Uub2JqZWN0c1tzdGFnZS5vYmplY3RzLmxl
bmd0aCAtIDFdLmNvb3JkaW5hdGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXh0UG9p
bnQgPSB0aGlzLnJhbmRvbVBvaW50KHN0YWdlLCBuZXcgUG9pbnQodGhpcy5ncmlkU2l6ZVggLyAy
LCB0aGlzLmdyaWRTaXplWSAvIDIpKTsKKyAgICAgICAgdGhpcy5wb2ludCA9IG5leHRQb2ludC5w
b2ludDsKKyAgICAgICAgdGhpcy5jb29yZGluYXRlID0gbmV4dFBvaW50LmNvb3JkaW5hdGU7Cisg
ICAgfSwgewogCi0gICAgICAgIHZhciBvZmZzZXRzID0gW1stMiwgLTFdLCBbMiwgMV0sIFstMSwg
MF0sIFsxLCAwXSwgWy0xLCAyXSwgWzEsIC0yXV07Ci0gICAgICAgIHZhciBvZmZzZXQgPSBvZmZz
ZXRzW01hdGguZmxvb3IoUHNldWRvLnJhbmRvbSgpICogb2Zmc2V0cy5sZW5ndGgpXTsKKyAgICBn
cmlkU2l6ZVg6IDgwLAorICAgIGdyaWRTaXplWTogNDAsCisgICAgb2Zmc2V0czogWworICAgICAg
ICBuZXcgUG9pbnQoLTQsIDApLAorICAgICAgICBuZXcgUG9pbnQoMiwgMCksCisgICAgICAgIG5l
dyBQb2ludCgxLCAtMiksCisgICAgICAgIG5ldyBQb2ludCgxLCAyKSwKKyAgICBdLAogCi0gICAg
ICAgIHRoaXMuY29vcmRpbmF0ZSA9IG5ldyBQb2ludChYX0xPT1BTLzIsIFlfTE9PUFMvMik7Cisg
ICAgcmFuZG9tUG9pbnQ6IGZ1bmN0aW9uKHN0YWdlLCBzdGFydENvb3JkaW5hdGUpCisgICAgewor
ICAgICAgICB2YXIgY29vcmRpbmF0ZSA9IHN0YXJ0Q29vcmRpbmF0ZTsKICAgICAgICAgaWYgKHN0
YWdlLm9iamVjdHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICB2YXIgaGVhZCA9IHN0YWdlLm9iamVj
dHNbc3RhZ2Uub2JqZWN0cy5sZW5ndGggLSAxXS5jb29yZGluYXRlOwotICAgICAgICAgICAgdGhp
cy5jb29yZGluYXRlLnggPSBoZWFkLng7Ci0gICAgICAgICAgICB0aGlzLmNvb3JkaW5hdGUueSA9
IGhlYWQueTsKKyAgICAgICAgICAgIHZhciBvZmZzZXQgPSBTdGFnZS5yYW5kb21FbGVtZW50SW5B
cnJheSh0aGlzLm9mZnNldHMpOworCisgICAgICAgICAgICBjb29yZGluYXRlID0gY29vcmRpbmF0
ZS5hZGQob2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChjb29yZGluYXRlLnggPCAwIHx8IGNvb3Jk
aW5hdGUueCA+IHRoaXMuZ3JpZFNpemVYKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdGUueCAt
PSBvZmZzZXQueCAqIDI7CisgICAgICAgICAgICBpZiAoY29vcmRpbmF0ZS55IDwgMCB8fCBjb29y
ZGluYXRlLnkgPiB0aGlzLmdyaWRTaXplWSkKKyAgICAgICAgICAgICAgICBjb29yZGluYXRlLnkg
LT0gb2Zmc2V0LnkgKiAyOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIG5leHRDb29yZGluYXRl
ID0gdGhpcy5jb29yZGluYXRlLnggKyBvZmZzZXRbMF07Ci0gICAgICAgIGlmIChuZXh0Q29vcmRp
bmF0ZSA8IDAgfHwgbmV4dENvb3JkaW5hdGUgPiBYX0xPT1BTKQotICAgICAgICAgICAgdGhpcy5j
b29yZGluYXRlLnggLT0gb2Zmc2V0WzBdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlz
LmNvb3JkaW5hdGUueCA9IG5leHRDb29yZGluYXRlOwotICAgICAgICBuZXh0Q29vcmRpbmF0ZSA9
IHRoaXMuY29vcmRpbmF0ZS55ICsgb2Zmc2V0WzFdOwotICAgICAgICBpZiAobmV4dENvb3JkaW5h
dGUgPCAwIHx8IG5leHRDb29yZGluYXRlID4gWV9MT09QUykKLSAgICAgICAgICAgIHRoaXMuY29v
cmRpbmF0ZS55IC09IG9mZnNldFsxXTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5j
b29yZGluYXRlLnkgPSBuZXh0Q29vcmRpbmF0ZTsKKyAgICAgICAgdmFyIHggPSAoY29vcmRpbmF0
ZS54ICsgLjUpICogc3RhZ2Uuc2l6ZS54IC8gKHRoaXMuZ3JpZFNpemVYICsgMSk7CisgICAgICAg
IHZhciB5ID0gKGNvb3JkaW5hdGUueSArIC41KSAqIHN0YWdlLnNpemUueSAvICh0aGlzLmdyaWRT
aXplWSArIDEpOworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgcG9pbnQ6IG5ldyBQb2lu
dCh4LCB5KSwKKyAgICAgICAgICAgIGNvb3JkaW5hdGU6IGNvb3JkaW5hdGUKKyAgICAgICAgfTsK
KyAgICB9LAogCi0gICAgICAgIHZhciB4T2ZmID0gLjI1ICogKHRoaXMuY29vcmRpbmF0ZS55ICUg
Mik7Ci0gICAgICAgIHZhciByYW5kWCA9ICh4T2ZmICsgdGhpcy5jb29yZGluYXRlLngpICogc3Rh
Z2Uuc2l6ZS54IC8gWF9MT09QUzsKLSAgICAgICAgdmFyIHJhbmRZID0gdGhpcy5jb29yZGluYXRl
LnkgKiBzdGFnZS5zaXplLnkgLyBZX0xPT1BTOwotICAgICAgICB2YXIgY29sb3JzID0gWyIjMTAx
MDEwIiwgIiM4MDgwODAiLCAiI2MwYzBjMCIsICIjMTAxMDEwIiwgIiM4MDgwODAiLCAiI2MwYzBj
MCIsICIjZTAxMDQwIl07Ci0gICAgICAgIHRoaXMuY29sb3IgPSBjb2xvcnNbTWF0aC5mbG9vcihQ
c2V1ZG8ucmFuZG9tKCkgKiBjb2xvcnMubGVuZ3RoKV07CisgICAgZHJhdzogZnVuY3Rpb24oY29u
dGV4dCkKKyAgICB7CisgICAgICAgIGNvbnRleHQubGluZVRvKHRoaXMucG9pbnQueCwgdGhpcy5w
b2ludC55KTsKKyAgICB9Cit9KTsKIAotICAgICAgICB0aGlzLndpZHRoID0gTWF0aC5wb3coUHNl
dWRvLnJhbmRvbSgpLCA1KSAqIDIwICsgMTsKLSAgICAgICAgdGhpcy5pc1NwbGl0ID0gUHNldWRv
LnJhbmRvbSgpID4gMC45OwotICAgICAgICB0aGlzLnBvaW50ID0gbmV3IFBvaW50KHJhbmRYLCBy
YW5kWSk7CitDYW52YXNRdWFkcmF0aWNTZWdtZW50ID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNz
KENhbnZhc0xpbmVQb2ludCwKKyAgICBmdW5jdGlvbihzdGFnZSkKKyAgICB7CisgICAgICAgIENh
bnZhc0xpbmVQb2ludC5jYWxsKHRoaXMsIHN0YWdlKTsKKyAgICAgICAgLy8gVGhlIGNob3NlbiBw
b2ludCBpcyBpbnN0ZWFkIHRoZSBjb250cm9sIHBvaW50LgorICAgICAgICB0aGlzLl9wb2ludDIg
PSB0aGlzLnBvaW50OworCisgICAgICAgIC8vIEdldCBhbm90aGVyIHJhbmRvbSBwb2ludCBmb3Ig
dGhlIGFjdHVhbCBlbmQgcG9pbnQgb2YgdGhlIHNlZ21lbnQuCisgICAgICAgIHZhciBuZXh0UG9p
bnQgPSB0aGlzLnJhbmRvbVBvaW50KHN0YWdlLCB0aGlzLmNvb3JkaW5hdGUpOworICAgICAgICB0
aGlzLnBvaW50ID0gbmV4dFBvaW50LnBvaW50OworICAgICAgICB0aGlzLmNvb3JkaW5hdGUgPSBu
ZXh0UG9pbnQuY29vcmRpbmF0ZTsKKyAgICB9LCB7CisKKyAgICBkcmF3OiBmdW5jdGlvbihjb250
ZXh0KQorICAgIHsKKyAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKHRoaXMuX3BvaW50
Mi54LCB0aGlzLl9wb2ludDIueSwgdGhpcy5wb2ludC54LCB0aGlzLnBvaW50LnkpOwogICAgIH0K
LSk7Cit9KTsKKworQ2FudmFzQmV6aWVyU2VnbWVudCA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFz
cyhDYW52YXNMaW5lUG9pbnQsCisgICAgZnVuY3Rpb24oc3RhZ2UpCisgICAgeworICAgICAgICBD
YW52YXNMaW5lUG9pbnQuY2FsbCh0aGlzLCBzdGFnZSk7CisgICAgICAgIC8vIFRoZSBjaG9zZW4g
cG9pbnQgaXMgaW5zdGVhZCB0aGUgZmlyc3QgY29udHJvbCBwb2ludC4KKyAgICAgICAgdGhpcy5f
cG9pbnQyID0gdGhpcy5wb2ludDsKKyAgICAgICAgdmFyIG5leHRQb2ludCA9IHRoaXMucmFuZG9t
UG9pbnQoc3RhZ2UsIHRoaXMuY29vcmRpbmF0ZSk7CisgICAgICAgIHRoaXMuX3BvaW50MyA9IG5l
eHRQb2ludC5wb2ludDsKKworICAgICAgICBuZXh0UG9pbnQgPSB0aGlzLnJhbmRvbVBvaW50KHN0
YWdlLCBuZXh0UG9pbnQuY29vcmRpbmF0ZSk7CisgICAgICAgIHRoaXMucG9pbnQgPSBuZXh0UG9p
bnQucG9pbnQ7CisgICAgICAgIHRoaXMuY29vcmRpbmF0ZSA9IG5leHRQb2ludC5jb29yZGluYXRl
OworICAgIH0sIHsKKworICAgIGRyYXc6IGZ1bmN0aW9uKGNvbnRleHQsIG9mZikKKyAgICB7Cisg
ICAgICAgIGNvbnRleHQuYmV6aWVyQ3VydmVUbyh0aGlzLl9wb2ludDIueCwgdGhpcy5fcG9pbnQy
LnksIHRoaXMuX3BvaW50My54LCB0aGlzLl9wb2ludDMueSwgdGhpcy5wb2ludC54LCB0aGlzLnBv
aW50LnkpOworICAgIH0KK30pOwogCiAvLyA9PT0gU1RBR0VTID09PQogCkBAIC0xOTAsNyArMjQz
LDcgQEAgQ2FudmFzTGluZVNlZ21lbnRTdGFnZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhT
aW1wbGVDYW52YXNTdGFnZSwKIENhbnZhc0xpbmVQYXRoU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRl
U3ViY2xhc3MoU2ltcGxlQ2FudmFzU3RhZ2UsCiAgICAgZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgU2ltcGxlQ2FudmFzU3RhZ2UuY2FsbCh0aGlzLCBDYW52YXNMaW5lUG9pbnQpOworICAgICAg
ICBTaW1wbGVDYW52YXNTdGFnZS5jYWxsKHRoaXMsIFtDYW52YXNMaW5lUG9pbnQsIENhbnZhc0xp
bmVQb2ludCwgQ2FudmFzUXVhZHJhdGljU2VnbWVudCwgQ2FudmFzQmV6aWVyU2VnbWVudF0pOwog
ICAgIH0sIHsKIAogICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGJlbmNobWFyaywgb3B0aW9ucykK
QEAgLTIxMCwxOSArMjYzLDIxIEBAIENhbnZhc0xpbmVQYXRoU3RhZ2UgPSBVdGlsaXRpZXMuY3Jl
YXRlU3ViY2xhc3MoU2ltcGxlQ2FudmFzU3RhZ2UsCiAgICAgICAgICAgICBpZiAoaSA9PSB0aGlz
Lm9mZnNldEluZGV4KSB7CiAgICAgICAgICAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSBvYmpl
Y3Qud2lkdGg7CiAgICAgICAgICAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IG9iamVjdC5j
b2xvcjsKKyAgICAgICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgICAgICAgICAg
ICAgIGNvbnRleHQubW92ZVRvKG9iamVjdC5wb2ludC54LCBvYmplY3QucG9pbnQueSk7CiAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG9iamVjdC5kcmF3KGNvbnRleHQpOwor
CiAgICAgICAgICAgICAgICAgaWYgKG9iamVjdC5pc1NwbGl0KSB7CiAgICAgICAgICAgICAgICAg
ICAgIGNvbnRleHQuc3Ryb2tlKCk7CiAKICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5saW5l
V2lkdGggPSBvYmplY3Qud2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tl
U3R5bGUgPSBvYmplY3QuY29sb3I7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuYmVnaW5Q
YXRoKCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKG9iamVjdC5wb2ludC54
LCBvYmplY3QucG9pbnQueSk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
Y29udGV4dC5saW5lVG8ob2JqZWN0LnBvaW50LngsIG9iamVjdC5wb2ludC55KTsKLQotICAgICAg
ICAgICAgICAgIGlmIChQc2V1ZG8ucmFuZG9tKCkgPiAwLjk5OSkKKyAgICAgICAgICAgICAgICBp
ZiAoUHNldWRvLnJhbmRvbSgpID4gMC45OTUpCiAgICAgICAgICAgICAgICAgICAgIG9iamVjdC5p
c1NwbGl0ID0gIW9iamVjdC5pc1NwbGl0OwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDA4OWRiNDcuLjFhNWRkZmUgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC01LDYgKzUs
MzEgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBB
ZGQgcXVhZHJhdGljIGFuZCBiZXppZXIgc2VnbWVudHMgdG8gdGhlIGNhbnZhcyBwYXRoIHRlc3Qu
CisKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanM6IFNvbWUg
b2YgdGhlIHF1ZXJ5IHN0cmluZ3MgYXJlIHVubmVjZXNzYXJ5LgorICAgICAgICBSZW5hbWUgdGhl
IHRlc3QuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2NhbnZh
cy1zdGFnZS5qczoKKyAgICAgICAgKHR1bmUpOiBVcGRhdGUgdG8gYmUgYWJsZSB0byB0YWtlIGFu
IGFycmF5IG9mIHBvc3NpYmxlIGNvbnN0cnVjdG9ycy4gQ2hvb3NlIG9uZSByYW5kb21seS4KKyAg
ICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpz
OgorICAgICAgICAoQ2FudmFzTGluZVBvaW50LlV0aWxpdGllcy5jcmVhdGVDbGFzcyk6IE1vdmUg
dGhlIHBvaW50IHNlbGVjdGlvbiBvdXQgdG8gYSBzZXBhcmF0ZQorICAgICAgICBmdW5jdGlvbiBj
YWxsZWQgcmFuZG9tUG9pbnQoKSBmb3IgcmV1c2UuIE1vdmUgWF9MT09QUywgWV9MT09QUywgYW5k
IG9mZnNldHMgaW50byB0aGUKKyAgICAgICAgY2xhc3MgZGVmaW5pdGlvbi4KKyAgICAgICAgKHJh
bmRvbVBvaW50KTogU2NhbGUgdGhlIGdyaWQgZG93biBhIGxpdHRsZSBiaXQgc28gdGhhdCB0aGUg
bGluZXMgYWxvbmcgdGhlIGVkZ2Ugb2YgdGhlCisgICAgICAgIGNhbnZhcyBhcmUgbm90IGN1dCBv
ZmYgd2hlbiB0aGUgc3Ryb2tlIHNpemUgaXMgdGhpY2suCisgICAgICAgIChDYW52YXNRdWFkcmF0
aWNTZWdtZW50KTogQWRkZWQuCisgICAgICAgIChDYW52YXNCZXppZXJTZWdtZW50KTogQWRkZWQu
CisgICAgICAgIChTaW1wbGVDYW52YXNTdGFnZSk6IFBhc3MgaW4gYW4gYXJyYXkgb2YgdGhlIGRp
ZmZlcmVudCBzZWdtZW50IHR5cGVzLiBTaW5jZSBsaW5lIHNlZ21lbnRzCisgICAgICAgIGFyZSBz
aG9ydCBjb21wYXJlZCB0byB0aGUgY3VydmVkIG9uZXMsIG1ha2UgaXQgdHdpY2UgYXMgbGlrZWx5
IHRvIHJlbmRlciBhIGxpbmUgc2VnbWVudC4KKyAgICAgICAgKFNpbXBsZUNhbnZhc1N0YWdlLmFu
aW1hdGUpOiBVcGRhdGUgdGhlIGRyYXdpbmcgY29kZSBzbyB0aGF0IHdlIHJlbmRlciBhbGwgbGlu
ZSBzZWdtZW50cy4KKworMjAxNi0wMy0yMSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisK
KyAgICAgICAgVXBkYXRlIGJlbmNobWFyayB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKICAgICAgICAgQWRkIGEgaGVscGVyIG1ldGhvZCB0aGF0IHNlbGVjdHMg
YSByYW5kb20gZWxlbWVudCBmcm9tIGFuIGFycmF5LgogCiAgICAgICAgICogQW5pbW9tZXRlci90
ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKLS0gCjIuNi40IChBcHBsZSBHaXQtNjMpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274611</attachid>
            <date>2016-03-21 11:07:17 -0700</date>
            <delta_ts>2016-03-21 13:31:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155723-20160321110717.patch</filename>
            <type>text/plain</type>
            <size>48704</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NDkxCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCmluZGV4IGIw
MTljYWI4YWFkOGU3ZTJhNWEzNDI2ZjcyYjZjY2NlYzE5MTc1ZGUuLmMzYmZiYzc3YjBiNWI5Y2Vm
YmEyNjg2OWM0ZWZlMzAwN2I0ZWYxNDkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCisrKyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCkBAIC0xNjgs
NiArMTY4LDEwIEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiSFRNTCBzdWl0ZSIsCiAgICAgICAg
IHsKICAgICAgICAgICAgIHVybDogImRvbS9sZWF2ZXMuaHRtbCIsCiAgICAgICAgICAgICBuYW1l
OiAiTGVhdmVzIDIuMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgdXJsOiAi
ZG9tL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbD9wYXJ0aWNsZVdpZHRoPTUwJnBhcnRpY2xl
SGVpZ2h0PTUwJmZpbHRlcnM9eWVzJmltYWdlU3JjPS4uL3Jlc291cmNlcy95aW4teWFuZy5zdmci
LAorICAgICAgICAgICAgbmFtZTogIkNvbXBvc2l0ZWQgVHJhbnNmb3JtcyIKICAgICAgICAgfQog
ICAgIF0KICkpOwpAQCAtMTc1LDEwICsxNzksNiBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIkhU
TUwgc3VpdGUiLAogU3VpdGVzLnB1c2gobmV3IFN1aXRlKCJDYW52YXMgc3VpdGUiLAogICAgIFsK
ICAgICAgICAgewotICAgICAgICAgICAgdXJsOiAiYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5n
LWNhbnZhcy1zaGFwZXMuaHRtbD9wYXJ0aWNsZVdpZHRoPTEyJnBhcnRpY2xlSGVpZ2h0PTEyJnNo
YXBlPWNpcmNsZSIsCi0gICAgICAgICAgICBuYW1lOiAiY2FudmFzIGJvdW5jaW5nIGNpcmNsZXMi
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKICAgICAgICAgICAgIHVybDogImJvdW5jaW5nLXBhcnRp
Y2xlcy9ib3VuY2luZy1jYW52YXMtc2hhcGVzLmh0bWw/cGFydGljbGVXaWR0aD00MCZwYXJ0aWNs
ZUhlaWdodD00MCZzaGFwZT1yZWN0JmNsaXA9c3RhciIsCiAgICAgICAgICAgICBuYW1lOiAiY2Fu
dmFzIGJvdW5jaW5nIGNsaXBwZWQgcmVjdHMiCiAgICAgICAgIH0sCkBAIC0xOTQsNiArMTk0LDE4
IEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiQ2FudmFzIHN1aXRlIiwKICAgICAgICAgICAgIHVy
bDogImJvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtaW1hZ2VzLmh0bWw/cGFydGlj
bGVXaWR0aD04MCZwYXJ0aWNsZUhlaWdodD04MCZpbWFnZVNyYz0uLi9yZXNvdXJjZXMveWluLXlh
bmcucG5nIiwKICAgICAgICAgICAgIG5hbWU6ICJjYW52YXMgYm91bmNpbmcgUE5HIGltYWdlcyIK
ICAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgdXJsOiAic2ltcGxlL3NpbXBsZS1j
YW52YXMtcGF0aHMuaHRtbD9wYXRoVHlwZT1zdHJva2VzIiwKKyAgICAgICAgICAgIG5hbWU6ICJT
dHJva2Ugc2hhcGVzIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB1cmw6ICJz
aW1wbGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sP3BhdGhUeXBlPWZpbGxzIiwKKyAgICAgICAg
ICAgIG5hbWU6ICJGaWxsIHNoYXBlcyIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgdXJsOiAic2ltcGxlL3RpbGVkLWNhbnZhcy1pbWFnZS5odG1sIiwKKyAgICAgICAgICAgIG5h
bWU6ICJDYW52YXMgcHV0L2dldCBpbWFnZSBkYXRhIgorICAgICAgICB9LAogICAgIF0KICkpOwog
CkBAIC0yMjIsNiArMjM0LDE1IEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiU1ZHIHN1aXRlIiwK
ICAgICBdCiApKTsKIAorU3VpdGVzLnB1c2gobmV3IFN1aXRlKCIzRCBHcmFwaGljcyIsCisgICAg
WworICAgICAgICB7CisgICAgICAgICAgICB1cmw6ICIzZC93ZWJnbC5odG1sIiwKKyAgICAgICAg
ICAgIG5hbWU6ICJXZWJHTCIKKyAgICAgICAgfSwKKyAgICBdCispKTsKKwogU3VpdGVzLnB1c2go
bmV3IFN1aXRlKCJCYXNpYyBjYW52YXMgcGF0aCBzdWl0ZSIsCiAgICAgWwogICAgICAgICB7CkBA
IC0yODEsNiArMzAyLDEwIEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiQmFzaWMgY2FudmFzIHBh
dGggc3VpdGUiLAogICAgICAgICAgICAgbmFtZTogIkNhbnZhcyByZWN0cyIKICAgICAgICAgfSwK
ICAgICAgICAgeworICAgICAgICAgICAgdXJsOiAic2ltcGxlL3NpbXBsZS1jYW52YXMtcGF0aHMu
aHRtbD9wYXRoVHlwZT1lbGxpcHNlIiwKKyAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgZWxsaXBz
ZXMiCisgICAgICAgIH0sCisgICAgICAgIHsKICAgICAgICAgICAgIHVybDogInNpbXBsZS9zaW1w
bGUtY2FudmFzLXBhdGhzLmh0bWw/cGF0aFR5cGU9bGluZUZpbGwiLAogICAgICAgICAgICAgbmFt
ZTogIkNhbnZhcyBsaW5lIHBhdGgsIGZpbGwiCiAgICAgICAgIH0sCkBAIC0zMDUsMzQgKzMzMCw4
IEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiQmFzaWMgY2FudmFzIHBhdGggc3VpdGUiLAogICAg
ICAgICAgICAgbmFtZTogIkNhbnZhcyByZWN0cywgZmlsbCIKICAgICAgICAgfSwKICAgICAgICAg
ewotICAgICAgICAgICAgdXJsOiAic2ltcGxlL3RpbGVkLWNhbnZhcy1pbWFnZS5odG1sIiwKLSAg
ICAgICAgICAgIG5hbWU6ICJDYW52YXMgcHV0L2dldCBpbWFnZSBkYXRhIgotICAgICAgICB9LAot
ICAgIF0KLSkpOwotCi1TdWl0ZXMucHVzaChuZXcgU3VpdGUoIjNEIEdyYXBoaWNzIiwKLSAgICBb
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHVybDogIjNkL3dlYmdsLmh0bWwiLAotICAgICAgICAg
ICAgbmFtZTogIldlYkdMIgotICAgICAgICB9LAotICAgIF0KLSkpOwotCi1TdWl0ZXMucHVzaChu
ZXcgU3VpdGUoIk1pc2NlbGxhbmVvdXMgVGVzdHMiLAotICAgIFsKLSAgICAgICAgewotICAgICAg
ICAgICAgdXJsOiAibWlzYy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWw/cGFydGljbGVXaWR0
aD01MCZwYXJ0aWNsZUhlaWdodD01MCZmaWx0ZXJzPXllcyZpbWFnZVNyYz0uLi9yZXNvdXJjZXMv
eWluLXlhbmcuc3ZnIiwKLSAgICAgICAgICAgIG5hbWU6ICJDb21wb3NpdGVkIFRyYW5zZm9ybXMi
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHVybDogIm1pc2MvY2FudmFzLWVs
ZWN0cm9ucy5odG1sIiwKLSAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgZWxlY3Ryb25zIgotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1cmw6ICJtaXNjL2NhbnZhcy1zdGFycy5o
dG1sIiwKLSAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgc3RhcnMiCi0gICAgICAgIH0sCisgICAg
ICAgICAgICB1cmw6ICJzaW1wbGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sP3BhdGhUeXBlPWVs
bGlwc2VGaWxsIiwKKyAgICAgICAgICAgIG5hbWU6ICJDYW52YXMgZWxsaXBzZXMsIGZpbGwiCisg
ICAgICAgIH0KICAgICBdCiApKTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKaW5kZXggMDg4MWUzMmE2ZjVmN2Y0NWJlYzAx
MDVkMDExOWY1NDVjNmNmNzg3OS4uYjIzNTI0OTE4ODhiNjk5YzNhY2E5YjljMWI4MzdkNmE2ZWY5
ZWNkMyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvdGVzdHMuanMKQEAgLTI1LDE4ICsyNSwxNCBAQCBTdWl0ZXMucHVzaChuZXcgU3Vp
dGUoIkFuaW1vbWV0ZXIiLAogICAgICAgICAgICAgbmFtZTogIkxlYXZlcyIKICAgICAgICAgfSwK
ICAgICAgICAgewotICAgICAgICAgICAgdXJsOiAibWFzdGVyL2NhbnZhcy1zdGFnZS5odG1sP3Bh
dGhUeXBlPWxpbmVQYXRoJmxpbmVKb2luPXJvdW5kJmxpbmVDYXA9cm91bmQiLAotICAgICAgICAg
ICAgbmFtZTogIkNhbnZhcyBsaW5lIHBhdGgsIHJvdW5kIGpvaW4iCisgICAgICAgICAgICB1cmw6
ICJtYXN0ZXIvY2FudmFzLXN0YWdlLmh0bWw/cGF0aFR5cGU9bGluZVBhdGgiLAorICAgICAgICAg
ICAgbmFtZTogIlBhdGhzIgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICB1cmw6
ICJtYXN0ZXIvY2FudmFzLXN0YWdlLmh0bWw/cGF0aFR5cGU9bGluZSZsaW5lQ2FwPXNxdWFyZSIs
CiAgICAgICAgICAgICBuYW1lOiAiQ2FudmFzIGxpbmUgc2VnbWVudHMiCiAgICAgICAgIH0sCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHVybDogIm1hc3Rlci90ZXh0Lmh0bWwiLAotICAgICAgICAg
ICAgbmFtZTogIkEgdG8gWiIKLSAgICAgICAgfSwKLSAgICAgICAgewogICAgICAgICAgICAgdXJs
OiAibWFzdGVyL2ZvY3VzLmh0bWwiLAogICAgICAgICAgICAgbmFtZTogIkZvY3VzIgogICAgICAg
ICB9LApAQCAtNDUsNyArNDEsNyBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIkFuaW1vbWV0ZXIi
LAogICAgICAgICAgICAgbmFtZTogIkltYWdlcyIKICAgICAgICAgfSwKICAgICAgICAgewotICAg
ICAgICAgICAgdXJsOiAibWFzdGVyL2ludGVybmF0aW9uYWwuaHRtbCIsCisgICAgICAgICAgICB1
cmw6ICJtYXN0ZXIvdGV4dC5odG1sIiwKICAgICAgICAgICAgIG5hbWU6ICJEZXNpZ24iCiAgICAg
ICAgIH0sCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXRhZ2dlZC1pbWFn
ZXMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGlj
bGVzL3Jlc291cmNlcy9ib3VuY2luZy10YWdnZWQtaW1hZ2VzLmpzCmluZGV4IGFkMzNlMmRlZGU4
NzlmOTQyMzZjZTdmOWM3Zjc0YWUzYTcyM2VmOTQuLjFlZjZhMDkxZDIxMzFmZDM2NTVhMTNkZDhj
YzFiNjMxN2RiMWM2YzYgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90
ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXRhZ2dlZC1pbWFnZXMu
anMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRp
Y2xlcy9yZXNvdXJjZXMvYm91bmNpbmctdGFnZ2VkLWltYWdlcy5qcwpAQCAtOCw3ICs4LDcgQEAg
Qm91bmNpbmdUYWdnZWRJbWFnZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhCb3VuY2luZ1Bh
cnRpY2xlLAogICAgICAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bWciKTsKICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoID0gdGhpcy5zaXplLnggKyAi
cHgiOwogICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zaXplLnkgKyAi
cHgiOwotICAgICAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCBzdGFnZS5pbWFn
ZXNbU3RhZ2UucmFuZG9tSW50KDAsIHN0YWdlLmltYWdlcy5sZW5ndGggLSAxKV0uc3JjKTsKKyAg
ICAgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgU3RhZ2UucmFuZG9tRWxlbWVu
dEluQXJyYXkoc3RhZ2UuaW1hZ2VzKS5zcmMpOwogCiAgICAgICAgIHN0YWdlLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKICAgICAgICAgdGhpcy5fbW92ZSgpOwpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2RvbS9jb21wb3NpdGluZy10cmFu
c2Zvcm1zLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvZG9tL2NvbXBv
c2l0aW5nLXRyYW5zZm9ybXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDViMGJmNWU2MzI4OTA3NzRhZTU3
ZmVhYmRiOTIyY2I0YTBlYTFjCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Rlc3RzL2RvbS9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwKQEAgLTAsMCAr
MSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBo
cmVmPSIuLi9yZXNvdXJjZXMvc3RhZ2UuY3NzIj4KKyAgICA8c3R5bGU+CisgICAgICAgIGltZyB7
CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0aDogODBw
eDsKKyAgICAgICAgICAgIGhlaWdodDogODBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzdGFnZSI+PC9kaXY+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9ib3Vu
Y2luZy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXBhcnRpY2xlcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci90ZXN0cy9kb20vcmVzb3VyY2VzL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuanMg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvZG9tL3Jlc291cmNlcy9jb21wb3Np
dGluZy10cmFuc2Zvcm1zLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZDQwMWVlZWI3NTZiOWIxYjhjYzdlNGVh
NmYwMzBhYWNhNjBjNzMKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvZG9tL3Jlc291cmNlcy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmpzCkBAIC0w
LDAgKzEsNjYgQEAKKyhmdW5jdGlvbigpIHsKKworQm91bmNpbmdDb21wb3NpdGVkSW1hZ2UgPSBV
dGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQm91bmNpbmdQYXJ0aWNsZSwKKyAgICBmdW5jdGlvbihz
dGFnZSkKKyAgICB7CisgICAgICAgIEJvdW5jaW5nUGFydGljbGUuY2FsbCh0aGlzLCBzdGFnZSk7
CisKKyAgICAgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7
CisgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS53aWR0aCA9IHRoaXMuc2l6ZS54ICsgInB4IjsK
KyAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodCA9IHRoaXMuc2l6ZS55ICsgInB4IjsK
KyAgICAgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgc3RhZ2UuaW1hZ2VTcmMp
OworCisgICAgICAgIGlmIChzdGFnZS51c2VGaWx0ZXJzKQorICAgICAgICAgICAgdGhpcy5lbGVt
ZW50LnN0eWxlLmZpbHRlciA9ICJodWUtcm90YXRlKCIgKyBTdGFnZS5yYW5kb21BbmdsZSgpICsg
InJhZCkiOworCisgICAgICAgIHN0YWdlLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50
KTsKKyAgICAgICAgdGhpcy5fbW92ZSgpOworICAgIH0sIHsKKworICAgIF9tb3ZlOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gInRyYW5z
bGF0ZTNkKCIgKyB0aGlzLnBvc2l0aW9uLnggKyAicHgsIiArIHRoaXMucG9zaXRpb24ueSArICJw
eCwgMCkgIiArIHRoaXMucm90YXRlci5yb3RhdGVaKCk7CisgICAgfSwKKworICAgIGFuaW1hdGU6
IGZ1bmN0aW9uKHRpbWVEZWx0YSkKKyAgICB7CisgICAgICAgIEJvdW5jaW5nUGFydGljbGUucHJv
dG90eXBlLmFuaW1hdGUuY2FsbCh0aGlzLCB0aW1lRGVsdGEpOworICAgICAgICB0aGlzLl9tb3Zl
KCk7CisgICAgfQorfSk7CisKK0NvbXBvc2l0aW5nVHJhbnNmb3Jtc1N0YWdlID0gVXRpbGl0aWVz
LmNyZWF0ZVN1YmNsYXNzKEJvdW5jaW5nUGFydGljbGVzU3RhZ2UsCisgICAgZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgQm91bmNpbmdQYXJ0aWNsZXNTdGFnZS5jYWxsKHRoaXMpOworICAgIH0s
IHsKKworICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGJlbmNobWFyaywgb3B0aW9ucykKKyAgICB7
CisgICAgICAgIEJvdW5jaW5nUGFydGljbGVzU3RhZ2UucHJvdG90eXBlLmluaXRpYWxpemUuY2Fs
bCh0aGlzLCBiZW5jaG1hcmssIG9wdGlvbnMpOworCisgICAgICAgIHRoaXMuaW1hZ2VTcmMgPSBv
cHRpb25zWyJpbWFnZVNyYyJdIHx8ICIuLi9yZXNvdXJjZXMveWluLXlhbmcuc3ZnIjsKKyAgICAg
ICAgdGhpcy51c2VGaWx0ZXJzID0gb3B0aW9uc1siZmlsdGVycyJdID09ICJ5ZXMiOworICAgIH0s
CisKKyAgICBjcmVhdGVQYXJ0aWNsZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG5ldyBCb3VuY2luZ0NvbXBvc2l0ZWRJbWFnZSh0aGlzKTsKKyAgICB9LAorCisgICAgcGFydGlj
bGVXaWxsQmVSZW1vdmVkOiBmdW5jdGlvbihwYXJ0aWNsZSkKKyAgICB7CisgICAgICAgIHBhcnRp
Y2xlLmVsZW1lbnQucmVtb3ZlKCk7CisgICAgfQorfSk7CisKK0NvbXBvc2l0ZWRUcmFuc2Zvcm1z
QmVuY2htYXJrID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKEJlbmNobWFyaywKKyAgICBmdW5j
dGlvbihvcHRpb25zKQorICAgIHsKKyAgICAgICAgQmVuY2htYXJrLmNhbGwodGhpcywgbmV3IENv
bXBvc2l0aW5nVHJhbnNmb3Jtc1N0YWdlKCksIG9wdGlvbnMpOworICAgIH0KKyk7CisKK3dpbmRv
dy5iZW5jaG1hcmtDbGFzcyA9IENvbXBvc2l0ZWRUcmFuc2Zvcm1zQmVuY2htYXJrOworCit9KSgp
OwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2RvbS9yZXNv
dXJjZXMvbGVhdmVzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2RvbS9y
ZXNvdXJjZXMvbGVhdmVzLmpzCmluZGV4IDdiMDc3OGU4NzAzYjAyMTM4NWQ3ZDdiYjlhNGFhMGMz
NWFmNTJiZTEuLjljZWY1NDgxMjVjN2MxYzFmNmZmYjk3NzNkMjU2ZTZkZGNiZjhiMTYgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9kb20vcmVzb3VyY2VzL2xl
YXZlcy5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvZG9tL3Jlc291
cmNlcy9sZWF2ZXMuanMKQEAgLTIsNyArMiw3IEBAIExlYWYgPSBVdGlsaXRpZXMuY3JlYXRlU3Vi
Y2xhc3MoUGFydGljbGUsCiAgICAgZnVuY3Rpb24oc3RhZ2UpCiAgICAgewogICAgICAgICB0aGlz
LmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKLSAgICAgICAgdGhpcy5l
bGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgc3RhZ2UuaW1hZ2VzW1N0YWdlLnJhbmRvbUludCgw
LCBzdGFnZS5pbWFnZXMubGVuZ3RoIC0gMSldLnNyYyk7CisgICAgICAgIHRoaXMuZWxlbWVudC5z
ZXRBdHRyaWJ1dGUoInNyYyIsIFN0YWdlLnJhbmRvbUVsZW1lbnRJbkFycmF5KHN0YWdlLmltYWdl
cykuc3JjKTsKICAgICAgICAgc3RhZ2UuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQp
OwogCiAgICAgICAgIFBhcnRpY2xlLmNhbGwodGhpcywgc3RhZ2UpOwpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9pbnRlcm5hdGlvbmFsLmh0bWwg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVybmF0aW9uYWwu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE1ZGE5M2ViYzlmMjZlYWIyMDA2
MjY1YTIzZTUyOWQzZmZiMGQ3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVy
bmF0aW9uYWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0icmVzb3VyY2VzL3N0YWdl
LmNzcyI+Ci0gICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLQotICAgICAgICAjc3RhZ2Ugewot
ICAgICAgICAgICAgZm9udC1mYW1pbHk6IEhlbHZldGljYTsKLSAgICAgICAgICAgIGZvbnQtc2l6
ZTogNDhweDsKLSAgICAgICAgfQotICAgICAgICAjc3RhZ2UgZGl2IHsKLSAgICAgICAgICAgIHdp
ZHRoOiA2MCU7Ci0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICB0
ZXh0LWFsaWduOiBjZW50ZXI7Ci0gICAgICAgIH0KLSAgICAgICAgI3RlbXBsYXRlIHsKLSAgICAg
ICAgICAgIGNvbG9yOiAjMTExOwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxi
b2R5PgotICAgIDxkaXYgaWQ9InN0YWdlIj4KLSAgICAgICAgPGRpdiBpZD0idGVtcGxhdGUiPgot
ICAgICAgICAgICAgPHA+6K6+6K6hPC9wPgotICAgICAgICAgICAgPHAgY2xhc3M9InJ0bCI+2KrY
tdmF2YrZhTwvcD4KLSAgICAgICAgICAgIDxwPtC00LjQt9Cw0LnQvTwvcD4KLSAgICAgICAgICAg
IDxwPuODh+OCtuOCpOODszwvcD4KLSAgICAgICAgICAgIDxwIGNsYXNzPSJydGwiPtei15nXpteV
15E8L3A+Ci0gICAgICAgICAgICA8cD7rlJTsnpDsnbg8L3A+Ci0gICAgICAgIDwvZGl2PgotICAg
IDwvZGl2PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RleHQuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rl
ci9yZXNvdXJjZXMvY2FudmFzLXN0YWdlLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvY2FudmFzLXN0YWdlLmpzCmluZGV4IDJhZDYzYTNlZTM3
NDhkYzU0ODJkZGEwZTg2MWViNTBkZDBjMmJjM2EuLjIyMDAyZWNjZDYxZmQ1ZGIxOTYwNDE1MjI0
MTYxMjk5ODE5OWI3YWUgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90
ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy1zdGFnZS5qcworKysgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9jYW52YXMtc3RhZ2UuanMKQEAg
LTI3LDggKzI3LDEyIEBAIFNpbXBsZUNhbnZhc1N0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNs
YXNzKFN0YWdlLAogICAgICAgICBpZiAobmV3SW5kZXggPCAwKSB7CiAgICAgICAgICAgICB0aGlz
Lm9mZnNldEluZGV4ID0gMDsKICAgICAgICAgICAgIG5ld0luZGV4ID0gLW5ld0luZGV4OwotICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdJbmRleDsgKytpKQotICAgICAgICAgICAg
ICAgIHRoaXMub2JqZWN0cy5wdXNoKG5ldyB0aGlzLl9jYW52YXNPYmplY3QodGhpcykpOworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdJbmRleDsgKytpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHRoaXMuX2NhbnZhc09iamVjdC5jb25zdHJ1Y3RvciA9PT0gQXJyYXkpCisgICAg
ICAgICAgICAgICAgICAgIHRoaXMub2JqZWN0cy5wdXNoKG5ldyAoU3RhZ2UucmFuZG9tRWxlbWVu
dEluQXJyYXkodGhpcy5fY2FudmFzT2JqZWN0KSkodGhpcykpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5vYmplY3RzLnB1c2gobmV3IHRoaXMuX2NhbnZh
c09iamVjdCh0aGlzKSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgdGhpcy5vZmZzZXRJbmRleCA9IG5ld0luZGV4OwogICAgIH0sCmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9jYW52YXMtdGVz
dHMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNl
cy9jYW52YXMtdGVzdHMuanMKaW5kZXggZjlhMGM2NmExYWMwMTk3MWQ4ZWExNGI1MDBhN2IxYWJm
NmYzZDAyNy4uNmI4MDU1MDUzZGI4Zjk3Yjg3OWJlMDEyZWZlYmQzYzdlNWI3NDE4ZiAxMDA2NDQK
LS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMv
Y2FudmFzLXRlc3RzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9t
YXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcwpAQCAtODEsNDMgKzgxLDk2IEBAIENhbnZh
c0FyYyA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKIC8vIENhbnZhc0xpbmVQb2ludCBjb250YWlu
cyBubyBkcmF3KCkgbWV0aG9kIHNpbmNlIGl0IGlzIGVpdGhlciBtb3ZlVG8gb3IKIC8vIGxpbmVU
byBkZXBlbmRpbmcgb24gaXRzIGluZGV4LgogQ2FudmFzTGluZVBvaW50ID0gVXRpbGl0aWVzLmNy
ZWF0ZUNsYXNzKAotICAgIGZ1bmN0aW9uKHN0YWdlLCBjb29yZGluYXRlTWF4aW11bSkKKyAgICBm
dW5jdGlvbihzdGFnZSkKICAgICB7Ci0gICAgICAgIHZhciBYX0xPT1BTID0gNDA7Ci0gICAgICAg
IHZhciBZX0xPT1BTID0gMjA7CisgICAgICAgIHZhciBjb2xvcnMgPSBbIiMxMDEwMTAiLCAiIzgw
ODA4MCIsICIjYzBjMGMwIiwgIiMxMDEwMTAiLCAiIzgwODA4MCIsICIjYzBjMGMwIiwgIiNlMDEw
NDAiXTsKKyAgICAgICAgdGhpcy5jb2xvciA9IGNvbG9yc1tNYXRoLmZsb29yKFBzZXVkby5yYW5k
b20oKSAqIGNvbG9ycy5sZW5ndGgpXTsKKyAgICAgICAgdGhpcy53aWR0aCA9IE1hdGgucG93KFBz
ZXVkby5yYW5kb20oKSwgNSkgKiAyMCArIDE7CisgICAgICAgIHRoaXMuaXNTcGxpdCA9IFBzZXVk
by5yYW5kb20oKSA+IDAuOTU7CisKKyAgICAgICAgdmFyIG5leHRQb2ludDsKKyAgICAgICAgaWYg
KHN0YWdlLm9iamVjdHMubGVuZ3RoKQorICAgICAgICAgICAgbmV4dFBvaW50ID0gdGhpcy5yYW5k
b21Qb2ludChzdGFnZSwgc3RhZ2Uub2JqZWN0c1tzdGFnZS5vYmplY3RzLmxlbmd0aCAtIDFdLmNv
b3JkaW5hdGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXh0UG9pbnQgPSB0aGlzLnJh
bmRvbVBvaW50KHN0YWdlLCBuZXcgUG9pbnQodGhpcy5ncmlkU2l6ZVggLyAyLCB0aGlzLmdyaWRT
aXplWSAvIDIpKTsKKyAgICAgICAgdGhpcy5wb2ludCA9IG5leHRQb2ludC5wb2ludDsKKyAgICAg
ICAgdGhpcy5jb29yZGluYXRlID0gbmV4dFBvaW50LmNvb3JkaW5hdGU7CisgICAgfSwgewogCi0g
ICAgICAgIHZhciBvZmZzZXRzID0gW1stMiwgLTFdLCBbMiwgMV0sIFstMSwgMF0sIFsxLCAwXSwg
Wy0xLCAyXSwgWzEsIC0yXV07Ci0gICAgICAgIHZhciBvZmZzZXQgPSBvZmZzZXRzW01hdGguZmxv
b3IoUHNldWRvLnJhbmRvbSgpICogb2Zmc2V0cy5sZW5ndGgpXTsKKyAgICBncmlkU2l6ZVg6IDgw
LAorICAgIGdyaWRTaXplWTogNDAsCisgICAgb2Zmc2V0czogWworICAgICAgICBuZXcgUG9pbnQo
LTQsIDApLAorICAgICAgICBuZXcgUG9pbnQoMiwgMCksCisgICAgICAgIG5ldyBQb2ludCgxLCAt
MiksCisgICAgICAgIG5ldyBQb2ludCgxLCAyKSwKKyAgICBdLAogCi0gICAgICAgIHRoaXMuY29v
cmRpbmF0ZSA9IG5ldyBQb2ludChYX0xPT1BTLzIsIFlfTE9PUFMvMik7CisgICAgcmFuZG9tUG9p
bnQ6IGZ1bmN0aW9uKHN0YWdlLCBzdGFydENvb3JkaW5hdGUpCisgICAgeworICAgICAgICB2YXIg
Y29vcmRpbmF0ZSA9IHN0YXJ0Q29vcmRpbmF0ZTsKICAgICAgICAgaWYgKHN0YWdlLm9iamVjdHMu
bGVuZ3RoKSB7Ci0gICAgICAgICAgICB2YXIgaGVhZCA9IHN0YWdlLm9iamVjdHNbc3RhZ2Uub2Jq
ZWN0cy5sZW5ndGggLSAxXS5jb29yZGluYXRlOwotICAgICAgICAgICAgdGhpcy5jb29yZGluYXRl
LnggPSBoZWFkLng7Ci0gICAgICAgICAgICB0aGlzLmNvb3JkaW5hdGUueSA9IGhlYWQueTsKKyAg
ICAgICAgICAgIHZhciBvZmZzZXQgPSBTdGFnZS5yYW5kb21FbGVtZW50SW5BcnJheSh0aGlzLm9m
ZnNldHMpOworCisgICAgICAgICAgICBjb29yZGluYXRlID0gY29vcmRpbmF0ZS5hZGQob2Zmc2V0
KTsKKyAgICAgICAgICAgIGlmIChjb29yZGluYXRlLnggPCAwIHx8IGNvb3JkaW5hdGUueCA+IHRo
aXMuZ3JpZFNpemVYKQorICAgICAgICAgICAgICAgIGNvb3JkaW5hdGUueCAtPSBvZmZzZXQueCAq
IDI7CisgICAgICAgICAgICBpZiAoY29vcmRpbmF0ZS55IDwgMCB8fCBjb29yZGluYXRlLnkgPiB0
aGlzLmdyaWRTaXplWSkKKyAgICAgICAgICAgICAgICBjb29yZGluYXRlLnkgLT0gb2Zmc2V0Lnkg
KiAyOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIG5leHRDb29yZGluYXRlID0gdGhpcy5jb29y
ZGluYXRlLnggKyBvZmZzZXRbMF07Ci0gICAgICAgIGlmIChuZXh0Q29vcmRpbmF0ZSA8IDAgfHwg
bmV4dENvb3JkaW5hdGUgPiBYX0xPT1BTKQotICAgICAgICAgICAgdGhpcy5jb29yZGluYXRlLngg
LT0gb2Zmc2V0WzBdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLmNvb3JkaW5hdGUu
eCA9IG5leHRDb29yZGluYXRlOwotICAgICAgICBuZXh0Q29vcmRpbmF0ZSA9IHRoaXMuY29vcmRp
bmF0ZS55ICsgb2Zmc2V0WzFdOwotICAgICAgICBpZiAobmV4dENvb3JkaW5hdGUgPCAwIHx8IG5l
eHRDb29yZGluYXRlID4gWV9MT09QUykKLSAgICAgICAgICAgIHRoaXMuY29vcmRpbmF0ZS55IC09
IG9mZnNldFsxXTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5jb29yZGluYXRlLnkg
PSBuZXh0Q29vcmRpbmF0ZTsKKyAgICAgICAgdmFyIHggPSAoY29vcmRpbmF0ZS54ICsgLjUpICog
c3RhZ2Uuc2l6ZS54IC8gKHRoaXMuZ3JpZFNpemVYICsgMSk7CisgICAgICAgIHZhciB5ID0gKGNv
b3JkaW5hdGUueSArIC41KSAqIHN0YWdlLnNpemUueSAvICh0aGlzLmdyaWRTaXplWSArIDEpOwor
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgcG9pbnQ6IG5ldyBQb2ludCh4LCB5KSwKKyAg
ICAgICAgICAgIGNvb3JkaW5hdGU6IGNvb3JkaW5hdGUKKyAgICAgICAgfTsKKyAgICB9LAogCi0g
ICAgICAgIHZhciB4T2ZmID0gLjI1ICogKHRoaXMuY29vcmRpbmF0ZS55ICUgMik7Ci0gICAgICAg
IHZhciByYW5kWCA9ICh4T2ZmICsgdGhpcy5jb29yZGluYXRlLngpICogc3RhZ2Uuc2l6ZS54IC8g
WF9MT09QUzsKLSAgICAgICAgdmFyIHJhbmRZID0gdGhpcy5jb29yZGluYXRlLnkgKiBzdGFnZS5z
aXplLnkgLyBZX0xPT1BTOwotICAgICAgICB2YXIgY29sb3JzID0gWyIjMTAxMDEwIiwgIiM4MDgw
ODAiLCAiI2MwYzBjMCIsICIjMTAxMDEwIiwgIiM4MDgwODAiLCAiI2MwYzBjMCIsICIjZTAxMDQw
Il07Ci0gICAgICAgIHRoaXMuY29sb3IgPSBjb2xvcnNbTWF0aC5mbG9vcihQc2V1ZG8ucmFuZG9t
KCkgKiBjb2xvcnMubGVuZ3RoKV07CisgICAgZHJhdzogZnVuY3Rpb24oY29udGV4dCkKKyAgICB7
CisgICAgICAgIGNvbnRleHQubGluZVRvKHRoaXMucG9pbnQueCwgdGhpcy5wb2ludC55KTsKKyAg
ICB9Cit9KTsKIAotICAgICAgICB0aGlzLndpZHRoID0gTWF0aC5wb3coUHNldWRvLnJhbmRvbSgp
LCA1KSAqIDIwICsgMTsKLSAgICAgICAgdGhpcy5pc1NwbGl0ID0gUHNldWRvLnJhbmRvbSgpID4g
MC45OwotICAgICAgICB0aGlzLnBvaW50ID0gbmV3IFBvaW50KHJhbmRYLCByYW5kWSk7CitDYW52
YXNRdWFkcmF0aWNTZWdtZW50ID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKENhbnZhc0xpbmVQ
b2ludCwKKyAgICBmdW5jdGlvbihzdGFnZSkKKyAgICB7CisgICAgICAgIENhbnZhc0xpbmVQb2lu
dC5jYWxsKHRoaXMsIHN0YWdlKTsKKyAgICAgICAgLy8gVGhlIGNob3NlbiBwb2ludCBpcyBpbnN0
ZWFkIHRoZSBjb250cm9sIHBvaW50LgorICAgICAgICB0aGlzLl9wb2ludDIgPSB0aGlzLnBvaW50
OworCisgICAgICAgIC8vIEdldCBhbm90aGVyIHJhbmRvbSBwb2ludCBmb3IgdGhlIGFjdHVhbCBl
bmQgcG9pbnQgb2YgdGhlIHNlZ21lbnQuCisgICAgICAgIHZhciBuZXh0UG9pbnQgPSB0aGlzLnJh
bmRvbVBvaW50KHN0YWdlLCB0aGlzLmNvb3JkaW5hdGUpOworICAgICAgICB0aGlzLnBvaW50ID0g
bmV4dFBvaW50LnBvaW50OworICAgICAgICB0aGlzLmNvb3JkaW5hdGUgPSBuZXh0UG9pbnQuY29v
cmRpbmF0ZTsKKyAgICB9LCB7CisKKyAgICBkcmF3OiBmdW5jdGlvbihjb250ZXh0KQorICAgIHsK
KyAgICAgICAgY29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKHRoaXMuX3BvaW50Mi54LCB0aGlzLl9w
b2ludDIueSwgdGhpcy5wb2ludC54LCB0aGlzLnBvaW50LnkpOwogICAgIH0KLSk7Cit9KTsKKwor
Q2FudmFzQmV6aWVyU2VnbWVudCA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhDYW52YXNMaW5l
UG9pbnQsCisgICAgZnVuY3Rpb24oc3RhZ2UpCisgICAgeworICAgICAgICBDYW52YXNMaW5lUG9p
bnQuY2FsbCh0aGlzLCBzdGFnZSk7CisgICAgICAgIC8vIFRoZSBjaG9zZW4gcG9pbnQgaXMgaW5z
dGVhZCB0aGUgZmlyc3QgY29udHJvbCBwb2ludC4KKyAgICAgICAgdGhpcy5fcG9pbnQyID0gdGhp
cy5wb2ludDsKKyAgICAgICAgdmFyIG5leHRQb2ludCA9IHRoaXMucmFuZG9tUG9pbnQoc3RhZ2Us
IHRoaXMuY29vcmRpbmF0ZSk7CisgICAgICAgIHRoaXMuX3BvaW50MyA9IG5leHRQb2ludC5wb2lu
dDsKKworICAgICAgICBuZXh0UG9pbnQgPSB0aGlzLnJhbmRvbVBvaW50KHN0YWdlLCBuZXh0UG9p
bnQuY29vcmRpbmF0ZSk7CisgICAgICAgIHRoaXMucG9pbnQgPSBuZXh0UG9pbnQucG9pbnQ7Cisg
ICAgICAgIHRoaXMuY29vcmRpbmF0ZSA9IG5leHRQb2ludC5jb29yZGluYXRlOworICAgIH0sIHsK
KworICAgIGRyYXc6IGZ1bmN0aW9uKGNvbnRleHQsIG9mZikKKyAgICB7CisgICAgICAgIGNvbnRl
eHQuYmV6aWVyQ3VydmVUbyh0aGlzLl9wb2ludDIueCwgdGhpcy5fcG9pbnQyLnksIHRoaXMuX3Bv
aW50My54LCB0aGlzLl9wb2ludDMueSwgdGhpcy5wb2ludC54LCB0aGlzLnBvaW50LnkpOworICAg
IH0KK30pOwogCiAvLyA9PT0gU1RBR0VTID09PQogCkBAIC0xOTAsNyArMjQzLDcgQEAgQ2FudmFz
TGluZVNlZ21lbnRTdGFnZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhTaW1wbGVDYW52YXNT
dGFnZSwKIENhbnZhc0xpbmVQYXRoU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoU2lt
cGxlQ2FudmFzU3RhZ2UsCiAgICAgZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgU2ltcGxlQ2Fu
dmFzU3RhZ2UuY2FsbCh0aGlzLCBDYW52YXNMaW5lUG9pbnQpOworICAgICAgICBTaW1wbGVDYW52
YXNTdGFnZS5jYWxsKHRoaXMsIFtDYW52YXNMaW5lUG9pbnQsIENhbnZhc0xpbmVQb2ludCwgQ2Fu
dmFzUXVhZHJhdGljU2VnbWVudCwgQ2FudmFzQmV6aWVyU2VnbWVudF0pOwogICAgIH0sIHsKIAog
ICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGJlbmNobWFyaywgb3B0aW9ucykKQEAgLTIxMCwxOSAr
MjYzLDIxIEBAIENhbnZhc0xpbmVQYXRoU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3Mo
U2ltcGxlQ2FudmFzU3RhZ2UsCiAgICAgICAgICAgICBpZiAoaSA9PSB0aGlzLm9mZnNldEluZGV4
KSB7CiAgICAgICAgICAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSBvYmplY3Qud2lkdGg7CiAg
ICAgICAgICAgICAgICAgY29udGV4dC5zdHJva2VTdHlsZSA9IG9iamVjdC5jb2xvcjsKKyAgICAg
ICAgICAgICAgICBjb250ZXh0LmJlZ2luUGF0aCgpOwogICAgICAgICAgICAgICAgIGNvbnRleHQu
bW92ZVRvKG9iamVjdC5wb2ludC54LCBvYmplY3QucG9pbnQueSk7CiAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIG9iamVjdC5kcmF3KGNvbnRleHQpOworCiAgICAgICAgICAg
ICAgICAgaWYgKG9iamVjdC5pc1NwbGl0KSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQu
c3Ryb2tlKCk7CiAKICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5saW5lV2lkdGggPSBvYmpl
Y3Qud2lkdGg7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBvYmpl
Y3QuY29sb3I7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQubW92ZVRvKG9iamVjdC5wb2ludC54LCBvYmplY3QucG9p
bnQueSk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgY29udGV4dC5saW5l
VG8ob2JqZWN0LnBvaW50LngsIG9iamVjdC5wb2ludC55KTsKLQotICAgICAgICAgICAgICAgIGlm
IChQc2V1ZG8ucmFuZG9tKCkgPiAwLjk5OSkKKyAgICAgICAgICAgICAgICBpZiAoUHNldWRvLnJh
bmRvbSgpID4gMC45OTUpCiAgICAgICAgICAgICAgICAgICAgIG9iamVjdC5pc1NwbGl0ID0gIW9i
amVjdC5pc1NwbGl0OwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9kb20tcGFydGlj
bGVzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJj
ZXMvZG9tLXBhcnRpY2xlcy5qcwppbmRleCBlNWY2MTNhZmZiYmE5MWViNjVjMGQ2OTg2ZjRmMTQ5
ZTJmY2YyMTZhLi5jNjUxMmJkOTY3NTcwMWYwNDY0NTI3YTI5NGYyMTQ0NjQyNTNhMTMyIDEwMDY0
NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNl
cy9kb20tcGFydGljbGVzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0
cy9tYXN0ZXIvcmVzb3VyY2VzL2RvbS1wYXJ0aWNsZXMuanMKQEAgLTEzLDcgKzEzLDcgQEAgRE9N
UGFydGljbGUgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoUGFydGljbGUsCiAgICAgewogICAg
ICAgICBQYXJ0aWNsZS5wcm90b3R5cGUucmVzZXQuY2FsbCh0aGlzKTsKIAotICAgICAgICB2YXIg
ZW1pdExvY2F0aW9uID0gdGhpcy5zdGFnZS5lbWl0TG9jYXRpb25bU3RhZ2UucmFuZG9tSW50KDAs
IHRoaXMuc3RhZ2UuZW1pdExvY2F0aW9uLmxlbmd0aCAtIDEpXTsKKyAgICAgICAgdmFyIGVtaXRM
b2NhdGlvbiA9IFN0YWdlLnJhbmRvbUVsZW1lbnRJbkFycmF5KHRoaXMuc3RhZ2UuZW1pdExvY2F0
aW9uKTsKICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IG5ldyBQb2ludChlbWl0TG9jYXRpb24ueCwg
ZW1pdExvY2F0aW9uLnkpOwogCiAgICAgICAgIHZhciBhbmdsZSA9IFN0YWdlLnJhbmRvbUludCgw
LCB0aGlzLnN0YWdlLmVtaXRTdGVwcykgLyB0aGlzLnN0YWdlLmVtaXRTdGVwcyAqIE1hdGguUEkg
KiAyICsgU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSgxMDApICogdGhpcy5zdGFnZS5lbWlzc2lvblNw
aW47CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVy
L3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qcwppbmRleCAwN2QzZGQ4ODVkMDE5YzJl
NjYxM2E0NDQ3YzRmZmM0YzMzZmQ3YTYyLi43YTAyOGYyOGFjMTkzYWVhYWZkMTBjYzgxNDdjMGUx
MDVkMWU0YzVhIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
bWFzdGVyL3Jlc291cmNlcy9pbWFnZS1kYXRhLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2ltYWdlLWRhdGEuanMKQEAgLTE0Niw3ICsx
NDYsNyBAQCB2YXIgSW1hZ2VEYXRhU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoU3Rh
Z2UsCiAgICAgICAgICAgICAgICAgY29udGV4dC5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLCAwLCAw
KTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hFbGVt
ZW50KGVsZW1lbnQpOwotICAgICAgICAgICAgICAgIGVsZW1lbnQuZ2V0Q29udGV4dCgiMmQiKS5k
cmF3SW1hZ2UodGhpcy5pbWFnZXNbU3RhZ2UucmFuZG9tSW50KDAsIHRoaXMuaW1hZ2VzLmxlbmd0
aCAtIDEpXSwgMCwgMCwgdGhpcy5pbWFnZVdpZHRoLCB0aGlzLmltYWdlSGVpZ2h0KTsKKyAgICAg
ICAgICAgICAgICBlbGVtZW50LmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKFN0YWdlLnJhbmRv
bUVsZW1lbnRJbkFycmF5KHRoaXMuaW1hZ2VzKSwgMCwgMCwgdGhpcy5pbWFnZVdpZHRoLCB0aGlz
LmltYWdlSGVpZ2h0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0sCmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9s
ZWF2ZXMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291
cmNlcy9sZWF2ZXMuanMKaW5kZXggOTEwMWI3NWEyNzJmZDdmMGQ0OGYxMjE0YWZmZjA2MzI2MTNm
OGVhNC4uNTBiZDJmZDA3ZDljZDgzMjQwNjU2N2MxZTgxYWNjYTYyNzdmNDdkMiAxMDA2NDQKLS0t
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvbGVh
dmVzLmpzCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVz
b3VyY2VzL2xlYXZlcy5qcwpAQCAtMiw3ICsyLDcgQEAgTGVhZiA9IFV0aWxpdGllcy5jcmVhdGVT
dWJjbGFzcyhQYXJ0aWNsZSwKICAgICBmdW5jdGlvbihzdGFnZSkKICAgICB7CiAgICAgICAgIHRo
aXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOwotICAgICAgICB0aGlz
LmVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCBzdGFnZS5pbWFnZXNbU3RhZ2UucmFuZG9tSW50
KDAsIHN0YWdlLmltYWdlcy5sZW5ndGggLSAxKV0uc3JjKTsKKyAgICAgICAgdGhpcy5lbGVtZW50
LnNldEF0dHJpYnV0ZSgic3JjIiwgU3RhZ2UucmFuZG9tRWxlbWVudEluQXJyYXkoc3RhZ2UuaW1h
Z2VzKS5zcmMpOwogICAgICAgICB2YXIgc2l6ZVN0cmluZyA9IHRoaXMuc2l6ZU1pbmltdW0gKyAi
cHgiOwogICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGggPSBzaXplU3RyaW5nOwogICAg
ICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gc2l6ZVN0cmluZzsKZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3RleHQu
anMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy90
ZXh0LmpzCmluZGV4IGQ3MGI3YWEzOWIzYmNjY2FmYmNiMWQ4MWRhMWU4OTQ5Y2U3YTlmNWIuLmY1
OTUwYjIyNGU0ZjYwY2E3NTgyNWQxZDU4YzYyYTIyYjNjY2I5M2EgMTAwNjQ0Ci0tLSBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3RleHQuanMKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvdGV4
dC5qcwpAQCAtMTAsMTIgKzEwLDIwIEBAIHZhciBUZXh0U3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRl
U3ViY2xhc3MoU3RhZ2UsCiAgICAgfSwgewogCiAgICAgc2hhZG93RmFsbG9mZjogbmV3IFVuaXRC
ZXppZXIobmV3IFBvaW50KDAuMDE1LCAwLjc1MCksIG5ldyBQb2ludCgwLjc1NSwgMC4yMzUpKSwK
LSAgICBzaGltbWVyQXZlcmFnZTogMC40LAorICAgIHNoaW1tZXJBdmVyYWdlOiAwLAogICAgIHNo
aW1tZXJNYXg6IDAuNSwKICAgICBtaWxsaXNlY29uZHNQZXJSb3RhdGlvbjogMTAwMCAvICguMjYg
KiBNYXRoLlBJICogMiksCi0gICAgcGFydGljbGVEaXN0YW5jZTogMSwKKyAgICBwYXJ0aWNsZURp
c3RhbmNlWDogMS41LAorICAgIHBhcnRpY2xlRGlzdGFuY2VZOiAuNSwKICAgICBsaWdodG5lc3NN
aW46IDEzLAogICAgIGxpZ2h0bmVzc01heDogOTQsCisgICAgZ3JhZGllbnRzOiBbCisgICAgICAg
IFsxMCwgMTc2LCAxNzYsIDIwOSwgMTQ4LCAxNDBdLAorICAgICAgICBbMTcxLCAxMjAsIDE1NCwg
MjQ1LCAxOTYsIDE1NF0sCisgICAgICAgIFsyMjQsIDk5LCA5OSwgNzEsIDEzNCwgMTQ4XSwKKyAg
ICAgICAgWzEwMSwgMTAwLCAxMTcsIDgwLCAyMzAsIDE3NV0sCisgICAgICAgIFsyMzIsIDE2NSwg
MzAsIDY5LCAxODYsIDE3Ml0KKyAgICBdLAogCiAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oYmVu
Y2htYXJrKQogICAgIHsKQEAgLTY2LDIxICs3NCwyNCBAQCB2YXIgVGV4dFN0YWdlID0gVXRpbGl0
aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdlLAogICAgICAgICB2YXIgeCA9IDA7CiAgICAgICAgIHZh
ciB5ID0gMDsKICAgICAgICAgdmFyIHByb2dyZXNzID0gMDsKLSAgICAgICAgdmFyIHN0ZXBYID0g
TWF0aC5zaW4oYW5nbGUpICogdGhpcy5wYXJ0aWNsZURpc3RhbmNlOwotICAgICAgICB2YXIgc3Rl
cFkgPSBNYXRoLmNvcyhhbmdsZSkgKiB0aGlzLnBhcnRpY2xlRGlzdGFuY2U7CisgICAgICAgIHZh
ciBzdGVwWCA9IE1hdGguc2luKGFuZ2xlKSAqIHRoaXMucGFydGljbGVEaXN0YW5jZVg7CisgICAg
ICAgIHZhciBzdGVwWSA9IE1hdGguY29zKGFuZ2xlKSAqIHRoaXMucGFydGljbGVEaXN0YW5jZVk7
CisgICAgICAgIHZhciBncmFkaWVudCA9IHRoaXMuZ3JhZGllbnRzW01hdGguZmxvb3IoYW5nbGUv
KE1hdGguUEkgKiAyKSkgJSB0aGlzLmdyYWRpZW50cy5sZW5ndGhdOworICAgICAgICB2YXIgb2Zm
c2V0ID0gU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSgyMDApOwogICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRoaXMuX29mZnNldEluZGV4OyArK2kpIHsKLSAgICAgICAgICAgIHggKz0gc3RlcFg7
Ci0gICAgICAgICAgICB5ICs9IHN0ZXBZOwotCiAgICAgICAgICAgICB2YXIgZWxlbWVudCA9IHRo
aXMudGVzdEVsZW1lbnRzW2ldOwogCiAgICAgICAgICAgICB2YXIgY29sb3JQcm9ncmVzcyA9IHRo
aXMuc2hhZG93RmFsbG9mZi5zb2x2ZShwcm9ncmVzcyk7Ci0gICAgICAgICAgICB2YXIgc2hpbW1l
ciA9IE1hdGguc2luKFN0YWdlLmRhdGVDb3VudGVyVmFsdWUoMTAwKSAtIGNvbG9yUHJvZ3Jlc3Mp
OwotICAgICAgICAgICAgY29sb3JQcm9ncmVzcyArPSBVdGlsaXRpZXMubGVycChzaGltbWVyLCB0
aGlzLnNoaW1tZXJBdmVyYWdlLCB0aGlzLnNoaW1tZXJNYXgpOwotICAgICAgICAgICAgdmFyIGlu
dGVycG9sYXRlZExpZ2h0bmVzcyA9IE1hdGgucm91bmQoVXRpbGl0aWVzLmxlcnAoTWF0aC5tYXgo
TWF0aC5taW4oY29sb3JQcm9ncmVzcywgMSksIDApLCB0aGlzLmxpZ2h0bmVzc01pbiwgdGhpcy5s
aWdodG5lc3NNYXgpKTsKKyAgICAgICAgICAgIHZhciBzaGltbWVyID0gTWF0aC5zaW4ob2Zmc2V0
IC0gY29sb3JQcm9ncmVzcyk7CisgICAgICAgICAgICBjb2xvclByb2dyZXNzID0gTWF0aC5tYXgo
TWF0aC5taW4oY29sb3JQcm9ncmVzcyArIFV0aWxpdGllcy5sZXJwKHNoaW1tZXIsIHRoaXMuc2hp
bW1lckF2ZXJhZ2UsIHRoaXMuc2hpbW1lck1heCksIDEpLCAwKTsKKyAgICAgICAgICAgIHZhciBy
ID0gTWF0aC5yb3VuZChVdGlsaXRpZXMubGVycChjb2xvclByb2dyZXNzLCBncmFkaWVudFswXSwg
Z3JhZGllbnRbM10pKTsKKyAgICAgICAgICAgIHZhciBnID0gTWF0aC5yb3VuZChVdGlsaXRpZXMu
bGVycChjb2xvclByb2dyZXNzLCBncmFkaWVudFsxXSwgZ3JhZGllbnRbNF0pKTsKKyAgICAgICAg
ICAgIHZhciBiID0gTWF0aC5yb3VuZChVdGlsaXRpZXMubGVycChjb2xvclByb2dyZXNzLCBncmFk
aWVudFsyXSwgZ3JhZGllbnRbNV0pKTsKKyAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuY29sb3Ig
PSAicmdiKCIgKyByICsgIiwiICsgZyArICIsIiArIGIgKyAiKSI7CiAKLSAgICAgICAgICAgIGVs
ZW1lbnQuc3R5bGUuY29sb3IgPSAiaHNsKDAsMCUsIiArIGludGVycG9sYXRlZExpZ2h0bmVzcyAr
ICIlKSI7Ci0gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGVY
KCIgKyBNYXRoLmZsb29yKHkpICsgInB4KSB0cmFuc2xhdGVZKCIgKyBNYXRoLmZsb29yKHgpICsg
InB4KSI7CisgICAgICAgICAgICB4ICs9IHN0ZXBYOworICAgICAgICAgICAgeSArPSBzdGVwWTsK
KyAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gInRyYW5zbGF0ZVgoIiArIE1h
dGguZmxvb3IoeCkgKyAicHgpIHRyYW5zbGF0ZVkoIiArIE1hdGguZmxvb3IoeSkgKyAicHgpIjsK
IAogICAgICAgICAgICAgcHJvZ3Jlc3MgKz0gdGhpcy5fc3RlcFByb2dyZXNzOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Rl
eHQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5o
dG1sCmluZGV4IGJjMzI4MzRkMjg0NjA4NDRlZDIzNGI5MTc2Zjc3YWRiYTllYmM2ZjAuLjAyYjUx
NmE0ZjM2YThhYzAzNDJlMGZmNTI2OWZmNzJiZGM4ZTZmNmQgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5odG1sCkBAIC04LDIwICs4LDU3
IEBACiAgICAgICAgICNzdGFnZSB7CiAgICAgICAgICAgICBmb250LWZhbWlseTogSGVsdmV0aWNh
OwogICAgICAgICAgICAgZm9udC1zaXplOiA0OHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogIzMxMzUzNDsvKiAjZDE5NDhjOyovCiAgICAgICAgIH0KICAgICAgICAgI3N0YWdlIGRp
diB7Ci0gICAgICAgICAgICB3aWR0aDogMjFlbTsKKyAgICAgICAgICAgIHdpZHRoOiA4MCU7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDkwJTsKICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgfQogICAgICAgICAjdGVt
cGxhdGUgewotICAgICAgICAgICAgY29sb3I6ICMxMTE7CisgICAgICAgICAgICBjb2xvcjogI0ZD
RkNGQzsKKyAgICAgICAgfQorICAgICAgICB0YWJsZSB7CisgICAgICAgICAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDog
MTAwJTsKKyAgICAgICAgfQorICAgICAgICB0ZCB7CisgICAgICAgICAgICB3aWR0aDogMzMlOwor
ICAgICAgICB9CisgICAgICAgIHRyIHsKKyAgICAgICAgICAgIGhlaWdodDogMjAlOwogICAgICAg
ICB9CiAgICAgPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgogICAgIDxkaXYgaWQ9InN0YWdlIj4K
ICAgICAgICAgPGRpdiBpZD0idGVtcGxhdGUiPgotICAgICAgICAgICAgV2hlbmV2ZXIgdGhlIGJs
YWNrIGZveCBqdW1wZWQgdGhlIHNxdWlycmVsIGdhemVkIHN1c3BpY2lvdXNseS4gQW1hemluZ2x5
IGZldyBkaXNjb3RoZXF1ZXMgcHJvdmlkZSBqdWtlYm94ZXMuCisgICAgICAgICAgICA8dGFibGU+
CisgICAgICAgICAgICAgICAgPHRib2R5PgorICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8dGQ+z4PPh86tzrTOuc6/PC90ZD4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDx0ZD7orr7orqE8L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN1
dW5uaXR0ZWx1PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAg
ICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmRlc2lnbjwvdGQ+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8dGQ+0LTQuNC30LDQudC9PC90ZD4KKyAgICAgICAgICAgICAg
ICAgICAgICAgIDx0ZCBjbGFzcz0icnRsIj7Yqti12YXZitmFPC90ZD4KKyAgICAgICAgICAgICAg
ICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAg
ICAgICAgPHRkPuuUlOyekOyduDwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Y29u
Y2VwdGlvbjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+44OH44K244Kk44OzPC90
ZD4KKyAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgPHRyPgor
ICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmtvbnN0cnVrdGlvbjwvdGQ+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8dGQgY2xhc3M9InJ0bCI+16LXmdem15XXkTwvdGQ+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8dGQ+ZGlzZcOxbzwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDwvdHI+
CisgICAgICAgICAgICAgICAgPC90Ym9keT4KKyAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAg
IDwvZGl2PgogICAgIDwvZGl2PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3Ry
aW5ncy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvdGVzdHMvbWlzYy9jYW52YXMtZWxlY3Ryb25zLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMtZWxlY3Ryb25zLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGJmOTMzYmQzNmE0NjZhNzNkZmRmYWQ4YzhmMjA5ZDk0NTQwMTZmMjYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLWVsZWN0cm9ucy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9yZXNvdXJjZXMvc3RhZ2UuY3NzIj4KLTwvaGVhZD4K
LTxib2R5PgotICAgIDxjYW52YXMgaWQ9InN0YWdlIj48L2NhbnZhcz4KLSAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jYW52YXMtZWxlY3Ryb25zLmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZhcy1zdGFy
cy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLXN0
YXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhNWIwYjIwMzZhZDJjM2Ix
ZjFhOTU5ZTdmZDc2ZDljMWI3NmM4Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY2Fu
dmFzLXN0YXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3Jlc291cmNlcy9z
dGFnZS5jc3MiPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0YXRpc3RpY3Mu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9z
Y3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhbnZhcy1zdGFycy5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLSAgICA8Y2FudmFzIGlkPSJzdGFnZSI+PC9jYW52YXM+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
bWlzYy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvbWlzYy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZkNWIwYmY1ZTYzMjg5MDc3NGFlNTdmZWFiZGI5MjJjYjRhMGVh
MWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9yZXNvdXJjZXMvc3RhZ2UuY3NzIj4K
LSAgICA8c3R5bGU+Ci0gICAgICAgIGltZyB7Ci0gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0gICAgICAgICAgICB3aWR0aDogODBweDsKLSAgICAgICAgICAgIGhlaWdodDogODBweDsK
LSAgICAgICAgfQotICAgIDwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8ZGl2IGlkPSJz
dGFnZSI+PC9kaXY+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMu
anMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RhdGlzdGlj
cy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIuLi9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5j
aW5nLXBhcnRpY2xlcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
b21wb3NpdGluZy10cmFuc2Zvcm1zLmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL3Jlc291cmNl
cy9jYW52YXMtZWxlY3Ryb25zLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZkYzZlMjFmZDFjYjM3NWI5ODg5MjZhNWZhOGNkMGU4M2ExNjU0MGYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxMTUgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotCi1mdW5jdGlvbiBD
YW52YXNFbGVjdHJvbihzdGFnZSkKLXsKLSAgICB0aGlzLl9jb250ZXh0ID0gc3RhZ2UuY29udGV4
dDsKLSAgICB0aGlzLl9zdGFnZVNpemUgPSBzdGFnZS5zaXplOwotCi0gICAgdmFyIG1pblNpZGUg
PSBNYXRoLm1pbih0aGlzLl9zdGFnZVNpemUud2lkdGgsIHRoaXMuX3N0YWdlU2l6ZS5oZWlnaHQp
OwotICAgIHZhciByYWRpdXNYID0gU3RhZ2UucmFuZG9tKG1pblNpZGUgLyA4LCA3ICogbWluU2lk
ZSAvIDE2KTsKLSAgICB2YXIgcmFkaXVzWSA9IFN0YWdlLnJhbmRvbShtaW5TaWRlIC8gOCwgMyAq
IHJhZGl1c1ggLyA0KTsKLSAgICB0aGlzLl9vcmJpdFJhZGl1c2VzID0gbmV3IFBvaW50KHJhZGl1
c1gsIHJhZGl1c1kpOwotICAgIHRoaXMuX3JhZGl1cyA9IFN0YWdlLnJhbmRvbSg1LCAxNSk7Ci0g
ICAgdGhpcy5fZGlyZWN0aW9uID0gU3RhZ2UucmFuZG9tSW50KDAsIDIpOwotICAgIHRoaXMuX2Fu
Z2xlID0gU3RhZ2UucmFuZG9tSW50KDAsIDM2MCk7Ci0gICAgdGhpcy5fY29sb3IgPSBTdGFnZS5y
YW5kb21Db2xvcigpOwotICAgIHRoaXMuX3JvdGF0ZXIgPSBTdGFnZS5yYW5kb21Sb3RhdGVyKCk7
Ci0gICAgdGhpcy5fcm90YXRlci5uZXh0KFN0YWdlLnJhbmRvbSgwLCB0aGlzLl9yb3RhdGVyLmlu
dGVydmFsKSk7Ci19Ci0KLUNhbnZhc0VsZWN0cm9uLnByb3RvdHlwZSA9IHsKLSAgICBfZHJhdzog
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiBvZiB0
aGUgb2JqZWN0IG9uIHRoZSBlbGxpcHNlLgotICAgICAgICB2YXIgYW5nbGUgPSB0aGlzLl9kaXJl
Y3Rpb24gPyB0aGlzLl9yb3RhdGVyLmRlZ3JlZSgpIDogMzYwIC0gdGhpcy5fcm90YXRlci5kZWdy
ZWUoKTsKLSAgICAgICAgdmFyIHBvc2l0aW9uID0gdGhpcy5fc3RhZ2VTaXplLmNlbnRlci5zdWJ0
cmFjdChQb2ludC5wb2ludE9uRWxsaXBzZShhbmdsZSwgdGhpcy5fb3JiaXRSYWRpdXNlcykpOwot
Ci0gICAgICAgIHRoaXMuX2NvbnRleHQuc2F2ZSgpOwotICAgICAgICAgICAgdGhpcy5fY29udGV4
dC50cmFuc2xhdGUodGhpcy5fc3RhZ2VTaXplLmNlbnRlci54LCB0aGlzLl9zdGFnZVNpemUuY2Vu
dGVyLnkpOwotICAgICAgICAgICAgdGhpcy5fY29udGV4dC5yb3RhdGUodGhpcy5fYW5nbGUgKiBN
YXRoLlBJIC8gMTgwKTsKLSAgICAgICAgICAgIHRoaXMuX2NvbnRleHQudHJhbnNsYXRlKC10aGlz
Ll9zdGFnZVNpemUuY2VudGVyLngsIC10aGlzLl9zdGFnZVNpemUuY2VudGVyLnkpOwotCi0gICAg
ICAgICAgICAvLyBTZXQgdGhlIHN0cm9rZSBhbmQgdGhlIGZpbGwgY29sb3JzCi0gICAgICAgICAg
ICB0aGlzLl9jb250ZXh0LnN0cm9rZVN0eWxlID0gInJnYmEoMTkyLCAxOTIsIDE5MiwgMC45KSI7
Ci0gICAgICAgICAgICB0aGlzLl9jb250ZXh0LmZpbGxTdHlsZSA9IHRoaXMuX2NvbG9yOwotCi0g
ICAgICAgICAgICAvLyBEcmF3IHRoZSBvcmJpdCBvZiB0aGUgb2JqZWN0LgotICAgICAgICAgICAg
aWYgKHRoaXMuX2NvbnRleHQuZWxsaXBzZSkgewotICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRl
eHQuYmVnaW5QYXRoKCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fY29udGV4dC5lbGxpcHNlKHRo
aXMuX3N0YWdlU2l6ZS5jZW50ZXIueCwgdGhpcy5fc3RhZ2VTaXplLmNlbnRlci55LCB0aGlzLl9v
cmJpdFJhZGl1c2VzLngsIHRoaXMuX29yYml0UmFkaXVzZXMueSwgMCwgMCwgMiAqIE1hdGguUEkp
OwotICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHQuc3Ryb2tlKCk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIC8vIERyYXcgdGhlIG9iamVjdC4KLSAgICAgICAgICAgIHRoaXMuX2Nv
bnRleHQuYmVnaW5QYXRoKCk7Ci0gICAgICAgICAgICB0aGlzLl9jb250ZXh0LmFyYyhwb3NpdGlv
bi54LCBwb3NpdGlvbi55LCB0aGlzLl9yYWRpdXMsIDAsIE1hdGguUEkgKiAyLCB0cnVlKTsKLSAg
ICAgICAgICAgIHRoaXMuX2NvbnRleHQuZmlsbCgpOwotICAgICAgICB0aGlzLl9jb250ZXh0LnJl
c3RvcmUoKTsKLSAgICB9LAotCi0gICAgYW5pbWF0ZTogZnVuY3Rpb24odGltZURlbHRhKQotICAg
IHsKLSAgICAgICAgdGhpcy5fcm90YXRlci5uZXh0KHRpbWVEZWx0YSAvIDEwMCk7Ci0gICAgICAg
IHRoaXMuX2RyYXcoKTsKLSAgICB9Ci19OwotCi1DYW52YXNFbGVjdHJvbnNTdGFnZSA9IFV0aWxp
dGllcy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKLSAgICBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICBTdGFnZS5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLl9lbGVjdHJvbnMgPSBbXTsKLSAgICB9
LCB7Ci0KLSAgICBpbml0aWFsaXplOiBmdW5jdGlvbihiZW5jaG1hcmssIG9wdGlvbnMpCi0gICAg
ewotICAgICAgICBTdGFnZS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsIGJlbmNobWFy
aywgb3B0aW9ucyk7Ci0gICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZWxlbWVudC5nZXRDb250
ZXh0KCIyZCIpOwotICAgIH0sCi0KLSAgICB0dW5lOiBmdW5jdGlvbihjb3VudCkKLSAgICB7Ci0g
ICAgICAgIGlmIChjb3VudCA9PSAwKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlm
IChjb3VudCA+IDApIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7ICsr
aSkKLSAgICAgICAgICAgICAgICB0aGlzLl9lbGVjdHJvbnMucHVzaChuZXcgQ2FudmFzRWxlY3Ry
b24odGhpcykpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgY291
bnQgPSBNYXRoLm1pbigtY291bnQsIHRoaXMuX2VsZWN0cm9ucy5sZW5ndGgpOwotICAgICAgICB0
aGlzLl9lbGVjdHJvbnMuc3BsaWNlKC1jb3VudCwgY291bnQpOwotICAgIH0sCi0KLSAgICBhbmlt
YXRlOiBmdW5jdGlvbih0aW1lRGVsdGEpCi0gICAgewotICAgICAgICB0aGlzLmNvbnRleHQuY2xl
YXJSZWN0KDAsIDAsIHRoaXMuc2l6ZS54LCB0aGlzLnNpemUueSk7Ci0KLSAgICAgICAgLy8gRHJh
dyBhIGJpZyBzdGFyIGluIHRoZSBtaWRkbGUuCi0gICAgICAgIHRoaXMuY29udGV4dC5maWxsU3R5
bGUgPSAib3JhbmdlIjsKLSAgICAgICAgdGhpcy5jb250ZXh0LmJlZ2luUGF0aCgpOwotICAgICAg
ICB0aGlzLmNvbnRleHQuYXJjKHRoaXMuc2l6ZS5jZW50ZXIueCwgdGhpcy5zaXplLmNlbnRlci55
LCA1MCwgMCwgTWF0aC5QSSAqIDIsIHRydWUpOwotICAgICAgICB0aGlzLmNvbnRleHQuZmlsbCgp
OwotCi0gICAgICAgIHRoaXMuX2VsZWN0cm9ucy5mb3JFYWNoKGZ1bmN0aW9uKGVsZWN0cm9uKSB7
Ci0gICAgICAgICAgICBlbGVjdHJvbi5hbmltYXRlKHRpbWVEZWx0YSk7Ci0gICAgICAgIH0pOwot
ICAgIH0sCi0KLSAgICBjb21wbGV4aXR5OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fZWxlY3Ryb25zLmxlbmd0aDsKLSAgICB9Ci19KTsKLQotQ2FudmFzRWxlY3Ryb25z
QmVuY2htYXJrID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKEJlbmNobWFyaywKLSAgICBmdW5j
dGlvbihvcHRpb25zKQotICAgIHsKLSAgICAgICAgQmVuY2htYXJrLmNhbGwodGhpcywgbmV3IENh
bnZhc0VsZWN0cm9uc1N0YWdlKCksIG9wdGlvbnMpOwotICAgIH0KLSk7Ci0KLXdpbmRvdy5iZW5j
aG1hcmtDbGFzcyA9IENhbnZhc0VsZWN0cm9uc0JlbmNobWFyazsKLQotfSkoKTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2FudmFzLXN0YXJzLmpzIGIvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1zdGFycy5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdjOWNjOWIxN2U5ZDI4YTY5NWU0N2Y5M2I0YTk3MzA1
MmUyNjUwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY2FudmFzLXN0
YXJzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTA5ICswLDAgQEAKLShmdW5jdGlvbigpIHsKLQot
ZnVuY3Rpb24gQ2FudmFzU3RhcihzdGFnZSkKLXsKLSAgICB0aGlzLl9jb250ZXh0ID0gc3RhZ2Uu
Y29udGV4dDsKLQotICAgIHRoaXMuX3NpemUgPSBTdGFnZS5yYW5kb21TcXVhcmVTaXplKDUsIDIw
KTsKLSAgICB0aGlzLl9jZW50ZXIgPSBTdGFnZS5yYW5kb21Qb3NpdGlvbihzdGFnZS5zaXplLnN1
YnRyYWN0KHRoaXMuX3NpemUpKS5hZGQodGhpcy5fc2l6ZS5jZW50ZXIpOwotICAgIHRoaXMuX3Jv
dGF0ZVggPSAwOwotICAgIHRoaXMuX3JvdGF0ZURlbHRhWCA9IFN0YWdlLnJhbmRvbSgwLjMsIDAu
Nyk7Ci19Ci0KLUNhbnZhc1N0YXIucHJvdG90eXBlID0gewotICAgIF9kcmF3OiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICB0aGlzLl9jb250ZXh0LnNhdmUoKTsKLSAgICAgICAgdGhpcy5fY29u
dGV4dC50cmFuc2xhdGUodGhpcy5fY2VudGVyLngsIHRoaXMuX2NlbnRlci55KTsKLQotICAgICAg
ICB0aGlzLl9jb250ZXh0LmZpbGxTdHlsZSA9ICd5ZWxsb3cnOwotICAgICAgICB0aGlzLl9jb250
ZXh0LnN0cm9rZVN0eWxlID0gJ3doaXRlJzsKLQotICAgICAgICB0aGlzLl9jb250ZXh0LmxpbmVX
aWR0aCA9IDE7Ci0KLSAgICAgICAgdGhpcy5fY29udGV4dC5iZWdpblBhdGgoKTsKLSAgICAgICAg
dGhpcy5fY29udGV4dC5tb3ZlVG8oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAsIC10aGlzLl9zaXplLnkgLyAgMik7Ci0gICAgICAgIHRoaXMuX2NvbnRleHQubGluZVRvKCt0
aGlzLl9zaXplLnggLyAyMCAtIHRoaXMuX3JvdGF0ZVggLyA1LCAtdGhpcy5fc2l6ZS55IC8gMTAp
OwotICAgICAgICB0aGlzLl9jb250ZXh0LmxpbmVUbygrdGhpcy5fc2l6ZS54IC8gNCAgLSB0aGlz
Ll9yb3RhdGVYLCAgICAgICAgICAgICAgICAgICAgICAwKTsKLSAgICAgICAgdGhpcy5fY29udGV4
dC5saW5lVG8oK3RoaXMuX3NpemUueCAvIDIwIC0gdGhpcy5fcm90YXRlWCAvIDUsICt0aGlzLl9z
aXplLnkgLyAxMCk7Ci0gICAgICAgIHRoaXMuX2NvbnRleHQubGluZVRvKCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLCArdGhpcy5fc2l6ZS55IC8gIDIpOwotICAgICAgICB0
aGlzLl9jb250ZXh0LmxpbmVUbygtdGhpcy5fc2l6ZS54IC8gMjAgKyB0aGlzLl9yb3RhdGVYIC8g
NSwgK3RoaXMuX3NpemUueSAvIDEwKTsKLSAgICAgICAgdGhpcy5fY29udGV4dC5saW5lVG8oLXRo
aXMuX3NpemUueCAvICA0ICsgdGhpcy5fcm90YXRlWCwgICAgICAgICAgICAgICAgICAgICAgMCk7
Ci0gICAgICAgIHRoaXMuX2NvbnRleHQubGluZVRvKC10aGlzLl9zaXplLnggLyAyMCArIHRoaXMu
X3JvdGF0ZVggLyA1LCAtdGhpcy5fc2l6ZS55IC8gMTApOwotICAgICAgICB0aGlzLl9jb250ZXh0
LmxpbmVUbyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgLXRoaXMuX3Np
emUueSAvICAyKTsKLQotICAgICAgICB0aGlzLl9jb250ZXh0LmZpbGwoKTsKLSAgICAgICAgdGhp
cy5fY29udGV4dC5zdHJva2UoKTsKLSAgICAgICAgdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTsK
LSAgICAgICAgdGhpcy5fY29udGV4dC5yZXN0b3JlKCk7Ci0gICAgfSwKLQotICAgIGFuaW1hdGU6
IGZ1bmN0aW9uKHRpbWVEZWx0YSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JvdGF0ZVggKz0gdGhp
cy5fcm90YXRlRGVsdGFYOwotCi0gICAgICAgIGlmICh0aGlzLl9yb3RhdGVYID4gdGhpcy5fc2l6
ZS54IC8gNCB8fCB0aGlzLl9yb3RhdGVYIDwgLXRoaXMuX3NpemUueCAvIDQpIHsKLSAgICAgICAg
ICAgIHRoaXMuX3JvdGF0ZURlbHRhWCA9IC10aGlzLl9yb3RhdGVEZWx0YVg7Ci0gICAgICAgICAg
ICB0aGlzLl9yb3RhdGVYICs9IHRoaXMuX3JvdGF0ZURlbHRhWDsKLSAgICAgICAgfQotCi0gICAg
ICAgIHRoaXMuX2RyYXcoKTsKLSAgICB9Ci19OwotCi1DYW52YXNTdGFyc1N0YWdlID0gVXRpbGl0
aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdlLAotICAgIGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IFN0YWdlLmNhbGwodGhpcyk7Ci0gICAgICAgIHRoaXMuX29iamVjdHMgPSBbXTsKLSAgICB9LCB7
Ci0KLSAgICBpbml0aWFsaXplOiBmdW5jdGlvbihiZW5jaG1hcmssIG9wdGlvbnMpCi0gICAgewot
ICAgICAgICBTdGFnZS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsIGJlbmNobWFyaywg
b3B0aW9ucyk7Ci0gICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZWxlbWVudC5nZXRDb250ZXh0
KCIyZCIpOwotICAgIH0sCi0KLSAgICB0dW5lOiBmdW5jdGlvbihjb3VudCkKLSAgICB7Ci0gICAg
ICAgIGlmIChjb3VudCA9PSAwKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChj
b3VudCA+IDApIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7ICsraSkK
LSAgICAgICAgICAgICAgICB0aGlzLl9vYmplY3RzLnB1c2gobmV3IENhbnZhc1N0YXIodGhpcykp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgY291bnQgPSBNYXRo
Lm1pbigtY291bnQsIHRoaXMuX29iamVjdHMubGVuZ3RoKTsKLSAgICAgICAgdGhpcy5fb2JqZWN0
cy5zcGxpY2UoLWNvdW50LCBjb3VudCk7Ci0gICAgfSwKLQotICAgIGFuaW1hdGU6IGZ1bmN0aW9u
KHRpbWVEZWx0YSkKLSAgICB7Ci0gICAgICAgIHRoaXMuY29udGV4dC5iZWdpblBhdGgoKTsKLSAg
ICAgICAgdGhpcy5jb250ZXh0LmZpbGxTdHlsZSA9ICdibGFjayc7Ci0gICAgICAgIHRoaXMuY29u
dGV4dC5yZWN0KDAsIDAsIHRoaXMuc2l6ZS53aWR0aCwgdGhpcy5zaXplLmhlaWdodCk7Ci0gICAg
ICAgIHRoaXMuY29udGV4dC5maWxsKCk7Ci0KLSAgICAgICAgdGhpcy5fb2JqZWN0cy5mb3JFYWNo
KGZ1bmN0aW9uKG9iamVjdCkgewotICAgICAgICAgICAgb2JqZWN0LmFuaW1hdGUodGltZURlbHRh
KTsKLSAgICAgICAgfSk7Ci0gICAgfSwKLQotICAgIGNvbXBsZXhpdHk6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9vYmplY3RzLmxlbmd0aDsKLSAgICB9Ci19KTsKLQot
Q2FudmFzU3RhcnNCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQmVuY2htYXJr
LAotICAgIGZ1bmN0aW9uKG9wdGlvbnMpCi0gICAgewotICAgICAgICBCZW5jaG1hcmsuY2FsbCh0
aGlzLCBuZXcgQ2FudmFzU3RhcnNTdGFnZSgpLCBvcHRpb25zKTsKLSAgICB9Ci0pOwotCi13aW5k
b3cuYmVuY2htYXJrQ2xhc3MgPSBDYW52YXNTdGFyc0JlbmNobWFyazsKLQotfSkoKTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvbWlzYy9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5qcyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL3Jlc291cmNlcy9jb21wb3NpdGlu
Zy10cmFuc2Zvcm1zLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZmQ0MDFlZWVi
NzU2YjliMWI4Y2M3ZTRlYTZmMDMwYWFjYTYwYzczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9t
aXNjL3Jlc291cmNlcy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNjYgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotCi1Cb3VuY2luZ0NvbXBvc2l0ZWRJbWFnZSA9
IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhCb3VuY2luZ1BhcnRpY2xlLAotICAgIGZ1bmN0aW9u
KHN0YWdlKQotICAgIHsKLSAgICAgICAgQm91bmNpbmdQYXJ0aWNsZS5jYWxsKHRoaXMsIHN0YWdl
KTsKLQotICAgICAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWci
KTsKLSAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoID0gdGhpcy5zaXplLnggKyAicHgi
OwotICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zaXplLnkgKyAicHgi
OwotICAgICAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCBzdGFnZS5pbWFnZVNy
Yyk7Ci0KLSAgICAgICAgaWYgKHN0YWdlLnVzZUZpbHRlcnMpCi0gICAgICAgICAgICB0aGlzLmVs
ZW1lbnQuc3R5bGUuZmlsdGVyID0gImh1ZS1yb3RhdGUoIiArIFN0YWdlLnJhbmRvbUFuZ2xlKCkg
KyAicmFkKSI7Ci0KLSAgICAgICAgc3RhZ2UuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1l
bnQpOwotICAgICAgICB0aGlzLl9tb3ZlKCk7Ci0gICAgfSwgewotCi0gICAgX21vdmU6IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAidHJh
bnNsYXRlM2QoIiArIHRoaXMucG9zaXRpb24ueCArICJweCwiICsgdGhpcy5wb3NpdGlvbi55ICsg
InB4LCAwKSAiICsgdGhpcy5yb3RhdGVyLnJvdGF0ZVooKTsKLSAgICB9LAotCi0gICAgYW5pbWF0
ZTogZnVuY3Rpb24odGltZURlbHRhKQotICAgIHsKLSAgICAgICAgQm91bmNpbmdQYXJ0aWNsZS5w
cm90b3R5cGUuYW5pbWF0ZS5jYWxsKHRoaXMsIHRpbWVEZWx0YSk7Ci0gICAgICAgIHRoaXMuX21v
dmUoKTsKLSAgICB9Ci19KTsKLQotQ29tcG9zaXRpbmdUcmFuc2Zvcm1zU3RhZ2UgPSBVdGlsaXRp
ZXMuY3JlYXRlU3ViY2xhc3MoQm91bmNpbmdQYXJ0aWNsZXNTdGFnZSwKLSAgICBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICBCb3VuY2luZ1BhcnRpY2xlc1N0YWdlLmNhbGwodGhpcyk7Ci0gICAg
fSwgewotCi0gICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oYmVuY2htYXJrLCBvcHRpb25zKQotICAg
IHsKLSAgICAgICAgQm91bmNpbmdQYXJ0aWNsZXNTdGFnZS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5j
YWxsKHRoaXMsIGJlbmNobWFyaywgb3B0aW9ucyk7Ci0KLSAgICAgICAgdGhpcy5pbWFnZVNyYyA9
IG9wdGlvbnNbImltYWdlU3JjIl0gfHwgIi4uL3Jlc291cmNlcy95aW4teWFuZy5zdmciOwotICAg
ICAgICB0aGlzLnVzZUZpbHRlcnMgPSBvcHRpb25zWyJmaWx0ZXJzIl0gPT0gInllcyI7Ci0gICAg
fSwKLQotICAgIGNyZWF0ZVBhcnRpY2xlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1
cm4gbmV3IEJvdW5jaW5nQ29tcG9zaXRlZEltYWdlKHRoaXMpOwotICAgIH0sCi0KLSAgICBwYXJ0
aWNsZVdpbGxCZVJlbW92ZWQ6IGZ1bmN0aW9uKHBhcnRpY2xlKQotICAgIHsKLSAgICAgICAgcGFy
dGljbGUuZWxlbWVudC5yZW1vdmUoKTsKLSAgICB9Ci19KTsKLQotQ29tcG9zaXRlZFRyYW5zZm9y
bXNCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQmVuY2htYXJrLAotICAgIGZ1
bmN0aW9uKG9wdGlvbnMpCi0gICAgewotICAgICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBuZXcg
Q29tcG9zaXRpbmdUcmFuc2Zvcm1zU3RhZ2UoKSwgb3B0aW9ucyk7Ci0gICAgfQotKTsKLQotd2lu
ZG93LmJlbmNobWFya0NsYXNzID0gQ29tcG9zaXRlZFRyYW5zZm9ybXNCZW5jaG1hcms7Ci0KLX0p
KCk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3Vy
Y2VzL21haW4uanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2Vz
L21haW4uanMKaW5kZXggZDRkZGY0YjU0NmQ1MjFiYmE5ZmRmNjFlYzYyNDYyMDk0MDg3M2NmNy4u
MDQ1MGQyN2I0MDk0MWEyMzAzNjBlZDY0OTQ3NjMzY2YzMmE4MmEwOCAxMDA2NDQKLS0tIGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qcwpAQCAtNzIw
LDYgKzcyMCwxMSBAQCBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KFN0YWdlLCB7CiAgICAgICAgIHJl
dHVybiBmaWx0ZXJMaXN0W3RoaXMucmFuZG9tSW50KDAsIGZpbHRlckxpc3QubGVuZ3RoKV07CiAg
ICAgfSwKIAorICAgIHJhbmRvbUVsZW1lbnRJbkFycmF5OiBmdW5jdGlvbihhcnJheSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhcnJheVtTdGFnZS5yYW5kb21JbnQoMCwgYXJyYXkubGVuZ3RoIC0g
MSldOworICAgIH0sCisKICAgICByb3RhdGluZ0NvbG9yOiBmdW5jdGlvbihjeWNsZUxlbmd0aE1z
LCBzYXR1cmF0aW9uLCBsaWdodG5lc3MpCiAgICAgewogICAgICAgICByZXR1cm4gImhzbCgiCmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291
cmNlcy9zaW1wbGUtY2FudmFzLXBhdGhzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxlLWNhbnZhcy1wYXRocy5qcwppbmRleCA3MThm
OGJjZGFlYzVmNzY5YTMzZTI3ZjA4YTUxYzNmMGUwYzE2ZTM0Li5jZGE5ODViMjIxNWZhYjZiMGQ1
YTljYThhNmRhNjhkMzQ4MTM0OTZiIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvdGVzdHMvc2ltcGxlL3Jlc291cmNlcy9zaW1wbGUtY2FudmFzLXBhdGhzLmpzCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3NpbXBs
ZS1jYW52YXMtcGF0aHMuanMKQEAgLTIwOSw2ICsyMDksNzggQEAgQ2FudmFzUmVjdEZpbGwgPSBV
dGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgfQogfSk7CiAKK0NhbnZhc0VsbGlwc2UgPSBVdGls
aXRpZXMuY3JlYXRlQ2xhc3MoCisgICAgZnVuY3Rpb24oc3RhZ2UpIHsKKyAgICAgICAgdGhpcy5f
cmFkaXVzID0gbmV3IFBvaW50KFN0YWdlLnJhbmRvbUludCgyMCwgMjAwKSwgU3RhZ2UucmFuZG9t
SW50KDIwLCAyMDApKTsKKyAgICAgICAgdmFyIHRvQ2VudGVyID0gU3RhZ2UucmFuZG9tUG9zaXRp
b24oc3RhZ2Uuc2l6ZSkuc3VidHJhY3QodGhpcy5fcmFkaXVzLm11bHRpcGx5KC41KSk7CisKKyAg
ICAgICAgdGhpcy5fY2VudGVyID0gU3RhZ2UucmFuZG9tUG9zaXRpb24odGhpcy5fcmFkaXVzKS5h
ZGQodG9DZW50ZXIpOworICAgICAgICB0aGlzLl9yb3RhdGlvbiA9IFN0YWdlLnJhbmRvbUFuZ2xl
KCk7CisgICAgICAgIHRoaXMuX3N0YXJ0QW5nbGUgPSBTdGFnZS5yYW5kb21BbmdsZSgpOworICAg
ICAgICB0aGlzLl9lbmRBbmdsZSA9IFN0YWdlLnJhbmRvbUFuZ2xlKCk7CisgICAgICAgIHRoaXMu
X2FudGljbG9ja3dpc2UgPSBTdGFnZS5yYW5kb21Cb29sKCk7CisgICAgICAgIHRoaXMuX2NvbG9y
ID0gU3RhZ2UucmFuZG9tQ29sb3IoKTsKKyAgICAgICAgdGhpcy5fbGluZVdpZHRoID0gU3RhZ2Uu
cmFuZG9tSW50KDEsIDIwKTsKKyAgICB9LCB7CisKKyAgICBkcmF3OiBmdW5jdGlvbihjb250ZXh0
KSB7CisgICAgICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSB0aGlzLl9jb2xvcjsKKyAgICAgICAg
Y29udGV4dC5saW5lV2lkdGggPSB0aGlzLl9saW5lV2lkdGg7CisgICAgICAgIGNvbnRleHQuYmVn
aW5QYXRoKCk7CisgICAgICAgIGNvbnRleHQuZWxsaXBzZSh0aGlzLl9jZW50ZXIueCwgdGhpcy5f
Y2VudGVyLnksIHRoaXMuX3JhZGl1cy53aWR0aCwgdGhpcy5fcmFkaXVzLmhlaWdodCwgdGhpcy5f
cm90YXRpb24sIHRoaXMuX3N0YXJ0QW5nbGUsIHRoaXMuX2VuZEFuZ2xlLCB0aGlzLl9hbnRpY2xv
Y2t3aXNlKTsKKyAgICAgICAgY29udGV4dC5zdHJva2UoKTsKKyAgICB9Cit9KTsKKworQ2FudmFz
RWxsaXBzZUZpbGwgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCisgICAgZnVuY3Rpb24oc3RhZ2Up
IHsKKyAgICAgICAgQ2FudmFzRWxsaXBzZS5jYWxsKHRoaXMsIHN0YWdlKTsKKyAgICB9LCB7CisK
KyAgICBkcmF3OiBmdW5jdGlvbihjb250ZXh0KSB7CisgICAgICAgIGNvbnRleHQuZmlsbFN0eWxl
ID0gdGhpcy5fY29sb3I7CisgICAgICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7CisgICAgICAgIGNv
bnRleHQuZWxsaXBzZSh0aGlzLl9jZW50ZXIueCwgdGhpcy5fY2VudGVyLnksIHRoaXMuX3JhZGl1
cy53aWR0aCwgdGhpcy5fcmFkaXVzLmhlaWdodCwgdGhpcy5fcm90YXRpb24sIHRoaXMuX3N0YXJ0
QW5nbGUsIHRoaXMuX2VuZEFuZ2xlLCB0aGlzLl9hbnRpY2xvY2t3aXNlKTsKKyAgICAgICAgY29u
dGV4dC5maWxsKCk7CisgICAgfQorfSk7CisKK0NhbnZhc1N0cm9rZSA9IFV0aWxpdGllcy5jcmVh
dGVDbGFzcygKKyAgICBmdW5jdGlvbiAoc3RhZ2UpIHsKKyAgICAgICAgdGhpcy5fb2JqZWN0ID0g
bmV3IChTdGFnZS5yYW5kb21FbGVtZW50SW5BcnJheSh0aGlzLm9iamVjdFR5cGVzKSkoc3RhZ2Up
OworICAgIH0sIHsKKworICAgIG9iamVjdFR5cGVzOiBbCisgICAgICAgIENhbnZhc1F1YWRyYXRp
Y1NlZ21lbnQsCisgICAgICAgIENhbnZhc0JlemllclNlZ21lbnQsCisgICAgICAgIENhbnZhc0Fy
Y1RvU2VnbWVudCwKKyAgICAgICAgQ2FudmFzQXJjU2VnbWVudCwKKyAgICAgICAgQ2FudmFzUmVj
dCwKKyAgICAgICAgQ2FudmFzRWxsaXBzZQorICAgIF0sCisKKyAgICBkcmF3OiBmdW5jdGlvbihj
b250ZXh0KSB7CisgICAgICAgIHRoaXMuX29iamVjdC5kcmF3KGNvbnRleHQpOworICAgIH0KK30p
OworCitDYW52YXNGaWxsID0gVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKAorICAgIGZ1bmN0aW9uIChz
dGFnZSkgeworICAgICAgICB0aGlzLl9vYmplY3QgPSBuZXcgKFN0YWdlLnJhbmRvbUVsZW1lbnRJ
bkFycmF5KHRoaXMub2JqZWN0VHlwZXMpKShzdGFnZSk7CisgICAgfSwgeworCisgICAgb2JqZWN0
VHlwZXM6IFsKKyAgICAgICAgQ2FudmFzQXJjVG9TZWdtZW50RmlsbCwKKyAgICAgICAgQ2FudmFz
QXJjU2VnbWVudEZpbGwsCisgICAgICAgIENhbnZhc1JlY3RGaWxsLAorICAgICAgICBDYW52YXNF
bGxpcHNlRmlsbAorICAgIF0sCisKKyAgICBkcmF3OiBmdW5jdGlvbihjb250ZXh0KSB7CisgICAg
ICAgIHRoaXMuX29iamVjdC5kcmF3KGNvbnRleHQpOworICAgIH0KK30pOworCiAvLyA9PT0gU1RB
R0VTID09PQogCiBTaW1wbGVDYW52YXNQYXRoU3Ryb2tlU3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRl
U3ViY2xhc3MoU2ltcGxlQ2FudmFzU3RhZ2UsCkBAIC0zNDAsNiArNDEyLDkgQEAgQ2FudmFzUGF0
aEJlbmNobWFyayA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhCZW5jaG1hcmssCiAgICAgICAg
IGNhc2UgInJlY3QiOgogICAgICAgICAgICAgc3RhZ2UgPSBuZXcgU2ltcGxlQ2FudmFzU3RhZ2Uo
Q2FudmFzUmVjdCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiZWxsaXBzZSI6
CisgICAgICAgICAgICBzdGFnZSA9IG5ldyBTaW1wbGVDYW52YXNTdGFnZShDYW52YXNFbGxpcHNl
KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICJsaW5lRmlsbCI6CiAgICAgICAg
ICAgICBzdGFnZSA9IG5ldyBTaW1wbGVDYW52YXNQYXRoRmlsbFN0YWdlKENhbnZhc0xpbmVQb2lu
dCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM1OCw2ICs0MzMsMTUgQEAgQ2FudmFzUGF0aEJl
bmNobWFyayA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhCZW5jaG1hcmssCiAgICAgICAgIGNh
c2UgInJlY3RGaWxsIjoKICAgICAgICAgICAgIHN0YWdlID0gbmV3IFNpbXBsZUNhbnZhc1N0YWdl
KENhbnZhc1JlY3RGaWxsKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJlbGxp
cHNlRmlsbCI6CisgICAgICAgICAgICBzdGFnZSA9IG5ldyBTaW1wbGVDYW52YXNTdGFnZShDYW52
YXNFbGxpcHNlRmlsbCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAic3Ryb2tl
cyI6CisgICAgICAgICAgICBzdGFnZSA9IG5ldyBTaW1wbGVDYW52YXNTdGFnZShDYW52YXNTdHJv
a2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgImZpbGxzIjoKKyAgICAgICAg
ICAgIHN0YWdlID0gbmV3IFNpbXBsZUNhbnZhc1N0YWdlKENhbnZhc0ZpbGwpOworICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBzdGFn
ZSwgb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc1NDhkNzFjOTljOWZlMTU5ZDdhN2RkMzEz
NmEyMzdhM2I4MjY4MjQuLjI3NDc0M2I3NGFlNDM1YzBjZTVmNWVlMDkxMGI2YmU2YTQyZWMzZmUg
MTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNl
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTYtMDMtMjEgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBiZW5jaG1hcmsgdGVzdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTcyMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBxdWFkcmF0aWMg
YW5kIGJlemllciBzZWdtZW50cyB0byB0aGUgY2FudmFzIHBhdGggdGVzdC4KKworICAgICAgICAq
IEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qczogU29tZSBvZiB0aGUgcXVlcnkg
c3RyaW5ncyBhcmUgdW5uZWNlc3NhcnkuCisgICAgICAgIFJlbmFtZSB0aGUgdGVzdC4KKyAgICAg
ICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvY2FudmFzLXN0YWdlLmpzOgor
ICAgICAgICAodHVuZSk6IFVwZGF0ZSB0byBiZSBhYmxlIHRvIHRha2UgYW4gYXJyYXkgb2YgcG9z
c2libGUgY29uc3RydWN0b3JzLiBDaG9vc2Ugb25lIHJhbmRvbWx5LgorICAgICAgICAqIEFuaW1v
bWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanM6CisgICAgICAgIChD
YW52YXNMaW5lUG9pbnQuVXRpbGl0aWVzLmNyZWF0ZUNsYXNzKTogTW92ZSB0aGUgcG9pbnQgc2Vs
ZWN0aW9uIG91dCB0byBhIHNlcGFyYXRlCisgICAgICAgIGZ1bmN0aW9uIGNhbGxlZCByYW5kb21Q
b2ludCgpIGZvciByZXVzZS4gTW92ZSBYX0xPT1BTLCBZX0xPT1BTLCBhbmQgb2Zmc2V0cyBpbnRv
IHRoZQorICAgICAgICBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAocmFuZG9tUG9pbnQpOiBT
Y2FsZSB0aGUgZ3JpZCBkb3duIGEgbGl0dGxlIGJpdCBzbyB0aGF0IHRoZSBsaW5lcyBhbG9uZyB0
aGUgZWRnZSBvZiB0aGUKKyAgICAgICAgY2FudmFzIGFyZSBub3QgY3V0IG9mZiB3aGVuIHRoZSBz
dHJva2Ugc2l6ZSBpcyB0aGljay4KKyAgICAgICAgKENhbnZhc1F1YWRyYXRpY1NlZ21lbnQpOiBB
ZGRlZC4KKyAgICAgICAgKENhbnZhc0JlemllclNlZ21lbnQpOiBBZGRlZC4KKyAgICAgICAgKFNp
bXBsZUNhbnZhc1N0YWdlKTogUGFzcyBpbiBhbiBhcnJheSBvZiB0aGUgZGlmZmVyZW50IHNlZ21l
bnQgdHlwZXMuIFNpbmNlIGxpbmUgc2VnbWVudHMKKyAgICAgICAgYXJlIHNob3J0IGNvbXBhcmVk
IHRvIHRoZSBjdXJ2ZWQgb25lcywgbWFrZSBpdCB0d2ljZSBhcyBsaWtlbHkgdG8gcmVuZGVyIGEg
bGluZSBzZWdtZW50LgorICAgICAgICAoU2ltcGxlQ2FudmFzU3RhZ2UuYW5pbWF0ZSk6IFVwZGF0
ZSB0aGUgZHJhd2luZyBjb2RlIHNvIHRoYXQgd2UgcmVuZGVyIGFsbCBsaW5lIHNlZ21lbnRzLgor
CisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRob2QgdGhhdCBzZWxlY3RzIGEgcmFuZG9tIGVsZW1l
bnQgZnJvbSBhbiBhcnJheS4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2Vz
L21haW4uanM6CisgICAgICAgIChTdGFnZS5yYW5kb21FbGVtZW50SW5BcnJheSk6IFNlbGVjdCBh
IHJhbmRvbSBlbGVtZW50IGZyb20gdGhlIHByb3ZpZGVkIGFycmF5LgorCisgICAgICAgICogQW5p
bW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXRhZ2dl
ZC1pbWFnZXMuanM6IFJlZmFjdG9yLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvZG9tL3Jl
c291cmNlcy9sZWF2ZXMuanM6IERpdHRvLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWFz
dGVyL3Jlc291cmNlcy9kb20tcGFydGljbGVzLmpzOiBEaXR0by4KKyAgICAgICAgKiBBbmltb21l
dGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvaW1hZ2UtZGF0YS5qczogRGl0dG8uCisgICAgICAg
ICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2xlYXZlcy5qczogRGl0dG8uCisg
ICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9zaW1wbGUvcmVzb3VyY2VzL3NpbXBsZS1jYW52YXMt
cGF0aHMuanM6IERpdHRvLgorCisgICAgICAgIEFkZCBjYW52YXMgdGVzdHMgdGhhdCBpbmNsdWRl
cyBhbGwgc3Ryb2tlIGFuZCBmaWxsIHBhdGhzLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGF2
b2lkIGhhdmluZyB0bworICAgICAgICBpbmNsdWRlIHRoZSBmdWxsIHNpbXBsZSBjYW52YXMgc3Vp
dGUgZm9yIHBlcmYgdGVzdGluZy4KKworICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2Rl
YnVnLXJ1bm5lci90ZXN0cy5qczogQWRkIG5ldyB0ZXN0cy4gTW92ZSB0aGUgY2FudmFzIHRlc3Qg
aW50byB0aGUgQ2FudmFzCisgICAgICAgIHN1aXRlLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVz
dHMvc2ltcGxlL3Jlc291cmNlcy9zaW1wbGUtY2FudmFzLXBhdGhzLmpzOiBBZGQgYSBDYW52YXNT
dHJva2UgYW5kIENhbnZhc0ZpbGwgcGFydGljbGUKKyAgICAgICAgdGhhdCByYW5kb20gc2VsZWN0
cyBhbiBvYmplY3QgdG8gcmVuZGVyLgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL3Rlc3RzLmpzOiBNb3ZlIDNEIHN1aXRlIGJlZm9yZSBiYXNpYyBjYW52YXMg
c3VpdGUuCisgICAgICAgIFdoZW4gdXBkYXRpbmcgdGhlIHBlcmYgYm90IHNjcmlwdCwgd2Ugd2ls
bCBpbmNsdWRlIHRoZSBzdWl0ZXMgdXAgdG8gdGhpcyBvbmUsIGJ1dCBleGNsdWRlCisgICAgICAg
IHRoZSBiYXNpYyBjYW52YXMgc3VpdGUuCisKKyAgICAgICAgTW92ZSBjb21wb3NpdGluZyB0cmFu
c2Zvcm1zIHRlc3QgdG8gSFRNTCBzdWl0ZSBhbmQgcmVtb3ZlIHRoZSBlbXB0eSBNaXNjZWxsYW5l
b3VzIHN1aXRlLgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVy
L3Rlc3RzLmpzOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvZG9tL2NvbXBvc2l0aW5nLXRy
YW5zZm9ybXMuaHRtbDogUmVuYW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90
ZXN0cy9taXNjL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbC4KKyAgICAgICAgKiBBbmltb21l
dGVyL3Rlc3RzL2RvbS9yZXNvdXJjZXMvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5qczogUmVuYW1l
ZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL3Jlc291cmNlcy9j
b21wb3NpdGluZy10cmFuc2Zvcm1zLmpzLgorCisgICAgICAgIENsZWFuIHVwIG1pc2NlbGxhbmVv
dXMgdGVzdCBzdWl0ZS4gQWRkIGEgY2FudmFzIGVsbGlwc2UgdGVzdCwgYW5kIHJlbW92ZSB0aGUg
b3RoZXIKKyAgICAgICAgY2FudmFzIHRlc3RzLgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNv
dXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzOiBBZGQgZWxsaXBzZSB0ZXN0cyB0byB0aGUgc2lt
cGxlIHN1aXRlLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMtZWxlY3Ry
b25zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZh
cy1zdGFycy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWlzYy9y
ZXNvdXJjZXMvY2FudmFzLWVsZWN0cm9ucy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBBbmltb21l
dGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1zdGFycy5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBBbmltb21ldGVyL3Rlc3RzL3NpbXBsZS9yZXNvdXJjZXMvc2ltcGxlLWNhbnZhcy1wYXRo
cy5qczogQWRkIGVsbGlwc2UgcHJpbWl0aXZlcy4KKworICAgICAgICBNZXJnZSB0ZXh0IHRlc3Rz
IHRvZ2V0aGVyIGludG8gb25lLgorCisgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVu
bmVyL3Rlc3RzLmpzOiBSZW1vdmUgaW50ZXJuYXRpb25hbC5odG1sLgorICAgICAgICAqIEFuaW1v
bWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVybmF0aW9uYWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvdGV4dC5qczoKKyAgICAgICAgKGFu
aW1hdGUpOiBVcGRhdGUgc3R5bGluZy4gTWFudWFsbHkgY2FsY3VsYXRlIGdyYWRpZW50cyBmb3Ig
dGhlIHNoYWRvdyBwYXJ0aWNsZXMuCisgICAgICAgIFJlZHVjZSB0aGUgc3RlcCBzaXplIGZvciB5
IGRpcmVjdGlvbiB0byBhdm9pZCBjdXR0aW5nIHRleHQgb2ZmIGF0IHRoZSBtYXJnaW5zLiBJbmNy
ZWFzZQorICAgICAgICBzdGVwIGZvciB4IHNpbmNlIHRoZXJlIHdpbGwgYmUgYSBsaXR0bGUgbW9y
ZSByb29tLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3RleHQuaHRtbDogQWRk
IG1vcmUgdHJhbnNsYXRpb25zIGFuZCBsYXkgaXQgb3V0IGluIGEgdGFibGUuCisKIDIwMTYtMDMt
MTggIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIGJhc2lj
IFdlYkdMIHRlc3QgdG8gQW5pbW9tZXRlcgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>