<?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>59057</bug_id>
          
          <creation_ts>2011-04-20 18:28:38 -0700</creation_ts>
          <short_desc>Removed a use of markDOMObjectWrapper: CSS Object Model</short_desc>
          <delta_ts>2011-04-21 11:34:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>389724</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-20 18:28:38 -0700</bug_when>
    <thetext>Removed a use of markDOMObjectWrapper: CSS Object Model</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389749</commentid>
    <comment_count>1</comment_count>
      <attachid>90475</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-20 18:59:50 -0700</bug_when>
    <thetext>Created attachment 90475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389762</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-04-20 19:21:07 -0700</bug_when>
    <thetext>Attachment 90475 did not build on qt:
Build output: http://queues.webkit.org/results/8474869</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389796</commentid>
    <comment_count>3</comment_count>
      <attachid>90475</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-20 20:34:15 -0700</bug_when>
    <thetext>Comment on attachment 90475
Patch

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

r=me, but fix efl + qt builds

&gt; Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp:223
&gt; +    cssValueRoots().add(cssValue.get(), root(impl())); // Balanced by JSCSSValueOwner::finalize().

So much sadness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389797</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-20 20:36:56 -0700</bug_when>
    <thetext>I think these custom toJS functions can be autogenerated -- just need a flag that says NeedsWeakHandleDoohicky or somesuch as you can auto generate the correct call to wrap..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389800</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-20 20:43:12 -0700</bug_when>
    <thetext>Attachment 90475 did not build on win:
Build output: http://queues.webkit.org/results/8472895</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390186</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-21 11:29:17 -0700</bug_when>
    <thetext>Committed r84527: &lt;http://trac.webkit.org/changeset/84527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390195</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-21 11:34:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/84527 might have broken EFL Linux Release (Build)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90475</attachid>
            <date>2011-04-20 18:59:50 -0700</date>
            <delta_ts>2011-04-20 20:34:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59057-20110420185949.patch</filename>
            <type>text/plain</type>
            <size>45312</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NDQ4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIxIEBACisyMDExLTA0LTIwICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhIHVzZSBvZiBtYXJrRE9NT2JqZWN0V3JhcHBl
cjogQ1NTIE9iamVjdCBNb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTkwNTcKKworICAgICAgICBUaGlzIGlzIDI0IGhvdXJzIG9mIG15IGxpZmUg
SSB3aWxsIG5ldmVyIGdldCBiYWNrLiBUaGFuayB5b3UsIFczQy4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogQnVpbGQhCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU0ZvbnRG
YWNlUnVsZUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NJbXBvcnRSdWxl
Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU01lZGlhUnVsZUN1c3RvbS5j
cHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NQYWdlUnVsZUN1c3RvbS5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTQ1NTUnVsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NTU1J1bGVPd25lcjo6ZmluYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6d3Jh
cHBlck93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTQ1NTUnVsZTo6bWFya0NoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTUnVsZUxp
c3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAoV2ViQ29yZTo6
SlNDU1NSdWxlTGlzdE93bmVyOjpmaW5hbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVy
T3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlckNvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9u
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTU3R5bGVEZWNsYXJhdGlvbk93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NTU1N0
eWxlRGVjbGFyYXRpb25Pd25lcjo6ZmluYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBl
ck93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6bWFya0NoaWxkcmVuKTogUmVtb3ZlZCBjdXN0
b20gbWFyayBmdW5jdGlvbnMsCisgICAgICAgIGFuZCByZXBsYWNlZCB3aXRoIHVzZSBvZiB0aGUg
b3BhcXVlIHJvb3RzIHN5c3RlbS4gVGhpcyBoYXMgdGhlIG5pY2UgYmVuZWZpdAorICAgICAgICBv
ZiBhbGxvd2luZyB1cyB0byBlYWdlcmx5IHJlY3ljbGUgZmFyIG1vcmUgQ1NTIHdyYXBwZXJzIGFu
ZCB0aGVpciBhc3NvY2lhdGVkCisgICAgICAgIERPTSB3cmFwcGVycy4KKworICAgICAgICAoV2Vi
Q29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTogTWFkZSB0
aGlzIGZ1bmN0aW9uCisgICAgICAgIGN1c3RvbSBiZWNhdXNlIGl0IG11c3QgbWFpbnRhaW4gdGhl
IHNvcnJvd2Z1bCBpbnZhcmlhbnQgdGhhdCBwcmltaXRpdmUKKyAgICAgICAgdmFsdWVzIGNhbiBi
ZSBtYXBwZWQgYmFjayB0byBvYmplY3RzIHRoYXQgYXJlIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBE
T00uCisgICAgICAgIFdlIG1haW50YWluIHRoaXMgaW52YXJpYW50IHRocm91Z2ggYW4gZXh0ZXJu
YWwgaGFzaCB0YWJsZSBiZWNhdXNlCisgICAgICAgIG1ha2luZyBhbGwgcHJpbWl0aXZlIHZhbHVl
cyBiaWdnZXIgd291bGQgYmUgYSB0b28tbGFyZ2UgbWVtb3J5IHVzZQorICAgICAgICBwZW5hbHR5
LiBMdWNraWx5LCBub2JvZHkgdXNlcyB0aGlzIGZlYXR1cmUsIHNvIHRoZSBjb3N0IG9mIHRoZSBo
YXNoIHRhYmxlCisgICAgICAgIGlzIG5vIGJpZyBkZWFsLgorCisgICAgICAgIChXZWJDb3JlOjp0
b0pTKTogV2UgbmVlZCBhIGN1c3RvbSB0b0pTIHNvIHdlIGNhbiBzcGVjaWZ5IG91ciBvd24gV2Vh
a0hhbmRsZU93bmVyLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NTdHlsZVJ1bGVDdXN0
b20uY3BwOiBSZW1vdmVkIGN1c3RvbSBtYXJrLCBhcyBhYm92ZS4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3NzVmFsdWVS
b290cyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NTU1ZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTVmFsdWVPd25lcjo6ZmluYWxp
emUpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OndyYXBwZXJDb250ZXh0KTogVXNlIHRoZSBvcGFxdWUgcm9vdHMgc3lzdGVtLiBQaWdneS1iYWNr
IG9uCisgICAgICAgIHRoZSBleHRlcm5hbCBoYXNoIHRhYmxlIGZpbGxlZCBieSBKU0NTU1N0eWxl
RGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRG9jdW1lbnQ6Om1h
cmtDaGlsZHJlbik6IE5vIG5lZWQgdG8gbWFyayBvdXIgc3R5bGVzaGVldCBsaXN0LAorICAgICAg
ICBzaW5jZSBhbGwgc3R5bGUtcmVsYXRlZCBvYmplY3RzIGNhbiB1c2Ugb3VyIG9wYXF1ZSByb290
IHRvIGRldGVybWluZQorICAgICAgICBsaXZlbmVzcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTWVkaWFMaXN0Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU01lZGlh
TGlzdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgIChXZWJDb3Jl
OjpKU01lZGlhTGlzdE93bmVyOjpmaW5hbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVy
T3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlckNvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KUyk6IFVzZSB0aGUgb3BhcXVlIHJvb3RzIHN5c3RlbS4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6cm9vdCk6IEFkZGVk
IGhlbHBlcnMgZm9yIGNvbXB1dGluZyBzdHlsZS1yZWxhdGVkIHJvb3RzLgorCisgICAgICAgICog
YmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
U3R5bGVTaGVldE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1N0eWxlU2hlZXRPd25lcjo6ZmluYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6
d3JhcHBlck93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTU3R5bGVTaGVldDo6bWFya0NoaWxkcmVuKTogVXNlIHRoZSBvcGFxdWUg
cm9vdHMgc3lzdGVtIGluc3RlYWQKKyAgICAgICAgb2YgZGlyZWN0IG1hcmtpbmcuCisgICAgICAg
IAorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTdHlsZVNoZWV0TGlzdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyk6CisgICAgICAgIChXZWJDb3JlOjpKU1N0eWxlU2hlZXRMaXN0T3duZXI6OmZpbmFs
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6CisgICAgICAgIChXZWJDb3Jl
Ojp3cmFwcGVyQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogRGl0dG8uCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHA6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcDoK
KyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTSW1w
b3J0UnVsZS5pZGw6IE5vIG1vcmUgY3VzdG9tIG1hcmssIHNpbmNlIHdlIHVzZSB0aGUgb3BhcXVl
CisgICAgICAgIHJvb3RzIHN5c3RlbSBpbnN0ZWFkLgorCisgICAgICAgICogY3NzL0NTU01lZGlh
UnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVJ1bGU6OkNTU01lZGlhUnVsZSk6
IEZpeGVkIGEgYnVnIHdoZXJlIGEgbWVkaWEgcnVsZQorICAgICAgICB3b3VsZCBpbmNvcnJlY3Rs
eSBoYXZlIG5vIHBhcmVudCwgc2luY2UgdGhpcyBnb3QgaW4gdGhlIHdheSBvZiBjb3JyZWN0bHkK
KyAgICAgICAgY29tcHV0aW5nIHRoZSBtZWRpYSBydWxlJ3Mgcm9vdC4KKworICAgICAgICAqIGNz
cy9DU1NNZWRpYVJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5pZGw6CisgICAg
ICAgICogY3NzL0NTU1J1bGVMaXN0LmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJh
dGlvbi5pZGw6CisgICAgICAgICogY3NzL0NTU1N0eWxlUnVsZS5pZGw6CisgICAgICAgICogY3Nz
L01lZGlhTGlzdC5pZGw6IE1hdGNoIGJlaGF2aW9yIGNoYW5nZXMgYWJvdmUuCisKKyAgICAgICAg
KiBjc3MvU3R5bGVCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQmFzZTo6bm9kZSk6
IEhlbHBlciBmdW5jdGlvbiBmb3IgY29tcHV0aW5nIHJvb3RzIG9mIHRoZQorICAgICAgICBzdHls
ZSBzeXN0ZW0uIFRoaXMgb2JqZWN0IG1vZGVsIGlzIHByZXR0eSB3ZWlyZCBhbmQgbm90IHZlcnkg
d2VsbCBmYWN0b3JlZCwKKyAgICAgICAgYnV0IEknbSBwcmV0dHkgc3VyZSB0aGlzIGNvdmVycyBh
bGwgdGhlIHJlbGV2YW50IGNhc2VzLgorCisgICAgICAgICogY3NzL1N0eWxlQmFzZS5oOgorICAg
ICAgICAqIGNzcy9TdHlsZVNoZWV0TGlzdC5pZGw6CisgICAgICAgICogY3NzL1dlYktpdENTU0tl
eWZyYW1lUnVsZS5pZGw6CisgICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuaWRs
OiBVcGRhdGVkIHRvIG1hdGNoIHRoZSBiZWhhdmlvciBjaGFuZ2VzIGFib3ZlLgorCiAyMDExLTA0
LTIwICBKaWEgUHUgIDxqcHVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2ll
aiBTdGFjaG93aWFrLgpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lv
biA4NDQxNikKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcg
Y29weSkKQEAgLTc2MCw2ICs3NjAsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uaCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggXAorCVNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVkaWFMaXN0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZp
c2lvbiA4NDQxNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5
KQpAQCAtMTgxOCw2ICsxODE4LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0xvY2F0
aW9uQ3VzdG9tLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lZGlhTGlzdEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVtb3J5SW5mb0N1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDg0NDE2
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtp
bmcgY29weSkKQEAgLTYxNDA5LDYgKzYxNDA5LDU4IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJ
CQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01lZGlhTGlzdEN1
c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJ
CQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUHJvZHVjdGlv
bnxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU01lbW9yeUluZm9DdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTI5NCw2ICsyOTQsNyBAQAogCQkxNDMyRTg0OTBDNTE0OTNGMDBCMTUwMEYgLyogR0NDb250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
MzJFODQ4MEM1MTQ5M0YwMEIxNTAwRiAvKiBHQ0NvbnRyb2xsZXIuY3BwICovOyB9OwogCQkxNDQ5
RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAv
KiBKU0NhbGxiYWNrRGF0YS5oICovOyB9OwogCQkxNDQ5RTI4NzEwN0Q0REI0MDBCNTc5M0YgLyog
SlNDYWxsYmFja0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAq
LzsgfTsKKwkJMTQ2NEUwNkMxMzVFQzEwNjAwRkRCMDBBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NjRFMDZC
MTM1RUMxMDYwMEZEQjAwQSAvKiBKU01lZGlhTGlzdEN1c3RvbS5jcHAgKi87IH07CiAJCTE0NzdF
Nzc2MEJGNDEzNEEwMDE1Mjg3MiAvKiBQYWdlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8qIFBh
Z2VDYWNoZS5jcHAgKi87IH07CiAJCTE0NzdFNzc3MEJGNDEzNEEwMDE1Mjg3MiAvKiBQYWdlQ2Fj
aGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdF
Nzc1MEJGNDEzNEEwMDE1Mjg3MiAvKiBQYWdlQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDc5RkFFRDEwOUFFMzc1MDBERUQ2NTUgLyog
UmVuZGVyUnVieS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNDc5RkFFNTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieS5jcHAgKi87IH07CkBA
IC02NzI1LDYgKzY3MjYsNyBAQAogCQkxNDMyRTg0ODBDNTE0OTNGMDBCMTUwMEYgLyogR0NDb250
cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHQ0NvbnRy
b2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI0QTEwN0Q0QTg0
MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNDYWxsYmFja0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ0
OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FsbGJhY2tEYXRhLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMTQ2NEUwNkIxMzVFQzEwNjAwRkRCMDBBIC8qIEpTTWVkaWFMaXN0
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFM
aXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3N0U3NzQwQkY0
MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGFnZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTQ3N0U3NzUwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTE0NzlGQUU1MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclJ1YnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTgxNTUsNiArMTgxNTcsNyBAQAogCQkJCTMzMTRBQ0VBMTA4OTIw
ODYwMDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuaCAqLywKIAkJCQk4RjkzNEQ4NDExODlGMUVF
MDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCAqLywKIAkJCQk4RjkzNEQ4MzEx
ODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggKi8sCisJCQkJMTQ2NEUw
NkIxMzVFQzEwNjAwRkRCMDBBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQk5RkRD
OEZGMTEyRkFCMDA2MDA5OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCAqLywKIAkJCQk5
M0I3MEQ0RjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCAq
LywKIAkJCQk5M0I3MEQ1MDA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmggKi8sCkBAIC0yNTcxMiw2ICsyNTcxNSw3IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAw
MUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
QkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0ZpbHRlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxNDY0RTA2QzEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NTU0ZvbnRGYWNlUnVsZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDU1NGb250RmFjZVJ1bGVDdXN0b20uY3BwCShyZXZpc2lvbiA4NDQxNikK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTRm9udEZhY2VSdWxlQ3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIgKzMyLDQgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTQ1NTRm9udEZhY2VSdWxlOjptYXJrQ2hp
bGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCi17Ci0gICAgQmFzZTo6bWFya0NoaWxkcmVuKG1h
cmtTdGFjayk7Ci0KLSAgICBpZiAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0g
c3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4oaW1wbCgpKS0+c3R5bGUoKSkKLSAgICAgICAg
bWFya0RPTU9iamVjdFdyYXBwZXIobWFya1N0YWNrLCAqSGVhcDo6aGVhcCh0aGlzKS0+Z2xvYmFs
RGF0YSgpLCBzdHlsZSk7Ci19Ci0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTSW1wb3J0UnVsZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDU1NJbXBvcnRSdWxlQ3VzdG9tLmNwcAkocmV2aXNpb24gODQ0MTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU0ltcG9ydFJ1bGVDdXN0b20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiwxNSArMzIsNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgSlNDU1NJbXBvcnRSdWxlOjptYXJrQ2hpbGRyZW4o
TWFya1N0YWNrJiBtYXJrU3RhY2spCi17Ci0gICAgQmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFj
ayk7Ci0KLSAgICBpZiAoQ1NTU3R5bGVTaGVldCogc2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NJbXBv
cnRSdWxlKj4oaW1wbCgpKS0+c3R5bGVTaGVldCgpKQotICAgICAgICBtYXJrRE9NT2JqZWN0V3Jh
cHBlcihtYXJrU3RhY2ssICpIZWFwOjpoZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCksIHNoZWV0KTsK
LQotICAgIGlmIChNZWRpYUxpc3QqIG1lZGlhID0gc3RhdGljX2Nhc3Q8Q1NTSW1wb3J0UnVsZSo+
KGltcGwoKSktPm1lZGlhKCkpCi0gICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtTdGFj
aywgKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKSwgbWVkaWEpOwotfQotCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU01lZGlhUnVsZUN1c3RvbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NNZWRpYVJ1bGVDdXN0
b20uY3BwCShyZXZpc2lvbiA4NDQxNikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q1NTTWVkaWFSdWxlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTUgKzMyLDQgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTQ1NT
TWVkaWFSdWxlOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCi17Ci0gICAgQmFz
ZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7Ci0KLSAgICBpZiAoTWVkaWFMaXN0KiBtZWRpYSA9
IHN0YXRpY19jYXN0PENTU01lZGlhUnVsZSo+KGltcGwoKSktPm1lZGlhKCkpCi0gICAgICAgIG1h
cmtET01PYmplY3RXcmFwcGVyKG1hcmtTdGFjaywgKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERh
dGEoKSwgbWVkaWEpOwotCi0gICAgaWYgKENTU1J1bGVMaXN0KiBydWxlcyA9IHN0YXRpY19jYXN0
PENTU01lZGlhUnVsZSo+KGltcGwoKSktPmNzc1J1bGVzKCkpCi0gICAgICAgIG1hcmtET01PYmpl
Y3RXcmFwcGVyKG1hcmtTdGFjaywgKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKSwgcnVs
ZXMpOwotfQotCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1BhZ2VS
dWxlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NTU1BhZ2VSdWxlQ3VzdG9tLmNwcAkocmV2aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NTU1BhZ2VSdWxlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzIsMTIgKzMyLDQgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi12b2lkIEpTQ1NTUGFnZVJ1bGU6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtTdGFj
aykKLXsKLSAgICBCYXNlOjptYXJrQ2hpbGRyZW4obWFya1N0YWNrKTsKLQotICAgIGlmIChDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBzdGF0aWNfY2FzdDxDU1NQYWdlUnVsZSo+
KGltcGwoKSktPnN0eWxlKCkpCi0gICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtTdGFj
aywgKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKSwgc3R5bGUpOwotfQotCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAJKHJl
dmlzaW9uIDg0NDE2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpTQ1NT
TWVkaWFSdWxlLmgiCiAjaW5jbHVkZSAiSlNDU1NQYWdlUnVsZS5oIgogI2luY2x1ZGUgIkpTQ1NT
U3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuaCIKICNpbmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuaCIKICNp
bmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCIKQEAgLTQ3LDE1ICs0OCw0MSBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgSlNDU1NSdWxl
OjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCitjbGFzcyBKU0NTU1J1bGVPd25l
ciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CisgICAgdmlydHVhbCBib29sIGlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQsIEpTQzo6TWFya1N0YWNrJik7CisgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOworfTsKKworYm9vbCBKU0NTU1J1
bGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBNYXJrU3RhY2smIG1hcmtTdGFjaykKIHsKLSAgICBCYXNlOjpt
YXJrQ2hpbGRyZW4obWFya1N0YWNrKTsKKyAgICBKU0NTU1J1bGUqIGpzQ1NTUnVsZSA9IHN0YXRp
Y19jYXN0PEpTQ1NTUnVsZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgaWYgKCFqc0NT
U1J1bGUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBtYXJrU3RhY2suY29udGFpbnNPcGFxdWVSb290KHJvb3QoanNDU1NSdWxlLT5pbXBs
KCkpKTsKK30KIAotICAgIGlmIChDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0ID0gaW1w
bCgpLT5wYXJlbnRTdHlsZVNoZWV0KCkpCi0gICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1h
cmtTdGFjaywgKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKSwgcGFyZW50U3R5bGVTaGVl
dCk7Cit2b2lkIEpTQ1NTUnVsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKK3sKKyAgICBKU0NTU1J1bGUqIGpzQ1NTUnVsZSA9
IHN0YXRpY19jYXN0PEpTQ1NTUnVsZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgRE9N
V3JhcHBlcldvcmxkKiB3b3JsZCA9IHN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRl
eHQpOworICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCBqc0NTU1J1bGUtPmltcGwoKSwganNDU1NS
dWxlKTsKK30KIAotICAgIGlmIChDU1NSdWxlKiBwYXJlbnRSdWxlID0gaW1wbCgpLT5wYXJlbnRS
dWxlKCkpCi0gICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtTdGFjaywgKkhlYXA6Omhl
YXAodGhpcyktPmdsb2JhbERhdGEoKSwgcGFyZW50UnVsZSk7CitpbmxpbmUgSlNDOjpXZWFrSGFu
ZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQqLCBDU1NSdWxlKikKK3sKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTQ1NTUnVsZU93bmVyLCBqc0NTU1J1bGVPd25lciwgKCkp
OworICAgIHJldHVybiAmanNDU1NSdWxlT3duZXI7Cit9CisKK2lubGluZSB2b2lkKiB3cmFwcGVy
Q29udGV4dChET01XcmFwcGVyV29ybGQqIHdvcmxkLCBDU1NSdWxlKikKK3sKKyAgICByZXR1cm4g
d29ybGQ7Cit9CisKK3ZvaWQgSlNDU1NSdWxlOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJr
U3RhY2spCit7CisgICAgQmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7CisgICAgbWFya1N0
YWNrLmFkZE9wYXF1ZVJvb3Qocm9vdChpbXBsKCkpKTsKIH0KIAogSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ1NTUnVsZSogcnVs
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxp
c3RDdXN0b20uY3BwCShyZXZpc2lvbiA4NDQxNikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyMiArMjYs
NTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0NTU1J1bGVMaXN0LmgiCiAK
KyNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIKKyNpbmNsdWRl
ICJKU05vZGUuaCIKKyNpbmNsdWRlICJTdHlsZUxpc3QuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTQ1NTUnVsZUxpc3Q6Om1hcmtDaGls
ZHJlbihNYXJrU3RhY2smIG1hcmtTdGFjaykKK2NsYXNzIEpTQ1NTUnVsZUxpc3RPd25lciA6IHB1
YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQs
IEpTQzo6TWFya1N0YWNrJik7CisgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOworfTsKKworYm9vbCBKU0NTU1J1bGVMaXN0
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgTWFya1N0YWNrJiBtYXJrU3RhY2spCiB7Ci0gICAgQmFzZTo6bWFy
a0NoaWxkcmVuKG1hcmtTdGFjayk7CisgICAgSlNDU1NSdWxlTGlzdCoganNDU1NSdWxlTGlzdCA9
IHN0YXRpY19jYXN0PEpTQ1NTUnVsZUxpc3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAg
IGlmICghanNDU1NSdWxlTGlzdC0+aGFzQ3VzdG9tUHJvcGVydGllcygpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKFN0eWxlTGlzdCogc3R5bGVMaXN0ID0ganNDU1NSdWxlTGlzdC0+
aW1wbCgpLT5zdHlsZUxpc3QoKSkKKyAgICAgICAgcmV0dXJuIG1hcmtTdGFjay5jb250YWluc09w
YXF1ZVJvb3Qocm9vdChzdHlsZUxpc3QpKTsKKyAgICBpZiAoQ1NTUnVsZSogY3NzUnVsZSA9IGpz
Q1NTUnVsZUxpc3QtPmltcGwoKS0+aXRlbSgwKSkKKyAgICAgICAgcmV0dXJuIG1hcmtTdGFjay5j
b250YWluc09wYXF1ZVJvb3Qocm9vdChjc3NSdWxlKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQog
Ci0gICAgQ1NTUnVsZUxpc3QqIGxpc3QgPSBpbXBsKCk7Ci0gICAgSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhID0gKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKTsKK3ZvaWQgSlNDU1NSdWxl
TGlzdE93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCogY29udGV4dCkKK3sKKyAgICBKU0NTU1J1bGVMaXN0KiBqc0NTU1J1bGVMaXN0ID0gc3RhdGlj
X2Nhc3Q8SlNDU1NSdWxlTGlzdCo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgRE9NV3Jh
cHBlcldvcmxkKiB3b3JsZCA9IHN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQp
OworICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCBqc0NTU1J1bGVMaXN0LT5pbXBsKCksIGpzQ1NT
UnVsZUxpc3QpOworfQogCi0gICAgdW5zaWduZWQgbGVuZ3RoID0gbGlzdC0+bGVuZ3RoKCk7Ci0g
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQotICAgICAgICBtYXJrRE9N
T2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssIGdsb2JhbERhdGEsIGxpc3QtPml0ZW0oaSkpOworaW5s
aW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkKiwg
Q1NTUnVsZUxpc3QqKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNDU1NSdWxlTGlzdE93
bmVyLCBqc0NTU1J1bGVMaXN0T3duZXIsICgpKTsKKyAgICByZXR1cm4gJmpzQ1NTUnVsZUxpc3RP
d25lcjsKK30KKworaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCog
d29ybGQsIENTU1J1bGVMaXN0KikKK3sKKyAgICByZXR1cm4gd29ybGQ7Cit9CisKK0pTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENT
U1J1bGVMaXN0KiBpbXBsKQoreworICAgIHJldHVybiB3cmFwPEpTQ1NTUnVsZUxpc3Q+KGV4ZWMs
IGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAko
cmV2aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxl
RGVjbGFyYXRpb25DdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBACiAj
aW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcmlt
aXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiSlNDU1NWYWx1
ZS5oIgorI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAj
aW5jbHVkZSA8cnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg+CkBAIC00MiwyMiArNDQsMzkg
QEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpT
Q1NTU3R5bGVEZWNsYXJhdGlvbjo6bWFya0NoaWxkcmVuKE1hcmtTdGFjayYgbWFya1N0YWNrKQor
Y2xhc3MgSlNDU1NTdHlsZURlY2xhcmF0aW9uT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxl
T3duZXIgeworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6Ok1hcmtTdGFjayYpOwor
ICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0KTsKK307CisKK2Jvb2wgSlNDU1NTdHlsZURlY2xhcmF0aW9uT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgTWFya1N0YWNrJiBtYXJrU3RhY2spCiB7Ci0gICAgQmFzZTo6bWFya0NoaWxkcmVuKG1h
cmtTdGFjayk7CisgICAgSlNDU1NTdHlsZURlY2xhcmF0aW9uKiBqc0NTU1N0eWxlRGVjbGFyYXRp
b24gPSBzdGF0aWNfY2FzdDxKU0NTU1N0eWxlRGVjbGFyYXRpb24qPihoYW5kbGUuZ2V0KCkuYXND
ZWxsKCkpOworICAgIHJldHVybiBtYXJrU3RhY2suY29udGFpbnNPcGFxdWVSb290KHJvb3QoanND
U1NTdHlsZURlY2xhcmF0aW9uLT5pbXBsKCkpKTsKK30KKwordm9pZCBKU0NTU1N0eWxlRGVjbGFy
YXRpb25Pd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqIGNvbnRleHQpCit7CisgICAgSlNDU1NTdHlsZURlY2xhcmF0aW9uKiBqc0NTU1N0eWxlRGVj
bGFyYXRpb24gPSBzdGF0aWNfY2FzdDxKU0NTU1N0eWxlRGVjbGFyYXRpb24qPihoYW5kbGUuZ2V0
KCkuYXNDZWxsKCkpOworICAgIERPTVdyYXBwZXJXb3JsZCogd29ybGQgPSBzdGF0aWNfY2FzdDxE
T01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKKyAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwganND
U1NTdHlsZURlY2xhcmF0aW9uLT5pbXBsKCksIGpzQ1NTU3R5bGVEZWNsYXJhdGlvbik7Cit9CiAK
LSAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBkZWNsYXJhdGlvbiA9IGltcGwoKTsKLSAgICBKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEgPSAqSGVhcDo6aGVhcCh0aGlzKS0+Z2xvYmFsRGF0YSgpOwor
aW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxk
KiwgQ1NTU3R5bGVEZWNsYXJhdGlvbiopCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU0NT
U1N0eWxlRGVjbGFyYXRpb25Pd25lciwganNDU1NTdHlsZURlY2xhcmF0aW9uT3duZXIsICgpKTsK
KyAgICByZXR1cm4gJmpzQ1NTU3R5bGVEZWNsYXJhdGlvbk93bmVyOworfQogCi0gICAgaWYgKENT
U1J1bGUqIHBhcmVudFJ1bGUgPSBkZWNsYXJhdGlvbi0+cGFyZW50UnVsZSgpKQotICAgICAgICBt
YXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssIGdsb2JhbERhdGEsIHBhcmVudFJ1bGUpOwor
aW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCogd29ybGQsIENTU1N0
eWxlRGVjbGFyYXRpb24qKQoreworICAgIHJldHVybiB3b3JsZDsKK30KIAotICAgIGlmIChkZWNs
YXJhdGlvbi0+aXNNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpKSB7Ci0gICAgICAgIENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uKiBtdXRhYmxlRGVjbGFyYXRpb24gPSBzdGF0aWNfY2FzdDxDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbio+KGRlY2xhcmF0aW9uKTsKLSAgICAgICAgQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG11dGFibGVEZWNsYXJhdGlv
bi0+ZW5kKCk7Ci0gICAgICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbXV0YWJsZURlY2xhcmF0aW9uLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpCi0gICAgICAgICAgICBtYXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssIGdsb2JhbERh
dGEsIGl0LT52YWx1ZSgpKTsKLSAgICB9Cit2b2lkIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6bWFy
a0NoaWxkcmVuKE1hcmtTdGFjayYgbWFya1N0YWNrKQoreworICAgIEJhc2U6Om1hcmtDaGlsZHJl
bihtYXJrU3RhY2spOworICAgIG1hcmtTdGFjay5hZGRPcGFxdWVSb290KHJvb3QoaW1wbCgpKSk7
CiB9CiAKIC8vIENoZWNrIGZvciBhIENTUyBwcmVmaXguCkBAIC0xNzUsNyArMTk0LDYgQEAgSlNW
YWx1ZSBKU0NTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVHZXR0ZQogICAgIHJldHVybiBqc1N0cmlu
ZyhleGVjLCB0aGlzT2JqLT5pbXBsKCktPmdldFByb3BlcnR5VmFsdWUocHJvcCkpOwogfQogCi0K
IGJvb2wgSlNDU1NTdHlsZURlY2xhcmF0aW9uOjpwdXREZWxlZ2F0ZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JikKIHsKICAgICBib29sIHBpeGVsT3JQb3M7CkBAIC0xOTIsNCArMjEwLDIzIEBAIGJv
b2wgSlNDU1NTdHlsZURlY2xhcmF0aW9uOjpwdXREZWxlZ2F0ZSgKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorSlNWYWx1ZSBKU0NTU1N0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUo
RXhlY1N0YXRlKiBleGVjKQoreworICAgIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKHVzdHJp
bmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkpOworICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAg
ICBSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlID0gaW1wbCgpLT5nZXRQcm9wZXJ0eUNTU1ZhbHVl
KHByb3BlcnR5TmFtZSk7CisgICAgaWYgKCFjc3NWYWx1ZSkKKyAgICAgICAgcmV0dXJuIGpzTnVs
bCgpOworCisgICAgY3NzVmFsdWVSb290cygpLmFkZChjc3NWYWx1ZS5nZXQoKSwgcm9vdChpbXBs
KCkpKTsgLy8gQmFsYW5jZWQgYnkgSlNDU1NWYWx1ZU93bmVyOjpmaW5hbGl6ZSgpLgorICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihjc3NWYWx1ZSkpOwor
fQorCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDU1NTdHlsZURlY2xhcmF0aW9uKiBpbXBsKQoreworICAgIHJldHVybiB3cmFw
PEpTQ1NTU3R5bGVEZWNsYXJhdGlvbj4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDU1NTdHlsZVJ1bGVDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ1NTU3R5bGVSdWxlQ3VzdG9tLmNwcAkocmV2aXNpb24gODQ0MTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlUnVsZUN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDEyICszMiw0IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU0NTU1N0eWxlUnVsZTo6bWFya0NoaWxkcmVuKE1hcmtT
dGFjayYgbWFya1N0YWNrKQotewotICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJrU3RhY2spOwot
Ci0gICAgaWYgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IHN0YXRpY19jYXN0
PENTU1N0eWxlUnVsZSo+KGltcGwoKSktPnN0eWxlKCkpCi0gICAgICAgIG1hcmtET01PYmplY3RX
cmFwcGVyKG1hcmtTdGFjaywgKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKSwgc3R5bGUp
OwotfQotCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1Zh
bHVlQ3VzdG9tLmNwcAkocmV2aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgogI2luY2x1ZGUgIkpTQ1NTUHJpbWl0aXZlVmFs
dWUuaCIKICNpbmNsdWRlICJKU0NTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkpTTm9kZS5oIgog
I2luY2x1ZGUgIkpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKICNpbmNsdWRlICJXZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIgogCkBAIC00NCw2ICs0NSw0OCBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0hhc2hNYXA8Q1NTVmFsdWUqLCB2b2lkKj4m
IGNzc1ZhbHVlUm9vdHMoKQoreworICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NWYWx1ZSosIHZvaWQq
PiBNYXBUeXBlOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoTWFwVHlwZSwgY3NzVmFsdWVSb290
cywgKCkpOworICAgIHJldHVybiBjc3NWYWx1ZVJvb3RzOworfQorCitjbGFzcyBKU0NTU1ZhbHVl
T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworICAgIHZpcnR1YWwgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6Ok1hcmtTdGFjayYpOworICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKK307CisKK2Jvb2wgSlND
U1NWYWx1ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdm9pZCosIE1hcmtTdGFjayYgbWFya1N0YWNrKQoreworICAgIEpT
Q1NTVmFsdWUqIGpzQ1NTVmFsdWUgPSBzdGF0aWNfY2FzdDxKU0NTU1ZhbHVlKj4oaGFuZGxlLmdl
dCgpLmFzQ2VsbCgpKTsKKyAgICBpZiAoIWpzQ1NTVmFsdWUtPmhhc0N1c3RvbVByb3BlcnRpZXMo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHZvaWQqIHJvb3QgPSBjc3NWYWx1ZVJvb3Rz
KCkuZ2V0KGpzQ1NTVmFsdWUtPmltcGwoKSk7CisgICAgaWYgKCFyb290KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIG1hcmtTdGFjay5jb250YWluc09wYXF1ZVJvb3Qocm9vdCk7
Cit9CisKK3ZvaWQgSlNDU1NWYWx1ZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKK3sKKyAgICBKU0NTU1ZhbHVlKiBqc0NTU1Zh
bHVlID0gc3RhdGljX2Nhc3Q8SlNDU1NWYWx1ZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7Cisg
ICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCA9IHN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+
KGNvbnRleHQpOworICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCBqc0NTU1ZhbHVlLT5pbXBsKCks
IGpzQ1NTVmFsdWUpOworICAgIGNzc1ZhbHVlUm9vdHMoKS5yZW1vdmUoanNDU1NWYWx1ZS0+aW1w
bCgpKTsKK30KKworaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9N
V3JhcHBlcldvcmxkKiwgQ1NTVmFsdWUqKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlND
U1NWYWx1ZU93bmVyLCBqc0NTU1ZhbHVlT3duZXIsICgpKTsKKyAgICByZXR1cm4gJmpzQ1NTVmFs
dWVPd25lcjsKK30KKworaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3Js
ZCogd29ybGQsIENTU1ZhbHVlKikKK3sKKyAgICByZXR1cm4gd29ybGQ7Cit9CisKIEpTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENT
U1ZhbHVlKiB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDg0NDE2KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAgdm9pZCBKU0RvY3VtZW50OjptYXJrQ2hpbGRyZW4o
TWFya1N0YWNrJgogCiAgICAgbWFya0FjdGl2ZU9iamVjdHNGb3JDb250ZXh0KG1hcmtTdGFjaywg
Z2xvYmFsRGF0YSwgZG9jdW1lbnQpOwogICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtTdGFj
aywgZ2xvYmFsRGF0YSwgZG9jdW1lbnQtPmltcGxlbWVudGF0aW9uKCkpOwotICAgIG1hcmtET01P
YmplY3RXcmFwcGVyKG1hcmtTdGFjaywgZ2xvYmFsRGF0YSwgZG9jdW1lbnQtPnN0eWxlU2hlZXRz
KCkpOwogfQogCiBKU1ZhbHVlIEpTRG9jdW1lbnQ6OmxvY2F0aW9uKEV4ZWNTdGF0ZSogZXhlYykg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFMaXN0Q3VzdG9t
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhTGlz
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lZGlhTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNNZWRpYUxpc3QuaCIKKworI2lu
Y2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTTWVkaWFMaXN0T3duZXIg
OiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgeworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6Ok1hcmtTdGFjayYpOworICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKK307CisKK2Jvb2wgSlNNZWRpYUxp
c3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBNYXJrU3RhY2smIG1hcmtTdGFjaykKK3sKKyAgICBKU01lZGlh
TGlzdCoganNNZWRpYUxpc3QgPSBzdGF0aWNfY2FzdDxKU01lZGlhTGlzdCo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7CisgICAgaWYgKCFqc01lZGlhTGlzdC0+aGFzQ3VzdG9tUHJvcGVydGllcygp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1hcmtTdGFjay5jb250YWluc09w
YXF1ZVJvb3Qocm9vdChqc01lZGlhTGlzdC0+aW1wbCgpKSk7Cit9CisKK3ZvaWQgSlNNZWRpYUxp
c3RPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
IGNvbnRleHQpCit7CisgICAgSlNNZWRpYUxpc3QqIGpzTWVkaWFMaXN0ID0gc3RhdGljX2Nhc3Q8
SlNNZWRpYUxpc3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIERPTVdyYXBwZXJXb3Js
ZCogd29ybGQgPSBzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKKyAgICB1
bmNhY2hlV3JhcHBlcih3b3JsZCwganNNZWRpYUxpc3QtPmltcGwoKSwganNNZWRpYUxpc3QpOwor
fQorCitpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVy
V29ybGQqLCBNZWRpYUxpc3QqKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSlNNZWRpYUxp
c3RPd25lciwganNNZWRpYUxpc3RPd25lciwgKCkpOworICAgIHJldHVybiAmanNNZWRpYUxpc3RP
d25lcjsKK30KKworaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCog
d29ybGQsIE1lZGlhTGlzdCopCit7CisgICAgcmV0dXJuIHdvcmxkOworfQorCitKU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBNZWRp
YUxpc3QqIHJ1bGUpCit7CisgICAgcmV0dXJuIHdyYXA8SlNNZWRpYUxpc3Q+KGV4ZWMsIGdsb2Jh
bE9iamVjdCwgcnVsZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCShyZXZpc2lvbiA4NDQxNikKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywxMCArMjcsMTMgQEAKICNkZWZpbmUgSlNOb2RlQ3VzdG9tX2gKIAogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIlN0eWxlQmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9B
bHdheXNJbmxpbmUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDU1NWYWx1ZTsK
KwogY2xhc3MgSlNOb2RlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6Ok1hcmtTdGFjayYpOwogICAgIHZpcnR1YWwg
dm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsK
QEAgLTg2LDcgKzg5LDcgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KgogICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgbm9kZSk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgTm9kZSogcm9vdChOb2RlKiBub2RlKQorc3RhdGljIGlubGluZSB2
b2lkKiByb290KE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG5vZGUtPmluRG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuIG5vZGUtPmRvY3VtZW50KCk7CkBAIC05Niw2ICs5OSwxOCBAQCBzdGF0aWMg
aW5saW5lIE5vZGUqIHJvb3QoTm9kZSogbm9kZSkKICAgICByZXR1cm4gbm9kZTsKIH0KIAorc3Rh
dGljIGlubGluZSB2b2lkKiByb290KFN0eWxlQmFzZSogc3R5bGVCYXNlKQoreworICAgIHdoaWxl
IChzdHlsZUJhc2UtPnBhcmVudCgpKQorICAgICAgICBzdHlsZUJhc2UgPSBzdHlsZUJhc2UtPnBh
cmVudCgpOworCisgICAgaWYgKE5vZGUqIG5vZGUgPSBzdHlsZUJhc2UtPm5vZGUoKSkKKyAgICAg
ICAgcmV0dXJuIHJvb3Qobm9kZSk7CisgICAgcmV0dXJuIHN0eWxlQmFzZTsKK30KKworSGFzaE1h
cDxDU1NWYWx1ZSosIHZvaWQqPiYgY3NzVmFsdWVSb290cygpOworCiB9CiAKICNlbmRpZiAvLyBK
U0RPTU5vZGVDdXN0b21faApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHls
ZVNoZWV0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCShyZXZpc2lvbiA4NDQxNikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDQzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgSlNTdHlsZVNoZWV0T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3du
ZXIgeworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6Ok1hcmtTdGFjayYpOworICAg
IHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0KTsKK307CisKK2Jvb2wgSlNTdHlsZVNoZWV0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgTWFya1N0
YWNrJiBtYXJrU3RhY2spCit7CisgICAgSlNTdHlsZVNoZWV0KiBqc1N0eWxlU2hlZXQgPSBzdGF0
aWNfY2FzdDxKU1N0eWxlU2hlZXQqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIGlmICgh
anNTdHlsZVNoZWV0LT5oYXNDdXN0b21Qcm9wZXJ0aWVzKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gbWFya1N0YWNrLmNvbnRhaW5zT3BhcXVlUm9vdChyb290KGpzU3R5bGVT
aGVldC0+aW1wbCgpKSk7Cit9CisKK3ZvaWQgSlNTdHlsZVNoZWV0T3duZXI6OmZpbmFsaXplKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQoreworICAgIEpT
U3R5bGVTaGVldCoganNTdHlsZVNoZWV0ID0gc3RhdGljX2Nhc3Q8SlNTdHlsZVNoZWV0Kj4oaGFu
ZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBET01XcmFwcGVyV29ybGQqIHdvcmxkID0gc3RhdGlj
X2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CisgICAgdW5jYWNoZVdyYXBwZXIod29y
bGQsIGpzU3R5bGVTaGVldC0+aW1wbCgpLCBqc1N0eWxlU2hlZXQpOworfQorCitpbmxpbmUgSlND
OjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQqLCBTdHlsZVNo
ZWV0KikKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEpTU3R5bGVTaGVldE93bmVyLCBqc1N0
eWxlU2hlZXRPd25lciwgKCkpOworICAgIHJldHVybiAmanNTdHlsZVNoZWV0T3duZXI7Cit9CisK
K2lubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQqIHdvcmxkLCBTdHls
ZVNoZWV0KikKK3sKKyAgICByZXR1cm4gd29ybGQ7Cit9CisKK3ZvaWQgSlNTdHlsZVNoZWV0Ojpt
YXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6bWFya0NoaWxk
cmVuKG1hcmtTdGFjayk7CisgICAgbWFya1N0YWNrLmFkZE9wYXF1ZVJvb3Qocm9vdChpbXBsKCkp
KTsKK30KKwogSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3R5bGVTaGVldCogc3R5bGVTaGVldCkKIHsKICAgICBpZiAoIXN0eWxl
U2hlZXQpCkBAIC01MiwxNiArODksNCBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhCiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKLXZvaWQgSlNTdHlsZVNoZWV0Ojpt
YXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCi17Ci0gICAgQmFzZTo6bWFya0NoaWxk
cmVuKG1hcmtTdGFjayk7Ci0KLSAgICBTdHlsZVNoZWV0KiBzaGVldCA9IGltcGwoKTsKLSAgICBK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEgPSAqSGVhcDo6aGVhcCh0aGlzKS0+Z2xvYmFsRGF0YSgp
OwotCi0gICAgdW5zaWduZWQgbGVuZ3RoID0gc2hlZXQtPmxlbmd0aCgpOwotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKLSAgICAgICAgbWFya0RPTU9iamVjdFdyYXBw
ZXIobWFya1N0YWNrLCBnbG9iYWxEYXRhLCBzaGVldC0+aXRlbShpKSk7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVT
aGVldExpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwCShyZXZpc2lvbiA4NDQxNikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSwxNiArMzUsMzggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi12b2lkIEpTU3R5bGVTaGVldExpc3Q6Om1hcmtDaGlsZHJlbihNYXJr
U3RhY2smIG1hcmtTdGFjaykKK2NsYXNzIEpTU3R5bGVTaGVldExpc3RPd25lciA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6
TWFya1N0YWNrJik7CisgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOworfTsKKworYm9vbCBKU1N0eWxlU2hlZXRMaXN0T3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgTWFya1N0YWNrJiBtYXJrU3RhY2spCiB7Ci0gICAgQmFzZTo6bWFya0No
aWxkcmVuKG1hcmtTdGFjayk7CisgICAgSlNTdHlsZVNoZWV0TGlzdCoganNTdHlsZVNoZWV0TGlz
dCA9IHN0YXRpY19jYXN0PEpTU3R5bGVTaGVldExpc3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkp
OworICAgIGlmICghanNTdHlsZVNoZWV0TGlzdC0+aGFzQ3VzdG9tUHJvcGVydGllcygpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0ganNTdHlsZVNoZWV0
TGlzdC0+aW1wbCgpLT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gbWFya1N0YWNrLmNvbnRhaW5zT3BhcXVlUm9vdChkb2N1
bWVudCk7Cit9CiAKLSAgICBTdHlsZVNoZWV0TGlzdCogbGlzdCA9IGltcGwoKTsKLSAgICBKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEgPSAqSGVhcDo6aGVhcCh0aGlzKS0+Z2xvYmFsRGF0YSgpOwor
dm9pZCBKU1N0eWxlU2hlZXRMaXN0T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQoreworICAgIEpTU3R5bGVTaGVldExpc3QqIGpz
U3R5bGVTaGVldExpc3QgPSBzdGF0aWNfY2FzdDxKU1N0eWxlU2hlZXRMaXN0Kj4oaGFuZGxlLmdl
dCgpLmFzQ2VsbCgpKTsKKyAgICBET01XcmFwcGVyV29ybGQqIHdvcmxkID0gc3RhdGljX2Nhc3Q8
RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CisgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsIGpz
U3R5bGVTaGVldExpc3QtPmltcGwoKSwganNTdHlsZVNoZWV0TGlzdCk7Cit9CiAKLSAgICB1bnNp
Z25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbGVuZ3RoOyArK2kpCi0gICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtTdGFjaywg
Z2xvYmFsRGF0YSwgbGlzdC0+aXRlbShpKSk7CitpbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIq
IHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQqLCBTdHlsZVNoZWV0TGlzdCopCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChKU1N0eWxlU2hlZXRMaXN0T3duZXIsIGpzU3R5bGVTaGVldExp
c3RPd25lciwgKCkpOworICAgIHJldHVybiAmanNTdHlsZVNoZWV0TGlzdE93bmVyOworfQorCitp
bmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkKiB3b3JsZCwgU3R5bGVT
aGVldExpc3QqKQoreworICAgIHJldHVybiB3b3JsZDsKIH0KIAogYm9vbCBKU1N0eWxlU2hlZXRM
aXN0OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgU3R5bGVTaGVldExpc3QqIHN0eWxl
U2hlZXRMaXN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCkBAIC02MCw0ICs4Miw5
IEBAIEpTVmFsdWUgSlNTdHlsZVNoZWV0TGlzdDo6bmFtZUdldHRlcihFeGUKICAgICByZXR1cm4g
dG9KUyhleGVjLCBlbGVtZW50LT5zaGVldCgpKTsKIH0KIAorSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0eWxl
U2hlZXRMaXN0KiBpbXBsKQoreworICAgIHJldHVybiB3cmFwPEpTU3R5bGVTaGVldExpc3Q+KGV4
ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktp
dENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAJKHJldmlzaW9uIDg0NDE2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxMiArMzIsNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6Om1hcmtDaGls
ZHJlbihNYXJrU3RhY2smIG1hcmtTdGFjaykKLXsKLSAgICBCYXNlOjptYXJrQ2hpbGRyZW4obWFy
a1N0YWNrKTsKLQotICAgIGlmIChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBz
dGF0aWNfY2FzdDxXZWJLaXRDU1NLZXlmcmFtZVJ1bGUqPihpbXBsKCkpLT5zdHlsZSgpKQotICAg
ICAgICBtYXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssICpIZWFwOjpoZWFwKHRoaXMpLT5n
bG9iYWxEYXRhKCksIHN0eWxlKTsKLX0KLQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20u
Y3BwCShyZXZpc2lvbiA4NDQxNikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICsz
Miw0IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9p
ZCBKU1dlYktpdENTU0tleWZyYW1lc1J1bGU6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtT
dGFjaykKLXsKLSAgICBCYXNlOjptYXJrQ2hpbGRyZW4obWFya1N0YWNrKTsKLQotICAgIGlmIChD
U1NSdWxlTGlzdCogcnVsZXMgPSBzdGF0aWNfY2FzdDxXZWJLaXRDU1NLZXlmcmFtZXNSdWxlKj4o
aW1wbCgpKS0+Y3NzUnVsZXMoKSkKLSAgICAgICAgbWFya0RPTU9iamVjdFdyYXBwZXIobWFya1N0
YWNrLCAqSGVhcDo6aGVhcCh0aGlzKS0+Z2xvYmFsRGF0YSgpLCBydWxlcyk7Ci19Ci0KIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtCShyZXZpc2lvbiA4NDQxNikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yNTUzLDYgKzI1NTMsMTAg
QEAgc3ViIEhhc0N1c3RvbVRvVjhJbXBsZW1lbnRhdGlvbiB7CiAgICAgcmV0dXJuIDAgaWYgJGlu
dGVyZmFjZU5hbWUgZXEgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQiOwogICAgIHJldHVybiAwIGlm
ICRpbnRlcmZhY2VOYW1lIGVxICJTVkdFbGVtZW50SW5zdGFuY2UiOwogICAgIHJldHVybiAwIGlm
ICRpbnRlcmZhY2VOYW1lIGVxICJOb2RlTGlzdCI7CisgICAgcmV0dXJuIDAgaWYgJGludGVyZmFj
ZU5hbWUgZXEgIkNTU1J1bGVMaXN0IjsKKyAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlTmFtZSBl
cSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZU5hbWUg
ZXEgIk1lZGlhTGlzdCI7CisgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZU5hbWUgZXEgIlN0eWxl
U2hlZXRMaXN0IjsKIAogICAgICMgRm9yIGV2ZXJ5dGhpbmcgZWxzZSwgZG8gd2hhdCBKU0MgZG9l
cy4KICAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tVG9K
UyJ9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwJKHJldmlzaW9u
IDg0NDE2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9k
dWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgW0N1c3RvbU1hcmtGdW5jdGlvbl0g
Q1NTRm9udEZhY2VSdWxlIDogQ1NTUnVsZSB7CisgICAgaW50ZXJmYWNlIENTU0ZvbnRGYWNlUnVs
ZSA6IENTU1J1bGUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJh
dGlvbiBzdHlsZTsKICAgICB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0
UnVsZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUu
aWRsCShyZXZpc2lvbiA4NDQxNikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxl
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQAogbW9kdWxlIGNzcyB7CiAKICAg
ICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbQ3VzdG9tTWFy
a0Z1bmN0aW9uXSBDU1NJbXBvcnRSdWxlIDogQ1NTUnVsZSB7CisgICAgaW50ZXJmYWNlIENTU0lt
cG9ydFJ1bGUgOiBDU1NSdWxlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBocmVmOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgTWVkaWFMaXN0IG1lZGlhOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5
bGVTaGVldCBzdHlsZVNoZWV0OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVs
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAJ
KHJldmlzaW9uIDg0NDE2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAgQ1NTTWVkaWFSdWxlOjpDU1NNZWRpYVJ1
bGUoQ1NTU3R5bGVTaGVldAogICAgICwgbV9sc3RNZWRpYShtZWRpYSkKICAgICAsIG1fbHN0Q1NT
UnVsZXMocnVsZXMpCiB7CisgICAgbV9sc3RNZWRpYS0+c2V0UGFyZW50KHRoaXMpOwogICAgIGlu
dCBsZW5ndGggPSBtX2xzdENTU1J1bGVzLT5sZW5ndGgoKTsKICAgICBmb3IgKGludCBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKQogICAgICAgICBtX2xzdENTU1J1bGVzLT5pdGVtKGkpLT5zZXRQYXJl
bnQodGhpcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmlkbAkocmV2aXNpb24g
ODQ0MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMjEsNyArMjEsNyBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2Vk
IGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbQ3VzdG9tTWFya0Z1bmN0aW9uXSBDU1NN
ZWRpYVJ1bGUgOiBDU1NSdWxlIHsKKyAgICBpbnRlcmZhY2UgQ1NTTWVkaWFSdWxlIDogQ1NTUnVs
ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYUxpc3QgbWVkaWE7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlTGlzdCBjc3NSdWxlczsKICAgICAgICAgCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5pZGwJKHJldmlzaW9uIDg0NDE2KQorKysgU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEs
NyBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgot
ICAgIGludGVyZmFjZSBbQ3VzdG9tTWFya0Z1bmN0aW9uXSBDU1NQYWdlUnVsZSA6IENTU1J1bGUg
eworICAgIGludGVyZmFjZSBDU1NQYWdlUnVsZSA6IENTU1J1bGUgewogCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9yVGV4dDsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1J1bGVMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UnVsZUxpc3QuaWRsCShyZXZpc2lvbiA4NDQxNikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NS
dWxlTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAgbW9kdWxlIGNzcyB7
CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGludGVyZmFjZSBbCi0g
ICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwKKyAgICAgICAgQ3VzdG9tVG9KUywKICAgICAgICAg
SGFzSW5kZXhHZXR0ZXIKICAgICBdIENTU1J1bGVMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgICAgbGVuZ3RoOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkocmV2aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYg
KzIzLDcgQEAgbW9kdWxlIGNzcyB7CiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoK
ICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCisgICAgICAgIEN1
c3RvbVRvSlMsCiAgICAgICAgIERlbGVnYXRpbmdQdXRGdW5jdGlvbiwKICAgICAgICAgSGFzTmFt
ZUdldHRlciwKICAgICAgICAgSGFzSW5kZXhHZXR0ZXIKQEAgLTMxLDcgKzMyLDcgQEAgbW9kdWxl
IGNzcyB7CiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKICAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nICAgICAgICAg
IGdldFByb3BlcnR5VmFsdWUoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIENT
U1ZhbHVlICAgICAgICAgICBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGluIERPTVN0cmluZyBwcm9wZXJ0
eU5hbWUpOworICAgICAgICBbSlNDQ3VzdG9tXSBDU1NWYWx1ZSAgICAgICAgICAgZ2V0UHJvcGVy
dHlDU1NWYWx1ZShpbiBET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKICAgICAgICAgW0NvbnZlcnRO
dWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIHJlbW92ZVByb3BlcnR5KGluIERP
TVN0cmluZyBwcm9wZXJ0eU5hbWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIGdl
dFByb3BlcnR5UHJpb3JpdHkoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVSdWxlLmlkbAkocmV2aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVSdWxlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBA
QAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAg
IGludGVyZmFjZSBbQ3VzdG9tTWFya0Z1bmN0aW9uXSBDU1NTdHlsZVJ1bGUgOiBDU1NSdWxlIHsK
KyAgICBpbnRlcmZhY2UgQ1NTU3R5bGVSdWxlIDogQ1NTUnVsZSB7CiAKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JUZXh0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmlkbAkocmV2aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQCBtb2R1bGUgc3R5bGVzaGVldHMg
ewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDdXN0b21Ub0pTLAogICAgICAgICBIYXNJbmRleEdldHRlcgogICAgIF0gTWVkaWFM
aXN0IHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQmFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQmFzZS5jcHAJKHJldmlzaW9uIDg0NDE2KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDYgKzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTdHlsZUJhc2UuaCIK
IAorI2luY2x1ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgpAQCAt
NDAsNiArNDEsMTcgQEAgdm9pZCBTdHlsZUJhc2U6OmNoZWNrTG9hZGVkKCkKICAgICAgICAgcGFy
ZW50KCktPmNoZWNrTG9hZGVkKCk7CiB9CiAKK05vZGUqIFN0eWxlQmFzZTo6bm9kZSgpCit7Cisg
ICAgaWYgKGlzU3R5bGVTaGVldCgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3R5bGVT
aGVldCo+KHRoaXMpLT5vd25lck5vZGUoKTsKKworICAgIGlmIChpc011dGFibGVTdHlsZURlY2xh
cmF0aW9uKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbio+KHRoaXMpLT5ub2RlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwogU3R5bGVTaGVl
dCogU3R5bGVCYXNlOjpzdHlsZXNoZWV0KCkKIHsKICAgICBTdHlsZUJhc2UgKmIgPSB0aGlzOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQmFzZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJhc2UuaAkocmV2aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDkgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU3R5bGVTaGVldDsKICAgICBjbGFzcyBL
VVJMOworICAgIGNsYXNzIE5vZGU7CisgICAgY2xhc3MgU3R5bGVTaGVldDsKIAogICAgIC8vIEJh
c2UgY2xhc3MgZm9yIG1vc3QgQ1NTIERPTSBvYmplY3RzLgogCkBAIC03MSw2ICs3Miw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1BhcmVu
dCgpIHsgfQogCiAgICAgICAgIFN0eWxlU2hlZXQqIHN0eWxlc2hlZXQoKTsKKyAgICAgICAgTm9k
ZSogbm9kZSgpOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBTdHlsZUJhc2UoU3R5bGVCYXNl
KiBwYXJlbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldExpc3QuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwJKHJldmlz
aW9uIDg0NDE2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCBtb2R1bGUgc3R5bGVzaGVldHMgewogCiAgICAg
Ly8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBD
dXN0b21NYXJrRnVuY3Rpb24sCisgICAgICAgIEN1c3RvbVRvSlMsCiAgICAgICAgIEhhc0luZGV4
R2V0dGVyLAogICAgICAgICBIYXNOYW1lR2V0dGVyCiAgICAgXSBTdHlsZVNoZWV0TGlzdCB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlkbAkocmV2
aXNpb24gODQ0MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogbW9kdWxlIGNzcyB7CiAKICAg
ICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCA/OgotICAgIGludGVyZmFjZSBbQ3VzdG9tTWFy
a0Z1bmN0aW9uXSBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUgOiBDU1NSdWxlIHsKKyAgICBpbnRlcmZh
Y2UgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIDogQ1NTUnVsZSB7CiAKICAgICAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBrZXlUZXh0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVE
ZWNsYXJhdGlvbiBzdHlsZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZS5pZGwJKHJldmlzaW9uIDg0NDE2KQorKysgU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lc1J1bGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2
IEBAIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgPzoKICAg
ICBpbnRlcmZhY2UgWwotICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEhhc0lu
ZGV4R2V0dGVyCiAgICAgXSBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlIDogQ1NTUnVsZSB7CiAK
</data>
<flag name="review"
          id="83236"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>