<?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>219313</bug_id>
          
          <creation_ts>2020-11-27 10:34:17 -0800</creation_ts>
          <short_desc>[LFC Display] Add basic transforms support</short_desc>
          <delta_ts>2020-11-28 20:06:18 -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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</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>1710338</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-27 10:34:17 -0800</bug_when>
    <thetext>[LFC Display] Add basic transforms support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710339</commentid>
    <comment_count>1</comment_count>
      <attachid>414956</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-27 10:34:41 -0800</bug_when>
    <thetext>Created attachment 414956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710429</commentid>
    <comment_count>2</comment_count>
      <attachid>414956</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-11-28 10:59:43 -0800</bug_when>
    <thetext>Comment on attachment 414956
Patch

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

&gt; Source/WebCore/display/css/DisplayBoxRareGeometry.h:46
&gt; +    // FIXME: Move border radii here.
&gt; +
&gt; +

so much space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710456</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-28 20:05:33 -0800</bug_when>
    <thetext>Committed r270222: &lt;https://trac.webkit.org/changeset/270222&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414956.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710457</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-28 20:06:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/71778702&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414956</attachid>
            <date>2020-11-27 10:34:41 -0800</date>
            <delta_ts>2020-11-28 20:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219313-20201127103440.patch</filename>
            <type>text/plain</type>
            <size>24922</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWIxOTkyODVjZTFlMWY0
OWRhMTdmYjQ1MGIxM2RkYjRjZjQzMDExMS4uOGViYjgwZGU2M2QyOTkzMjY3N2QwZjU2YmU5NTgy
NGUxZDNhOTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTExLTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkMgRGlzcGxh
eV0gQWRkIGJhc2ljIHRyYW5zZm9ybXMgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTMxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBEaXNwbGF5OjpCb3hSYXJlR2VvbWV0cnkgd2hp
Y2ggd2lsbCBob2xkIHVuY29tbW9uIHBlci1ib3ggZ2VvbWV0cnkgbGlrZQorICAgICAgICBib3Jk
ZXItcmFkaXVzIGFuZCB0cmFuc2Zvcm1hdGlvbiBtYXRyaXguCisKKyAgICAgICAgQXQgdHJlZSBi
dWlsZGluZyB0aW1lLCBjb21wdXRlIGEgVHJhbnNmb3JtYXRpb25NYXRyaXggZm9yIHRoZSB0cmFu
c2Zvcm1zIG9uIGEgYm94LAorICAgICAgICB1c2luZyBhIHBpeGVsLXNuYXBwZWQgdHJhbnNmb3Jt
IG9yaWdpbi4gQWxzbyBzdG9yZSBhIGJpdCBvbiBEaXNwbGF5OjpTdHlsZSB0byBpbmRpY2F0ZQor
ICAgICAgICB0aGF0IGEgdHJhbnNmb3JtIGFwcGxpZXMgKHdoZW4gc2V0LCB3ZSBhc3N1bWUgdGhh
dCBCb3hSYXJlR2VvbWV0cnkgaXMgbm9uLW51bGwpLgorCisgICAgICAgIEF0IHBhaW50IHRpbWUs
IHVzZSB0aGUgY29tcHV0ZWQgbWF0cml4IHRvIGFkanVzdCB0aGUgQ1RNIHdoZW4gcGFpbnRpbmcg
YSBzdGFja2luZworICAgICAgICBjb250ZXh0LCBwb3N0LWNsaXBwaW5nIGFuZCBwcmUtZWZmZWN0
cy4gV2UgYWRqdXN0IHRoZSBib3gncyBtYXRyaXggdG8gbW92ZSB0aGUKKyAgICAgICAgYXBwbGll
ZCBvcmlnaW4gdG8gdGhlIG9yaWdpbiBvZiB0aGUgYm9yZGVyIGJveCwgYW5kIHRvIGFjY291bnQg
Zm9yIHRoZSBmYWN0IHRoYXQKKyAgICAgICAgZGVzY2VuZGFudHMgd2lsbCBjb250aW51ZSB0byBw
YWludCBpbiBhYnNvbHV0ZSBjb29yZGluYXRlcy4KKworICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBk
aXNwbGF5L2Nzcy9EaXNwbGF5Qm94RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5OjpCb3hGYWN0b3J5Ojpjb21wdXRlVHJhbnNmb3JtT3JpZ2luIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkJveEZhY3Rvcnk6OmNvbXB1dGVUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3hGYWN0b3J5Ojpjb25zdHJ1
Y3RCb3hSYXJlR2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94
RmFjdG9yeTo6c2V0dXBCb3hNb2RlbEJveCBjb25zdCk6CisgICAgICAgICogZGlzcGxheS9jc3Mv
RGlzcGxheUJveEZhY3RvcnkuaDoKKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNwbGF5Qm94TW9k
ZWxCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94TW9kZWxCb3g6OnNldEJv
eFJhcmVHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3hNb2RlbEJveDo6
aGFzQW5jZXN0b3JDbGlwIGNvbnN0KToKKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNwbGF5Qm94
TW9kZWxCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveE1vZGVsQm94OjpyYXJl
R2VvbWV0cnkgY29uc3QpOgorICAgICAgICAqIGRpc3BsYXkvY3NzL0Rpc3BsYXlCb3hSYXJlR2Vv
bWV0cnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNwbGF5Qm94UmFyZUdl
b21ldHJ5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlC
b3hNb2RlbEJveC5oLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94UmFyZUdlb21ldHJ5
Ojp0cmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94UmFyZUdl
b21ldHJ5OjpzZXRUcmFuc2Zvcm0pOgorICAgICAgICAqIGRpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQ
YWludGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OmFwcGx5QW5jZXN0b3JDbGlw
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OmFwcGx5RWZmZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5OjpDU1NQYWludGVyOjpwYWludEF0b21pY2FsbHlQYWludGVkQm94KToK
KyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNwbGF5U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheTo6U3R5bGU6OlN0eWxlKToKKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNwbGF5
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlN0eWxlOjpoYXNUcmFuc2Zvcm0g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6U3R5bGU6OnNldEhhc1RyYW5zZm9y
bSk6CisKIDIwMjAtMTEtMjUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQyBEaXNwbGF5XSBBZGQgYmFzaWMgb3BhY2l0eSBzdXBwb3J0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCBlZDcxYzZkNzM0OWJlZGE1NmE2YzkxZWNmMDBiMmE2ZWE5YzcwMmVkLi5i
YTAwNGQ3YjUwZDg1MDNlNGU1MWM2OGU5N2Q0NTRlYmJiNjg5N2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtODQwLDYgKzg0MCw3IEBAIGRpc3BsYXkvY3NzL0Rpc3BsYXlCb3hEZWNvcmF0aW9uUGFpbnRl
ci5jcHAKIGRpc3BsYXkvY3NzL0Rpc3BsYXlCb3hGYWN0b3J5LmNwcAogZGlzcGxheS9jc3MvRGlz
cGxheUJveE1vZGVsQm94LmNwcAogZGlzcGxheS9jc3MvRGlzcGxheUJveFBhaW50ZXIuY3BwCitk
aXNwbGF5L2Nzcy9EaXNwbGF5Qm94UmFyZUdlb21ldHJ5LmNwcAogZGlzcGxheS9jc3MvRGlzcGxh
eUNvbnRhaW5lckJveC5jcHAKIGRpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQYWludGVyLmNwcAogZGlz
cGxheS9jc3MvRGlzcGxheUZpbGxMYXllckltYWdlR2VvbWV0cnkuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2M3MGUxMWIz
NmY0YjgxMTVhZWZmMzY1YzM0OGJkMTc4NmRhODZlYi4uZDM4NzY5MzBiOGI1YjBhY2UxNDI2NGRj
MmZlZWNjOTZhOWU0NmVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTk2NSw2ICs1OTY1LDggQEAKIAkJMEYyNkE3QUIyMDU0
RkNFMTAwOTBBMTQxIC8qIE1hdGhNTFVua25vd25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTFVua25vd25FbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNkE3QUMyMDU1QzhENzAwOTBBMTQxIC8qIFhNTERvY3Vt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTERvY3VtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNkE3QUQyMDU2MjYxMDAwOTBB
MTQxIC8qIFNWR1Vua25vd25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNWR1Vua25vd25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYyODA4NjEyNTcwMTUxNzAwRkU2QzVBIC8qIERpc3BsYXlCb3hSYXJlR2VvbWV0cnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUJveFJhcmVHZW9tZXRyeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwRjI4MDg2MzI1NzAxNTE3MDBGRTZDNUEgLyogRGlzcGxheUJveFJh
cmVHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5Qm94UmFyZUdlb21ldHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyODNBOEQyMzU1ODJGODAwNDc5
NENBIC8qIFRoZW1lVHlwZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhlbWVUeXBlcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjgzQTkxMjM1NjMxMjYwMDQ3OTRDQSAv
KiBCb3JkZXJEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJvcmRlckRhdGEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjMyQkE0MTI1NEYzMjE2MDAxQUMzOEUgLyogRGlz
cGxheVBhaW50aW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UGFpbnRpbmdDb250
ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzgyNCw2ICsxNzgyNiw4IEBA
CiAJCQkJMEY5NDcyMUUyNTM0MDEwOTAwRjE1M0M4IC8qIERpc3BsYXlCb3hNb2RlbEJveC5oICov
LAogCQkJCTBGNjU2RkJEMjU0NUZENTcwMDIxOUY0QyAvKiBEaXNwbGF5Qm94UGFpbnRlci5jcHAg
Ki8sCiAJCQkJMEY2NTZGQkMyNTQ1RkQ1NjAwMjE5RjRDIC8qIERpc3BsYXlCb3hQYWludGVyLmgg
Ki8sCisJCQkJMEYyODA4NjMyNTcwMTUxNzAwRkU2QzVBIC8qIERpc3BsYXlCb3hSYXJlR2VvbWV0
cnkuY3BwICovLAorCQkJCTBGMjgwODYxMjU3MDE1MTcwMEZFNkM1QSAvKiBEaXNwbGF5Qm94UmFy
ZUdlb21ldHJ5LmggKi8sCiAJCQkJMEZGRjFCNzQyNTFCQzY1NzAwOTg3OTVBIC8qIERpc3BsYXlD
b250YWluZXJCb3guY3BwICovLAogCQkJCTBGRkYxQjdBMjUxQkM2NTcwMDk4Nzk1QSAvKiBEaXNw
bGF5Q29udGFpbmVyQm94LmggKi8sCiAJCQkJMEZGRjFCN0QyNTFCQzY1NzAwOTg3OTVBIC8qIERp
c3BsYXlDU1NQYWludGVyLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3Bs
YXkvY3NzL0Rpc3BsYXlCb3hGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3Nz
L0Rpc3BsYXlCb3hGYWN0b3J5LmNwcAppbmRleCBlMDgxYmFiYjJkNzgzYmJjYmYyZWYwOWEwYWE0
OTU1NDYxZTE1YTA2Li42MzY2YWQ0NWFmYjYyNzg1MzM5YjUwZTg5MzhkYjU3MzZmYWY1NDBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94RmFjdG9yeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveEZhY3RvcnkuY3Bw
CkBAIC0zMCwxNiArMzAsMTkgQEAKIAogI2luY2x1ZGUgIkRpc3BsYXlCb3hEZWNvcmF0aW9uRGF0
YS5oIgogI2luY2x1ZGUgIkRpc3BsYXlCb3hEZWNvcmF0aW9uUGFpbnRlci5oIgorI2luY2x1ZGUg
IkRpc3BsYXlCb3hSYXJlR2VvbWV0cnkuaCIKICNpbmNsdWRlICJEaXNwbGF5Q29udGFpbmVyQm94
LmgiCiAjaW5jbHVkZSAiRGlzcGxheUZpbGxMYXllckltYWdlR2VvbWV0cnkuaCIKICNpbmNsdWRl
ICJEaXNwbGF5SW1hZ2VCb3guaCIKICNpbmNsdWRlICJEaXNwbGF5VGV4dEJveC5oIgorI2luY2x1
ZGUgIkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIklubGluZUxpbmVHZW9tZXRyeS5oIgogI2lu
Y2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyQm94
LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIgogI2luY2x1ZGUg
IkxheW91dFJlcGxhY2VkQm94LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlRy
YW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBE
aXNwbGF5IHsKQEAgLTE5OSwxMiArMjAyLDYyIEBAIHN0ZDo6dW5pcXVlX3B0cjxCb3hEZWNvcmF0
aW9uRGF0YT4gQm94RmFjdG9yeTo6Y29uc3RydWN0Qm94RGVjb3JhdGlvbkRhdGEoY29uc3QKICAg
ICByZXR1cm4gYm94RGVjb3JhdGlvbkRhdGE7CiB9CiAKK0Zsb2F0UG9pbnQzRCBCb3hGYWN0b3J5
Ojpjb21wdXRlVHJhbnNmb3JtT3JpZ2luKGNvbnN0IEJveE1vZGVsQm94JiBib3gsIGNvbnN0IExh
eW91dDo6Qm94R2VvbWV0cnkmIGxheW91dEdlb21ldHJ5LCBjb25zdCBSZW5kZXJTdHlsZSYgcmVu
ZGVyU3R5bGUsIExheW91dFNpemUgb2Zmc2V0RnJvbVJvb3QpIGNvbnN0Cit7CisgICAgYXV0byB0
cmFuc2Zvcm1Cb3hSZWN0ID0gTGF5b3V0UmVjdCB7IExheW91dDo6Qm94R2VvbWV0cnk6OmJvcmRl
ckJveFJlY3QobGF5b3V0R2VvbWV0cnkpIH07CisKKyAgICBhdXRvIGFic29sdXRlT3JpZ2luID0g
TGF5b3V0UG9pbnQgeworICAgICAgICBvZmZzZXRGcm9tUm9vdC53aWR0aCgpICsgdHJhbnNmb3Jt
Qm94UmVjdC54KCkgKyB2YWx1ZUZvckxlbmd0aChyZW5kZXJTdHlsZS50cmFuc2Zvcm1PcmlnaW5Y
KCksIHRyYW5zZm9ybUJveFJlY3Qud2lkdGgoKSksCisgICAgICAgIG9mZnNldEZyb21Sb290Lmhl
aWdodCgpICsgdHJhbnNmb3JtQm94UmVjdC55KCkgKyB2YWx1ZUZvckxlbmd0aChyZW5kZXJTdHls
ZS50cmFuc2Zvcm1PcmlnaW5ZKCksIHRyYW5zZm9ybUJveFJlY3QuaGVpZ2h0KCkpCisgICAgfTsK
KworICAgIGF1dG8gc25hcHBlZEFic29sdXRlT3JpZ2luID0gcm91bmRQb2ludFRvRGV2aWNlUGl4
ZWxzKGFic29sdXRlT3JpZ2luLCBtX3BpeGVsU25hcHBpbmdGYWN0b3IpOworICAgIGF1dG8gYm94
UmVsYXRpdmVUcmFuc2Zvcm1PcmlnaW5YWSA9IHNuYXBwZWRBYnNvbHV0ZU9yaWdpbiAtIGJveC5h
YnNvbHV0ZUJvcmRlckJveFJlY3QoKS5sb2NhdGlvbigpOworCisgICAgcmV0dXJuIHsgYm94UmVs
YXRpdmVUcmFuc2Zvcm1PcmlnaW5YWS53aWR0aCgpLCBib3hSZWxhdGl2ZVRyYW5zZm9ybU9yaWdp
blhZLmhlaWdodCgpLCByZW5kZXJTdHlsZS50cmFuc2Zvcm1PcmlnaW5aKCkgfTsKK30KKworVHJh
bnNmb3JtYXRpb25NYXRyaXggQm94RmFjdG9yeTo6Y29tcHV0ZVRyYW5zZm9ybWF0aW9uTWF0cml4
KGNvbnN0IEJveE1vZGVsQm94JiBib3gsIGNvbnN0IExheW91dDo6Qm94R2VvbWV0cnkmIGxheW91
dEdlb21ldHJ5LCBjb25zdCBSZW5kZXJTdHlsZSYgcmVuZGVyU3R5bGUsIExheW91dFNpemUgb2Zm
c2V0RnJvbVJvb3QpIGNvbnN0Cit7CisgICAgYXV0byBib3hSZWxhdGl2ZVRyYW5zZm9ybU9yaWdp
biA9IGNvbXB1dGVUcmFuc2Zvcm1PcmlnaW4oYm94LCBsYXlvdXRHZW9tZXRyeSwgcmVuZGVyU3R5
bGUsIG9mZnNldEZyb21Sb290KTsKKworICAgIC8vIEZJWE1FOiBSZXNwZWN0IHRyYW5zZm9ybS1i
b3guCisgICAgYXV0byB0cmFuc2Zvcm1Cb3hSZWN0ID0gYm94LmFic29sdXRlQm9yZGVyQm94UmVj
dCgpOworCisgICAgLy8gRklYTUU6IFRoaXMgaXMgc2ltaWxhciB0byBSZW5kZXJTdHlsZTo6YXBw
bHlUcmFuc2Zvcm0oKSwgYnV0IHRoYXQgZmFpbHMgdG8gcGl4ZWwgc25hcCB0cmFuc2Zvcm0gb3Jp
Z2luLgorICAgIGF1dG8gdHJhbnNmb3JtID0gVHJhbnNmb3JtYXRpb25NYXRyaXggeyB9OworICAg
IHRyYW5zZm9ybS50cmFuc2xhdGUzZChib3hSZWxhdGl2ZVRyYW5zZm9ybU9yaWdpbi54KCksIGJv
eFJlbGF0aXZlVHJhbnNmb3JtT3JpZ2luLnkoKSwgYm94UmVsYXRpdmVUcmFuc2Zvcm1PcmlnaW4u
eigpKTsKKworICAgIGZvciAoYXV0byYgb3BlcmF0aW9uIDogcmVuZGVyU3R5bGUudHJhbnNmb3Jt
KCkub3BlcmF0aW9ucygpKQorICAgICAgICBvcGVyYXRpb24tPmFwcGx5KHRyYW5zZm9ybSwgdHJh
bnNmb3JtQm94UmVjdC5zaXplKCkpOworCisgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZTNkKC1ib3hS
ZWxhdGl2ZVRyYW5zZm9ybU9yaWdpbi54KCksIC1ib3hSZWxhdGl2ZVRyYW5zZm9ybU9yaWdpbi55
KCksIC1ib3hSZWxhdGl2ZVRyYW5zZm9ybU9yaWdpbi56KCkpOworICAgIHJldHVybiB0cmFuc2Zv
cm07CisKK30KKworc3RkOjp1bmlxdWVfcHRyPEJveFJhcmVHZW9tZXRyeT4gQm94RmFjdG9yeTo6
Y29uc3RydWN0Qm94UmFyZUdlb21ldHJ5KGNvbnN0IEJveE1vZGVsQm94JiBib3gsIGNvbnN0IExh
eW91dDo6Qm94JiBsYXlvdXRCb3gsIGNvbnN0IExheW91dDo6Qm94R2VvbWV0cnkmIGxheW91dEdl
b21ldHJ5LCBMYXlvdXRTaXplIG9mZnNldEZyb21Sb290KSBjb25zdAoreworICAgIGlmICghYm94
LnN0eWxlKCkuaGFzVHJhbnNmb3JtKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
YXV0byBib3hSYXJlR2VvbWV0cnkgPSBtYWtlVW5pcXVlPEJveFJhcmVHZW9tZXRyeT4oKTsKKwor
ICAgIGF1dG8gdHJhbnNmb3JtYXRpb25NYXRyaXggPSBjb21wdXRlVHJhbnNmb3JtYXRpb25NYXRy
aXgoYm94LCBsYXlvdXRHZW9tZXRyeSwgbGF5b3V0Qm94LnN0eWxlKCksIG9mZnNldEZyb21Sb290
KTsKKyAgICBib3hSYXJlR2VvbWV0cnktPnNldFRyYW5zZm9ybShXVEZNb3ZlKHRyYW5zZm9ybWF0
aW9uTWF0cml4KSk7CisKKyAgICByZXR1cm4gYm94UmFyZUdlb21ldHJ5OworfQorCiB2b2lkIEJv
eEZhY3Rvcnk6OnNldHVwQm94TW9kZWxCb3goQm94TW9kZWxCb3gmIGJveCwgY29uc3QgTGF5b3V0
OjpCb3gmIGxheW91dEJveCwgY29uc3QgTGF5b3V0OjpCb3hHZW9tZXRyeSYgbGF5b3V0R2VvbWV0
cnksIGNvbnN0IENvbnRhaW5pbmdCbG9ja0NvbnRleHQmIGNvbnRhaW5pbmdCbG9ja0NvbnRleHQs
IGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZUZvckJhY2tncm91bmQpIGNvbnN0CiB7CiAgICAgc2V0
dXBCb3hHZW9tZXRyeShib3gsIGxheW91dEJveCwgbGF5b3V0R2VvbWV0cnksIGNvbnRhaW5pbmdC
bG9ja0NvbnRleHQpOwogCisgICAgYXV0byBib3hSYXJlR2VvbWV0cnkgPSBjb25zdHJ1Y3RCb3hS
YXJlR2VvbWV0cnkoYm94LCBsYXlvdXRCb3gsIGxheW91dEdlb21ldHJ5LCBjb250YWluaW5nQmxv
Y2tDb250ZXh0Lm9mZnNldEZyb21Sb290KTsKKyAgICBib3guc2V0Qm94UmFyZUdlb21ldHJ5KFdU
Rk1vdmUoYm94UmFyZUdlb21ldHJ5KSk7CisKICAgICBhdXRvJiByZW5kZXJTdHlsZSA9IGxheW91
dEJveC5zdHlsZSgpOwotICAgIGlmICghKHN0eWxlRm9yQmFja2dyb3VuZCAmJiBzdHlsZUZvckJh
Y2tncm91bmQtPmhhc0JhY2tncm91bmQoKSkgJiYgIXJlbmRlclN0eWxlLmhhc0JvcmRlcigpKQor
ICAgIGlmICghKHN0eWxlRm9yQmFja2dyb3VuZCAmJiBzdHlsZUZvckJhY2tncm91bmQtPmhhc0Jh
Y2tncm91bmQoKSkgJiYgIXJlbmRlclN0eWxlLmhhc0JvcmRlcigpKSAvLyBGSVhNRTogTWlzc2Vz
IGJvcmRlci1yYWRpdXMuCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gYm94RGVjb3JhdGlv
bkRhdGEgPSBjb25zdHJ1Y3RCb3hEZWNvcmF0aW9uRGF0YShsYXlvdXRCb3gsIGxheW91dEdlb21l
dHJ5LCBzdHlsZUZvckJhY2tncm91bmQsIGNvbnRhaW5pbmdCbG9ja0NvbnRleHQub2Zmc2V0RnJv
bVJvb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJv
eEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hGYWN0b3J5
LmgKaW5kZXggNTVmNWE2ZDUzMWUxYTYwMWRkYmFiNjM2YzU2YWMyNTE0Y2M4ZWM3YS4uYWM1ZTkx
Zjk0OTI2ZWVmNTA4ZDZmZTMyMGVmZjUwYjczOTYyNDkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94RmFjdG9yeS5oCkBAIC0zMiw3ICszMiw5IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRmxvYXRQb2ludDNEOwogY2xhc3MgUmVuZGVyU3R5
bGU7CitjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIAogbmFtZXNwYWNlIExheW91dCB7CiBj
bGFzcyBCb3g7CkBAIC00Nyw2ICs0OSw3IEBAIG5hbWVzcGFjZSBEaXNwbGF5IHsKIGNsYXNzIEJv
eDsKIGNsYXNzIEJveERlY29yYXRpb25EYXRhOwogY2xhc3MgQm94TW9kZWxCb3g7CitjbGFzcyBC
b3hSYXJlR2VvbWV0cnk7CiBjbGFzcyBDb250YWluZXJCb3g7CiBjbGFzcyBTdHlsZTsKIApAQCAt
ODAsNiArODMsMTEgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxCb3hEZWNvcmF0
aW9uRGF0YT4gY29uc3RydWN0Qm94RGVjb3JhdGlvbkRhdGEoY29uc3QgTGF5b3V0OjpCb3gmLCBj
b25zdCBMYXlvdXQ6OkJveEdlb21ldHJ5JiwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlRm9yQmFj
a2dyb3VuZCwgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tUm9vdCkgY29uc3Q7CiAKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8Qm94UmFyZUdlb21ldHJ5PiBjb25zdHJ1Y3RCb3hSYXJlR2VvbWV0cnkoY29uc3Qg
Qm94TW9kZWxCb3gmIGJveCwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBMYXlvdXQ6OkJveEdl
b21ldHJ5JiwgTGF5b3V0U2l6ZSBvZmZzZXRGcm9tUm9vdCkgY29uc3Q7CisKKyAgICBGbG9hdFBv
aW50M0QgY29tcHV0ZVRyYW5zZm9ybU9yaWdpbihjb25zdCBCb3hNb2RlbEJveCYsIGNvbnN0IExh
eW91dDo6Qm94R2VvbWV0cnkmLCBjb25zdCBSZW5kZXJTdHlsZSYsIExheW91dFNpemUgb2Zmc2V0
RnJvbVJvb3QpIGNvbnN0OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNvbXB1dGVUcmFuc2Zv
cm1hdGlvbk1hdHJpeChjb25zdCBCb3hNb2RlbEJveCYsIGNvbnN0IExheW91dDo6Qm94R2VvbWV0
cnkmLCBjb25zdCBSZW5kZXJTdHlsZSYsIExheW91dFNpemUgb2Zmc2V0RnJvbVJvb3QpIGNvbnN0
OworCiAgICAgc3RhdGljIGNvbnN0IExheW91dDo6Q29udGFpbmVyQm94KiBkb2N1bWVudEVsZW1l
bnRCb3hGcm9tUm9vdEJveChjb25zdCBMYXlvdXQ6OkNvbnRhaW5lckJveCYgcm9vdExheW91dEJv
eCk7CiAgICAgc3RhdGljIGNvbnN0IExheW91dDo6Qm94KiBib2R5Qm94RnJvbVJvb3RCb3goY29u
c3QgTGF5b3V0OjpDb250YWluZXJCb3gmIHJvb3RMYXlvdXRCb3gpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94TW9kZWxCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveE1vZGVsQm94LmNwcAppbmRleCA4ODk5NWE0
MzExYjJhZTUyYWRkYjY1MGY5YjZlNjk1YjY2ZGZhYjczLi5mMTI4MDI1OTIzZGYwODViOWUxOTZl
NjAyMjlhMTc0Y2Y1YmM1NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nz
cy9EaXNwbGF5Qm94TW9kZWxCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3Nz
L0Rpc3BsYXlCb3hNb2RlbEJveC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRp
c3BsYXlCb3hDbGlwLmgiCiAjaW5jbHVkZSAiRGlzcGxheUJveERlY29yYXRpb25EYXRhLmgiCisj
aW5jbHVkZSAiRGlzcGxheUJveFJhcmVHZW9tZXRyeS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC00OCw2
ICs0OSwxMSBAQCB2b2lkIEJveE1vZGVsQm94OjpzZXRCb3hEZWNvcmF0aW9uRGF0YShzdGQ6OnVu
aXF1ZV9wdHI8Qm94RGVjb3JhdGlvbkRhdGE+JiYgZGVjbwogICAgIG1fYm94RGVjb3JhdGlvbkRh
dGEgPSBXVEZNb3ZlKGRlY29yYXRpb25EYXRhKTsKIH0KIAordm9pZCBCb3hNb2RlbEJveDo6c2V0
Qm94UmFyZUdlb21ldHJ5KHN0ZDo6dW5pcXVlX3B0cjxCb3hSYXJlR2VvbWV0cnk+JiYgcmFyZUdl
b21ldHJ5KQoreworICAgIG1fYm94UmFyZUdlb21ldHJ5ID0gV1RGTW92ZShyYXJlR2VvbWV0cnkp
OworfQorCiBGbG9hdFJvdW5kZWRSZWN0IEJveE1vZGVsQm94Ojpib3JkZXJSb3VuZGVkUmVjdCgp
IGNvbnN0CiB7CiAgICAgYXV0byBib3JkZXJSZWN0ID0gRmxvYXRSb3VuZGVkUmVjdCB7IGFic29s
dXRlQm9yZGVyQm94UmVjdCgpLCB7IH0gfTsKQEAgLTc0LDYgKzgwLDExIEBAIHZvaWQgQm94TW9k
ZWxCb3g6OnNldEFuY2VzdG9yQ2xpcChSZWZQdHI8Qm94Q2xpcD4mJiBjbGlwKQogICAgIG1fYW5j
ZXN0b3JDbGlwID0gV1RGTW92ZShjbGlwKTsKIH0KIAorYm9vbCBCb3hNb2RlbEJveDo6aGFzQW5j
ZXN0b3JDbGlwKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hbmNlc3RvckNsaXAgJiYgbV9hbmNl
c3RvckNsaXAtPmNsaXBSZWN0KCk7Cit9CisKIFJlZlB0cjxCb3hDbGlwPiBCb3hNb2RlbEJveDo6
Y2xpcEZvckRlc2NlbmRhbnRzKCkgY29uc3QKIHsKICAgICBpZiAoIXN0eWxlKCkuaGFzQ2xpcHBl
ZE92ZXJmbG93KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNw
bGF5Qm94TW9kZWxCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hN
b2RlbEJveC5oCmluZGV4IDhmMDU4Mzg2OTEwYzY3MTdjZjQxMGRjNGY1NWZlMTFmYzliZGQ1MDQu
LmM0ZTBmZjMwNDAxNzdlZjdlYmIwZGQyMjg2ZDU1N2NlODNhOWI0YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hNb2RlbEJveC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hNb2RlbEJveC5oCkBAIC0zNSw2ICszNSw3
IEBAIG5hbWVzcGFjZSBEaXNwbGF5IHsKIAogY2xhc3MgQm94Q2xpcDsKIGNsYXNzIEJveERlY29y
YXRpb25EYXRhOworY2xhc3MgQm94UmFyZUdlb21ldHJ5OwogCiAvLyBBIGJveCBpbiB0aGUgc2Vu
c2Ugb2YgdGhlIENTUyBCb3ggTW9kZWwuCiAvLyBUaGlzIGJveCBjYW4gZHJhdyBiYWNrZ3JvdW5k
cyBhbmQgYm9yZGVycy4KQEAgLTQ5LDcgKzUwLDEwIEBAIHB1YmxpYzoKICAgICBBYnNvbHV0ZUZs
b2F0UmVjdCBhYnNvbHV0ZUNvbnRlbnRCb3hSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50
Qm94UmVjdDsgfQogCiAgICAgY29uc3QgQm94RGVjb3JhdGlvbkRhdGEqIGJveERlY29yYXRpb25E
YXRhKCkgY29uc3QgeyByZXR1cm4gbV9ib3hEZWNvcmF0aW9uRGF0YS5nZXQoKTsgfQorICAgIGNv
bnN0IEJveFJhcmVHZW9tZXRyeSogcmFyZUdlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4gbV9ib3hS
YXJlR2VvbWV0cnkuZ2V0KCk7IH0KKwogICAgIGNvbnN0IEJveENsaXAqIGFuY2VzdG9yQ2xpcCgp
IGNvbnN0IHsgcmV0dXJuIG1fYW5jZXN0b3JDbGlwLmdldCgpOyB9CisgICAgYm9vbCBoYXNBbmNl
c3RvckNsaXAoKSBjb25zdDsKIAogICAgIEZsb2F0Um91bmRlZFJlY3QgYm9yZGVyUm91bmRlZFJl
Y3QoKSBjb25zdDsKICAgICBGbG9hdFJvdW5kZWRSZWN0IGlubmVyQm9yZGVyUm91bmRlZFJlY3Qo
KSBjb25zdDsKQEAgLTYyLDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEFic29sdXRl
Q29udGVudEJveFJlY3QoY29uc3QgQWJzb2x1dGVGbG9hdFJlY3QmIGJveCkgeyBtX2NvbnRlbnRC
b3hSZWN0ID0gYm94OyB9CiAKICAgICB2b2lkIHNldEJveERlY29yYXRpb25EYXRhKHN0ZDo6dW5p
cXVlX3B0cjxCb3hEZWNvcmF0aW9uRGF0YT4mJik7CisgICAgdm9pZCBzZXRCb3hSYXJlR2VvbWV0
cnkoc3RkOjp1bmlxdWVfcHRyPEJveFJhcmVHZW9tZXRyeT4mJik7CiAKICAgICB2b2lkIHNldEFu
Y2VzdG9yQ2xpcChSZWZQdHI8Qm94Q2xpcD4mJik7CiAgICAgUmVmUHRyPEJveENsaXA+IGNsaXBG
b3JEZXNjZW5kYW50cygpIGNvbnN0OwpAQCAtNzAsNiArNzUsNyBAQCBwcml2YXRlOgogICAgIEFi
c29sdXRlRmxvYXRSZWN0IG1fY29udGVudEJveFJlY3Q7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Qm94RGVjb3JhdGlvbkRhdGE+IG1fYm94RGVjb3JhdGlvbkRhdGE7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEJveFJhcmVHZW9tZXRyeT4gbV9ib3hSYXJlR2VvbWV0cnk7CiAgICAgUmVmUHRyPEJveENs
aXA+IG1fYW5jZXN0b3JDbGlwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlz
cGxheS9jc3MvRGlzcGxheUJveFJhcmVHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kaXNw
bGF5L2Nzcy9EaXNwbGF5Qm94UmFyZUdlb21ldHJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjdhMjA4OTc4
MjMxMGQ2ZjFjMGEyYmMyMDk3YWFiMGExYTZjZTUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveFJhcmVHZW9tZXRyeS5jcHAKQEAgLTAsMCAr
MSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNw
bGF5Qm94UmFyZUdlb21ldHJ5LmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKKworI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K25hbWVzcGFjZSBEaXNwbGF5IHsKKworCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5Cit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hS
YXJlR2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hSYXJl
R2VvbWV0cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjA1MTkwNzRmZWE1NmU5YjUwYjJkNDYzZDYyNzZkYzhk
MTQzNGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlz
cGxheUJveFJhcmVHZW9tZXRyeS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5j
bHVkZSAiRmxvYXRQb2ludDNELmgiCisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2lu
Y2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5IHsKKworLy8gU3Rv
cmFnZSBmb3IgYm94IGdlb21ldHJ5IHdoaWNoIGlzIG9ubHkgdXNlZCBvbiBib3hlcyB3aXRoIHJh
cmUgc3R5bGUsIGxpa2UgdHJhbnNmb3JtcyBvciBib3JkZXItcmFkaXVzLgorY2xhc3MgQm94UmFy
ZUdlb21ldHJ5IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJ
RklFUihCb3hSYXJlR2VvbWV0cnkpOworcHVibGljOgorCisgICAgLy8gRklYTUU6IE1vdmUgYm9y
ZGVyIHJhZGlpIGhlcmUuCisKKworICAgIC8vIEZyb20gdHJhbnNmb3JtLCB0cmFuc2xhdGUsIHJv
dGF0ZSwgc2NhbGUgcHJvcGVydGllcy4KKyAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2Zvcm07IH0KKyAgICB2b2lkIHNldFRy
YW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYmIHRyYW5zZm9ybSkgeyBtX3RyYW5zZm9ybSA9
IFdURk1vdmUodHJhbnNmb3JtKTsgfQorCitwcml2YXRlOgorICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IG1fdHJhbnNmb3JtOworfTsKKworfSAvLyBuYW1lc3BhY2UgRGlzcGxheQorfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQ
YWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQYWludGVy
LmNwcAppbmRleCBkNDY3ODJmYjhjMGU4OTY1NmU4ZDViNjcyZTNkZjlkNjU1NjViZDNlLi5lMjli
YmVmMjc2YWVlM2JjNGVlMDZlYThmZjU4Zjg2Y2U5OTQyMTkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Q1NTUGFpbnRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUNTU1BhaW50ZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiRGlzcGxheVRyZWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXkgewpAQCAtNDgsMTQgKzQ5
LDEyIEBAIHN0YXRpYyB2b2lkIGFwcGx5Q2xpcElmTmVjZXNzYXJ5KGNvbnN0IEJveCYgYm94LCBQ
YWludGluZ0NvbnRleHQmIHBhaW50aW5nQ29udGV4CiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBh
cHBseUFuY2VzdG9yQ2xpcChjb25zdCBCb3hNb2RlbEJveCYgYm94LCBQYWludGluZ0NvbnRleHQm
IHBhaW50aW5nQ29udGV4dCwgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciYgc3RhdGVTYXZlcikK
K3N0YXRpYyB2b2lkIGFwcGx5QW5jZXN0b3JDbGlwKGNvbnN0IEJveE1vZGVsQm94JiBib3gsIFBh
aW50aW5nQ29udGV4dCYgcGFpbnRpbmdDb250ZXh0KQogewogICAgIGF1dG8qIGJveENsaXAgPSBi
b3guYW5jZXN0b3JDbGlwKCk7CiAgICAgaWYgKCFib3hDbGlwIHx8ICFib3hDbGlwLT5jbGlwUmVj
dCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzdGF0ZVNhdmVyLnNhdmUoKTsKLQogICAgIGlm
ICghYm94Q2xpcC0+YWZmZWN0ZWRCeUJvcmRlclJhZGl1cygpKSB7CiAgICAgICAgIHBhaW50aW5n
Q29udGV4dC5jb250ZXh0LmNsaXAoKmJveENsaXAtPmNsaXBSZWN0KCkpOwogICAgICAgICByZXR1
cm47CkBAIC02NSw3ICs2NCw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5QW5jZXN0b3JDbGlwKGNvbnN0
IEJveE1vZGVsQm94JiBib3gsIFBhaW50aW5nQ29udGV4dCYgcGFpbnRpbmdDCiAgICAgICAgIHBh
aW50aW5nQ29udGV4dC5jb250ZXh0LmNsaXBSb3VuZGVkUmVjdChyb3VuZGVkUmVjdCk7CiB9CiAK
LXN0YXRpYyB2b2lkIGFwcGx5RWZmZWN0cyhjb25zdCBCb3gmIGJveCwgUGFpbnRpbmdDb250ZXh0
JiwgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciYsIFRyYW5zcGFyZW5jeUxheWVyU2NvcGUmIHRy
YW5zcGFyZW5jeVNjb3BlKQorc3RhdGljIHZvaWQgYXBwbHlFZmZlY3RzKGNvbnN0IEJveCYgYm94
LCBQYWludGluZ0NvbnRleHQmLCBUcmFuc3BhcmVuY3lMYXllclNjb3BlJiB0cmFuc3BhcmVuY3lT
Y29wZSkKIHsKICAgICBpZiAoYm94LnN0eWxlKCkub3BhY2l0eSgpIDwgMSkgewogICAgICAgICAv
LyBGSVhNRTogQ29tcHV0ZSBhbmQgc2V0IGEgY2xpcCB0byBhdm9pZCBjcmVhdGluZyBsYXJnZSB0
cmFuc3BhcmVuY3kgbGF5ZXJzLgpAQCAtMTI3LDEzICsxMjYsMzQgQEAgdm9pZCBDU1NQYWludGVy
OjpwYWludEF0b21pY2FsbHlQYWludGVkQm94KGNvbnN0IEJveCYgYm94LCBQYWludGluZ0NvbnRl
eHQmIHBhaW4KIHsKICAgICBVTlVTRURfUEFSQU0oZGlydHlSZWN0KTsKIAotICAgIGF1dG8gc3Rh
dGVTYXZlciA9IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgeyBwYWludGluZ0NvbnRleHQuY29u
dGV4dCwgZmFsc2UgfTsKKyAgICBhdXRvIG5lZWRUb1NhdmVTdGF0ZSA9IFtdKGNvbnN0IEJveCYg
Ym94KSB7CisgICAgICAgIGlmICghaXM8Qm94TW9kZWxCb3g+KGJveCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBhdXRvJiBib3hNb2RlbEJveCA9IGRvd25j
YXN0PEJveE1vZGVsQm94Pihib3gpOworICAgICAgICByZXR1cm4gYm94TW9kZWxCb3guaGFzQW5j
ZXN0b3JDbGlwKCkgfHwgYm94TW9kZWxCb3guc3R5bGUoKS5oYXNUcmFuc2Zvcm0oKTsKKyAgICB9
OworCisgICAgYXV0byBzdGF0ZVNhdmVyID0gR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciB7IHBh
aW50aW5nQ29udGV4dC5jb250ZXh0LCBuZWVkVG9TYXZlU3RhdGUoYm94KSB9OwogCiAgICAgaWYg
KGlzPEJveE1vZGVsQm94Pihib3gpKQotICAgICAgICBhcHBseUFuY2VzdG9yQ2xpcChkb3duY2Fz
dDxCb3hNb2RlbEJveD4oYm94KSwgcGFpbnRpbmdDb250ZXh0LCBzdGF0ZVNhdmVyKTsKKyAgICAg
ICAgYXBwbHlBbmNlc3RvckNsaXAoZG93bmNhc3Q8Qm94TW9kZWxCb3g+KGJveCksIHBhaW50aW5n
Q29udGV4dCk7CisKKyAgICBpZiAoaXM8Qm94TW9kZWxCb3g+KGJveCkgJiYgYm94LnN0eWxlKCku
aGFzVHJhbnNmb3JtKCkpIHsKKyAgICAgICAgYXV0byB0cmFuc2Zvcm1hdGlvbk1hdHJpeCA9IGRv
d25jYXN0PEJveE1vZGVsQm94Pihib3gpLnJhcmVHZW9tZXRyeSgpLT50cmFuc2Zvcm0oKTsKKyAg
ICAgICAgYXV0byBhYnNvbHV0ZUJvcmRlckJveCA9IGJveC5hYnNvbHV0ZUJveFJlY3QoKTsKKwor
ICAgICAgICAvLyBFcXVpdmFsZW50IHRvIGFkanVzdGluZyB0aGUgQ1RNIHNvIHRoYXQgdGhlIG9y
aWdpbiBpcyBpbiB0aGUgdG9wIGxlZnQgb2YgdGhlIGJvcmRlciBib3guCisgICAgICAgIHRyYW5z
Zm9ybWF0aW9uTWF0cml4LnRyYW5zbGF0ZVJpZ2h0KGFic29sdXRlQm9yZGVyQm94LngoKSwgYWJz
b2x1dGVCb3JkZXJCb3gueSgpKTsKKyAgICAgICAgLy8gQWxsb3cgZGVzY2VuZGFudHMgcmVuZGVy
ZWQgdXNpbmcgYWJzb2x1dGUgY29vcmRpbmF0ZXMgdG8gcGFpbnQgcmVsYXRpdmUgdG8gdGhpcyBi
b3guCisgICAgICAgIHRyYW5zZm9ybWF0aW9uTWF0cml4LnRyYW5zbGF0ZSgtYWJzb2x1dGVCb3Jk
ZXJCb3gueCgpLCAtYWJzb2x1dGVCb3JkZXJCb3gueSgpKTsKKworICAgICAgICBhdXRvIGFmZmlu
ZVRyYW5zZm9ybSA9IHRyYW5zZm9ybWF0aW9uTWF0cml4LnRvQWZmaW5lVHJhbnNmb3JtKCk7Cisg
ICAgICAgIHBhaW50aW5nQ29udGV4dC5jb250ZXh0LmNvbmNhdENUTShhZmZpbmVUcmFuc2Zvcm0p
OworICAgIH0KIAogICAgIGF1dG8gdHJhbnNwYXJlbmN5U2NvcGUgPSBUcmFuc3BhcmVuY3lMYXll
clNjb3BlIHsgcGFpbnRpbmdDb250ZXh0LmNvbnRleHQsIDEsIGZhbHNlIH07Ci0gICAgYXBwbHlF
ZmZlY3RzKGJveCwgcGFpbnRpbmdDb250ZXh0LCBzdGF0ZVNhdmVyLCB0cmFuc3BhcmVuY3lTY29w
ZSk7CisgICAgYXBwbHlFZmZlY3RzKGJveCwgcGFpbnRpbmdDb250ZXh0LCB0cmFuc3BhcmVuY3lT
Y29wZSk7CiAKICAgICBCb3hQYWludGVyOjpwYWludEJveChib3gsIHBhaW50aW5nQ29udGV4dCwg
ZGlydHlSZWN0KTsKICAgICBpZiAoIWlzPENvbnRhaW5lckJveD4oYm94KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlTdHlsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5U3R5bGUuY3BwCmluZGV4IGM1NWI2MjE0NjA2NGIzMDcw
MDdlZTdhYzk1NjcwMmVlYTNkNWYwOGEuLmVlNTY1MmQ1Mjc3MDgxM2YxNTZlZDJkMjcwNDI0ZGYw
NGI1Yzc3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlT
dHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVN0eWxlLmNw
cApAQCAtMTA0LDYgKzEwNCw3IEBAIFN0eWxlOjpTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZUZvckJhY2tncm91bmQpCiAKICAgICBzZXRJc1Bv
c2l0aW9uZWQoc3R5bGUucG9zaXRpb24oKSAhPSBQb3NpdGlvblR5cGU6OlN0YXRpYyk7CiAgICAg
c2V0SXNGbG9hdGluZyhzdHlsZS5mbG9hdGluZygpICE9IEZsb2F0OjpObyk7CisgICAgc2V0SGFz
VHJhbnNmb3JtKHN0eWxlLmhhc1RyYW5zZm9ybSgpKTsKIH0KIAogdm9pZCBTdHlsZTo6c2V0dXBC
YWNrZ3JvdW5kKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvZGlzcGxh
eS9jc3MvRGlzcGxheVN0eWxlLmgKaW5kZXggZGMyNTZmOWM0ZGE5ZDI3ZDVjZGJmYTQ2MTg5NTM4
ZDY1NDZkMmMzZS4uNjQyZDU5NGIwNDY4NDJmNjZlOWJiNmQ4YTVlZmQ2ZjdjMjI1OWJhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVN0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVN0eWxlLmgKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJOaW5lUGllY2VJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29u
c3RhbnRzLmgiCiAjaW5jbHVkZSAiVGFiU2l6ZS5oIgorI2luY2x1ZGUgIlRyYW5zZm9ybU9wZXJh
dGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
blNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTQsOCArNTUsOSBAQCBjbGFz
cyBTdHlsZSB7CiBwdWJsaWM6CiAKICAgICBlbnVtIGNsYXNzIEZsYWdzIDogdWludDhfdCB7Ci0g
ICAgICAgIFBvc2l0aW9uZWQgID0gMSA8PCAwLAotICAgICAgICBGbG9hdGluZyAgICA9IDEgPDwg
MSwKKyAgICAgICAgUG9zaXRpb25lZCAgICAgID0gMSA8PCAwLAorICAgICAgICBGbG9hdGluZyAg
ICAgICAgPSAxIDw8IDEsCisgICAgICAgIEhhc1RyYW5zZm9ybSAgICA9IDEgPDwgMiwKICAgICB9
OwogCiAgICAgZXhwbGljaXQgU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKTsKQEAgLTc4LDYgKzgw
LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9m
bGFncy5jb250YWlucyhGbGFnczo6UG9zaXRpb25lZCk7IH0KICAgICBib29sIGlzRmxvYXRpbmco
KSBjb25zdCB7IHJldHVybiBtX2ZsYWdzLmNvbnRhaW5zKEZsYWdzOjpGbG9hdGluZyk7IH0KIAor
ICAgIC8vIEp1c3QgdGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSAobm90IHRyYW5zbGF0ZSwgcm90YXRl
LCBzY2FsZSkuCisgICAgYm9vbCBoYXNUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2ZsYWdz
LmNvbnRhaW5zKEZsYWdzOjpIYXNUcmFuc2Zvcm0pOyB9CisKICAgICBib29sIHBhcnRpY2lwYXRl
c0luWk9yZGVyU29ydGluZygpIGNvbnN0IHsgcmV0dXJuIGlzUG9zaXRpb25lZCgpIHx8IGlzU3Rh
Y2tpbmdDb250ZXh0KCk7IH0KIAogICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9udENhc2NhZGU7IH0KQEAgLTEwMSwxMyArMTA2LDE0IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHNldElzUG9zaXRpb25lZChib29sIHZhbHVlKSB7IG1fZmxhZ3Mu
c2V0KHsgRmxhZ3M6OlBvc2l0aW9uZWQgfSwgdmFsdWUpOyB9CiAgICAgdm9pZCBzZXRJc0Zsb2F0
aW5nKGJvb2wgdmFsdWUpIHsgbV9mbGFncy5zZXQoeyBGbGFnczo6RmxvYXRpbmcgfSwgdmFsdWUp
OyB9CisgICAgdm9pZCBzZXRIYXNUcmFuc2Zvcm0oYm9vbCB2YWx1ZSkgeyBtX2ZsYWdzLnNldCh7
IEZsYWdzOjpIYXNUcmFuc2Zvcm0gfSwgdmFsdWUpOyB9CiAKICAgICBDb2xvciBtX2NvbG9yOwog
ICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwogCiAgICAgUmVmUHRyPEZpbGxMYXllcj4gbV9i
YWNrZ3JvdW5kTGF5ZXJzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaGFkb3dEYXRhPiBtX2JveFNo
YWRvdzsKLSAgICAKKwogICAgIE92ZXJmbG93IG1fb3ZlcmZsb3dYOwogICAgIE92ZXJmbG93IG1f
b3ZlcmZsb3dZOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>