<?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>76848</bug_id>
          
          <creation_ts>2012-01-23 11:25:17 -0800</creation_ts>
          <short_desc>Eliminate CSSElementStyleDeclaration</short_desc>
          <delta_ts>2012-02-03 09:38:36 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77745</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>macpherson</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>540691</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-23 11:25:17 -0800</bug_when>
    <thetext>CSSElementStyleDeclaration has little functionality. It can merge with CSSMutableStyleDeclaration simplifying the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540752</commentid>
    <comment_count>1</comment_count>
      <attachid>123600</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-23 12:47:28 -0800</bug_when>
    <thetext>Created attachment 123600
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540754</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-23 12:49:18 -0800</bug_when>
    <thetext>Attachment 123600 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1

Source/WebCore/css/CSSMutableStyleDeclaration.h:150:  The parameter name &quot;element&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540766</commentid>
    <comment_count>3</comment_count>
      <attachid>123600</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-01-23 13:01:26 -0800</bug_when>
    <thetext>Comment on attachment 123600
patch

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

r=me

&gt; Source/WebCore/css/CSSStyleRule.cpp:-108
&gt; -    if (!doc &amp;&amp; m_style-&gt;isElementStyleDeclaration()) {
&gt; -        if (StyledElement* element = static_cast&lt;CSSElementStyleDeclaration*&gt;(m_style.get())-&gt;element())
&gt; -            doc = element-&gt;document();
&gt; -    }

Oh dear. Who put this crap here? :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540836</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-01-23 14:26:58 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/105642</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123600</attachid>
            <date>2012-01-23 12:47:28 -0800</date>
            <delta_ts>2012-01-23 13:01:26 -0800</delta_ts>
            <desc>patch</desc>
            <filename>kill-elementstyledeclaration-2.patch</filename>
            <type>text/plain</type>
            <size>38985</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTYzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDczIEBACisyMDEyLTAxLTIzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBFbGltaW5hdGUgQ1NTRWxlbWVu
dFN0eWxlRGVjbGFyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc2ODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24gaGFzIGxpdHRsZSBmdW5jdGlvbmFs
aXR5LiBJdCBjYW4gbWVyZ2Ugd2l0aCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiBzaW1wbGlm
eWluZyB0aGUgY29kZS4KKyAgICAgICAgCisgICAgICAgIEhhdmluZyBhbiBlbGVtZW50IHBhcmVu
dCBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBoYXZpbmcgYSBjc3MgcnVsZSBwYXJlbnQuIFdl
IGNhbiBrZWVwIHRoZW0gaW4gYW4gdW5pb24uIFRoaXMgYWxzbworICAgICAgICBzaHJpbmtzIGFs
bCBpbmxpbmUgc3R5bGUgZGVjbGFyYXRpb25zIGJ5IG9uZSBwb2ludGVyLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAg
ICAgIChXZWJDb3JlOjpyb290KToKKyAgICAgICAgKiBjc3MvQ1NTQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGNzcy9DU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbi5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogY3NzL0NTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmg6IFJlbW92ZWQuCisgICAgICAg
ICogY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXROZWVkc1N0eWxlUmVjYWxjKToKKyAgICAg
ICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGVJbmxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZUZvclNWR0ZvbnRGYWNlRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OkNTU1N0eWxl
RGVjbGFyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbjo6cGFy
ZW50U3R5bGVTaGVldCk6CisgICAgICAgIAorICAgICAgICAgICAgTWVyZ2UgdGhlIENTU0VsZW1l
bnRTdHlsZURlY2xhcmF0aW9uOjpzdHlsZVNoZWV0KCkgbG9naWMgaGVyZS4KKyAgICAgICAgCisg
ICAgICAgICogY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlRGVjbGFyYXRpb246OnBhcmVudFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6Y2xlYXJQYXJlbnRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlRGVjbGFyYXRpb246OnBhcmVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6Y2xlYXJQYXJlbnRFbGVtZW50KToKKyAgICAgICAgKiBjc3MvQ1NTU3R5
bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVsZTo6c2V0U2VsZWN0b3JU
ZXh0KToKKyAgICAgICAgCisgICAgICAgICAgICBDU1NTdHlsZVJ1bGUncyBzdHlsZSBkZWNsYXJh
dGlvbiBjYW4ndCBoYXZlIGlzRWxlbWVudFN0eWxlRGVjbGFyYXRpb24gc2V0LCB0aGUgZGVhZCBj
b2RlIGNhbiBiZSByZW1vdmVkLgorICAgICAgICAgICAgVGhpcyBpcyBhc3NlcnRlZCBpbiBzZXRE
ZWNsYXJhdGlvbigpIGFuZCBhZ2FpbiBpbXBsaWNpdGx5IGluIHRoZSBkZXN0cnVjdG9yIChieSBj
bGVhclBhcmVudFJ1bGUoKSkuCisgICAgICAgIAorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmNyZWF0ZUlubGluZVN0eWxl
RGVjbCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpkZXN0cm95SW5saW5lU3R5
bGVEZWNsKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmVuc3VyZUlubGluZVN0
eWxlRGVjbCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50Ojpjb3B5Tm9uQXR0cmli
dXRlUHJvcGVydGllcyk6CisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmlubGluZVN0eWxlRGVjbCk6CisgICAgICAgICogZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxl
Q29tbWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5bGVJZk5lZWRlZCk6CisgICAgICAgICog
ZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkpOgorICAgICAgICAqIGh0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0QnViYmxlUG9z
aXRpb24pOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c2V0UG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpyZXNldFBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6bWFrZU9w
YXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Om1ha2VU
cmFuc3BhcmVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
b250RmFjZUVsZW1lbnQ6OlNWR0ZvbnRGYWNlRWxlbWVudCk6CisKIDIwMTItMDEtMjMgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IFF0
IGJ1aWxkLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDEwNTYyMCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MzQsNyArNDM0
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCiAgICAgY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAogICAgIGNzcy9DU1NDdXJz
b3JJbWFnZVZhbHVlLmNwcAotICAgIGNzcy9DU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbi5jcHAK
ICAgICBjc3MvQ1NTRmxleFZhbHVlLmNwcAogICAgIGNzcy9DU1NGb250RmFjZS5jcHAKICAgICBj
c3MvQ1NTRm9udEZhY2VSdWxlLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CShyZXZpc2lvbiAxMDU2MzApCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjg4LDggKzEyODgsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDdXJzb3JJbWFnZVZhbHVlLmggXAotCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NFbGVtZW50U3R5
bGVEZWNsYXJhdGlvbi5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NFbGVtZW50U3R5bGVE
ZWNsYXJhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmxleFZhbHVlLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZsZXhWYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2UuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTA1NjMwKQorKysg
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtNDAwLDcgKzQwMCw2
IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
IFwKICAgICBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAgXAotICAgIGNzcy9DU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbi5jcHAgXAog
ICAgIGNzcy9DU1NGbGV4VmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTRm9udEZhY2UuY3BwIFwKICAg
ICBjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcCBcCkBAIC0xNTEyLDcgKzE1MTEsNiBAQCBIRUFERVJT
ICs9IFwKICAgICBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmggXAogICAgIGNzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5oIFwKICAgICBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oIFwKLSAg
ICBjc3MvQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24uaCBcCiAgICAgY3NzL0NTU0ZsZXhWYWx1
ZS5oIFwKICAgICBjc3MvQ1NTRm9udEZhY2UuaCBcCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5o
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDEwNTYzMCkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNDg3LDcgKzQ4Nyw2IEBACiAgICAg
ICAgICAgICAnYnJpZGdlL3J1bnRpbWVfcm9vdC5oJywKICAgICAgICAgICAgICdjc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NDdXJzb3JJbWFn
ZVZhbHVlLmgnLAotICAgICAgICAgICAgJ2Nzcy9DU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbi5o
JywKICAgICAgICAgICAgICdjc3MvQ1NTSGVscGVyLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NJ
bWFnZUdlbmVyYXRvclZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NJbWFnZVZhbHVlLmgn
LApAQCAtMjM5MCw3ICsyMzg5LDYgQEAKICAgICAgICAgICAgICdjc3MvQ1NTQ3Jvc3NmYWRlVmFs
dWUuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaCcsCiAgICAgICAg
ICAgICAnY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwJywKLSAgICAgICAgICAgICdjc3MvQ1NT
RWxlbWVudFN0eWxlRGVjbGFyYXRpb24uY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTRmxleFZh
bHVlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU0ZsZXhWYWx1ZS5oJywKICAgICAgICAgICAg
ICdjc3MvQ1NTRm9udEZhY2UuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMDU2MzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzI5NjYs
NjIgKzMyOTY2LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmNwcCIKLQkJCQk+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU0Vs
ZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NGbGV4VmFsdWUuY3BwIgogCQkJCT4KIAkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEwNTYzMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzAw
NSw4ICszMDA1LDYgQEAKIAkJOEMwRTMzNEQxMzhBOTJDNzAwOERBOTRGIC8qIExldmVsREJUcmFu
c2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEMwRTMzNDkxMzhBOTJDNzAwOERBOTRGIC8qIExldmVsREJUcmFuc2FjdGlvbi5oICovOyB9Owog
CQk4QzBFMzM0RTEzOEE5MkM3MDA4REE5NEYgLyogTGV2ZWxEQldyaXRlQmF0Y2guY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEMwRTMzNEExMzhBOTJD
NzAwOERBOTRGIC8qIExldmVsREJXcml0ZUJhdGNoLmNwcCAqLzsgfTsKIAkJOEMwRTMzNEYxMzhB
OTJDNzAwOERBOTRGIC8qIExldmVsREJXcml0ZUJhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QzBFMzM0QjEzOEE5MkM3MDA4REE5NEYgLyogTGV2
ZWxEQldyaXRlQmF0Y2guaCAqLzsgfTsKLQkJOEMxMDkxOTgxNDk0RkIxMjAwQjVEM0ZFIC8qIENT
U0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhDMTA5MTk2MTQ5NEZCMTIwMEI1RDNGRSAvKiBDU1NFbGVtZW50
U3R5bGVEZWNsYXJhdGlvbi5jcHAgKi87IH07Ci0JCThDMTA5MTk5MTQ5NEZCMTIwMEI1RDNGRSAv
KiBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEMxMDkxOTcxNDk0RkIxMjAwQjVEM0ZFIC8qIENTU0VsZW1l
bnRTdHlsZURlY2xhcmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOEM2RUE2MTkxMUVGN0UwNDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEM2RUE2MTcxMUVGN0UwNDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
ICovOyB9OwogCQk4QzZFQTYxQTExRUY3RTA0MDBGRDhFRTMgLyogUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEM2
RUE2MTgxMUVGN0UwNDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCAqLzsgfTsK
IAkJOENBREYyQTkxMzVDN0IzNjAwOUVGNDNGIC8qIExldmVsREJDb21wYXJhdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Q0FERjJBMzEzNUM3QjM2
MDA5RUY0M0YgLyogTGV2ZWxEQkNvbXBhcmF0b3IuaCAqLzsgfTsKQEAgLTk4MjgsOCArOTgyNiw2
IEBACiAJCThDMEUzMzQ5MTM4QTkyQzcwMDhEQTk0RiAvKiBMZXZlbERCVHJhbnNhY3Rpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGV2ZWxEQlRyYW5zYWN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThDMEUzMzRBMTM4QTkyQzcwMDhEQTk0RiAvKiBM
ZXZlbERCV3JpdGVCYXRjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMZXZlbERCV3JpdGVCYXRjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThD
MEUzMzRCMTM4QTkyQzcwMDhEQTk0RiAvKiBMZXZlbERCV3JpdGVCYXRjaC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMZXZlbERCV3JpdGVCYXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk4QzEwOTE5NjE0OTRGQjEyMDBCNUQzRkUgLyogQ1NTRWxlbWVudFN0
eWxlRGVjbGFyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk4QzEwOTE5NzE0OTRGQjEyMDBCNUQzRkUgLyogQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRWxlbWVudFN0eWxlRGVj
bGFyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEM2RUE2MTcxMUVGN0Uw
NDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHA7IHBhdGggPSBn
ZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4QzZFQTYxODExRUY3RTA0MDBGRDhFRTMgLyogUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmg7IHBhdGggPSBnZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOENBREYyQTMxMzVDN0IzNjAwOUVGNDNGIC8qIExldmVsREJD
b21wYXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExldmVsREJDb21w
YXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg5Niw4ICsxOTg5Miw2
IEBACiAJCQkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmgg
Ki8sCiAJCQkJQUEwOTc4RUQwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1cnNvckltYWdlVmFsdWUu
Y3BwICovLAogCQkJCUFBMDk3OEVFMEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZh
bHVlLmggKi8sCi0JCQkJOEMxMDkxOTYxNDk0RkIxMjAwQjVEM0ZFIC8qIENTU0VsZW1lbnRTdHls
ZURlY2xhcmF0aW9uLmNwcCAqLywKLQkJCQk4QzEwOTE5NzE0OTRGQjEyMDBCNUQzRkUgLyogQ1NT
RWxlbWVudFN0eWxlRGVjbGFyYXRpb24uaCAqLywKIAkJCQk1MzI1RTRENTEzQTZDODhCMDA0MDRB
MzYgLyogQ1NTRmxleFZhbHVlLmNwcCAqLywKIAkJCQk1MzI1RTRENjEzQTZDODhCMDA0MDRBMzYg
LyogQ1NTRmxleFZhbHVlLmggKi8sCiAJCQkJQkM2NEI0Q0QwQ0I0Mjk4QTAwNUYyQjYyIC8qIENT
U0ZvbnRGYWNlLmNwcCAqLywKQEAgLTIxMjE1LDcgKzIxMjA5LDYgQEAKIAkJCQlCQ0VBNDc5MDA5
N0NBQUM4MDA5NEM5RTQgLyogQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRDhGRUJERDE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJz
b3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk4QzEwOTE5OTE0OTRGQjEyMDBCNUQz
RkUgLyogQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUz
MjVFNEQ4MTNBNkM4OEIwMDQwNEEzNiAvKiBDU1NGbGV4VmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNjRCNEQ2MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTgwRTZDRkQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNDYxNSw3ICsyNDYwOCw2IEBACiAJCQkJQkNFQTQ3OEYwOTdDQUFD
ODAwOTRDOUU0IC8qIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDhGRUJEQzE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQUEyMUVDQ0EwQUJGMEZCQTAwMkI4MzRDIC8qIENTU0N1cnNv
ckltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOEMxMDkxOTgxNDk0RkIxMjAwQjVE
M0ZFIC8qIENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUzMjVFNEQ3MTNBNkM4OEIwMDQwNEEzNiAvKiBDU1NGbGV4VmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM2NEI0RDUwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4MEU2Q0U3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1
bGUuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMTA1NjIwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyLDggKzIyLDggQEAKICNp
Zm5kZWYgSlNET01CaW5kaW5nX2gKICNkZWZpbmUgSlNET01CaW5kaW5nX2gKIAotI2luY2x1ZGUg
IkNTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5o
IgorI2luY2x1ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NT
U3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyLmgiCkBAIC0yMTAsNyArMjEwLDcgQEAgZW51bSBQYXJhbWV0ZXJNaXNzaW5n
UG9saWN5IHsKICAgICAgICAgaWYgKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZS0+
cGFyZW50U3R5bGVTaGVldCgpKQogICAgICAgICAgICAgcmV0dXJuIHJvb3Qoc3R5bGVTaGVldCk7
CiAgICAgICAgIC8vIEEgc3R5bGUgZGVjbGFyYXRpb24gd2l0aCBhbiBhc3NvY2lhdGVkIGVsZW1l
bnQgc2hvdWxkJ3ZlIHJldHVybmVkIGEgc3R5bGUgc2hlZXQgYWJvdmUuCi0gICAgICAgIEFTU0VS
VCghc3R5bGUtPmlzRWxlbWVudFN0eWxlRGVjbGFyYXRpb24oKSB8fCAhc3RhdGljX2Nhc3Q8Q1NT
RWxlbWVudFN0eWxlRGVjbGFyYXRpb24qPihzdHlsZSktPmVsZW1lbnQoKSk7CisgICAgICAgIEFT
U0VSVCghc3R5bGUtPmlzRWxlbWVudFN0eWxlRGVjbGFyYXRpb24oKSB8fCAhc3RhdGljX2Nhc3Q8
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPihzdHlsZSktPnBhcmVudEVsZW1lbnQoKSk7CiAg
ICAgICAgIHJldHVybiBzdHlsZTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbElu
T25lLmNwcAkocmV2aXNpb24gMTA1NjIwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbElu
T25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkNTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAiCiAjaW5jbHVkZSAiQ1NTQ3Jvc3NmYWRlVmFsdWUu
Y3BwIgogI2luY2x1ZGUgIkNTU0N1cnNvckltYWdlVmFsdWUuY3BwIgotI2luY2x1ZGUgIkNTU0Vs
ZW1lbnRTdHlsZURlY2xhcmF0aW9uLmNwcCIKICNpbmNsdWRlICJDU1NGbGV4VmFsdWUuY3BwIgog
I2luY2x1ZGUgIkNTU0ZvbnRGYWNlLmNwcCIKICNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuY3Bw
IgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRWxlbWVudFN0eWxlRGVjbGFy
YXRpb24uY3BwCShyZXZpc2lvbiAxMDU2MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRWxl
bWVudFN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ1NTRWxlbWVudFN0
eWxlRGVjbGFyYXRpb24uaCIKLQotI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1DU1NTdHlsZVNoZWV0KiBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlv
bjo6c3R5bGVTaGVldCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2VsZW1lbnQpCi0gICAgICAgIHJl
dHVybiAwOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKTsK
LSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm4gMDsKLSAgICAvLyBJZiB0aGlzIGlz
IG5vdCBhbiBpbmxpbmUgZGVjbGFyYXRpb24gdGhlbiBpdCBpcyBhbiBTVkcgZm9udCBmYWNlIGRl
Y2xhcmF0aW9uLgotICAgIHJldHVybiBtX2lzSW5saW5lU3R5bGVEZWNsYXJhdGlvbiA/IGRvY3Vt
ZW50LT5lbGVtZW50U2hlZXQoKSA6IGRvY3VtZW50LT5tYXBwZWRFbGVtZW50U2hlZXQoKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Vs
ZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgJKHJldmlzaW9uIDEwNTYzMikKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbi5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENTU0VsZW1lbnRTdHlsZURl
Y2xhcmF0aW9uX2gKLSNkZWZpbmUgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb25faAotCi0jaW5j
bHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU1ZHRm9udEZhY2VFbGVtZW50Owot
Y2xhc3MgU3R5bGVkRWxlbWVudDsKLQotY2xhc3MgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24g
OiBwdWJsaWMgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uPiBjcmVhdGVJbmxpbmUoU3R5
bGVkRWxlbWVudCogZWxlbWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0VsZW1lbnRTdHls
ZURlY2xhcmF0aW9uKGVsZW1lbnQsIHRydWUpKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENT
U0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uPiBjcmVhdGVGb3JTVkdGb250RmFjZUVsZW1lbnQoU3R5
bGVkRWxlbWVudCogZWxlbWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0VsZW1lbnRTdHls
ZURlY2xhcmF0aW9uKGVsZW1lbnQsIGZhbHNlKSk7IH0KLQotICAgIFN0eWxlZEVsZW1lbnQqIGVs
ZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQ7IH0KLSAgICB2b2lkIGNsZWFyRWxlbWVu
dCgpIHsgbV9lbGVtZW50ID0gMDsgfQotCi0gICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0KiBzdHls
ZVNoZWV0KCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRp
b24oU3R5bGVkRWxlbWVudCogZWxlbWVudCwgYm9vbCBpc0lubGluZSkKLSAgICAgICAgOiBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpCi0gICAgICAgICwgbV9lbGVtZW50KGVsZW1lbnQpCi0g
ICAgewotICAgICAgICBtX2lzRWxlbWVudFN0eWxlRGVjbGFyYXRpb24gPSB0cnVlOwotICAgICAg
ICBtX2lzSW5saW5lU3R5bGVEZWNsYXJhdGlvbiA9IGlzSW5saW5lOwotICAgIH0KLQotICAgIHZp
cnR1YWwgfkNTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKCkgeyB9Ci0KLXByaXZhdGU6Ci0gICAg
U3R5bGVkRWxlbWVudCogbV9lbGVtZW50OwotfTsKLQotaW5saW5lIENTU0VsZW1lbnRTdHlsZURl
Y2xhcmF0aW9uKiB0b0NTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uKiBkZWNsKQotewotICAgIEFTU0VSVCghZGVjbCB8fCBkZWNsLT5pc0VsZW1lbnRT
dHlsZURlY2xhcmF0aW9uKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NFbGVtZW50U3R5
bGVEZWNsYXJhdGlvbio+KGRlY2wpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbl9oCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDEw
NTYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgogCi0jaW5jbHVkZSAiQ1NT
RWxlbWVudFN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NJbWFnZVZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlMb25naGFuZC5oIgpA
QCAtNjYsMTEgKzY1LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMp
CiAgICAgICAgIGlmICghc19jdXJyZW50RGVjbC0+aXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRp
b24qIGlubGluZURlY2wgPSB0b0NTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKHNfY3VycmVudERl
Y2wpOwotICAgICAgICBpZiAoIWlubGluZURlY2wtPmVsZW1lbnQoKSkKKyAgICAgICAgaWYgKCFz
X2N1cnJlbnREZWNsLT5lbGVtZW50KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAg
bV9tdXRhdGlvblJlY2lwaWVudHMgPSBNdXRhdGlvbk9ic2VydmVySW50ZXJlc3RHcm91cDo6Y3Jl
YXRlRm9yQXR0cmlidXRlc011dGF0aW9uKGlubGluZURlY2wtPmVsZW1lbnQoKSwgSFRNTE5hbWVz
OjpzdHlsZUF0dHIpOwogICAgICAgICBpZiAoIW1fbXV0YXRpb25SZWNpcGllbnRzKQogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtOTEsMTcgKzg3LDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1f
bXV0YXRpb25SZWNpcGllbnRzLT5lbnF1ZXVlTXV0YXRpb25SZWNvcmQobV9tdXRhdGlvbik7CiAg
ICAgICAgIHNfc2hvdWxkRGVsaXZlciA9IGZhbHNlOwogI2VuZGlmCi0KICAgICAgICAgaWYgKCFz
X3Nob3VsZE5vdGlmeUluc3BlY3RvcikgewogICAgICAgICAgICAgc19jdXJyZW50RGVjbCA9IDA7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQotICAgICAgICBDU1NFbGVtZW50U3R5
bGVEZWNsYXJhdGlvbiogaW5saW5lRGVjbCA9IHRvQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24o
c19jdXJyZW50RGVjbCk7CisgICAgICAgIGlmIChzX2N1cnJlbnREZWNsLT5pc0lubGluZVN0eWxl
RGVjbGFyYXRpb24oKSAmJiBzX2N1cnJlbnREZWNsLT5wYXJlbnRFbGVtZW50KCkgJiYgc19jdXJy
ZW50RGVjbC0+cGFyZW50RWxlbWVudCgpLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnZhbGlkYXRlU3R5bGVBdHRyKHNfY3VycmVudERlY2wt
PnBhcmVudEVsZW1lbnQoKS0+ZG9jdW1lbnQoKSwgc19jdXJyZW50RGVjbC0+cGFyZW50RWxlbWVu
dCgpKTsKICAgICAgICAgc19jdXJyZW50RGVjbCA9IDA7CiAgICAgICAgIHNfc2hvdWxkTm90aWZ5
SW5zcGVjdG9yID0gZmFsc2U7Ci0gICAgICAgIGlmIChpbmxpbmVEZWNsLT5lbGVtZW50KCkgJiYg
aW5saW5lRGVjbC0+ZWxlbWVudCgpLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRJbnZhbGlkYXRlU3R5bGVBdHRyKGlubGluZURlY2wtPmVsZW1l
bnQoKS0+ZG9jdW1lbnQoKSwgaW5saW5lRGVjbC0+ZWxlbWVudCgpKTsKICAgICB9CiAKICNpZiBF
TkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpAQCAtMTgwLDYgKzE3MywxMSBAQCBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbjo6Q1NTTXV0YWJsZVN0CiAgICAgfQogfQogCitDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbjo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oU3R5bGVkRWxlbWVudCog
ZWxlbWVudCwgYm9vbCBpc0lubGluZSkgCisgICAgOiBDU1NTdHlsZURlY2xhcmF0aW9uKGVsZW1l
bnQsIGlzSW5saW5lKQoreyAKK30KKwogQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246On5DU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpCiB7CiB9CkBAIC02NDYsOCArNjQ0LDggQEAgU3RyaW5n
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1vdgogCiB2b2lkIENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uOjpzZXROZWVkc1N0eWxlUmVjYWxjKCkKIHsKLSAgICBpZiAoaXNFbGVtZW50
U3R5bGVEZWNsYXJhdGlvbigpICYmIHN0YXRpY19jYXN0PENTU0VsZW1lbnRTdHlsZURlY2xhcmF0
aW9uKj4odGhpcyktPmVsZW1lbnQoKSkgewotICAgICAgICBTdHlsZWRFbGVtZW50KiBlbGVtZW50
ID0gc3RhdGljX2Nhc3Q8Q1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24qPih0aGlzKS0+ZWxlbWVu
dCgpOworICAgIGlmIChpc0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKCkgJiYgcGFyZW50RWxlbWVu
dCgpKSB7CisgICAgICAgIFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQgPSBwYXJlbnRFbGVtZW50KCk7
CiAgICAgICAgIGlmICghaXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKCkpCiAgICAgICAgICAgICBl
bGVtZW50LT5zZXROZWVkc1N0eWxlUmVjYWxjKEZ1bGxTdHlsZUNoYW5nZSk7CiAgICAgICAgIGVs
c2UgewpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uLmgJKHJldmlzaW9uIDEwNTYyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU3R5bGVkRWxlbWVudDsKKwogY2xhc3MgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb25Db25zdEl0ZXJhdG9yIHsKIHB1YmxpYzoKICAgICBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbkNvbnN0SXRlcmF0b3IoY29uc3QgQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qIGRlY2wsIENTU1Byb3BlcnR5KiBjdXJyZW50KTsKQEAgLTczLDYgKzc1LDE0
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24oMCwgcHJvcGVydGllcykpOwogICAgIH0KKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gY3JlYXRlSW5saW5lKFN0eWxlZEVs
ZW1lbnQqIGVsZW1lbnQpCisgICAgeyAKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbihlbGVtZW50LCB0cnVlKSk7CisgICAgfQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBjcmVhdGVGb3JTVkdGb250
RmFjZUVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgCisgICAgeyAKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbihlbGVtZW50LCBmYWxz
ZSkpOworICAgIH0KIAogICAgIC8vIFVzZWQgYnkgU3R5bGVkRWxlbWVudDo6Y29weU5vbkF0dHJp
YnV0ZVByb3BlcnRpZXMoKS4KICAgICB2b2lkIGNvcHlQcm9wZXJ0aWVzRnJvbShjb25zdCBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbiYpOwpAQCAtMTI4LDE1ICsxMzgsMTYgQEAgcHVibGljOgog
ICAgIHZvaWQgYWRkU3VicmVzb3VyY2VTdHlsZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKTsKIAog
cHJvdGVjdGVkOgotICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKENTU1J1bGUqIHBhcmVu
dFJ1bGUpOwogICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKCk7CiAKICAgICB2b2lkIHNl
dFByb3BlcnR5SW50ZXJuYWwoY29uc3QgQ1NTUHJvcGVydHkmLCBDU1NQcm9wZXJ0eSogc2xvdCA9
IDApOwogICAgIFN0cmluZyByZW1vdmVQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgYm9vbCBub3Rp
ZnlDaGFuZ2VkLCBib29sIHJldHVyblRleHQpOwogCiBwcml2YXRlOgorICAgIENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uKENTU1J1bGUqIHBhcmVudFJ1bGUpOwogICAgIENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uKENTU1J1bGUqIHBhcmVudFJ1bGUsIGNvbnN0IFZlY3RvcjxDU1NQcm9wZXJ0
eT4mKTsKICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbihDU1NSdWxlKiBwYXJlbnRSdWxl
LCBjb25zdCBDU1NQcm9wZXJ0eSogY29uc3QgKiwgaW50IG51bVByb3BlcnRpZXMpOworICAgIENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uKFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgaXNJ
bmxpbmUpOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uPiBtYWtlTXV0YWJsZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
RGVjbGFyYXRpb24uY3BwCShyZXZpc2lvbiAxMDU2MjApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAK
LSNpbmNsdWRlICJDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVk
ZSAiQ1NTUHJvcGVydHkuaCIKQEAgLTM5LDI0ICszOCw0MiBAQCB1c2luZyBuYW1lc3BhY2UgV1RG
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNTU1N0eWxlRGVjbGFyYXRpb246OkNTU1N0eWxl
RGVjbGFyYXRpb24oQ1NTUnVsZSogcGFyZW50KQotICAgIDogbV9zdHJpY3RQYXJzaW5nKCFwYXJl
bnQgfHwgcGFyZW50LT51c2VTdHJpY3RQYXJzaW5nKCkpCitDU1NTdHlsZURlY2xhcmF0aW9uOjpD
U1NTdHlsZURlY2xhcmF0aW9uKENTU1J1bGUqIHBhcmVudFJ1bGUpCisgICAgOiBtX3N0cmljdFBh
cnNpbmcoIXBhcmVudFJ1bGUgfHwgcGFyZW50UnVsZS0+dXNlU3RyaWN0UGFyc2luZygpKQogI2lm
bmRlZiBOREVCVUcKICAgICAsIG1faXRlcmF0b3JDb3VudCgwKQogI2VuZGlmCiAgICAgLCBtX2lz
RWxlbWVudFN0eWxlRGVjbGFyYXRpb24oZmFsc2UpCiAgICAgLCBtX2lzSW5saW5lU3R5bGVEZWNs
YXJhdGlvbihmYWxzZSkKLSAgICAsIG1fcGFyZW50UnVsZShwYXJlbnQpCisgICAgLCBtX3BhcmVu
dChwYXJlbnRSdWxlKQoreworfQorICAgIAorQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Q1NTU3R5bGVE
ZWNsYXJhdGlvbihTdHlsZWRFbGVtZW50KiBwYXJlbnRFbGVtZW50LCBib29sIGlzSW5saW5lKQor
ICAgIDogbV9zdHJpY3RQYXJzaW5nKGZhbHNlKQorI2lmbmRlZiBOREVCVUcKKyAgICAsIG1faXRl
cmF0b3JDb3VudCgwKQorI2VuZGlmCisgICAgLCBtX2lzRWxlbWVudFN0eWxlRGVjbGFyYXRpb24o
dHJ1ZSkKKyAgICAsIG1faXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKGlzSW5saW5lKQorICAgICwg
bV9wYXJlbnQocGFyZW50RWxlbWVudCkKIHsKIH0KIAogQ1NTU3R5bGVTaGVldCogQ1NTU3R5bGVE
ZWNsYXJhdGlvbjo6cGFyZW50U3R5bGVTaGVldCgpIGNvbnN0CiB7Ci0gICAgaWYgKHBhcmVudFJ1
bGUoKSkKLSAgICAgICAgcmV0dXJuIHBhcmVudFJ1bGUoKS0+cGFyZW50U3R5bGVTaGVldCgpOwot
ICAgIGlmIChpc0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKCkpCi0gICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbio+KHRoaXMpLT5zdHlsZVNo
ZWV0KCk7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKG1faXNFbGVtZW50U3R5bGVEZWNsYXJhdGlv
bikgeworICAgICAgICBpZiAoIW1fcGFyZW50LmVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9wYXJlbnQuZWxlbWVudC0+ZG9jdW1l
bnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICAvLyBJZiB0aGlzIGlzIG5vdCBhbiBpbmxpbmUgZGVjbGFyYXRpb24gdGhlbiBpdCBpcyBh
biBTVkcgZm9udCBmYWNlIGRlY2xhcmF0aW9uLgorICAgICAgICByZXR1cm4gbV9pc0lubGluZVN0
eWxlRGVjbGFyYXRpb24gPyBkb2N1bWVudC0+ZWxlbWVudFNoZWV0KCkgOiBkb2N1bWVudC0+bWFw
cGVkRWxlbWVudFNoZWV0KCk7CisgICAgfQorICAgIGlmICghbV9wYXJlbnQucnVsZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fcGFyZW50LnJ1bGUtPnBhcmVudFN0eWxlU2hlZXQo
KTsKIH0KIAogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJv
cGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAkocmV2aXNpb24gMTA1NjIwKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQCBjbGFzcyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENT
U1Byb3BlcnR5OwogY2xhc3MgQ1NTU3R5bGVTaGVldDsKIGNsYXNzIENTU1ZhbHVlOworY2xhc3Mg
U3R5bGVkRWxlbWVudDsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIApAQCAtNDAsOCAr
NDEsMTEgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaXNQcm9wZXJ0eU5hbWUoY29uc3Qg
U3RyaW5nJik7CiAKLSAgICBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3QgeyByZXR1cm4gbV9w
YXJlbnRSdWxlOyB9Ci0gICAgdm9pZCBjbGVhclBhcmVudFJ1bGUoKSB7IG1fcGFyZW50UnVsZSA9
IDA7IH0KKyAgICBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3QgeyByZXR1cm4gbV9pc0VsZW1l
bnRTdHlsZURlY2xhcmF0aW9uID8gMCA6IG1fcGFyZW50LnJ1bGU7IH0KKyAgICB2b2lkIGNsZWFy
UGFyZW50UnVsZSgpIHsgQVNTRVJUKCFtX2lzRWxlbWVudFN0eWxlRGVjbGFyYXRpb24pOyBtX3Bh
cmVudC5ydWxlID0gMDsgfQorCisgICAgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCgpIGNv
bnN0IHsgQVNTRVJUKG1faXNFbGVtZW50U3R5bGVEZWNsYXJhdGlvbik7IHJldHVybiBtX3BhcmVu
dC5lbGVtZW50OyB9CisgICAgdm9pZCBjbGVhclBhcmVudEVsZW1lbnQoKSB7IEFTU0VSVChtX2lz
RWxlbWVudFN0eWxlRGVjbGFyYXRpb24pOyBtX3BhcmVudC5lbGVtZW50ID0gMDsgfQogCiAgICAg
Q1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCgpIGNvbnN0OwogCkBAIC04Niw2ICs5MCw3
IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIENTU1N0eWxlRGVjbGFyYXRpb24oQ1NTUnVs
ZSogcGFyZW50UnVsZSA9IDApOworICAgIENTU1N0eWxlRGVjbGFyYXRpb24oU3R5bGVkRWxlbWVu
dCogcGFyZW50RWxlbWVudCwgYm9vbCBpc0lubGluZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY3Nz
UHJvcGVydHlNYXRjaGVzKGNvbnN0IENTU1Byb3BlcnR5KikgY29uc3Q7CiAKQEAgLTk3LDEzICsx
MDIsMTYgQEAgcHJvdGVjdGVkOgogI2lmbmRlZiBOREVCVUcKICAgICB1bnNpZ25lZCBtX2l0ZXJh
dG9yQ291bnQgOiA0OwogI2VuZGlmCi0KLSAgICAvLyBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlv
biBiaXRzOgogICAgIGJvb2wgbV9pc0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uIDogMTsKICAgICBi
b29sIG1faXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uIDogMTsKIAogcHJpdmF0ZToKLSAgICBDU1NS
dWxlKiBtX3BhcmVudFJ1bGU7CisgICAgdW5pb24gUGFyZW50IHsKKyAgICAgICAgUGFyZW50KENT
U1J1bGUqIHJ1bGUpIDogcnVsZShydWxlKSB7IH0KKyAgICAgICAgUGFyZW50KFN0eWxlZEVsZW1l
bnQqIGVsZW1lbnQpIDogZWxlbWVudChlbGVtZW50KSB7IH0KKyAgICAgICAgQ1NTUnVsZSogcnVs
ZTsKKyAgICAgICAgU3R5bGVkRWxlbWVudCogZWxlbWVudDsKKyAgICB9IG1fcGFyZW50OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlUnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVs
ZS5jcHAJKHJldmlzaW9uIDEwNTYyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCwxNSArOTgsOCBAQCBTdHJpbmcgQ1NTU3R5bGVS
dWxlOjpzZWxlY3RvclRleHQoKSBjb25zCiB2b2lkIENTU1N0eWxlUnVsZTo6c2V0U2VsZWN0b3JU
ZXh0KGNvbnN0IFN0cmluZyYgc2VsZWN0b3JUZXh0KQogewogICAgIERvY3VtZW50KiBkb2MgPSAw
OwotCiAgICAgaWYgKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBtX3N0eWxlLT5wYXJlbnRT
dHlsZVNoZWV0KCkpCiAgICAgICAgIGRvYyA9IHN0eWxlU2hlZXQtPmZpbmREb2N1bWVudCgpOwot
Ci0gICAgaWYgKCFkb2MgJiYgbV9zdHlsZS0+aXNFbGVtZW50U3R5bGVEZWNsYXJhdGlvbigpKSB7
Ci0gICAgICAgIGlmIChTdHlsZWRFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8Q1NTRWxl
bWVudFN0eWxlRGVjbGFyYXRpb24qPihtX3N0eWxlLmdldCgpKS0+ZWxlbWVudCgpKQotICAgICAg
ICAgICAgZG9jID0gZWxlbWVudC0+ZG9jdW1lbnQoKTsKLSAgICB9Ci0KICAgICBpZiAoIWRvYykK
ICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oCShyZXZp
c2lvbiAxMDU2MjApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBjc3NUZXh0KCkg
Y29uc3Q7CiAKICAgICB2b2lkIGFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQ
YXJzZXJTZWxlY3Rvcj4gPiYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0b3JMaXN0LmFkb3B0U2VsZWN0
b3JWZWN0b3Ioc2VsZWN0b3JzKTsgfQotICAgIHZvaWQgc2V0RGVjbGFyYXRpb24oUGFzc1JlZlB0
cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUpIHsgbV9zdHlsZSA9IHN0eWxlOyB9
CisgICAgdm9pZCBzZXREZWNsYXJhdGlvbihQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uPiBzdHlsZSkgeyBBU1NFUlQoc3R5bGUtPnBhcmVudFJ1bGUoKSA9PSB0aGlzKTsgbV9z
dHlsZSA9IHN0eWxlOyB9CiAKICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlz
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3JMaXN0OyB9CiAgICAgQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uKCkgeyByZXR1cm4gbV9zdHlsZS5nZXQoKTsgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAkocmV2aXNpb24gMTA1NjMwKQorKysg
U291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQXR0
cmlidXRlLmgiCi0jaW5jbHVkZSAiQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNs
dWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2Vs
ZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkcy5oIgpAQCAtMTMwLDcgKzEzMCw3IEBAIFBhc3NSZWZQdHI8QXR0cmlidXRlPiBTdHls
ZWRFbGVtZW50OjpjcmUKIHZvaWQgU3R5bGVkRWxlbWVudDo6Y3JlYXRlSW5saW5lU3R5bGVEZWNs
KCkKIHsKICAgICBBU1NFUlQoIW1faW5saW5lU3R5bGVEZWNsKTsKLSAgICBtX2lubGluZVN0eWxl
RGVjbCA9IENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGVJbmxpbmUodGhpcyk7Cisg
ICAgbV9pbmxpbmVTdHlsZURlY2wgPSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRl
SW5saW5lKHRoaXMpOwogICAgIG1faW5saW5lU3R5bGVEZWNsLT5zZXRTdHJpY3RQYXJzaW5nKGlz
SFRNTEVsZW1lbnQoKSAmJiAhZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpOwogfQogCkBAIC0x
MzgsNyArMTM4LDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjpkZXN0cm95SW5saW5lU3R5bGVEZQog
ewogICAgIGlmICghbV9pbmxpbmVTdHlsZURlY2wpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2lu
bGluZVN0eWxlRGVjbC0+Y2xlYXJFbGVtZW50KCk7CisgICAgbV9pbmxpbmVTdHlsZURlY2wtPmNs
ZWFyUGFyZW50RWxlbWVudCgpOwogICAgIG1faW5saW5lU3R5bGVEZWNsID0gMDsKIH0KIApAQCAt
MjQwLDcgKzI0MCw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUK
ICAgICB9CiB9CiAKLUNTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBTdHlsZWRFbGVtZW50Ojpl
bnN1cmVJbmxpbmVTdHlsZURlY2woKQorQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIFN0eWxl
ZEVsZW1lbnQ6OmVuc3VyZUlubGluZVN0eWxlRGVjbCgpCiB7CiAgICAgaWYgKCFtX2lubGluZVN0
eWxlRGVjbCkKICAgICAgICAgY3JlYXRlSW5saW5lU3R5bGVEZWNsKCk7CkBAIC00MzEsNyArNDMx
LDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50Ojpjb3B5Tm9uQXR0cmlidXRlUHJvcAogICAgIGlmICgh
c291cmNlLT5pbmxpbmVTdHlsZURlY2woKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ1NTRWxl
bWVudFN0eWxlRGVjbGFyYXRpb24qIGlubGluZVN0eWxlID0gZW5zdXJlSW5saW5lU3R5bGVEZWNs
KCk7CisgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGlubGluZVN0eWxlID0gZW5zdXJl
SW5saW5lU3R5bGVEZWNsKCk7CiAgICAgaW5saW5lU3R5bGUtPmNvcHlQcm9wZXJ0aWVzRnJvbSgq
c291cmNlLT5pbmxpbmVTdHlsZURlY2woKSk7CiAgICAgaW5saW5lU3R5bGUtPnNldFN0cmljdFBh
cnNpbmcoc291cmNlLT5pbmxpbmVTdHlsZURlY2woKS0+dXNlU3RyaWN0UGFyc2luZygpKTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCShyZXZpc2lvbiAxMDU2MzApCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3
ICsyNSw3IEBACiAjaWZuZGVmIFN0eWxlZEVsZW1lbnRfaAogI2RlZmluZSBTdHlsZWRFbGVtZW50
X2gKIAotI2luY2x1ZGUgIkNTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAi
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiTWFwcGVkQXR0cmlidXRlRW50cnkuaCIKIApAQCAtNTksOCArNTksOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZURlY2xzKFZlY3RvcjxD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbio+JikgeyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU3R5
bGVBdHRyaWJ1dGUoKTsKIAotICAgIENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBpbmxpbmVT
dHlsZURlY2woKSBjb25zdCB7IHJldHVybiBtX2lubGluZVN0eWxlRGVjbC5nZXQoKTsgfQotICAg
IENTU0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKKyAg
ICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogaW5saW5lU3R5bGVEZWNsKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbmxpbmVTdHlsZURlY2wuZ2V0KCk7IH0KKyAgICBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbiogZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CiAgICAgdmlydHVhbCBDU1NTdHlsZURl
Y2xhcmF0aW9uKiBzdHlsZSgpIE9WRVJSSURFOwogCiAgICAgY29uc3QgU3BhY2VTcGxpdFN0cmlu
ZyYgY2xhc3NOYW1lcygpIGNvbnN0OwpAQCAtOTMsNyArOTMsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVzdHJveUlubGluZVN0eWxlRGVjbCgpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdHls
ZUF0dHJpYnV0ZSgpIGNvbnN0OwogCi0gICAgUmVmUHRyPENTU0VsZW1lbnRTdHlsZURlY2xhcmF0
aW9uPiBtX2lubGluZVN0eWxlRGVjbDsKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24+IG1faW5saW5lU3R5bGVEZWNsOwogfTsKIAogaW5saW5lIGNvbnN0IFNwYWNlU3BsaXRT
dHJpbmcmIFN0eWxlZEVsZW1lbnQ6OmNsYXNzTmFtZXMoKSBjb25zdApJbmRleDogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJldmlzaW9uIDEwNTYzMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zODUsNyArMzg1LDcgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlS
ZWxhdGl2ZUZvbgogICAgICAgICB9CiAgICAgICAgIGxhc3RTdHlsZWROb2RlID0gbm9kZTsKIAot
ICAgICAgICBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiogaW5saW5lU3R5bGVEZWNsID0gZWxl
bWVudC0+ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CisgICAgICAgIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uKiBpbmxpbmVTdHlsZURlY2wgPSBlbGVtZW50LT5lbnN1cmVJbmxpbmVTdHlsZURl
Y2woKTsKICAgICAgICAgZmxvYXQgY3VycmVudEZvbnRTaXplID0gY29tcHV0ZWRGb250U2l6ZShu
b2RlKTsKICAgICAgICAgZmxvYXQgZGVzaXJlZEZvbnRTaXplID0gbWF4KE1pbmltdW1Gb250U2l6
ZSwgc3RhcnRpbmdGb250U2l6ZXMuZ2V0KG5vZGUpICsgc3R5bGUtPmZvbnRTaXplRGVsdGEoKSk7
CiAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBpbmxpbmVTdHlsZURlY2wtPmdldFBy
b3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlGb250U2l6ZSk7CkBAIC0xMzc2LDcgKzEzNzYsNyBA
QCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphZGRJbmxpbmVTdHlsZUlmCiAKICAgICBpZiAoc3R5
bGVDaGFuZ2UuY3NzU3R5bGUoKS5sZW5ndGgoKSkgewogICAgICAgICBpZiAoc3R5bGVDb250YWlu
ZXIpIHsKLSAgICAgICAgICAgIGlmIChDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiogZXhpc3Rp
bmdTdHlsZSA9IHN0eWxlQ29udGFpbmVyLT5pbmxpbmVTdHlsZURlY2woKSkKKyAgICAgICAgICAg
IGlmIChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZXhpc3RpbmdTdHlsZSA9IHN0eWxlQ29u
dGFpbmVyLT5pbmxpbmVTdHlsZURlY2woKSkKICAgICAgICAgICAgICAgICBzZXROb2RlQXR0cmli
dXRlKHN0eWxlQ29udGFpbmVyLCBzdHlsZUF0dHIsIGV4aXN0aW5nU3R5bGUtPmNzc1RleHQoKSAr
IHN0eWxlQ2hhbmdlLmNzc1N0eWxlKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIHNldE5vZGVBdHRyaWJ1dGUoc3R5bGVDb250YWluZXIsIHN0eWxlQXR0ciwgc3R5bGVDaGFu
Z2UuY3NzU3R5bGUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRv
bkNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlQnV0dG9uQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDEwNTYzMCkKKysrIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIwNSw3ICsyMDUsNyBAQCB2b2lkIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0
CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKG1fdGFyZ2V0LT5kb2N1bWVudCgpKTsKICAgICBjb250YWluZXItPnNldElkQXR0cmli
dXRlKGNvbnRhaW5lckVsZW1lbnRJZGVudGlmaWVyKTsKIAotICAgIENTU0VsZW1lbnRTdHlsZURl
Y2xhcmF0aW9uKiBzdHlsZSA9IGNvbnRhaW5lci0+ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7Cisg
ICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gY29udGFpbmVyLT5lbnN1cmVJ
bmxpbmVTdHlsZURlY2woKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlXZWJr
aXRVc2VyRHJhZywgQ1NTVmFsdWVOb25lKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlXZWJraXRVc2VyU2VsZWN0LCBDU1NWYWx1ZU5vbmUpOwogICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnksIENTU1ZhbHVlUmVhZE9ubHkpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAJKHJldmlzaW9uIDEw
NTYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIHZvaWQgYWRqdXN0QnViYmxlUG9z
aXRpb24oY29uc3QgTAogICAgICAgICBob3N0WSAtPSBjb250YWluZXJMb2NhdGlvbi55KCkgKyBj
b250YWluZXItPmJvcmRlclRvcCgpOwogICAgIH0KIAotICAgIENTU0VsZW1lbnRTdHlsZURlY2xh
cmF0aW9uKiBzdHlsZSA9IGJ1YmJsZS0+ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CisgICAgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gYnViYmxlLT5lbnN1cmVJbmxpbmVTdHls
ZURlY2woKTsKICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlUb3AsIGhvc3RZICsg
aG9zdFJlY3QuaGVpZ2h0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwogICAgIC8vIFRo
ZSAnbGVmdCcgdmFsdWUgb2YgOjotd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93LgogICAg
IGNvbnN0IGludCBidWJibGVBcnJvd1RvcE9mZnNldCA9IDMyOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAkocmV2aXNp
b24gMTA1NjMwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBNZWRpYUNv
bnRyb2xQYW5lbEVsZW1lbnQ6OmVuZERyYWcoKQogCiB2b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudDo6c2V0UG9zaXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIHBvc2l0aW9uKQogewotICAgIENT
U0VsZW1lbnRTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGVuc3VyZUlubGluZVN0eWxlRGVjbCgp
OworICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGVuc3VyZUlubGluZVN0
eWxlRGVjbCgpOwogCiAgICAgZG91YmxlIGxlZnQgPSBwb3NpdGlvbi54KCk7CiAgICAgZG91Ymxl
IHRvcCA9IHBvc2l0aW9uLnkoKTsKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIE1lZGlhQ29udHJv
bFBhbmVsRWxlbWVudDo6c2V0UG9zaXRpCiAKIHZvaWQgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50
OjpyZXNldFBvc2l0aW9uKCkKIHsKLSAgICBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiogc3R5
bGUgPSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKKyAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiogc3R5bGUgPSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKIAogICAgIHN0eWxlLT5yZW1v
dmVQcm9wZXJ0eShDU1NQcm9wZXJ0eUxlZnQpOwogICAgIHN0eWxlLT5yZW1vdmVQcm9wZXJ0eShD
U1NQcm9wZXJ0eVRvcCk7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xQYW5l
bEVsZW1lbnQ6Om1ha2VPcGFxdQogCiAgICAgZG91YmxlIGR1cmF0aW9uID0gZG9jdW1lbnQoKS0+
cGFnZSgpID8gZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVtZSgpLT5tZWRpYUNvbnRyb2xzRmFkZUlu
RHVyYXRpb24oKSA6IDA7CiAKLSAgICBDU1NFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiogc3R5bGUg
PSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKKyAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUgPSBlbnN1cmVJbmxpbmVTdHlsZURlY2woKTsKICAgICBzdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2l0aW9uUHJvcGVydHksIENTU1Byb3BlcnR5T3BhY2l0
eSk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VHJhbnNpdGlvbkR1
cmF0aW9uLCBkdXJhdGlvbiwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TKTsKICAgICBzdHlsZS0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlPcGFjaXR5LCAxLjAsIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSKTsKQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudDo6bWFrZVRyYW5zCiAgICAgaWYgKCFtX29wYXF1ZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gZW5zdXJlSW5saW5lU3R5bGVE
ZWNsKCk7CisgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gZW5zdXJlSW5s
aW5lU3R5bGVEZWNsKCk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0
VHJhbnNpdGlvblByb3BlcnR5LCBDU1NQcm9wZXJ0eU9wYWNpdHkpOwogICAgIHN0eWxlLT5zZXRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiwgZG9jdW1lbnQoKS0+
cGFnZSgpLT50aGVtZSgpLT5tZWRpYUNvbnRyb2xzRmFkZU91dER1cmF0aW9uKCksIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUyk7CiAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5T3Bh
Y2l0eSwgMC4wLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHJldmlz
aW9uIDEwNTYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNCw3ICszMzQsNyBAQCBQYXNzUmVmUHRyPFRy
YWNrTGltaXRlckVsZW1lbnQ+IFRyYWNrTGltCiB7CiAgICAgUmVmUHRyPFRyYWNrTGltaXRlckVs
ZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgVHJhY2tMaW1pdGVyRWxlbWVudChkb2N1bWVu
dCkpOwogCi0gICAgQ1NTRWxlbWVudFN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gZWxlbWVudC0+
ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CisgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24q
IHN0eWxlID0gZWxlbWVudC0+ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCk7CiAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5VmlzaWJpbGl0eSwgQ1NTVmFsdWVIaWRkZW4pOwogICAgIHN0
eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvc2l0aW9uLCBDU1NWYWx1ZVN0YXRpYyk7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxMDU2MzApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCB1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7
CiBpbmxpbmUgU1ZHRm9udEZhY2VFbGVtZW50OjpTVkdGb250RmFjZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogU1ZHRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1fZm9udEZhY2VSdWxlKENTU0ZvbnRGYWNlUnVs
ZTo6Y3JlYXRlKCkpCi0gICAgLCBtX3N0eWxlRGVjbGFyYXRpb24oQ1NTRWxlbWVudFN0eWxlRGVj
bGFyYXRpb246OmNyZWF0ZUZvclNWR0ZvbnRGYWNlRWxlbWVudCh0aGlzKSkKKyAgICAsIG1fc3R5
bGVEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlRm9yU1ZHRm9u
dEZhY2VFbGVtZW50KHRoaXMpKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKGZvbnRfZmFjZVRh
ZykpOwogICAgIG1fc3R5bGVEZWNsYXJhdGlvbi0+c2V0U3RyaWN0UGFyc2luZyh0cnVlKTsK
</data>
<flag name="review"
          id="124676"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>