<?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>170184</bug_id>
          
          <creation_ts>2017-03-28 10:44:53 -0700</creation_ts>
          <short_desc>Web Inspector: tabbing in Styles sidebar is broken when additional &quot;:&quot; and &quot;;&quot; are in the property value</short_desc>
          <delta_ts>2017-04-09 22:26:49 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>mattbaker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1291942</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-03-28 10:44:53 -0700</bug_when>
    <thetext>If you add `background-image: url(https://webkit.org/wp-content/themes/webkit/images/webkit.svg);` to any style and try tabbing, the highlight will get stuck on &quot;url(https&quot;.  This is most likely because the way it searches for &quot;:&quot; and &quot;;&quot; is very dumb, simply finding the first instance in the remaining text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291990</commentid>
    <comment_count>1</comment_count>
      <attachid>305618</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-03-28 11:48:54 -0700</bug_when>
    <thetext>Created attachment 305618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292477</commentid>
    <comment_count>2</comment_count>
      <attachid>305618</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-03-29 10:49:10 -0700</bug_when>
    <thetext>Comment on attachment 305618
Patch

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

Since we have so many editing issues in the styles sidebar, I think we should break out the range matching into a utility method (that handles plain text, not CodeMirror) so we can write tests.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js:408
&gt; +    _rangeForNextNameOrValue(codeMirror, cursor, text) {

Style: put open brace on newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292478</commentid>
    <comment_count>3</comment_count>
      <attachid>305618</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-03-29 10:49:35 -0700</bug_when>
    <thetext>Comment on attachment 305618
Patch

r- until we have tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295613</commentid>
    <comment_count>4</comment_count>
      <attachid>306562</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-04-07 19:04:08 -0700</bug_when>
    <thetext>Created attachment 306562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295808</commentid>
    <comment_count>5</comment_count>
      <attachid>306562</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2017-04-09 09:29:46 -0700</bug_when>
    <thetext>Comment on attachment 306562
Patch

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

r=me, nice tests!

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js:408
&gt; +    _rangeForNextNameOrValue(codeMirror, cursor, text) {

Nit: put open brace on its own line.

&gt; LayoutTests/inspector/unit-tests/text-utilities-expected.txt:21
&gt; +PASS: Next highlight range of &quot;foo: url(http://baz);&quot; starting at index 5 is [5, 20]

A couple thoughts on the test output:

1) Highlight is a higher-level UI concept, and doesn&apos;t appear in the name of the utility method. It&apos;s confusing unless you know how this is going to be used in the UI. Maybe use name/value instead.
2) It is hard to tell from the resulting range bounds alone where an error occurred. What do you think about including the resulting substring in the output? Something like:

        Next name/value token in &quot;foo: url(http://baz);&quot; starting at index 5 is &quot;url(http://baz)&quot; (5, 20)

&gt; LayoutTests/inspector/unit-tests/text-utilities.html:14
&gt; +                InspectorTest.expectShallowEqual(WebInspector.rangeForNextCSSNameOrValue(text, index), expected, `Next highlight range of &quot;${text}&quot; starting at index ${index} is [${expected.from}, ${expected.to}]`);

Style: I think this would read a little better as:

function testValid(text, index, expected) {
    let actual = WebInspector.rangeForNextCSSNameOrValue(text, index);
    InspectorTest.expectShallowEqual(actual, expected, ...);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295876</commentid>
    <comment_count>6</comment_count>
      <attachid>306647</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-04-09 21:44:01 -0700</bug_when>
    <thetext>Created attachment 306647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295889</commentid>
    <comment_count>7</comment_count>
      <attachid>306647</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-09 22:26:48 -0700</bug_when>
    <thetext>Comment on attachment 306647
Patch

Clearing flags on attachment: 306647

Committed r215170: &lt;http://trac.webkit.org/changeset/215170&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295890</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-09 22:26:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305618</attachid>
            <date>2017-03-28 11:48:54 -0700</date>
            <delta_ts>2017-04-07 19:04:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170184-20170328114853.patch</filename>
            <type>text/plain</type>
            <size>6016</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDA4ZmM4Y2E0ZmY5NGE0NGMxNTYwOTY3Njg3YWJh
YWE2MmY4ZWRhNjUuLmVkYjZlOTAxMjJlMTNlMDNiZDZhMDZmMjRlYzU1NTU3YzUwMmI4MDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTAzLTI4ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHRhYmJpbmcgaW4gU3R5bGVzIHNpZGViYXIgaXMgYnJva2VuIHdoZW4gYWRkaXRpb25hbCAi
OiIgYW5kICI7IiBhcmUgaW4gdGhlIHByb3BlcnR5IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAxODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5
bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLl9oaWdobGlnaHROZXh0TmFtZU9yVmFs
dWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9y
LnByb3RvdHlwZS5fcmFuZ2VGb3JOZXh0TmFtZU9yVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLnByb3RvdHlwZS5faGFuZGxlTW91c2VV
cCk6CisgICAgICAgIENvbnNvbGlkYXRlIGxvZ2ljIGZvciBmaW5kaW5nIHRoZSBuZXh0IHJhbmdl
IHRvIGhpZ2hsaWdodC4KKwogMjAxNy0wMy0yNyAgRGV2aW4gUm91c3NvICA8d2Via2l0QGRldmlu
cm91c3NvLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBPcHRpb24tY2xpY2tpbmcgdGhl
IGNsb3NlIHRhYiBidXR0b24gc2hvdWxkIGNsb3NlIGFsbCBvdGhlciB0YWJzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xh
cmF0aW9uVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCmluZGV4IGY2NmU1NmZlNjI5
NmVmOTk2NTE1MTE0ZjlhNGMwNWY0MzZkNWU3MjguLjQ5OTk3NWZhMmEyZWRlMjkzYjRlNjllNDcx
ZWEyNDU4ZmNlMjU2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25U
ZXh0RWRpdG9yLmpzCkBAIC00MDEsMjUgKzQwMSwzOCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVE
ZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRv
cgogCiAgICAgX2hpZ2hsaWdodE5leHROYW1lT3JWYWx1ZShjb2RlTWlycm9yLCBjdXJzb3IsIHRl
eHQpCiAgICAgewotICAgICAgICB2YXIgbmV4dEFuY2hvcjsKLSAgICAgICAgdmFyIG5leHRIZWFk
OworICAgICAgICBsZXQgcmFuZ2UgPSB0aGlzLl9yYW5nZUZvck5leHROYW1lT3JWYWx1ZShjb2Rl
TWlycm9yLCBjdXJzb3IsIHRleHQpOworICAgICAgICBjb2RlTWlycm9yLnNldFNlbGVjdGlvbihy
YW5nZS5mcm9tLCByYW5nZS50byk7CisgICAgfQorCisgICAgX3JhbmdlRm9yTmV4dE5hbWVPclZh
bHVlKGNvZGVNaXJyb3IsIGN1cnNvciwgdGV4dCkgeworICAgICAgICBsZXQgbmV4dEFuY2hvciA9
IDA7CisgICAgICAgIGxldCBuZXh0SGVhZCA9IDA7CiAKICAgICAgICAgaWYgKHRoaXMuX3RleHRB
dEN1cnNvcklzQ29tbWVudChjb2RlTWlycm9yLCBjdXJzb3IpKSB7CiAgICAgICAgICAgICBuZXh0
QW5jaG9yID0gMDsKICAgICAgICAgICAgIG5leHRIZWFkID0gdGV4dC5sZW5ndGg7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgY29sb25JbmRleCA9IHRleHQuaW5kZXhPZigiOiIp
OwotICAgICAgICAgICAgdmFyIHN1YnN0cmluZ0luZGV4ID0gY29sb25JbmRleCA+PSAwICYmIGN1
cnNvci5jaCA+PSBjb2xvbkluZGV4ID8gY29sb25JbmRleCA6IDA7CisgICAgICAgICAgICBsZXQg
Y29sb25JbmRleCA9IHRleHQuaW5kZXhPZigiOiIpOworICAgICAgICAgICAgaWYgKGN1cnNvci5j
aCA8IGNvbG9uSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBuZXh0QW5jaG9yID0gMDsKKyAgICAg
ICAgICAgICAgICBuZXh0SGVhZCA9IGNvbG9uSW5kZXg7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIG5leHRBbmNob3IgPSBjb2xvbkluZGV4ICsgMTsKKyAgICAgICAgICAg
ICAgICBuZXh0SGVhZCA9IHRleHQubGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9CiAK
LSAgICAgICAgICAgIHZhciByZWdFeHAgPSAvKD86W146O1xzXVxzKikrL2c7Ci0gICAgICAgICAg
ICByZWdFeHAubGFzdEluZGV4ID0gc3Vic3RyaW5nSW5kZXg7Ci0gICAgICAgICAgICB2YXIgbWF0
Y2ggPSByZWdFeHAuZXhlYyh0ZXh0KTsKKyAgICAgICAgbGV0IHN1YnN0cmluZyA9IHRleHQuc3Vi
c3RyaW5nKG5leHRBbmNob3IsIG5leHRIZWFkKTsKIAotICAgICAgICAgICAgbmV4dEFuY2hvciA9
IG1hdGNoLmluZGV4OwotICAgICAgICAgICAgbmV4dEhlYWQgPSBuZXh0QW5jaG9yICsgbWF0Y2hb
MF0ubGVuZ3RoOwotICAgICAgICB9CisgICAgICAgIC8vIERvbid0IHNlbGVjdCBsZWFkaW5nL3Ry
YWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgIG5leHRBbmNob3IgKz0gc3Vic3RyaW5nLm1hdGNo
KC9eXHMqLylbMF0ubGVuZ3RoOworICAgICAgICBuZXh0SGVhZCAtPSBzdWJzdHJpbmcubWF0Y2go
L1tcc1w7XSokLylbMF0ubGVuZ3RoOwogCi0gICAgICAgIGNvZGVNaXJyb3Iuc2V0U2VsZWN0aW9u
KHtsaW5lOiBjdXJzb3IubGluZSwgY2g6IG5leHRBbmNob3J9LCB7bGluZTogY3Vyc29yLmxpbmUs
IGNoOiBuZXh0SGVhZH0pOworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgZnJvbToge2xp
bmU6IGN1cnNvci5saW5lLCBjaDogbmV4dEFuY2hvcn0sCisgICAgICAgICAgICB0bzoge2xpbmU6
IGN1cnNvci5saW5lLCBjaDogbmV4dEhlYWR9LAorICAgICAgICB9OwogICAgIH0KIAogICAgIF9o
YW5kbGVNb3VzZURvd24oZXZlbnQpCkBAIC00NTcsNDEgKzQ3MCwxNyBAQCBXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvcgogICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlcGxhY2VS
YW5nZShyZXBsYWNlbWVudCwgY3Vyc29yKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zdHlsZXNTZWxlY3RPbkZpcnN0Q2xp
Y2sudmFsdWUgJiYgdGhpcy5fbW91c2VEb3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZSkg
ewotICAgICAgICAgICAgICAgIGxldCBmcm9tID0ge2xpbmU6IGN1cnNvci5saW5lLCBjaDogMH07
Ci0gICAgICAgICAgICAgICAgbGV0IHRvID0ge2xpbmU6IGN1cnNvci5saW5lLCBjaDogMH07Ci0K
LSAgICAgICAgICAgICAgICBsZXQgY29sb25JbmRleCA9IGxpbmUuaW5kZXhPZigiOiIpOwotICAg
ICAgICAgICAgICAgIGlmIChjb2xvbkluZGV4ID09PSAtMSkgLy8gU2VsZWN0IGVudGlyZSBsaW5l
IGlmIHVuYWJsZSB0byBmaW5kIGNvbG9uLCBzdWNoIGFzIGZvciBhIGNvbW1lbnQuCi0gICAgICAg
ICAgICAgICAgICAgIGNvbG9uSW5kZXggPSBsaW5lLmxlbmd0aDsKLQotICAgICAgICAgICAgICAg
IGxldCB0ZXh0ID0gbGluZTsKLQotICAgICAgICAgICAgICAgIGlmIChjdXJzb3IuY2ggPD0gY29s
b25JbmRleCkgewotICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwg
Y29sb25JbmRleCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdG8uY2ggKz0gY29sb25JbmRleDsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4
dC5zdWJzdHJpbmcoY29sb25JbmRleCArIDEpOwotCi0gICAgICAgICAgICAgICAgICAgIGZyb20u
Y2ggKz0gY29sb25JbmRleCArIDE7Ci0gICAgICAgICAgICAgICAgICAgIHRvLmNoICs9IGxpbmUu
bGVuZ3RoOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGxldCBsZWFkaW5n
U3BhY2VzQ291bnQgPSB0ZXh0Lm1hdGNoKC9eXHMqLylbMF0ubGVuZ3RoOwotICAgICAgICAgICAg
ICAgIGxldCB0cmFpbGluZ05vbldvcmRDb3VudCA9IHRleHQubWF0Y2goL1tcc1w7XSokLylbMF0u
bGVuZ3RoOwotCi0gICAgICAgICAgICAgICAgZnJvbS5jaCArPSBsZWFkaW5nU3BhY2VzQ291bnQ7
Ci0gICAgICAgICAgICAgICAgdG8uY2ggLT0gdHJhaWxpbmdOb25Xb3JkQ291bnQ7CisgICAgICAg
ICAgICAgICAgbGV0IHJhbmdlID0gdGhpcy5fcmFuZ2VGb3JOZXh0TmFtZU9yVmFsdWUodGhpcy5f
Y29kZU1pcnJvciwgY3Vyc29yLCBsaW5lKTsKIAogICAgICAgICAgICAgICAgIGxldCBjbGlja2Vk
RGlmZmVyZW50TGluZSA9IHRoaXMuX21vdXNlRG93bkN1cnNvclBvc2l0aW9uLnByZXZpb3VzUmFu
Z2UuZnJvbS5saW5lICE9PSBjdXJzb3IubGluZSB8fCB0aGlzLl9tb3VzZURvd25DdXJzb3JQb3Np
dGlvbi5wcmV2aW91c1JhbmdlLnRvLmxpbmUgIT09IGN1cnNvci5saW5lOwogICAgICAgICAgICAg
ICAgIGxldCBjdXJzb3JJblByZXZpb3VzUmFuZ2UgPSBjdXJzb3IuY2ggPj0gdGhpcy5fbW91c2VE
b3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZS5mcm9tLmNoICYmIGN1cnNvci5jaCA8PSB0
aGlzLl9tb3VzZURvd25DdXJzb3JQb3NpdGlvbi5wcmV2aW91c1JhbmdlLnRvLmNoOwotICAgICAg
ICAgICAgICAgIGxldCBwcmV2aW91c0luTmV3UmFuZ2UgPSB0aGlzLl9tb3VzZURvd25DdXJzb3JQ
b3NpdGlvbi5wcmV2aW91c1JhbmdlLmZyb20uY2ggPj0gZnJvbS5jaCAmJiB0aGlzLl9tb3VzZURv
d25DdXJzb3JQb3NpdGlvbi5wcmV2aW91c1JhbmdlLnRvLmNoIDw9IHRvLmNoOworICAgICAgICAg
ICAgICAgIGxldCBwcmV2aW91c0luTmV3UmFuZ2UgPSB0aGlzLl9tb3VzZURvd25DdXJzb3JQb3Np
dGlvbi5wcmV2aW91c1JhbmdlLmZyb20uY2ggPj0gcmFuZ2UuZnJvbS5jaCAmJiB0aGlzLl9tb3Vz
ZURvd25DdXJzb3JQb3NpdGlvbi5wcmV2aW91c1JhbmdlLnRvLmNoIDw9IHJhbmdlLnRvLmNoOwog
CiAgICAgICAgICAgICAgICAgLy8gT25seSBzZWxlY3QgdGhlIG5ldyByYW5nZSBpZiB0aGUgZWRp
dG9yIGlzIG5vdCBmb2N1c2VkLCBhIG5ldyBsaW5lIGlzIGJlaW5nIGNsaWNrZWQsCiAgICAgICAg
ICAgICAgICAgLy8gb3IgdGhlIG5ldyBjdXJzb3IgcG9zaXRpb24gaXMgb3V0c2lkZSBvZiB0aGUg
cHJldmlvdXMgcmFuZ2UgYW5kIHRoZSBwcmV2aW91cyByYW5nZSBpcwogICAgICAgICAgICAgICAg
IC8vIG91dHNpZGUgb2YgdGhlIG5ldyByYW5nZSAobWVhbmluZyB5b3UncmUgbm90IGNsaWNraW5n
IGluIHRoZSBzYW1lIGFyZWEgdHdpY2UpLgogICAgICAgICAgICAgICAgIGlmICghdGhpcy5fY29k
ZU1pcnJvci5oYXNGb2N1cygpIHx8IGNsaWNrZWREaWZmZXJlbnRMaW5lIHx8ICghY3Vyc29ySW5Q
cmV2aW91c1JhbmdlICYmICFwcmV2aW91c0luTmV3UmFuZ2UpKQotICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9jb2RlTWlycm9yLnNldFNlbGVjdGlvbihmcm9tLCB0byk7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX2NvZGVNaXJyb3Iuc2V0U2VsZWN0aW9uKHJhbmdlLmZyb20sIHJhbmdlLnRv
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306562</attachid>
            <date>2017-04-07 19:04:08 -0700</date>
            <delta_ts>2017-04-09 21:44:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170184-20170407190426.patch</filename>
            <type>text/plain</type>
            <size>14596</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGEzZmRlOTFhOGJhZWU1NGE0ZGVkODI0NmU2MDg1
YTI4MzAzNGYwMGUuLjI3YzY4MjE2YjNiMzcyMjM4YjBmM2U5YmRhNDA2MDQ2NGRkYzE1NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA0LTA3ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHRhYmJpbmcgaW4gU3R5bGVzIHNpZGViYXIgaXMgYnJva2VuIHdoZW4gYWRkaXRpb25hbCAi
OiIgYW5kICI7IiBhcmUgaW4gdGhlIHByb3BlcnR5IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAxODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgdGVzdHM6CisgICAgICAgIC0gaW5zcGVj
dG9yL3VuaXQtdGVzdHMvdGV4dC11dGlsaXRpZXMuaHRtbAorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9CYXNlL1RleHRVdGlsaXRpZXMuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LnJhbmdlRm9yTmV4dENTU05hbWVPclZhbHVlKToKKyAgICAgICAgQ29uc29saWRhdGUgbG9naWMg
Zm9yIGZpbmRpbmcgdGhlIG5leHQgcmFuZ2UgdG8gaGlnaGxpZ2h0IGluIGEgQ1NTIHN0cmluZyBn
aXZlbiBhIHN0YXJ0aW5nIGluZGV4LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0
bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0Lmh0bWw6CisgICAgICAgIEluY2x1ZGUg
VGV4dFV0aWxpdGllcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvblRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVE
ZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLl9oaWdobGlnaHROZXh0TmFtZU9yVmFsdWUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLnBy
b3RvdHlwZS5fcmFuZ2VGb3JOZXh0TmFtZU9yVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLnByb3RvdHlwZS5faGFuZGxlTW91c2VVcCk6
CisgICAgICAgIFV0aWxpemUgVGV4dFV0aWxpdGllcyBmb3IgcmFuZ2UtZmluZGluZyBsb2dpYy4K
KwogMjAxNy0wNC0wNyAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogRE9NL1hIUiBicmVha3BvaW50IHRyZWUgZWxlbWVudHMgc2hvdWxk
bid0IHBlcnNpc3QgdGhlaXIgcmVwcmVzZW50ZWQgb2JqZWN0cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXh0VXRpbGl0aWVzLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXh0VXRpbGl0aWVzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQwMzE1NGExMmY0NWZmN2FlYzNlOWYzMDZiN2VlM2I3MWQzYjAzY2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1Rl
eHRVdGlsaXRpZXMuanMKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBEZXZpbiBSb3Vzc28gPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+LiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IucmFuZ2VGb3JOZXh0Q1NTTmFtZU9yVmFsdWUg
PSBmdW5jdGlvbih0ZXh0LCBpbmRleCA9IDApIHsKKyAgICBsZXQgZnJvbSA9IDA7CisgICAgbGV0
IHRvID0gMDsKKworICAgIGxldCBjb2xvbkluZGV4ID0gdGV4dC5pbmRleE9mKCI6Iik7CisgICAg
aWYgKGluZGV4IDwgY29sb25JbmRleCkgeworICAgICAgICBmcm9tID0gMDsKKyAgICAgICAgdG8g
PSBjb2xvbkluZGV4OworICAgIH0gZWxzZSB7CisgICAgICAgIGZyb20gPSBjb2xvbkluZGV4ICsg
MTsKKyAgICAgICAgdG8gPSB0ZXh0Lmxlbmd0aDsKKyAgICB9CisKKyAgICBsZXQgc3Vic3RyaW5n
ID0gdGV4dC5zdWJzdHJpbmcoZnJvbSwgdG8pOworCisgICAgLy8gRG9uJ3Qgc2VsZWN0IGxlYWRp
bmcvdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyAgICBmcm9tICs9IHN1YnN0cmluZy5tYXRjaCgvXlxz
Ki8pWzBdLmxlbmd0aDsKKyAgICB0byAtPSBzdWJzdHJpbmcubWF0Y2goL1tcc1w7XSokLylbMF0u
bGVuZ3RoOworCisgICAgcmV0dXJuIHtmcm9tLCB0b307Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDFjNzdkNmVjMTNhYWE2NjQ0ODc2
MDViY2QxMDczYjZiN2Q3ZGZhNGEuLmZkODAzZTIxNGQ4NGZhZTEyNTg0ZWQxMGNiNThkZjg5MDUz
YTIwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01h
aW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0
bWwKQEAgLTI0OSw2ICsyNDksNyBAQAogICAgIDxzY3JpcHQgc3JjPSJCYXNlL0ltYWdlVXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9Mb2FkTG9jYWxpemVkU3Ry
aW5ncy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvTUlNRVR5cGVVdGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJCYXNlL1RleHRVdGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL1VSTFV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvVXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iQmFzZS9TZXR0aW5nLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCBkOGU4ZGRiZmM3ZTdkZDJhNWNm
NTUxZmViZjM2MTUxNzRiNmJjMDljLi5hYjNiMzA0ZjZmMTEwM2UzMGM1MzVmYjQ1MmIyYzAxZDAw
ZGI2NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5o
dG1sCkBAIC01MSw2ICs1MSw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvRE9NVXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9FdmVudExpc3RlbmVyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9FdmVudExpc3RlbmVyU2V0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQmFzZS9UZXh0VXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQmFzZS9VUkxVdGlsaXRpZXMuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJCYXNlL1V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkJhc2UvU2V0dGluZy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVj
bGFyYXRpb25UZXh0RWRpdG9yLmpzCmluZGV4IDg1ZTg0NWNkOGM2NjVjNjRjZWYwMWViZDZmODNj
MzJmODdmMjE2OTIuLmFiZDUzMzRmMzBlYTljYTZjMDZkNzcyYzcxNzRlZjMxODI1ZTUyYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0
eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCkBAIC00
MDEsMjUgKzQwMSwyNiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0
b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogCiAgICAgX2hpZ2hsaWdo
dE5leHROYW1lT3JWYWx1ZShjb2RlTWlycm9yLCBjdXJzb3IsIHRleHQpCiAgICAgewotICAgICAg
ICB2YXIgbmV4dEFuY2hvcjsKLSAgICAgICAgdmFyIG5leHRIZWFkOwotCi0gICAgICAgIGlmICh0
aGlzLl90ZXh0QXRDdXJzb3JJc0NvbW1lbnQoY29kZU1pcnJvciwgY3Vyc29yKSkgewotICAgICAg
ICAgICAgbmV4dEFuY2hvciA9IDA7Ci0gICAgICAgICAgICBuZXh0SGVhZCA9IHRleHQubGVuZ3Ro
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIGNvbG9uSW5kZXggPSB0ZXh0Lmlu
ZGV4T2YoIjoiKTsKLSAgICAgICAgICAgIHZhciBzdWJzdHJpbmdJbmRleCA9IGNvbG9uSW5kZXgg
Pj0gMCAmJiBjdXJzb3IuY2ggPj0gY29sb25JbmRleCA/IGNvbG9uSW5kZXggOiAwOworICAgICAg
ICBsZXQgcmFuZ2UgPSB0aGlzLl9yYW5nZUZvck5leHROYW1lT3JWYWx1ZShjb2RlTWlycm9yLCBj
dXJzb3IsIHRleHQpOworICAgICAgICBjb2RlTWlycm9yLnNldFNlbGVjdGlvbihyYW5nZS5mcm9t
LCByYW5nZS50byk7CisgICAgfQogCi0gICAgICAgICAgICB2YXIgcmVnRXhwID0gLyg/OlteOjtc
c11ccyopKy9nOwotICAgICAgICAgICAgcmVnRXhwLmxhc3RJbmRleCA9IHN1YnN0cmluZ0luZGV4
OwotICAgICAgICAgICAgdmFyIG1hdGNoID0gcmVnRXhwLmV4ZWModGV4dCk7CisgICAgX3Jhbmdl
Rm9yTmV4dE5hbWVPclZhbHVlKGNvZGVNaXJyb3IsIGN1cnNvciwgdGV4dCkgeworICAgICAgICBs
ZXQgbmV4dEFuY2hvciA9IDA7CisgICAgICAgIGxldCBuZXh0SGVhZCA9IDA7CiAKLSAgICAgICAg
ICAgIG5leHRBbmNob3IgPSBtYXRjaC5pbmRleDsKLSAgICAgICAgICAgIG5leHRIZWFkID0gbmV4
dEFuY2hvciArIG1hdGNoWzBdLmxlbmd0aDsKKyAgICAgICAgaWYgKHRoaXMuX3RleHRBdEN1cnNv
cklzQ29tbWVudChjb2RlTWlycm9yLCBjdXJzb3IpKQorICAgICAgICAgICAgbmV4dEhlYWQgPSB0
ZXh0Lmxlbmd0aDsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsZXQgcmFuZ2UgPSBXZWJJ
bnNwZWN0b3IucmFuZ2VGb3JOZXh0Q1NTTmFtZU9yVmFsdWUodGV4dCwgY3Vyc29yLmNoKTsKKyAg
ICAgICAgICAgIG5leHRBbmNob3IgPSByYW5nZS5mcm9tOworICAgICAgICAgICAgbmV4dEhlYWQg
PSByYW5nZS50bzsKICAgICAgICAgfQogCi0gICAgICAgIGNvZGVNaXJyb3Iuc2V0U2VsZWN0aW9u
KHtsaW5lOiBjdXJzb3IubGluZSwgY2g6IG5leHRBbmNob3J9LCB7bGluZTogY3Vyc29yLmxpbmUs
IGNoOiBuZXh0SGVhZH0pOworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgZnJvbToge2xp
bmU6IGN1cnNvci5saW5lLCBjaDogbmV4dEFuY2hvcn0sCisgICAgICAgICAgICB0bzoge2xpbmU6
IGN1cnNvci5saW5lLCBjaDogbmV4dEhlYWR9LAorICAgICAgICB9OwogICAgIH0KIAogICAgIF9o
YW5kbGVNb3VzZURvd24oZXZlbnQpCkBAIC00NTcsNDEgKzQ1OCwxNyBAQCBXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvcgogICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnJlcGxhY2VS
YW5nZShyZXBsYWNlbWVudCwgY3Vyc29yKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zdHlsZXNTZWxlY3RPbkZpcnN0Q2xp
Y2sudmFsdWUgJiYgdGhpcy5fbW91c2VEb3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZSkg
ewotICAgICAgICAgICAgICAgIGxldCBmcm9tID0ge2xpbmU6IGN1cnNvci5saW5lLCBjaDogMH07
Ci0gICAgICAgICAgICAgICAgbGV0IHRvID0ge2xpbmU6IGN1cnNvci5saW5lLCBjaDogMH07Ci0K
LSAgICAgICAgICAgICAgICBsZXQgY29sb25JbmRleCA9IGxpbmUuaW5kZXhPZigiOiIpOwotICAg
ICAgICAgICAgICAgIGlmIChjb2xvbkluZGV4ID09PSAtMSkgLy8gU2VsZWN0IGVudGlyZSBsaW5l
IGlmIHVuYWJsZSB0byBmaW5kIGNvbG9uLCBzdWNoIGFzIGZvciBhIGNvbW1lbnQuCi0gICAgICAg
ICAgICAgICAgICAgIGNvbG9uSW5kZXggPSBsaW5lLmxlbmd0aDsKLQotICAgICAgICAgICAgICAg
IGxldCB0ZXh0ID0gbGluZTsKLQotICAgICAgICAgICAgICAgIGlmIChjdXJzb3IuY2ggPD0gY29s
b25JbmRleCkgewotICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwg
Y29sb25JbmRleCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdG8uY2ggKz0gY29sb25JbmRleDsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4
dC5zdWJzdHJpbmcoY29sb25JbmRleCArIDEpOwotCi0gICAgICAgICAgICAgICAgICAgIGZyb20u
Y2ggKz0gY29sb25JbmRleCArIDE7Ci0gICAgICAgICAgICAgICAgICAgIHRvLmNoICs9IGxpbmUu
bGVuZ3RoOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGxldCBsZWFkaW5n
U3BhY2VzQ291bnQgPSB0ZXh0Lm1hdGNoKC9eXHMqLylbMF0ubGVuZ3RoOwotICAgICAgICAgICAg
ICAgIGxldCB0cmFpbGluZ05vbldvcmRDb3VudCA9IHRleHQubWF0Y2goL1tcc1w7XSokLylbMF0u
bGVuZ3RoOwotCi0gICAgICAgICAgICAgICAgZnJvbS5jaCArPSBsZWFkaW5nU3BhY2VzQ291bnQ7
Ci0gICAgICAgICAgICAgICAgdG8uY2ggLT0gdHJhaWxpbmdOb25Xb3JkQ291bnQ7CisgICAgICAg
ICAgICAgICAgbGV0IHJhbmdlID0gdGhpcy5fcmFuZ2VGb3JOZXh0TmFtZU9yVmFsdWUodGhpcy5f
Y29kZU1pcnJvciwgY3Vyc29yLCBsaW5lKTsKIAogICAgICAgICAgICAgICAgIGxldCBjbGlja2Vk
RGlmZmVyZW50TGluZSA9IHRoaXMuX21vdXNlRG93bkN1cnNvclBvc2l0aW9uLnByZXZpb3VzUmFu
Z2UuZnJvbS5saW5lICE9PSBjdXJzb3IubGluZSB8fCB0aGlzLl9tb3VzZURvd25DdXJzb3JQb3Np
dGlvbi5wcmV2aW91c1JhbmdlLnRvLmxpbmUgIT09IGN1cnNvci5saW5lOwogICAgICAgICAgICAg
ICAgIGxldCBjdXJzb3JJblByZXZpb3VzUmFuZ2UgPSBjdXJzb3IuY2ggPj0gdGhpcy5fbW91c2VE
b3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZS5mcm9tLmNoICYmIGN1cnNvci5jaCA8PSB0
aGlzLl9tb3VzZURvd25DdXJzb3JQb3NpdGlvbi5wcmV2aW91c1JhbmdlLnRvLmNoOwotICAgICAg
ICAgICAgICAgIGxldCBwcmV2aW91c0luTmV3UmFuZ2UgPSB0aGlzLl9tb3VzZURvd25DdXJzb3JQ
b3NpdGlvbi5wcmV2aW91c1JhbmdlLmZyb20uY2ggPj0gZnJvbS5jaCAmJiB0aGlzLl9tb3VzZURv
d25DdXJzb3JQb3NpdGlvbi5wcmV2aW91c1JhbmdlLnRvLmNoIDw9IHRvLmNoOworICAgICAgICAg
ICAgICAgIGxldCBwcmV2aW91c0luTmV3UmFuZ2UgPSB0aGlzLl9tb3VzZURvd25DdXJzb3JQb3Np
dGlvbi5wcmV2aW91c1JhbmdlLmZyb20uY2ggPj0gcmFuZ2UuZnJvbS5jaCAmJiB0aGlzLl9tb3Vz
ZURvd25DdXJzb3JQb3NpdGlvbi5wcmV2aW91c1JhbmdlLnRvLmNoIDw9IHJhbmdlLnRvLmNoOwog
CiAgICAgICAgICAgICAgICAgLy8gT25seSBzZWxlY3QgdGhlIG5ldyByYW5nZSBpZiB0aGUgZWRp
dG9yIGlzIG5vdCBmb2N1c2VkLCBhIG5ldyBsaW5lIGlzIGJlaW5nIGNsaWNrZWQsCiAgICAgICAg
ICAgICAgICAgLy8gb3IgdGhlIG5ldyBjdXJzb3IgcG9zaXRpb24gaXMgb3V0c2lkZSBvZiB0aGUg
cHJldmlvdXMgcmFuZ2UgYW5kIHRoZSBwcmV2aW91cyByYW5nZSBpcwogICAgICAgICAgICAgICAg
IC8vIG91dHNpZGUgb2YgdGhlIG5ldyByYW5nZSAobWVhbmluZyB5b3UncmUgbm90IGNsaWNraW5n
IGluIHRoZSBzYW1lIGFyZWEgdHdpY2UpLgogICAgICAgICAgICAgICAgIGlmICghdGhpcy5fY29k
ZU1pcnJvci5oYXNGb2N1cygpIHx8IGNsaWNrZWREaWZmZXJlbnRMaW5lIHx8ICghY3Vyc29ySW5Q
cmV2aW91c1JhbmdlICYmICFwcmV2aW91c0luTmV3UmFuZ2UpKQotICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9jb2RlTWlycm9yLnNldFNlbGVjdGlvbihmcm9tLCB0byk7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX2NvZGVNaXJyb3Iuc2V0U2VsZWN0aW9uKHJhbmdlLmZyb20sIHJhbmdlLnRv
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTJkOGI1ZjRhM2U2NGQxMGVl
ZDQzOGQzMDY4YTdhNDU5ZTFmNzZlZC4uNWFiMWIyMjJmYTBjNGMwOWRmMjFiYWRmMjgzMjgyZmZi
MDY2MTBhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA0LTA3ICBEZXZpbiBSb3Vzc28g
IDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHRhYmJp
bmcgaW4gU3R5bGVzIHNpZGViYXIgaXMgYnJva2VuIHdoZW4gYWRkaXRpb25hbCAiOiIgYW5kICI7
IiBhcmUgaW4gdGhlIHByb3BlcnR5IHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAxODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL3RleHQtdXRpbGl0aWVz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGV4
dC11dGlsaXRpZXMuaHRtbDogQWRkZWQuCisKIDIwMTctMDQtMDcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB1cGRhdGUgMiBtZWRpYSB0ZXN0
cyBhZnRlciByMjE1MTIwIHNvIHRoZXkgd29yayBvbiBpT1MuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXh0LXV0aWxpdGllcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXh0LXV0aWxpdGllcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGU4MjBmNzllYTg0MzRiZWIzNDQ1ZTFiMThiZDUyZmNkMGU5MzA1Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3RleHQt
dXRpbGl0aWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitUZXN0aW5nIGJhc2ljIGZ1
bmN0aW9uYWxpdHkgb2YgZnVuY3Rpb25zIGRlZmluZWQgaW4gVGV4dFV0aWxpdGllcy5qcy4KKwor
Cis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFRleHRVdGlsaXRpZXMKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBXZWJJbnNwZWN0b3IucmFuZ2VGb3JOZXh0Q1NTTmFtZU9yVmFsdWUKK1BBU1M6IE5leHQg
aGlnaGxpZ2h0IHJhbmdlIG9mICIiIHN0YXJ0aW5nIGF0IGluZGV4IDAgaXMgWzAsIDBdCitQQVNT
OiBOZXh0IGhpZ2hsaWdodCByYW5nZSBvZiAiIiBzdGFydGluZyBhdCBpbmRleCAyIGlzIFswLCAw
XQorUEFTUzogTmV4dCBoaWdobGlnaHQgcmFuZ2Ugb2YgImZvbyIgc3RhcnRpbmcgYXQgaW5kZXgg
MCBpcyBbMCwgM10KK1BBU1M6IE5leHQgaGlnaGxpZ2h0IHJhbmdlIG9mICJmb28iIHN0YXJ0aW5n
IGF0IGluZGV4IDIgaXMgWzAsIDNdCitQQVNTOiBOZXh0IGhpZ2hsaWdodCByYW5nZSBvZiAiZm9v
OmJhciIgc3RhcnRpbmcgYXQgaW5kZXggMCBpcyBbMCwgM10KK1BBU1M6IE5leHQgaGlnaGxpZ2h0
IHJhbmdlIG9mICJmb286YmFyIiBzdGFydGluZyBhdCBpbmRleCAyIGlzIFswLCAzXQorUEFTUzog
TmV4dCBoaWdobGlnaHQgcmFuZ2Ugb2YgImZvbzpiYXIiIHN0YXJ0aW5nIGF0IGluZGV4IDMgaXMg
WzQsIDddCitQQVNTOiBOZXh0IGhpZ2hsaWdodCByYW5nZSBvZiAiZm9vOmJhciIgc3RhcnRpbmcg
YXQgaW5kZXggNSBpcyBbNCwgN10KK1BBU1M6IE5leHQgaGlnaGxpZ2h0IHJhbmdlIG9mICJmb286
ICBiYXIgIDsiIHN0YXJ0aW5nIGF0IGluZGV4IDAgaXMgWzAsIDNdCitQQVNTOiBOZXh0IGhpZ2hs
aWdodCByYW5nZSBvZiAiZm9vOiAgYmFyICA7IiBzdGFydGluZyBhdCBpbmRleCAyIGlzIFswLCAz
XQorUEFTUzogTmV4dCBoaWdobGlnaHQgcmFuZ2Ugb2YgImZvbzogIGJhciAgOyIgc3RhcnRpbmcg
YXQgaW5kZXggMyBpcyBbNiwgOV0KK1BBU1M6IE5leHQgaGlnaGxpZ2h0IHJhbmdlIG9mICJmb286
ICBiYXIgIDsiIHN0YXJ0aW5nIGF0IGluZGV4IDUgaXMgWzYsIDldCitQQVNTOiBOZXh0IGhpZ2hs
aWdodCByYW5nZSBvZiAiZm9vOiB1cmwoaHR0cDovL2Jheik7IiBzdGFydGluZyBhdCBpbmRleCAw
IGlzIFswLCAzXQorUEFTUzogTmV4dCBoaWdobGlnaHQgcmFuZ2Ugb2YgImZvbzogdXJsKGh0dHA6
Ly9iYXopOyIgc3RhcnRpbmcgYXQgaW5kZXggMiBpcyBbMCwgM10KK1BBU1M6IE5leHQgaGlnaGxp
Z2h0IHJhbmdlIG9mICJmb286IHVybChodHRwOi8vYmF6KTsiIHN0YXJ0aW5nIGF0IGluZGV4IDMg
aXMgWzUsIDIwXQorUEFTUzogTmV4dCBoaWdobGlnaHQgcmFuZ2Ugb2YgImZvbzogdXJsKGh0dHA6
Ly9iYXopOyIgc3RhcnRpbmcgYXQgaW5kZXggNSBpcyBbNSwgMjBdCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3RleHQtdXRpbGl0aWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXh0LXV0aWxpdGllcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlNDQ4YTc0ZWYyMWVjZmUwOGQ4Nzg4OTdjOWY2NDJhZDJkZmM4MzYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXh0LXV0aWxpdGllcy5o
dG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxl
dCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlU3luY1N1aXRlKCJUZXh0VXRpbGl0aWVzIik7
CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJXZWJJbnNwZWN0b3Iu
cmFuZ2VGb3JOZXh0Q1NTTmFtZU9yVmFsdWUiLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAg
ICAgZnVuY3Rpb24gdGVzdFZhbGlkKHRleHQsIGluZGV4LCBleHBlY3RlZCkgeworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFsKFdlYkluc3BlY3Rvci5yYW5n
ZUZvck5leHRDU1NOYW1lT3JWYWx1ZSh0ZXh0LCBpbmRleCksIGV4cGVjdGVkLCBgTmV4dCBoaWdo
bGlnaHQgcmFuZ2Ugb2YgIiR7dGV4dH0iIHN0YXJ0aW5nIGF0IGluZGV4ICR7aW5kZXh9IGlzIFsk
e2V4cGVjdGVkLmZyb219LCAke2V4cGVjdGVkLnRvfV1gKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gVGVzdCBlbXB0eSBzdHJpbmcgYW5kIG91dC1vZi1ib3VuZHMgaW5kZXgKKyAg
ICAgICAgICAgIHRlc3RWYWxpZCgiIiwgMCwge2Zyb206IDAsIHRvOiAwfSk7CisgICAgICAgICAg
ICB0ZXN0VmFsaWQoIiIsIDIsIHtmcm9tOiAwLCB0bzogMH0pOworCisgICAgICAgICAgICAvLyBU
ZXN0IGJhc2ljIHN0cmluZworICAgICAgICAgICAgdGVzdFZhbGlkKCJmb28iLCAwLCB7ZnJvbTog
MCwgdG86IDN9KTsKKyAgICAgICAgICAgIHRlc3RWYWxpZCgiZm9vIiwgMiwge2Zyb206IDAsIHRv
OiAzfSk7CisKKyAgICAgICAgICAgIC8vIFRlc3Qgc3RyaW5nIHdpdGggc2luZ2xlIGNvbG9uCisg
ICAgICAgICAgICB0ZXN0VmFsaWQoImZvbzpiYXIiLCAwLCB7ZnJvbTogMCwgdG86IDN9KTsKKyAg
ICAgICAgICAgIHRlc3RWYWxpZCgiZm9vOmJhciIsIDIsIHtmcm9tOiAwLCB0bzogM30pOworICAg
ICAgICAgICAgdGVzdFZhbGlkKCJmb286YmFyIiwgMywge2Zyb206IDQsIHRvOiA3fSk7CisgICAg
ICAgICAgICB0ZXN0VmFsaWQoImZvbzpiYXIiLCA1LCB7ZnJvbTogNCwgdG86IDd9KTsKKworICAg
ICAgICAgICAgLy8gVGVzdCBzdHJpbmcgd2l0aCBleHRyYSB3aGl0ZXNwYWNlCisgICAgICAgICAg
ICB0ZXN0VmFsaWQoImZvbzogIGJhciAgOyIsIDAsIHtmcm9tOiAwLCB0bzogM30pOworICAgICAg
ICAgICAgdGVzdFZhbGlkKCJmb286ICBiYXIgIDsiLCAyLCB7ZnJvbTogMCwgdG86IDN9KTsKKyAg
ICAgICAgICAgIHRlc3RWYWxpZCgiZm9vOiAgYmFyICA7IiwgMywge2Zyb206IDYsIHRvOiA5fSk7
CisgICAgICAgICAgICB0ZXN0VmFsaWQoImZvbzogIGJhciAgOyIsIDUsIHtmcm9tOiA2LCB0bzog
OX0pOworCisgICAgICAgICAgICAvLyBUZXN0IHN0cmluZyB3aXRoIG11bHRpcGxlIGNvbG9ucwor
ICAgICAgICAgICAgdGVzdFZhbGlkKCJmb286IHVybChodHRwOi8vYmF6KTsiLCAwLCB7ZnJvbTog
MCwgdG86IDN9KTsKKyAgICAgICAgICAgIHRlc3RWYWxpZCgiZm9vOiB1cmwoaHR0cDovL2Jheik7
IiwgMiwge2Zyb206IDAsIHRvOiAzfSk7CisgICAgICAgICAgICB0ZXN0VmFsaWQoImZvbzogdXJs
KGh0dHA6Ly9iYXopOyIsIDMsIHtmcm9tOiA1LCB0bzogMjB9KTsKKyAgICAgICAgICAgIHRlc3RW
YWxpZCgiZm9vOiB1cmwoaHR0cDovL2Jheik7IiwgNSwge2Zyb206IDUsIHRvOiAyMH0pOworCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
TG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0aW5nIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2Yg
ZnVuY3Rpb25zIGRlZmluZWQgaW4gVGV4dFV0aWxpdGllcy5qcy48L3A+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>
<flag name="review"
          id="327916"
          type_id="1"
          status="+"
          setter="mattbaker"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306647</attachid>
            <date>2017-04-09 21:44:01 -0700</date>
            <delta_ts>2017-04-09 22:26:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>170184.diff</filename>
            <type>text/plain</type>
            <size>14294</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNTQ2ZTk5NTU4ZC4uZmFiOTJmMDFkMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxNy0wNC0wOSAgRGV2aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiB0YWJiaW5nIGluIFN0eWxlcyBzaWRlYmFyIGlzIGJyb2tlbiB3
aGVuIGFkZGl0aW9uYWwgIjoiIGFuZCAiOyIgYXJlIGluIHRoZSBwcm9wZXJ0eSB2YWx1ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwMTg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWF0dCBCYWtlci4KKworICAgICAgICAqIGluc3BlY3Rvci91bml0
LXRlc3RzL3RleHQtdXRpbGl0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3VuaXQtdGVzdHMvdGV4dC11dGlsaXRpZXMuaHRtbDogQWRkZWQuCisKIDIwMTctMDQt
MDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3luYyBX
UFQgdGVzdHMgdXAgdG8gMjNjZDA3ZDQ2ODVkODEwMjRiNzQ0MGUwNDJmOGJiZGIzM2U3ZGRlYwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGV4dC11dGlsaXRp
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGV4dC11
dGlsaXRpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi40ZGY4ODBjN2UwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci91bml0LXRlc3RzL3RleHQtdXRpbGl0aWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBA
CitUZXN0aW5nIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgZnVuY3Rpb25zIGRlZmluZWQgaW4gVGV4
dFV0aWxpdGllcy5qcy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFRleHRVdGlsaXRpZXMK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXZWJJbnNwZWN0b3IucmFuZ2VGb3JOZXh0Q1NTTmFtZU9y
VmFsdWUKK1BBU1M6IE5leHQgbmFtZS92YWx1ZSB0b2tlbiBpbiAiIiBzdGFydGluZyBhdCBpbmRl
eCAwIGlzICIiIFswLCAwXQorUEFTUzogTmV4dCBuYW1lL3ZhbHVlIHRva2VuIGluICIiIHN0YXJ0
aW5nIGF0IGluZGV4IDIgaXMgIiIgWzAsIDBdCitQQVNTOiBOZXh0IG5hbWUvdmFsdWUgdG9rZW4g
aW4gImZvbyIgc3RhcnRpbmcgYXQgaW5kZXggMCBpcyAiZm9vIiBbMCwgM10KK1BBU1M6IE5leHQg
bmFtZS92YWx1ZSB0b2tlbiBpbiAiZm9vIiBzdGFydGluZyBhdCBpbmRleCAyIGlzICJmb28iIFsw
LCAzXQorUEFTUzogTmV4dCBuYW1lL3ZhbHVlIHRva2VuIGluICJmb286YmFyIiBzdGFydGluZyBh
dCBpbmRleCAwIGlzICJmb28iIFswLCAzXQorUEFTUzogTmV4dCBuYW1lL3ZhbHVlIHRva2VuIGlu
ICJmb286YmFyIiBzdGFydGluZyBhdCBpbmRleCAyIGlzICJmb28iIFswLCAzXQorUEFTUzogTmV4
dCBuYW1lL3ZhbHVlIHRva2VuIGluICJmb286YmFyIiBzdGFydGluZyBhdCBpbmRleCAzIGlzICJi
YXIiIFs0LCA3XQorUEFTUzogTmV4dCBuYW1lL3ZhbHVlIHRva2VuIGluICJmb286YmFyIiBzdGFy
dGluZyBhdCBpbmRleCA1IGlzICJiYXIiIFs0LCA3XQorUEFTUzogTmV4dCBuYW1lL3ZhbHVlIHRv
a2VuIGluICJmb286ICBiYXIgIDsiIHN0YXJ0aW5nIGF0IGluZGV4IDAgaXMgImZvbyIgWzAsIDNd
CitQQVNTOiBOZXh0IG5hbWUvdmFsdWUgdG9rZW4gaW4gImZvbzogIGJhciAgOyIgc3RhcnRpbmcg
YXQgaW5kZXggMiBpcyAiZm9vIiBbMCwgM10KK1BBU1M6IE5leHQgbmFtZS92YWx1ZSB0b2tlbiBp
biAiZm9vOiAgYmFyICA7IiBzdGFydGluZyBhdCBpbmRleCAzIGlzICJiYXIiIFs2LCA5XQorUEFT
UzogTmV4dCBuYW1lL3ZhbHVlIHRva2VuIGluICJmb286ICBiYXIgIDsiIHN0YXJ0aW5nIGF0IGlu
ZGV4IDUgaXMgImJhciIgWzYsIDldCitQQVNTOiBOZXh0IG5hbWUvdmFsdWUgdG9rZW4gaW4gImZv
bzogdXJsKGh0dHA6Ly9iYXopOyIgc3RhcnRpbmcgYXQgaW5kZXggMCBpcyAiZm9vIiBbMCwgM10K
K1BBU1M6IE5leHQgbmFtZS92YWx1ZSB0b2tlbiBpbiAiZm9vOiB1cmwoaHR0cDovL2Jheik7IiBz
dGFydGluZyBhdCBpbmRleCAyIGlzICJmb28iIFswLCAzXQorUEFTUzogTmV4dCBuYW1lL3ZhbHVl
IHRva2VuIGluICJmb286IHVybChodHRwOi8vYmF6KTsiIHN0YXJ0aW5nIGF0IGluZGV4IDMgaXMg
InVybChodHRwOi8vYmF6KSIgWzUsIDIwXQorUEFTUzogTmV4dCBuYW1lL3ZhbHVlIHRva2VuIGlu
ICJmb286IHVybChodHRwOi8vYmF6KTsiIHN0YXJ0aW5nIGF0IGluZGV4IDUgaXMgInVybChodHRw
Oi8vYmF6KSIgWzUsIDIwXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy90ZXh0LXV0aWxpdGllcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQt
dGVzdHMvdGV4dC11dGlsaXRpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMWJmNzUzYTU2YzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy90ZXh0LXV0aWxpdGllcy5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3Qu
Y3JlYXRlU3luY1N1aXRlKCJUZXh0VXRpbGl0aWVzIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJXZWJJbnNwZWN0b3IucmFuZ2VGb3JOZXh0Q1NTTmFtZU9yVmFs
dWUiLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZnVuY3Rpb24gdGVzdFZhbGlkKHRl
eHQsIGluZGV4LCBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBXZWJJ
bnNwZWN0b3IucmFuZ2VGb3JOZXh0Q1NTTmFtZU9yVmFsdWUodGV4dCwgaW5kZXgpOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFsKGFjdHVhbCwgZXhwZWN0
ZWQsIGBOZXh0IG5hbWUvdmFsdWUgdG9rZW4gaW4gIiR7dGV4dH0iIHN0YXJ0aW5nIGF0IGluZGV4
ICR7aW5kZXh9IGlzICIke3RleHQuc3Vic3RyaW5nKGFjdHVhbC5mcm9tLCBhY3R1YWwudG8pfSIg
WyR7YWN0dWFsLmZyb219LCAke2FjdHVhbC50b31dYCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIC8vIFRlc3QgZW1wdHkgc3RyaW5nIGFuZCBvdXQtb2YtYm91bmRzIGluZGV4CisgICAg
ICAgICAgICB0ZXN0VmFsaWQoIiIsIDAsIHtmcm9tOiAwLCB0bzogMH0pOworICAgICAgICAgICAg
dGVzdFZhbGlkKCIiLCAyLCB7ZnJvbTogMCwgdG86IDB9KTsKKworICAgICAgICAgICAgLy8gVGVz
dCBiYXNpYyBzdHJpbmcKKyAgICAgICAgICAgIHRlc3RWYWxpZCgiZm9vIiwgMCwge2Zyb206IDAs
IHRvOiAzfSk7CisgICAgICAgICAgICB0ZXN0VmFsaWQoImZvbyIsIDIsIHtmcm9tOiAwLCB0bzog
M30pOworCisgICAgICAgICAgICAvLyBUZXN0IHN0cmluZyB3aXRoIHNpbmdsZSBjb2xvbgorICAg
ICAgICAgICAgdGVzdFZhbGlkKCJmb286YmFyIiwgMCwge2Zyb206IDAsIHRvOiAzfSk7CisgICAg
ICAgICAgICB0ZXN0VmFsaWQoImZvbzpiYXIiLCAyLCB7ZnJvbTogMCwgdG86IDN9KTsKKyAgICAg
ICAgICAgIHRlc3RWYWxpZCgiZm9vOmJhciIsIDMsIHtmcm9tOiA0LCB0bzogN30pOworICAgICAg
ICAgICAgdGVzdFZhbGlkKCJmb286YmFyIiwgNSwge2Zyb206IDQsIHRvOiA3fSk7CisKKyAgICAg
ICAgICAgIC8vIFRlc3Qgc3RyaW5nIHdpdGggZXh0cmEgd2hpdGVzcGFjZQorICAgICAgICAgICAg
dGVzdFZhbGlkKCJmb286ICBiYXIgIDsiLCAwLCB7ZnJvbTogMCwgdG86IDN9KTsKKyAgICAgICAg
ICAgIHRlc3RWYWxpZCgiZm9vOiAgYmFyICA7IiwgMiwge2Zyb206IDAsIHRvOiAzfSk7CisgICAg
ICAgICAgICB0ZXN0VmFsaWQoImZvbzogIGJhciAgOyIsIDMsIHtmcm9tOiA2LCB0bzogOX0pOwor
ICAgICAgICAgICAgdGVzdFZhbGlkKCJmb286ICBiYXIgIDsiLCA1LCB7ZnJvbTogNiwgdG86IDl9
KTsKKworICAgICAgICAgICAgLy8gVGVzdCBzdHJpbmcgd2l0aCBtdWx0aXBsZSBjb2xvbnMKKyAg
ICAgICAgICAgIHRlc3RWYWxpZCgiZm9vOiB1cmwoaHR0cDovL2Jheik7IiwgMCwge2Zyb206IDAs
IHRvOiAzfSk7CisgICAgICAgICAgICB0ZXN0VmFsaWQoImZvbzogdXJsKGh0dHA6Ly9iYXopOyIs
IDIsIHtmcm9tOiAwLCB0bzogM30pOworICAgICAgICAgICAgdGVzdFZhbGlkKCJmb286IHVybCho
dHRwOi8vYmF6KTsiLCAzLCB7ZnJvbTogNSwgdG86IDIwfSk7CisgICAgICAgICAgICB0ZXN0VmFs
aWQoImZvbzogdXJsKGh0dHA6Ly9iYXopOyIsIDUsIHtmcm9tOiA1LCB0bzogMjB9KTsKKworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1
blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbkxv
YWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdGluZyBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIGZ1
bmN0aW9ucyBkZWZpbmVkIGluIFRleHRVdGlsaXRpZXMuanMuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMTFmYjQxNDI3MDcuLmE4NWJlYTNlZTk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNy0wNC0wOSAgRGV2
aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiB0YWJiaW5nIGluIFN0eWxlcyBzaWRlYmFyIGlzIGJyb2tlbiB3aGVuIGFkZGl0aW9uYWwg
IjoiIGFuZCAiOyIgYXJlIGluIHRoZSBwcm9wZXJ0eSB2YWx1ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwMTg0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTWF0dCBCYWtlci4KKworICAgICAgICBOZXcgdGVzdHM6CisgICAgICAgIC0gaW5zcGVjdG9y
L3VuaXQtdGVzdHMvdGV4dC11dGlsaXRpZXMuaHRtbAorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9CYXNlL1RleHRVdGlsaXRpZXMuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLnJh
bmdlRm9yTmV4dENTU05hbWVPclZhbHVlKToKKyAgICAgICAgQ29uc29saWRhdGUgbG9naWMgZm9y
IGZpbmRpbmcgdGhlIG5leHQgcmFuZ2UgdG8gaGlnaGxpZ2h0IGluIGEgQ1NTIHN0cmluZyBnaXZl
biBhIHN0YXJ0aW5nIGluZGV4LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6
CisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0Lmh0bWw6CisgICAgICAgIEluY2x1ZGUgVGV4
dFV0aWxpdGllcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNs
YXJhdGlvblRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLl9oaWdobGlnaHROZXh0TmFtZU9yVmFsdWUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLnByb3Rv
dHlwZS5fcmFuZ2VGb3JOZXh0TmFtZU9yVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLnByb3RvdHlwZS5faGFuZGxlTW91c2VVcCk6Cisg
ICAgICAgIFV0aWxpemUgVGV4dFV0aWxpdGllcyBmb3IgcmFuZ2UtZmluZGluZyBsb2dpYy4KKwog
MjAxNy0wNC0wOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnByZWZpeCBDU1MgY3Vyc29yIHZhbHVlcyBncmFiIGFuZCBncmFiYmluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXh0VXRpbGl0
aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9UZXh0VXRp
bGl0aWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MDMxNTRh
MTJmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvVGV4dFV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IERldmluIFJvdXNzbyA8d2Via2l0QGRldmlucm91c3NvLmNvbT4uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5yYW5nZUZvck5leHRDU1NO
YW1lT3JWYWx1ZSA9IGZ1bmN0aW9uKHRleHQsIGluZGV4ID0gMCkgeworICAgIGxldCBmcm9tID0g
MDsKKyAgICBsZXQgdG8gPSAwOworCisgICAgbGV0IGNvbG9uSW5kZXggPSB0ZXh0LmluZGV4T2Yo
IjoiKTsKKyAgICBpZiAoaW5kZXggPCBjb2xvbkluZGV4KSB7CisgICAgICAgIGZyb20gPSAwOwor
ICAgICAgICB0byA9IGNvbG9uSW5kZXg7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZnJvbSA9IGNv
bG9uSW5kZXggKyAxOworICAgICAgICB0byA9IHRleHQubGVuZ3RoOworICAgIH0KKworICAgIGxl
dCBzdWJzdHJpbmcgPSB0ZXh0LnN1YnN0cmluZyhmcm9tLCB0byk7CisKKyAgICAvLyBEb24ndCBz
ZWxlY3QgbGVhZGluZy90cmFpbGluZyB3aGl0ZXNwYWNlLgorICAgIGZyb20gKz0gc3Vic3RyaW5n
Lm1hdGNoKC9eXHMqLylbMF0ubGVuZ3RoOworICAgIHRvIC09IHN1YnN0cmluZy5tYXRjaCgvW1xz
XDtdKiQvKVswXS5sZW5ndGg7CisKKyAgICByZXR1cm4ge2Zyb20sIHRvfTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggMWM3N2Q2ZWMx
M2EuLmZkODAzZTIxNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sCkBAIC0yNDksNiArMjQ5LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iQmFzZS9J
bWFnZVV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvTG9hZExv
Y2FsaXplZFN0cmluZ3MuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL01JTUVU
eXBlVXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQmFzZS9UZXh0VXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9VUkxVdGlsaXRpZXMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL1V0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvU2V0dGluZy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggZDhlOGRkYmZj
N2UuLmFiM2IzMDRmNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC5odG1sCkBAIC01MSw2ICs1MSw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvRE9N
VXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9FdmVudExpc3Rl
bmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9FdmVudExpc3RlbmVyU2V0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQmFzZS9UZXh0VXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9VUkxVdGlsaXRpZXMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL1V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkJhc2UvU2V0dGluZy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4
dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NT
U1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCmluZGV4IDg1ZTg0NWNkOGM2Li43MDIzMjMz
NTU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3Iu
anMKQEAgLTQwMSwyNSArNDAxLDI3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yCiAKICAgICBf
aGlnaGxpZ2h0TmV4dE5hbWVPclZhbHVlKGNvZGVNaXJyb3IsIGN1cnNvciwgdGV4dCkKICAgICB7
Ci0gICAgICAgIHZhciBuZXh0QW5jaG9yOwotICAgICAgICB2YXIgbmV4dEhlYWQ7Ci0KLSAgICAg
ICAgaWYgKHRoaXMuX3RleHRBdEN1cnNvcklzQ29tbWVudChjb2RlTWlycm9yLCBjdXJzb3IpKSB7
Ci0gICAgICAgICAgICBuZXh0QW5jaG9yID0gMDsKLSAgICAgICAgICAgIG5leHRIZWFkID0gdGV4
dC5sZW5ndGg7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgY29sb25JbmRleCA9
IHRleHQuaW5kZXhPZigiOiIpOwotICAgICAgICAgICAgdmFyIHN1YnN0cmluZ0luZGV4ID0gY29s
b25JbmRleCA+PSAwICYmIGN1cnNvci5jaCA+PSBjb2xvbkluZGV4ID8gY29sb25JbmRleCA6IDA7
CisgICAgICAgIGxldCByYW5nZSA9IHRoaXMuX3JhbmdlRm9yTmV4dE5hbWVPclZhbHVlKGNvZGVN
aXJyb3IsIGN1cnNvciwgdGV4dCk7CisgICAgICAgIGNvZGVNaXJyb3Iuc2V0U2VsZWN0aW9uKHJh
bmdlLmZyb20sIHJhbmdlLnRvKTsKKyAgICB9CiAKLSAgICAgICAgICAgIHZhciByZWdFeHAgPSAv
KD86W146O1xzXVxzKikrL2c7Ci0gICAgICAgICAgICByZWdFeHAubGFzdEluZGV4ID0gc3Vic3Ry
aW5nSW5kZXg7Ci0gICAgICAgICAgICB2YXIgbWF0Y2ggPSByZWdFeHAuZXhlYyh0ZXh0KTsKKyAg
ICBfcmFuZ2VGb3JOZXh0TmFtZU9yVmFsdWUoY29kZU1pcnJvciwgY3Vyc29yLCB0ZXh0KQorICAg
IHsKKyAgICAgICAgbGV0IG5leHRBbmNob3IgPSAwOworICAgICAgICBsZXQgbmV4dEhlYWQgPSAw
OwogCi0gICAgICAgICAgICBuZXh0QW5jaG9yID0gbWF0Y2guaW5kZXg7Ci0gICAgICAgICAgICBu
ZXh0SGVhZCA9IG5leHRBbmNob3IgKyBtYXRjaFswXS5sZW5ndGg7CisgICAgICAgIGlmICh0aGlz
Ll90ZXh0QXRDdXJzb3JJc0NvbW1lbnQoY29kZU1pcnJvciwgY3Vyc29yKSkKKyAgICAgICAgICAg
IG5leHRIZWFkID0gdGV4dC5sZW5ndGg7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGV0
IHJhbmdlID0gV2ViSW5zcGVjdG9yLnJhbmdlRm9yTmV4dENTU05hbWVPclZhbHVlKHRleHQsIGN1
cnNvci5jaCk7CisgICAgICAgICAgICBuZXh0QW5jaG9yID0gcmFuZ2UuZnJvbTsKKyAgICAgICAg
ICAgIG5leHRIZWFkID0gcmFuZ2UudG87CiAgICAgICAgIH0KIAotICAgICAgICBjb2RlTWlycm9y
LnNldFNlbGVjdGlvbih7bGluZTogY3Vyc29yLmxpbmUsIGNoOiBuZXh0QW5jaG9yfSwge2xpbmU6
IGN1cnNvci5saW5lLCBjaDogbmV4dEhlYWR9KTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgIGZyb206IHtsaW5lOiBjdXJzb3IubGluZSwgY2g6IG5leHRBbmNob3J9LAorICAgICAgICAg
ICAgdG86IHtsaW5lOiBjdXJzb3IubGluZSwgY2g6IG5leHRIZWFkfSwKKyAgICAgICAgfTsKICAg
ICB9CiAKICAgICBfaGFuZGxlTW91c2VEb3duKGV2ZW50KQpAQCAtNDU3LDQxICs0NTksMTcgQEAg
V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yID0gY2xhc3MgQ1NTU3R5
bGVEZWNsYXJhdGlvblRleHRFZGl0b3IKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29kZU1p
cnJvci5yZXBsYWNlUmFuZ2UocmVwbGFjZW1lbnQsIGN1cnNvcik7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIGlmIChXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc3R5bGVzU2Vs
ZWN0T25GaXJzdENsaWNrLnZhbHVlICYmIHRoaXMuX21vdXNlRG93bkN1cnNvclBvc2l0aW9uLnBy
ZXZpb3VzUmFuZ2UpIHsKLSAgICAgICAgICAgICAgICBsZXQgZnJvbSA9IHtsaW5lOiBjdXJzb3Iu
bGluZSwgY2g6IDB9OwotICAgICAgICAgICAgICAgIGxldCB0byA9IHtsaW5lOiBjdXJzb3IubGlu
ZSwgY2g6IDB9OwotCi0gICAgICAgICAgICAgICAgbGV0IGNvbG9uSW5kZXggPSBsaW5lLmluZGV4
T2YoIjoiKTsKLSAgICAgICAgICAgICAgICBpZiAoY29sb25JbmRleCA9PT0gLTEpIC8vIFNlbGVj
dCBlbnRpcmUgbGluZSBpZiB1bmFibGUgdG8gZmluZCBjb2xvbiwgc3VjaCBhcyBmb3IgYSBjb21t
ZW50LgotICAgICAgICAgICAgICAgICAgICBjb2xvbkluZGV4ID0gbGluZS5sZW5ndGg7Ci0KLSAg
ICAgICAgICAgICAgICBsZXQgdGV4dCA9IGxpbmU7Ci0KLSAgICAgICAgICAgICAgICBpZiAoY3Vy
c29yLmNoIDw9IGNvbG9uSW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHRleHQu
c3Vic3RyaW5nKDAsIGNvbG9uSW5kZXgpOwotCi0gICAgICAgICAgICAgICAgICAgIHRvLmNoICs9
IGNvbG9uSW5kZXg7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKGNvbG9uSW5kZXggKyAxKTsKLQotICAgICAgICAgICAg
ICAgICAgICBmcm9tLmNoICs9IGNvbG9uSW5kZXggKyAxOwotICAgICAgICAgICAgICAgICAgICB0
by5jaCArPSBsaW5lLmxlbmd0aDsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICBsZXQgbGVhZGluZ1NwYWNlc0NvdW50ID0gdGV4dC5tYXRjaCgvXlxzKi8pWzBdLmxlbmd0aDsK
LSAgICAgICAgICAgICAgICBsZXQgdHJhaWxpbmdOb25Xb3JkQ291bnQgPSB0ZXh0Lm1hdGNoKC9b
XHNcO10qJC8pWzBdLmxlbmd0aDsKLQotICAgICAgICAgICAgICAgIGZyb20uY2ggKz0gbGVhZGlu
Z1NwYWNlc0NvdW50OwotICAgICAgICAgICAgICAgIHRvLmNoIC09IHRyYWlsaW5nTm9uV29yZENv
dW50OworICAgICAgICAgICAgICAgIGxldCByYW5nZSA9IHRoaXMuX3JhbmdlRm9yTmV4dE5hbWVP
clZhbHVlKHRoaXMuX2NvZGVNaXJyb3IsIGN1cnNvciwgbGluZSk7CiAKICAgICAgICAgICAgICAg
ICBsZXQgY2xpY2tlZERpZmZlcmVudExpbmUgPSB0aGlzLl9tb3VzZURvd25DdXJzb3JQb3NpdGlv
bi5wcmV2aW91c1JhbmdlLmZyb20ubGluZSAhPT0gY3Vyc29yLmxpbmUgfHwgdGhpcy5fbW91c2VE
b3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZS50by5saW5lICE9PSBjdXJzb3IubGluZTsK
ICAgICAgICAgICAgICAgICBsZXQgY3Vyc29ySW5QcmV2aW91c1JhbmdlID0gY3Vyc29yLmNoID49
IHRoaXMuX21vdXNlRG93bkN1cnNvclBvc2l0aW9uLnByZXZpb3VzUmFuZ2UuZnJvbS5jaCAmJiBj
dXJzb3IuY2ggPD0gdGhpcy5fbW91c2VEb3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZS50
by5jaDsKLSAgICAgICAgICAgICAgICBsZXQgcHJldmlvdXNJbk5ld1JhbmdlID0gdGhpcy5fbW91
c2VEb3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZS5mcm9tLmNoID49IGZyb20uY2ggJiYg
dGhpcy5fbW91c2VEb3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZS50by5jaCA8PSB0by5j
aDsKKyAgICAgICAgICAgICAgICBsZXQgcHJldmlvdXNJbk5ld1JhbmdlID0gdGhpcy5fbW91c2VE
b3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZS5mcm9tLmNoID49IHJhbmdlLmZyb20uY2gg
JiYgdGhpcy5fbW91c2VEb3duQ3Vyc29yUG9zaXRpb24ucHJldmlvdXNSYW5nZS50by5jaCA8PSBy
YW5nZS50by5jaDsKIAogICAgICAgICAgICAgICAgIC8vIE9ubHkgc2VsZWN0IHRoZSBuZXcgcmFu
Z2UgaWYgdGhlIGVkaXRvciBpcyBub3QgZm9jdXNlZCwgYSBuZXcgbGluZSBpcyBiZWluZyBjbGlj
a2VkLAogICAgICAgICAgICAgICAgIC8vIG9yIHRoZSBuZXcgY3Vyc29yIHBvc2l0aW9uIGlzIG91
dHNpZGUgb2YgdGhlIHByZXZpb3VzIHJhbmdlIGFuZCB0aGUgcHJldmlvdXMgcmFuZ2UgaXMKICAg
ICAgICAgICAgICAgICAvLyBvdXRzaWRlIG9mIHRoZSBuZXcgcmFuZ2UgKG1lYW5pbmcgeW91J3Jl
IG5vdCBjbGlja2luZyBpbiB0aGUgc2FtZSBhcmVhIHR3aWNlKS4KICAgICAgICAgICAgICAgICBp
ZiAoIXRoaXMuX2NvZGVNaXJyb3IuaGFzRm9jdXMoKSB8fCBjbGlja2VkRGlmZmVyZW50TGluZSB8
fCAoIWN1cnNvckluUHJldmlvdXNSYW5nZSAmJiAhcHJldmlvdXNJbk5ld1JhbmdlKSkKLSAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fY29kZU1pcnJvci5zZXRTZWxlY3Rpb24oZnJvbSwgdG8pOwor
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb2RlTWlycm9yLnNldFNlbGVjdGlvbihyYW5nZS5m
cm9tLCByYW5nZS50byk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>