<?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>189074</bug_id>
          
          <creation_ts>2018-08-28 21:07:21 -0700</creation_ts>
          <short_desc>[LFC][Floating] Introduce FloatBox, a FloatAvoider subclass.</short_desc>
          <delta_ts>2018-08-29 07:51:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</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>1454704</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-28 21:07:21 -0700</bug_when>
    <thetext>FloatAvoider is a generic class
FloatBox is a float avoider that is also a float box</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454706</commentid>
    <comment_count>1</comment_count>
      <attachid>348388</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-08-28 21:14:01 -0700</bug_when>
    <thetext>Created attachment 348388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454765</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-29 07:49:43 -0700</bug_when>
    <thetext>Committed r235460: &lt;https://trac.webkit.org/changeset/235460&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454766</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-29 07:51:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/43841444&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348388</attachid>
            <date>2018-08-28 21:14:01 -0700</date>
            <delta_ts>2018-08-29 07:21:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189074-20180828211401.patch</filename>
            <type>text/plain</type>
            <size>23969</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4NjFhYTE2MDVkYjdm
ZWQ2MjhhZDBjZTgxYjFhMGY1MzFlMTY1Ni4uYzhlOTNiYjU0ZjhmNjg2MjEwYTlmNDYzYzZmZDQz
YzRjY2VhNmEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA4LTI4ICBBbGFu
IEtpbnNsZXkgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRmxvYXRpbmddIElu
dHJvZHVjZSBGbG9hdEJveCwgYSBGbG9hdEF2b2lkZXIgc3ViY2xhc3MuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkwNzQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGbG9hdEJveCBpcyBhIGZsb2F0IGF2
b2lkZXIgYW5kIGEgZmxvYXQgcG9zaXRpb25lZCBib3ggYXMgd2VsbC4KKyAgICAgICAgVGhpcyBp
cyBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIGZsb2F0IGF2b2lkYW5jZSBmZWF0dXJlIHdoZXJlIGZv
cm1hdHRpbmcgY29udGV4dCByb290IGJveGVzIGF2b2lkIGV4aXN0aW5nIGZsb2F0cy4KKworICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oOgorICAg
ICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6RmxvYXRBdm9pZGVyOjpGbG9hdEF2b2lkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpGbG9hdEF2b2lkZXI6OnNldEhvcml6b250YWxDb25zdHJhaW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6c2V0VmVydGljYWxDb25zdHJhaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9pZGVyOjpob3Jpem9udGFsUG9zaXRp
b25DYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdEF2b2lkZXI6OnZl
cnRpY2FsUG9zaXRpb25DYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9h
dEF2b2lkZXI6OnJlc2V0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9h
dEF2b2lkZXI6OnJlY3RJbkNvbnRhaW5pbmdCbG9jayBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6aW5pdGlhbGl6ZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9pZGVyOjppc0xlZnRBbGlnbmVkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9pZGVyOjpyZWN0
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9pZGVy
OjpyZXNldEhvcml6b250YWxDb25zdHJhaW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6aW5pdGlhbFZlcnRpY2FsUG9zaXRpb24gY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6cmVjdCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6aXNMZWZ0QWxpZ25lZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6aW5pdGlhbFZlcnRpY2FsUG9zaXRp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdEF2b2lkZXI6OmZsb2F0
aW5nU3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdEF2b2lkZXI6
OmxheW91dEJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRl
cjo6ZGlzcGxheUJveCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdEJveC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVy
LmguCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0Qm94OjpGbG9hdEJveCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0Qm94Ojpob3Jpem9udGFsUG9zaXRpb25DYW5kaWRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdEJveDo6dmVydGljYWxQb3NpdGlv
bkNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0Qm94Ojppbml0aWFs
VmVydGljYWxQb3NpdGlvbiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zsb2F0cy9GbG9hdEJv
eC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRl
ci5oLgorICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0Ojpwb3NpdGlvbkZvckZsb2F0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0OjpmbG9hdGlu
Z1Bvc2l0aW9uIGNvbnN0KToKKwogMjAxOC0wOC0yOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdW0Zsb2F0aW5nXSBSZW1vdmUgcmVkdW5kYW50IEZsb2F0
QXZvaWRlciBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDgwYTc0ZTRiNTA2ZjdlOTRhNTgz
ZDM3NDU4YzhhYWIwZDJkZWJiMGEuLmFhOGNjZjcxNDNiZjNlNjI2NGI1MTQwNjczZjc0NTQ0MTZi
YmI0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xMjMwLDYgKzEyMzAsNyBAQCBsYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrSW52YWxpZGF0aW9uLmNwcAogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guY3Bw
CiBsYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5jcHAKK2xheW91dC9mbG9hdHMvRmxvYXRCb3gu
Y3BwCiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKIGxheW91dC9mbG9hdHMvRmxv
YXRpbmdTdGF0ZS5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGI2ZGY3NDhhNmQxOTA0ODViMThjM2Q1OGNiNTE4M2JiYWRiODJmODku
LjhjMDMyM2NlODUyMzVhMmVjZGEzYzg2NTliMDE1ODVjYjg0YTlhN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5NzAsNiAr
MTk3MCw3IEBACiAJCTZFRDhDMzdBMTgzQkZGOEMwMDlFNTNCRCAvKiBCb3hTaGFwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVEOEMzNzgxODNCRkY4
QzAwOUU1M0JEIC8qIEJveFNoYXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNkVFOEE3NzMxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250
ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkVFOEE3NzExMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRl
cy5oICovOyB9OwogCQk2RjIyMkI3NjFBQjUyRDhBMDA5NDY1MUEgLyogV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkYyMjJCNzUxQUI1MkQ4QTAwOTQ2NTFBIC8qIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlLmNwcCAqLzsgfTsKKwkJNkYzRTFGNjIyMTM2MTQyMDAwQTY1QTA4IC8qIEZsb2F0Qm94Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjNFMUY2MTIx
MzYxNDE3MDBBNjVBMDggLyogRmxvYXRCb3guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDNjIwOEMyOTU3MDAyRjI5QUIgLyogTGF5b3V0
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkY3Q0EzQzQyMDhDMjk1NjAwMkYyOUFCIC8qIExheW91dENvbnRleHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDQTIwOEMyQjJFMDAy
RjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZGOTk1QTE1MUE3MDc1NjIwMEE3MzVGNCAvKiBXZWJHTFN5bmMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY5OTVBMTMx
QTcwNzU2MjAwQTczNUY0IC8qIFdlYkdMU3luYy5jcHAgKi87IH07CkBAIC04OTI0LDYgKzg5MjUs
OCBAQAogCQk2RjA4MzBERjIwQjQ2OTUxMDA4QTk0NUIgLyogQmxvY2tGb3JtYXR0aW5nQ29udGV4
dEdlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2NrRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGMjIyQjc0MUFCNTJE
NjQwMDk0NjUxQSAvKiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2RjIyMkI3NTFBQjUyRDhBMDA5NDY1MUEgLyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RjNFMUY1
RjIxMzYxNDE3MDBBNjVBMDggLyogRmxvYXRCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxv
YXRCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RjNFMUY2MTIxMzYxNDE3
MDBBNjVBMDggLyogRmxvYXRCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRCb3guaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8qIExheW91
dFVuaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFVuaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRDb250ZXh0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExheW91dENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkY3Q0EzQzUyMDhDMjk1NjAwMkYyOUFCIC8qIExheW91dENvbnRleHQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGF5b3V0Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xOTQ2Myw2ICsxOTQ2Niw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk2RkZEQzQz
RTIxMkVGRjE2MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmNwcCAqLywKIAkJCQk2RkZEQzQ0MDIx
MkVGRjE2MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmggKi8sCisJCQkJNkYzRTFGNUYyMTM2MTQx
NzAwQTY1QTA4IC8qIEZsb2F0Qm94LmNwcCAqLywKKwkJCQk2RjNFMUY2MTIxMzYxNDE3MDBBNjVB
MDggLyogRmxvYXRCb3guaCAqLywKIAkJCQkxMTVDRkE4NTIwOEI5MDY2MDAxRTY5OTEgLyogRmxv
YXRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQkxMTVDRkE4NDIwOEI5MDY2MDAxRTY5OTEgLyogRmxv
YXRpbmdDb250ZXh0LmggKi8sCiAJCQkJMTE1Q0ZBODEyMDhCOEVEQTAwMUU2OTkxIC8qIEZsb2F0
aW5nU3RhdGUuY3BwICovLApAQCAtMjc4NDksNiArMjc4NTQsNyBAQAogCQkJCTM3MkMwMEQ5MTI5
NjE5RjgwMDVDOTU3NSAvKiBGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDRkYw
NEYwQTE1NEYwOTAwMEE0MjM0IC8qIEZpeGVkVGFibGVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZGRkRDNDQyMjEyRUZGMTcwMEE5Q0E5MSAvKiBGbG9hdEF2b2lkZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTZGM0UxRjYyMjEzNjE0MjAwMEE2NUEwOCAvKiBGbG9hdEJveC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwNzNCQUEwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTE1Q0ZBODYyMDhCOTA2NjAwMUU2OTkxIC8qIEZsb2F0aW5n
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8q
IEZsb2F0aW5nT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaAppbmRleCBjOTQ1YjQ0NTBiNjAwODQxNzI2NjMy
MTcxMzIzZWFjZTQzODBlODNmLi5lNThmNDg2OWNiMmQ4ZTVhMGY3NmRlZmVmYTA2Y2NkNmJhMmNk
MjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxh
eUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94
LmgKQEAgLTM2LDggKzM2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVuZGVyU3R5
bGU7CiAKIG5hbWVzcGFjZSBMYXlvdXQgewotY2xhc3MgRmxvYXRBdm9pZGVyOwogY2xhc3MgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDsKK2NsYXNzIEZsb2F0QXZvaWRlcjsKK2NsYXNzIEZsb2F0Qm94
OwogY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQ7CiBjbGFzcyBGbG9hdGluZ0NvbnRleHQ7CiBjbGFz
cyBMYXlvdXRDb250ZXh0OwpAQCAtNDgsOCArNDksOSBAQCBuYW1lc3BhY2UgRGlzcGxheSB7CiBj
bGFzcyBCb3ggewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQm94KTsKIHB1YmxpYzoKLSAg
ICBmcmllbmQgY2xhc3MgTGF5b3V0OjpGbG9hdEF2b2lkZXI7CiAgICAgZnJpZW5kIGNsYXNzIExh
eW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDsKKyAgICBmcmllbmQgY2xhc3MgTGF5b3V0OjpG
bG9hdEF2b2lkZXI7CisgICAgZnJpZW5kIGNsYXNzIExheW91dDo6RmxvYXRCb3g7CiAgICAgZnJp
ZW5kIGNsYXNzIExheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ7CiAgICAgZnJpZW5kIGNsYXNzIExh
eW91dDo6RmxvYXRpbmdDb250ZXh0OwogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXQ6OkxheW91dENv
bnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZv
aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5jcHAK
aW5kZXggYjI4NDE5OWQ5NGQ3NmY4NTU2YjkzZmYwMzQxOGY4OGMzMGU4ZmZjOC4uM2Y3OWRmNzkw
YmRmOWU5ZDU5YmJlOTRjMWUwYjU5MThmMDc5ZTdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmNwcApAQCAtNDMsNjggKzQzLDU0IEBAIEZsb2F0QXZv
aWRlcjo6RmxvYXRBdm9pZGVyKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBGbG9hdGluZ1N0
YXRlJiBmbG9hdGluZ1N0CiAgICAgLCBtX2Zsb2F0aW5nU3RhdGUoZmxvYXRpbmdTdGF0ZSkKICAg
ICAsIG1fYWJzb2x1dGVEaXNwbGF5Qm94KEZvcm1hdHRpbmdDb250ZXh0OjptYXBCb3hUb0FuY2Vz
dG9yKGxheW91dENvbnRleHQsIGxheW91dEJveCwgZG93bmNhc3Q8Q29udGFpbmVyPihmbG9hdGlu
Z1N0YXRlLnJvb3QoKSkpKQogICAgICwgbV9jb250YWluaW5nQmxvY2tBYnNvbHV0ZURpc3BsYXlC
b3goRm9ybWF0dGluZ0NvbnRleHQ6Om1hcEJveFRvQW5jZXN0b3IobGF5b3V0Q29udGV4dCwgKmxh
eW91dEJveC5jb250YWluaW5nQmxvY2soKSwgZG93bmNhc3Q8Q29udGFpbmVyPihmbG9hdGluZ1N0
YXRlLnJvb3QoKSkpKQorICAgICwgbV9pbml0aWFsVmVydGljYWxQb3NpdGlvbihtX2Fic29sdXRl
RGlzcGxheUJveC50b3AoKSkKIHsKLSAgICBpbml0aWFsaXplUG9zaXRpb24oKTsKIH0KIAotdm9p
ZCBGbG9hdEF2b2lkZXI6OmluaXRpYWxpemVQb3NpdGlvbigpCit2b2lkIEZsb2F0QXZvaWRlcjo6
c2V0SG9yaXpvbnRhbENvbnN0cmFpbnRzKEhvcml6b250YWxDb25zdHJhaW50cyBob3Jpem9udGFs
Q29uc3RyYWludHMpCiB7Ci0gICAgbV9hYnNvbHV0ZURpc3BsYXlCb3guc2V0VG9wTGVmdCh7IGlu
aXRpYWxIb3Jpem9udGFsUG9zaXRpb24oKSwgaW5pdGlhbFZlcnRpY2FsUG9zaXRpb24oKSB9KTsK
LX0KKyAgICBpZiAoKGlzTGVmdEFsaWduZWQoKSAmJiAhaG9yaXpvbnRhbENvbnN0cmFpbnRzLmxl
ZnQpIHx8ICghaXNMZWZ0QWxpZ25lZCgpICYmICFob3Jpem9udGFsQ29uc3RyYWludHMucmlnaHQp
KSB7CisgICAgICAgIC8vIE5vIGNvbnN0cmFpbnRzPyBTZXQgaG9yaXpvbnRhbCBwb3NpdGlvbiBi
YWNrIHRvIHRoZSBpbml0YWwgdmFsdWUuCisgICAgICAgIG1fYWJzb2x1dGVEaXNwbGF5Qm94LnNl
dExlZnQoaW5pdGlhbEhvcml6b250YWxQb3NpdGlvbigpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAotYm9vbCBGbG9hdEF2b2lkZXI6OmlzTGVmdEFsaWduZWQoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2xheW91dEJveC0+aXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCk7Ci19CisgICAgYXV0
byBjb25zdHJhaW5XaXRoQ29udGFpbmluZ0Jsb2NrID0gWyZdKGF1dG8gbGVmdCkgLT4gUG9zaXRp
b25JbkNvbnRleHRSb290IHsKKyAgICAgICAgLy8gSG9yaXpvbnRhbCBwb3NpdGlvbiBpcyBjb25z
dHJhaW5lZCBieSB0aGUgY29udGFpbmluZyBibG9jaydzIGNvbnRlbnQgYm94LgorICAgICAgICAv
LyBDb21wdXRlIHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIGZvciB0aGUgbmV3IGZsb2F0aW5nIGJ5
IHRha2luZyBib3RoIHRoZSBjb250aW5pbmcgYmxvY2sgYW5kIHRoZSBjdXJyZW50IGxlZnQvcmln
aHQgZmxvYXRzIGludG8gYWNjb3VudC4KKyAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tDb250
ZW50Qm94TGVmdCA9IG1fY29udGFpbmluZ0Jsb2NrQWJzb2x1dGVEaXNwbGF5Qm94LmxlZnQoKSAr
IG1fY29udGFpbmluZ0Jsb2NrQWJzb2x1dGVEaXNwbGF5Qm94LmNvbnRlbnRCb3hMZWZ0KCk7Cisg
ICAgICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrQ29udGVudEJveFJpZ2h0ID0gY29udGFpbmluZ0Js
b2NrQ29udGVudEJveExlZnQgKyBtX2NvbnRhaW5pbmdCbG9ja0Fic29sdXRlRGlzcGxheUJveC5j
b250ZW50Qm94V2lkdGgoKTsKKyAgICAgICAgLy8gQWxpZ24gaXQgd2l0aCB0aGUgY29udGFpbmlu
ZyBibG9jaydzIGxlZnQgZWRnZSBmaXJzdC4KKyAgICAgICAgbGVmdCA9IHN0ZDo6bWF4KGNvbnRh
aW5pbmdCbG9ja0NvbnRlbnRCb3hMZWZ0ICsgbV9hYnNvbHV0ZURpc3BsYXlCb3gubWFyZ2luTGVm
dCgpLCBsZWZ0KTsKKyAgICAgICAgLy8gTWFrZSBzdXJlIGl0IGRvZXMgbm90IG92ZXJmbG93IHRo
ZSBjb250YWluaW5nIGJsb2NrIG9uIHRoZSByaWdodC4KKyAgICAgICAgYXV0byBtYXJnaW5Cb3hT
aXplID0gbV9hYnNvbHV0ZURpc3BsYXlCb3gubWFyZ2luQm94KCkud2lkdGgoKTsKKyAgICAgICAg
bGVmdCA9IHN0ZDo6bWluKGxlZnQsIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hSaWdodCAtIG1h
cmdpbkJveFNpemUgKyBtX2Fic29sdXRlRGlzcGxheUJveC5tYXJnaW5MZWZ0KCkpOworCisgICAg
ICAgIHJldHVybiBsZWZ0OworICAgIH07CiAKLURpc3BsYXk6OkJveDo6UmVjdCBGbG9hdEF2b2lk
ZXI6OnJlY3QoKSBjb25zdAotewotICAgIHJldHVybiBtX2Fic29sdXRlRGlzcGxheUJveC5yZWN0
V2l0aE1hcmdpbigpOworICAgIGF1dG8gcG9zaXRpb25DYW5kaWRhdGUgPSBob3Jpem9udGFsUG9z
aXRpb25DYW5kaWRhdGUoaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICBtX2Fic29sdXRlRGlz
cGxheUJveC5zZXRMZWZ0KGNvbnN0cmFpbldpdGhDb250YWluaW5nQmxvY2socG9zaXRpb25DYW5k
aWRhdGUpKTsKIH0KIAogdm9pZCBGbG9hdEF2b2lkZXI6OnNldFZlcnRpY2FsQ29uc3RyYWludChQ
b3NpdGlvbkluQ29udGV4dFJvb3QgdmVydGljYWxDb25zdHJhaW50KQogewotICAgIG1fYWJzb2x1
dGVEaXNwbGF5Qm94LnNldFRvcCh2ZXJ0aWNhbENvbnN0cmFpbnQgKyBtX2Fic29sdXRlRGlzcGxh
eUJveC5tYXJnaW5Ub3AoKSk7CisgICAgbV9hYnNvbHV0ZURpc3BsYXlCb3guc2V0VG9wKHZlcnRp
Y2FsUG9zaXRpb25DYW5kaWRhdGUodmVydGljYWxDb25zdHJhaW50KSk7CiB9CiAKLXZvaWQgRmxv
YXRBdm9pZGVyOjpzZXRIb3Jpem9udGFsQ29uc3RyYWludHMoSG9yaXpvbnRhbENvbnN0cmFpbnRz
IGhvcml6b250YWxDb25zdHJhaW50cykKK1Bvc2l0aW9uSW5Db250ZXh0Um9vdCBGbG9hdEF2b2lk
ZXI6Omhvcml6b250YWxQb3NpdGlvbkNhbmRpZGF0ZShIb3Jpem9udGFsQ29uc3RyYWludHMgaG9y
aXpvbnRhbENvbnN0cmFpbnRzKQogewotICAgIGlmICgoaXNMZWZ0QWxpZ25lZCgpICYmICFob3Jp
em9udGFsQ29uc3RyYWludHMubGVmdCkgfHwgKCFpc0xlZnRBbGlnbmVkKCkgJiYgIWhvcml6b250
YWxDb25zdHJhaW50cy5yaWdodCkpIHsKLSAgICAgICAgcmVzZXRIb3Jpem9udGFsQ29uc3RyYWlu
dHMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gcG9zaXRpb25DYW5kaWRh
dGUgPSBpc0xlZnRBbGlnbmVkKCkgPyAqaG9yaXpvbnRhbENvbnN0cmFpbnRzLmxlZnQgOiAqaG9y
aXpvbnRhbENvbnN0cmFpbnRzLnJpZ2h0IC0gcmVjdCgpLndpZHRoKCk7Ci0gICAgLy8gSG9yaXpv
bnRhbCBwb3NpdGlvbiBpcyBjb25zdHJhaW5lZCBieSB0aGUgY29udGFpbmluZyBibG9jaydzIGNv
bnRlbnQgYm94LgotICAgIC8vIENvbXB1dGUgdGhlIGhvcml6b250YWwgcG9zaXRpb24gZm9yIHRo
ZSBuZXcgZmxvYXRpbmcgYnkgdGFraW5nIGJvdGggdGhlIGNvbnRpbmluZyBibG9jayBhbmQgdGhl
IGN1cnJlbnQgbGVmdC9yaWdodCBmbG9hdHMgaW50byBhY2NvdW50LgotICAgIGF1dG8gY29udGFp
bmluZ0Jsb2NrQ29udGVudEJveExlZnQgPSBtX2NvbnRhaW5pbmdCbG9ja0Fic29sdXRlRGlzcGxh
eUJveC5sZWZ0KCkgKyBtX2NvbnRhaW5pbmdCbG9ja0Fic29sdXRlRGlzcGxheUJveC5jb250ZW50
Qm94TGVmdCgpOwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrQ29udGVudEJveFJpZ2h0ID0gY29u
dGFpbmluZ0Jsb2NrQ29udGVudEJveExlZnQgKyBtX2NvbnRhaW5pbmdCbG9ja0Fic29sdXRlRGlz
cGxheUJveC5jb250ZW50Qm94V2lkdGgoKTsKLQotICAgIHBvc2l0aW9uQ2FuZGlkYXRlICs9IG1f
YWJzb2x1dGVEaXNwbGF5Qm94Lm1hcmdpbkxlZnQoKTsKLSAgICAvLyBBbGlnbiBpdCB3aXRoIHRo
ZSBjb250YWluaW5nIGJsb2NrJ3MgbGVmdCBlZGdlIGZpcnN0LgotICAgIHBvc2l0aW9uQ2FuZGlk
YXRlID0gc3RkOjptYXgoY29udGFpbmluZ0Jsb2NrQ29udGVudEJveExlZnQgKyBtX2Fic29sdXRl
RGlzcGxheUJveC5tYXJnaW5MZWZ0KCksIHBvc2l0aW9uQ2FuZGlkYXRlKTsKLSAgICAvLyBNYWtl
IHN1cmUgaXQgZG9lcyBub3Qgb3ZlcmZsb3cgdGhlIGNvbnRhaW5pbmcgYmxvY2sgb24gdGhlIHJp
Z2h0LgotICAgIGF1dG8gbWFyZ2luQm94U2l6ZSA9IG1fYWJzb2x1dGVEaXNwbGF5Qm94Lm1hcmdp
bkJveCgpLndpZHRoKCk7Ci0gICAgcG9zaXRpb25DYW5kaWRhdGUgPSBzdGQ6Om1pbihwb3NpdGlv
bkNhbmRpZGF0ZSwgY29udGFpbmluZ0Jsb2NrQ29udGVudEJveFJpZ2h0IC0gbWFyZ2luQm94U2l6
ZSArIG1fYWJzb2x1dGVEaXNwbGF5Qm94Lm1hcmdpbkxlZnQoKSk7Ci0KLSAgICBtX2Fic29sdXRl
RGlzcGxheUJveC5zZXRMZWZ0KHBvc2l0aW9uQ2FuZGlkYXRlKTsKKyAgICByZXR1cm4gaXNMZWZ0
QWxpZ25lZCgpID8gKmhvcml6b250YWxDb25zdHJhaW50cy5sZWZ0IDogKmhvcml6b250YWxDb25z
dHJhaW50cy5yaWdodCAtIHJlY3QoKS53aWR0aCgpOwogfQogCi12b2lkIEZsb2F0QXZvaWRlcjo6
cmVzZXRIb3Jpem9udGFsQ29uc3RyYWludHMoKQorUG9zaXRpb25JbkNvbnRleHRSb290IEZsb2F0
QXZvaWRlcjo6dmVydGljYWxQb3NpdGlvbkNhbmRpZGF0ZShQb3NpdGlvbkluQ29udGV4dFJvb3Qg
dmVydGljYWxDb25zdHJhaW50KQogewotICAgIG1fYWJzb2x1dGVEaXNwbGF5Qm94LnNldExlZnQo
aW5pdGlhbEhvcml6b250YWxQb3NpdGlvbigpKTsKKyAgICByZXR1cm4gdmVydGljYWxDb25zdHJh
aW50OwogfQogCi1Qb3NpdGlvbkluQ29udGV4dFJvb3QgRmxvYXRBdm9pZGVyOjppbml0aWFsVmVy
dGljYWxQb3NpdGlvbigpIGNvbnN0Cit2b2lkIEZsb2F0QXZvaWRlcjo6cmVzZXRQb3NpdGlvbigp
CiB7Ci0gICAgLy8gSW5jb21pbmcgZmxvYXQgY2Fubm90IGJlIHBsYWNlZCBoaWdoZXIgdGhhbiBl
eGlzdGluZyBmbG9hdHMgKG1hcmdpbiBib3ggb2YgdGhlIGxhc3QgZmxvYXQpLgotICAgIC8vIFRh
a2UgdGhlIHN0YXRpYyBwb3NpdGlvbiAod2hlcmUgdGhlIGJveCB3b3VsZCBnbyBpZiBpdCB3YXNu
J3QgZmxvYXRpbmcpIGFuZCBhZGp1c3QgaXQgd2l0aCB0aGUgbGFzdCBmbG9hdC4KLSAgICBhdXRv
IHRvcCA9IG1fYWJzb2x1dGVEaXNwbGF5Qm94LnJlY3RXaXRoTWFyZ2luKCkudG9wKCk7Ci0gICAg
aWYgKGF1dG8gbGFzdEZsb2F0ID0gbV9mbG9hdGluZ1N0YXRlLmxhc3QoKSkKLSAgICAgICAgdG9w
ID0gc3RkOjptYXgodG9wLCBsYXN0RmxvYXQtPnJlY3RXaXRoTWFyZ2luKCkudG9wKCkpOwotICAg
IHRvcCArPSBtX2Fic29sdXRlRGlzcGxheUJveC5tYXJnaW5Ub3AoKTsKLQotICAgIHJldHVybiB0
b3A7CisgICAgbV9hYnNvbHV0ZURpc3BsYXlCb3guc2V0VG9wTGVmdCh7IGluaXRpYWxIb3Jpem9u
dGFsUG9zaXRpb24oKSwgaW5pdGlhbFZlcnRpY2FsUG9zaXRpb24oKSB9KTsKIH0KIAogUG9zaXRp
b25JbkNvbnRleHRSb290IEZsb2F0QXZvaWRlcjo6aW5pdGlhbEhvcml6b250YWxQb3NpdGlvbigp
IGNvbnN0CkBAIC0xMjIsNyArMTA4LDcgQEAgUG9zaXRpb25JbkNvbnRleHRSb290IEZsb2F0QXZv
aWRlcjo6aW5pdGlhbEhvcml6b250YWxQb3NpdGlvbigpIGNvbnN0CiBEaXNwbGF5OjpCb3g6OlJl
Y3QgRmxvYXRBdm9pZGVyOjpyZWN0SW5Db250YWluaW5nQmxvY2soKSBjb25zdAogewogICAgIC8v
IEZyb20gZm9ybWF0dGluZyByb290IGNvb3JkaW5hdGUgc3lzdGVtIGJhY2sgdG8gY29udGFpbmlu
ZyBibG9jaydzLgotICAgIGlmIChtX2xheW91dEJveC0+Y29udGFpbmluZ0Jsb2NrKCkgPT0gJm1f
ZmxvYXRpbmdTdGF0ZS5yb290KCkpCisgICAgaWYgKGxheW91dEJveCgpLmNvbnRhaW5pbmdCbG9j
aygpID09ICZmbG9hdGluZ1N0YXRlKCkucm9vdCgpKQogICAgICAgICByZXR1cm4gbV9hYnNvbHV0
ZURpc3BsYXlCb3gucmVjdCgpOwogCiAgICAgcmV0dXJuIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5oCmluZGV4IGU5Y2E0MTUwNmMwMjM3ZGE1ODExZGQzOTM1
NzIzZjQ3ZWVmNGUzMTcuLjU1NTYyZWEwMDE0NjA0MmViOGNjMjcxMzgyY2YzZTM1NjI5Y2MxZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaApAQCAtMjgs
NiArMjgsNyBAQAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCiAjaW5j
bHVkZSAiRGlzcGxheUJveC5oIgorI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxh
eW91dFVuaXQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KQEAgLTM2LDcgKzM3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3Bh
Y2UgTGF5b3V0IHsKIAotY2xhc3MgQm94OwogY2xhc3MgRmxvYXRpbmdTdGF0ZTsKIGNsYXNzIExh
eW91dENvbnRleHQ7CiAKQEAgLTQ0LDggKzQ0LDkgQEAgY2xhc3MgRmxvYXRBdm9pZGVyIHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZsb2F0QXZvaWRlcik7CiBwdWJsaWM6CiAgICAgRmxv
YXRBdm9pZGVyKGNvbnN0IEJveCYsIGNvbnN0IEZsb2F0aW5nU3RhdGUmLCBjb25zdCBMYXlvdXRD
b250ZXh0Jik7CisgICAgdmlydHVhbCB+RmxvYXRBdm9pZGVyKCkgPSBkZWZhdWx0OwogCi0gICAg
RGlzcGxheTo6Qm94OjpSZWN0IHJlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIERpc3BsYXk6OkJv
eDo6UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9hYnNvbHV0ZURpc3BsYXlCb3gucmVjdCgp
OyB9CiAgICAgRGlzcGxheTo6Qm94OjpSZWN0IHJlY3RJbkNvbnRhaW5pbmdCbG9jaygpIGNvbnN0
OwogCiAgICAgc3RydWN0IEhvcml6b250YWxDb25zdHJhaW50cyB7CkBAIC01NSwxOSArNTYsMjgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0SG9yaXpvbnRhbENvbnN0cmFpbnRzKEhvcml6b250YWxD
b25zdHJhaW50cyk7CiAgICAgdm9pZCBzZXRWZXJ0aWNhbENvbnN0cmFpbnQoUG9zaXRpb25JbkNv
bnRleHRSb290KTsKIAotcHJpdmF0ZToKLSAgICBib29sIGlzTGVmdEFsaWduZWQoKSBjb25zdDsK
KyAgICB2b2lkIHJlc2V0UG9zaXRpb24oKTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgYm9v
bCBpc0xlZnRBbGlnbmVkKCkgY29uc3QgeyByZXR1cm4gbGF5b3V0Qm94KCkuc3R5bGUoKS5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCk7IH0KKyAgICB2aXJ0dWFsIFBvc2l0aW9uSW5Db250ZXh0Um9v
dCBpbml0aWFsSG9yaXpvbnRhbFBvc2l0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBQb3NpdGlv
bkluQ29udGV4dFJvb3QgaW5pdGlhbFZlcnRpY2FsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBt
X2luaXRpYWxWZXJ0aWNhbFBvc2l0aW9uOyB9CiAKLSAgICB2b2lkIGluaXRpYWxpemVQb3NpdGlv
bigpOwotICAgIFBvc2l0aW9uSW5Db250ZXh0Um9vdCBpbml0aWFsSG9yaXpvbnRhbFBvc2l0aW9u
KCkgY29uc3Q7Ci0gICAgUG9zaXRpb25JbkNvbnRleHRSb290IGluaXRpYWxWZXJ0aWNhbFBvc2l0
aW9uKCkgY29uc3Q7CiAgICAgdm9pZCByZXNldEhvcml6b250YWxDb25zdHJhaW50cygpOwogCisg
ICAgdmlydHVhbCBQb3NpdGlvbkluQ29udGV4dFJvb3QgaG9yaXpvbnRhbFBvc2l0aW9uQ2FuZGlk
YXRlKEhvcml6b250YWxDb25zdHJhaW50cyk7CisgICAgdmlydHVhbCBQb3NpdGlvbkluQ29udGV4
dFJvb3QgdmVydGljYWxQb3NpdGlvbkNhbmRpZGF0ZShQb3NpdGlvbkluQ29udGV4dFJvb3QpOwor
CisgICAgY29uc3QgRmxvYXRpbmdTdGF0ZSYgZmxvYXRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZmxvYXRpbmdTdGF0ZTsgfQorICAgIGNvbnN0IEJveCYgbGF5b3V0Qm94KCkgY29uc3QgeyBy
ZXR1cm4gKm1fbGF5b3V0Qm94OyB9CisgICAgY29uc3QgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94
KCkgY29uc3QgeyByZXR1cm4gbV9hYnNvbHV0ZURpc3BsYXlCb3g7IH0KKworcHJpdmF0ZToKICAg
ICBXZWFrUHRyPEJveD4gbV9sYXlvdXRCb3g7CiAgICAgY29uc3QgRmxvYXRpbmdTdGF0ZSYgbV9m
bG9hdGluZ1N0YXRlOwotCiAgICAgRGlzcGxheTo6Qm94IG1fYWJzb2x1dGVEaXNwbGF5Qm94Owog
ICAgIERpc3BsYXk6OkJveCBtX2NvbnRhaW5pbmdCbG9ja0Fic29sdXRlRGlzcGxheUJveDsKKyAg
ICBQb3NpdGlvbkluQ29udGV4dFJvb3QgbV9pbml0aWFsVmVydGljYWxQb3NpdGlvbjsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEJveC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjkwNzM2ZmE4ZmY1ODYxOTFmYWQzYmJmZDNmNDFiOWY0MzNhYzRhMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRCb3guY3BwCkBAIC0wLDAgKzEs
NzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmxvYXRC
b3guaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNw
YWNlIExheW91dCB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGbG9hdEJveCk7CisK
K0Zsb2F0Qm94OjpGbG9hdEJveChjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgRmxvYXRpbmdT
dGF0ZSYgZmxvYXRpbmdTdGF0ZSwgY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCkK
KyAgICA6IEZsb2F0QXZvaWRlcihsYXlvdXRCb3gsIGZsb2F0aW5nU3RhdGUsIGxheW91dENvbnRl
eHQpCit7Cit9CisKK1Bvc2l0aW9uSW5Db250ZXh0Um9vdCBGbG9hdEJveDo6aG9yaXpvbnRhbFBv
c2l0aW9uQ2FuZGlkYXRlKEhvcml6b250YWxDb25zdHJhaW50cyBob3Jpem9udGFsQ29uc3RyYWlu
dHMpCit7CisgICAgYXV0byBwb3NpdGlvbkNhbmRpZGF0ZSA9IGlzTGVmdEFsaWduZWQoKSA/ICpo
b3Jpem9udGFsQ29uc3RyYWludHMubGVmdCA6ICpob3Jpem9udGFsQ29uc3RyYWludHMucmlnaHQg
LSByZWN0KCkud2lkdGgoKTsKKyAgICBwb3NpdGlvbkNhbmRpZGF0ZSArPSBkaXNwbGF5Qm94KCku
bWFyZ2luTGVmdCgpOworCisgICAgcmV0dXJuIHBvc2l0aW9uQ2FuZGlkYXRlOworfQorCitQb3Np
dGlvbkluQ29udGV4dFJvb3QgRmxvYXRCb3g6OnZlcnRpY2FsUG9zaXRpb25DYW5kaWRhdGUoUG9z
aXRpb25JbkNvbnRleHRSb290IHZlcnRpY2FsQ29uc3RyYWludCkKK3sKKyAgICByZXR1cm4gdmVy
dGljYWxDb25zdHJhaW50ICsgZGlzcGxheUJveCgpLm1hcmdpblRvcCgpOworfQorCitQb3NpdGlv
bkluQ29udGV4dFJvb3QgRmxvYXRCb3g6OmluaXRpYWxWZXJ0aWNhbFBvc2l0aW9uKCkgY29uc3QK
K3sKKyAgICAvLyBJbmNvbWluZyBmbG9hdCBjYW5ub3QgYmUgcGxhY2VkIGhpZ2hlciB0aGFuIGV4
aXN0aW5nIGZsb2F0cyAobWFyZ2luIGJveCBvZiB0aGUgbGFzdCBmbG9hdCkuCisgICAgLy8gVGFr
ZSB0aGUgc3RhdGljIHBvc2l0aW9uICh3aGVyZSB0aGUgYm94IHdvdWxkIGdvIGlmIGl0IHdhc24n
dCBmbG9hdGluZykgYW5kIGFkanVzdCBpdCB3aXRoIHRoZSBsYXN0IGZsb2F0LgorICAgIGF1dG8g
dG9wID0gRmxvYXRBdm9pZGVyOjppbml0aWFsVmVydGljYWxQb3NpdGlvbigpIC0gZGlzcGxheUJv
eCgpLm1hcmdpblRvcCgpOworICAgIGlmIChhdXRvIGxhc3RGbG9hdCA9IGZsb2F0aW5nU3RhdGUo
KS5sYXN0KCkpCisgICAgICAgIHRvcCA9IHN0ZDo6bWF4KHRvcCwgbGFzdEZsb2F0LT5yZWN0V2l0
aE1hcmdpbigpLnRvcCgpKTsKKyAgICB0b3AgKz0gZGlzcGxheUJveCgpLm1hcmdpblRvcCgpOwor
CisgICAgcmV0dXJuIHRvcDsKK30KKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
ZmxvYXRzL0Zsb2F0Qm94LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ3ZWRhZTI0NTQwMTA2ZTk1ODAwOWZlZTQy
YzRhYTg5NTQzNTVjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
bG9hdHMvRmxvYXRCb3guaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUg
IkZsb2F0QXZvaWRlci5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCituYW1lc3BhY2UgTGF5b3V0IHsKKworY2xhc3MgQm94OworY2xhc3MgRmxv
YXRpbmdTdGF0ZTsKK2NsYXNzIExheW91dENvbnRleHQ7CisKK2NsYXNzIEZsb2F0Qm94IDogcHVi
bGljIEZsb2F0QXZvaWRlciB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGbG9hdEJveCk7
CitwdWJsaWM6CisgICAgRmxvYXRCb3goY29uc3QgQm94JiwgY29uc3QgRmxvYXRpbmdTdGF0ZSYs
IGNvbnN0IExheW91dENvbnRleHQmKTsKKworICAgIERpc3BsYXk6OkJveDo6UmVjdCByZWN0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gZGlzcGxheUJveCgpLnJlY3RXaXRoTWFyZ2luKCk7IH0KKwor
cHJpdmF0ZToKKyAgICBib29sIGlzTGVmdEFsaWduZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBs
YXlvdXRCb3goKS5pc0xlZnRGbG9hdGluZ1Bvc2l0aW9uZWQoKTsgfQorCisgICAgUG9zaXRpb25J
bkNvbnRleHRSb290IGhvcml6b250YWxQb3NpdGlvbkNhbmRpZGF0ZShIb3Jpem9udGFsQ29uc3Ry
YWludHMpIGZpbmFsOworICAgIFBvc2l0aW9uSW5Db250ZXh0Um9vdCB2ZXJ0aWNhbFBvc2l0aW9u
Q2FuZGlkYXRlKFBvc2l0aW9uSW5Db250ZXh0Um9vdCkgZmluYWw7CisKKyAgICBQb3NpdGlvbklu
Q29udGV4dFJvb3QgaW5pdGlhbFZlcnRpY2FsUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKK307CisK
K30KK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9G
bG9hdGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGlu
Z0NvbnRleHQuY3BwCmluZGV4IDQwMTkyOWNlMjJiYWE2MTc0MWIyZTgwYjY5YmMwMTk2MzczYzI3
ODAuLmYxNWQ2OGRhZGZkZDcyMTMxMmZkMTk0ZTQxNTgyZGFhZTY0NzYzNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKQEAgLTMwLDYg
KzMwLDcgQEAKIAogI2luY2x1ZGUgIkRpc3BsYXlCb3guaCIKICNpbmNsdWRlICJGbG9hdEF2b2lk
ZXIuaCIKKyNpbmNsdWRlICJGbG9hdEJveC5oIgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2lu
Y2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgogI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKQEAg
LTEzNyw5ICsxMzgsOSBAQCBQb2ludEluQ29udGFpbmluZ0Jsb2NrIEZsb2F0aW5nQ29udGV4dDo6
cG9zaXRpb25Gb3JGbG9hdChjb25zdCBCb3gmIGxheW91dEJveCkgYwogICAgIH0KIAogICAgIC8v
IEZpbmQgdGhlIHRvcCBtb3N0IHBvc2l0aW9uIHdoZXJlIHRoZSBmbG9hdCBib3ggZml0cy4KLSAg
ICBGbG9hdEF2b2lkZXIgYWxpZ25lZEJveCA9IHsgbGF5b3V0Qm94LCBtX2Zsb2F0aW5nU3RhdGUs
IGxheW91dENvbnRleHQoKSB9OwotICAgIGZsb2F0aW5nUG9zaXRpb24oYWxpZ25lZEJveCk7Ci0g
ICAgcmV0dXJuIGFsaWduZWRCb3gucmVjdEluQ29udGFpbmluZ0Jsb2NrKCkudG9wTGVmdCgpOwor
ICAgIEZsb2F0Qm94IGZsb2F0Qm94ID0geyBsYXlvdXRCb3gsIG1fZmxvYXRpbmdTdGF0ZSwgbGF5
b3V0Q29udGV4dCgpIH07CisgICAgZmxvYXRpbmdQb3NpdGlvbihmbG9hdEJveCk7CisgICAgcmV0
dXJuIGZsb2F0Qm94LnJlY3RJbkNvbnRhaW5pbmdCbG9jaygpLnRvcExlZnQoKTsKIH0KIAogc3Rk
OjpvcHRpb25hbDxQb3NpdGlvbkluQ29udGFpbmluZ0Jsb2NrPiBGbG9hdGluZ0NvbnRleHQ6OnZl
cnRpY2FsUG9zaXRpb25XaXRoQ2xlYXJhbmNlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdApA
QCAtMjE1LDYgKzIxNiw5IEBAIHN0ZDo6b3B0aW9uYWw8UG9zaXRpb25JbkNvbnRhaW5pbmdCbG9j
az4gRmxvYXRpbmdDb250ZXh0Ojp2ZXJ0aWNhbFBvc2l0aW9uV2l0aENsCiAKIHZvaWQgRmxvYXRp
bmdDb250ZXh0OjpmbG9hdGluZ1Bvc2l0aW9uKEZsb2F0QXZvaWRlciYgZmxvYXRBdm9pZGVyKSBj
b25zdAogeworICAgIC8vIEVuc3VyZSB0aGUgZmxvYXQgYXZvaWRlciBzdGFydHMgd2l0aCBubyBj
b25zdHJhaW50cy4KKyAgICBmbG9hdEF2b2lkZXIucmVzZXRQb3NpdGlvbigpOworCiAgICAgc3Rk
OjpvcHRpb25hbDxQb3NpdGlvbkluQ29udGV4dFJvb3Q+IGJvdHRvbU1vc3Q7CiAgICAgYXV0byBl
bmQgPSBMYXlvdXQ6OmVuZChtX2Zsb2F0aW5nU3RhdGUpOwogICAgIGZvciAoYXV0byBpdGVyYXRv
ciA9IGJlZ2luKG1fZmxvYXRpbmdTdGF0ZSwgZmxvYXRBdm9pZGVyLnJlY3QoKS50b3AoKSk7IGl0
ZXJhdG9yICE9IGVuZDsgKytpdGVyYXRvcikgewo=
</data>
<flag name="review"
          id="366048"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>