<?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>6496</bug_id>
          
          <creation_ts>2006-01-11 13:12:38 -0800</creation_ts>
          <short_desc>Rename KParts::Part to ObjectContents</short_desc>
          <delta_ts>2006-01-12 00:47:09 -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>Frames</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>darin</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>28253</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-01-11 13:12:38 -0800</bug_when>
    <thetext>I have a patch that merges KParts::Part with KParts::ReadOnlyPart and renames it to ObjectContents, 
moving it to Frame.h in the process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28254</commentid>
    <comment_count>1</comment_count>
      <attachid>5607</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-01-11 13:16:24 -0800</bug_when>
    <thetext>Created attachment 5607
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28261</commentid>
    <comment_count>2</comment_count>
      <attachid>5607</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-01-11 16:06:57 -0800</bug_when>
    <thetext>Comment on attachment 5607
The patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28272</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-11 19:14:28 -0800</bug_when>
    <thetext>Why put this into Frame.h? We are moving to 1 file per class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28278</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-01-12 00:47:09 -0800</bug_when>
    <thetext>Good point, I put it in page/ObjectContents.h instead (after Maciej approved of it). Closing this</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5607</attachid>
            <date>2006-01-11 13:16:24 -0800</date>
            <delta_ts>2006-01-11 16:06:57 -0800</delta_ts>
            <desc>The patch</desc>
            <filename>webcore-part-rename.txt</filename>
            <type>text/plain</type>
            <size>40422</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VjbWEva2pzX2V2ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwvZWNt
YS9ranNfZXZlbnRzLmNwcAkocmV2aXNpb24gMTIwMDEpCisrKyBraHRtbC9lY21hL2tqc19ldmVu
dHMuY3BwCShhcmJldHNrb3BpYSkKQEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIEpTTGF6eUV2ZW50
TGlzdGVuZXI6OnBhcnNlQ29kZSgpIGNvCiAgICAgICAgIEpTT2JqZWN0KiBjb25zdHIgPSBpbnRl
cnByZXRlci0+YnVpbHRpbkZ1bmN0aW9uKCk7CiAgICAgICAgIExpc3QgYXJnczsKIAotICAgICAg
ICBVU3RyaW5nIHNvdXJjZVVSTChmcmFtZS0+bV91cmwudXJsKCkpOworICAgICAgICBVU3RyaW5n
IHNvdXJjZVVSTChmcmFtZS0+dXJsKCkudXJsKCkpOwogICAgICAgICBhcmdzLmFwcGVuZChldmVu
dFBhcmFtZXRlck5hbWUoKSk7CiAgICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nKGNvZGUpKTsK
ICAgICAgICAgbGlzdGVuZXIgPSBjb25zdHItPmNvbnN0cnVjdChleGVjLCBhcmdzLCBzb3VyY2VV
UkwsIGxpbmVOdW1iZXIpOyAvLyAjIyMgaXMgZ2xvYmFsRXhlYyBvayA/CkluZGV4OiBraHRtbC9l
Y21hL2tqc193aW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL2VjbWEva2pzX3dpbmRvdy5j
cHAJKHJldmlzaW9uIDEyMDAxKQorKysga2h0bWwvZWNtYS9ranNfd2luZG93LmNwcAkoYXJiZXRz
a29waWEpCkBAIC01NTcsMTcgKzU1NywxNyBAQCBzdGF0aWMgRnJhbWUgKmNyZWF0ZU5ld1dpbmRv
dyhFeGVjU3RhdGUgCiAgICAgLy8gZG8gYW4gaXNTYWZlU2NyaXB0IGNhbGwgdXNpbmcgdGhlIHdp
bmRvdyB3ZSBjcmVhdGUsIHdoaWNoIGNhbid0IGJlIGRvbmUgYmVmb3JlIGNyZWF0aW5nIGl0Lgog
ICAgIC8vIFdlJ2QgaGF2ZSB0byByZXNvbHZlIGFsbCB0aG9zZSBpc3N1ZXMgdG8gcGFzcyB0aGUg
VVJMIGluc3RlYWQgb2YgIiIuCiAKLSAgICBSZWFkT25seVBhcnQgKm5ld1JlYWRPbmx5UGFydCA9
IDA7Ci0gICAgb3BlbmVyUGFydC0+YnJvd3NlckV4dGVuc2lvbigpLT5jcmVhdGVOZXdXaW5kb3co
IiIsIHVhcmdzLCB3aW5kb3dBcmdzLCBuZXdSZWFkT25seVBhcnQpOworICAgIE9iamVjdENvbnRl
bnRzICpuZXdQYXJ0ID0gMDsKKyAgICBvcGVuZXJQYXJ0LT5icm93c2VyRXh0ZW5zaW9uKCktPmNy
ZWF0ZU5ld1dpbmRvdygiIiwgdWFyZ3MsIHdpbmRvd0FyZ3MsIG5ld1BhcnQpOwogCi0gICAgaWYg
KCFuZXdSZWFkT25seVBhcnQgfHwgIW5ld1JlYWRPbmx5UGFydC0+aW5oZXJpdHMoIkZyYW1lIikp
CisgICAgaWYgKCFuZXdQYXJ0IHx8ICFuZXdQYXJ0LT5pbmhlcml0cygiRnJhbWUiKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICBGcmFtZSAqbmV3UGFydCA9IHN0YXRpY19jYXN0PEZyYW1lICo+
KG5ld1JlYWRPbmx5UGFydCk7Ci0gICAgV2luZG93ICpuZXdXaW5kb3cgPSBXaW5kb3c6OnJldHJp
ZXZlV2luZG93KG5ld1BhcnQpOworICAgIEZyYW1lICpuZXdGcmFtZSA9IHN0YXRpY19jYXN0PEZy
YW1lICo+KG5ld1BhcnQpOworICAgIFdpbmRvdyAqbmV3V2luZG93ID0gV2luZG93OjpyZXRyaWV2
ZVdpbmRvdyhuZXdGcmFtZSk7CiAKLSAgICBuZXdQYXJ0LT5zZXRPcGVuZXIob3BlbmVyUGFydCk7
Ci0gICAgbmV3UGFydC0+c2V0T3BlbmVkQnlKUyh0cnVlKTsKKyAgICBuZXdGcmFtZS0+c2V0T3Bl
bmVyKG9wZW5lclBhcnQpOworICAgIG5ld0ZyYW1lLT5zZXRPcGVuZWRCeUpTKHRydWUpOwogICAg
IGlmIChkaWFsb2dBcmdzKQogICAgICAgICBuZXdXaW5kb3ctPnB1dERpcmVjdCgiZGlhbG9nQXJn
dW1lbnRzIiwgZGlhbG9nQXJncyk7CiAKQEAgLTU3NiwxMSArNTc2LDExIEBAIHN0YXRpYyBGcmFt
ZSAqY3JlYXRlTmV3V2luZG93KEV4ZWNTdGF0ZSAKICAgICAgICAgUVN0cmluZyBjb21wbGV0ZWRV
UkwgPSBhY3RpdmVEb2MtPmNvbXBsZXRlVVJMKFVSTCk7CiAgICAgICAgIGlmICghY29tcGxldGVk
VVJMLnN0YXJ0c1dpdGgoImphdmFzY3JpcHQ6IiwgZmFsc2UpIHx8IG5ld1dpbmRvdy0+aXNTYWZl
U2NyaXB0KGV4ZWMpKSB7CiAgICAgICAgICAgICBib29sIHVzZXJHZXN0dXJlID0gc3RhdGljX2Nh
c3Q8U2NyaXB0SW50ZXJwcmV0ZXIgKj4oZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCkpLT53YXNS
dW5CeVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgICBuZXdQYXJ0LT5jaGFuZ2VMb2NhdGlvbihj
b21wbGV0ZWRVUkwsIGFjdGl2ZVBhcnQtPnJlZmVycmVyKCksIGZhbHNlLCB1c2VyR2VzdHVyZSk7
CisgICAgICAgICAgICBuZXdGcmFtZS0+Y2hhbmdlTG9jYXRpb24oY29tcGxldGVkVVJMLCBhY3Rp
dmVQYXJ0LT5yZWZlcnJlcigpLCBmYWxzZSwgdXNlckdlc3R1cmUpOwogICAgICAgICB9CiAgICAg
fQogCi0gICAgcmV0dXJuIG5ld1BhcnQ7CisgICAgcmV0dXJuIG5ld0ZyYW1lOwogfQogCiBzdGF0
aWMgYm9vbCBjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgV2luZG93ICp3aW5kb3cpCkBAIC05MTgs
OCArOTE4LDggQEAgSlNWYWx1ZSAqV2luZG93OjppbmRleEdldHRlcihFeGVjU3RhdGUgKgogewog
ICBXaW5kb3cgKnRoaXNPYmogPSBzdGF0aWNfY2FzdDxXaW5kb3cgKj4oc2xvdC5zbG90QmFzZSgp
KTsKICAgCi0gIFFQdHJMaXN0PEtQYXJ0czo6UmVhZE9ubHlQYXJ0PiBmcmFtZXMgPSB0aGlzT2Jq
LT5tX2ZyYW1lLT5mcmFtZXMoKTsKLSAgS1BhcnRzOjpSZWFkT25seVBhcnQqIGZyYW1lID0gZnJh
bWVzLmF0KHNsb3QuaW5kZXgoKSk7CisgIFFQdHJMaXN0PE9iamVjdENvbnRlbnRzPiBmcmFtZXMg
PSB0aGlzT2JqLT5tX2ZyYW1lLT5mcmFtZXMoKTsKKyAgT2JqZWN0Q29udGVudHMqIGZyYW1lID0g
ZnJhbWVzLmF0KHNsb3QuaW5kZXgoKSk7CiAgIGFzc2VydChmcmFtZSAmJiBmcmFtZS0+aW5oZXJp
dHMoIkZyYW1lIikpOwogCiAgIHJldHVybiByZXRyaWV2ZShzdGF0aWNfY2FzdDxGcmFtZSo+KGZy
YW1lKSk7CkBAIC0xMDEyLDEwICsxMDEyLDEwIEBAIGJvb2wgV2luZG93OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXQKICAgYm9vbCBvazsKICAgdW5zaWduZWQgaW50IGkgPSBwcm9wZXJ0eU5h
bWUudG9BcnJheUluZGV4KCZvayk7CiAgIGlmIChvaykgewotICAgIFFQdHJMaXN0PEtQYXJ0czo6
UmVhZE9ubHlQYXJ0PiBmcmFtZXMgPSBtX2ZyYW1lLT5mcmFtZXMoKTsKKyAgICBRUHRyTGlzdDxP
YmplY3RDb250ZW50cz4gZnJhbWVzID0gbV9mcmFtZS0+ZnJhbWVzKCk7CiAgICAgdW5zaWduZWQg
aW50IGxlbiA9IGZyYW1lcy5jb3VudCgpOwogICAgIGlmIChpIDwgbGVuKSB7Ci0gICAgICBLUGFy
dHM6OlJlYWRPbmx5UGFydCogZnJhbWUgPSBmcmFtZXMuYXQoaSk7CisgICAgICBPYmplY3RDb250
ZW50cyogZnJhbWUgPSBmcmFtZXMuYXQoaSk7CiAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmlu
aGVyaXRzKCJGcmFtZSIpKSB7CiAgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpcywgaSwg
aW5kZXhHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2NDMsNyArMTY0Myw3IEBA
IEpTVmFsdWUgKldpbmRvd0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKEV4ZWMKICAgICAgIHVhcmdzLnNl
cnZpY2VUeXBlID0gInRleHQvaHRtbCI7CiAgICAgICAKICAgICAgIC8vIHJlcXVlc3Qgd2luZG93
IChuZXcgb3IgZXhpc3RpbmcgaWYgZnJhbWVuYW1lIGlzIHNldCkKLSAgICAgIEtQYXJ0czo6UmVh
ZE9ubHlQYXJ0ICpuZXdQYXJ0ID0gMEw7CisgICAgICBPYmplY3RDb250ZW50cyAqbmV3UGFydCA9
IDBMOwogICAgICAgdWFyZ3MubWV0YURhdGEoKVsicmVmZXJyZXIiXSA9IGFjdGl2ZVBhcnQtPnJl
ZmVycmVyKCk7CiAgICAgICBmcmFtZS0+YnJvd3NlckV4dGVuc2lvbigpLT5jcmVhdGVOZXdXaW5k
b3coIiIsIHVhcmdzLCB3aW5kb3dBcmdzLCBuZXdQYXJ0KTsKICAgICAgIGlmICghbmV3UGFydCB8
fCAhbmV3UGFydC0+aW5oZXJpdHMoIkZyYW1lIikpCkBAIC0yMDIzLDcgKzIwMjMsNyBAQCBKU1Zh
bHVlICpGcmFtZUFycmF5OjpnZXRWYWx1ZVByb3BlcnR5KEV4CiB7CiAgIHN3aXRjaCAodG9rZW4p
IHsKICAgY2FzZSBMZW5ndGg6IHsKLSAgICBRUHRyTGlzdDxLUGFydHM6OlJlYWRPbmx5UGFydD4g
ZnJhbWVzID0gbV9mcmFtZS0+ZnJhbWVzKCk7CisgICAgUVB0ckxpc3Q8T2JqZWN0Q29udGVudHM+
IGZyYW1lcyA9IG1fZnJhbWUtPmZyYW1lcygpOwogICAgIHVuc2lnbmVkIGludCBsZW4gPSBmcmFt
ZXMuY291bnQoKTsKICAgICByZXR1cm4ganNOdW1iZXIobGVuKTsKICAgfQpAQCAtMjA0MSw3ICsy
MDQxLDcgQEAgSlNWYWx1ZSAqRnJhbWVBcnJheTo6Z2V0VmFsdWVQcm9wZXJ0eShFeAogSlNWYWx1
ZSAqRnJhbWVBcnJheTo6aW5kZXhHZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqb3Jp
Z2luYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVy
dHlTbG90JiBzbG90KQogewogICBGcmFtZUFycmF5ICp0aGlzT2JqID0gc3RhdGljX2Nhc3Q8RnJh
bWVBcnJheSAqPihzbG90LnNsb3RCYXNlKCkpOwotICBLUGFydHM6OlJlYWRPbmx5UGFydCAqZnJh
bWUgPSB0aGlzT2JqLT5tX2ZyYW1lLT5mcmFtZXMoKS5hdChzbG90LmluZGV4KCkpOworICBPYmpl
Y3RDb250ZW50cyAqZnJhbWUgPSB0aGlzT2JqLT5tX2ZyYW1lLT5mcmFtZXMoKS5hdChzbG90Lmlu
ZGV4KCkpOwogCiAgIGlmIChmcmFtZSAmJiBmcmFtZS0+aW5oZXJpdHMoIkZyYW1lIikpIHsKICAg
ICBGcmFtZSAqa2h0bWwgPSBzdGF0aWNfY2FzdDxGcmFtZSo+KGZyYW1lKTsKQEAgLTIwNTQsNyAr
MjA1NCw3IEBAIEpTVmFsdWUgKkZyYW1lQXJyYXk6OmluZGV4R2V0dGVyKEV4ZWNTdGEKIEpTVmFs
dWUgKkZyYW1lQXJyYXk6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqb3Jp
Z2luYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVy
dHlTbG90JiBzbG90KQogewogICBGcmFtZUFycmF5ICp0aGlzT2JqID0gc3RhdGljX2Nhc3Q8RnJh
bWVBcnJheSAqPihzbG90LnNsb3RCYXNlKCkpOwotICBLUGFydHM6OlJlYWRPbmx5UGFydCAqZnJh
bWUgPSB0aGlzT2JqLT5tX2ZyYW1lLT5maW5kRnJhbWUocHJvcGVydHlOYW1lLnFzdHJpbmcoKSk7
CisgIE9iamVjdENvbnRlbnRzICpmcmFtZSA9IHRoaXNPYmotPm1fZnJhbWUtPmZpbmRGcmFtZShw
cm9wZXJ0eU5hbWUucXN0cmluZygpKTsKIAogICBpZiAoZnJhbWUgJiYgZnJhbWUtPmluaGVyaXRz
KCJGcmFtZSIpKSB7CiAgICAgRnJhbWUgKmtodG1sID0gc3RhdGljX2Nhc3Q8RnJhbWUqPihmcmFt
ZSk7CkBAIC0yMDc4LDcgKzIwNzgsNyBAQCBib29sIEZyYW1lQXJyYXk6OmdldE93blByb3BlcnR5
U2xvdChFeGVjCiAgIH0KIAogICAvLyBjaGVjayBmb3IgdGhlIG5hbWUgb3IgbnVtYmVyCi0gIEtQ
YXJ0czo6UmVhZE9ubHlQYXJ0ICpmcmFtZSA9IG1fZnJhbWUtPmZpbmRGcmFtZShwcm9wZXJ0eU5h
bWUucXN0cmluZygpKTsKKyAgT2JqZWN0Q29udGVudHMgKmZyYW1lID0gbV9mcmFtZS0+ZmluZEZy
YW1lKHByb3BlcnR5TmFtZS5xc3RyaW5nKCkpOwogICBpZiAoZnJhbWUpIHsKICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzLCBuYW1lR2V0dGVyKTsKICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEyMDAxKQorKysgV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShhcmJldHNrb3BpYSkKQEAgLTIxNiw3ICsyMTYsNiBAQAogCQk5
M0YxOTk1RDA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS1BhcnRzQnJvd3NlckludGVyZmFjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2NjgwMkRF
M0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UuaCAqLzsgfTsKIAkJOTNG
MTk5NUUwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUtQYXJ0c0V2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY2OTAyREUzQjMyMDFFQTQxMjIg
LyogS1dRS1BhcnRzRXZlbnQuaCAqLzsgfTsKIAkJOTNGMTk5NjAwODI0NUU1OTAwMUU5QUJDIC8q
IEtXUUtQYXJ0c0hpc3RvcnlQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2NkIwMkRFM0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0c0hp
c3RvcnlQcm92aWRlci5oICovOyB9OwotCQk5M0YxOTk2MTA4MjQ1RTU5MDAxRTlBQkMgLyogS1dR
S1BhcnRzUGFydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU4Nzg2NkMwMkRFM0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0c1BhcnQuaCAqLzsgfTsKIAkJ
OTNGMTk5NjMwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUtTU0xLZXlHZW4uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NjYyMDJERTNCMTEwMUVBNDEy
MiAvKiBLV1FLU1NMS2V5R2VuLmggKi87IH07CiAJCTkzRjE5OTY0MDgyNDVFNTkwMDFFOUFCQyAv
KiBLV1FLU3RhbmRhcmREaXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTg3ODVGRjAyREUzODIwMDFFQTQxMjIgLyogS1dRS1N0YW5kYXJkRGlycy5o
ICovOyB9OwogCQk5M0YxOTk2NzA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS1VSTC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2MDIwMkRFMzgyMDAx
RUE0MTIyIC8qIEtXUUtVUkwuaCAqLzsgfTsKQEAgLTUyNSw3ICs1MjQsNiBAQAogCQk5M0YxOUFE
RjA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRQWNjT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTU5OThBNUIwNTJCNTlDQzAwMTdBNkMxIC8qIEtX
UUFjY09iamVjdC5tbSAqLzsgfTsKIAkJOTNGMTlBRTAwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUFj
Y09iamVjdENhY2hlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTU5OThBNUQwNTJCNTlDQzAwMTdBNkMxIC8qIEtXUUFjY09iamVjdENhY2hlLm1tICov
OyB9OwogCQk5M0YxOUFFMTA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRRXhjZXB0aW9ucy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RjgwNjk3MDU0RDlG
ODYwMDhCRjc3NiAvKiBLV1FFeGNlcHRpb25zLm1tICovOyB9OwotCQk5M0YxOUFFMjA4MjQ1RTU5
MDAxRTlBQkMgLyogS1dRS1BhcnRzUGFydC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDY1NzMyQjY4MDU0RUY0ODMwMDdCNDJGOCAvKiBLV1FLUGFydHNQ
YXJ0Lm1tICovOyB9OwogCQk5M0YxOUFFMzA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUdyYXBo
aWNzQnJpZGdlLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCRTI2RjE1NDA1NTE3REUwMDBCRkEwQzMgLyogV2ViQ29yZUdyYXBoaWNzQnJpZGdlLm0gKi87
IH07CiAJCTkzRjE5QUU0MDgyNDVFNTkwMDFFOUFCQyAvKiB4bWxodHRwcmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTRFN0VFMDA1NjlG
RDQ2MDAzNThCRDIgLyogeG1saHR0cHJlcXVlc3QuY3BwICovOyB9OwogCQk5M0YxOUFFNTA4MjQ1
RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleUdlbmVyYXRvci5tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRCMkIxRjgwNTZCRUYzQTAwRDJCNzcxIC8qIFdl
YkNvcmVLZXlHZW5lcmF0b3IubSAqLzsgfTsKQEAgLTgxNSw3ICs4MTMsNiBAQAogCQlBODhBRDFB
MTA5NTI0ODBBMDAxREQxOTYgLyogS1dRS1BhcnRzQnJvd3NlckludGVyZmFjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2NjgwMkRFM0IzMjAx
RUE0MTIyIC8qIEtXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UuaCAqLzsgfTsKIAkJQTg4QUQxQTIw
OTUyNDgwQTAwMUREMTk2IC8qIEtXUUtQYXJ0c0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY2OTAyREUzQjMyMDFFQTQxMjIgLyogS1dR
S1BhcnRzRXZlbnQuaCAqLzsgfTsKIAkJQTg4QUQxQTMwOTUyNDgwQTAwMUREMTk2IC8qIEtXUUtQ
YXJ0c0hpc3RvcnlQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU4Nzg2NkIwMkRFM0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0c0hpc3RvcnlQ
cm92aWRlci5oICovOyB9OwotCQlBODhBRDFBNDA5NTI0ODBBMDAxREQxOTYgLyogS1dRS1BhcnRz
UGFydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4
Nzg2NkMwMkRFM0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0c1BhcnQuaCAqLzsgfTsKIAkJQTg4QUQx
QTUwOTUyNDgwQTAwMUREMTk2IC8qIEtXUUtTU0xLZXlHZW4uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NjYyMDJERTNCMTEwMUVBNDEyMiAvKiBL
V1FLU1NMS2V5R2VuLmggKi87IH07CiAJCUE4OEFEMUE2MDk1MjQ4MEEwMDFERDE5NiAvKiBLV1FL
U3RhbmRhcmREaXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTg3ODVGRjAyREUzODIwMDFFQTQxMjIgLyogS1dRS1N0YW5kYXJkRGlycy5oICovOyB9
OwogCQlBODhBRDFBOTA5NTI0ODBBMDAxREQxOTYgLyogS1dRS1VSTC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2MDIwMkRFMzgyMDAxRUE0MTIy
IC8qIEtXUUtVUkwuaCAqLzsgfTsKQEAgLTExNjYsNyArMTE2Myw2IEBACiAJCUE4OEFEMzFCMDk1
MjQ4MEEwMDFERDE5NiAvKiBLV1FBY2NPYmplY3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTk5OEE1QjA1MkI1OUNDMDAxN0E2QzEgLyogS1dRQWNj
T2JqZWN0Lm1tICovOyB9OwogCQlBODhBRDMxQzA5NTI0ODBBMDAxREQxOTYgLyogS1dRQWNjT2Jq
ZWN0Q2FjaGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NTk5OEE1RDA1MkI1OUNDMDAxN0E2QzEgLyogS1dRQWNjT2JqZWN0Q2FjaGUubW0gKi87IH07
CiAJCUE4OEFEMzFEMDk1MjQ4MEEwMDFERDE5NiAvKiBLV1FFeGNlcHRpb25zLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVGODA2OTcwNTREOUY4NjAw
OEJGNzc2IC8qIEtXUUV4Y2VwdGlvbnMubW0gKi87IH07Ci0JCUE4OEFEMzFFMDk1MjQ4MEEwMDFE
RDE5NiAvKiBLV1FLUGFydHNQYXJ0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjU3MzJCNjgwNTRFRjQ4MzAwN0I0MkY4IC8qIEtXUUtQYXJ0c1BhcnQu
bW0gKi87IH07CiAJCUE4OEFEMzFGMDk1MjQ4MEEwMDFERDE5NiAvKiBXZWJDb3JlR3JhcGhpY3NC
cmlkZ2UubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJF
MjZGMTU0MDU1MTdERTAwMEJGQTBDMyAvKiBXZWJDb3JlR3JhcGhpY3NCcmlkZ2UubSAqLzsgfTsK
IAkJQTg4QUQzMjAwOTUyNDgwQTAwMUREMTk2IC8qIHhtbGh0dHByZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NEU3RUUwMDU2OUZENDYw
MDM1OEJEMiAvKiB4bWxodHRwcmVxdWVzdC5jcHAgKi87IH07CiAJCUE4OEFEMzIxMDk1MjQ4MEEw
MDFERDE5NiAvKiBXZWJDb3JlS2V5R2VuZXJhdG9yLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEIyQjFGODA1NkJFRjNBMDBEMkI3NzEgLyogV2ViQ29y
ZUtleUdlbmVyYXRvci5tICovOyB9OwpAQCAtMTc2Miw3ICsxNzU4LDYgQEAKIAkJNjU0RTdFRTEw
NTY5RkQ0NjAwMzU4QkQyIC8qIHhtbGh0dHByZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHhtbGh0dHByZXF1ZXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk2NTUyRTdB
ODA5NkFBMTFCMDAwNkYyNDggLyogV2ViQ29yZUZyYW1lTmFtZXNwYWNlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lTmFtZXNwYWNlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2NTUyRTdBOTA5NkFBMTFCMDAwNkYyNDggLyogV2ViQ29y
ZUZyYW1lTmFtZXNwYWNlcy5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0g
V2ViQ29yZUZyYW1lTmFtZXNwYWNlcy5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2
NTczMkI2ODA1NEVGNDgzMDA3QjQyRjggLyogS1dRS1BhcnRzUGFydC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtXUUtQYXJ0c1Bh
cnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQk2NTc0M0I1MDA5NzA3NkY4MDAxRTdDRUYgLyogUmVuZGVyU1ZHVGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHVGV4dC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NzQzQjUxMDk3MDc2RjgwMDFFN0NFRiAvKiBS
ZW5kZXJTVkdUZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJT
VkdUZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OTEyQjBEMDU4NjkyMTAw
MDEyM0E2OSAvKiB4bWxzZXJpYWxpemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHhtbHNlcmlhbGl6ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTI3NDgsNyAr
Mjc0Myw2IEBACiAJCUY1ODc4NjY4MDJERTNCMzIwMUVBNDEyMiAvKiBLV1FLUGFydHNCcm93c2Vy
SW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEtXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NjY5MDJERTNCMzIwMUVB
NDEyMiAvKiBLV1FLUGFydHNFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLUGFydHNFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2NkIwMkRFM0IzMjAx
RUE0MTIyIC8qIEtXUUtQYXJ0c0hpc3RvcnlQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLUGFydHNIaXN0b3J5UHJvdmlkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
Ci0JCUY1ODc4NjZDMDJERTNCMzIwMUVBNDEyMiAvKiBLV1FLUGFydHNQYXJ0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtXUUtQYXJ0c1BhcnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUY1ODc4Njc2MDJERTNCODYwMUVBNDEyMiAvKiBLV1FBcHBsaWNhdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRo
ID0gS1dRQXBwbGljYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4Njc3MDJERTNCODYwMUVBNDEyMiAvKiBLV1FNZW1B
cnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBLV1FNZW1BcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2NzkwMkRFM0I4NjAxRUE0MTIyIC8qIEtXUUFzeW5jSU8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS1dR
QXN5bmNJTy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKQEAgLTQyMTcsOCArNDIxMSw2IEBACiAJCQkJRjU4Nzg1MDgwMkRFMzc1OTAxRUE0
MTIyIC8qIEtXUUtQYXJ0c0V2ZW50LmNwcCAqLywKIAkJCQlGNTg3ODY2QjAyREUzQjMyMDFFQTQx
MjIgLyogS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVyLmggKi8sCiAJCQkJRjU4Nzg0RjYwMkRFMzc1
OTAxRUE0MTIyIC8qIEtXUUtIaXN0b3J5UHJvdmlkZXIubW0gKi8sCi0JCQkJRjU4Nzg2NkMwMkRF
M0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0c1BhcnQuaCAqLywKLQkJCQk2NTczMkI2ODA1NEVGNDgz
MDA3QjQyRjggLyogS1dRS1BhcnRzUGFydC5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0ga3BhcnRz
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ0ODAsNyArNDQ3Miw2IEBACiAJCQkJ
OTNGMTk5NUQwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzRjE5OTVFMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLUGFydHNF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NjAwODI0NUU1OTAwMUU5QUJDIC8qIEtX
UUtQYXJ0c0hpc3RvcnlQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTNGMTk5NjEwODI0
NUU1OTAwMUU5QUJDIC8qIEtXUUtQYXJ0c1BhcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5
OTYzMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLU1NMS2V5R2VuLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTk2NDA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS1N0YW5kYXJkRGlycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTNGMTk5NjcwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUtVUkwuaCBpbiBIZWFk
ZXJzICovLApAQCAtNTAwMiw3ICs0OTkzLDYgQEAKIAkJCQlBODhBRDFBMTA5NTI0ODBBMDAxREQx
OTYgLyogS1dRS1BhcnRzQnJvd3NlckludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4
QUQxQTIwOTUyNDgwQTAwMUREMTk2IC8qIEtXUUtQYXJ0c0V2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODhBRDFBMzA5NTI0ODBBMDAxREQxOTYgLyogS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBODhBRDFBNDA5NTI0ODBBMDAxREQxOTYgLyogS1dRS1Bh
cnRzUGFydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQxQTUwOTUyNDgwQTAwMUREMTk2IC8q
IEtXUUtTU0xLZXlHZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFEMUE2MDk1MjQ4MEEwMDFE
RDE5NiAvKiBLV1FLU3RhbmRhcmREaXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDFBOTA5
NTI0ODBBMDAxREQxOTYgLyogS1dRS1VSTC5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDU5LDcgKzY0
NDksNiBAQAogCQkJCTkzRjE5QURGMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FBY2NPYmplY3QubW0g
aW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFMDA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRQWNjT2Jq
ZWN0Q2FjaGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFMTA4MjQ1RTU5MDAxRTlBQkMg
LyogS1dRRXhjZXB0aW9ucy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTkzRjE5QUUyMDgyNDVFNTkw
MDFFOUFCQyAvKiBLV1FLUGFydHNQYXJ0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTMw
ODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVHcmFwaGljc0JyaWRnZS5tIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNGMTlBRTQwODI0NUU1OTAwMUU5QUJDIC8qIHhtbGh0dHByZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzRjE5QUU1MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlS2V5R2Vu
ZXJhdG9yLm0gaW4gU291cmNlcyAqLywKQEAgLTY5MTQsNyArNjkwMyw2IEBACiAJCQkJQTg4QUQz
MUIwOTUyNDgwQTAwMUREMTk2IC8qIEtXUUFjY09iamVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUE4OEFEMzFDMDk1MjQ4MEEwMDFERDE5NiAvKiBLV1FBY2NPYmplY3RDYWNoZS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4OEFEMzFEMDk1MjQ4MEEwMDFERDE5NiAvKiBLV1FFeGNlcHRpb25zLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJQTg4QUQzMUUwOTUyNDgwQTAwMUREMTk2IC8qIEtXUUtQYXJ0
c1BhcnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDMxRjA5NTI0ODBBMDAxREQxOTYgLyog
V2ViQ29yZUdyYXBoaWNzQnJpZGdlLm0gaW4gU291cmNlcyAqLywKIAkJCQlBODhBRDMyMDA5NTI0
ODBBMDAxREQxOTYgLyogeG1saHR0cHJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4
QUQzMjEwOTUyNDgwQTAwMUREMTk2IC8qIFdlYkNvcmVLZXlHZW5lcmF0b3IubSBpbiBTb3VyY2Vz
ICovLApJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24g
MTIwMDEpCisrKyBDaGFuZ2VMb2cJKGFyYmV0c2tvcGlhKQpAQCAtMSw1ICsxLDc3IEBACiAyMDA2
LTAxLTExICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBtYWMuY29tPgogCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gTWVyZ2UgS1BhcnRzOjpQYXJ0
IHdpdGggS1BhcnRzOjpSZWFkT25seSBwYXJ0IGFuZCByZW5hbWUgaXQgdG8KKyAgICAgICAgT2Jq
ZWN0Q29udGVudHMuIAorICAgICAgICAKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9rcGFy
dHMvcGFydC5oOiBSZW1vdmVkLgorICAgICAgICAqIGt3cS9LV1FLUGFydHNQYXJ0Lmg6IFJlbW92
ZWQuCisgICAgICAgICoga3dxL0tXUUtQYXJ0c1BhcnQubW06IFJlbW92ZWQuCisKKyAgICAgICAg
KiBwYWdlL0ZyYW1lLmg6CisgICAgICAgIChPYmplY3RDb250ZW50czo6T2JqZWN0Q29udGVudHMp
OgorICAgICAgICAoT2JqZWN0Q29udGVudHM6OnVybCk6CisgICAgICAgIChPYmplY3RDb250ZW50
czo6c2V0UGFyZW50KToKKyAgICAgICAgKE9iamVjdENvbnRlbnRzOjpwYXJlbnQpOgorICAgICAg
ICAoT2JqZWN0Q29udGVudHM6OnNldE5hbWUpOgorICAgICAgICAoT2JqZWN0Q29udGVudHM6Om5h
bWUpOgorICAgICAgICAoT2JqZWN0Q29udGVudHM6OndpZGdldCk6CisgICAgICAgIChPYmplY3RD
b250ZW50czo6c2V0V2lkZ2V0KToKKyAgICAgICAgKE9iamVjdENvbnRlbnRzOjpyZWYpOgorICAg
ICAgICAoT2JqZWN0Q29udGVudHM6OmRlcmVmKToKKyAgICAgICAgKE9iamVjdENvbnRlbnRzOjpl
dmVudCk6CisgICAgICAgIChPYmplY3RDb250ZW50czo6Y3VzdG9tRXZlbnQpOgorICAgICAgICAo
T2JqZWN0Q29udGVudHM6OmlzT2JqZWN0Q29udGVudHMpOgorICAgICAgICBNb3ZlIE9iamVjdENv
bnRlbnRzIHRvIEZyYW1lLmgKKyAgICAgICAgCisgICAgICAgIFJlbmFtZXM6CisgICAgICAgIAor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogICAgICAgIAorICAg
ICAgICAqIGJyaWRnZS9tYWMvS1dRS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbi5oOgorICAgICAg
ICAqIGJyaWRnZS9tYWMvS1dRS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbi5tbToKKyAgICAgICAg
KEtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb246OmNyZWF0ZU5ld1dpbmRvdyk6CisgICAgICAgICog
YnJpZGdlL21hYy9LV1FLUGFydHNCcm93c2VyRXh0ZW5zaW9uLmg6CisgICAgICAgICogYnJpZGdl
L21hYy9NYWNGcmFtZS5oOgorICAgICAgICAqIGJyaWRnZS9tYWMvTWFjRnJhbWUubW06CisgICAg
ICAgIChNYWNGcmFtZTo6Y3JlYXRlUGFydCk6CisgICAgICAgICogYnJpZGdlL21hYy9XZWJDb3Jl
QnJpZGdlLm1tOgorICAgICAgICAoLVtXZWJDb3JlQnJpZGdlIHNhdmVEb2N1bWVudFRvUGFnZUNh
Y2hlXSk6CisgICAgICAgICoga2h0bWwvZWNtYS9ranNfZXZlbnRzLmNwcDoKKyAgICAgICAgKEtK
Uzo6SlNMYXp5RXZlbnRMaXN0ZW5lcjo6cGFyc2VDb2RlKToKKyAgICAgICAgKiBraHRtbC9lY21h
L2tqc193aW5kb3cuY3BwOgorICAgICAgICAoS0pTOjpjcmVhdGVOZXdXaW5kb3cpOgorICAgICAg
ICAoS0pTOjpXaW5kb3c6OmluZGV4R2V0dGVyKToKKyAgICAgICAgKEtKUzo6V2luZG93OjpnZXRP
d25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoS0pTOjpXaW5kb3dGdW5jOjpjYWxsQXNGdW5jdGlv
bik6CisgICAgICAgIChLSlM6OkZyYW1lQXJyYXk6OmdldFZhbHVlUHJvcGVydHkpOgorICAgICAg
ICAoS0pTOjpGcmFtZUFycmF5OjppbmRleEdldHRlcik6CisgICAgICAgIChLSlM6OkZyYW1lQXJy
YXk6Om5hbWVHZXR0ZXIpOgorICAgICAgICAoS0pTOjpGcmFtZUFycmF5OjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAqIGt3cS9LV1FPYmplY3QuY3BwOgorICAgICAgICAoUU9iamVjdDo6
aW5oZXJpdHMpOgorICAgICAgICAoUU9iamVjdDo6aXNPYmplY3RDb250ZW50cyk6CisgICAgICAg
ICoga3dxL0tXUU9iamVjdC5oOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAo
RnJhbWU6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKEZyYW1lOjpzdG9wQW5pbWF0aW9ucyk6Cisg
ICAgICAgIChGcmFtZTo6Y2hlY2tFbWl0TG9hZEV2ZW50KToKKyAgICAgICAgKEZyYW1lOjpwcm9j
ZXNzT2JqZWN0UmVxdWVzdCk6CisgICAgICAgIChGcmFtZTo6Y2hpbGRGcmFtZSk6CisgICAgICAg
IChGcmFtZTo6ZmluZEZyYW1lKToKKyAgICAgICAgKEZyYW1lOjpzZXRab29tRmFjdG9yKToKKyAg
ICAgICAgKEZyYW1lOjpmcmFtZXMpOgorICAgICAgICAoRnJhbWU6OmN1c3RvbUV2ZW50KToKKyAg
ICAgICAgKEZyYW1lOjpzbG90UGFydFJlbW92ZWQpOgorICAgICAgICAoRnJhbWU6OmNvbm5lY3RD
aGlsZCk6CisgICAgICAgIChGcmFtZTo6ZGlzY29ubmVjdENoaWxkKToKKyAgICAgICAgKEZyYW1l
OjpzZXRQb2xpY3lCYXNlVVJMKToKKyAgICAgICAgKEZyYW1lOjpzZXROYW1lKToKKyAgICAgICAg
KEZyYW1lOjpGcmFtZSk6CisgICAgICAgICogcGFnZS9GcmFtZVByaXZhdGUuaDoKKworMjAwNi0w
MS0xMSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAbWFjLmNvbT4KKwogICAgICAgICBCdWls
ZCBmaXguCiAgICAgICAgIAogICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2tzdmcyL0tTVkdW
aWV3Lmg6CkluZGV4OiBicmlkZ2UvbWFjL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBicmlkZ2UvbWFjL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24uaAko
cmV2aXNpb24gMTIwMDEpCisrKyBicmlkZ2UvbWFjL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNp
b24uaAkoYXJiZXRza29waWEpCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgY3JlYXRlTmV3V2luZG93KGNvbnN0IEtVUkwgJnVybCwKIAkJCQkgY29uc3QgS1BhcnRz
OjpVUkxBcmdzICZ1cmxBcmdzLCAKIAkJCQkgY29uc3QgS1BhcnRzOjpXaW5kb3dBcmdzICZ3aW5B
cmdzLCAKLQkJCQkgS1BhcnRzOjpSZWFkT25seVBhcnQgKiZwYXJ0KTsKKwkJCQkgT2JqZWN0Q29u
dGVudHMgKiZwYXJ0KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRJY29uVVJMKGNvbnN0IEtVUkwg
JnVybCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFR5cGVkSWNvblVSTChjb25zdCBLVVJMICZ1cmws
IGNvbnN0IFFTdHJpbmcgJnR5cGUpOwpAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogICAgICB2
b2lkIGNyZWF0ZU5ld1dpbmRvdyhjb25zdCBLVVJMICZ1cmwsIAogCQkJICBjb25zdCBLUGFydHM6
OlVSTEFyZ3MgJnVybEFyZ3MsIAogCQkJICBjb25zdCBLUGFydHM6OldpbmRvd0FyZ3MgJndpbkFy
Z3MsIAotCQkJICBLUGFydHM6OlJlYWRPbmx5UGFydCAqKnBhcnQpOworCQkJICBPYmplY3RDb250
ZW50cyAqKnBhcnQpOwogCiAgICAgIE1hY0ZyYW1lICptX2ZyYW1lOwogICAgICBLUGFydHM6OkJy
b3dzZXJJbnRlcmZhY2UgX2Jyb3dzZXJJbnRlcmZhY2U7CkluZGV4OiBicmlkZ2UvbWFjL01hY0Zy
YW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gYnJpZGdlL21hYy9NYWNGcmFtZS5oCShyZXZpc2lvbiAxMjAw
MSkKKysrIGJyaWRnZS9tYWMvTWFjRnJhbWUuaAkoYXJiZXRza29waWEpCkBAIC0xNDYsNyArMTQ2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RhdHVzQmFyVGV4dChjb25zdCBRU3RyaW5nICZz
dGF0dXMpOwogCiAgICAgdm9pZCB1cmxTZWxlY3RlZChjb25zdCBLVVJMICZ1cmwsIGludCBidXR0
b24sIGludCBzdGF0ZSwgY29uc3QgS1BhcnRzOjpVUkxBcmdzICZhcmdzKTsKLSAgICBLUGFydHM6
OlJlYWRPbmx5UGFydCAqY3JlYXRlUGFydChjb25zdCBraHRtbDo6Q2hpbGRGcmFtZSAmY2hpbGQs
IGNvbnN0IEtVUkwgJnVybCwgY29uc3QgUVN0cmluZyAmbWltZVR5cGUpOworICAgIE9iamVjdENv
bnRlbnRzICpjcmVhdGVQYXJ0KGNvbnN0IGtodG1sOjpDaGlsZEZyYW1lICZjaGlsZCwgY29uc3Qg
S1VSTCAmdXJsLCBjb25zdCBRU3RyaW5nICZtaW1lVHlwZSk7CiAKICAgICB2b2lkIHNjaGVkdWxl
Q2xvc2UoKTsKIApJbmRleDogYnJpZGdlL21hYy9LV1FLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9u
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGJyaWRnZS9tYWMvS1dRS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lv
bi5tbQkocmV2aXNpb24gMTIwMDEpCisrKyBicmlkZ2UvbWFjL0tXUUtIVE1MUGFydEJyb3dzZXJF
eHRlbnNpb24ubW0JKGFyYmV0c2tvcGlhKQpAQCAtNjAsNyArNjAsNyBAQCB2b2lkIEtIVE1MUGFy
dEJyb3dzZXJFeHRlbnNpb246OmNyZWF0ZU5lCiB2b2lkIEtIVE1MUGFydEJyb3dzZXJFeHRlbnNp
b246OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBLVVJMICZ1cmwsIAogCQkJCQkJY29uc3QgS1BhcnRz
OjpVUkxBcmdzICZ1cmxBcmdzLCAKIAkJCQkJCWNvbnN0IEtQYXJ0czo6V2luZG93QXJncyAmd2lu
QXJncywgCi0JCQkJCQlLUGFydHM6OlJlYWRPbmx5UGFydCAqJnBhcnQpCisJCQkJCQlPYmplY3RD
b250ZW50cyAqJnBhcnQpCiB7CiAgICAgY3JlYXRlTmV3V2luZG93KHVybCwgdXJsQXJncywgd2lu
QXJncywgJnBhcnQpOwogfQpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIEtIVE1MUGFydEJyb3dzZXJF
eHRlbnNpb246OmNyZWF0ZU5lCiB2b2lkIEtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb246OmNyZWF0
ZU5ld1dpbmRvdyhjb25zdCBLVVJMICZ1cmwsIAogCQkJCQkJY29uc3QgS1BhcnRzOjpVUkxBcmdz
ICZ1cmxBcmdzLCAKIAkJCQkJCWNvbnN0IEtQYXJ0czo6V2luZG93QXJncyAmd2luQXJncywgCi0J
CQkJCQlLUGFydHM6OlJlYWRPbmx5UGFydCAqKnBhcnRSZXN1bHQpCisJCQkJCQlPYmplY3RDb250
ZW50cyAqKnBhcnRSZXN1bHQpCiB7IAogICAgIEtXUV9CTE9DS19FWENFUFRJT05TOwogCkluZGV4
OiBicmlkZ2UvbWFjL01hY0ZyYW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJyaWRnZS9tYWMvTWFjRnJh
bWUubW0JKHJldmlzaW9uIDEyMDAxKQorKysgYnJpZGdlL21hYy9NYWNGcmFtZS5tbQkoYXJiZXRz
a29waWEpCkBAIC02MTYsMTUgKzYxNiwxNSBAQCB2b2lkIE1hY0ZyYW1lOjp1cmxTZWxlY3RlZChj
b25zdCBLVVJMICZ1CiAgICAgS1dRX1VOQkxPQ0tfRVhDRVBUSU9OUzsKIH0KIAotY2xhc3MgS1dR
UGx1Z2luUGFydCA6IHB1YmxpYyBSZWFkT25seVBhcnQKK2NsYXNzIEtXUVBsdWdpblBhcnQgOiBw
dWJsaWMgT2JqZWN0Q29udGVudHMKIHsKICAgICB2aXJ0dWFsIGJvb2wgb3BlblVSTChjb25zdCBL
VVJMICYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2xvc2VVUkwoKSB7IHJl
dHVybiB0cnVlOyB9CiB9OwogCi1SZWFkT25seVBhcnQgKk1hY0ZyYW1lOjpjcmVhdGVQYXJ0KGNv
bnN0IENoaWxkRnJhbWUgJmNoaWxkLCBjb25zdCBLVVJMICZ1cmwsIGNvbnN0IFFTdHJpbmcgJm1p
bWVUeXBlKQorT2JqZWN0Q29udGVudHMgKk1hY0ZyYW1lOjpjcmVhdGVQYXJ0KGNvbnN0IENoaWxk
RnJhbWUgJmNoaWxkLCBjb25zdCBLVVJMICZ1cmwsIGNvbnN0IFFTdHJpbmcgJm1pbWVUeXBlKQog
ewotICAgIFJlYWRPbmx5UGFydCAqcGFydDsKKyAgICBPYmplY3RDb250ZW50cyAqcGFydDsKICAg
ICBLV1FfQkxPQ0tfRVhDRVBUSU9OUzsKIAogICAgIE9iamVjdEVsZW1lbnRUeXBlIG9iamVjdFR5
cGUgPSBPYmplY3RFbGVtZW50RnJhbWU7CkluZGV4OiBicmlkZ2UvbWFjL1dlYkNvcmVCcmlkZ2Uu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gYnJpZGdlL21hYy9XZWJDb3JlQnJpZGdlLm1tCShyZXZpc2lvbiAx
MjAwMSkKKysrIGJyaWRnZS9tYWMvV2ViQ29yZUJyaWRnZS5tbQkoYXJiZXRza29waWEpCkBAIC03
ODYsNyArNzg2LDcgQEAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRLSlMgPSBGQUxTRTsKICAgICBt
X2ZyYW1lLT5zYXZlSW50ZXJwcmV0ZXJCdWlsdGlucygqaW50ZXJwcmV0ZXJCdWlsdGlucyk7CiAK
ICAgICBLV1FQYWdlU3RhdGUgKnBhZ2VTdGF0ZSA9IFtbS1dRUGFnZVN0YXRlIGFsbG9jXSBpbml0
V2l0aERvY3VtZW50OmRvYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVUkw6bV9mcmFtZS0+bV91cmwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJM
Om1fZnJhbWUtPnVybCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2luZG93UHJvcGVydGllczp3aW5kb3dQcm9wZXJ0aWVzCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uUHJvcGVydGll
czpsb2NhdGlvblByb3BlcnRpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnRlcnByZXRlckJ1aWx0aW5zOmludGVycHJldGVyQnVpbHRpbnMKSW5k
ZXg6IGJyaWRnZS9tYWMvS1dRS1BhcnRzQnJvd3NlckV4dGVuc2lvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGJyaWRnZS9tYWMvS1dRS1BhcnRzQnJvd3NlckV4dGVuc2lvbi5oCShyZXZpc2lvbiAxMjAwMSkK
KysrIGJyaWRnZS9tYWMvS1dRS1BhcnRzQnJvd3NlckV4dGVuc2lvbi5oCShhcmJldHNrb3BpYSkK
QEAgLTMyLDExICszMiwxMiBAQAogCiAjaW5jbHVkZSAiS1dRS1VSTC5oIgogCi0jaW5jbHVkZSAi
S1dRS1BhcnRzUGFydC5oIgogI2luY2x1ZGUgIktXUUtQYXJ0c0Jyb3dzZXJJbnRlcmZhY2UuaCIK
IAogI2luY2x1ZGUgImZvcm1kYXRhLmgiCiAKK2NsYXNzIE9iamVjdENvbnRlbnRzOworCiBuYW1l
c3BhY2UgS1BhcnRzIHsKIAogc3RydWN0IFVSTEFyZ3MgewpAQCAtMTAyLDcgKzEwMyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTmV3V2luZG93KGNvbnN0IEtVUkwgJnVybCwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVUkxBcmdzICZ1cmxBcmdz
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdpbmRvd0FyZ3MgJndp
bkFyZ3MsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZE9ubHlQYXJ0ICom
cGFydCkgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0Q29udGVu
dHMgKiZwYXJ0KSA9IDA7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldEljb25VUkwoY29uc3Qg
S1VSTCAmdXJsKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFR5cGVkSWNvblVSTChjb25zdCBL
VVJMICZ1cmwsIGNvbnN0IFFTdHJpbmcgJnR5cGUpID0gMDsKSW5kZXg6IEZvcndhcmRpbmdIZWFk
ZXJzL2twYXJ0cy9wYXJ0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gRm9yd2FyZGluZ0hlYWRlcnMva3BhcnRz
L3BhcnQuaAkocmV2aXNpb24gMTIwMDEpCisrKyBGb3J3YXJkaW5nSGVhZGVycy9rcGFydHMvcGFy
dC5oCShhcmJldHNrb3BpYSkKQEAgLTEgKzAsMCBAQAotI2luY2x1ZGUgIktXUUtQYXJ0c1BhcnQu
aCIKSW5kZXg6IGt3cS9LV1FLUGFydHNQYXJ0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3cS9LV1FLUGFy
dHNQYXJ0Lm1tCShyZXZpc2lvbiAxMjAwMSkKKysrIGt3cS9LV1FLUGFydHNQYXJ0Lm1tCShhcmJl
dHNrb3BpYSkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMyBBcHBs
ZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2ltcG9ydCAiS1dRS1BhcnRzUGFydC5oIgotCi1uYW1lc3BhY2UgS1BhcnRz
IHsKLQotdm9pZCBQYXJ0OjpjdXN0b21FdmVudChRQ3VzdG9tRXZlbnQgKikKLXsKLX0KLQotdm9p
ZCBSZWFkT25seVBhcnQ6OnNldE5hbWUoY29uc3QgUVN0cmluZyAmbmFtZSkKLXsKLSAgICBfbmFt
ZSA9IG5hbWU7IAotfQotCi1ib29sIFJlYWRPbmx5UGFydDo6aXNLUGFydHNSZWFkT25seVBhcnQo
KSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCi19CkluZGV4OiBrd3EvS1dRT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRT2JqZWN0LmNwcAkocmV2aXNpb24gMTIwMDEpCisr
KyBrd3EvS1dRT2JqZWN0LmNwcAkoYXJiZXRza29waWEpCkBAIC0yOTIsOCArMjkyLDggQEAgYm9v
bCBRT2JqZWN0Ojppbmhlcml0cyhjb25zdCBjaGFyICpjbGFzcwogICAgIGlmIChzdHJjbXAoY2xh
c3NOYW1lLCAiS1BhcnRzOjpGYWN0b3J5IikgPT0gMCkgewogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQotICAgIGlmIChzdHJjbXAoY2xhc3NOYW1lLCAiS1BhcnRzOjpSZWFkT25seVBhcnQi
KSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBpc0tQYXJ0c1JlYWRPbmx5UGFydCgpOworICAgIGlm
IChzdHJjbXAoY2xhc3NOYW1lLCAiT2JqZWN0Q29udGVudHMiKSA9PSAwKSB7CisgICAgICAgIHJl
dHVybiBpc09iamVjdENvbnRlbnRzKCk7CiAgICAgfQogICAgIGlmIChzdHJjbXAoY2xhc3NOYW1l
LCAiUUZyYW1lIikgPT0gMCkgewogICAgICAgICByZXR1cm4gaXNRRnJhbWUoKTsKQEAgLTMyMCw3
ICszMjAsNyBAQCBib29sIFFPYmplY3Q6OmlzS0hUTUxWaWV3KCkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLWJvb2wgUU9iamVjdDo6aXNLUGFydHNSZWFkT25seVBhcnQoKSBjb25zdAor
Ym9vbCBRT2JqZWN0Ojppc09iamVjdENvbnRlbnRzKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFs
c2U7CiB9CkluZGV4OiBrd3EvS1dRS1BhcnRzUGFydC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGt3cS9LV1FL
UGFydHNQYXJ0LmgJKHJldmlzaW9uIDEyMDAxKQorKysga3dxL0tXUUtQYXJ0c1BhcnQuaAkoYXJi
ZXRza29waWEpCkBAIC0xLDkwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYg
UEFSVF9IXwotI2RlZmluZSBQQVJUX0hfCi0KLSNpbmNsdWRlICJLV1FLVVJMLmgiCi0jaW5jbHVk
ZSAiS1dRT2JqZWN0LmgiCi0jaW5jbHVkZSAiS1dRVmFyaWFudC5oIgotI2luY2x1ZGUgIktXUVB0
ckxpc3QuaCIKLSNpbmNsdWRlICJLV1FTdHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiS1dRVmFsdWVM
aXN0LmgiCi0jaW5jbHVkZSAiS1dRVGltZXIuaCIKLQotY2xhc3MgUVdpZGdldDsKLQotbmFtZXNw
YWNlIEtJTyB7Ci0gICAgY2xhc3MgSm9iOwotfQotCi1uYW1lc3BhY2UgS1BhcnRzIHsKLQotY2xh
c3MgUGFydCA6IHB1YmxpYyBRT2JqZWN0IHsKLXB1YmxpYzoKLSAgICBQYXJ0KCkgOiBfd2lkZ2V0
KDApLCBfcmVmKDEpIHsgfQotICAgIAotICAgIFFXaWRnZXQgKndpZGdldCgpIGNvbnN0IHsgcmV0
dXJuIF93aWRnZXQ7IH0KLSAgICB2b2lkIHNldFdpZGdldChRV2lkZ2V0ICp3aWRnZXQpIHsgX3dp
ZGdldCA9IHdpZGdldDsgfQotICAgIAotICAgIHZvaWQgcmVmKCkgeyArK19yZWY7IH0KLSAgICB2
b2lkIGRlcmVmKCkgeyBpZiAoIS0tX3JlZikgZGVsZXRlIHRoaXM7IH0KLQotICAgIGJvb2wgZXZl
bnQoUUV2ZW50ICpldmVudCkgeyBjdXN0b21FdmVudChldmVudCk7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGN1c3RvbUV2ZW50KFFDdXN0b21FdmVudCAqKTsKLSAgICAKLXByaXZh
dGU6Ci0gICAgUVdpZGdldCAqX3dpZGdldDsKLSAgICB1bnNpZ25lZCBpbnQgX3JlZjsKLX07Ci0K
LWNsYXNzIFJlYWRPbmx5UGFydCA6IHB1YmxpYyBQYXJ0IHsKLXB1YmxpYzoKLSAgICBSZWFkT25s
eVBhcnQoUU9iamVjdCAqcGFyZW50ID0gMCwgY29uc3QgY2hhciAqbmFtZSA9IDApIDogX3BhcmVu
dChwYXJlbnQpLCBfbmFtZShuYW1lKSB7IH0KLSAgICAKLSAgICBLVVJMIHVybCgpIGNvbnN0IHsg
cmV0dXJuIG1fdXJsOyB9Ci0gICAgS1VSTCBtX3VybDsKLSAgICAKLSAgICB2b2lkIHNldFBhcmVu
dChRT2JqZWN0ICpwYXJlbnQpIHsgX3BhcmVudCA9IHBhcmVudDsgfQotICAgIFFPYmplY3QgKnBh
cmVudCgpIGNvbnN0IHsgcmV0dXJuIF9wYXJlbnQ7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBzZXRO
YW1lKGNvbnN0IFFTdHJpbmcgJm5hbWUpOwotICAgIFFTdHJpbmcgbmFtZSgpIHsgcmV0dXJuIF9u
YW1lOyB9Ci0gICAgCi0gICAgdmlydHVhbCBib29sIG9wZW5VUkwoY29uc3QgS1VSTCAmKSA9IDA7
Ci0gICAgdmlydHVhbCBib29sIGNsb3NlVVJMKCkgPSAwOwotCi1wcml2YXRlOgotICAgIHZpcnR1
YWwgYm9vbCBpc0tQYXJ0c1JlYWRPbmx5UGFydCgpIGNvbnN0OwotCi0gICAgUU9iamVjdCAqX3Bh
cmVudDsKLSAgICBRU3RyaW5nIF9uYW1lOwotfTsKLQotY2xhc3MgR1VJQWN0aXZhdGVFdmVudCB7
IH07Ci0KLX0gLy8gbmFtZXNwYWNlIEtQYXJ0cwotCi0jZW5kaWYKSW5kZXg6IGt3cS9LV1FPYmpl
Y3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBrd3EvS1dRT2JqZWN0LmgJKHJldmlzaW9uIDEyMDAxKQorKysg
a3dxL0tXUU9iamVjdC5oCShhcmJldHNrb3BpYSkKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc0tIVE1MTG9hZGVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IGlzRnJhbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNLSFRNTFZpZXcoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNLUGFydHNSZWFkT25seVBhcnQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNPYmplY3RDb250ZW50cygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1FG
cmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1FTY3JvbGxWaWV3KCkgY29uc3Q7CiAK
SW5kZXg6IHBhZ2UvRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmgJKHJldmlzaW9u
IDEyMDAxKQorKysgcGFnZS9GcmFtZS5oCShhcmJldHNrb3BpYSkKQEAgLTMwLDExICszMCwxMSBA
QAogI2luY2x1ZGUgImVkaXRpbmcvdGV4dF9ncmFudWxhcml0eS5oIgogI2luY2x1ZGUgImVkaXRp
bmcvZWRpdF9hY3Rpb25zLmgiCiAKLSNpbmNsdWRlIDxrcGFydHMvcGFydC5oPgogI2luY2x1ZGUg
PGtwYXJ0cy9icm93c2VyZXh0ZW5zaW9uLmg+CiAjaW5jbHVkZSA8cXNjcm9sbGJhci5oPgogI2lu
Y2x1ZGUgPHFjb2xvci5oPgogCitjbGFzcyBPYmplY3RDb250ZW50czsKIGNsYXNzIEZyYW1lUHJp
dmF0ZTsKIGNsYXNzIEtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb247CiBjbGFzcyBLSlNQcm94eUlt
cGw7CkBAIC0xMDYsOCArMTA2LDQzIEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIFdpbmRv
d0Z1bmM7CiB9CiAKLWNsYXNzIEZyYW1lIDogcHVibGljIEtQYXJ0czo6UmVhZE9ubHlQYXJ0Ci17
CitjbGFzcyBPYmplY3RDb250ZW50cyA6IHB1YmxpYyBRT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBP
YmplY3RDb250ZW50cygpCisgICAgICAgIDogX3BhcmVudCgwKSwgX25hbWUoMCksIF93aWRnZXQo
MCksIF9yZWYoMSkgeyB9CisgICAgCisgICAgS1VSTCB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Vy
bDsgfQorICAgIAorICAgIHZvaWQgc2V0UGFyZW50KFFPYmplY3QgKnBhcmVudCkgeyBfcGFyZW50
ID0gcGFyZW50OyB9CisgICAgUU9iamVjdCAqcGFyZW50KCkgY29uc3QgeyByZXR1cm4gX3BhcmVu
dDsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldE5hbWUoY29uc3QgUVN0cmluZyAmbmFtZSkgeyBf
bmFtZSA9IG5hbWU7IH0KKyAgICBRU3RyaW5nIG5hbWUoKSB7IHJldHVybiBfbmFtZTsgfQorICAg
IAorICAgIHZpcnR1YWwgYm9vbCBvcGVuVVJMKGNvbnN0IEtVUkwgJikgPSAwOworICAgIHZpcnR1
YWwgYm9vbCBjbG9zZVVSTCgpID0gMDsKKworICAgIFFXaWRnZXQgKndpZGdldCgpIGNvbnN0IHsg
cmV0dXJuIF93aWRnZXQ7IH0KKyAgICB2b2lkIHNldFdpZGdldChRV2lkZ2V0ICp3aWRnZXQpIHsg
X3dpZGdldCA9IHdpZGdldDsgfQorICAgIAorICAgIHZvaWQgcmVmKCkgeyArK19yZWY7IH0KKyAg
ICB2b2lkIGRlcmVmKCkgeyBpZiAoIS0tX3JlZikgZGVsZXRlIHRoaXM7IH0KKyAgICAKKyAgICBi
b29sIGV2ZW50KFFFdmVudCAqZXZlbnQpIHsgY3VzdG9tRXZlbnQoZXZlbnQpOyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBjdXN0b21FdmVudChRQ3VzdG9tRXZlbnQgKikgeyB9CisK
K3Byb3RlY3RlZDoKKyAgICBLVVJMIG1fdXJsOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9v
bCBpc09iamVjdENvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFFPYmplY3Qg
Kl9wYXJlbnQ7CisgICAgUVN0cmluZyBfbmFtZTsKKyAgICBRV2lkZ2V0ICpfd2lkZ2V0OworICAg
IHVuc2lnbmVkIGludCBfcmVmOworfTsKKworY2xhc3MgRnJhbWUgOiBwdWJsaWMgT2JqZWN0Q29u
dGVudHMgewogICBmcmllbmQgY2xhc3MgS0hUTUxWaWV3OwogICBmcmllbmQgY2xhc3MgRE9NOjpI
VE1MVGl0bGVFbGVtZW50SW1wbDsKICAgZnJpZW5kIGNsYXNzIERPTTo6SFRNTEZyYW1lRWxlbWVu
dEltcGw7CkBAIC0xMzcsMTUgKzE3MiwxMyBAQCBjbGFzcyBGcmFtZSA6IHB1YmxpYyBLUGFydHM6
OlJlYWRPbmx5UGFyCiBwdWJsaWM6CiAgIGVudW0geyBOb1hQb3NGb3JWZXJ0aWNhbEFycm93TmF2
aWdhdGlvbiA9IElOVF9NSU4gfTsKIAotICBGcmFtZShRV2lkZ2V0ICpwYXJlbnRXaWRnZXQgPSAw
LCBjb25zdCBjaGFyICp3aWRnZXRuYW1lID0gMCwgUU9iamVjdCAqcGFyZW50ID0gMCwgY29uc3Qg
Y2hhciAqbmFtZSA9IDApOwotICBGcmFtZShLSFRNTFZpZXcgKnZpZXcsIFFPYmplY3QgKnBhcmVu
dCA9IDAsIGNvbnN0IGNoYXIgKm5hbWUgPSAwKTsKLSAgCisgIEZyYW1lKCkgOiBkKDApIHsgfQog
ICB2aXJ0dWFsIH5GcmFtZSgpOwogCiAgIC8qKgogICAgKiBPcGVucyB0aGUgc3BlY2lmaWVkIFVS
TCBAcCB1cmwuCiAgICAqCi0gICAqIFJlaW1wbGVtZW50ZWQgZnJvbSBAcmVmIEtQYXJ0czo6UmVh
ZE9ubHlQYXJ0OjpvcGVuVVJMIC4KKyAgICogUmVpbXBsZW1lbnRlZCBmcm9tIEByZWYgT2JqZWN0
Q29udGVudHM6Om9wZW5VUkwgLgogICAgKi8KICAgdmlydHVhbCBib29sIG9wZW5VUkwoIGNvbnN0
IEtVUkwgJnVybCApOwogCkBAIC02MzUsNyArNjY4LDcgQEAgcHVibGljOgogICAgKi8KICAgUVN0
cmluZ0xpc3QgZnJhbWVOYW1lcygpIGNvbnN0OwogCi0gIFFQdHJMaXN0PEtQYXJ0czo6UmVhZE9u
bHlQYXJ0PiBmcmFtZXMoKSBjb25zdDsKKyAgUVB0ckxpc3Q8T2JqZWN0Q29udGVudHM+IGZyYW1l
cygpIGNvbnN0OwogCiAgIEZyYW1lICpjaGlsZEZyYW1lTmFtZWQoY29uc3QgUVN0cmluZyAmbmFt
ZSkgY29uc3Q7CiAKQEAgLTY0OSw3ICs2ODIsNyBAQCBwdWJsaWM6CiAgICAqIE5vdCBuZWNlc3Nh
cmlseSBhIGRpcmVjdCBjaGlsZCBvZiBvdXJzLCBmcmFtZXNldHMgY2FuIGJlIG5lc3RlZC4KICAg
ICogUmV0dXJucyAidGhpcyIgaWYgdGhpcyBwYXJ0IGlzbid0IGEgZnJhbWVzZXQuCiAgICAqLwot
ICBLUGFydHM6OlJlYWRPbmx5UGFydCAqY3VycmVudEZyYW1lKCkgY29uc3Q7CisgIE9iamVjdENv
bnRlbnRzICpjdXJyZW50RnJhbWUoKSBjb25zdDsKIAogICAvKioKICAgICogUmV0dXJucyB3aGV0
aGVyIGEgZnJhbWUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgaXMgZXhpc3RzIG9yIG5vdC4KQEAg
LTc4NSw3ICs4MTgsNyBAQCBwdWJsaWM6CiAgIHZvaWQgc2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91
c2VFdmVudChRTW91c2VFdmVudCAqbW91c2UsIERPTTo6Tm9kZUltcGwgKmlubmVyTm9kZSwgaW50
IHgsIGludCB5KTsKIAogICAvKioKLSAgICogSW50ZXJuYWwgZW1wdHkgcmVpbXBsZW1lbnRhdGlv
biBvZiBAcmVmIEtQYXJ0czo6UmVhZE9ubHlQYXJ0OjpvcGVuRmlsZSAuCisgICAqIEludGVybmFs
IGVtcHR5IHJlaW1wbGVtZW50YXRpb24gb2YgQHJlZiBPYmplY3RDb250ZW50czo6b3BlbkZpbGUg
LgogICAgKi8KICAgdmlydHVhbCBib29sIG9wZW5GaWxlKCk7CiAKQEAgLTgyMiw5ICs4NTUsOSBA
QCBwcml2YXRlIHNsb3RzOgogCiAgIHZvaWQgdXBkYXRlQWN0aW9ucygpOwogCi0gIHZvaWQgc2xv
dFBhcnRSZW1vdmVkKCBLUGFydHM6OlBhcnQgKnBhcnQgKTsKKyAgdm9pZCBzbG90UGFydFJlbW92
ZWQoIE9iamVjdENvbnRlbnRzICpwYXJ0ICk7CiAKLSAgdm9pZCBzbG90QWN0aXZlRnJhbWVDaGFu
Z2VkKCBLUGFydHM6OlBhcnQgKnBhcnQgKTsKKyAgdm9pZCBzbG90QWN0aXZlRnJhbWVDaGFuZ2Vk
KCBPYmplY3RDb250ZW50cyAqcGFydCApOwogCiAgIHZvaWQgc2xvdENoaWxkU3RhcnRlZCggS0lP
OjpKb2IgKmpvYiApOwogCkluZGV4OiBwYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdl
L0ZyYW1lLmNwcAkocmV2aXNpb24gMTIwMDEpCisrKyBwYWdlL0ZyYW1lLmNwcAkoYXJiZXRza29w
aWEpCkBAIC0xMzUsMTEgKzEzNSw2IEBAIEZyYW1lTGlzdDo6SXRlcmF0b3IgRnJhbWVMaXN0Ojpm
aW5kKCBjb24KICAgICByZXR1cm4gaXQ7CiB9CiAKLUZyYW1lOjpGcmFtZShRV2lkZ2V0ICpwYXJl
bnRXaWRnZXQsIGNvbnN0IGNoYXIgKndpZGdldG5hbWUsIFFPYmplY3QgKnBhcmVudCwgY29uc3Qg
Y2hhciAqbmFtZSkKLSAgICA6IEtQYXJ0czo6UmVhZE9ubHlQYXJ0KHBhcmVudCwgbmFtZSksIGQo
MCkKLXsKLX0KLQogdm9pZCBGcmFtZTo6aW5pdChLSFRNTFZpZXcgKnZpZXcpCiB7CiAgIEF0b21p
Y1N0cmluZzo6aW5pdCgpOwpAQCAtMzc5LDcgKzM3NCw3IEBAIHZvaWQgRnJhbWU6OnN0b3BMb2Fk
aW5nKGJvb2wgc2VuZFVubG9hZCkKICAgQ29uc3RGcmFtZUl0IGl0ID0gZC0+bV9mcmFtZXMuYmVn
aW4oKTsKICAgQ29uc3RGcmFtZUl0IGVuZCA9IGQtPm1fZnJhbWVzLmVuZCgpOwogICBmb3IgKDsg
aXQgIT0gZW5kOyArK2l0ICkgewotICAgICAgS1BhcnRzOjpSZWFkT25seVBhcnQgKnBhcnQgPSAo
Kml0KS5tX2ZyYW1lOworICAgICAgT2JqZWN0Q29udGVudHMgKnBhcnQgPSAoKml0KS5tX2ZyYW1l
OwogICAgICAgaWYgKHBhcnQpIHsKICAgICAgICAgICBGcmFtZSAqZnJhbWUgPSBzdGF0aWNfY2Fz
dDxGcmFtZSAqPihwYXJ0KTsKIApAQCAtOTE4LDcgKzkxMyw3IEBAIHZvaWQgRnJhbWU6OnN0b3BB
bmltYXRpb25zKCkKICAgQ29uc3RGcmFtZUl0IGVuZCA9IGQtPm1fZnJhbWVzLmVuZCgpOwogICBm
b3IgKDsgaXQgIT0gZW5kOyArK2l0ICkKICAgICBpZiAoICEoICppdCApLm1fZnJhbWUuaXNOdWxs
KCkgJiYgKCAqaXQgKS5tX2ZyYW1lLT5pbmhlcml0cyggIkZyYW1lIiApICkgewotICAgICAgS1Bh
cnRzOjpSZWFkT25seVBhcnQqIHAgPSAoICppdCApLm1fZnJhbWU7CisgICAgICBPYmplY3RDb250
ZW50cyogcCA9ICggKml0ICkubV9mcmFtZTsKICAgICAgIHN0YXRpY19jYXN0PEZyYW1lKj4oIHAg
KS0+c3RvcEFuaW1hdGlvbnMoKTsKICAgICB9CiB9CkBAIC0xMDM5LDcgKzEwMzQsNyBAQCB2b2lk
IEZyYW1lOjpjaGVja0VtaXRMb2FkRXZlbnQoKQogICAgIENvbnN0RnJhbWVJdCBpdCA9IGQtPm1f
ZnJhbWVzLmJlZ2luKCk7CiAgICAgQ29uc3RGcmFtZUl0IGVuZCA9IGQtPm1fZnJhbWVzLmVuZCgp
OwogICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQgKSB7Ci0gICAgICBLUGFydHM6OlJlYWRPbmx5
UGFydCAqcCA9ICgqaXQpLm1fZnJhbWU7CisgICAgICBPYmplY3RDb250ZW50cyAqcCA9ICgqaXQp
Lm1fZnJhbWU7CiAgICAgICBpZiAocCAmJiBwLT5pbmhlcml0cygiRnJhbWUiKSkgewogICAgICAg
ICBGcmFtZSogaHRtbEZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWUgKj4ocCk7CiAgICAgICAgIGlm
IChodG1sRnJhbWUtPmQtPm1fZG9jKQpAQCAtMTY5Nyw3ICsxNjkyLDcgQEAgYm9vbCBGcmFtZTo6
cHJvY2Vzc09iamVjdFJlcXVlc3QoIGtodG1sOgogICB9CiAgIGVsc2UKICAgewotICAgIEtQYXJ0
czo6UmVhZE9ubHlQYXJ0ICpwYXJ0ID0gTWFjKHRoaXMpLT5jcmVhdGVQYXJ0KCpjaGlsZCwgdXJs
LCBtaW1ldHlwZSk7CisgICAgT2JqZWN0Q29udGVudHMgKnBhcnQgPSBNYWModGhpcyktPmNyZWF0
ZVBhcnQoKmNoaWxkLCB1cmwsIG1pbWV0eXBlKTsKICAgICBGcmFtZSAqZnJhbWUgPSBzdGF0aWNf
Y2FzdDxGcmFtZSAqPihwYXJ0KTsKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmluaGVyaXRzKCJG
cmFtZSIpKQogICAgICAgZnJhbWUtPmNoaWxkQmVnaW4oKTsKQEAgLTE3NjAsOCArMTc1NSw4IEBA
IGJvb2wgRnJhbWU6OnByb2Nlc3NPYmplY3RSZXF1ZXN0KCBraHRtbDoKICAgLy8gaXQncyBiZWlu
ZyBhZGRlZCB0byB0aGUgY2hpbGQgbGlzdC4gIEl0IHdvdWxkIGJlIGEgZ29vZCBpZGVhIHRvCiAg
IC8vIGNyZWF0ZSB0aGUgY2hpbGQgZmlyc3QsIHRoZW4gaW52b2tlIHRoZSBsb2FkZXIgc2VwYXJh
dGVseSAgCiAgIGlmICh1cmwuaXNFbXB0eSgpIHx8IHVybC51cmwoKSA9PSAiYWJvdXQ6Ymxhbmsi
KSB7Ci0gICAgICBSZWFkT25seVBhcnQgKnJlYWRPbmx5UGFydCA9IGNoaWxkLT5tX2ZyYW1lOwot
ICAgICAgRnJhbWUgKmZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWUgKj4ocmVhZE9ubHlQYXJ0KTsK
KyAgICAgIE9iamVjdENvbnRlbnRzICpwYXJ0ID0gY2hpbGQtPm1fZnJhbWU7CisgICAgICBGcmFt
ZSAqZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZSAqPihwYXJ0KTsKICAgICAgIGlmIChmcmFtZSAm
JiBmcmFtZS0+aW5oZXJpdHMoIkZyYW1lIikpIHsKICAgICAgICAgICBmcmFtZS0+Y29tcGxldGVk
KCk7CiAgICAgICAgICAgZnJhbWUtPmNoZWNrQ29tcGxldGVkKCk7CkBAIC0xOTI5LDE5ICsxOTI0
LDE5IEBAIHZvaWQgRnJhbWU6OnNsb3RDaGlsZENvbXBsZXRlZCggYm9vbCBjb20KIAoga2h0bWw6
OkNoaWxkRnJhbWUgKkZyYW1lOjpjaGlsZEZyYW1lKCBjb25zdCBRT2JqZWN0ICpvYmogKQogewot
ICAgIGFzc2VydCggb2JqLT5pbmhlcml0cyggIktQYXJ0czo6UmVhZE9ubHlQYXJ0IiApICk7Ci0g
ICAgY29uc3QgUmVhZE9ubHlQYXJ0ICpwYXJ0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgUmVhZE9ubHlQ
YXJ0ICo+KCBvYmogKTsKKyAgICBhc3NlcnQoIG9iai0+aW5oZXJpdHMoICJPYmplY3RDb250ZW50
cyIgKSApOworICAgIGNvbnN0IE9iamVjdENvbnRlbnRzICpwYXJ0ID0gc3RhdGljX2Nhc3Q8Y29u
c3QgT2JqZWN0Q29udGVudHMgKj4oIG9iaiApOwogCiAgICAgRnJhbWVJdCBpdCA9IGQtPm1fZnJh
bWVzLmJlZ2luKCk7CiAgICAgRnJhbWVJdCBlbmQgPSBkLT5tX2ZyYW1lcy5lbmQoKTsKICAgICBm
b3IgKDsgaXQgIT0gZW5kOyArK2l0ICkKLSAgICAgIGlmIChzdGF0aWNfY2FzdDxSZWFkT25seVBh
cnQgKj4oKCppdCkubV9mcmFtZSkgPT0gcGFydCkKKyAgICAgIGlmIChzdGF0aWNfY2FzdDxPYmpl
Y3RDb250ZW50cyAqPigoKml0KS5tX2ZyYW1lKSA9PSBwYXJ0KQogICAgICAgICByZXR1cm4gJigq
aXQpOwogCiAgICAgaXQgPSBkLT5tX29iamVjdHMuYmVnaW4oKTsKICAgICBlbmQgPSBkLT5tX29i
amVjdHMuZW5kKCk7CiAgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCApCi0gICAgICBpZiAoc3Rh
dGljX2Nhc3Q8UmVhZE9ubHlQYXJ0ICo+KCgqaXQpLm1fZnJhbWUpID09IHBhcnQpCisgICAgICBp
ZiAoc3RhdGljX2Nhc3Q8T2JqZWN0Q29udGVudHMgKj4oKCppdCkubV9mcmFtZSkgPT0gcGFydCkK
ICAgICAgICAgcmV0dXJuICYoKml0KTsKIAogICAgIHJldHVybiAwTDsKQEAgLTE5NTgsNyArMTk1
Myw3IEBAIEZyYW1lICpGcmFtZTo6ZmluZEZyYW1lKCBjb25zdCBRU3RyaW5nICYKICAgICByZXR1
cm4gMEw7CiAgIH0KICAgZWxzZSB7Ci0gICAgS1BhcnRzOjpSZWFkT25seVBhcnQgKnAgPSAoKml0
KS5tX2ZyYW1lOworICAgIE9iamVjdENvbnRlbnRzICpwID0gKCppdCkubV9mcmFtZTsKICAgICBp
ZiAoIHAgJiYgcC0+aW5oZXJpdHMoICJGcmFtZSIgKSkKICAgICB7CiAgICAgICAvL2tkRGVidWco
KSA8PCAiRnJhbWU6OmZpbmRGcmFtZSBmcmFtZSAiIDw8IGYgPDwgIiBpcyBhIEZyYW1lLCBvayIg
PDwgZW5kbDsKQEAgLTIwNDYsNyArMjA0MSw3IEBAIHZvaWQgRnJhbWU6OnNldFpvb21GYWN0b3Ig
KGludCBwZXJjZW50KQogICBDb25zdEZyYW1lSXQgZW5kID0gZC0+bV9mcmFtZXMuZW5kKCk7CiAg
IGZvciAoOyBpdCAhPSBlbmQ7ICsraXQgKQogICAgIGlmICghKCppdCkubV9mcmFtZS5pc051bGwo
KSAmJiAoKml0KS5tX2ZyYW1lLT5pbmhlcml0cyggIkZyYW1lIiApICkgewotICAgICAgS1BhcnRz
OjpSZWFkT25seVBhcnQqIHAgPSAoICppdCApLm1fZnJhbWU7CisgICAgICBPYmplY3RDb250ZW50
cyogcCA9ICggKml0ICkubV9mcmFtZTsKICAgICAgIHN0YXRpY19jYXN0PEZyYW1lKj4oIHAgKS0+
c2V0Wm9vbUZhY3RvcihkLT5tX3pvb21GYWN0b3IpOwogICAgIH0KIApAQCAtMjExOSw5ICsyMTE0
LDkgQEAgUVN0cmluZ0xpc3QgRnJhbWU6OmZyYW1lTmFtZXMoKSBjb25zdAogICByZXR1cm4gcmVz
OwogfQogCi1RUHRyTGlzdDxLUGFydHM6OlJlYWRPbmx5UGFydD4gRnJhbWU6OmZyYW1lcygpIGNv
bnN0CitRUHRyTGlzdDxPYmplY3RDb250ZW50cz4gRnJhbWU6OmZyYW1lcygpIGNvbnN0CiB7Ci0g
IFFQdHJMaXN0PEtQYXJ0czo6UmVhZE9ubHlQYXJ0PiByZXM7CisgIFFQdHJMaXN0PE9iamVjdENv
bnRlbnRzPiByZXM7CiAKICAgQ29uc3RGcmFtZUl0IGl0ID0gZC0+bV9mcmFtZXMuYmVnaW4oKTsK
ICAgQ29uc3RGcmFtZUl0IGVuZCA9IGQtPm1fZnJhbWVzLmVuZCgpOwpAQCAtMjE3OCw3ICsyMTcz
LDcgQEAgdm9pZCBGcmFtZTo6Y3VzdG9tRXZlbnQoIFFDdXN0b21FdmVudCAqZQogICAgIHJldHVy
bjsKICAgfQogCi0gIEtQYXJ0czo6UmVhZE9ubHlQYXJ0OjpjdXN0b21FdmVudCggZXZlbnQgKTsK
KyAgT2JqZWN0Q29udGVudHM6OmN1c3RvbUV2ZW50KCBldmVudCApOwogfQogCiBib29sIEZyYW1l
Ojppc1BvaW50SW5zaWRlU2VsZWN0aW9uKGludCB4LCBpbnQgeSkKQEAgLTI1NjUsNyArMjU2MCw3
IEBAIFFWYXJpYW50IEZyYW1lOjpleGVjdXRlU2NyaXB0KFFTdHJpbmcgZmkKICAgcmV0dXJuIHJl
dDsKIH0KIAotdm9pZCBGcmFtZTo6c2xvdFBhcnRSZW1vdmVkKEtQYXJ0czo6UGFydCAqcGFydCkK
K3ZvaWQgRnJhbWU6OnNsb3RQYXJ0UmVtb3ZlZChPYmplY3RDb250ZW50cyAgKnBhcnQpCiB7CiAg
ICAgaWYgKHBhcnQgPT0gZC0+bV9hY3RpdmVGcmFtZSkKICAgICAgICAgZC0+bV9hY3RpdmVGcmFt
ZSA9IDA7CkBAIC0zMDAxLDcgKzI5OTYsNyBAQCBib29sIEZyYW1lOjppc0NoYXJhY3RlclNtYXJ0
UmVwbGFjZUV4ZW1wCiAKIHZvaWQgRnJhbWU6OmNvbm5lY3RDaGlsZChjb25zdCBraHRtbDo6Q2hp
bGRGcmFtZSAqY2hpbGQpIGNvbnN0CiB7Ci0gICAgUmVhZE9ubHlQYXJ0ICpwYXJ0ID0gY2hpbGQt
Pm1fZnJhbWU7CisgICAgT2JqZWN0Q29udGVudHMgKnBhcnQgPSBjaGlsZC0+bV9mcmFtZTsKICAg
ICBpZiAocGFydCAmJiBjaGlsZC0+bV90eXBlICE9IENoaWxkRnJhbWU6Ok9iamVjdCkKICAgICB7
CiAgICAgICAgIGNvbm5lY3QoIHBhcnQsIFNJR05BTCggc3RhcnRlZCggS0lPOjpKb2IgKikgKSwK
QEAgLTMwMjEsNyArMzAxNiw3IEBAIHZvaWQgRnJhbWU6OmNvbm5lY3RDaGlsZChjb25zdCBraHRt
bDo6Q2gKIAogdm9pZCBGcmFtZTo6ZGlzY29ubmVjdENoaWxkKGNvbnN0IGtodG1sOjpDaGlsZEZy
YW1lICpjaGlsZCkgY29uc3QKIHsKLSAgICBSZWFkT25seVBhcnQgKnBhcnQgPSBjaGlsZC0+bV9m
cmFtZTsKKyAgICBPYmplY3RDb250ZW50cyAqcGFydCA9IGNoaWxkLT5tX2ZyYW1lOwogICAgIGlm
IChwYXJ0ICYmIGNoaWxkLT5tX3R5cGUgIT0gQ2hpbGRGcmFtZTo6T2JqZWN0KQogICAgIHsKICAg
ICAgICAgZGlzY29ubmVjdCggcGFydCwgU0lHTkFMKCBzdGFydGVkKCBLSU86OkpvYiAqKSApLApA
QCAtMzQ5Myw3ICszNDg4LDcgQEAgdm9pZCBGcmFtZTo6c2V0UG9saWN5QmFzZVVSTChjb25zdCBE
T01TdAogICAgICAgICB4bWxEb2NJbXBsKCktPnNldFBvbGljeUJhc2VVUkwocyk7CiAgICAgQ29u
c3RGcmFtZUl0IGVuZCA9IGQtPm1fZnJhbWVzLmVuZCgpOwogICAgIGZvciAoQ29uc3RGcmFtZUl0
IGl0ID0gZC0+bV9mcmFtZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIFJl
YWRPbmx5UGFydCAqc3VicGFydCA9ICgqaXQpLm1fZnJhbWU7CisgICAgICAgIE9iamVjdENvbnRl
bnRzICpzdWJwYXJ0ID0gKCppdCkubV9mcmFtZTsKICAgICAgICAgc3RhdGljX2Nhc3Q8RnJhbWUg
Kj4oc3VicGFydCktPnNldFBvbGljeUJhc2VVUkwocyk7CiAgICAgfQogfQpAQCAtMzgxNiw3ICsz
ODExLDcgQEAgdm9pZCBGcmFtZTo6c2V0TmFtZShjb25zdCBRU3RyaW5nICZuYW1lKQogICAgIGlm
IChwYXJlbnQgJiYgKG5hbWUuaXNFbXB0eSgpIHx8IHBhcmVudC0+ZnJhbWVFeGlzdHMobmFtZSkg
fHwgbmFtZSA9PSAiX2JsYW5rIikpCiAJbiA9IHBhcmVudC0+cmVxdWVzdEZyYW1lTmFtZSgpOwog
ICAgIAotICAgIFJlYWRPbmx5UGFydDo6c2V0TmFtZShuKTsKKyAgICBPYmplY3RDb250ZW50czo6
c2V0TmFtZShuKTsKIH0KIAogYm9vbCBGcmFtZTo6bWFya2VkVGV4dFVzZXNVbmRlcmxpbmVzKCkg
Y29uc3QKSW5kZXg6IHBhZ2UvRnJhbWVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9GcmFt
ZVByaXZhdGUuaAkocmV2aXNpb24gMTIwMDEpCisrKyBwYWdlL0ZyYW1lUHJpdmF0ZS5oCShhcmJl
dHNrb3BpYSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYga2h0bWxwYXJ0X3BfaAogI2RlZmlu
ZSBraHRtbHBhcnRfcF9oCiAKKyNpbmNsdWRlIDxxdGltZXIuaD4KICNpbmNsdWRlIDxrY3Vyc29y
Lmg+CiAjaW5jbHVkZSA8a2lvL2dsb2JhbC5oPgogCkBAIC01Nyw3ICs1OCw3IEBAIG5hbWVzcGFj
ZSBraHRtbAogCiAKICAgICBRR3VhcmRlZFB0cjxraHRtbDo6UmVuZGVyUGFydD4gbV9yZW5kZXJl
cjsKLSAgICBRR3VhcmRlZFB0cjxLUGFydHM6OlJlYWRPbmx5UGFydD4gbV9mcmFtZTsKKyAgICBR
R3VhcmRlZFB0cjxPYmplY3RDb250ZW50cz4gbV9mcmFtZTsKICAgICBRR3VhcmRlZFB0cjxLUGFy
dHM6OkJyb3dzZXJFeHRlbnNpb24+IG1fZXh0ZW5zaW9uOwogICAgIFFTdHJpbmcgbV9zZXJ2aWNl
TmFtZTsKICAgICBRU3RyaW5nIG1fc2VydmljZVR5cGU7CkBAIC0yODQsNyArMjg1LDcgQEAgcHVi
bGljOgogCiAgIFFQb2ludCBtX2RyYWdTdGFydFBvczsKIAotICBLUGFydHM6OlBhcnQgKiBtX2Fj
dGl2ZUZyYW1lOworICBPYmplY3RDb250ZW50cyAqIG1fYWN0aXZlRnJhbWU7CiAgIFFHdWFyZGVk
UHRyPEZyYW1lPiBtX29wZW5lcjsKICAgYm9vbCBtX29wZW5lZEJ5SlM7CiAgIGJvb2wgbV9uZXdK
U0ludGVycHJldGVyRXhpc3RzOyAvLyBzZXQgdG8gMSBieSBzZXRPcGVuZWRCeUpTLCBmb3Igd2lu
ZG93Lm9wZW4K
</data>
<flag name="review"
          id="1241"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>