<?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>145200</bug_id>
          
          <creation_ts>2015-05-19 20:30:19 -0700</creation_ts>
          <short_desc>AX: AutoFill button is not accessible with VoiceOver</short_desc>
          <delta_ts>2016-08-19 15:09:34 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>155567</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>145220</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jake.nielsen.webkit</cc>
    
    <cc>jberlin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096144</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-19 20:30:19 -0700</bug_when>
    <thetext>We should make the AutoFill button accessible to people that use VoiceOver just as we do for other buttons, including the search field cancel button.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096145</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-19 20:30:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/20507480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096146</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-19 20:30:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/21032401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096147</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-19 20:30:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/21032404&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096149</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-19 20:33:28 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &lt;rdar://problem/21032401&gt;

(In reply to comment #3)
&gt; &lt;rdar://problem/21032404&gt;

Disregard these radars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096162</commentid>
    <comment_count>5</comment_count>
      <attachid>253426</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-19 21:48:41 -0700</bug_when>
    <thetext>Created attachment 253426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096172</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-19 22:07:47 -0700</bug_when>
    <thetext>I took inspiration from class AccessibilitySearchFieldCancelButton.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096175</commentid>
    <comment_count>7</comment_count>
      <attachid>253426</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-05-19 22:21:53 -0700</bug_when>
    <thetext>Comment on attachment 253426
Patch

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

thanks! looking good

&gt; Source/WebCore/accessibility/AccessibilityAutoFillButton.cpp:55
&gt; +    textOrder.append(AccessibilityText(accessibilityDescription(), AlternativeText));

It might be easier to set the label in the code that creates the object

    m_autoFillButton-&gt;setAttribute(aria_labelAttr, &quot;autofill&quot;);

then the existing text calculation methods can take over, since this is a AXRenderObject

&gt; Source/WebCore/accessibility/AccessibilityAutoFillButton.cpp:60
&gt; +    return accessibilityIsIgnoredByDefault();

this override might not be necessary. maybe you tested this and it was because something the AXRenderObject method return YES to ignore, but there&apos;s a chance that this would just work by default

&gt; Source/WebCore/accessibility/AccessibilityAutoFillButton.h:39
&gt; +    AccessibilityRole roleValue() const override { return ButtonRole; }

these three methods can be private</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096274</commentid>
    <comment_count>8</comment_count>
      <attachid>253444</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-20 10:22:08 -0700</bug_when>
    <thetext>Created attachment 253444
Patch

Updated patched based on Chris Fleizach&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096288</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-20 10:58:47 -0700</bug_when>
    <thetext>Committed r184645: &lt;http://trac.webkit.org/changeset/184645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096324</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-20 13:07:45 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 145220</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096327</commentid>
    <comment_count>11</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2015-05-20 13:10:39 -0700</bug_when>
    <thetext>As Alexey noticed, this broke the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096330</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-05-20 13:16:42 -0700</bug_when>
    <thetext>Dan, looks like you fixed the reason why EWS was red, but the landed patch broke the build in a different way: &lt;https://webkit-queues.appspot.com/results/4565750211674112&gt;.

Additionally, the new test fails on Windows: https://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/r184646%20(51955)/accessibility/input-auto-fill-button-diff.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096353</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-05-20 14:38:10 -0700</bug_when>
    <thetext>Committed r184660: &lt;http://trac.webkit.org/changeset/184660&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105074</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-06-26 15:20:46 -0700</bug_when>
    <thetext>Rolled out &lt;http://trac.webkit.org/changeset/184660&gt; in &lt;http://trac.webkit.org/changeset/186012&gt; because it caused a regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105075</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-06-26 15:21:06 -0700</bug_when>
    <thetext>Re-opening bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221499</commentid>
    <comment_count>16</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-08-19 15:09:34 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 155567 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253426</attachid>
            <date>2015-05-19 21:48:41 -0700</date>
            <delta_ts>2015-05-20 10:22:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145200-20150519214838.patch</filename>
            <type>text/plain</type>
            <size>20670</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThhOTcyODA0Y2FhMzMx
ZmI3NWVhYjNiODA2MGRiMDQyMzBiNGYyMS4uNjYxMTE5YjFjY2Q0NTliMDU2ZTFlNGExNzg2ZmY0
ZWI3MGJiZjAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE1LTA1LTE5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBBWDogQXV0b0ZpbGwgYnV0
dG9uIGlzIG5vdCBhY2Nlc3NpYmxlIHdpdGggVm9pY2VPdmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyMDAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzIwNTA3NDgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGluZnJhc3RydWN0dXJlIHNvIHRoYXQgVm9pY2VPdmVy
IGNhbiBpZGVudGlmeSBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgQXV0b0ZpbGwgYnV0dG9uLgorCisg
ICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvaW5wdXQtYXV0by1maWxsLWJ1dHRvbi5odG1sCisK
KyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6IEFkZCBwbGFjZWhv
bGRlciBsb2NhbGl6ZWQgc3RyaW5nIGZvciBBdXRvRmlsbCBidXR0b24uCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgZmlsZXMgQWNjZXNzaWJpbGl0eUF1
dG9GaWxsQnV0dG9uLntjcHAsIGh9LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJvbVJlbmRlcmVyKTogQ3JlYXRl
IEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbiBmb3IgYW4gQXV0b0ZpbGwgYnV0dG9uLgorICAg
ICAgICBBbHNvIHJlbW92ZSB1bm5lY2Vzc2FyeSBjb21tZW50IHRoYXQgcmVpdGVyYXRlcyB3aGF0
IHRoZSBjb2RlIGRvZXMuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXV0
b0ZpbGxCdXR0b24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlB
dXRvRmlsbEJ1dHRvbjo6Y3JlYXRlKTogVHVybnMgYXJvdW5kIGFuZCBjYWxscyBBY2Nlc3NpYmls
aXR5QXV0b0ZpbGxCdXR0b246OkFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbigpLgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uOjpBY2Nlc3NpYmlsaXR5QXV0
b0ZpbGxCdXR0b24pOiBDYWxsIHRoZSBiYXNlIGNsYXNzCisgICAgICAgIGNvbnN0cnVjdG9yIHBh
c3NpbmcgdGhlIHNwZWNpZmllZCBSZW5kZXJPYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5QXV0b0ZpbGxCdXR0b246OmFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbik6IFR1cm5z
IGFyb3VuZCBhbmQgY2FsbHMKKyAgICAgICAgQWNjZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uOjph
Y2Nlc3NpYmlsaXR5VGV4dCgpLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUF1dG9G
aWxsQnV0dG9uOjphY2Nlc3NpYmlsaXR5VGV4dCk6IFJldHVybnMgdGhlIGFjY2Vzc2liaWxpdHkg
dGV4dAorICAgICAgICBmb3IgdGhlIEF1dG9GaWxsIGJ1dHRvbi4KKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbjo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQpOiBJZ25vcmUgdGhlIEF1dG9GaWxsCisgICAgICAgIGJ1dHRvbiBieSBkZWZhdWx0LgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uLmg6IEFkZGVk
LgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpp
c0F1dG9GaWxsQnV0dG9uRWxlbWVudCk6IEFkZGVkLiBSZXR1cm5zIGZhbHNlIGJ5IGRlZmF1bHQu
IFdlIG92ZXJyaWRlCisgICAgICAgIHRoaXMgZnVuY3Rpb24gaW4gY2xhc3MgQXV0b0ZpbGxCdXR0
b25FbGVtZW50LgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9BdXRvRmlsbEJ1dHRvbkVsZW1lbnQuaDogT3ZlcnJpZGUgRWxlbWVu
dDo6aXNBdXRvRmlsbEJ1dHRvbkVsZW1lbnQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYQXV0b0ZpbGxCdXR0b25UZXh0KTog
QWRkZWQ7IHJldHVybnMgdGhlIGxvY2FsaXplZCBzdHJpbmcgZm9yIHRoZSBBdXRvRmlsbCBidXR0
b24uCisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorCisyMDE1LTA1LTE5
ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKwogICAgICAgICBVcGRhdGUgQXV0
b2ZpbGwgYnV0dG9uIGljb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NTE5MQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAxNzg5NDI+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3Mg
Yi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXgg
OWRhOGM3ZGY1OTgzOTE4NDk1N2Q4ODM3N2U1ZWU1MmYzYWE4ZmE3MC4uMDI4MTE0MjkyOWEzOTI0
MGRmNWFkZjlmM2U3M2MwYmU1OWUyMzcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRW5n
bGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xp
c2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtNzYwLDYgKzc2MCw5IEBACiAvKiBhY2Nl
c3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZvciBhIHNlYXJjaCBmaWVsZCBjYW5jZWwgYnV0dG9uICov
CiAiY2FuY2VsIiA9ICJjYW5jZWwiOwogCisvKiBhY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZv
ciBhIHBhc3N3b3JkIGZpZWxkIEF1dG9GaWxsIGJ1dHRvbiAqLworImF1dG9maWxsIiA9ICJhdXRv
ZmlsbCI7CisKIC8qIFZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVu
IGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxp
dHkgKi8KICJjaGVjayIgPSAiY2hlY2siOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjA4NWEwNzA3MmQ2MDk4ZDE3OTQ0MDNl
NTBmMWU0MzcwYWQ2YThkMS4uZDgxNTIxODU4NGNhYTc5NzRlOWJjNzVjNGQ4Yzk1MzM2YWE5MDA0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNTg5Miw2ICs1ODkyLDggQEAKIAkJQ0U5NTIwOEExODExQjQ3NTAwN0E1MzkyIC8q
IFdlYlNhZmVJbmNyZW1lbnRhbFN3ZWVwZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQzRDQjFEMTYxQTEzMTIwMEQyMTREQSAvKiBXZWJTYWZl
SW5jcmVtZW50YWxTd2VlcGVySU9TLmggKi87IH07CiAJCUNFQzMzN0FEMUE0NjA3MUYwMDlCODUy
MyAvKiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRUMzMzdBQzFBNDYwNzFGMDA5Qjg1MjMgLyogU2VydmVyc1NQSS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNFQzMzN0FGMUE0NjA4
NkQwMDlCODUyMyAvKiBHcmFwaGljc1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUMzMzdBRTFBNDYwODZEMDA5Qjg1MjMgLyogR3Jh
cGhpY3NTZXJ2aWNlc1NQSS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUNFQzdFRjdDMUIwQzIzMUEwMEQ2RDkwMCAvKiBBY2Nlc3NpYmlsaXR5QXV0
b0ZpbGxCdXR0b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0VDN0VGN0ExQjBDMjMxQTAwRDZEOTAwIC8qIEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1
dHRvbi5jcHAgKi87IH07CisJCUNFQzdFRjdEMUIwQzIzMUEwMEQ2RDkwMCAvKiBBY2Nlc3NpYmls
aXR5QXV0b0ZpbGxCdXR0b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFQzdFRjdCMUIwQzIzMUEwMEQ2RDkwMCAvKiBBY2Nlc3NpYmlsaXR5QXV0b0Zp
bGxCdXR0b24uaCAqLzsgfTsKIAkJQ0VDQURGQzYxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlv
bkFsdGVybmF0aXZlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENFQ0FERkMyMTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5j
cHAgKi87IH07CiAJCUNFQ0FERkM3MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5h
dGl2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VD
QURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0VDQURGQzgxNTM3NzhG
RjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3Rh
dGlvbkNvbW1hbmQuY3BwICovOyB9OwpAQCAtMTM0OTksNiArMTM1MDEsOCBAQAogCQlDRTgyNDVF
RjE5QjY3MUJBMDBBQzAxMjIgLyogQ0ZOZXR3b3JrQ29ubmVjdGlvbkNhY2hlU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENGTmV0d29ya0Nvbm5lY3Rpb25DYWNoZVNQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUMzMzdBQzFBNDYwNzFGMDA5Qjg1MjMg
LyogU2VydmVyc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2ZXJz
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQzMzN0FFMUE0NjA4NkQwMDlC
ODUyMyAvKiBHcmFwaGljc1NlcnZpY2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdyYXBoaWNzU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0VDN0VGN0ExQjBDMjMxQTAwRDZEOTAwIC8qIEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5
QXV0b0ZpbGxCdXR0b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRUM3RUY3
QjFCMEMyMzFBMDBENkQ5MDAgLyogQWNjZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUNBREZDMjE1Mzc3OEZGMDBFMzcwNjgg
LyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4
IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGljdGF0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTYzNCw2ICsxNTYzOCw4IEBACiAJCQkJMjlBODEyMTAwRkJCOUMxRDAwNTEwMjkzIC8qIEFj
Y2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCAqLywKIAkJCQkyOTgxQ0E5RjEzMTgyMkVDMDBEMTJG
MkEgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcCAqLywKIAkJCQkyOUE4MTIxNTBGQkI5
QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmggKi8sCisJCQkJQ0VDN0VG
N0ExQjBDMjMxQTAwRDZEOTAwIC8qIEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbi5jcHAgKi8s
CisJCQkJQ0VDN0VGN0IxQjBDMjMxQTAwRDZEOTAwIC8qIEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1
dHRvbi5oICovLAogCQkJCTI5ODFDQUEwMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5
SW1hZ2VNYXBMaW5rLmNwcCAqLywKIAkJCQkyOUE4MTIxRDBGQkI5QzFEMDA1MTAyOTMgLyogQWNj
ZXNzaWJpbGl0eUltYWdlTWFwTGluay5oICovLAogCQkJCTI5ODFDQUExMTMxODIyRUMwMEQxMkYy
QSAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5jcHAgKi8sCkBAIC0yMzcxMSw2ICsyMzcxNyw3IEBACiAJ
CQkJNDFFMUIxRDEwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyOUE4MTIyRTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFH
cmlkQ2VsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlBODEyMzMwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0VDN0VGN0Qx
QjBDMjMxQTAwRDZEOTAwIC8qIEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMjlBODEyM0IwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlJbWFn
ZU1hcExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QTgxMjJDMEZCQjlDMUQwMDUxMDI5MyAv
KiBBY2Nlc3NpYmlsaXR5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlBODEyNDMwRkJCOUMx
RDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlMaXN0Qm94LmggaW4gSGVhZGVycyAqLywKQEAgLTI3
NTA3LDYgKzI3NTE0LDcgQEAKIAkJCQkzN0Y1N0FCOTFBNTA3MjY5MDA4NzZGOTggLyogQWNjZXNz
aWJpbGl0eUFSSUFHcmlkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3RjU3QUJBMUE1MDcyNkYw
MDg3NkY5OCAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3RjU3QUJCMUE1MDcyNzMwMDg3NkY5OCAvKiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0VDN0VGN0MxQjBDMjMxQTAwRDZEOTAwIC8qIEFjY2Vz
c2liaWxpdHlBdXRvRmlsbEJ1dHRvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0Y1N0FCQzFB
NTA3Mjc3MDA4NzZGOTggLyogQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzN0Y1N0FCRDFBNTA3MjdBMDA4NzZGOTggLyogQWNjZXNzaWJpbGl0eUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdGNTdBQkUxQTUwNzI3RTAwODc2Rjk4IC8qIEFjY2Vz
c2liaWxpdHlMaXN0Qm94LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggNDNiOWFiYjIwZWZjOTI1NmZiZTVj
ZjExMjYzMTdiMGMzNDE1MjYzNC4uZDE5Y2JiZWI4NTI2N2U2NGMxOTZmMTY4NmY2MWRkNjFhNzMy
MmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmgi
CiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIgogI2luY2x1ZGUgIkFjY2Vz
c2liaWxpdHlBUklBR3JpZFJvdy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1
dHRvbi5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaCIKICNpbmNsdWRl
ICJBY2Nlc3NpYmlsaXR5TGlzdC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlMaXN0Qm94Lmgi
CkBAIC0yOTgsMTAgKzI5OSwxMiBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNy
ZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIGlmIChpczxSZW5k
ZXJTVkdSb290PigqcmVuZGVyZXIpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVNWR1Jv
b3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAgICAgCi0gICAgLy8gU2VhcmNoIGZpZWxkIGJ1dHRvbnMK
ICAgICBpZiAoaXM8RWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmlz
U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5U2VhcmNoRmllbGRDYW5jZWxCdXR0b246OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgCisK
KyAgICBpZiAoaXM8RWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmlz
QXV0b0ZpbGxCdXR0b25FbGVtZW50KCkpCisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QXV0
b0ZpbGxCdXR0b246OmNyZWF0ZSgqcmVuZGVyZXIpOworCiAgICAgaWYgKGlzPFJlbmRlckJveE1v
ZGVsT2JqZWN0PigqcmVuZGVyZXIpKSB7CiAgICAgICAgIFJlbmRlckJveE1vZGVsT2JqZWN0JiBj
c3NCb3ggPSBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4oKnJlbmRlcmVyKTsKICAgICAg
ICAgaWYgKGlzPFJlbmRlckxpc3RCb3g+KGNzc0JveCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbi5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmY4OTA5ZmI1MzAwZTVmZjIzY2NmYTc5M2M5NjE2Nzc4MGJkNmEwNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUF1dG9GaWxsQnV0dG9uLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uLmgiCisKKyNpbmNs
dWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbj4gQWNj
ZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uOjpjcmVhdGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBY2Nlc3NpYmlsaXR5QXV0b0ZpbGxCdXR0b24o
cmVuZGVyZXIpKTsKK30KKworQWNjZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uOjpBY2Nlc3NpYmls
aXR5QXV0b0ZpbGxCdXR0b24oUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKKyAgICA6IEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QoJnJlbmRlcmVyKQoreworfQorCitTdHJpbmcgQWNjZXNzaWJpbGl0
eUF1dG9GaWxsQnV0dG9uOjphY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdAoreworI2lm
IFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gU3RyaW5nKCk7CisjZWxzZQorICAgIHJldHVybiBB
WEF1dG9GaWxsQnV0dG9uVGV4dCgpOworI2VuZGlmCit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUF1
dG9GaWxsQnV0dG9uOjphY2Nlc3NpYmlsaXR5VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+
JiB0ZXh0T3JkZXIpCit7CisgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4dChh
Y2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSwgQWx0ZXJuYXRpdmVUZXh0KSk7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRCeURlZmF1bHQo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QXV0b0ZpbGxCdXR0b24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUF1dG9GaWxsQnV0dG9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODY4MWYxMDI1YTU2M2I2OWE1MjFhYjMzNjk3YzRiN2Q4OGMyNTZiMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUF1dG9G
aWxsQnV0dG9uLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBY2Nlc3NpYmlsaXR5
QXV0b0ZpbGxCdXR0b25faAorI2RlZmluZSBBY2Nlc3NpYmlsaXR5QXV0b0ZpbGxCdXR0b25faAor
CisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEFjY2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbiBmaW5hbCA6IHB1Ymxp
YyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEFj
Y2Vzc2liaWxpdHlBdXRvRmlsbEJ1dHRvbj4gY3JlYXRlKFJlbmRlck9iamVjdCYpOworCisgICAg
U3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZv
aWQgYWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIG92ZXJyaWRl
OworICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIEJ1dHRvblJvbGU7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5
QXV0b0ZpbGxCdXR0b24oUmVuZGVyT2JqZWN0Jik7CisKKyAgICBib29sIGNvbXB1dGVBY2Nlc3Np
YmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5QXV0b0ZpbGxCdXR0b25faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKaW5kZXggNTQ3NGI3MWI0OGI2MjFjMWMzYzE2NGM0NmE3MWFjZTI3NTAyMjNkNC4u
YWMyNWRmZGQ5N2RiMzM4YmVhNGNlY2Q3MTViZWQ5MzVlNzE2NjM4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCkBAIC0zOTUsNiArMzk1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc091dE9m
UmFuZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1l
RWxlbWVudEJhc2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c1NlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIGlzQXV0b0ZpbGxCdXR0b25FbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgp
IGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHAKaW5kZXggY2JkNDhkOThhZTEyOTNhNTY0ZWUwZTkxZDZlMGQzYWQ4M2U0OTI1MC4uZTRk
YTVkZTIxODE1NzQyOGFlNGQyMTQwNWE1YzRmMmNkNGM0NDFlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJL
ZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUg
Ik5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0F1dG9GaWxsQnV0dG9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQXV0
b0ZpbGxCdXR0b25FbGVtZW50LmgKaW5kZXggZjQxNjg1M2E4YzEyODE2NTEzMGNmYjVlMTM2Yzc2
ZWM0ZGE4NmI4Yy4uYjRkOWVkZjI4MTE5N2NkNmExMDdjMmJhM2MwYTI0ZTQ1OTgyMGJhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQXV0b0ZpbGxCdXR0b25FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQXV0b0ZpbGxCdXR0b25FbGVtZW50
LmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFJlZjxBdXRvRmlsbEJ1
dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIEF1dG9GaWxsQnV0dG9uT3duZXImKTsKIAor
ICAgIGJvb2wgaXNBdXRvRmlsbEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQXV0b0ZpbGxCdXR0b25FbGVtZW50
KERvY3VtZW50JiwgQXV0b0ZpbGxCdXR0b25Pd25lciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IDkzZDJlOTA1MzIwMzAzMTA2ODYwOWNh
M2MzYjViYzdmNWNhMTkyYmUuLjU3ZjQ5YzUyM2NhMjZkNzYxM2U4M2I3OTkyMDM3YWE2YTQ4MjE1
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBA
IC02MDQsNiArNjA0LDExIEBAIFN0cmluZyBBWFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uVGV4dCgp
CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImNhbmNlbCIsICJhY2Nlc3NpYmlsaXR5IGRlc2Ny
aXB0aW9uIGZvciBhIHNlYXJjaCBmaWVsZCBjYW5jZWwgYnV0dG9uIik7CiB9CiAKK1N0cmluZyBB
WEF1dG9GaWxsQnV0dG9uVGV4dCgpCit7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImF1dG9m
aWxsIiwgImFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24gZm9yIGEgcGFzc3dvcmQgZmllbGQgQXV0
b0ZpbGwgYnV0dG9uIik7Cit9CisKIFN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKQogewogICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0
aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vz
c2liaWxpdHkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApp
bmRleCAwOWEzODAwMzQzN2FkYWEzMDRkYzU4MTA4N2E1N2Y2MDY1YjBhMGFlLi5lODkzYmM3YzFj
MTU2MTY1OTBiNjQ4ZjIzZDMyMGI2YWMyY2UxZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xNjIsNyArMTYyLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIFN0cmluZyBBWEZvb3RlclJvbGVEZXNjcmlwdGlvblRleHQoKTsKICAgICBTdHJp
bmcgQVhGaWxlVXBsb2FkQnV0dG9uVGV4dCgpOwogICAgIFN0cmluZyBBWFNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uVGV4dCgpOwotICAgIAorICAgIFN0cmluZyBBWEF1dG9GaWxsQnV0dG9uVGV4dCgp
OworCiAgICAgU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpOwogICAgIFN0cmluZyBBWFJhZGlv
QnV0dG9uQWN0aW9uVmVyYigpOwogICAgIFN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZGFkNzk5NjIxNzVkYWFmMGM1YWNiZjM3MzAxNDc0NDk3YTliNTY2Li4wODRjYzFm
ZmNlMTM2Y2Y0MjNmMTA1ZTczZjRhNDg3YTVhZGQ0MmFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAK
IDIwMTUtMDUtMTkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCisgICAgICAg
IEFYOiBBdXRvRmlsbCBidXR0b24gaXMgbm90IGFjY2Vzc2libGUgd2l0aCBWb2ljZU92ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTIwMAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjA1MDc0ODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IHRoZXJlIGlzIGFuIGFjY2Vzc2liaWxp
dHkgZWxlbWVudCBmb3IgdGhlIEF1dG9GaWxsIGJ1dHRvbi4KKworICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvaW5wdXQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaW5wdXQtYXV0by1maWxsLWJ1dHRvbi5odG1sOiBBZGRlZC4KKwor
MjAxNS0wNS0xOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAg
VXBkYXRlIEF1dG9maWxsIGJ1dHRvbiBpY29uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUxOTEKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIwMTc4
OTQyPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbnB1dC1hdXRvLWZp
bGwtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW5wdXQt
YXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhjNWQzYTk4YWE5YzU4
YzUzNTcwYzM4NTE4MmFkZjI3MDZjZjllZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaW5wdXQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZXJlIGV4aXN0cyBhbiBhY2Nlc3NpYmlsaXR5
IGVsZW1lbnQgZm9yIHRoZSBBdXRvRmlsbCBidXR0b24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgicGFzc3dvcmQiKS5jaGlsZEF0SW5kZXgoMCkuZGVzY3JpcHRpb24gaXMgIkFYRGVzY3Jp
cHRpb246IGF1dG9maWxsIgorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoInBhc3N3b3JkIikuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMgIkFYUm9sZTog
QVhCdXR0b24iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbnB1dC1hdXRvLWZp
bGwtYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lucHV0LWF1dG8tZmls
bC1idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTdlMWEzMTRkYTRjNWZjMzk3MmQ1YzdlYWVhN2E5
YzI3ZjJlY2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9p
bnB1dC1hdXRvLWZpbGwtYnV0dG9uLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJwYXNzd29yZCIg
aWQ9InBhc3N3b3JkIiBhdXRvZm9jdXM+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgdGhhdCB0aGVyZSBleGlzdHMgYW4gYWNjZXNzaWJpbGl0eSBlbGVtZW50IGZvciB0aGUgQXV0
b0ZpbGwgYnV0dG9uLiIpOworCitpZiAoIXdpbmRvdy5pbnRlcm5hbHMgfHwgIXdpbmRvdy5hY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcikKKyAgICB0ZXN0RmFpbGVkKCJZb3UgbXVzdCBydW4gdGhpcyB0
ZXN0IGluIHRoZSB0ZXN0IHRvb2wgYW5kIGhhdmUgaW1wbGVtZW50ZWQgd2luZG93LmludGVybmFs
cyBhbmQgd2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyLiIpOworZWxzZSB7CisgICAgaW50
ZXJuYWxzLnNldFNob3dBdXRvRmlsbEJ1dHRvbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFz
c3dvcmQiKSwgdHJ1ZSk7CisKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2FjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgicGFzc3dvcmQiKS5jaGlsZEF0SW5k
ZXgoMCkuZGVzY3JpcHRpb24nLCAiQVhEZXNjcmlwdGlvbjogYXV0b2ZpbGwiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVt
ZW50QnlJZCgicGFzc3dvcmQiKS5jaGlsZEF0SW5kZXgoMCkucm9sZScsICJBWFJvbGU6IEFYQnV0
dG9uIik7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253444</attachid>
            <date>2015-05-20 10:22:08 -0700</date>
            <delta_ts>2015-05-20 10:23:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145200-20150520102204.patch</filename>
            <type>text/plain</type>
            <size>7100</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNThhOTcyODA0Y2FhMzMx
ZmI3NWVhYjNiODA2MGRiMDQyMzBiNGYyMS4uYjM5MDY2N2MyZDczY2QyMTRlMDhiN2Q5ZTE2NzQy
ZDVmYzI4NDY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA1LTIwICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogQXV0b0ZpbGwgYnV0
dG9uIGlzIG5vdCBhY2Nlc3NpYmxlIHdpdGggVm9pY2VPdmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyMDAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzIwNTA3NDgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBBUklBIGxhYmVsIGFuZCByb2xlIGF0dHJpYnV0ZXMgdG8gdGhlIEF1dG9GaWxs
IGJ1dHRvbiBtYXJrdXAgc28gdGhhdCBWb2ljZU92ZXIKKyAgICAgICAgY2FuIGlkZW50aWZ5IGFu
ZCBpbnRlcmFjdCB3aXRoIGl0LgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvaW5wdXQt
YXV0by1maWxsLWJ1dHRvbi5odG1sCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3M6IEFkZCBwbGFjZWhvbGRlciBsb2NhbGl6ZWQgc3RyaW5nIGZvciBBdXRvRmls
bCBidXR0b24uCisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVBdXRvRmlsbEJ1dHRvbik6IEFk
ZCBBUklBIGxhYmVsIGFuZCByb2xlIGF0dHJpYnV0ZXMuCisgICAgICAgICogcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWEF1dG9GaWxsQnV0dG9uVGV4
dCk6IEFkZGVkOyByZXR1cm5zIHRoZSBsb2NhbGl6ZWQgc3RyaW5nIGZvciB0aGUgQXV0b0ZpbGwg
YnV0dG9uLgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKwogMjAxNS0w
NS0xOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IEF1dG9maWxsIGJ1dHRvbiBpY29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNo
Lmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9q
L0xvY2FsaXphYmxlLnN0cmluZ3MKaW5kZXggOWRhOGM3ZGY1OTgzOTE4NDk1N2Q4ODM3N2U1ZWU1
MmYzYWE4ZmE3MC4uMDI4MTE0MjkyOWEzOTI0MGRmNWFkZjlmM2U3M2MwYmU1OWUyMzcyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwpA
QCAtNzYwLDYgKzc2MCw5IEBACiAvKiBhY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZvciBhIHNl
YXJjaCBmaWVsZCBjYW5jZWwgYnV0dG9uICovCiAiY2FuY2VsIiA9ICJjYW5jZWwiOwogCisvKiBh
Y2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZvciBhIHBhc3N3b3JkIGZpZWxkIEF1dG9GaWxsIGJ1
dHRvbiAqLworImF1dG9maWxsIiA9ICJhdXRvZmlsbCI7CisKIC8qIFZlcmIgc3RhdGluZyB0aGUg
YWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGFuIHVuY2hlY2tlZCBjaGVja2JveCBpcyBjbGlj
a2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkgKi8KICJjaGVjayIgPSAiY2hlY2siOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggY2JkNDhkOThh
ZTEyOTNhNTY0ZWUwZTkxZDZlMGQzYWQ4M2U0OTI1MC4uNmM3MWFlNzc3YzdmOTEzY2Q5OTdkMzM3
YTA1NzQ2NDU2NDVkZGQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5j
bHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKQEAg
LTYwMiw2ICs2MDMsOCBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlQXV0b0ZpbGxC
dXR0b24oKQogCiAgICAgbV9hdXRvRmlsbEJ1dHRvbiA9IEF1dG9GaWxsQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS5kb2N1bWVudCgpLCAqdGhpcyk7CiAgICAgbV9hdXRvRmlsbEJ1dHRv
bi0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1hdXRvLWZpbGwtYnV0dG9uIiwgQXRv
bWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIG1fYXV0b0ZpbGxCdXR0b24t
PnNldEF0dHJpYnV0ZShhcmlhX2xhYmVsQXR0ciwgQXRvbWljU3RyaW5nKEFYQXV0b0ZpbGxCdXR0
b25UZXh0KCkpKTsKKyAgICBtX2F1dG9GaWxsQnV0dG9uLT5zZXRBdHRyaWJ1dGUocm9sZUF0dHIs
IEF0b21pY1N0cmluZygiYnV0dG9uIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogICAgIG1fY29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2F1dG9GaWxsQnV0dG9uLCBJR05P
UkVfRVhDRVBUSU9OKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcAppbmRleCA5M2QyZTkwNTMyMDMwMzEwNjg2MDljYTNjM2I1YmM3ZjVjYTE5MmJl
Li41N2Y0OWM1MjNjYTI2ZDc2MTNlODNiNzk5MjAzN2FhNmE0ODIxNTMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtNjA0LDYgKzYwNCwxMSBA
QCBTdHJpbmcgQVhTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblRleHQoKQogICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJjYW5jZWwiLCAiYWNjZXNzaWJpbGl0eSBkZXNjcmlwdGlvbiBmb3IgYSBzZWFy
Y2ggZmllbGQgY2FuY2VsIGJ1dHRvbiIpOwogfQogCitTdHJpbmcgQVhBdXRvRmlsbEJ1dHRvblRl
eHQoKQoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhdXRvZmlsbCIsICJhY2Nlc3NpYmls
aXR5IGRlc2NyaXB0aW9uIGZvciBhIHBhc3N3b3JkIGZpZWxkIEF1dG9GaWxsIGJ1dHRvbiIpOwor
fQorCiBTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCkKIHsKICAgICByZXR1cm4gV0VCX1VJX1NU
UklORygicHJlc3MiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdo
ZW4gYSBidXR0b24gaXMgcHJlc3NlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggMDlhMzgwMDM0Mzdh
ZGFhMzA0ZGM1ODEwODdhNTdmNjA2NWIwYTBhZS4uZTg5M2JjN2MxYzE1NjE2NTkwYjY0OGYyM2Qz
MjBiNmFjMmNlMWRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuaApAQCAtMTYyLDcgKzE2Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcg
QVhGb290ZXJSb2xlRGVzY3JpcHRpb25UZXh0KCk7CiAgICAgU3RyaW5nIEFYRmlsZVVwbG9hZEJ1
dHRvblRleHQoKTsKICAgICBTdHJpbmcgQVhTZWFyY2hGaWVsZENhbmNlbEJ1dHRvblRleHQoKTsK
LSAgICAKKyAgICBTdHJpbmcgQVhBdXRvRmlsbEJ1dHRvblRleHQoKTsKKwogICAgIFN0cmluZyBB
WEJ1dHRvbkFjdGlvblZlcmIoKTsKICAgICBTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIo
KTsKICAgICBTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGRhZDc5OTYy
MTc1ZGFhZjBjNWFjYmYzNzMwMTQ3NDQ5N2E5YjU2Ni4uMzQ1Y2JmMmYzMzZiNjQ0YmVmMjA2NjA1
MWQwYjEwZmE4NTQ0OWIzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA1LTIwICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogQXV0b0ZpbGwgYnV0
dG9uIGlzIG5vdCBhY2Nlc3NpYmxlIHdpdGggVm9pY2VPdmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUyMDAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzIwNTA3NDgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3QgdGhhdCB0aGVyZSBpcyBhbiBhY2Nlc3NpYmlsaXR5IGVsZW1lbnQgZm9yIHRo
ZSBBdXRvRmlsbCBidXR0b24uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lucHV0LWF1dG8t
ZmlsbC1idXR0b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L2lucHV0LWF1dG8tZmlsbC1idXR0b24uaHRtbDogQWRkZWQuCisKIDIwMTUtMDUtMTkgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBBdXRvZmlsbCBi
dXR0b24gaWNvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbnB1dC1h
dXRvLWZpbGwtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
aW5wdXQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhjNWQzYTk4
YWE5YzU4YzUzNTcwYzM4NTE4MmFkZjI3MDZjZjllZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaW5wdXQtYXV0by1maWxsLWJ1dHRvbi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZXJlIGV4aXN0cyBhbiBhY2Nlc3Np
YmlsaXR5IGVsZW1lbnQgZm9yIHRoZSBBdXRvRmlsbCBidXR0b24uCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgicGFzc3dvcmQiKS5jaGlsZEF0SW5kZXgoMCkuZGVzY3JpcHRpb24gaXMgIkFY
RGVzY3JpcHRpb246IGF1dG9maWxsIgorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nl
c3NpYmxlRWxlbWVudEJ5SWQoInBhc3N3b3JkIikuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMgIkFY
Um9sZTogQVhCdXR0b24iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pbnB1dC1h
dXRvLWZpbGwtYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lucHV0LWF1
dG8tZmlsbC1idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzZhNzIyOWU4NmRiZTIzNjAzZTM3NDJk
NWJkNWE5ZGRlNTFhMWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9pbnB1dC1hdXRvLWZpbGwtYnV0dG9uLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJwYXNz
d29yZCIgaWQ9InBhc3N3b3JkIj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0
aGF0IHRoZXJlIGV4aXN0cyBhbiBhY2Nlc3NpYmlsaXR5IGVsZW1lbnQgZm9yIHRoZSBBdXRvRmls
bCBidXR0b24uIik7CisKK2lmICghd2luZG93LmludGVybmFscyB8fCAhd2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKQorICAgIHRlc3RGYWlsZWQoIllvdSBtdXN0IHJ1biB0aGlzIHRlc3Qg
aW4gdGhlIHRlc3QgdG9vbCBhbmQgaGF2ZSBpbXBsZW1lbnRlZCB3aW5kb3cuaW50ZXJuYWxzIGFu
ZCB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuIik7CitlbHNlIHsKKyAgICBpbnRlcm5h
bHMuc2V0U2hvd0F1dG9GaWxsQnV0dG9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXNzd29y
ZCIpLCB0cnVlKTsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJwYXNzd29yZCIpLmNoaWxkQXRJbmRleCgw
KS5kZXNjcmlwdGlvbicsICJBWERlc2NyaXB0aW9uOiBhdXRvZmlsbCIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCJwYXNzd29yZCIpLmNoaWxkQXRJbmRleCgwKS5yb2xlJywgIkFYUm9sZTogQVhCdXR0b24i
KTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="278364"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>