<?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>75059</bug_id>
          
          <creation_ts>2011-12-21 17:51:14 -0800</creation_ts>
          <short_desc>AX: attributed strings do not include AXHeading information when a link is contained within the heading</short_desc>
          <delta_ts>2011-12-22 10:03:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>bdakin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>525893</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-21 17:51:14 -0800</bug_when>
    <thetext>When asking for an attributed string, the heading level is not included if there is a link inside the heading like

&lt;h1&gt;&lt;a href=&quot;#&quot;&gt;link&lt;/a&gt;&lt;/h1&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526067</commentid>
    <comment_count>1</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-21 23:49:08 -0800</bug_when>
    <thetext>rdar://10614265</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526068</commentid>
    <comment_count>2</comment_count>
      <attachid>120280</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-21 23:49:40 -0800</bug_when>
    <thetext>Created attachment 120280
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526069</commentid>
    <comment_count>3</comment_count>
      <attachid>120281</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-21 23:51:46 -0800</bug_when>
    <thetext>Created attachment 120281
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526070</commentid>
    <comment_count>4</comment_count>
      <attachid>120282</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-21 23:53:16 -0800</bug_when>
    <thetext>Created attachment 120282
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526333</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-12-22 10:03:48 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/103552</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120280</attachid>
            <date>2011-12-21 23:49:40 -0800</date>
            <delta_ts>2011-12-21 23:51:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>14987</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzQ5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTIxICBDaHJpcyBG
bGVpemFjaDIgIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBhdHRyaWJ1dGVk
IHN0cmluZ3MgZG8gbm90IGluY2x1ZGUgQVhIZWFkaW5nIGluZm9ybWF0aW9uIHdoZW4gYSBsaW5r
IGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGhlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQW4gYXR0cmlidXRlZCBzdHJpbmcgc2hvdWxkIGNvbnRh
aW4gdGhlIGhlYWRpbmcgbGV2ZWwgb2YgYW4gYW5jZXN0b3Igbm9kZSBpZiBpdCBleGlzdHMuIAor
ICAgICAgICBUaGlzIGNoYW5nZSBhbGxvd3MgdGhlIGFuY2VzdG9yIHRvIGJlIGhpZ2hlciB1cCBp
biB0aGUgaGllcmFyY2h5IHRoYW4ganVzdCB0aGUgZGlyZWN0IHBhcmVudC4KKworICAgICAgICBU
ZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJpYnV0
ZWQtc3RyaW5nLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyLm1tOgorICAgICAgICAoQVhBdHRyaWJ1dGVTdHJpbmdTZXRIZWFk
aW5nTGV2ZWwpOgorCiAyMDExLTEyLTIxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIH5DU1NQYXJzZXJTZWxlY3RvciB1c2UgVmVjdG9yPE93blB0cj4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCShyZXZpc2lvbiAxMDM0ODUpCisr
KyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNzMxLDggKzczMSwxNSBAQAogICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKICAgICAKKyAgICAvLyBTb21ldGltZXMgdGhlcmUg
YXJlIG9iamVjdHMgYmV0d2VlbiB0aGUgdGV4dCBhbmQgdGhlIGhlYWRpbmcuIAorICAgIC8vIElu
IHRob3NlIGNhc2VzIHRoZSBwYXJlbnQgaGllcmFyY2h5IHNob3VsZCBiZSBxdWVyaWVkIHRvIHNl
ZSBpZiB0aGVyZSBpcyBhIGhlYWRpbmcgbGV2ZWwuCisgICAgaW50IHBhcmVudEhlYWRpbmdMZXZl
bCA9IDA7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0ID0gcmVuZGVyZXIt
PmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUocmVuZGVyZXItPnBhcmVu
dCgpKTsKLSAgICBpbnQgcGFyZW50SGVhZGluZ0xldmVsID0gcGFyZW50T2JqZWN0LT5oZWFkaW5n
TGV2ZWwoKTsKKyAgICBmb3IgKDsgcGFyZW50T2JqZWN0OyBwYXJlbnRPYmplY3QgPSBwYXJlbnRP
YmplY3QtPnBhcmVudE9iamVjdCgpKSB7CisgICAgICAgIHBhcmVudEhlYWRpbmdMZXZlbCA9IHBh
cmVudE9iamVjdC0+aGVhZGluZ0xldmVsKCk7CisgICAgICAgIGlmIChwYXJlbnRIZWFkaW5nTGV2
ZWwpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CiAgICAgCiAgICAgaWYgKHBhcmVudEhlYWRp
bmdMZXZlbCkKICAgICAgICAgW2F0dHJTdHJpbmcgYWRkQXR0cmlidXRlOkAiQVhIZWFkaW5nTGV2
ZWwiIHZhbHVlOltOU051bWJlciBudW1iZXJXaXRoSW50OnBhcmVudEhlYWRpbmdMZXZlbF0gcmFu
Z2U6cmFuZ2VdOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxMDM0ODUpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNiArMTcxLDcgQEAK
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnByZXZpb3VzVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopIHsgcmV0dXJu
IDA7IH0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1
cm4gMDsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikg
eyByZXR1cm4gMDsgfQorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3Ry
aW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdUUgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHJldmlz
aW9uIDEwMzQ4NSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNyArMjE4LDggQEAK
ICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGFjY2Vzc2liaWxpdHlFbGVt
ZW50Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopOwogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopOwogICAgIGludCB0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSopOwotICAgIAorICAgIGJvb2wgYXR0cmlidXRlZFN0cmluZ0Zv
clRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlKik7CisKICAgICAvLyBOb3RpZmljYXRpb25zCiAgICAgLy8gRnVu
Y3Rpb24gY2FsbGJhY2sgc2hvdWxkIHRha2Ugb25lIGFyZ3VtZW50LCB0aGUgbmFtZSBvZiB0aGUg
bm90aWZpY2F0aW9uLgogICAgIGJvb2wgYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoSlNWYWx1ZVJl
ZiBmdW5jdGlvbkNhbGxiYWNrKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbAkocmV2aXNpb24gMTAzNDg1KQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDcgKzE1Myw4IEBACiAgICAgICAgIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQgYWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKGluIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyIG1hcmtlcik7CiAgICAgICAgIERPTVN0cmluZyBzdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2UoaW4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSByYW5nZSk7CiAgICAg
ICAgIGludCB0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoaW4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZSByYW5nZSk7Ci0KKyAgICAgICAgYm9vbGVhbiBhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIGF0dHIsIGluIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UgcmFuZ2UpOworICAgICAgICAKICAgICAgICAgLy8gTm90aWZp
Y2F0aW9uIHN1cHBvcnQuCiAgICAgICAgIGJvb2xlYW4gYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIo
aW4gb2JqZWN0IGNhbGxiYWNrRnVuY3Rpb24pOwogICAgICAgICBib29sZWFuIHJlbW92ZU5vdGlm
aWNhdGlvbkxpc3RlbmVyKCk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0JKHJldmlzaW9uIDEwMzQ4NSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEzNzcsNiArMTM3NywyMSBAQAogICAgIAogICAgIHJldHVybiAwOyAgCiB9Cisg
ICAgCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUsIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIHJhbmdlKQoreworICAgIEJFR0lOX0FYX09CSkNfRVhD
RVBUSU9OUworICAgIE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2Vy
UmFuZ2UiIGZvclBhcmFtZXRlcjooaWQpcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCld
OworICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xh
c3NdXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIE5TRGljdGlvbmFyeSogYXR0
cnMgPSBbc3RyaW5nIGF0dHJpYnV0ZXNBdEluZGV4OjAgZWZmZWN0aXZlUmFuZ2U6bmlsXTsKKyAg
ICBpZihbYXR0cnMgb2JqZWN0Rm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6
YXR0cmlidXRlXV0pCisgICAgICAgIHJldHVybiB0cnVlOyAgICAKKyAgICBFTkRfQVhfT0JKQ19F
WENFUFRJT05TCisgICAgCisgICAgcmV0dXJuIGZhbHNlOworfQogCiB9IC8vIG5hbWVzcGFjZSBX
VFIKIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHAJKHJldmlzaW9uIDEwMzQ4NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTIsNiArNDkyLDI0IEBA
CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6Om1ha2VKU0FjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UoY29udGV4dCwgdG9BWEVsZW1lbnQodGhpc09iamVjdCktPnRl
eHRNYXJrZXJSYW5nZUZvckVsZW1lbnQodWlFbGVtZW50KSk7CiB9CiAKKworc3RhdGljIEpTVmFs
dWVSZWYgYXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRl
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2UqIG1hcmtlclJhbmdlID0gMDsKKyAgICBKU1N0cmluZ1JlZiBhdHRy
aWJ1dGUgPSAwOworICAgIGlmIChhcmd1bWVudENvdW50ID09IDIpIHsKKyAgICAgICAgYXR0cmli
dXRlID0gSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlv
bik7CisgICAgICAgIG1hcmtlclJhbmdlID0gdG9UZXh0TWFya2VyUmFuZ2UoSlNWYWx1ZVRvT2Jq
ZWN0KGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9uKSk7CisgICAgfQorICAgIAorICAg
IEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIHRvQVhFbGVt
ZW50KHRoaXNPYmplY3QpLT5hdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFp
bnNBdHRyaWJ1dGUoYXR0cmlidXRlLCBtYXJrZXJSYW5nZSkpOworICAgIGlmIChhdHRyaWJ1dGUp
CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZShhdHRyaWJ1dGUpOworICAgIAorICAgIHJldHVybiBy
ZXN1bHQ7ICAgIAorfQorCisKIHN0YXRpYyBKU1ZhbHVlUmVmIHRleHRNYXJrZXJSYW5nZUxlbmd0
aENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlKiByYW5nZSA9IDA7CkBAIC05NDksNiArOTY3LDExIEBACiAgICAg
cmV0dXJuIDA7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0
cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmLCBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNl
bmRpZgogCiAvLyBEZXN0cnVjdGlvbgpAQCAtMTA3Niw2ICsxMDk5LDcgQEAKICAgICAgICAgeyAi
YWRkU2VsZWN0aW9uIiwgYWRkU2VsZWN0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
cmVtb3ZlU2VsZWN0aW9uIiwgcmVtb3ZlU2VsZWN0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAidGV4dE1hcmtlclJhbmdlRm9yRWxlbWVudCIsIHRleHRNYXJrZXJSYW5nZUZvckVsZW1l
bnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUiLCBhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtl
clJhbmdlQ29udGFpbnNBdHRyaWJ1dGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXh0
TWFya2VyUmFuZ2VGb3JNYXJrZXJzIiwgdGV4dE1hcmtlclJhbmdlRm9yTWFya2Vyc0NhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZSIs
IHN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgImVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UiLCBlbmRUZXh0TWFya2VyRm9y
VGV4dE1hcmtlclJhbmdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCShyZXZpc2lv
biAxMDM0ODUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI5NSw2ICsxMjk1LDIxIEBACiAgICAgcmV0
dXJuIDA7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmlu
Z0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmIGF0dHJpYnV0
ZSwgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UpCit7CisgICAgQkVHSU5fQVhf
T0JKQ19FWENFUFRJT05TCisgICAgTlNBdHRyaWJ1dGVkU3RyaW5nKiBzdHJpbmcgPSBbbV9lbGVt
ZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYQXR0cmlidXRlZFN0cmluZ0ZvclRl
eHRNYXJrZXJSYW5nZSIgZm9yUGFyYW1ldGVyOihpZClyYW5nZS0+cGxhdGZvcm1UZXh0TWFya2Vy
UmFuZ2UoKV07CisgICAgaWYgKCFbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0
cmluZyBjbGFzc11dKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgTlNEaWN0aW9u
YXJ5KiBhdHRycyA9IFtzdHJpbmcgYXR0cmlidXRlc0F0SW5kZXg6MCBlZmZlY3RpdmVSYW5nZTpu
aWxdOworICAgIGlmKFthdHRycyBvYmplY3RGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0
cmluZ1JlZjphdHRyaWJ1dGVdXSkKKyAgICAgICAgcmV0dXJuIHRydWU7ICAgIAorICAgIEVORF9B
WF9PQkpDX0VYQ0VQVElPTlMKKyAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzVGV4dE1hcmtl
cihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAgICBCRUdJTl9BWF9P
QkpDX0VYQ0VQVElPTlMKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgJKHJldmlzaW9uIDEwMzQ4NSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSw3
IEBACiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBhY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRl
eHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKTsKICAgICBKU1N0cmluZ1JlZiBzdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopOwogICAg
IGludCB0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSop
OworICAgIGJvb2wgYXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0
cmlidXRlKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKik7CiAgICAg
CiAgICAgLy8gTm90aWZpY2F0aW9ucwogICAgIC8vIEZ1bmN0aW9uIGNhbGxiYWNrIHNob3VsZCB0
YWtlIG9uZSBhcmd1bWVudCwgdGhlIG5hbWUgb2YgdGhlIG5vdGlmaWNhdGlvbi4KSW5kZXg6IFRv
b2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEw
MzQ5OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDExLTEyLTIxICBDaHJpcyBGbGVpemFjaDIgIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiBhdHRyaWJ1dGVkIHN0cmluZ3MgZG8gbm90IGluY2x1ZGUgQVhIZWFkaW5nIGlu
Zm9ybWF0aW9uIHdoZW4gYSBsaW5rIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGhlYWRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDU5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCB0aGUg
YWJpbGl0eSB0byBjaGVjayBpZiBhbiBhcmJpdHJhcnkgYXR0cmlidXRlIGlzIHByZXNlbnQgd2l0
aGluIGFuIAorICAgICAgICBhdHRyaWJ1dGVkIHN0cmluZyB0aGF0IGNhbiBiZSByZXRyaWV2ZWQg
dGhyb3VnaCBhbiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgIChhdHRyaWJ1
dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGVDYWxsYmFjayk6Cisg
ICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Z2V0SlNDbGFzcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3Ry
aW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNv
bnRhaW5zQXR0cmlidXRlKToKKwogMjAxMS0xMi0yMSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQWRkIHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbSBhbmQgY29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmcgYXMgImNvbnRyaWJ1dG9ycyIKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDEwMzQ5OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTEyLTIxICBDaHJpcyBGbGVpemFjaDIgIDxjZmxlaXphY2hAYXBwbGUu
Y29tPgorCisgICAgICAgIEFYOiBhdHRyaWJ1dGVkIHN0cmluZ3MgZG8gbm90IGluY2x1ZGUgQVhI
ZWFkaW5nIGluZm9ybWF0aW9uIHdoZW4gYSBsaW5rIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGhl
YWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1
MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJpYnV0ZWQtc3Ry
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvaGVhZGluZy1hbmQtbGluay1hdHRyaWJ1dGVkLXN0cmluZy5odG1sOiBBZGRlZC4KKwog
MjAxMS0xMi0yMSAgWW9zaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Zvcm1zXSBTZWxlY3Rpb24gY2hhbmdlIGJ5IHR5cGUtYWhlYWQgZG9lc24ndCBmaXJlICdj
aGFuZ2UnIGV2ZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJpYnV0ZWQtc3RyaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWFu
ZC1saW5rLWF0dHJpYnV0ZWQtc3RyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2hlYWRpbmctYW5kLWxpbmstYXR0
cmlidXRlZC1zdHJpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBA
CitsaW5rCisKK1RoaXMgdGVzdHMgdGhhdCBtaXNzcGVsbGVkIHdvcmRzIGFyZSBjb3JyZWN0bHkg
bWFya2VkIHdoZW4gYXNraW5nIGZvciBhbiBhdHRyaWJ1dGVkIHN0cmluZy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGV4dC5hdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoJ0FYSGVhZGluZ0xldmVsJywgcmFuZ2UpIGlzIHRy
dWUKK1BBU1MgdGV4dC5hdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNB
dHRyaWJ1dGUoJ0FYTGluaycsIHJhbmdlKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvaGVhZGluZy1hbmQtbGluay1hdHRyaWJ1dGVkLXN0cmluZy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2hl
YWRpbmctYW5kLWxpbmstYXR0cmlidXRlZC1zdHJpbmcuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2hlYWRpbmctYW5kLWxpbmstYXR0
cmlidXRlZC1zdHJpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisKKzxoMSBpZD0iaGVhZGluZyIgdGFiaW5kZXg9IjAiPjxhIGhyZWY9IiMiPmxpbms8
L2E+PC9oMT4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgbWlz
c3BlbGxlZCB3b3JkcyBhcmUgY29ycmVjdGx5IG1hcmtlZCB3aGVuIGFza2luZyBmb3IgYW4gYXR0
cmlidXRlZCBzdHJpbmcuIik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9s
bGVyKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkaW5nIikuZm9jdXMo
KTsKKyAgICAgICAgCisgICAgICAgIHZhciB0ZXh0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
Zm9jdXNlZEVsZW1lbnQ7CisgICAgICAgIHZhciByYW5nZSA9IHRleHQudGV4dE1hcmtlclJhbmdl
Rm9yRWxlbWVudCh0ZXh0KTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXh0LmF0dHJpYnV0ZWRT
dHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZSgnQVhIZWFkaW5nTGV2ZWwn
LCByYW5nZSkiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXh0LmF0dHJpYnV0ZWRTdHJpbmdG
b3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZSgnQVhMaW5rJywgcmFuZ2UpIik7Cisg
ICAgfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120281</attachid>
            <date>2011-12-21 23:51:46 -0800</date>
            <delta_ts>2011-12-21 23:53:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>14989</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzQ5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTIxICBDaHJpcyBG
bGVpemFjaDIgIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBhdHRyaWJ1dGVk
IHN0cmluZ3MgZG8gbm90IGluY2x1ZGUgQVhIZWFkaW5nIGluZm9ybWF0aW9uIHdoZW4gYSBsaW5r
IGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGhlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQW4gYXR0cmlidXRlZCBzdHJpbmcgc2hvdWxkIGNvbnRh
aW4gdGhlIGhlYWRpbmcgbGV2ZWwgb2YgYW4gYW5jZXN0b3Igbm9kZSBpZiBpdCBleGlzdHMuIAor
ICAgICAgICBUaGlzIGNoYW5nZSBhbGxvd3MgdGhlIGFuY2VzdG9yIHRvIGJlIGhpZ2hlciB1cCBp
biB0aGUgaGllcmFyY2h5IHRoYW4ganVzdCB0aGUgZGlyZWN0IHBhcmVudC4KKworICAgICAgICBU
ZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJpYnV0
ZWQtc3RyaW5nLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyLm1tOgorICAgICAgICAoQVhBdHRyaWJ1dGVTdHJpbmdTZXRIZWFk
aW5nTGV2ZWwpOgorCiAyMDExLTEyLTIxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIH5DU1NQYXJzZXJTZWxlY3RvciB1c2UgVmVjdG9yPE93blB0cj4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCShyZXZpc2lvbiAxMDM0ODUpCisr
KyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNzMxLDggKzczMSwxNSBAQAogICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKICAgICAKKyAgICAvLyBTb21ldGltZXMgdGhlcmUg
YXJlIG9iamVjdHMgYmV0d2VlbiB0aGUgdGV4dCBhbmQgdGhlIGhlYWRpbmcuIAorICAgIC8vIElu
IHRob3NlIGNhc2VzIHRoZSBwYXJlbnQgaGllcmFyY2h5IHNob3VsZCBiZSBxdWVyaWVkIHRvIHNl
ZSBpZiB0aGVyZSBpcyBhIGhlYWRpbmcgbGV2ZWwuCisgICAgaW50IHBhcmVudEhlYWRpbmdMZXZl
bCA9IDA7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0ID0gcmVuZGVyZXIt
PmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUocmVuZGVyZXItPnBhcmVu
dCgpKTsKLSAgICBpbnQgcGFyZW50SGVhZGluZ0xldmVsID0gcGFyZW50T2JqZWN0LT5oZWFkaW5n
TGV2ZWwoKTsKKyAgICBmb3IgKDsgcGFyZW50T2JqZWN0OyBwYXJlbnRPYmplY3QgPSBwYXJlbnRP
YmplY3QtPnBhcmVudE9iamVjdCgpKSB7CisgICAgICAgIHBhcmVudEhlYWRpbmdMZXZlbCA9IHBh
cmVudE9iamVjdC0+aGVhZGluZ0xldmVsKCk7CisgICAgICAgIGlmIChwYXJlbnRIZWFkaW5nTGV2
ZWwpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CiAgICAgCiAgICAgaWYgKHBhcmVudEhlYWRp
bmdMZXZlbCkKICAgICAgICAgW2F0dHJTdHJpbmcgYWRkQXR0cmlidXRlOkAiQVhIZWFkaW5nTGV2
ZWwiIHZhbHVlOltOU051bWJlciBudW1iZXJXaXRoSW50OnBhcmVudEhlYWRpbmdMZXZlbF0gcmFu
Z2U6cmFuZ2VdOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxMDM0ODUpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNiArMTcxLDcgQEAK
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnByZXZpb3VzVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopIHsgcmV0dXJu
IDA7IH0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1
cm4gMDsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikg
eyByZXR1cm4gMDsgfQorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3Ry
aW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdUUgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHJldmlz
aW9uIDEwMzQ4NSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNyArMjE4LDggQEAK
ICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGFjY2Vzc2liaWxpdHlFbGVt
ZW50Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopOwogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopOwogICAgIGludCB0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSopOwotICAgIAorICAgIGJvb2wgYXR0cmlidXRlZFN0cmluZ0Zv
clRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlKik7CisKICAgICAvLyBOb3RpZmljYXRpb25zCiAgICAgLy8gRnVu
Y3Rpb24gY2FsbGJhY2sgc2hvdWxkIHRha2Ugb25lIGFyZ3VtZW50LCB0aGUgbmFtZSBvZiB0aGUg
bm90aWZpY2F0aW9uLgogICAgIGJvb2wgYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoSlNWYWx1ZVJl
ZiBmdW5jdGlvbkNhbGxiYWNrKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbAkocmV2aXNpb24gMTAzNDg1KQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDcgKzE1Myw4IEBACiAgICAgICAgIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQgYWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKGluIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyIG1hcmtlcik7CiAgICAgICAgIERPTVN0cmluZyBzdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2UoaW4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSByYW5nZSk7CiAgICAg
ICAgIGludCB0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoaW4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZSByYW5nZSk7Ci0KKyAgICAgICAgYm9vbGVhbiBhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIGF0dHIsIGluIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UgcmFuZ2UpOworICAgICAgICAKICAgICAgICAgLy8gTm90aWZp
Y2F0aW9uIHN1cHBvcnQuCiAgICAgICAgIGJvb2xlYW4gYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIo
aW4gb2JqZWN0IGNhbGxiYWNrRnVuY3Rpb24pOwogICAgICAgICBib29sZWFuIHJlbW92ZU5vdGlm
aWNhdGlvbkxpc3RlbmVyKCk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0JKHJldmlzaW9uIDEwMzQ4NSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEzNzcsNiArMTM3NywyMSBAQAogICAgIAogICAgIHJldHVybiAwOyAgCiB9Cisg
ICAgCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUsIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIHJhbmdlKQoreworICAgIEJFR0lOX0FYX09CSkNfRVhD
RVBUSU9OUworICAgIE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2Vy
UmFuZ2UiIGZvclBhcmFtZXRlcjooaWQpcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCld
OworICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xh
c3NdXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIE5TRGljdGlvbmFyeSogYXR0
cnMgPSBbc3RyaW5nIGF0dHJpYnV0ZXNBdEluZGV4OjAgZWZmZWN0aXZlUmFuZ2U6bmlsXTsKKyAg
ICBpZiAoW2F0dHJzIG9iamVjdEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVm
OmF0dHJpYnV0ZV1dKQorICAgICAgICByZXR1cm4gdHJ1ZTsgICAgCisgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KIAogfSAvLyBuYW1lc3BhY2Ug
V1RSCiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxMDM0ODUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkyLDYgKzQ5MiwyNCBA
QAogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjptYWtlSlNBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT50
ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KHVpRWxlbWVudCkpOwogfQogCisKK3N0YXRpYyBKU1Zh
bHVlUmVmIGF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0
ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlKiBtYXJrZXJSYW5nZSA9IDA7CisgICAgSlNTdHJpbmdSZWYgYXR0
cmlidXRlID0gMDsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAyKSB7CisgICAgICAgIGF0dHJp
YnV0ZSA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRp
b24pOworICAgICAgICBtYXJrZXJSYW5nZSA9IHRvVGV4dE1hcmtlclJhbmdlKEpTVmFsdWVUb09i
amVjdChjb250ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbikpOworICAgIH0KKyAgICAKKyAg
ICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCB0b0FYRWxl
bWVudCh0aGlzT2JqZWN0KS0+YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRh
aW5zQXR0cmlidXRlKGF0dHJpYnV0ZSwgbWFya2VyUmFuZ2UpKTsKKyAgICBpZiAoYXR0cmlidXRl
KQorICAgICAgICBKU1N0cmluZ1JlbGVhc2UoYXR0cmlidXRlKTsKKyAgICAKKyAgICByZXR1cm4g
cmVzdWx0OyAgICAKK30KKworCiBzdGF0aWMgSlNWYWx1ZVJlZiB0ZXh0TWFya2VyUmFuZ2VMZW5n
dGhDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UgPSAwOwpAQCAtOTQ5LDYgKzk2NywxMSBAQAogICAg
IHJldHVybiAwOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRT
dHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiwgQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiAj
ZW5kaWYKIAogLy8gRGVzdHJ1Y3Rpb24KQEAgLTEwNzYsNiArMTA5OSw3IEBACiAgICAgICAgIHsg
ImFkZFNlbGVjdGlvbiIsIGFkZFNlbGVjdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InJlbW92ZVNlbGVjdGlvbiIsIHJlbW92ZVNlbGVjdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgInRleHRNYXJrZXJSYW5nZUZvckVsZW1lbnQiLCB0ZXh0TWFya2VyUmFuZ2VGb3JFbGVt
ZW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiYXR0cmlidXRlZFN0cmluZ0ZvclRleHRN
YXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlIiwgYXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidGV4
dE1hcmtlclJhbmdlRm9yTWFya2VycyIsIHRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2Ui
LCBzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2VDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJlbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlIiwgZW5kVGV4dE1hcmtlckZv
clRleHRNYXJrZXJSYW5nZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQkocmV2aXNp
b24gMTAzNDg1KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyOTUsNiArMTI5NSwyMSBAQAogICAgIHJl
dHVybiAwOwogfQogCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiBhdHRyaWJ1
dGUsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIHJhbmdlKQoreworICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUworICAgIE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JU
ZXh0TWFya2VyUmFuZ2UiIGZvclBhcmFtZXRlcjooaWQpcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtl
clJhbmdlKCldOworICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRT
dHJpbmcgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIE5TRGljdGlv
bmFyeSogYXR0cnMgPSBbc3RyaW5nIGF0dHJpYnV0ZXNBdEluZGV4OjAgZWZmZWN0aXZlUmFuZ2U6
bmlsXTsKKyAgICBpZiAoW2F0dHJzIG9iamVjdEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aEpT
U3RyaW5nUmVmOmF0dHJpYnV0ZV1dKQorICAgICAgICByZXR1cm4gdHJ1ZTsgICAgCisgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KKwogQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNUZXh0TWFy
a2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiB0ZXh0TWFya2VyKQogewogICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaAkocmV2aXNpb24gMTAzNDg1KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNiArMjE1
LDcgQEAKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Rm9y
VGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopOwogICAgIEpTU3RyaW5nUmVmIHN0
cmluZ0ZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKik7CiAg
ICAgaW50IHRleHRNYXJrZXJSYW5nZUxlbmd0aChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
Kik7CisgICAgYm9vbCBhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNB
dHRyaWJ1dGUoSlNTdHJpbmdSZWYsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKTsKICAg
ICAKICAgICAvLyBOb3RpZmljYXRpb25zCiAgICAgLy8gRnVuY3Rpb24gY2FsbGJhY2sgc2hvdWxk
IHRha2Ugb25lIGFyZ3VtZW50LCB0aGUgbmFtZSBvZiB0aGUgbm90aWZpY2F0aW9uLgpJbmRleDog
VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTAzNDk4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTEtMTItMjEgIENocmlzIEZsZWl6YWNoMiAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisK
KyAgICAgICAgQVg6IGF0dHJpYnV0ZWQgc3RyaW5ncyBkbyBub3QgaW5jbHVkZSBBWEhlYWRpbmcg
aW5mb3JtYXRpb24gd2hlbiBhIGxpbmsgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgaGVhZGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IHRo
ZSBhYmlsaXR5IHRvIGNoZWNrIGlmIGFuIGFyYml0cmFyeSBhdHRyaWJ1dGUgaXMgcHJlc2VudCB3
aXRoaW4gYW4gCisgICAgICAgIGF0dHJpYnV0ZWQgc3RyaW5nIHRoYXQgY2FuIGJlIHJldHJpZXZl
ZCB0aHJvdWdoIGFuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKGF0dHJp
YnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZUNhbGxiYWNrKToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpnZXRKU0NsYXNzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRT
dHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZSk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdl
Q29udGFpbnNBdHRyaWJ1dGUpOgorCiAyMDExLTEyLTIxICBFcmljIFNlaWRlbCAgPGVyaWNAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBZGQgd2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tIGFuZCBj
b21taXQtcXVldWVAd2Via2l0Lm9yZyBhcyAiY29udHJpYnV0b3JzIgpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTAzNDk4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTEtMTItMjEgIENocmlzIEZsZWl6YWNoMiAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+CisKKyAgICAgICAgQVg6IGF0dHJpYnV0ZWQgc3RyaW5ncyBkbyBub3QgaW5jbHVkZSBB
WEhlYWRpbmcgaW5mb3JtYXRpb24gd2hlbiBhIGxpbmsgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUg
aGVhZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzUwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2hlYWRpbmctYW5kLWxpbmstYXR0cmlidXRlZC1z
dHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJpYnV0ZWQtc3RyaW5nLmh0bWw6IEFkZGVkLgor
CiAyMDExLTEyLTIxICBZb3NpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbRm9ybXNdIFNlbGVjdGlvbiBjaGFuZ2UgYnkgdHlwZS1haGVhZCBkb2Vzbid0IGZpcmUg
J2NoYW5nZScgZXZlbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2hlYWRpbmctYW5kLWxpbmstYXR0cmlidXRlZC1zdHJpbmctZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2hlYWRpbmct
YW5kLWxpbmstYXR0cmlidXRlZC1zdHJpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaGVhZGluZy1hbmQtbGluay1h
dHRyaWJ1dGVkLXN0cmluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMg
QEAKK2xpbmsKKworVGhpcyB0ZXN0cyB0aGF0IG1pc3NwZWxsZWQgd29yZHMgYXJlIGNvcnJlY3Rs
eSBtYXJrZWQgd2hlbiBhc2tpbmcgZm9yIGFuIGF0dHJpYnV0ZWQgc3RyaW5nLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXh0LmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZSgnQVhIZWFkaW5nTGV2ZWwnLCByYW5nZSkgaXMg
dHJ1ZQorUEFTUyB0ZXh0LmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWlu
c0F0dHJpYnV0ZSgnQVhMaW5rJywgcmFuZ2UpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJpYnV0ZWQtc3RyaW5nLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
aGVhZGluZy1hbmQtbGluay1hdHRyaWJ1dGVkLXN0cmluZy5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaGVhZGluZy1hbmQtbGluay1h
dHRyaWJ1dGVkLXN0cmluZy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKworPGgxIGlkPSJoZWFkaW5nIiB0YWJpbmRleD0iMCI+PGEgaHJlZj0iIyI+bGlu
azwvYT48L2gxPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBt
aXNzcGVsbGVkIHdvcmRzIGFyZSBjb3JyZWN0bHkgbWFya2VkIHdoZW4gYXNraW5nIGZvciBhbiBh
dHRyaWJ1dGVkIHN0cmluZy4iKTsKKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRpbmciKS5mb2N1
cygpOworICAgICAgICAKKyAgICAgICAgdmFyIHRleHQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5mb2N1c2VkRWxlbWVudDsKKyAgICAgICAgdmFyIHJhbmdlID0gdGV4dC50ZXh0TWFya2VyUmFu
Z2VGb3JFbGVtZW50KHRleHQpOworICAgICAgICBzaG91bGRCZVRydWUoInRleHQuYXR0cmlidXRl
ZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKCdBWEhlYWRpbmdMZXZl
bCcsIHJhbmdlKSIpOworICAgICAgICBzaG91bGRCZVRydWUoInRleHQuYXR0cmlidXRlZFN0cmlu
Z0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKCdBWExpbmsnLCByYW5nZSkiKTsK
KyAgICB9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120282</attachid>
            <date>2011-12-21 23:53:16 -0800</date>
            <delta_ts>2011-12-22 08:39:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>14985</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzQ5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTIxICBDaHJpcyBG
bGVpemFjaDIgIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBhdHRyaWJ1dGVk
IHN0cmluZ3MgZG8gbm90IGluY2x1ZGUgQVhIZWFkaW5nIGluZm9ybWF0aW9uIHdoZW4gYSBsaW5r
IGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGhlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQW4gYXR0cmlidXRlZCBzdHJpbmcgc2hvdWxkIGNvbnRh
aW4gdGhlIGhlYWRpbmcgbGV2ZWwgb2YgYW4gYW5jZXN0b3Igbm9kZSBpZiBpdCBleGlzdHMuIAor
ICAgICAgICBUaGlzIGNoYW5nZSBhbGxvd3MgdGhlIGFuY2VzdG9yIHRvIGJlIGhpZ2hlciB1cCBp
biB0aGUgaGllcmFyY2h5IHRoYW4ganVzdCB0aGUgZGlyZWN0IHBhcmVudC4KKworICAgICAgICBU
ZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJpYnV0
ZWQtc3RyaW5nLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyLm1tOgorICAgICAgICAoQVhBdHRyaWJ1dGVTdHJpbmdTZXRIZWFk
aW5nTGV2ZWwpOgorCiAyMDExLTEyLTIxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIH5DU1NQYXJzZXJTZWxlY3RvciB1c2UgVmVjdG9yPE93blB0cj4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCShyZXZpc2lvbiAxMDM0ODUpCisr
KyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNzMxLDggKzczMSwxNSBAQAogICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKICAgICAKKyAgICAvLyBTb21ldGltZXMgdGhlcmUg
YXJlIG9iamVjdHMgYmV0d2VlbiB0aGUgdGV4dCBhbmQgdGhlIGhlYWRpbmcuIAorICAgIC8vIElu
IHRob3NlIGNhc2VzIHRoZSBwYXJlbnQgaGllcmFyY2h5IHNob3VsZCBiZSBxdWVyaWVkIHRvIHNl
ZSBpZiB0aGVyZSBpcyBhIGhlYWRpbmcgbGV2ZWwuCisgICAgaW50IHBhcmVudEhlYWRpbmdMZXZl
bCA9IDA7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0ID0gcmVuZGVyZXIt
PmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUocmVuZGVyZXItPnBhcmVu
dCgpKTsKLSAgICBpbnQgcGFyZW50SGVhZGluZ0xldmVsID0gcGFyZW50T2JqZWN0LT5oZWFkaW5n
TGV2ZWwoKTsKKyAgICBmb3IgKDsgcGFyZW50T2JqZWN0OyBwYXJlbnRPYmplY3QgPSBwYXJlbnRP
YmplY3QtPnBhcmVudE9iamVjdCgpKSB7CisgICAgICAgIHBhcmVudEhlYWRpbmdMZXZlbCA9IHBh
cmVudE9iamVjdC0+aGVhZGluZ0xldmVsKCk7CisgICAgICAgIGlmIChwYXJlbnRIZWFkaW5nTGV2
ZWwpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CiAgICAgCiAgICAgaWYgKHBhcmVudEhlYWRp
bmdMZXZlbCkKICAgICAgICAgW2F0dHJTdHJpbmcgYWRkQXR0cmlidXRlOkAiQVhIZWFkaW5nTGV2
ZWwiIHZhbHVlOltOU051bWJlciBudW1iZXJXaXRoSW50OnBhcmVudEhlYWRpbmdMZXZlbF0gcmFu
Z2U6cmFuZ2VdOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxMDM0ODUpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNiArMTcxLDcgQEAK
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnByZXZpb3VzVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopIHsgcmV0dXJu
IDA7IH0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikgeyByZXR1
cm4gMDsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikg
eyByZXR1cm4gMDsgfQorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3Ry
aW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdUUgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHJldmlz
aW9uIDEwMzQ4NSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNyArMjE4LDggQEAK
ICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGFjY2Vzc2liaWxpdHlFbGVt
ZW50Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopOwogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopOwogICAgIGludCB0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSopOwotICAgIAorICAgIGJvb2wgYXR0cmlidXRlZFN0cmluZ0Zv
clRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmLCBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlKik7CisKICAgICAvLyBOb3RpZmljYXRpb25zCiAgICAgLy8gRnVu
Y3Rpb24gY2FsbGJhY2sgc2hvdWxkIHRha2Ugb25lIGFyZ3VtZW50LCB0aGUgbmFtZSBvZiB0aGUg
bm90aWZpY2F0aW9uLgogICAgIGJvb2wgYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoSlNWYWx1ZVJl
ZiBmdW5jdGlvbkNhbGxiYWNrKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbAkocmV2aXNpb24gMTAzNDg1KQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDcgKzE1Myw4IEBACiAgICAgICAgIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQgYWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKGluIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyIG1hcmtlcik7CiAgICAgICAgIERPTVN0cmluZyBzdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2UoaW4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSByYW5nZSk7CiAgICAg
ICAgIGludCB0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoaW4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZSByYW5nZSk7Ci0KKyAgICAgICAgYm9vbGVhbiBhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIGF0dHIsIGluIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UgcmFuZ2UpOworICAgICAgICAKICAgICAgICAgLy8gTm90aWZp
Y2F0aW9uIHN1cHBvcnQuCiAgICAgICAgIGJvb2xlYW4gYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIo
aW4gb2JqZWN0IGNhbGxiYWNrRnVuY3Rpb24pOwogICAgICAgICBib29sZWFuIHJlbW92ZU5vdGlm
aWNhdGlvbkxpc3RlbmVyKCk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0JKHJldmlzaW9uIDEwMzQ4NSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEzNzcsNiArMTM3NywyMSBAQAogICAgIAogICAgIHJldHVybiAwOyAgCiB9Cisg
ICAgCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUsIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIHJhbmdlKQoreworICAgIEJFR0lOX0FYX09CSkNfRVhD
RVBUSU9OUworICAgIE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2Vy
UmFuZ2UiIGZvclBhcmFtZXRlcjooaWQpcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCld
OworICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xh
c3NdXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIE5TRGljdGlvbmFyeSogYXR0
cnMgPSBbc3RyaW5nIGF0dHJpYnV0ZXNBdEluZGV4OjAgZWZmZWN0aXZlUmFuZ2U6bmlsXTsKKyAg
ICBpZiAoW2F0dHJzIG9iamVjdEZvcktleTpbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVm
OmF0dHJpYnV0ZV1dKQorICAgICAgICByZXR1cm4gdHJ1ZTsgICAgCisgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KIAogfSAvLyBuYW1lc3BhY2Ug
V1RSCiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxMDM0ODUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkyLDYgKzQ5MiwyMiBA
QAogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjptYWtlSlNBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlKGNvbnRleHQsIHRvQVhFbGVtZW50KHRoaXNPYmplY3QpLT50
ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KHVpRWxlbWVudCkpOwogfQogCitzdGF0aWMgSlNWYWx1
ZVJlZiBhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGVD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZSogbWFya2VyUmFuZ2UgPSAwOworICAgIEpTU3RyaW5nUmVmIGF0dHJp
YnV0ZSA9IDA7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMikgeworICAgICAgICBhdHRyaWJ1
dGUgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KTsKKyAgICAgICAgbWFya2VyUmFuZ2UgPSB0b1RleHRNYXJrZXJSYW5nZShKU1ZhbHVlVG9PYmpl
Y3QoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24pKTsKKyAgICB9CisgICAgCisgICAg
SlNWYWx1ZVJlZiByZXN1bHQgPSBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgdG9BWEVsZW1l
bnQodGhpc09iamVjdCktPmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWlu
c0F0dHJpYnV0ZShhdHRyaWJ1dGUsIG1hcmtlclJhbmdlKSk7CisgICAgaWYgKGF0dHJpYnV0ZSkK
KyAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGF0dHJpYnV0ZSk7CisgICAgCisgICAgcmV0dXJuIHJl
c3VsdDsgICAgCit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIHRleHRNYXJrZXJSYW5nZUxlbmd0aENh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlKiByYW5nZSA9IDA7CkBAIC05NDksNiArOTY1LDExIEBACiAgICAgcmV0
dXJuIDA7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmlu
Z0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmLCBBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNlbmRp
ZgogCiAvLyBEZXN0cnVjdGlvbgpAQCAtMTA3Niw2ICsxMDk3LDcgQEAKICAgICAgICAgeyAiYWRk
U2VsZWN0aW9uIiwgYWRkU2VsZWN0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVt
b3ZlU2VsZWN0aW9uIiwgcmVtb3ZlU2VsZWN0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAidGV4dE1hcmtlclJhbmdlRm9yRWxlbWVudCIsIHRleHRNYXJrZXJSYW5nZUZvckVsZW1lbnRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtl
clJhbmdlQ29udGFpbnNBdHRyaWJ1dGUiLCBhdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJh
bmdlQ29udGFpbnNBdHRyaWJ1dGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXh0TWFy
a2VyUmFuZ2VGb3JNYXJrZXJzIiwgdGV4dE1hcmtlclJhbmdlRm9yTWFya2Vyc0NhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgInN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZSIsIHN0
YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgImVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UiLCBlbmRUZXh0TWFya2VyRm9yVGV4
dE1hcmtlclJhbmdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCShyZXZpc2lvbiAx
MDM0ODUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI5NSw2ICsxMjk1LDIxIEBACiAgICAgcmV0dXJu
IDA7CiB9CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0Zv
clRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSwg
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UpCit7CisgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCisgICAgTlNBdHRyaWJ1dGVkU3RyaW5nKiBzdHJpbmcgPSBbbV9lbGVtZW50
IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYQXR0cmlidXRlZFN0cmluZ0ZvclRleHRN
YXJrZXJSYW5nZSIgZm9yUGFyYW1ldGVyOihpZClyYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFu
Z2UoKV07CisgICAgaWYgKCFbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmlu
ZyBjbGFzc11dKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgTlNEaWN0aW9uYXJ5
KiBhdHRycyA9IFtzdHJpbmcgYXR0cmlidXRlc0F0SW5kZXg6MCBlZmZlY3RpdmVSYW5nZTpuaWxd
OworICAgIGlmIChbYXR0cnMgb2JqZWN0Rm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJp
bmdSZWY6YXR0cmlidXRlXV0pCisgICAgICAgIHJldHVybiB0cnVlOyAgICAKKyAgICBFTkRfQVhf
T0JKQ19FWENFUFRJT05TCisgICAgCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlciBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmV2aW91c1RleHRNYXJrZXIo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCiB7CiAgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5oCShyZXZpc2lvbiAxMDM0ODUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNSw2ICsyMTUsNyBA
QAogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgYWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0
TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKik7CiAgICAgSlNTdHJpbmdSZWYgc3RyaW5n
Rm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKTsKICAgICBp
bnQgdGV4dE1hcmtlclJhbmdlTGVuZ3RoKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKTsK
KyAgICBib29sIGF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJp
YnV0ZShKU1N0cmluZ1JlZiwgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopOwogICAgIAog
ICAgIC8vIE5vdGlmaWNhdGlvbnMKICAgICAvLyBGdW5jdGlvbiBjYWxsYmFjayBzaG91bGQgdGFr
ZSBvbmUgYXJndW1lbnQsIHRoZSBuYW1lIG9mIHRoZSBub3RpZmljYXRpb24uCkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDM0
OTgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAor
MjAxMS0xMi0yMSAgQ2hyaXMgRmxlaXphY2gyICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAg
ICAgICBBWDogYXR0cmlidXRlZCBzdHJpbmdzIGRvIG5vdCBpbmNsdWRlIEFYSGVhZGluZyBpbmZv
cm1hdGlvbiB3aGVuIGEgbGluayBpcyBjb250YWluZWQgd2l0aGluIHRoZSBoZWFkaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgdGhlIGFi
aWxpdHkgdG8gY2hlY2sgaWYgYW4gYXJiaXRyYXJ5IGF0dHJpYnV0ZSBpcyBwcmVzZW50IHdpdGhp
biBhbiAKKyAgICAgICAgYXR0cmlidXRlZCBzdHJpbmcgdGhhdCBjYW4gYmUgcmV0cmlldmVkIHRo
cm91Z2ggYW4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAoYXR0cmlidXRl
ZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlQ2FsbGJhY2spOgorICAg
ICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldEpTQ2xhc3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0
ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZSk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmlu
Z0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250
YWluc0F0dHJpYnV0ZSk6CisKIDIwMTEtMTItMjEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFkZCB3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20gYW5kIGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnIGFzICJjb250cmlidXRvcnMiCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MDM0OTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMS0xMi0yMSAgQ2hyaXMgRmxlaXphY2gyICA8Y2ZsZWl6YWNoQGFwcGxlLmNv
bT4KKworICAgICAgICBBWDogYXR0cmlidXRlZCBzdHJpbmdzIGRvIG5vdCBpbmNsdWRlIEFYSGVh
ZGluZyBpbmZvcm1hdGlvbiB3aGVuIGEgbGluayBpcyBjb250YWluZWQgd2l0aGluIHRoZSBoZWFk
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaGVhZGluZy1hbmQtbGluay1hdHRyaWJ1dGVkLXN0cmlu
Zy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2hlYWRpbmctYW5kLWxpbmstYXR0cmlidXRlZC1zdHJpbmcuaHRtbDogQWRkZWQuCisKIDIw
MTEtMTItMjEgIFlvc2lmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtGb3Jtc10gU2VsZWN0aW9uIGNoYW5nZSBieSB0eXBlLWFoZWFkIGRvZXNuJ3QgZmlyZSAnY2hh
bmdlJyBldmVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
aGVhZGluZy1hbmQtbGluay1hdHRyaWJ1dGVkLXN0cmluZy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaGVhZGluZy1hbmQt
bGluay1hdHRyaWJ1dGVkLXN0cmluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJp
YnV0ZWQtc3RyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAor
bGluaworCitUaGlzIHRlc3RzIHRoYXQgbWlzc3BlbGxlZCB3b3JkcyBhcmUgY29ycmVjdGx5IG1h
cmtlZCB3aGVuIGFza2luZyBmb3IgYW4gYXR0cmlidXRlZCBzdHJpbmcuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRleHQuYXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKCdBWEhlYWRpbmdMZXZlbCcsIHJhbmdlKSBpcyB0cnVl
CitQQVNTIHRleHQuYXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0
cmlidXRlKCdBWExpbmsnLCByYW5nZSkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2hlYWRpbmctYW5kLWxpbmstYXR0cmlidXRlZC1zdHJpbmcuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFk
aW5nLWFuZC1saW5rLWF0dHJpYnV0ZWQtc3RyaW5nLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9oZWFkaW5nLWFuZC1saW5rLWF0dHJp
YnV0ZWQtc3RyaW5nLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorCis8aDEgaWQ9ImhlYWRpbmciIHRhYmluZGV4PSIwIj48YSBocmVmPSIjIj5saW5rPC9h
PjwvaDE+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IG1pc3Nw
ZWxsZWQgd29yZHMgYXJlIGNvcnJlY3RseSBtYXJrZWQgd2hlbiBhc2tpbmcgZm9yIGFuIGF0dHJp
YnV0ZWQgc3RyaW5nLiIpOworCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cikgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGluZyIpLmZvY3VzKCk7
CisgICAgICAgIAorICAgICAgICB2YXIgdGV4dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50OworICAgICAgICB2YXIgcmFuZ2UgPSB0ZXh0LnRleHRNYXJrZXJSYW5nZUZv
ckVsZW1lbnQodGV4dCk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGV4dC5hdHRyaWJ1dGVkU3Ry
aW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoJ0FYSGVhZGluZ0xldmVsJywg
cmFuZ2UpIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGV4dC5hdHRyaWJ1dGVkU3RyaW5nRm9y
VGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoJ0FYTGluaycsIHJhbmdlKSIpOworICAg
IH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CisK
</data>
<flag name="review"
          id="120520"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>