<?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>187939</bug_id>
          
          <creation_ts>2018-07-23 20:11:57 -0700</creation_ts>
          <short_desc>[LFC] Move geometry data structures to a dedicated file</short_desc>
          <delta_ts>2018-07-24 07:48:16 -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>1444542</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-07-23 20:11:57 -0700</bug_when>
    <thetext>with Layout namespace only</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444543</commentid>
    <comment_count>1</comment_count>
      <attachid>345634</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-07-23 20:13:19 -0700</bug_when>
    <thetext>Created attachment 345634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444676</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-07-24 07:48:01 -0700</bug_when>
    <thetext>Committed r234145: &lt;https://trac.webkit.org/changeset/234145&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444677</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-24 07:48:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/42541208&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345634</attachid>
            <date>2018-07-23 20:13:19 -0700</date>
            <delta_ts>2018-07-24 07:29:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187939-20180723201318.patch</filename>
            <type>text/plain</type>
            <size>31864</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODJhNGE5ZDkwMDQyYzA2
YzhkMjM2YmFmNGFhNzcwZDMzNTY0NTdmZi4uOTEzZDU4ZDI2NDQ5YTQ5ZGMxYzRiNjk2OWI3Nzdk
YzRlOTVhZjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTA3LTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gTW92ZSBnZW9tZXRy
eSBkYXRhIHN0cnVjdHVyZXMgdG8gYSBkZWRpY2F0ZWQgZmlsZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3OTM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6UG9zaXRpb246
Om9wZXJhdG9yIExheW91dFBvaW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
Rm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRWZXJ0aWNh
bEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZG
bG93UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxH
ZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25S
ZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1JlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpm
bG9hdGluZ1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
Om91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZs
b2F0aW5nV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojppbmxp
bmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZEJvcmRlcik6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRQYWRkaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
Ojpjb21wdXRlZE5vbkNvbGxhcHNlZEhvcml6b250YWxNYXJnaW5WYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWROb25D
b2xsYXBzZWRWZXJ0aWNhbE1hcmdpblZhbHVlKToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dO
b25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZFdpZHRoQW5k
TWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c3RhdGljUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6aW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd0hlaWdodEFu
ZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjppbkZsb3dXaWR0aEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Rp
c3BsYXl0cmVlL0Rpc3BsYXlCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6
c2V0SG9yaXpvbnRhbE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnNl
dFZlcnRpY2FsTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6c2V0VmVy
dGljYWxOb25Db2xsYXBzZWRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94
OjpzZXRCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRQYWRkaW5n
KToKKwogMjAxOC0wNy0yMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMQ0ZdW0lGQ10gQWRkIHN1cHBvcnQgZm9yIGh5cGhlbmF0aW9uLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI0MjNiNWEy
Nzk3MDhlMjI3MzBmMWVjZjg0ZGI0ZWI4NmEyYzYyNzEuLjIyZTE0MjNiMWFkMTM5MmZkM2ZjYzlk
MGIwNTQ1Yjg1NzA1MTQxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5MTYsNiArODkxNiw3IEBACiAJCTZGMDgzMERGMjBC
NDY5NTEwMDhBOTQ1QiAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYyMjJCNzQxQUI1MkQ2NDAwOTQ2NTFBIC8qIFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGMjIyQjc1MUFCNTJE
OEEwMDk0NjUxQSAvKiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGNzM5MThDMjEwNkNFREQwMDZBRjI2MiAv
KiBMYXlvdXRVbml0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRVbml0cy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RjdDQTNDNDIwOEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0Q29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZGN0NBM0M1MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRDb250ZXh0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzM4LDYgKzE1NzM5LDcgQEAKIAkJCQkxMTVG
NzgwNTIwOUNCQ0JEMDA3MzlDMTMgLyogSW52YWxpZGF0aW9uLmggKi8sCiAJCQkJNkY3Q0EzQzUy
MDhDMjk1NjAwMkYyOUFCIC8qIExheW91dENvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M0MjA4
QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRDb250ZXh0LmggKi8sCisJCQkJNkY3MzkxOEMyMTA2Q0VE
RDAwNkFGMjYyIC8qIExheW91dFVuaXRzLmggKi8sCiAJCQkJMTFGRjAyRDUyMEJBM0M4MTAwODNG
MjVCIC8qIFZlcmlmaWNhdGlvbi5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGxheW91dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggZGU0ZWRmNzEwMGM5
YWU5Yjg4MzBkOWFiYmViMjU0ZWZjNzc2ZjQyNi4uM2I1Yjg1NTMzMWZhNjRhMTk4NjU0M2U4OTlh
YTg5YjI3OTgwYjkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmgKQEAgLTg1LDM2ICs4NSw2IEBAIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGNsYXNzIGltcGxl
bWVudHMgZ2VuZXJpYyBwb3NpdGlvbmluZyBhbmQgc2l6aW5nLgogICAgIGNsYXNzIEdlb21ldHJ5
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0cnVjdCBQb3NpdGlvbiB7Ci0gICAgICAgICAgICAv
LyBGSVhNRTogVXNlIExheW91dFVuaXQ8SG9yaXpvbnRhbD4gdG8gYXZvaWQgdG9wL2xlZnQgdnMu
IHgveSBjb25mdXNpb24uCi0gICAgICAgICAgICBMYXlvdXRVbml0IHg7IC8vIGxlZnQKLSAgICAg
ICAgICAgIExheW91dFVuaXQgeTsgLy8gdG9wCi0gICAgICAgICAgICBvcGVyYXRvciBMYXlvdXRQ
b2ludCgpIGNvbnN0IHsgcmV0dXJuIHsgeCwgeSB9OyB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAg
c3RydWN0IFdpZHRoQW5kTWFyZ2luIHsKLSAgICAgICAgICAgIExheW91dFVuaXQgd2lkdGg7Ci0g
ICAgICAgICAgICBEaXNwbGF5OjpCb3g6Okhvcml6b250YWxFZGdlcyBtYXJnaW47Ci0gICAgICAg
IH07Ci0KLSAgICAgICAgc3RydWN0IEhlaWdodEFuZE1hcmdpbiB7Ci0gICAgICAgICAgICBMYXlv
dXRVbml0IGhlaWdodDsKLSAgICAgICAgICAgIERpc3BsYXk6OkJveDo6VmVydGljYWxFZGdlcyBt
YXJnaW47Ci0gICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPERpc3BsYXk6OkJveDo6VmVydGljYWxF
ZGdlcz4gY29sbGFwc2VkTWFyZ2luOwotICAgICAgICB9OwotCi0gICAgICAgICBzdHJ1Y3QgSG9y
aXpvbnRhbEdlb21ldHJ5IHsKLSAgICAgICAgICAgIExheW91dFVuaXQgbGVmdDsKLSAgICAgICAg
ICAgIExheW91dFVuaXQgcmlnaHQ7Ci0gICAgICAgICAgICBXaWR0aEFuZE1hcmdpbiB3aWR0aEFu
ZE1hcmdpbjsKLSAgICAgICAgIH07Ci0KLSAgICAgICAgc3RydWN0IFZlcnRpY2FsR2VvbWV0cnkg
ewotICAgICAgICAgICAgTGF5b3V0VW5pdCB0b3A7Ci0gICAgICAgICAgICBMYXlvdXRVbml0IGJv
dHRvbTsKLSAgICAgICAgICAgIEhlaWdodEFuZE1hcmdpbiBoZWlnaHRBbmRNYXJnaW47Ci0gICAg
ICAgIH07Ci0KICAgICAgICAgc3RhdGljIFZlcnRpY2FsR2VvbWV0cnkgb3V0T2ZGbG93VmVydGlj
YWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgICAgIHN0YXRpYyBI
b3Jpem9udGFsR2VvbWV0cnkgb3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KExheW91dENvbnRl
eHQmLCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYpOwogCkBAIC0xMjUsMTEg
Kzk1LDExIEBAIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFyZ2luIGlubGlu
ZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRNYXJnaW5MZWZ0ID0geyB9LAogICAgICAg
ICAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZE1hcmdpblJpZ2h0ID0g
eyB9KTsKIAotICAgICAgICBzdGF0aWMgRGlzcGxheTo6Qm94OjpFZGdlcyBjb21wdXRlZEJvcmRl
cihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7Ci0gICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPERpc3BsYXk6OkJveDo6RWRnZXM+IGNvbXB1dGVkUGFkZGluZyhMYXlvdXRDb250ZXh0Jiwg
Y29uc3QgQm94Jik7CisgICAgICAgIHN0YXRpYyBFZGdlcyBjb21wdXRlZEJvcmRlcihMYXlvdXRD
b250ZXh0JiwgY29uc3QgQm94Jik7CisgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEVkZ2Vz
PiBjb21wdXRlZFBhZGRpbmcoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwogCi0gICAgICAg
IHN0YXRpYyBEaXNwbGF5OjpCb3g6Okhvcml6b250YWxFZGdlcyBjb21wdXRlZE5vbkNvbGxhcHNl
ZEhvcml6b250YWxNYXJnaW5WYWx1ZShjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7
Ci0gICAgICAgIHN0YXRpYyBEaXNwbGF5OjpCb3g6OlZlcnRpY2FsRWRnZXMgY29tcHV0ZWROb25D
b2xsYXBzZWRWZXJ0aWNhbE1hcmdpblZhbHVlKGNvbnN0IExheW91dENvbnRleHQmLCBjb25zdCBC
b3gmKTsKKyAgICAgICAgc3RhdGljIEhvcml6b250YWxFZGdlcyBjb21wdXRlZE5vbkNvbGxhcHNl
ZEhvcml6b250YWxNYXJnaW5WYWx1ZShjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7
CisgICAgICAgIHN0YXRpYyBWZXJ0aWNhbEVkZ2VzIGNvbXB1dGVkTm9uQ29sbGFwc2VkVmVydGlj
YWxNYXJnaW5WYWx1ZShjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAKICAgICAg
ICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gY29tcHV0ZWRWYWx1ZUlmTm90QXV0
byhjb25zdCBMZW5ndGgmIGdlb21ldHJ5UHJvcGVydHksIExheW91dFVuaXQgY29udGFpbmluZ0Js
b2NrV2lkdGgpOwogICAgICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBmaXhl
ZFZhbHVlKGNvbnN0IExlbmd0aCYgZ2VvbWV0cnlQcm9wZXJ0eSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggZWMyYzA1
MTNjMjViNWZiYTcxZTYxMTM2Y2M0Njc3NzcwNWE0YzQ1Zi4uNDE0YjM2NDgzMGZmZDRlNzAwMjRi
NWEyODc0OTdkMzFiOGY4MjIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zv
cm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIExheW91dFVu
aXQgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzaHJpbmtUb0ZpdFdpZHRoKExheW91dENv
bnRleHQmIGxheW91dENvCiAgICAgcmV0dXJuIHN0ZDo6bWluKHN0ZDo6bWF4KGluc3RyaW5zaWNX
aWR0aENvbnN0cmFpbnRzLm1pbmltdW0sIGF2YWlsYWJsZVdpZHRoKSwgaW5zdHJpbnNpY1dpZHRo
Q29uc3RyYWludHMubWF4aW11bSk7CiB9CiAKLUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
VmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05v
blJlcGxhY2VkVmVydGljYWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBj
b25zdCBCb3gmIGxheW91dEJveCkKK1ZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkoTGF5b3V0Q29u
dGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJU
KGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiAhbGF5b3V0Qm94LnJlcGxhY2Vk
KCkpOwogCkBAIC0yNjEsNyArMjYxLDcgQEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpW
ZXJ0aWNhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2YKICAgICBy
ZXR1cm4geyAqdG9wLCAqYm90dG9tLCB7ICpoZWlnaHQsIHsgKm1hcmdpblRvcCwgKm1hcmdpbkJv
dHRvbSB9LCB7IH0gfSB9OwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Okhvcml6
b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJl
cGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNv
bnN0IEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlv
dXRCb3gpCitIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpv
dXRPZkZsb3dOb25SZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiBsYXlv
dXRDb250ZXh0LCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNv
bnN0IEJveCYgbGF5b3V0Qm94KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkgJiYgIWxheW91dEJveC5yZXBsYWNlZCgpKTsKICAgICAKQEAgLTQwNSw3ICs0
MDUsNyBAQCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Okhvcml6b250YWxHZW9tZXRyeSBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dAogICAgIHJldHVybiB7ICpsZWZ0LCAqcmln
aHQsIHsgKndpZHRoLCB7ICptYXJnaW5MZWZ0LCAqbWFyZ2luUmlnaHQgfSB9IH07CiB9CiAKLUZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6VmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeShMYXlvdXRD
b250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKK1ZlcnRpY2FsR2Vv
bWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRp
Y2FsR2VvbWV0cnkoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlv
dXRCb3gpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAm
JiBsYXlvdXRCb3gucmVwbGFjZWQoKSk7CiAKQEAgLTQ3NCw3ICs0NzQsNyBAQCBGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OlZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpvdXRPZgogICAgIHJldHVybiB7ICp0b3AsICpib3R0b20sIHsgaGVpZ2h0LCB7ICpt
YXJnaW5Ub3AsICptYXJnaW5Cb3R0b20gfSwgeyB9IH0gfTsKIH0KIAotRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjpIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiBs
YXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKK0hvcml6b250YWxHZW9tZXRyeSBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdl
b21ldHJ5KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94
KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgbGF5
b3V0Qm94LnJlcGxhY2VkKCkpOwogCkBAIC01NzAsNyArNTcwLDcgQEAgRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjpIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5OjpvdXQKICAgICByZXR1cm4geyAqbGVmdCwgKnJpZ2h0LCB7IHdpZHRoLCB7ICptYXJnaW5M
ZWZ0LCAqbWFyZ2luUmlnaHQgfSB9IH07CiB9CiAKLUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdO
b25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBj
b25zdCBCb3gmIGxheW91dEJveCkKK0hlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6OmZsb2F0aW5nTm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4
dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxh
eW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpICYmICFsYXlvdXRCb3gucmVwbGFjZWQoKSk7
CiAKQEAgLTYwMSwxMCArNjAxLDEwIEBAIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SGVp
Z2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpCiAgICAgICAg
IGhlaWdodCA9IGNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QobGF5b3V0Q29u
dGV4dCwgbGF5b3V0Qm94KTsKIAogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4
dExheW91dCwgc3RyZWFtIDw8ICJbSGVpZ2h0XVtNYXJnaW5dIC0+IGZsb2F0aW5nIG5vbi1yZXBs
YWNlZCAtPiBoZWlnaHQoIiA8PCAqaGVpZ2h0IDw8ICJweCkgbWFyZ2luKCIgPDwgKm1hcmdpblRv
cCA8PCAicHgsICIgPDwgKm1hcmdpbkJvdHRvbSA8PCAicHgpIC0+IGxheW91dEJveCgiIDw8ICZs
YXlvdXRCb3ggPDwgIikiKTsKLSAgICByZXR1cm4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpIZWlnaHRBbmRNYXJnaW4geyAqaGVpZ2h0LCB7ICptYXJnaW5Ub3AsICptYXJnaW5Cb3R0b20g
fSwgeyB9IH07CisgICAgcmV0dXJuIEhlaWdodEFuZE1hcmdpbiB7ICpoZWlnaHQsIHsgKm1hcmdp
blRvcCwgKm1hcmdpbkJvdHRvbSB9LCB7IH0gfTsKIH0KIAotRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0
aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0
LCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94KQorV2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpm
bG9hdGluZ05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29u
dGV4dCwgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBC
b3gmIGxheW91dEJveCkKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlv
bmVkKCkgJiYgIWxheW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtNjI0LDEwICs2MjQsMTAgQEAg
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmZsb2F0aW4KICAgICAgICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRo
KGxheW91dENvbnRleHQsIGZvcm1hdHRpbmdDb250ZXh0LCBsYXlvdXRCb3gpOwogCiAgICAgTE9H
X1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltXaWR0aF1b
TWFyZ2luXSAtPiBmbG9hdGluZyBub24tcmVwbGFjZWQgLT4gd2lkdGgoIiA8PCAqd2lkdGggPDwg
InB4KSBtYXJnaW4oIiA8PCBtYXJnaW4ubGVmdCA8PCAicHgsICIgPDwgbWFyZ2luLnJpZ2h0IDw8
ICJweCkgLT4gbGF5b3V0Qm94KCIgPDwgJmxheW91dEJveCA8PCAiKSIpOwotICAgIHJldHVybiBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OldpZHRoQW5kTWFyZ2luIHsgKndpZHRoLCBtYXJn
aW4gfTsKKyAgICByZXR1cm4gV2lkdGhBbmRNYXJnaW4geyAqd2lkdGgsIG1hcmdpbiB9OwogfQog
Ci1Gb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oTGF5b3V0
Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCitIZWlnaHRBbmRN
YXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1JlcGxhY2VkSGVpZ2h0
QW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSAmJiBs
YXlvdXRCb3gucmVwbGFjZWQoKSk7CiAKQEAgLTYzNyw3ICs2MzcsNyBAQCBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmZsb2F0aQogICAgIHJldHVybiBpbmxpbmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihsYXlv
dXRDb250ZXh0LCBsYXlvdXRCb3gpOwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OldpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBs
YWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJv
eCYgbGF5b3V0Qm94KQorV2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpmbG9hdGluZ1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29u
dGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Zs
b2F0aW5nUG9zaXRpb25lZCgpICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtNjUxLDcg
KzY1MSw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluCiAgICAgcmV0dXJuIGlubGluZVJlcGxh
Y2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBtYXJnaW4ubGVmdCwg
bWFyZ2luLnJpZ2h0KTsKIH0KIAotRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpWZXJ0aWNh
bEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxH
ZW9tZXRyeShMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJv
eCkKK1ZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZs
b3dWZXJ0aWNhbEdlb21ldHJ5KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJv
eCYgbGF5b3V0Qm94KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlv
bmVkKCkpOwogCkBAIC02NjAsNyArNjYwLDcgQEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpWZXJ0aWNhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2YKICAg
ICByZXR1cm4gb3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGxheW91dENvbnRleHQs
IGxheW91dEJveCk7CiB9CiAKLUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SG9yaXpvbnRh
bEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93SG9yaXpvbnRh
bEdlb21ldHJ5KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEZvcm1hdHRpbmdD
b250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCitIb3Jpem9u
dGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dIb3Jpem9u
dGFsR2VvbWV0cnkoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgRm9ybWF0dGlu
Z0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAg
ICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKIApAQCAtNjY5LDcg
KzY2OSw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SG9yaXpvbnRhbEdlb21ldHJ5
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0CiAgICAgcmV0dXJuIG91dE9mRmxvd1Jl
cGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5KGxheW91dENvbnRleHQsIGxheW91dEJveCk7CiB9CiAK
LUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYg
bGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCitIZWlnaHRBbmRNYXJnaW4gRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ0hlaWdodEFuZE1hcmdpbihMYXlvdXRD
b250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICBBU1NF
UlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpOwogCkBAIC02NzgsNyArNjc4LDcg
QEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGkKICAgICByZXR1cm4gZmxvYXRpbmdSZXBsYWNlZEhl
aWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogfQogCi1Gb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OldpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6ZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0
LCBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94KQorV2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpm
bG9hdGluZ1dpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0
IEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRC
b3gpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKTsKIApA
QCAtNjg3LDcgKzY4Nyw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6V2lkdGhBbmRN
YXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluCiAgICAgcmV0dXJuIGZs
b2F0aW5nUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwog
fQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiBGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKExheW91
dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQorSGVpZ2h0QW5k
TWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRIZWlnaHRB
bmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRC
b3gpCiB7CiAgICAgQVNTRVJUKChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwg
bGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgfHwgbGF5b3V0Qm94LmlzSW5GbG93KCkp
ICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtNzMzLDcgKzczMyw3IEBAIEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6aW5saW5lCiAgICAgcmV0dXJuIHsgKmhlaWdodCwgbWFyZ2luLCB7IH0gfTsKIH0K
IAotRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29u
dGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsCitXaWR0aEFuZE1hcmdp
biBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJn
aW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsCiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZE1hcmdpbkxlZnQsIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gcHJlY29tcHV0ZWRNYXJnaW5SaWdodCkKIHsKICAgICBBU1NF
UlQoKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCBsYXlvdXRCb3guaXNGbG9h
dGluZ1Bvc2l0aW9uZWQoKSB8fCBsYXlvdXRCb3guaXNJbkZsb3coKSkgJiYgbGF5b3V0Qm94LnJl
cGxhY2VkKCkpOwpAQCAtODA5LDcgKzgwOSw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6V2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVSCiAg
ICAgcmV0dXJuIHsgKndpZHRoLCB7IG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0gfTsKIH0KIAot
RGlzcGxheTo6Qm94OjpFZGdlcyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVk
Qm9yZGVyKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmIGxheW91dEJveCkKK0VkZ2VzIEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRCb3JkZXIoTGF5b3V0Q29udGV4dCYsIGNv
bnN0IEJveCYgbGF5b3V0Qm94KQogewogICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxl
KCk7CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0g
PDwgIltCb3JkZXJdIC0+IGxheW91dEJveDogIiA8PCAmbGF5b3V0Qm94KTsKQEAgLTgxOSw3ICs4
MTksNyBAQCBEaXNwbGF5OjpCb3g6OkVkZ2VzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
Y29tcHV0ZWRCb3JkZXIoTGF5b3V0Q29udGV4dCYsCiAgICAgfTsKIH0KIAotc3RkOjpvcHRpb25h
bDxEaXNwbGF5OjpCb3g6OkVkZ2VzPiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1
dGVkUGFkZGluZyhMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91
dEJveCkKK3N0ZDo6b3B0aW9uYWw8RWRnZXM+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
Y29tcHV0ZWRQYWRkaW5nKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94KQogewogICAgIGlmICghbGF5b3V0Qm94LmlzUGFkZGluZ0FwcGxpY2FibGUoKSkK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKQEAgLTgyNywxMyArODI3LDEzIEBAIHN0ZDo6
b3B0aW9uYWw8RGlzcGxheTo6Qm94OjpFZGdlcz4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
Ojpjb21wdXRlZFBhZGRpbmcoCiAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUoKTsK
ICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94
Rm9yTGF5b3V0Qm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLT5jb250ZW50Qm94V2lk
dGgoKTsKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVh
bSA8PCAiW1BhZGRpbmddIC0+IGxheW91dEJveDogIiA8PCAmbGF5b3V0Qm94KTsKLSAgICByZXR1
cm4gRGlzcGxheTo6Qm94OjpFZGdlcyB7CisgICAgcmV0dXJuIEVkZ2VzIHsKICAgICAgICAgeyB2
YWx1ZUZvckxlbmd0aChzdHlsZS5wYWRkaW5nTGVmdCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCks
IHZhbHVlRm9yTGVuZ3RoKHN0eWxlLnBhZGRpbmdSaWdodCgpLCBjb250YWluaW5nQmxvY2tXaWR0
aCkgfSwKICAgICAgICAgeyB2YWx1ZUZvckxlbmd0aChzdHlsZS5wYWRkaW5nVG9wKCksIGNvbnRh
aW5pbmdCbG9ja1dpZHRoKSwgdmFsdWVGb3JMZW5ndGgoc3R5bGUucGFkZGluZ0JvdHRvbSgpLCBj
b250YWluaW5nQmxvY2tXaWR0aCkgfQogICAgIH07CiB9CiAKLURpc3BsYXk6OkJveDo6SG9yaXpv
bnRhbEVkZ2VzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWROb25Db2xsYXBz
ZWRIb3Jpem9udGFsTWFyZ2luVmFsdWUoY29uc3QgTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4
dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCitIb3Jpem9udGFsRWRnZXMgRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5Ojpjb21wdXRlZE5vbkNvbGxhcHNlZEhvcml6b250YWxNYXJnaW5WYWx1ZShj
b25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkK
IHsKICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwogICAgIGF1dG8gY29udGFp
bmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRDb250ZXh0LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmxh
eW91dEJveC5jb250YWluaW5nQmxvY2soKSktPmNvbnRlbnRCb3hXaWR0aCgpOwpAQCAtODQ1LDcg
Kzg0NSw3IEBAIERpc3BsYXk6OkJveDo6SG9yaXpvbnRhbEVkZ2VzIEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6Y29tcHV0ZWROb25Db2xsYXBzZWRICiAgICAgcmV0dXJuIHsgbWFyZ2luTGVm
dCwgbWFyZ2luUmlnaHQgfTsKIH0KIAotRGlzcGxheTo6Qm94OjpWZXJ0aWNhbEVkZ2VzIEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWROb25Db2xsYXBzZWRWZXJ0aWNhbE1hcmdp
blZhbHVlKGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5
b3V0Qm94KQorVmVydGljYWxFZGdlcyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1
dGVkTm9uQ29sbGFwc2VkVmVydGljYWxNYXJnaW5WYWx1ZShjb25zdCBMYXlvdXRDb250ZXh0JiBs
YXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICBhdXRvJiBzdHlsZSA9
IGxheW91dEJveC5zdHlsZSgpOwogICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBsYXlv
dXRDb250ZXh0LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmxheW91dEJveC5jb250YWluaW5nQmxv
Y2soKSktPmNvbnRlbnRCb3hXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAppbmRl
eCA0ZDRmYjllNmQwYTFjN2YxNjdjNDY0OTE4YjkzMmFmZDg2YzY1YzU1Li43NTY0ZjM4ZDYyYWFm
ZTQxZjM1MTUwNzlmZjhhZTAwN2M3YzA0Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
aApAQCAtNjQsMjAgKzY0LDIwIEBAIHByaXZhdGU6CiAgICAgLy8gVGhpcyBjbGFzcyBpbXBsZW1l
bnRzIHBvc2l0aW9uaW5nIGFuZCBzaXppbmcgZm9yIGJveGVzIHBhcnRpY2lwYXRpbmcgaW4gYSBi
bG9jayBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAgY2xhc3MgR2VvbWV0cnkgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgc3RhdGljIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SGVpZ2h0QW5k
TWFyZ2luIGluRmxvd0hlaWdodEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7
Ci0gICAgICAgIHN0YXRpYyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OldpZHRoQW5kTWFy
Z2luIGluRmxvd1dpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKKyAg
ICAgICAgc3RhdGljIEhlaWdodEFuZE1hcmdpbiBpbkZsb3dIZWlnaHRBbmRNYXJnaW4oTGF5b3V0
Q29udGV4dCYsIGNvbnN0IEJveCYpOworICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gaW5G
bG93V2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwogCi0gICAgICAg
IHN0YXRpYyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OlBvc2l0aW9uIHN0YXRpY1Bvc2l0
aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKLSAgICAgICAgc3RhdGljIEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6UG9zaXRpb24gaW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKExh
eW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIFBvc2l0aW9uIHN0YXRp
Y1Bvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIFBv
c2l0aW9uIGluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94
Jik7CiAKICAgICAgICAgc3RhdGljIGJvb2wgaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHNOZWVk
Q2hpbGRyZW5XaWR0aChjb25zdCBCb3gmKTsKICAgICAgICAgc3RhdGljIEZvcm1hdHRpbmdDb250
ZXh0OjpJbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cyBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50
cyhMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBz
dGF0aWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIZWlnaHRBbmRNYXJnaW4gaW5GbG93
Tm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwot
ICAgICAgICBzdGF0aWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0aEFuZE1hcmdp
biBpbkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBC
b3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lkdGggPSBzdGQ6Om51
bGxvcHQpOwotICAgICAgICBzdGF0aWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0
aEFuZE1hcmdpbiBpbkZsb3dSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmLCBj
b25zdCBCb3gmKTsKLSAgICAgICAgc3RhdGljIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
UG9zaXRpb24gc3RhdGljUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IExheW91
dENvbnRleHQmLCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIEhlaWdodEFuZE1hcmdpbiBp
bkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94
Jik7CisgICAgICAgIHN0YXRpYyBXaWR0aEFuZE1hcmdpbiBpbkZsb3dOb25SZXBsYWNlZFdpZHRo
QW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91
dFVuaXQ+IHByZWNvbXB1dGVkV2lkdGggPSBzdGQ6Om51bGxvcHQpOworICAgICAgICBzdGF0aWMg
V2lkdGhBbmRNYXJnaW4gaW5GbG93UmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0
JiwgY29uc3QgQm94Jik7CisgICAgICAgIHN0YXRpYyBQb3NpdGlvbiBzdGF0aWNQb3NpdGlvbkZv
ck91dE9mRmxvd1Bvc2l0aW9uZWQoY29uc3QgTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwog
ICAgIH07CiAgICAgCiAgICAgLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIG1hcmdpbiBjb2xsYXBz
aW5nIGZvciBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0
dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggMWE2NmFkZjQ5NjM1Mzc2YTRiMDViODhjZTRm
NjhiMzdhNjRmMmZmNi4uYTAxZjA0NjY0YWE1OTQ4Y2I5MzQ5YTIxNDc1MzJhY2Y4NDNlZjMyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtNTcs
MTEgKzU3LDExIEBAIHN0YXRpYyBjb25zdCBDb250YWluZXImIGluaXRpYWxDb250YWluaW5nQmxv
Y2soY29uc3QgQm94JiBsYXlvdXRCb3gpCiAgICAgcmV0dXJuICpjb250YWluaW5nQmxvY2s7CiB9
CiAKLUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdp
bihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKK0hl
aWdodEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9u
UmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29u
c3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0luRmxvdygpICYm
ICFsYXlvdXRCb3gucmVwbGFjZWQoKSk7CiAKLSAgICBhdXRvIGNvbXB1dGUgPSBbJl0oKSAtPiBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiB7CisgICAgYXV0byBj
b21wdXRlID0gWyZdKCkgLT4gSGVpZ2h0QW5kTWFyZ2luIHsKIAogICAgICAgICAvLyAxMC42LjMg
QmxvY2stbGV2ZWwgbm9uLXJlcGxhY2VkIGVsZW1lbnRzIGluIG5vcm1hbCBmbG93IHdoZW4gJ292
ZXJmbG93JyBjb21wdXRlcyB0byAndmlzaWJsZScKICAgICAgICAgLy8KQEAgLTgwLDkgKzgwLDkg
QEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIZWlnaHRBbmRNYXJnaW4gQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmkKICAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tX
aWR0aCA9IGxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqbGF5b3V0Qm94LmNv
bnRhaW5pbmdCbG9jaygpKS0+Y29udGVudEJveFdpZHRoKCk7CiAgICAgICAgIGF1dG8mIGRpc3Bs
YXlCb3ggPSAqbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGxheW91dEJveCk7
CiAKLSAgICAgICAgRGlzcGxheTo6Qm94OjpWZXJ0aWNhbEVkZ2VzIG5vbkNvbGxhcHNlZE1hcmdp
biA9IHsgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFZhbHVlSWZOb3RBdXRv
KHN0eWxlLm1hcmdpblRvcCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCkudmFsdWVfb3IoMCksCisg
ICAgICAgIFZlcnRpY2FsRWRnZXMgbm9uQ29sbGFwc2VkTWFyZ2luID0geyBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luVG9wKCks
IGNvbnRhaW5pbmdCbG9ja1dpZHRoKS52YWx1ZV9vcigwKSwKICAgICAgICAgICAgIEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRWYWx1ZUlmTm90QXV0byhzdHlsZS5tYXJnaW5C
b3R0b20oKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpLnZhbHVlX29yKDApIH07IAotICAgICAgICBE
aXNwbGF5OjpCb3g6OlZlcnRpY2FsRWRnZXMgY29sbGFwc2VkTWFyZ2luID0geyBNYXJnaW5Db2xs
YXBzZTo6bWFyZ2luVG9wKGxheW91dENvbnRleHQsIGxheW91dEJveCksIE1hcmdpbkNvbGxhcHNl
OjptYXJnaW5Cb3R0b20obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KSB9OworICAgICAgICBWZXJ0
aWNhbEVkZ2VzIGNvbGxhcHNlZE1hcmdpbiA9IHsgTWFyZ2luQ29sbGFwc2U6Om1hcmdpblRvcChs
YXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpLCBNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQm90dG9tKGxh
eW91dENvbnRleHQsIGxheW91dEJveCkgfTsKICAgICAgICAgYXV0byBib3JkZXJBbmRQYWRkaW5n
VG9wID0gZGlzcGxheUJveC5ib3JkZXJUb3AoKSArIGRpc3BsYXlCb3gucGFkZGluZ1RvcCgpOwog
ICAgICAgICAKICAgICAgICAgaWYgKCFzdHlsZS5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCkpCkBA
IC0xMzYsNyArMTM2LDcgQEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIZWlnaHRBbmRN
YXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmkKICAgICByZXR1cm4gaGVp
Z2h0QW5kTWFyZ2luOwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OldpZHRoQW5k
TWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNl
ZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94LAorV2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0
Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsCiAgICAgc3RkOjpvcHRpb25hbDxMYXlvdXRV
bml0PiBwcmVjb21wdXRlZFdpZHRoKQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNJbkZsb3co
KSAmJiAhbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwpAQCAtMjE5LDcgKzIxOSw3IEBAIEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OmluCiAgICAgICAgIEFTU0VSVChtYXJnaW5MZWZ0KTsKICAgICAgICAgQVNT
RVJUKG1hcmdpblJpZ2h0KTsKIAotICAgICAgICByZXR1cm4gRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpXaWR0aEFuZE1hcmdpbiB7ICp3aWR0aCwgeyAqbWFyZ2luTGVmdCwgKm1hcmdpblJp
Z2h0IH0gfTsKKyAgICAgICAgcmV0dXJuIFdpZHRoQW5kTWFyZ2luIHsgKndpZHRoLCB7ICptYXJn
aW5MZWZ0LCAqbWFyZ2luUmlnaHQgfSB9OwogICAgIH07CiAKICAgICBhdXRvIHdpZHRoQW5kTWFy
Z2luID0gY29tcHV0ZSgpOwpAQCAtMjM4LDcgKzIzOCw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OmluCiAgICAgcmV0dXJuIHdpZHRoQW5kTWFyZ2luOwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6OldpZHRoQW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjppbkZsb3dSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRl
eHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQorV2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OmluRmxvd1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29u
dGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJU
KGxheW91dEJveC5pc0luRmxvdygpICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtMjU2
LDcgKzI1Niw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4g
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluCiAgICAgcmV0dXJuIHsgd2lkdGgs
IG1hcmdpbiB9OwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OlBvc2l0aW9uIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNQb3NpdGlvbihMYXlvdXRDb250
ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKK1Bvc2l0aW9uIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNQb3NpdGlvbihMYXlvdXRDb250ZXh0
JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICAvLyBodHRwczov
L3d3dy53My5vcmcvVFIvQ1NTMjIvdmlzdXJlbi5odG1sI2Jsb2NrLWZvcm1hdHRpbmcKICAgICAv
LyBJbiBhIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCwgYm94ZXMgYXJlIGxhaWQgb3V0IG9uZSBh
ZnRlciB0aGUgb3RoZXIsIHZlcnRpY2FsbHksIGJlZ2lubmluZyBhdCB0aGUgdG9wIG9mIGEgY29u
dGFpbmluZyBibG9jay4KQEAgLTI3Nyw3ICsyNzcsNyBAQCBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OlBvc2l0aW9uIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNQ
bwogICAgIHJldHVybiB7IGxlZnQsIHRvcCB9OwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OlBvc2l0aW9uIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dQ
b3NpdGlvbmVkUG9zaXRpb24oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94
JiBsYXlvdXRCb3gpCitQb3NpdGlvbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
aW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNv
bnN0IEJveCYgbGF5b3V0Qm94KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNJbkZsb3dQb3Np
dGlvbmVkKCkpOwogCkBAIC0zNTQsNyArMzU0LDcgQEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5OjpQb3NpdGlvbiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93UG8K
ICAgICByZXR1cm4geyBuZXdMZWZ0UG9zaXRpb24sIG5ld1RvcFBvc2l0aW9uIH07CiB9CiAKLUZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYg
bGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCitIZWlnaHRBbmRNYXJnaW4gQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd0hlaWdodEFuZE1hcmdpbihMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICBB
U1NFUlQobGF5b3V0Qm94LmlzSW5GbG93KCkpOwogCkBAIC0zNjUsNyArMzY1LDcgQEAgRm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIZWlnaHRBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmkKICAgICByZXR1cm4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjppbmxpbmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gp
OwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OldpZHRoQW5kTWFyZ2luIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dXaWR0aEFuZE1hcmdpbihMYXlvdXRD
b250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKK1dpZHRoQW5kTWFy
Z2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dXaWR0aEFuZE1hcmdp
bihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsK
ICAgICBBU1NFUlQobGF5b3V0Qm94LmlzSW5GbG93KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaAppbmRleCBkMzRjZGRkMmFlOTIyYzE4Nzc4
ZWY1Y2E1YWQ2NDhjNTI1YmM2ZGE5Li4xM2EzYzc0MDk2ZjBjNmFlNmExYjBkMThiZjNiYTEzMzhi
YTcxMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlz
cGxheUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5
Qm94LmgKQEAgLTI3LDkgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQogCi0jaW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKLSNpbmNsdWRlICJMYXlvdXRSZWN0
LmgiCi0jaW5jbHVkZSAiTGF5b3V0VW5pdC5oIgorI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CiAKQEAgLTE3NiwyNyArMTc0LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDb250ZW50
Qm94SGVpZ2h0KExheW91dFVuaXQpOwogICAgIHZvaWQgc2V0Q29udGVudEJveFdpZHRoKExheW91
dFVuaXQpOwogCi0gICAgc3RydWN0IEhvcml6b250YWxFZGdlcyB7Ci0gICAgICAgIExheW91dFVu
aXQgbGVmdDsKLSAgICAgICAgTGF5b3V0VW5pdCByaWdodDsKLSAgICB9OwotCi0gICAgc3RydWN0
IFZlcnRpY2FsRWRnZXMgewotICAgICAgICBMYXlvdXRVbml0IHRvcDsKLSAgICAgICAgTGF5b3V0
VW5pdCBib3R0b207Ci0gICAgfTsKLQotICAgIHN0cnVjdCBFZGdlcyB7Ci0gICAgICAgIEhvcml6
b250YWxFZGdlcyBob3Jpem9udGFsOwotICAgICAgICBWZXJ0aWNhbEVkZ2VzIHZlcnRpY2FsOwot
ICAgIH07Ci0KLSAgICB2b2lkIHNldEhvcml6b250YWxNYXJnaW4oSG9yaXpvbnRhbEVkZ2VzKTsK
LSAgICB2b2lkIHNldFZlcnRpY2FsTWFyZ2luKFZlcnRpY2FsRWRnZXMpOwotICAgIHZvaWQgc2V0
VmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4oVmVydGljYWxFZGdlcyk7CisgICAgdm9pZCBzZXRI
b3Jpem9udGFsTWFyZ2luKExheW91dDo6SG9yaXpvbnRhbEVkZ2VzKTsKKyAgICB2b2lkIHNldFZl
cnRpY2FsTWFyZ2luKExheW91dDo6VmVydGljYWxFZGdlcyk7CisgICAgdm9pZCBzZXRWZXJ0aWNh
bE5vbkNvbGxhcHNlZE1hcmdpbihMYXlvdXQ6OlZlcnRpY2FsRWRnZXMpOwogCi0gICAgdm9pZCBz
ZXRCb3JkZXIoRWRnZXMpOwotICAgIHZvaWQgc2V0UGFkZGluZyhFZGdlcyk7CisgICAgdm9pZCBz
ZXRCb3JkZXIoTGF5b3V0OjpFZGdlcyk7CisgICAgdm9pZCBzZXRQYWRkaW5nKExheW91dDo6RWRn
ZXMpOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIHZvaWQgaW52YWxpZGF0ZU1hcmdpbigp
OwpAQCAtMjIwLDExICsyMDMsMTEgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IG1fY29udGVu
dFdpZHRoOwogICAgIExheW91dFVuaXQgbV9jb250ZW50SGVpZ2h0OwogCi0gICAgRWRnZXMgbV9t
YXJnaW47Ci0gICAgVmVydGljYWxFZGdlcyBtX3ZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luOwor
ICAgIExheW91dDo6RWRnZXMgbV9tYXJnaW47CisgICAgTGF5b3V0OjpWZXJ0aWNhbEVkZ2VzIG1f
dmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW47CiAKLSAgICBFZGdlcyBtX2JvcmRlcjsKLSAgICBF
ZGdlcyBtX3BhZGRpbmc7CisgICAgTGF5b3V0OjpFZGdlcyBtX2JvcmRlcjsKKyAgICBMYXlvdXQ6
OkVkZ2VzIG1fcGFkZGluZzsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICBib29sIG1faGFz
VmFsaWRIb3Jpem9udGFsTWFyZ2luIHsgZmFsc2UgfTsKQEAgLTQ1NCw3ICs0MzcsNyBAQCBpbmxp
bmUgTGF5b3V0VW5pdCBCb3g6OmNvbnRlbnRCb3hXaWR0aCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
Y29udGVudFdpZHRoOwogfQogCi1pbmxpbmUgdm9pZCBCb3g6OnNldEhvcml6b250YWxNYXJnaW4o
SG9yaXpvbnRhbEVkZ2VzIG1hcmdpbikKK2lubGluZSB2b2lkIEJveDo6c2V0SG9yaXpvbnRhbE1h
cmdpbihMYXlvdXQ6Okhvcml6b250YWxFZGdlcyBtYXJnaW4pCiB7CiAjaWYgIUFTU0VSVF9ESVNB
QkxFRAogICAgIHNldEhhc1ZhbGlkSG9yaXpvbnRhbE1hcmdpbigpOwpAQCAtNDYyLDcgKzQ0NSw3
IEBAIGlubGluZSB2b2lkIEJveDo6c2V0SG9yaXpvbnRhbE1hcmdpbihIb3Jpem9udGFsRWRnZXMg
bWFyZ2luKQogICAgIG1fbWFyZ2luLmhvcml6b250YWwgPSBtYXJnaW47CiB9CiAKLWlubGluZSB2
b2lkIEJveDo6c2V0VmVydGljYWxNYXJnaW4oVmVydGljYWxFZGdlcyBtYXJnaW4pCitpbmxpbmUg
dm9pZCBCb3g6OnNldFZlcnRpY2FsTWFyZ2luKExheW91dDo6VmVydGljYWxFZGdlcyBtYXJnaW4p
CiB7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIHNldEhhc1ZhbGlkVmVydGljYWxNYXJnaW4o
KTsKQEAgLTQ3MCw3ICs0NTMsNyBAQCBpbmxpbmUgdm9pZCBCb3g6OnNldFZlcnRpY2FsTWFyZ2lu
KFZlcnRpY2FsRWRnZXMgbWFyZ2luKQogICAgIG1fbWFyZ2luLnZlcnRpY2FsID0gbWFyZ2luOwog
fQogCi1pbmxpbmUgdm9pZCBCb3g6OnNldFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luKFZlcnRp
Y2FsRWRnZXMgbWFyZ2luKQoraW5saW5lIHZvaWQgQm94OjpzZXRWZXJ0aWNhbE5vbkNvbGxhcHNl
ZE1hcmdpbihMYXlvdXQ6OlZlcnRpY2FsRWRnZXMgbWFyZ2luKQogewogI2lmICFBU1NFUlRfRElT
QUJMRUQKICAgICBzZXRIYXNWYWxpZFZlcnRpY2FsTm9uQ29sbGFwc2VkTWFyZ2luKCk7CkBAIC00
NzgsNyArNDYxLDcgQEAgaW5saW5lIHZvaWQgQm94OjpzZXRWZXJ0aWNhbE5vbkNvbGxhcHNlZE1h
cmdpbihWZXJ0aWNhbEVkZ2VzIG1hcmdpbikKICAgICBtX3ZlcnRpY2FsTm9uQ29sbGFwc2VkTWFy
Z2luID0gbWFyZ2luOwogfQogCi1pbmxpbmUgdm9pZCBCb3g6OnNldEJvcmRlcihFZGdlcyBib3Jk
ZXIpCitpbmxpbmUgdm9pZCBCb3g6OnNldEJvcmRlcihMYXlvdXQ6OkVkZ2VzIGJvcmRlcikKIHsK
ICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgc2V0SGFzVmFsaWRCb3JkZXIoKTsKQEAgLTQ4Niw3
ICs0NjksNyBAQCBpbmxpbmUgdm9pZCBCb3g6OnNldEJvcmRlcihFZGdlcyBib3JkZXIpCiAgICAg
bV9ib3JkZXIgPSBib3JkZXI7CiB9CiAKLWlubGluZSB2b2lkIEJveDo6c2V0UGFkZGluZyhFZGdl
cyBwYWRkaW5nKQoraW5saW5lIHZvaWQgQm94OjpzZXRQYWRkaW5nKExheW91dDo6RWRnZXMgcGFk
ZGluZykKIHsKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgc2V0SGFzVmFsaWRQYWRkaW5nKCk7
Cg==
</data>
<flag name="review"
          id="363562"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>