<?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>204791</bug_id>
          
          <creation_ts>2019-12-03 04:05:38 -0800</creation_ts>
          <short_desc>[LFC][Integration] Rename RenderBlockFlowLineLayout and move it to LayoutIntegration namespace</short_desc>
          <delta_ts>2019-12-03 07:42:25 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594974</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-03 04:05:38 -0800</bug_when>
    <thetext>Shorter name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594981</commentid>
    <comment_count>1</comment_count>
      <attachid>384707</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-03 05:22:35 -0800</bug_when>
    <thetext>Created attachment 384707
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594982</commentid>
    <comment_count>2</comment_count>
      <attachid>384708</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-03 05:29:29 -0800</bug_when>
    <thetext>Created attachment 384708
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595008</commentid>
    <comment_count>3</comment_count>
      <attachid>384708</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-03 07:41:50 -0800</bug_when>
    <thetext>Comment on attachment 384708
patch

Clearing flags on attachment: 384708

Committed r253042: &lt;https://trac.webkit.org/changeset/253042&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595009</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-03 07:41:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595010</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-03 07:42:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/57590325&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384707</attachid>
            <date>2019-12-03 05:22:35 -0800</date>
            <delta_ts>2019-12-03 05:29:29 -0800</delta_ts>
            <desc>patch</desc>
            <filename>lfc-rename-integration-linelayout.patch</filename>
            <type>text/plain</type>
            <size>24599</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyM2JlNDg2NWQ0Mi4uZGQ1N2ZmNDgzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0xMi0wMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFJlbmFtZSBSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0IGFuZCBtb3ZlIGl0IHRvIExheW91dEludGVncmF0aW9uIG5hbWVzcGFjZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzkxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGF5b3V0OjpSZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0IC0+IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0CisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUxheW91dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6TGluZUxheW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Y2FuVXNlRm9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpsYXlvdXQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OnByZXBhcmVSb290R2Vv
bWV0cnlGb3JMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxp
bmVMYXlvdXQ6OmRpc3BsYXlJbmxpbmVDb250ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6dGV4dEJveGVzRm9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjplbGVtZW50Qm94
Rm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5
b3V0Ojpyb290TGF5b3V0Qm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjpsYXlvdXRJbmxpbmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OnBhaW50SW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tG
bG93OjppbnZhbGlkYXRlTGluZUxheW91dFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93OjpsYXlvdXRMRkNMaW5lcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpoYXNMYXlvdXRG
b3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2tGbG93OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4
dExpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpoYXNMRkNM
aW5lTGF5b3V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Rmxvdzo6bGZjTGluZUxheW91dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9ja0Zsb3c6OmxmY0xpbmVMYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRl
cmluZy9saW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlu
ZUxheW91dFRyYXZlcnNhbDo6Zmlyc3RUZXh0Qm94Rm9yKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
bmVMYXlvdXRUcmF2ZXJzYWw6OmVsZW1lbnRCb3hGb3IpOgorCiAyMDE5LTEyLTAzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0g
U2V0dXAgcm9vdCBib3ggcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiOGVmNWI5MzU4ZC4u
OTk1M2QzMDU5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDQ0LDcgKzE0NDQsNyBAQCBsYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKIGxheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxh
eW91dENvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNw
cAotbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCitsYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAogbGF5b3V0L2lu
dmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmNwcAogbGF5b3V0L2ludmFsaWRhdGlvbi9J
bnZhbGlkYXRpb25TdGF0ZS5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAxNTQ3Nzg2ZmE1YS4uYzllY2QxNTg3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4NTYsNyArNDg1Niw3IEBACiAJCUU0
QTgxNERBMUM3MEUxMEQwMEJGODVBQyAvKiBBdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QTgxNEQ5MUM3
MEUxMEQwMEJGODVBQyAvKiBBdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLzsgfTsKIAkJ
RTRBODE0RTAxQzczMzhFQjAwQkY4NUFDIC8qIElkQ2hhbmdlSW52YWxpZGF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEE4MTRERjFDNzMzOEVC
MDBCRjg1QUMgLyogSWRDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLzsgfTsKIAkJRTRBOEQyMTYyMjU3
OERCNzAwQTg0NjNDIC8qIEV2ZW50UmVnaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNEE4RDIxNDIyNTc4REEwMDBBODQ2M0MgLyogRXZlbnRSZWdp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlF
NEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBQkFCREIyMzYw
ODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLzsgfTsKKwkJRTRB
QkFCREQyMzYwODhGRTAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBQkFCREIyMzYw
ODhGRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oICovOyB9OwogCQlF
NEFCQUJFNDIzNjFBMzI5MDBGQTQzNDUgLyogUHJvcGVydHlDYXNjYWRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEFCQUJFMjIzNjFBMzI5MDBGQTQz
NDUgLyogUHJvcGVydHlDYXNjYWRlLmggKi87IH07CiAJCUU0QUJBQkYzMjM2OEI5NTkwMEZBNDM0
NSAvKiBTdHlsZUJ1aWxkZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTRBQkFCRjIyMzY4Qjk1ODAwRkE0MzQ1IC8qIFN0eWxlQnVpbGRlclN0
YXRlLmggKi87IH07CiAJCUU0QUJBQkY1MjM2OEM2RUYwMEZBNDM0NSAvKiBDYXNjYWRlTGV2ZWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QUJBQkY0
MjM2OEM2RUYwMEZBNDM0NSAvKiBDYXNjYWRlTGV2ZWwuaCAqLzsgfTsKQEAgLTE1MjIzLDggKzE1
MjIzLDggQEAKIAkJRTRBODE0REYxQzczMzhFQjAwQkY4NUFDIC8qIElkQ2hhbmdlSW52YWxpZGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkQ2hhbmdlSW52YWxpZGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QThEMjE0MjI1NzhEQTAwMEE4
NDYzQyAvKiBFdmVudFJlZ2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudFJlZ2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEE4RDIxNTIyNTc4
REEwMDBBODQ2M0MgLyogRXZlbnRSZWdpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRXZlbnRSZWdpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFNEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5
b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU0QUJBQkRFMjM2MDg5M0QwMEZB
NDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFNEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUgLyogTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5
b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dEludGVn
cmF0aW9uTGluZUxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QUJB
QkUyMjM2MUEzMjkwMEZBNDM0NSAvKiBQcm9wZXJ0eUNhc2NhZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJvcGVydHlDYXNjYWRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0QUJBQkU1MjM2MUEzNDIwMEZBNDM0NSAvKiBQcm9wZXJ0eUNhc2NhZGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVydHlDYXNjYWRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTRBQkFCRjAyMzY4QjkxODAwRkE0MzQ1IC8qIFN0eWxlQnVpbGRlclN0
YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlQnVpbGRlclN0YXRlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NjkwLDcgKzE2NjkwLDYgQEAKIAkJMTE1Q0ZBOUEy
MDhCQzE0MDAwMUU2OTkxIC8qIGlubGluZWZvcm1hdHRpbmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUU0MzU1MDUyMjM5NTM0NTcwMDQ4MjlDMCAvKiBp
bnRlZ3JhdGlvbiAqLywKIAkJCQk2RkU3RERERDIwRUM2RThCMDA4QjVCNEUgLyogdGV4dCAqLywK
IAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwICovLAogCQkJCTZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oICovLApAQCAtMjcwMjEsMTMgKzI3MDIwLDYgQEAKIAkJCXBhdGggPSBkb21qaXQ7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQlFNDM1NTA1MjIzOTUzNDU3MDA0
ODI5QzAgLyogaW50ZWdyYXRpb24gKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxk
cmVuID0gKAotCQkJKTsKLQkJCXBhdGggPSBpbnRlZ3JhdGlvbjsKLQkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7Ci0JCX07CiAJCUU0NkU5Nzg2MERBQUQ2MUIwMDcxRTg5NCAvKiBhbmltYXRpb24g
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjcxNTQsOCAr
MjcxNDYsOCBAQAogCQlFNEZCNEIxRTIzOTUzNTZGMDAzQzMzNkEgLyogaW50ZWdyYXRpb24gKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUU0QUJBQkRFMjM2
MDg5M0QwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCAqLywKLQkJCQlF
NEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICov
LAorCQkJCUU0QUJBQkRFMjM2MDg5M0QwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVM
YXlvdXQuY3BwICovLAorCQkJCUU0QUJBQkRCMjM2MDg4RkQwMEZBNDM0NSAvKiBMYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW50ZWdyYXRpb247CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzE3ODIsNyArMzE3NzQsNyBAQAogCQkJCTdD
RDQ5NENEMUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRhY2htZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VBNDg2MDA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQmxvY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMTBENzY4MTdEOEVFNzEwMDVFMjYyNiAvKiBSZW5kZXJCbG9ja0Zsb3cu
aCBpbiBIZWFkZXJzICovLAotCQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBSZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZF
MDBGQTQzNDUgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0VBNDg2MjA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQm94LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VCMTc5QzE0MzM3OUY1MDA1MkVBRTkgLyogUmVuZGVyQm94RnJhZ21lbnRJbmZv
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk2REI0MzBGM0E4ODBFMDA1NzNDQjMgLyogUmVuZGVy
Qm94TW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91
dC5jcHAKc2ltaWxhcml0eSBpbmRleCA3NiUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCnJlbmFtZSB0byBT
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5
b3V0LmNwcAppbmRleCBiNzQ4OWFkM2YyMS4uYjU3NTVmNDRmYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25MaW5lTGF5b3V0LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgiCisjaW5jbHVkZSAi
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgiCiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCkKIApAQCAtNDEsMTcgKzQxLDE3IEBACiAjaW5jbHVkZSAiU2ltcGxlTGlu
ZUxheW91dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKK25h
bWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CiAKLVJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6
OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93KQor
TGluZUxheW91dDo6TGluZUxheW91dChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCiAgICAg
OiBtX2Zsb3coZmxvdykKIHsKLSAgICBtX3RyZWVDb250ZW50ID0gVHJlZUJ1aWxkZXI6OmJ1aWxk
TGF5b3V0VHJlZShmbG93KTsKKyAgICBtX3RyZWVDb250ZW50ID0gTGF5b3V0OjpUcmVlQnVpbGRl
cjo6YnVpbGRMYXlvdXRUcmVlKGZsb3cpOwogfQogCi1SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
Ojp+UmVuZGVyQmxvY2tGbG93TGluZUxheW91dCgpID0gZGVmYXVsdDsKK0xpbmVMYXlvdXQ6On5M
aW5lTGF5b3V0KCkgPSBkZWZhdWx0OwogCi1ib29sIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6
OmNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCitib29sIExpbmVMYXlvdXQ6
OmNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCiB7CiAgICAgaWYgKCFSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxheW91dEZvcm1hdHRpbmdDb250
ZXh0UmVuZGVyVHJlZUludGVncmF0aW9uRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC02OSwyMyArNjksMjMgQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpjYW5V
c2VGb3IoY29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93KQogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmxheW91dCgpCit2b2lkIExpbmVMYXlv
dXQ6OmxheW91dCgpCiB7CiAgICAgaWYgKCFtX2xheW91dFN0YXRlKQotICAgICAgICBtX2xheW91
dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlvdXRTdGF0ZT4oKm1fdHJlZUNvbnRlbnQpOworICAgICAg
ICBtX2xheW91dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlvdXQ6OkxheW91dFN0YXRlPigqbV90cmVl
Q29udGVudCk7CiAKICAgICBwcmVwYXJlUm9vdEdlb21ldHJ5Rm9yTGF5b3V0KCk7CiAKLSAgICBh
dXRvIGxheW91dENvbnRleHQgPSBMYXlvdXRDb250ZXh0IHsgKm1fbGF5b3V0U3RhdGUgfTsKLSAg
ICBhdXRvIGludmFsaWRhdGlvblN0YXRlID0gSW52YWxpZGF0aW9uU3RhdGUgeyB9OworICAgIGF1
dG8gbGF5b3V0Q29udGV4dCA9IExheW91dDo6TGF5b3V0Q29udGV4dCB7ICptX2xheW91dFN0YXRl
IH07CisgICAgYXV0byBpbnZhbGlkYXRpb25TdGF0ZSA9IExheW91dDo6SW52YWxpZGF0aW9uU3Rh
dGUgeyB9OwogCiAgICAgbGF5b3V0Q29udGV4dC5sYXlvdXRXaXRoUHJlcGFyZWRSb290R2VvbWV0
cnkoaW52YWxpZGF0aW9uU3RhdGUpOwogCi0gICAgYXV0byYgbGluZUJveGVzID0gZG93bmNhc3Q8
SW5saW5lRm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLT5lc3RhYmxpc2hlZEZvcm1hdHRp
bmdTdGF0ZShyb290TGF5b3V0Qm94KCkpKS5kaXNwbGF5SW5saW5lQ29udGVudCgpLT5saW5lQm94
ZXM7CisgICAgYXV0byYgbGluZUJveGVzID0gZG93bmNhc3Q8TGF5b3V0OjpJbmxpbmVGb3JtYXR0
aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RM
YXlvdXRCb3goKSkpLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVCb3hlczsKICAgICBtX2Nv
bnRlbnRMb2dpY2FsSGVpZ2h0ID0gbGluZUJveGVzLmxhc3QoKS5sb2dpY2FsQm90dG9tKCkgLSBs
aW5lQm94ZXMuZmlyc3QoKS5sb2dpY2FsVG9wKCk7CiB9CiAKLXZvaWQgUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dDo6cHJlcGFyZVJvb3RHZW9tZXRyeUZvckxheW91dCgpCit2b2lkIExpbmVMYXlv
dXQ6OnByZXBhcmVSb290R2VvbWV0cnlGb3JMYXlvdXQoKQogewogICAgIGF1dG8mIGRpc3BsYXlC
b3ggPSBtX2xheW91dFN0YXRlLT5kaXNwbGF5Qm94Rm9yUm9vdExheW91dEJveCgpOwogCkBAIC05
NSwxMiArOTUsMTIgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpwcmVwYXJlUm9v
dEdlb21ldHJ5Rm9yTGF5b3V0KCkKICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0aCht
X2Zsb3cuY29udGVudFNpemUoKS53aWR0aCgpKTsKIH0KIAotY29uc3QgRGlzcGxheTo6SW5saW5l
Q29udGVudCogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6ZGlzcGxheUlubGluZUNvbnRlbnQo
KSBjb25zdAorY29uc3QgRGlzcGxheTo6SW5saW5lQ29udGVudCogTGluZUxheW91dDo6ZGlzcGxh
eUlubGluZUNvbnRlbnQoKSBjb25zdAogewotICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVGb3Jt
YXR0aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJv
b3RMYXlvdXRCb3goKSkpLmRpc3BsYXlJbmxpbmVDb250ZW50KCk7CisgICAgcmV0dXJuIGRvd25j
YXN0PExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLT5lc3RhYmxp
c2hlZEZvcm1hdHRpbmdTdGF0ZShyb290TGF5b3V0Qm94KCkpKS5kaXNwbGF5SW5saW5lQ29udGVu
dCgpOwogfQogCi12b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnBhaW50KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit2b2lkIExpbmVM
YXlvdXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzZXQpCiB7CiAgICAgYXV0byYgZ3JhcGhpY3NDb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRl
eHQoKTsKIApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91
dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwCiAgICAg
Z3JhcGhpY3NDb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotTGluZUxheW91dFRyYXZlcnNhbDo6VGV4
dEJveEl0ZXJhdG9yIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnRleHRCb3hlc0Zvcihjb25z
dCBSZW5kZXJUZXh0JiByZW5kZXJUZXh0KSBjb25zdAorTGluZUxheW91dFRyYXZlcnNhbDo6VGV4
dEJveEl0ZXJhdG9yIExpbmVMYXlvdXQ6OnRleHRCb3hlc0Zvcihjb25zdCBSZW5kZXJUZXh0JiBy
ZW5kZXJUZXh0KSBjb25zdAogewogICAgIGF1dG8qIGlubGluZUNvbnRlbnQgPSBkaXNwbGF5SW5s
aW5lQ29udGVudCgpOwogICAgIGlmICghaW5saW5lQ29udGVudCkKQEAgLTEzNiw3ICsxMzYsNyBA
QCBMaW5lTGF5b3V0VHJhdmVyc2FsOjpUZXh0Qm94SXRlcmF0b3IgUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dDo6dGV4dEJveGVzRm9yKGNvbgogICAgIHJldHVybiB7IExpbmVMYXlvdXRUcmF2ZXJz
YWw6OkRpc3BsYXlSdW5QYXRoKCppbmxpbmVDb250ZW50LCAqZmlyc3RJbmRleCwgbGFzdEluZGV4
ICsgMSkgfTsKIH0KIAotTGluZUxheW91dFRyYXZlcnNhbDo6RWxlbWVudEJveEl0ZXJhdG9yIFJl
bmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmVsZW1lbnRCb3hGb3IoY29uc3QgUmVuZGVyTGluZUJy
ZWFrJiByZW5kZXJMaW5lQnJlYWspIGNvbnN0CitMaW5lTGF5b3V0VHJhdmVyc2FsOjpFbGVtZW50
Qm94SXRlcmF0b3IgTGluZUxheW91dDo6ZWxlbWVudEJveEZvcihjb25zdCBSZW5kZXJMaW5lQnJl
YWsmIHJlbmRlckxpbmVCcmVhaykgY29uc3QKIHsKICAgICBhdXRvKiBpbmxpbmVDb250ZW50ID0g
ZGlzcGxheUlubGluZUNvbnRlbnQoKTsKICAgICBpZiAoIWlubGluZUNvbnRlbnQpCkBAIC0xNTMs
NyArMTUzLDcgQEAgTGluZUxheW91dFRyYXZlcnNhbDo6RWxlbWVudEJveEl0ZXJhdG9yIFJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmVsZW1lbnRCb3hGb3IKICAgICByZXR1cm4geyB9OwogfQog
Ci1jb25zdCBDb250YWluZXImIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnJvb3RMYXlvdXRC
b3goKSBjb25zdAorY29uc3QgTGF5b3V0OjpDb250YWluZXImIExpbmVMYXlvdXQ6OnJvb3RMYXlv
dXRCb3goKSBjb25zdAogewogICAgIHJldHVybiBtX3RyZWVDb250ZW50LT5yb290TGF5b3V0Qm94
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjA1ZTQ2NjYyNjAuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgIkxheW91dFBvaW50LmgiCi0j
aW5jbHVkZSAiTGluZUxheW91dFRyYXZlcnNhbC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLWNsYXNzIFJlbmRlckJsb2NrRmxvdzsKLWNsYXNzIFJl
bmRlckxpbmVCcmVhazsKLXN0cnVjdCBQYWludEluZm87Ci0KLW5hbWVzcGFjZSBEaXNwbGF5IHsK
LXN0cnVjdCBJbmxpbmVDb250ZW50OwotfQotCi1uYW1lc3BhY2UgTGF5b3V0IHsKLQotY2xhc3Mg
TGF5b3V0VHJlZUNvbnRlbnQ7Ci1jbGFzcyBMYXlvdXRTdGF0ZTsKLQotY2xhc3MgUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dCB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6
Ci0gICAgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsK
LSAgICB+UmVuZGVyQmxvY2tGbG93TGluZUxheW91dCgpOwotCi0gICAgc3RhdGljIGJvb2wgY2Fu
VXNlRm9yKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwotCi0gICAgdm9pZCBsYXlvdXQoKTsKLQot
ICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnRlbnRMb2dpY2FsSGVpZ2h0OyB9Ci0gICAgY29uc3QgRGlzcGxheTo6SW5saW5lQ29udGVudCog
ZGlzcGxheUlubGluZUNvbnRlbnQoKSBjb25zdDsKLQotICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KTsKLQotICAgIExpbmVMYXlvdXRUcmF2
ZXJzYWw6OlRleHRCb3hJdGVyYXRvciB0ZXh0Qm94ZXNGb3IoY29uc3QgUmVuZGVyVGV4dCYpIGNv
bnN0OwotICAgIExpbmVMYXlvdXRUcmF2ZXJzYWw6OkVsZW1lbnRCb3hJdGVyYXRvciBlbGVtZW50
Qm94Rm9yKGNvbnN0IFJlbmRlckxpbmVCcmVhayYpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIGNv
bnN0IENvbnRhaW5lciYgcm9vdExheW91dEJveCgpIGNvbnN0OwotICAgIHZvaWQgcHJlcGFyZVJv
b3RHZW9tZXRyeUZvckxheW91dCgpOwotCi0gICAgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBtX2Zs
b3c7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IExheW91dFRyZWVDb250ZW50PiBtX3RyZWVD
b250ZW50OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gbV9sYXlvdXRTdGF0ZTsK
LSAgICBMYXlvdXRVbml0IG1fY29udGVudExvZ2ljYWxIZWlnaHQ7Ci19OwotCi19Ci19Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRl
eCBiYmEyZDkyNjg3NC4uMDQxOWExMjM1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0zNSw5ICszNSw5IEBACiAjaW5jbHVkZSAiSFRNTFRl
eHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RMb2NhdGlvbi5oIgogI2luY2x1ZGUg
IklubGluZVRleHRCb3guaCIKKyNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQu
aCIKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0j
aW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIgogI2luY2x1ZGUgIlJlbmRlckNv
bWJpbmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKICNpbmNsdWRlICJS
ZW5kZXJJbmxpbmUuaCIKQEAgLTY3MCw4ICs2NzAsOCBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6
bGF5b3V0SW5saW5lQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiBy
ZQogewogICAgIGF1dG8gY29tcHV0ZUxpbmVMYXlvdXRQYXRoID0gWyZdIHsKICNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSAgICAgICAgaWYgKExheW91dDo6UmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dDo6Y2FuVXNlRm9yKCp0aGlzKSkKLSAgICAgICAgICAgIHJldHVybiBM
RkNQYXRoOworICAgICAgICBpZiAoTGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNhblVz
ZUZvcigqdGhpcykpCisgICAgICAgICAgICByZXR1cm4gTGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRQ
YXRoOwogI2VuZGlmCiAgICAgICAgIGlmIChTaW1wbGVMaW5lTGF5b3V0OjpjYW5Vc2VGb3IoKnRo
aXMpKQogICAgICAgICAgICAgcmV0dXJuIFNpbXBsZUxpbmVzUGF0aDsKQEAgLTY4Nyw3ICs2ODcs
NyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYm9vbCByZWxh
eW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiByZQogICAgIH0KIAogI2lmIEVOQUJMRShMQVlPVVRf
Rk9STUFUVElOR19DT05URVhUKQotICAgIGlmIChsaW5lTGF5b3V0UGF0aCgpID09IExGQ1BhdGgp
IHsKKyAgICBpZiAobGluZUxheW91dFBhdGgoKSA9PSBMYXlvdXRGb3JtYXR0aW5nQ29udGV4dFBh
dGgpIHsKICAgICAgICAgbGF5b3V0TEZDTGluZXMocmVsYXlvdXRDaGlsZHJlbiwgcmVwYWludExv
Z2ljYWxUb3AsIHJlcGFpbnRMb2dpY2FsQm90dG9tKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTM1NDksOCArMzU0OSw4IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpwYWludElubGluZUNo
aWxkcmVuKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2luCiAgICAgQVNTRVJU
KGNoaWxkcmVuSW5saW5lKCkpOwogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCi0gICAgaWYgKGxmY0xpbmVMYXlvdXQoKSkgewotICAgICAgICBsZmNMaW5lTGF5b3V0KCkt
PnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgIGlmIChsYXlvdXRGb3JtYXR0aW5n
Q29udGV4dExpbmVMYXlvdXQoKSkgeworICAgICAgICBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExp
bmVMYXlvdXQoKS0+cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAjZW5kaWYKQEAgLTM2MzAsNyArMzYzMCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjppbnZhbGlkYXRlTGluZUxheW91dFBhdGgoKQogICAgICAgICBBU1NFUlQoIXNpbXBsZUxp
bmVMYXlvdXQoKSk7CiAgICAgICAgIHNldExpbmVMYXlvdXRQYXRoKFVuZGV0ZXJtaW5lZFBhdGgp
OwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBMRkNQYXRoOiAvLyBGSVhNRTogTm90IGFsbCBj
bGllbnRzIG9mIGludmFsaWRhdGVMaW5lTGF5b3V0UGF0aCgpIGFjdHVhbGx5IG5lZWQgdG8gd2lw
ZSB0aGUgbGF5b3V0LgorICAgIGNhc2UgTGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRQYXRoOiAvLyBG
SVhNRTogTm90IGFsbCBjbGllbnRzIG9mIGludmFsaWRhdGVMaW5lTGF5b3V0UGF0aCgpIGFjdHVh
bGx5IG5lZWQgdG8gd2lwZSB0aGUgbGF5b3V0LgogICAgIGNhc2UgU2ltcGxlTGluZXNQYXRoOgog
ICAgICAgICAvLyBUaGUgc2ltcGxlIGxpbmUgbGF5b3V0IG1heSBoYXZlIGJlY29tZSBpbnZhbGlk
LgogICAgICAgICBtX2xpbmVMYXlvdXQgPSBXVEY6Ok1vbm9zdGF0ZSgpOwpAQCAtMzY3MCwxNyAr
MzY3MCwxNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0U2ltcGxlTGluZXMoYm9vbCBy
ZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiByZXBhaQogI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQogdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dExGQ0xpbmVzKGJv
b2wsIExheW91dFVuaXQmIHJlcGFpbnRMb2dpY2FsVG9wLCBMYXlvdXRVbml0JiByZXBhaW50TG9n
aWNhbEJvdHRvbSkKIHsKLSAgICBpZiAoIWxmY0xpbmVMYXlvdXQoKSkKLSAgICAgICAgbV9saW5l
TGF5b3V0ID0gbWFrZVVuaXF1ZTxMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ+KCp0
aGlzKTsKKyAgICBpZiAoIWxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgpKQorICAg
ICAgICBtX2xpbmVMYXlvdXQgPSBtYWtlVW5pcXVlPExheW91dEludGVncmF0aW9uOjpMaW5lTGF5
b3V0PigqdGhpcyk7CiAKLSAgICBhdXRvJiBsZmNMaW5lTGF5b3V0ID0gKnRoaXMtPmxmY0xpbmVM
YXlvdXQoKTsKKyAgICBhdXRvJiBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQgPSAq
dGhpcy0+bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0KCk7CiAKICAgICBmb3IgKGF1
dG8mIHJlbmRlcmVyIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyT2JqZWN0PigqdGhpcykpCiAgICAg
ICAgIHJlbmRlcmVyLmNsZWFyTmVlZHNMYXlvdXQoKTsKIAotICAgIGxmY0xpbmVMYXlvdXQubGF5
b3V0KCk7CisgICAgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmxheW91dCgpOwog
Ci0gICAgYXV0byBjb250ZW50SGVpZ2h0ID0gbGZjTGluZUxheW91dC5jb250ZW50TG9naWNhbEhl
aWdodCgpOworICAgIGF1dG8gY29udGVudEhlaWdodCA9IGxheW91dEZvcm1hdHRpbmdDb250ZXh0
TGluZUxheW91dC5jb250ZW50TG9naWNhbEhlaWdodCgpOwogICAgIGF1dG8gY29udGVudFRvcCA9
IGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKTsKICAgICBhdXRvIGNvbnRlbnRCb3R0b20gPSBjb250
ZW50VG9wICsgY29udGVudEhlaWdodDsKICAgICBhdXRvIHRvdGFsSGVpZ2h0ID0gY29udGVudEJv
dHRvbSArIGJvcmRlckFuZFBhZGRpbmdBZnRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5oCmluZGV4IDU5OTlhOTg1NWU3Li5hNDk2NDMxMjBlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaApAQCAtMzgsOCArMzgsOCBA
QCBjbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkZsb3c7CiBjbGFzcyBSZW5kZXJSdWJ5UnVuOwogCiAj
aWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi1uYW1lc3BhY2UgTGF5b3V0IHsK
LWNsYXNzIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ7CituYW1lc3BhY2UgTGF5b3V0SW50ZWdy
YXRpb24geworY2xhc3MgTGluZUxheW91dDsKIH0KICNlbmRpZgogCkBAIC0zNDQsNyArMzQ0LDcg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzTGluZXMoKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRh
dGVMaW5lTGF5b3V0UGF0aCgpIGZpbmFsOwogCi0gICAgZW51bSBMaW5lTGF5b3V0UGF0aCB7IFVu
ZGV0ZXJtaW5lZFBhdGggPSAwLCBTaW1wbGVMaW5lc1BhdGgsIExpbmVCb3hlc1BhdGgsIExGQ1Bh
dGgsIEZvcmNlTGluZUJveGVzUGF0aCB9OworICAgIGVudW0gTGluZUxheW91dFBhdGggeyBVbmRl
dGVybWluZWRQYXRoID0gMCwgU2ltcGxlTGluZXNQYXRoLCBMaW5lQm94ZXNQYXRoLCBMYXlvdXRG
b3JtYXR0aW5nQ29udGV4dFBhdGgsIEZvcmNlTGluZUJveGVzUGF0aCB9OwogICAgIExpbmVMYXlv
dXRQYXRoIGxpbmVMYXlvdXRQYXRoKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGluZUxh
eW91dFBhdGg+KHJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXRQYXRoKCkpOyB9CiAgICAgdm9pZCBz
ZXRMaW5lTGF5b3V0UGF0aChMaW5lTGF5b3V0UGF0aCBwYXRoKSB7IHNldFJlbmRlckJsb2NrRmxv
d0xpbmVMYXlvdXRQYXRoKHBhdGgpOyB9CiAKQEAgLTM2NCw4ICszNjQsOCBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgQ29tcGxleExpbmVMYXlvdXQqIGNvbXBsZXhMaW5lTGF5b3V0KCkgY29uc3Q7CiAg
ICAgQ29tcGxleExpbmVMYXlvdXQqIGNvbXBsZXhMaW5lTGF5b3V0KCk7CiAjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgY29uc3QgTGF5b3V0OjpSZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0KiBsZmNMaW5lTGF5b3V0KCkgY29uc3Q7Ci0gICAgTGF5b3V0OjpSZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0KiBsZmNMaW5lTGF5b3V0KCk7CisgICAgY29uc3QgTGF5b3V0SW50
ZWdyYXRpb246OkxpbmVMYXlvdXQqIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgp
IGNvbnN0OworICAgIExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0KiBsYXlvdXRGb3JtYXR0
aW5nQ29udGV4dExpbmVMYXlvdXQoKTsKICNlbmRpZgogCiAgICAgdm9pZCBlbnN1cmVMaW5lQm94
ZXMoKTsKQEAgLTU0Nyw3ICs1NDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5b3V0U2ltcGxl
TGluZXMoYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiByZXBhaW50TG9naWNhbFRv
cCwgTGF5b3V0VW5pdCYgcmVwYWludExvZ2ljYWxCb3R0b20pOwogCiAjaWYgRU5BQkxFKExBWU9V
VF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgYm9vbCBoYXNMRkNMaW5lTGF5b3V0KCkgY29uc3Q7
CisgICAgYm9vbCBoYXNMYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQoKSBjb25zdDsK
ICAgICB2b2lkIGxheW91dExGQ0xpbmVzKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5p
dCYgcmVwYWludExvZ2ljYWxUb3AsIExheW91dFVuaXQmIHJlcGFpbnRMb2dpY2FsQm90dG9tKTsK
ICNlbmRpZgogCkBAIC01OTIsNyArNTkyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgV1RGOjpNb25v
c3RhdGUsCiAgICAgICAgIFJlZjxTaW1wbGVMaW5lTGF5b3V0OjpMYXlvdXQ+LAogI2lmIEVOQUJM
RShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5
b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0PiwKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0PiwKICNlbmRpZgogICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q29tcGxleExpbmVMYXlvdXQ+CiAgICAgPiBtX2xpbmVMYXlvdXQ7CkBAIC02Mzgs
MTkgKzYzOCwxOSBAQCBpbmxpbmUgU2ltcGxlTGluZUxheW91dDo6TGF5b3V0KiBSZW5kZXJCbG9j
a0Zsb3c6OnNpbXBsZUxpbmVMYXlvdXQoKQogfQogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCi1pbmxpbmUgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6Omhhc0xGQ0xpbmVMYXlv
dXQoKSBjb25zdAoraW5saW5lIGJvb2wgUmVuZGVyQmxvY2tGbG93OjpoYXNMYXlvdXRGb3JtYXR0
aW5nQ29udGV4dExpbmVMYXlvdXQoKSBjb25zdAogewotICAgIHJldHVybiBXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQ+PihtX2xpbmVMYXlvdXQpOworICAgIHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPHN0
ZDo6dW5pcXVlX3B0cjxMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dD4+KG1fbGluZUxheW91
dCk7CiB9CiAKLWlubGluZSBjb25zdCBMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQq
IFJlbmRlckJsb2NrRmxvdzo6bGZjTGluZUxheW91dCgpIGNvbnN0CitpbmxpbmUgY29uc3QgTGF5
b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQqIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0Rm9ybWF0
dGluZ0NvbnRleHRMaW5lTGF5b3V0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzTEZDTGluZUxh
eW91dCgpID8gV1RGOjpnZXQ8c3RkOjp1bmlxdWVfcHRyPExheW91dDo6UmVuZGVyQmxvY2tGbG93
TGluZUxheW91dD4+KG1fbGluZUxheW91dCkuZ2V0KCkgOiBudWxscHRyOworICAgIHJldHVybiBo
YXNMYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQoKSA/IFdURjo6Z2V0PHN0ZDo6dW5p
cXVlX3B0cjxMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dD4+KG1fbGluZUxheW91dCkuZ2V0
KCkgOiBudWxscHRyOwogfQogCi1pbmxpbmUgTGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5
b3V0KiBSZW5kZXJCbG9ja0Zsb3c6OmxmY0xpbmVMYXlvdXQoKQoraW5saW5lIExheW91dEludGVn
cmF0aW9uOjpMaW5lTGF5b3V0KiBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEZvcm1hdHRpbmdDb250
ZXh0TGluZUxheW91dCgpCiB7Ci0gICAgcmV0dXJuIGhhc0xGQ0xpbmVMYXlvdXQoKSA/IFdURjo6
Z2V0PHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ+Piht
X2xpbmVMYXlvdXQpLmdldCgpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gaGFzTGF5b3V0Rm9ybWF0
dGluZ0NvbnRleHRMaW5lTGF5b3V0KCkgPyBXVEY6OmdldDxzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0
SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ+PihtX2xpbmVMYXlvdXQpLmdldCgpIDogbnVsbHB0cjsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9M
aW5lTGF5b3V0VHJhdmVyc2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xp
bmVMYXlvdXRUcmF2ZXJzYWwuY3BwCmluZGV4IDUwNTIwYzlmMzE2Li4wZGMwNjM1NzdiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNh
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZl
cnNhbC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJMaW5lTGF5b3V0VHJhdmVyc2FsLmgiCiAKLSNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmgiCisjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGluZUJyZWFrLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg1LDgg
Kzg1LDggQEAgVGV4dEJveEl0ZXJhdG9yIGZpcnN0VGV4dEJveEZvcihjb25zdCBSZW5kZXJUZXh0
JiB0ZXh0KQogICAgIH0KIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQot
ICAgIGlmIChhdXRvKiBsZmNMaW5lTGF5b3V0ID0gZmxvdy5sZmNMaW5lTGF5b3V0KCkpCi0gICAg
ICAgIHJldHVybiBsZmNMaW5lTGF5b3V0LT50ZXh0Qm94ZXNGb3IodGV4dCk7CisgICAgaWYgKGF1
dG8qIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCA9IGZsb3cubGF5b3V0Rm9ybWF0
dGluZ0NvbnRleHRMaW5lTGF5b3V0KCkpCisgICAgICAgIHJldHVybiBsYXlvdXRGb3JtYXR0aW5n
Q29udGV4dExpbmVMYXlvdXQtPnRleHRCb3hlc0Zvcih0ZXh0KTsKICNlbmRpZgogCiAgICAgcmV0
dXJuIHsgQ29tcGxleFBhdGggeyB0ZXh0LmZpcnN0VGV4dEJveCgpIH0gfTsKQEAgLTEzOSw4ICsx
MzksOCBAQCBFbGVtZW50Qm94SXRlcmF0b3IgZWxlbWVudEJveEZvcihjb25zdCBSZW5kZXJMaW5l
QnJlYWsmIHJlbmRlckVsZW1lbnQpCiAgICAgfQogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCi0gICAgaWYgKGF1dG8qIGxmY0xpbmVMYXlvdXQgPSBmbG93LmxmY0xpbmVM
YXlvdXQoKSkKLSAgICAgICAgcmV0dXJuIGxmY0xpbmVMYXlvdXQtPmVsZW1lbnRCb3hGb3IocmVu
ZGVyRWxlbWVudCk7CisgICAgaWYgKGF1dG8qIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxh
eW91dCA9IGZsb3cubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0KCkpCisgICAgICAg
IHJldHVybiBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQtPmVsZW1lbnRCb3hGb3Io
cmVuZGVyRWxlbWVudCk7CiAjZW5kaWYKIAogICAgIHJldHVybiB7IENvbXBsZXhQYXRoKHJlbmRl
ckVsZW1lbnQuaW5saW5lQm94V3JhcHBlcigpKSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384708</attachid>
            <date>2019-12-03 05:29:29 -0800</date>
            <delta_ts>2019-12-03 07:41:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>lfc-rename-integration-linelayout-2.patch</filename>
            <type>text/plain</type>
            <size>23209</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyM2JlNDg2NWQ0Mi4uZGQ1N2ZmNDgzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0xMi0wMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFJlbmFtZSBSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0IGFuZCBtb3ZlIGl0IHRvIExheW91dEludGVncmF0aW9uIG5hbWVzcGFjZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzkxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGF5b3V0OjpSZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0IC0+IExheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0CisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUxheW91dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6TGluZUxheW91dCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Y2FuVXNlRm9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpsYXlvdXQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OnByZXBhcmVSb290R2Vv
bWV0cnlGb3JMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxp
bmVMYXlvdXQ6OmRpc3BsYXlJbmxpbmVDb250ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6dGV4dEJveGVzRm9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjplbGVtZW50Qm94
Rm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5
b3V0Ojpyb290TGF5b3V0Qm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjpsYXlvdXRJbmxpbmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OnBhaW50SW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tG
bG93OjppbnZhbGlkYXRlTGluZUxheW91dFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93OjpsYXlvdXRMRkNMaW5lcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpoYXNMYXlvdXRG
b3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2tGbG93OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4
dExpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpoYXNMRkNM
aW5lTGF5b3V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Rmxvdzo6bGZjTGluZUxheW91dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9ja0Zsb3c6OmxmY0xpbmVMYXlvdXQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRl
cmluZy9saW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlu
ZUxheW91dFRyYXZlcnNhbDo6Zmlyc3RUZXh0Qm94Rm9yKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
bmVMYXlvdXRUcmF2ZXJzYWw6OmVsZW1lbnRCb3hGb3IpOgorCiAyMDE5LTEyLTAzICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0g
U2V0dXAgcm9vdCBib3ggcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiOGVmNWI5MzU4ZC4u
OTk1M2QzMDU5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDQ0LDcgKzE0NDQsNyBAQCBsYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKIGxheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxh
eW91dENvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGlsLmNw
cAotbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCitsYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAogbGF5b3V0L2lu
dmFsaWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmNwcAogbGF5b3V0L2ludmFsaWRhdGlvbi9J
bnZhbGlkYXRpb25TdGF0ZS5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAxNTQ3Nzg2ZmE1YS4uMmUzNjcwYWJlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4NTYsNyArNDg1Niw3IEBACiAJCUU0
QTgxNERBMUM3MEUxMEQwMEJGODVBQyAvKiBBdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QTgxNEQ5MUM3
MEUxMEQwMEJGODVBQyAvKiBBdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLzsgfTsKIAkJ
RTRBODE0RTAxQzczMzhFQjAwQkY4NUFDIC8qIElkQ2hhbmdlSW52YWxpZGF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEE4MTRERjFDNzMzOEVC
MDBCRjg1QUMgLyogSWRDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLzsgfTsKIAkJRTRBOEQyMTYyMjU3
OERCNzAwQTg0NjNDIC8qIEV2ZW50UmVnaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNEE4RDIxNDIyNTc4REEwMDBBODQ2M0MgLyogRXZlbnRSZWdp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlF
NEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBQkFCREIyMzYw
ODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLzsgfTsKKwkJRTRB
QkFCREQyMzYwODhGRTAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBQkFCREIyMzYw
ODhGRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0QUJBQkU0MjM2MUEzMjkw
MEZBNDM0NSAvKiBQcm9wZXJ0eUNhc2NhZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0QUJBQkUyMjM2MUEzMjkwMEZBNDM0NSAvKiBQcm9wZXJ0eUNh
c2NhZGUuaCAqLzsgfTsKIAkJRTRBQkFCRjMyMzY4Qjk1OTAwRkE0MzQ1IC8qIFN0eWxlQnVpbGRl
clN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NEFCQUJGMjIzNjhCOTU4MDBGQTQzNDUgLyogU3R5bGVCdWlsZGVyU3RhdGUuaCAqLzsgfTsKIAkJ
RTRBQkFCRjUyMzY4QzZFRjAwRkE0MzQ1IC8qIENhc2NhZGVMZXZlbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBQkFCRjQyMzY4QzZFRjAwRkE0MzQ1
IC8qIENhc2NhZGVMZXZlbC5oICovOyB9OwpAQCAtMTUyMjMsOCArMTUyMjMsOCBAQAogCQlFNEE4
MTRERjFDNzMzOEVCMDBCRjg1QUMgLyogSWRDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWRDaGFuZ2VJbnZhbGlkYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRBOEQyMTQyMjU3OERBMDAwQTg0NjNDIC8qIEV2ZW50UmVn
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50UmVnaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QThEMjE1MjI1NzhEQTAwMEE4NDYzQyAvKiBF
dmVudFJlZ2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVu
dFJlZ2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU0QUJBQkRCMjM2MDg4
RkQwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTRBQkFCREUyMzYwODkzRDAwRkE0MzQ1IC8qIFJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUU0QUJBQkRCMjM2MDg4RkQwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVM
YXlvdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0SW50ZWdyYXRp
b25MaW5lTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0QUJBQkRFMjM2
MDg5M0QwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRBQkFCRTIyMzYxQTMyOTAwRkE0
MzQ1IC8qIFByb3BlcnR5Q2FzY2FkZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQcm9wZXJ0eUNhc2NhZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRBQkFC
RTUyMzYxQTM0MjAwRkE0MzQ1IC8qIFByb3BlcnR5Q2FzY2FkZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQcm9wZXJ0eUNhc2NhZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NEFCQUJGMDIzNjhCOTE4MDBGQTQzNDUgLyogU3R5bGVCdWlsZGVyU3RhdGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3R5bGVCdWlsZGVyU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2OTAsNyArMTY2OTAsNiBAQAogCQkxMTVDRkE5QTIwOEJDMTQwMDAxRTY5OTEg
LyogaW5saW5lZm9ybWF0dGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJRTQzNTUwNTIyMzk1MzQ1NzAwNDgyOUMwIC8qIGludGVncmF0aW9uICovLAog
CQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0ZXh0ICovLAogCQkJCTZGN0NBM0M5MjA4
QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNkY3
Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggKi8sCkBA
IC0yNzAyMSwxMyArMjcwMjAsNiBAQAogCQkJcGF0aCA9IGRvbWppdDsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CiAJCX07Ci0JCUU0MzU1MDUyMjM5NTM0NTcwMDQ4MjlDMCAvKiBpbnRlZ3Jh
dGlvbiAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkpOwot
CQkJcGF0aCA9IGludGVncmF0aW9uOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsK
IAkJRTQ2RTk3ODYwREFBRDYxQjAwNzFFODk0IC8qIGFuaW1hdGlvbiAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNzE1NCw4ICsyNzE0Niw4IEBACiAJCUU0
RkI0QjFFMjM5NTM1NkYwMDNDMzM2QSAvKiBpbnRlZ3JhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJRTRBQkFCREUyMzYwODkzRDAwRkE0MzQ1IC8q
IFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwICovLAotCQkJCUU0QUJBQkRCMjM2MDg4RkQw
MEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggKi8sCisJCQkJRTRBQkFCREUy
MzYwODkzRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAgKi8sCisJ
CQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91
dC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBpbnRlZ3JhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0zMTc4Miw3ICszMTc3NCw3IEBACiAJCQkJN0NENDk0Q0QxQTg2RUIxRDAw
MEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODYw
MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
MEQ3NjgxN0Q4RUU3MTAwNUUyNjI2IC8qIFJlbmRlckJsb2NrRmxvdy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRTRBQkFCREQyMzYwODhGRTAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlv
dXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlv
dXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODYyMDk3
RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUIxNzlD
MTQzMzc5RjUwMDUyRUFFOSAvKiBSZW5kZXJCb3hGcmFnbWVudEluZm8uaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDOTZEQjQzMEYzQTg4MEUwMDU3M0NCMyAvKiBSZW5kZXJCb3hNb2RlbE9iamVjdC5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApzaW1pbGFyaXR5
IGluZGV4IDc2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IGI3
NDg5YWQzZjIxLi5iNTc1NWY0NGZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3Bw
CkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCIKKyNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlv
bkxpbmVMYXlvdXQuaCIKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQog
CkBAIC00MSwxNyArNDEsMTcgQEAKICNpbmNsdWRlICJTaW1wbGVMaW5lTGF5b3V0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBMYXlvdXQgeworbmFtZXNwYWNlIExheW91dElu
dGVncmF0aW9uIHsKIAotUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6UmVuZGVyQmxvY2tGbG93
TGluZUxheW91dChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCitMaW5lTGF5b3V0OjpMaW5l
TGF5b3V0KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxvdykKICAgICA6IG1fZmxvdyhmbG93KQog
ewotICAgIG1fdHJlZUNvbnRlbnQgPSBUcmVlQnVpbGRlcjo6YnVpbGRMYXlvdXRUcmVlKGZsb3cp
OworICAgIG1fdHJlZUNvbnRlbnQgPSBMYXlvdXQ6OlRyZWVCdWlsZGVyOjpidWlsZExheW91dFRy
ZWUoZmxvdyk7CiB9CiAKLVJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6On5SZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0KCkgPSBkZWZhdWx0OworTGluZUxheW91dDo6fkxpbmVMYXlvdXQoKSA9IGRl
ZmF1bHQ7CiAKLWJvb2wgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6Y2FuVXNlRm9yKGNvbnN0
IFJlbmRlckJsb2NrRmxvdyYgZmxvdykKK2Jvb2wgTGluZUxheW91dDo6Y2FuVXNlRm9yKGNvbnN0
IFJlbmRlckJsb2NrRmxvdyYgZmxvdykKIHsKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSZW5kZXJUcmVlSW50
ZWdyYXRpb25FbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTY5LDIzICs2OSwy
MyBAQCBib29sIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmNhblVzZUZvcihjb25zdCBSZW5k
ZXJCbG9ja0Zsb3cmIGZsb3cpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dDo6bGF5b3V0KCkKK3ZvaWQgTGluZUxheW91dDo6bGF5b3V0KCkKIHsK
ICAgICBpZiAoIW1fbGF5b3V0U3RhdGUpCi0gICAgICAgIG1fbGF5b3V0U3RhdGUgPSBtYWtlVW5p
cXVlPExheW91dFN0YXRlPigqbV90cmVlQ29udGVudCk7CisgICAgICAgIG1fbGF5b3V0U3RhdGUg
PSBtYWtlVW5pcXVlPExheW91dDo6TGF5b3V0U3RhdGU+KCptX3RyZWVDb250ZW50KTsKIAogICAg
IHByZXBhcmVSb290R2VvbWV0cnlGb3JMYXlvdXQoKTsKIAotICAgIGF1dG8gbGF5b3V0Q29udGV4
dCA9IExheW91dENvbnRleHQgeyAqbV9sYXlvdXRTdGF0ZSB9OwotICAgIGF1dG8gaW52YWxpZGF0
aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7IH07CisgICAgYXV0byBsYXlvdXRDb250ZXh0
ID0gTGF5b3V0OjpMYXlvdXRDb250ZXh0IHsgKm1fbGF5b3V0U3RhdGUgfTsKKyAgICBhdXRvIGlu
dmFsaWRhdGlvblN0YXRlID0gTGF5b3V0OjpJbnZhbGlkYXRpb25TdGF0ZSB7IH07CiAKICAgICBs
YXlvdXRDb250ZXh0LmxheW91dFdpdGhQcmVwYXJlZFJvb3RHZW9tZXRyeShpbnZhbGlkYXRpb25T
dGF0ZSk7CiAKLSAgICBhdXRvJiBsaW5lQm94ZXMgPSBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5n
U3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RMYXlv
dXRCb3goKSkpLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVCb3hlczsKKyAgICBhdXRvJiBs
aW5lQm94ZXMgPSBkb3duY2FzdDxMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZT4obV9sYXlv
dXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUocm9vdExheW91dEJveCgpKSkuZGlz
cGxheUlubGluZUNvbnRlbnQoKS0+bGluZUJveGVzOwogICAgIG1fY29udGVudExvZ2ljYWxIZWln
aHQgPSBsaW5lQm94ZXMubGFzdCgpLmxvZ2ljYWxCb3R0b20oKSAtIGxpbmVCb3hlcy5maXJzdCgp
LmxvZ2ljYWxUb3AoKTsKIH0KIAotdm9pZCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpwcmVw
YXJlUm9vdEdlb21ldHJ5Rm9yTGF5b3V0KCkKK3ZvaWQgTGluZUxheW91dDo6cHJlcGFyZVJvb3RH
ZW9tZXRyeUZvckxheW91dCgpCiB7CiAgICAgYXV0byYgZGlzcGxheUJveCA9IG1fbGF5b3V0U3Rh
dGUtPmRpc3BsYXlCb3hGb3JSb290TGF5b3V0Qm94KCk7CiAKQEAgLTk1LDEyICs5NSwxMiBAQCB2
b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnByZXBhcmVSb290R2VvbWV0cnlGb3JMYXlv
dXQoKQogICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKG1fZmxvdy5jb250ZW50U2l6
ZSgpLndpZHRoKCkpOwogfQogCi1jb25zdCBEaXNwbGF5OjpJbmxpbmVDb250ZW50KiBSZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0OjpkaXNwbGF5SW5saW5lQ29udGVudCgpIGNvbnN0Citjb25zdCBE
aXNwbGF5OjpJbmxpbmVDb250ZW50KiBMaW5lTGF5b3V0OjpkaXNwbGF5SW5saW5lQ29udGVudCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4obV9s
YXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUocm9vdExheW91dEJveCgpKSku
ZGlzcGxheUlubGluZUNvbnRlbnQoKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0
YXRlKHJvb3RMYXlvdXRCb3goKSkpLmRpc3BsYXlJbmxpbmVDb250ZW50KCk7CiB9CiAKLXZvaWQg
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3ZvaWQgTGluZUxheW91dDo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAg
ICBhdXRvJiBncmFwaGljc0NvbnRleHQgPSBwYWludEluZm8uY29udGV4dCgpOwogCkBAIC0xMTIs
NyArMTEyLDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHAKICAgICBncmFwaGljc0NvbnRleHQu
cmVzdG9yZSgpOwogfQogCi1MaW5lTGF5b3V0VHJhdmVyc2FsOjpUZXh0Qm94SXRlcmF0b3IgUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dDo6dGV4dEJveGVzRm9yKGNvbnN0IFJlbmRlclRleHQmIHJl
bmRlclRleHQpIGNvbnN0CitMaW5lTGF5b3V0VHJhdmVyc2FsOjpUZXh0Qm94SXRlcmF0b3IgTGlu
ZUxheW91dDo6dGV4dEJveGVzRm9yKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlclRleHQpIGNvbnN0
CiB7CiAgICAgYXV0byogaW5saW5lQ29udGVudCA9IGRpc3BsYXlJbmxpbmVDb250ZW50KCk7CiAg
ICAgaWYgKCFpbmxpbmVDb250ZW50KQpAQCAtMTM2LDcgKzEzNiw3IEBAIExpbmVMYXlvdXRUcmF2
ZXJzYWw6OlRleHRCb3hJdGVyYXRvciBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojp0ZXh0Qm94
ZXNGb3IoY29uCiAgICAgcmV0dXJuIHsgTGluZUxheW91dFRyYXZlcnNhbDo6RGlzcGxheVJ1blBh
dGgoKmlubGluZUNvbnRlbnQsICpmaXJzdEluZGV4LCBsYXN0SW5kZXggKyAxKSB9OwogfQogCi1M
aW5lTGF5b3V0VHJhdmVyc2FsOjpFbGVtZW50Qm94SXRlcmF0b3IgUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dDo6ZWxlbWVudEJveEZvcihjb25zdCBSZW5kZXJMaW5lQnJlYWsmIHJlbmRlckxpbmVC
cmVhaykgY29uc3QKK0xpbmVMYXlvdXRUcmF2ZXJzYWw6OkVsZW1lbnRCb3hJdGVyYXRvciBMaW5l
TGF5b3V0OjplbGVtZW50Qm94Rm9yKGNvbnN0IFJlbmRlckxpbmVCcmVhayYgcmVuZGVyTGluZUJy
ZWFrKSBjb25zdAogewogICAgIGF1dG8qIGlubGluZUNvbnRlbnQgPSBkaXNwbGF5SW5saW5lQ29u
dGVudCgpOwogICAgIGlmICghaW5saW5lQ29udGVudCkKQEAgLTE1Myw3ICsxNTMsNyBAQCBMaW5l
TGF5b3V0VHJhdmVyc2FsOjpFbGVtZW50Qm94SXRlcmF0b3IgUmVuZGVyQmxvY2tGbG93TGluZUxh
eW91dDo6ZWxlbWVudEJveEZvcgogICAgIHJldHVybiB7IH07CiB9CiAKLWNvbnN0IENvbnRhaW5l
ciYgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6cm9vdExheW91dEJveCgpIGNvbnN0Citjb25z
dCBMYXlvdXQ6OkNvbnRhaW5lciYgTGluZUxheW91dDo6cm9vdExheW91dEJveCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fdHJlZUNvbnRlbnQtPnJvb3RMYXlvdXRCb3goKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25MaW5lTGF5b3V0LmgKc2ltaWxhcml0eSBpbmRleCA4OCUKcmVuYW1lIGZyb20gU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaApy
ZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uTGluZUxheW91dC5oCmluZGV4IDIwNWU0NjY2MjYwLi41NWM3NWNlODRlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmgKQEAgLTQyLDE1ICs0MiwxNyBAQCBzdHJ1Y3QgSW5saW5lQ29u
dGVudDsKIH0KIAogbmFtZXNwYWNlIExheW91dCB7Ci0KIGNsYXNzIExheW91dFRyZWVDb250ZW50
OwogY2xhc3MgTGF5b3V0U3RhdGU7Cit9CisKK25hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7
CiAKLWNsYXNzIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQgeworY2xhc3MgTGluZUxheW91dCB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsKLSAgICB+UmVuZGVyQmxvY2tG
bG93TGluZUxheW91dCgpOworICAgIExpbmVMYXlvdXQoY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7
CisgICAgfkxpbmVMYXlvdXQoKTsKIAogICAgIHN0YXRpYyBib29sIGNhblVzZUZvcihjb25zdCBS
ZW5kZXJCbG9ja0Zsb3cmKTsKIApAQCAtNjUsMTIgKzY3LDEyIEBAIHB1YmxpYzoKICAgICBMaW5l
TGF5b3V0VHJhdmVyc2FsOjpFbGVtZW50Qm94SXRlcmF0b3IgZWxlbWVudEJveEZvcihjb25zdCBS
ZW5kZXJMaW5lQnJlYWsmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBjb25zdCBDb250YWluZXIm
IHJvb3RMYXlvdXRCb3goKSBjb25zdDsKKyAgICBjb25zdCBMYXlvdXQ6OkNvbnRhaW5lciYgcm9v
dExheW91dEJveCgpIGNvbnN0OwogICAgIHZvaWQgcHJlcGFyZVJvb3RHZW9tZXRyeUZvckxheW91
dCgpOwogCiAgICAgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBtX2Zsb3c7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPGNvbnN0IExheW91dFRyZWVDb250ZW50PiBtX3RyZWVDb250ZW50OwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gbV9sYXlvdXRTdGF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8Y29uc3QgTGF5b3V0OjpMYXlvdXRUcmVlQ29udGVudD4gbV90cmVlQ29udGVudDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8TGF5b3V0OjpMYXlvdXRTdGF0ZT4gbV9sYXlvdXRTdGF0ZTsKICAgICBM
YXlvdXRVbml0IG1fY29udGVudExvZ2ljYWxIZWlnaHQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IGJiYTJkOTI2ODc0Li4wNDE5YTEy
MzVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
QEAgLTM1LDkgKzM1LDkgQEAKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSGl0VGVzdExvY2F0aW9uLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgorI2lu
Y2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIgogI2luY2x1ZGUgIkxheW91dFJl
cGFpbnRlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJSZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0LmgiCiAjaW5jbHVkZSAiUmVuZGVyQ29tYmluZVRleHQuaCIKICNpbmNsdWRl
ICJSZW5kZXJGbGV4aWJsZUJveC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgpAQCAtNjcw
LDggKzY3MCw4IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDaGlsZHJlbihi
b29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIHJlCiB7CiAgICAgYXV0byBjb21wdXRl
TGluZUxheW91dFBhdGggPSBbJl0gewogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKQotICAgICAgICBpZiAoTGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpjYW5V
c2VGb3IoKnRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIExGQ1BhdGg7CisgICAgICAgIGlmIChM
YXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Y2FuVXNlRm9yKCp0aGlzKSkKKyAgICAgICAg
ICAgIHJldHVybiBMYXlvdXRGb3JtYXR0aW5nQ29udGV4dFBhdGg7CiAjZW5kaWYKICAgICAgICAg
aWYgKFNpbXBsZUxpbmVMYXlvdXQ6OmNhblVzZUZvcigqdGhpcykpCiAgICAgICAgICAgICByZXR1
cm4gU2ltcGxlTGluZXNQYXRoOwpAQCAtNjg3LDcgKzY4Nyw3IEBAIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjpsYXlvdXRJbmxpbmVDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVu
aXQmIHJlCiAgICAgfQogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0g
ICAgaWYgKGxpbmVMYXlvdXRQYXRoKCkgPT0gTEZDUGF0aCkgeworICAgIGlmIChsaW5lTGF5b3V0
UGF0aCgpID09IExheW91dEZvcm1hdHRpbmdDb250ZXh0UGF0aCkgewogICAgICAgICBsYXlvdXRM
RkNMaW5lcyhyZWxheW91dENoaWxkcmVuLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2lj
YWxCb3R0b20pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzU0OSw4ICszNTQ5LDggQEAg
dm9pZCBSZW5kZXJCbG9ja0Zsb3c6OnBhaW50SW5saW5lQ2hpbGRyZW4oUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW4KICAgICBBU1NFUlQoY2hpbGRyZW5JbmxpbmUoKSk7CiAK
ICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSAgICBpZiAobGZjTGluZUxh
eW91dCgpKSB7Ci0gICAgICAgIGxmY0xpbmVMYXlvdXQoKS0+cGFpbnQocGFpbnRJbmZvLCBwYWlu
dE9mZnNldCk7CisgICAgaWYgKGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgpKSB7
CisgICAgICAgIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgpLT5wYWludChwYWlu
dEluZm8sIHBhaW50T2Zmc2V0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAt
MzYzMCw3ICszNjMwLDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmludmFsaWRhdGVMaW5lTGF5
b3V0UGF0aCgpCiAgICAgICAgIEFTU0VSVCghc2ltcGxlTGluZUxheW91dCgpKTsKICAgICAgICAg
c2V0TGluZUxheW91dFBhdGgoVW5kZXRlcm1pbmVkUGF0aCk7CiAgICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIExGQ1BhdGg6IC8vIEZJWE1FOiBOb3QgYWxsIGNsaWVudHMgb2YgaW52YWxpZGF0ZUxp
bmVMYXlvdXRQYXRoKCkgYWN0dWFsbHkgbmVlZCB0byB3aXBlIHRoZSBsYXlvdXQuCisgICAgY2Fz
ZSBMYXlvdXRGb3JtYXR0aW5nQ29udGV4dFBhdGg6IC8vIEZJWE1FOiBOb3QgYWxsIGNsaWVudHMg
b2YgaW52YWxpZGF0ZUxpbmVMYXlvdXRQYXRoKCkgYWN0dWFsbHkgbmVlZCB0byB3aXBlIHRoZSBs
YXlvdXQuCiAgICAgY2FzZSBTaW1wbGVMaW5lc1BhdGg6CiAgICAgICAgIC8vIFRoZSBzaW1wbGUg
bGluZSBsYXlvdXQgbWF5IGhhdmUgYmVjb21lIGludmFsaWQuCiAgICAgICAgIG1fbGluZUxheW91
dCA9IFdURjo6TW9ub3N0YXRlKCk7CkBAIC0zNjcwLDE3ICszNjcwLDE3IEBAIHZvaWQgUmVuZGVy
QmxvY2tGbG93OjpsYXlvdXRTaW1wbGVMaW5lcyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91
dFVuaXQmIHJlcGFpCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiB2b2lk
IFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0TEZDTGluZXMoYm9vbCwgTGF5b3V0VW5pdCYgcmVwYWlu
dExvZ2ljYWxUb3AsIExheW91dFVuaXQmIHJlcGFpbnRMb2dpY2FsQm90dG9tKQogewotICAgIGlm
ICghbGZjTGluZUxheW91dCgpKQotICAgICAgICBtX2xpbmVMYXlvdXQgPSBtYWtlVW5pcXVlPExh
eW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dD4oKnRoaXMpOworICAgIGlmICghbGF5b3V0
Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0KCkpCisgICAgICAgIG1fbGluZUxheW91dCA9IG1h
a2VVbmlxdWU8TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ+KCp0aGlzKTsKIAotICAgIGF1
dG8mIGxmY0xpbmVMYXlvdXQgPSAqdGhpcy0+bGZjTGluZUxheW91dCgpOworICAgIGF1dG8mIGxh
eW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCA9ICp0aGlzLT5sYXlvdXRGb3JtYXR0aW5n
Q29udGV4dExpbmVMYXlvdXQoKTsKIAogICAgIGZvciAoYXV0byYgcmVuZGVyZXIgOiBjaGlsZHJl
bk9mVHlwZTxSZW5kZXJPYmplY3Q+KCp0aGlzKSkKICAgICAgICAgcmVuZGVyZXIuY2xlYXJOZWVk
c0xheW91dCgpOwogCi0gICAgbGZjTGluZUxheW91dC5sYXlvdXQoKTsKKyAgICBsYXlvdXRGb3Jt
YXR0aW5nQ29udGV4dExpbmVMYXlvdXQubGF5b3V0KCk7CiAKLSAgICBhdXRvIGNvbnRlbnRIZWln
aHQgPSBsZmNMaW5lTGF5b3V0LmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CisgICAgYXV0byBjb250
ZW50SGVpZ2h0ID0gbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNvbnRlbnRMb2dp
Y2FsSGVpZ2h0KCk7CiAgICAgYXV0byBjb250ZW50VG9wID0gYm9yZGVyQW5kUGFkZGluZ0JlZm9y
ZSgpOwogICAgIGF1dG8gY29udGVudEJvdHRvbSA9IGNvbnRlbnRUb3AgKyBjb250ZW50SGVpZ2h0
OwogICAgIGF1dG8gdG90YWxIZWlnaHQgPSBjb250ZW50Qm90dG9tICsgYm9yZGVyQW5kUGFkZGlu
Z0FmdGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKaW5k
ZXggNTk5OWE5ODU1ZTcuLmE0OTY0MzEyMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5oCkBAIC0zOCw4ICszOCw4IEBAIGNsYXNzIFJlbmRlck11bHRpQ29s
dW1uRmxvdzsKIGNsYXNzIFJlbmRlclJ1YnlSdW47CiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVCkKLW5hbWVzcGFjZSBMYXlvdXQgewotY2xhc3MgUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dDsKK25hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7CitjbGFzcyBMaW5lTGF5
b3V0OwogfQogI2VuZGlmCiAKQEAgLTM0NCw3ICszNDQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YXNMaW5lcygpIGNvbnN0OwogICAgIHZvaWQgaW52YWxpZGF0ZUxpbmVMYXlvdXRQYXRoKCkgZmlu
YWw7CiAKLSAgICBlbnVtIExpbmVMYXlvdXRQYXRoIHsgVW5kZXRlcm1pbmVkUGF0aCA9IDAsIFNp
bXBsZUxpbmVzUGF0aCwgTGluZUJveGVzUGF0aCwgTEZDUGF0aCwgRm9yY2VMaW5lQm94ZXNQYXRo
IH07CisgICAgZW51bSBMaW5lTGF5b3V0UGF0aCB7IFVuZGV0ZXJtaW5lZFBhdGggPSAwLCBTaW1w
bGVMaW5lc1BhdGgsIExpbmVCb3hlc1BhdGgsIExheW91dEZvcm1hdHRpbmdDb250ZXh0UGF0aCwg
Rm9yY2VMaW5lQm94ZXNQYXRoIH07CiAgICAgTGluZUxheW91dFBhdGggbGluZUxheW91dFBhdGgo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMaW5lTGF5b3V0UGF0aD4ocmVuZGVyQmxvY2tG
bG93TGluZUxheW91dFBhdGgoKSk7IH0KICAgICB2b2lkIHNldExpbmVMYXlvdXRQYXRoKExpbmVM
YXlvdXRQYXRoIHBhdGgpIHsgc2V0UmVuZGVyQmxvY2tGbG93TGluZUxheW91dFBhdGgocGF0aCk7
IH0KIApAQCAtMzY0LDggKzM2NCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBDb21wbGV4TGluZUxh
eW91dCogY29tcGxleExpbmVMYXlvdXQoKSBjb25zdDsKICAgICBDb21wbGV4TGluZUxheW91dCog
Y29tcGxleExpbmVMYXlvdXQoKTsKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVY
VCkKLSAgICBjb25zdCBMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQqIGxmY0xpbmVM
YXlvdXQoKSBjb25zdDsKLSAgICBMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQqIGxm
Y0xpbmVMYXlvdXQoKTsKKyAgICBjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dCog
bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0KCkgY29uc3Q7CisgICAgTGF5b3V0SW50
ZWdyYXRpb246OkxpbmVMYXlvdXQqIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgp
OwogI2VuZGlmCiAKICAgICB2b2lkIGVuc3VyZUxpbmVCb3hlcygpOwpAQCAtNTQ3LDcgKzU0Nyw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXlvdXRTaW1wbGVMaW5lcyhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQmIHJlcGFpbnRMb2dpY2FsVG9wLCBMYXlvdXRVbml0JiByZXBhaW50
TG9naWNhbEJvdHRvbSk7CiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
LSAgICBib29sIGhhc0xGQ0xpbmVMYXlvdXQoKSBjb25zdDsKKyAgICBib29sIGhhc0xheW91dEZv
cm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgpIGNvbnN0OwogICAgIHZvaWQgbGF5b3V0TEZDTGlu
ZXMoYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiByZXBhaW50TG9naWNhbFRvcCwg
TGF5b3V0VW5pdCYgcmVwYWludExvZ2ljYWxCb3R0b20pOwogI2VuZGlmCiAKQEAgLTU5Miw3ICs1
OTIsNyBAQCBwcml2YXRlOgogICAgICAgICBXVEY6Ok1vbm9zdGF0ZSwKICAgICAgICAgUmVmPFNp
bXBsZUxpbmVMYXlvdXQ6OkxheW91dD4sCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xp
bmVMYXlvdXQ+LAorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0SW50ZWdyYXRpb246Okxp
bmVMYXlvdXQ+LAogI2VuZGlmCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21wbGV4TGluZUxh
eW91dD4KICAgICA+IG1fbGluZUxheW91dDsKQEAgLTYzOCwxOSArNjM4LDE5IEBAIGlubGluZSBT
aW1wbGVMaW5lTGF5b3V0OjpMYXlvdXQqIFJlbmRlckJsb2NrRmxvdzo6c2ltcGxlTGluZUxheW91
dCgpCiB9CiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLWlubGluZSBi
b29sIFJlbmRlckJsb2NrRmxvdzo6aGFzTEZDTGluZUxheW91dCgpIGNvbnN0CitpbmxpbmUgYm9v
bCBSZW5kZXJCbG9ja0Zsb3c6Omhhc0xheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8c3RkOjp1bmlxdWVf
cHRyPExheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dD4+KG1fbGluZUxheW91dCk7Cisg
ICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8c3RkOjp1bmlxdWVfcHRyPExheW91dElu
dGVncmF0aW9uOjpMaW5lTGF5b3V0Pj4obV9saW5lTGF5b3V0KTsKIH0KIAotaW5saW5lIGNvbnN0
IExheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dCogUmVuZGVyQmxvY2tGbG93OjpsZmNM
aW5lTGF5b3V0KCkgY29uc3QKK2lubGluZSBjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxh
eW91dCogUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQo
KSBjb25zdAogewotICAgIHJldHVybiBoYXNMRkNMaW5lTGF5b3V0KCkgPyBXVEY6OmdldDxzdGQ6
OnVuaXF1ZV9wdHI8TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Pj4obV9saW5lTGF5
b3V0KS5nZXQoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGhhc0xheW91dEZvcm1hdHRpbmdDb250
ZXh0TGluZUxheW91dCgpID8gV1RGOjpnZXQ8c3RkOjp1bmlxdWVfcHRyPExheW91dEludGVncmF0
aW9uOjpMaW5lTGF5b3V0Pj4obV9saW5lTGF5b3V0KS5nZXQoKSA6IG51bGxwdHI7CiB9CiAKLWlu
bGluZSBMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQqIFJlbmRlckJsb2NrRmxvdzo6
bGZjTGluZUxheW91dCgpCitpbmxpbmUgTGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQqIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0KCkKIHsKLSAg
ICByZXR1cm4gaGFzTEZDTGluZUxheW91dCgpID8gV1RGOjpnZXQ8c3RkOjp1bmlxdWVfcHRyPExh
eW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dD4+KG1fbGluZUxheW91dCkuZ2V0KCkgOiBu
dWxscHRyOworICAgIHJldHVybiBoYXNMYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQo
KSA/IFdURjo6Z2V0PHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91
dD4+KG1fbGluZUxheW91dCkuZ2V0KCkgOiBudWxscHRyOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVMYXlvdXRUcmF2ZXJzYWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dFRyYXZlcnNhbC5jcHAK
aW5kZXggNTA1MjBjOWYzMTYuLjBkYzA2MzU3N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0VHJhdmVyc2FsLmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmVMYXlvdXRUcmF2ZXJzYWwu
aCIKIAotI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCIKKyNpbmNsdWRlICJM
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCIKICNpbmNsdWRlICJSZW5kZXJMaW5lQnJlYWsu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODUsOCArODUsOCBAQCBUZXh0Qm94SXRlcmF0
b3IgZmlyc3RUZXh0Qm94Rm9yKGNvbnN0IFJlbmRlclRleHQmIHRleHQpCiAgICAgfQogCiAjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgaWYgKGF1dG8qIGxmY0xpbmVM
YXlvdXQgPSBmbG93LmxmY0xpbmVMYXlvdXQoKSkKLSAgICAgICAgcmV0dXJuIGxmY0xpbmVMYXlv
dXQtPnRleHRCb3hlc0Zvcih0ZXh0KTsKKyAgICBpZiAoYXV0byogbGF5b3V0Rm9ybWF0dGluZ0Nv
bnRleHRMaW5lTGF5b3V0ID0gZmxvdy5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQo
KSkKKyAgICAgICAgcmV0dXJuIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC0+dGV4
dEJveGVzRm9yKHRleHQpOwogI2VuZGlmCiAKICAgICByZXR1cm4geyBDb21wbGV4UGF0aCB7IHRl
eHQuZmlyc3RUZXh0Qm94KCkgfSB9OwpAQCAtMTM5LDggKzEzOSw4IEBAIEVsZW1lbnRCb3hJdGVy
YXRvciBlbGVtZW50Qm94Rm9yKGNvbnN0IFJlbmRlckxpbmVCcmVhayYgcmVuZGVyRWxlbWVudCkK
ICAgICB9CiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSAgICBpZiAo
YXV0byogbGZjTGluZUxheW91dCA9IGZsb3cubGZjTGluZUxheW91dCgpKQotICAgICAgICByZXR1
cm4gbGZjTGluZUxheW91dC0+ZWxlbWVudEJveEZvcihyZW5kZXJFbGVtZW50KTsKKyAgICBpZiAo
YXV0byogbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0ID0gZmxvdy5sYXlvdXRGb3Jt
YXR0aW5nQ29udGV4dExpbmVMYXlvdXQoKSkKKyAgICAgICAgcmV0dXJuIGxheW91dEZvcm1hdHRp
bmdDb250ZXh0TGluZUxheW91dC0+ZWxlbWVudEJveEZvcihyZW5kZXJFbGVtZW50KTsKICNlbmRp
ZgogCiAgICAgcmV0dXJuIHsgQ29tcGxleFBhdGgocmVuZGVyRWxlbWVudC5pbmxpbmVCb3hXcmFw
cGVyKCkpIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>