<?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>11736</bug_id>
          
          <creation_ts>2006-12-01 14:53:02 -0800</creation_ts>
          <short_desc>[S60] Add platform scrollbars support</short_desc>
          <delta_ts>2006-12-15 14:41:20 -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>Forms</component>
          <version>420+</version>
          <rep_platform>S60 Emulator</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Yael">yael</assigned_to>
          <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>43628</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2006-12-01 14:53:02 -0800</bug_when>
    <thetext>Scrollbars support is added behind feature flag, which is disabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43634</commentid>
    <comment_count>1</comment_count>
      <attachid>11709</attachid>
    <who name="Yael">yael</who>
    <bug_when>2006-12-01 15:19:39 -0800</bug_when>
    <thetext>Created attachment 11709
Feature implementation, behind flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43440</commentid>
    <comment_count>2</comment_count>
      <attachid>11709</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2006-12-04 07:12:51 -0800</bug_when>
    <thetext>Comment on attachment 11709
Feature implementation, behind flag

r = me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43443</commentid>
    <comment_count>3</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2006-12-04 07:31:52 -0800</bug_when>
    <thetext>Completed: At revision: 17996  
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41670</commentid>
    <comment_count>4</comment_count>
    <who name="Krishna">krishnamurty.podipireddy</who>
    <bug_when>2006-12-15 14:41:20 -0800</bug_when>
    <thetext>
Verified and Closed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11709</attachid>
            <date>2006-12-01 15:19:39 -0800</date>
            <delta_ts>2006-12-04 07:12:51 -0800</delta_ts>
            <desc>Feature implementation, behind flag</desc>
            <filename>MyBrilliantWork.patch</filename>
            <type>text/plain</type>
            <size>57209</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNzk3OSkNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDQ0IEBADQorMjAwNi0xMi0wMSAgeWFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lh
LmNvbT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKyAgICAgICAg
REVTQzogW1M2MF0gQWRkIHBsYXRmb3JtIHNjcm9sbGJhcnMgc3VwcG9ydCwgYmVoaW5kIGZlYXR1
cmUgZmxhZw0KKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE3MzYgDQorDQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL2luYy9CckN0bC5oOg0KKyAgICAg
ICAgKE1Cckhpc3RvcnlJbnRlcmZhY2U6On5NQnJIaXN0b3J5SW50ZXJmYWNlKToNCisgICAgICAg
IChOT05TSEFSQUJMRV9DTEFTUyk6DQorICAgICAgICAoQ0JyQ3RsOjpXbWxFbmdpbmVJbnRlcmZh
Y2UpOg0KKyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9pbmMvQnJDdGxTY3JvbGxpbmdQcm92aWRl
ci5oOg0KKyAgICAgICAgKE5PTlNIQVJBQkxFX0NMQVNTKToNCisgICAgICAgICogQnJvd3NlckNv
bnRyb2wvc3JjL0JyQ3RsLmNwcDoNCisgICAgICAgIChDQnJDdGw6OkNvbnN0cnVjdEwpOg0KKyAg
ICAgICAgKENCckN0bDo6fkNCckN0bCk6DQorICAgICAgICAoQ0JyQ3RsOjpEcmF3U2Nyb2xsYmFy
QmFja2dyb3VuZCk6DQorICAgICAgICAoQ0JyQ3RsOjpNb3BTdXBwbHlPYmplY3QpOg0KKyAgICAg
ICAgKENCckN0bDo6RHJhdyk6DQorICAgICAgICAoQ0JyQ3RsOjpIYW5kbGVSZXNvdXJjZUNoYW5n
ZSk6DQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL3NyYy9CckN0bFNjcm9sbGluZ1Byb3ZpZGVy
LmNwcDoNCisgICAgICAgIChDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6TmV3TCk6DQorICAgICAg
ICAoQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OkNvbnN0cnVjdEwpOg0KKyAgICAgICAgKENCckN0
bFNjcm9sbGluZ1Byb3ZpZGVyOjp+Q0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXIpOg0KKyAgICAgICAg
KENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpVcGRhdGVWU2Nyb2xsQmFyTCk6DQorICAgICAgICAo
Q0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OlVwZGF0ZUhTY3JvbGxCYXJMKToNCisgICAgICAgIChD
QnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6Tm90aWZ5TGF5b3V0Q2hhbmdlKToNCisgICAgICAgIChD
QnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6VlNjcm9sbEJhcldpZHRoKToNCisgICAgICAgIChDQnJD
dGxTY3JvbGxpbmdQcm92aWRlcjo6SFNjcm9sbEJhckhlaWdodCk6DQorICAgICAgICAoQ0JyQ3Rs
U2Nyb2xsaW5nUHJvdmlkZXI6OlZTY3JvbGxCYXIpOg0KKyAgICAgICAgKENCckN0bFNjcm9sbGlu
Z1Byb3ZpZGVyOjpIU2Nyb2xsQmFyKToNCisgICAgICAgIChDQnJDdGxTY3JvbGxpbmdQcm92aWRl
cjo6U2Nyb2xsQmFyQ29ybmVyV2luZG93KToNCisgICAgICAgIChDQnJDdGxTY3JvbGxpbmdQcm92
aWRlcjo6U2V0U2Nyb2xsRGlzcGxheVJlY3QpOg0KKyAgICAgICAgKENCckN0bFNjcm9sbGluZ1By
b3ZpZGVyOjpSZXNpemVCckN0bFZpZXcpOg0KKyAgICAgICAgKENCckN0bFNjcm9sbGluZ1Byb3Zp
ZGVyOjpTaGlmdEJyQ3RsVmlldyk6DQorICAgICAgICAoQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6
OkhhbmRsZVNjcm9sbEV2ZW50TCk6DQorICAgICAgICAoQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6
OlNraW5DaGFuZ2VkTCk6DQorICAgICAgICAoQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OkRyYXdC
YWNrZ3JvdW5kKToNCisgICAgICAgICogQnJvd3NlclZpZXcvc3JjL1dlYktpdENvbnRyb2wuY3Bw
Og0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpGaW5hbFByb2dyZXNzQ29tcGxldGUpOg0KKyAg
ICAgICAgKiBDaGFuZ2VMb2c6DQorDQogMjAwNi0xMS0zMCAgeWFoYXJvbiAgPHlhZWwuYWhhcm9u
QG5va2lhLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5IFlvbmdqdW4gPHlvbmdqdS56aGFu
Z0Bub2tpYS5jb20+DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bC5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bC5oCShyZXZpc2lv
biAxNzk2OCkNCisrKyBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsLmgJKHdvcmtpbmcg
Y29weSkNCkBAIC04OSw2MSArODksNjYgQEAgY2xhc3MgQ1BhZ2VTY2FsZXI7DQogY2xhc3MgTVdL
V21sSW50ZXJmYWNlOw0KIGNsYXNzIENXZWJLaXRTdXJmYWNlOw0KIGNsYXNzIENQb3N0RGF0YVBh
cnRzOw0KKyNpZmRlZiBSRF9CUk9XU0VSX1NDUk9MTEJBUlMNCitjbGFzcyBDQWtuc0Jhc2ljQmFj
a2dyb3VuZENvbnRyb2xDb250ZXh0Ow0KK2NsYXNzICBNQWtuc1NraW5JbnN0YW5jZTsNCisjZW5k
aWYNCiANCiAvLyBDTEFTUyBERUNMQVJBVElPTg0KIGNsYXNzIE1Cckhpc3RvcnlJbnRlcmZhY2Ug
ew0KLSAgcHVibGljOiAvLyBOZXcgZnVuY3Rpb25zDQotDQotICAgIC8qKg0KLSAgICAgKiB2aXJ0
dWFsIGRlc3RydWN0b3INCi0gICAgICovDQotICAgIGlubGluZSB2aXJ0dWFsIH5NQnJIaXN0b3J5
SW50ZXJmYWNlKCkge307DQotDQorICAgIHB1YmxpYzogLy8gTmV3IGZ1bmN0aW9ucw0KKyAgICAg
ICAgDQorICAgICAgICAgICAgLyoqDQorICAgICAgICAgICAgKiB2aXJ0dWFsIGRlc3RydWN0b3IN
CisgICAgICAgICovDQorICAgICAgICBpbmxpbmUgdmlydHVhbCB+TUJySGlzdG9yeUludGVyZmFj
ZSgpIHt9Ow0KKyAgICAgICAgDQogICAgICAgICB2aXJ0dWFsIENGYnNCaXRtYXAqIE1CclNjYWxl
ZFBhZ2UoKSA9IDA7DQotDQotICAgIHZpcnR1YWwgdm9pZCBNYWtlVmlzaWJsZShUQm9vbCBhVmlz
aWJsZSkgPSAwOw0KLQ0KLSAgICB2aXJ0dWFsIENXZWJLaXRTdXJmYWNlKiBTdXJmYWNlTCgpID0g
MDsNCi0NCi0gICAgdmlydHVhbCB2b2lkIERvSGlzdG9yeUdldEwoVFB0ckMmIGFVcmwsIFRCckN0
bERlZnM6OlRCckN0bENhY2hlTW9kZSBhQ2FjaGVNb2RlKSA9IDA7DQotDQotICAgIHZpcnR1YWwg
VEludCBEb0hpc3RvcnlQb3N0TChUUHRyQyYgYVVybCwNCi0gICAgICAgICAgICAgICAgICAgVEJy
Q3RsRGVmczo6VEJyQ3RsQ2FjaGVNb2RlIGFDYWNoZU1vZGUsDQotICAgICAgICAgICAgICAgICAg
IFREZXNDJiBhQ29udFR5cGUsDQotICAgICAgICAgICAgICAgICAgIENQb3N0RGF0YVBhcnRzKiBh
UG9zdERhdGEpID0gMDsNCi0NCi0gICAgdmlydHVhbCB2b2lkIEhhbmRsZVdtbEJhY2tMKCkgPSAw
Ow0KKyAgICAgICAgDQorICAgICAgICB2aXJ0dWFsIHZvaWQgTWFrZVZpc2libGUoVEJvb2wgYVZp
c2libGUpID0gMDsNCisgICAgICAgIA0KKyAgICAgICAgdmlydHVhbCBDV2ViS2l0U3VyZmFjZSog
U3VyZmFjZUwoKSA9IDA7DQorICAgICAgICANCisgICAgICAgIHZpcnR1YWwgdm9pZCBEb0hpc3Rv
cnlHZXRMKFRQdHJDJiBhVXJsLCBUQnJDdGxEZWZzOjpUQnJDdGxDYWNoZU1vZGUgYUNhY2hlTW9k
ZSkgPSAwOw0KKyAgICAgICAgDQorICAgICAgICB2aXJ0dWFsIFRJbnQgRG9IaXN0b3J5UG9zdEwo
VFB0ckMmIGFVcmwsDQorICAgICAgICAgICAgVEJyQ3RsRGVmczo6VEJyQ3RsQ2FjaGVNb2RlIGFD
YWNoZU1vZGUsDQorICAgICAgICAgICAgVERlc0MmIGFDb250VHlwZSwNCisgICAgICAgICAgICBD
UG9zdERhdGFQYXJ0cyogYVBvc3REYXRhKSA9IDA7DQorICAgICAgICANCisgICAgICAgIHZpcnR1
YWwgdm9pZCBIYW5kbGVXbWxCYWNrTCgpID0gMDsNCiB9Ow0KIA0KLU5PTlNIQVJBQkxFX0NMQVNT
KENCckhpc3RvcnlJbnRlcmZhY2UpIDogcHVibGljIE1Cckhpc3RvcnlJbnRlcmZhY2V7DQotDQot
ICBwdWJsaWM6DQotICAgIHN0YXRpYyBDQnJIaXN0b3J5SW50ZXJmYWNlKiBOZXdMKENCckN0bCog
YUJyQ3RsKTsNCi0NCi0gICAgdmlydHVhbCB+Q0JySGlzdG9yeUludGVyZmFjZSgpOw0KLSAgcHVi
bGljOiAvLyBmcm9tIE1Cckhpc3RvcnlJbnRlcmZhY2UNCi0NCitOT05TSEFSQUJMRV9DTEFTUyhD
QnJIaXN0b3J5SW50ZXJmYWNlKSA6IHB1YmxpYyBNQnJIaXN0b3J5SW50ZXJmYWNlDQorICAgIHsN
CisgICAgDQorICAgIHB1YmxpYzoNCisgICAgICAgIHN0YXRpYyBDQnJIaXN0b3J5SW50ZXJmYWNl
KiBOZXdMKENCckN0bCogYUJyQ3RsKTsNCisgICAgICAgIA0KKyAgICAgICAgdmlydHVhbCB+Q0Jy
SGlzdG9yeUludGVyZmFjZSgpOw0KKyAgICBwdWJsaWM6IC8vIGZyb20gTUJySGlzdG9yeUludGVy
ZmFjZQ0KKyAgICAgICAgDQogICAgICAgICBDRmJzQml0bWFwKiBNQnJTY2FsZWRQYWdlKCk7DQot
DQotICAgIHZvaWQgTWFrZVZpc2libGUoVEJvb2wgYVZpc2libGUpOw0KLQ0KLSAgICBDV2ViS2l0
U3VyZmFjZSogU3VyZmFjZUwoKTsNCi0NCi0gICAgdm9pZCBEb0hpc3RvcnlHZXRMKFRQdHJDJiBh
VXJsLCBUQnJDdGxEZWZzOjpUQnJDdGxDYWNoZU1vZGUgYUNhY2hlTW9kZSk7DQotDQotICAgIFRJ
bnQgRG9IaXN0b3J5UG9zdEwoVFB0ckMmIGFVcmwsDQotICAgICAgICAgICAgICAgIFRCckN0bERl
ZnM6OlRCckN0bENhY2hlTW9kZSBhQ2FjaGVNb2RlLA0KLSAgICAgICAgICAgICAgVERlc0MmIGFD
b250VHlwZSwNCi0gICAgICAgICAgICAgIENQb3N0RGF0YVBhcnRzKiBhUG9zdERhdGEpOw0KLQ0K
LSAgICB2b2lkIEhhbmRsZVdtbEJhY2tMKCk7DQotDQotICBwcml2YXRlOg0KLSAgICBDQnJIaXN0
b3J5SW50ZXJmYWNlKCBDQnJDdGwqIGFCckN0bCApOw0KLQ0KLSAgcHJpdmF0ZToNCi0gICAgQ0Jy
Q3RsKiBpQnJDdGw7DQotfTsNCisgICAgICAgIA0KKyAgICAgICAgdm9pZCBNYWtlVmlzaWJsZShU
Qm9vbCBhVmlzaWJsZSk7DQorICAgICAgICANCisgICAgICAgIENXZWJLaXRTdXJmYWNlKiBTdXJm
YWNlTCgpOw0KKyAgICAgICAgDQorICAgICAgICB2b2lkIERvSGlzdG9yeUdldEwoVFB0ckMmIGFV
cmwsIFRCckN0bERlZnM6OlRCckN0bENhY2hlTW9kZSBhQ2FjaGVNb2RlKTsNCisgICAgICAgIA0K
KyAgICAgICAgVEludCBEb0hpc3RvcnlQb3N0TChUUHRyQyYgYVVybCwNCisgICAgICAgICAgICBU
QnJDdGxEZWZzOjpUQnJDdGxDYWNoZU1vZGUgYUNhY2hlTW9kZSwNCisgICAgICAgICAgICBURGVz
QyYgYUNvbnRUeXBlLA0KKyAgICAgICAgICAgIENQb3N0RGF0YVBhcnRzKiBhUG9zdERhdGEpOw0K
KyAgICAgICAgDQorICAgICAgICB2b2lkIEhhbmRsZVdtbEJhY2tMKCk7DQorICAgICAgICANCisg
ICAgcHJpdmF0ZToNCisgICAgICAgIENCckhpc3RvcnlJbnRlcmZhY2UoIENCckN0bCogYUJyQ3Rs
ICk7DQorICAgICAgICANCisgICAgcHJpdmF0ZToNCisgICAgICAgIENCckN0bCogaUJyQ3RsOw0K
KyAgICB9Ow0KIC8qKg0KICogIEltcGxlbWVudGF0aW9uIG9mIHRoZSBCcm93c2VyIENvbnRyb2wN
CiAqDQpAQCAtMTUzLDE2ICsxNTgsMTYgQEAgTk9OU0hBUkFCTEVfQ0xBU1MoQ0JySGlzdG9yeUlu
dGVyZmFjZSkgOg0KIGNsYXNzIENCckN0bCA6IHB1YmxpYyBDQnJDdGxJbnRlcmZhY2UsIHB1Ymxp
YyBNQnJDdGxMb2FkRXZlbnRPYnNlcnZlcg0KICAgICB7DQogICAgIHB1YmxpYzogICAgIC8vIENv
bnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3Rvcg0KLQ0KKyAgICAgICAgDQogICAgICAgICAvKioNCiAg
ICAgICAgICogVHdvLXBoYXNlZCBjb25zdHJ1Y3Rvci4NCi0gICAgICAgICAgTUJyQ3RsU29mdGtl
eXNPYnNlcnZlciAgICAgICAvLyBEZWZhdWx0OiBicm93c2VyIGRvZXMgbm90IHVwZGF0ZSBzb2Z0
a2V5cw0KLSAgICAgICAgICBNQnJDdGxMaW5rUmVzb2x2ZXIgICAgICAgICAgIC8vIE11c3QgYmUg
cHJvdmlkZWQgaWYgRUNhcGFiaWxpdHlDbGllbnRSZXNvbHZlRW1iZWRkZWRVUkwgb3IgRUNhcGFi
aWxpdHlDbGllbnROb3RpZnlVUkwgaXMgc2V0DQotICAgICAgICAgIE1CckN0bFNwZWNpYWxMb2Fk
T2JzZXJ2ZXIgICAgLy8gRGVmYXVsdDogRG9jdW1lbnRIYW5kbGVyIGFuZCBTY2hlbWVEaXNwYXRj
aGVyIGFyZSBub3QgY2FsbGVkIGJ5IGJyb3dzZXIgYW5kIGNvbm5lY3Rpb24gY3JlYXRlZCBieSBQ
cm94eSBGaWx0ZXINCi0gICAgICAgICAgTUJyQ3RsTGF5b3V0T2JzZXJ2ZXIgICAgICAgICAvLyBE
ZWZhdWx0OiBCcm93c2VyIGRvZXMgbm90IHVwZGF0ZSBzY3JvbGwgbG9jYXRpb24NCi0gICAgICAg
ICAgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyICAgICAgICAvLyBEZWZhdWx0OiBVc2UgQnJvd3Nlcidz
IG93biBkaWFsb2dzDQotICAgICAgICAgIE1CckN0bFdpbmRvd09ic2VydmVyICAgICAgICAgLy8g
RGVmYXVsdDoNCi0gICAgICBNQnJDdGxEb3dubG9hZE9ic2VydmVyICAgICAvLyBEZWZhdWx0Og0K
KyAgICAgICAgTUJyQ3RsU29mdGtleXNPYnNlcnZlciAgICAgICAvLyBEZWZhdWx0OiBicm93c2Vy
IGRvZXMgbm90IHVwZGF0ZSBzb2Z0a2V5cw0KKyAgICAgICAgTUJyQ3RsTGlua1Jlc29sdmVyICAg
ICAgICAgICAvLyBNdXN0IGJlIHByb3ZpZGVkIGlmIEVDYXBhYmlsaXR5Q2xpZW50UmVzb2x2ZUVt
YmVkZGVkVVJMIG9yIEVDYXBhYmlsaXR5Q2xpZW50Tm90aWZ5VVJMIGlzIHNldA0KKyAgICAgICAg
TUJyQ3RsU3BlY2lhbExvYWRPYnNlcnZlciAgICAvLyBEZWZhdWx0OiBEb2N1bWVudEhhbmRsZXIg
YW5kIFNjaGVtZURpc3BhdGNoZXIgYXJlIG5vdCBjYWxsZWQgYnkgYnJvd3NlciBhbmQgY29ubmVj
dGlvbiBjcmVhdGVkIGJ5IFByb3h5IEZpbHRlcg0KKyAgICAgICAgTUJyQ3RsTGF5b3V0T2JzZXJ2
ZXIgICAgICAgICAvLyBEZWZhdWx0OiBCcm93c2VyIGRvZXMgbm90IHVwZGF0ZSBzY3JvbGwgbG9j
YXRpb24NCisgICAgICAgIE1CckN0bERpYWxvZ3NQcm92aWRlciAgICAgICAgLy8gRGVmYXVsdDog
VXNlIEJyb3dzZXIncyBvd24gZGlhbG9ncw0KKyAgICAgICAgTUJyQ3RsV2luZG93T2JzZXJ2ZXIg
ICAgICAgICAvLyBEZWZhdWx0Og0KKyAgICAgICAgTUJyQ3RsRG93bmxvYWRPYnNlcnZlciAgICAg
Ly8gRGVmYXVsdDoNCiAgICAgICAgICovDQogICAgICAgICBzdGF0aWMgQ0JyQ3RsSW50ZXJmYWNl
KiBOZXdMKENDb2VDb250cm9sKiBhUGFyZW50LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUUmVjdCBhUmVjdCwNCkBAIC0xNzMsOCArMTc4LDggQEAgY2xhc3MgQ0JyQ3Rs
IDogcHVibGljIENCckN0bEludGVyZmFjZSwgcA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBNQnJDdGxTcGVjaWFsTG9hZE9ic2VydmVyKiBhQnJDdGxTcGVjaWFsTG9hZE9i
c2VydmVyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQnJDdGxMYXlv
dXRPYnNlcnZlciogYUJyQ3RsTGF5b3V0T2JzZXJ2ZXIsDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1CckN0bERpYWxvZ3NQcm92aWRlciogYUJyQ3RsRGlhbG9nc1Byb3Zp
ZGVyLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CckN0bFdpbmRvd09ic2VydmVyKiBh
QnJDdGxXaW5kb3dPYnNlcnZlciwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBNQnJDdGxE
b3dubG9hZE9ic2VydmVyKiBhQnJDdGxEb3dubG9hZE9ic2VydmVyICk7DQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1CckN0bFdpbmRvd09ic2VydmVyKiBhQnJDdGxXaW5k
b3dPYnNlcnZlciwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJyQ3Rs
RG93bmxvYWRPYnNlcnZlciogYUJyQ3RsRG93bmxvYWRPYnNlcnZlciApOw0KIA0KICAgICAgICAg
LyoqDQogICAgICAgICAqIERlc3RydWN0b3IuDQpAQCAtMjU5LDcgKzI2NCw3IEBAIGNsYXNzIENC
ckN0bCA6IHB1YmxpYyBDQnJDdGxJbnRlcmZhY2UsIHANCiAgICAgICAgICogUmV0dXJucyBhbiBN
V21sRW5naW5lSW50ZXJmYWNlIGluc3RhbmNlOw0KICAgICAgICAgKiBAc2luY2UgMy4wDQogICAg
ICAgICAqLw0KLSAgICBNV21sRW5naW5lSW50ZXJmYWNlKiBXbWxFbmdpbmVJbnRlcmZhY2UoKSB7
IHJldHVybiBpV21sRW5naW5lSW50ZXJmYWNlOyB9DQorICAgICAgICBNV21sRW5naW5lSW50ZXJm
YWNlKiBXbWxFbmdpbmVJbnRlcmZhY2UoKSB7IHJldHVybiBpV21sRW5naW5lSW50ZXJmYWNlOyB9
DQogDQogICAgICAgICBUQm9vbCBXbWxNb2RlKCkgeyByZXR1cm4gaVdtbE1vZGU7IH0NCiANCkBA
IC01NjksNyArNTc0LDcgQEAgY2xhc3MgQ0JyQ3RsIDogcHVibGljIENCckN0bEludGVyZmFjZSwg
cA0KICAgICAgICAgKiBAcGFyYW0gYUJpdG1hcEluZm8gaW5mbyBvbiB3aGV0aGVyIHRvIHJldHVu
IGEgZmF2aWNvbiBvciBhIHBhZ2UgdGh1bWJuYWlsDQogICAgICAgICAqIEByZXR1cm4gZmF2aW9u
IGljb24gb3IgcGFnZSBpY29uDQogICAgICAgICAqLw0KLSAgICBJTVBPUlRfQyBDR3VsSWNvbiog
R2V0Qml0bWFwRGF0YShjb25zdCBURGVzQyYgYVVybCwgVEJyQ3RsRGVmczo6VEJyQ3RsQml0bWFw
SW5mbyBhQml0bWFwSW5mbyk7DQorICAgICAgICBJTVBPUlRfQyBDR3VsSWNvbiogR2V0Qml0bWFw
RGF0YShjb25zdCBURGVzQyYgYVVybCwgVEJyQ3RsRGVmczo6VEJyQ3RsQml0bWFwSW5mbyBhQml0
bWFwSW5mbyk7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICogUmVnaXN0ZXIgYSBjbGllbnQg
aW50ZXJmYWNlIGZvciB0aGUgYnJvd3NlciBlbmdpbmUNCkBAIC03MzMsNiArNzM4LDE2IEBAIGNs
YXNzIENCckN0bCA6IHB1YmxpYyBDQnJDdGxJbnRlcmZhY2UsIHANCiAgICAgICAgIFRCb29sIFNl
bmRDb21tYW5kc1RvQ2xpZW50KFRCckN0bERlZnM6OlRCckN0bENsaWVudENvbW1hbmRzIGFDb21t
YW5kLCBjb25zdCBDQXJyYXlGaXg8VFB0ckM+JiBhQXR0cmlidXRlc05hbWVzLA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDQXJyYXlGaXg8VFB0ckM+JiBhQXR0
cmlidXRlVmFsdWVzKTsNCiANCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAgICAg
ICAvKioNCisgICAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZXh0ZXJuYWxseSB3aGVu
IHNraW4gaXMgY2hhbmdlZC4NCisgICAgICAgICogVGhpcyByZWxvYWRzIHRoZSBpY29ucyB3aGVu
IHNraW4gY2hhbmdlIGhhcHBlbnMuDQorICAgICAgICAqIEBwYXJhbSBhVHlwZSBUeXBlIG9mIHRo
ZSByZXNvdXJjZSBjaGFuZ2UNCisgICAgICAgICovDQorICAgICAgICB2b2lkIEhhbmRsZVJlc291
cmNlQ2hhbmdlKCBUSW50IGFUeXBlICk7DQorICAgICAgICANCisgICAgICAgIHZvaWQgRHJhd1Nj
cm9sbGJhckJhY2tncm91bmQoKTsNCisjZW5kaWYNCiAgICAgcHJvdGVjdGVkOiAgLy8gRnVuY3Rp
b25zIGZyb20gQ0NvZUNvbnRyb2wNCiANCiAgICAgICAgIC8qKg0KQEAgLTc1Myw2ICs3NjgsMTQg
QEAgY2xhc3MgQ0JyQ3RsIDogcHVibGljIENCckN0bEludGVyZmFjZSwgcA0KICAgICAgICAgKi8N
CiAgICAgICAgIENDb2VDb250cm9sKiBDb21wb25lbnRDb250cm9sKFRJbnQgYUluZGV4KSBjb25z
dDsNCiANCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAgICAgICBUVHlwZVVpZDo6
UHRyIE1vcFN1cHBseU9iamVjdChUVHlwZVVpZCBhSWQpOw0KKyAgICAgICAgLyoqDQorICAgICAg
ICAqIEZyb20gQ0NvZUNvbnRyb2wNCisgICAgICAgICogSGFuZGxlIGNoYW5nZXMgaW4gc2l6ZSBv
ZiB0aGUgZGlzcGxheS4NCisgICAgICAgICovDQorICAgICAgICB2b2lkIERyYXcoY29uc3QgVFJl
Y3QmIGFSZWN0KSBjb25zdDsNCisjZW5kaWYNCiAgICAgcHJpdmF0ZTogICAgLy8gQ29uc3RydWN0
b3JzIGFuZCBkZXN0cnVjdG9yDQogDQogICAgICAgICAvKioNCkBAIC03NjcsNyArNzkwLDcgQEAg
Y2xhc3MgQ0JyQ3RsIDogcHVibGljIENCckN0bEludGVyZmFjZSwgcA0KICAgICAgICAgTUJyQ3Rs
TGF5b3V0T2JzZXJ2ZXIqIGFCckN0bExheW91dE9ic2VydmVyLA0KICAgICAgICAgTUJyQ3RsRGlh
bG9nc1Byb3ZpZGVyKiBhQnJDdGxEaWFsb2dzUHJvdmlkZXIsDQogICAgICAgICBNQnJDdGxXaW5k
b3dPYnNlcnZlciogYUJyQ3RsV2luZG93T2JzZXJ2ZXIsDQotICAgICAgICAgIE1CckN0bERvd25s
b2FkT2JzZXJ2ZXIqIGFCckN0bERvd25sb2FkT2JzZXJ2ZXIgKTsNCisgICAgICAgIE1CckN0bERv
d25sb2FkT2JzZXJ2ZXIqIGFCckN0bERvd25sb2FkT2JzZXJ2ZXIgKTsNCiANCiAgICAgICAgIC8q
Kg0KICAgICAgICAgKiBCeSBkZWZhdWx0IFN5bWJpYW4gMm5kIHBoYXNlIGNvbnN0cnVjdG9yIGlz
IHByaXZhdGUuDQpAQCAtODU2LDggKzg3OSw4IEBAIGNsYXNzIENCckN0bCA6IHB1YmxpYyBDQnJD
dGxJbnRlcmZhY2UsIHANCiAgICAgICAgIE1CckN0bExheW91dE9ic2VydmVyKiBpQnJDdGxMYXlv
dXRPYnNlcnZlcjsNCiAgICAgICAgIE1CckN0bERpYWxvZ3NQcm92aWRlciogaUJyQ3RsRGlhbG9n
c1Byb3ZpZGVyOw0KICAgICAgICAgTUJyQ3RsV2luZG93T2JzZXJ2ZXIqIGlCckN0bFdpbmRvd09i
c2VydmVyOw0KLSAgICAgIE1CckN0bERvd25sb2FkT2JzZXJ2ZXIqIGlCckN0bERvd25sb2FkT2Jz
ZXJ2ZXI7DQotICAgICAgTVdLV21sSW50ZXJmYWNlKiBpV0tXbWxJbnRlcmZhY2U7DQorICAgICAg
ICBNQnJDdGxEb3dubG9hZE9ic2VydmVyKiBpQnJDdGxEb3dubG9hZE9ic2VydmVyOw0KKyAgICAg
ICAgTVdLV21sSW50ZXJmYWNlKiBpV0tXbWxJbnRlcmZhY2U7DQogDQogICAgICAgICAvLyBGbGFn
cyB0byBkZW5vdGUgdGhhdCB3ZSB1c2VkIG91ciBkZWZhdWx0IGltcGxlbWVudGlvbg0KICAgICAg
ICAgVEJvb2wgaU93blNvZnRrZXlzT2JzZXJ2ZXI7DQpAQCAtOTAzLDYgKzkyNiwxMCBAQCBjbGFz
cyBDQnJDdGwgOiBwdWJsaWMgQ0JyQ3RsSW50ZXJmYWNlLCBwDQogICAgICAgICBUQnJDdGxXbWxT
ZXJ2aWNlT3B0aW9uKiAgICAgICAgIGlGaXJzdFByZXZEb0VsZW1lbnQ7DQogICAgICAgICBDSGlz
dG9yeUNvbnRyb2xsZXIqICAgICAgICAgICAgICAgICBpSGlzdG9yeUNvbnRyb2xsZXI7ICAgLy8g
b3duZWQNCiAgICAgICAgIENQYWdlU2NhbGVyKiAgICAgICAgICAgICAgICBpV21sUGFnZVNjYWxl
cjsNCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAgICAgICBDQWtuc0Jhc2ljQmFj
a2dyb3VuZENvbnRyb2xDb250ZXh0KiBpQWtuQkdDQzsNCisgICAgICAgIE1Ba25zU2tpbkluc3Rh
bmNlKiBpU2tpbjsNCisjZW5kaWYNCiAgICAgICAgIC8vUmVxdWlyZWQgYnkgdGhlIHdtbEVuZ2lu
ZSBEeW5hbWljIExpYmFyeSBTdXBwb3J0DQogICAgICAgICBSTGlicmFyeSAgICAgICAgICAgICAg
ICBpTGlicmFyeTsNCiAgICAgICAgIFRSZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpUmVjdDsNCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsU2Nyb2xs
aW5nUHJvdmlkZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMv
QnJDdGxTY3JvbGxpbmdQcm92aWRlci5oCShyZXZpc2lvbiAxNzk2OCkNCisrKyBXZWJLaXQvQnJv
d3NlckNvbnRyb2wvaW5jL0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXIuaAkod29ya2luZyBjb3B5KQ0K
QEAgLTksOSArOSw5IEBADQogKiAgICBDb3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0
aW9uDQogKiAgICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICogIA0KLSogIAlSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0q
ICAJbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zDQotKiAgCWFyZSBtZXQ6DQorKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyogICBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMNCisqICAgYXJlIG1ldDoNCiAqICANCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4N
CkBAIC0yMywxOCArMjMsMTggQEANCiAqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQog
KiAgDQotKiAgCVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMNCi0qICAJIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCi0qICAJTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQot
KiAgCUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUDQotKiAgCU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KLSogIAlTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UDQotKiAgCUxJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLA0KLSogIAlEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCi0qICAJVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KLSogIAkoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRQ0KLSogIAlVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIDQotKiAgCURBTUFHRS4NCisqICAgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KKyogICAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVA0KKyogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCisqICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQNCisqICAgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsDQorKiAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QNCisqICAgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsDQorKiAgIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQ0KKyogICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUDQorKiAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQorKiAgIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCisqICAgREFN
QUdFLg0KICogIA0KICogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZvciBm
dXJ0aGVyIGdyYW50cy4NCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQEAgLTQ3LDcgKzQ3LDEw
IEBADQogLy8gIElOQ0xVREVTDQogI2luY2x1ZGUgIkJyQ3RsTGF5b3V0T2JzZXJ2ZXIuaCINCiAj
aW5jbHVkZSAiU2Nyb2xsQmFyLmgiDQotDQorI2lmZGVmIFJEX0JST1dTRVJfU0NST0xMQkFSUw0K
KyNpbmNsdWRlIDxlaWtzYmZybS5oPg0KKyNpbmNsdWRlIDxlaWtzYm9icy5oPg0KKyNlbmRpZg0K
IC8vIEZPUldBUkQgREVDTEFSQVRJT04NCiBjbGFzcyBDQnJDdGw7DQogY2xhc3MgQ1Njcm9sbEJh
cjsNCkBAIC02MSwzMiArNjQsMzYgQEAgY2xhc3MgQ0NvZUNvbnRyb2w7DQogKiAgQGxpYiBXZWJL
aXQubGliDQogKiAgQHNpbmNlIDMuMA0KICovDQorI2lmZGVmIFJEX0JST1dTRVJfU0NST0xMQkFS
Uw0KK05PTlNIQVJBQkxFX0NMQVNTKENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyKSA6IHB1YmxpYyBD
QmFzZSwgcHVibGljIE1FaWtTY3JvbGxCYXJPYnNlcnZlcg0KKyNlbHNlDQogTk9OU0hBUkFCTEVf
Q0xBU1MoQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXIpIDogcHVibGljIENCYXNlDQorI2VuZGlmDQog
ICAgIHsNCiAgICAgcHVibGljOiAgICAgLy8gQ29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycw0K
ICAgICAgICAgLyoqDQogICAgICAgICAqIFR3by1waGFzZWQgY29uc3RydWN0b3IuDQogICAgICAg
ICAqLw0KICAgICAgICAgc3RhdGljIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyKiBOZXdMKGNvbnN0
IENDb2VDb250cm9sJiBhUGFyZW50LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENCckN0bCYgYUJyQ3RsKTsNCi0NCisgICAgICAgICAgICBDQnJDdGwmIGFC
ckN0bCk7DQorICAgIA0KICAgICAgICAgLyoqDQogICAgICAgICAqIERlc3RydWN0b3IuDQogICAg
ICAgICAqLw0KICAgICAgICAgdmlydHVhbCB+Q0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXIoKTsNCi0N
CisgICAgDQogICAgIHByaXZhdGU6ICAgIC8vIENvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMN
Ci0NCisgICAgDQogICAgICAgICAvKioNCiAgICAgICAgICogQysrIGRlZmF1bHQgY29uc3RydWN0
b3IuDQogICAgICAgICAqLw0KICAgICAgICAgQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXIoQ0JyQ3Rs
JiBhQnJDdGwpOw0KLQ0KKyAgICANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBTeW1iaWFuIDJu
ZCBwaGFzZSBjb25zdHJ1Y3Rvcg0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgQ29uc3RydWN0
TChjb25zdCBDQ29lQ29udHJvbCYgYVBhcmVudCk7DQotDQorICAgIA0KICAgICBwdWJsaWM6ICAg
ICAvLyBDbGFzcyBNZXRob2RzDQogICAgICAgICAvKioNCiAgICAgICAgICogVXBkYXRlcyB0aGUg
dmVydGljYWwgc2Nyb2xsYmFyDQpAQCAtOTQsMzEgKzEwMSwzMSBAQCBOT05TSEFSQUJMRV9DTEFT
UyhDQnJDdGxTY3JvbGxpbmdQcm92aWRlDQogICAgICAgICAqIEByZXR1cm4gbm9uZQ0KICAgICAg
ICAgKi8NCiAgICAgICAgIHZvaWQgVXBkYXRlVlNjcm9sbEJhckwoIFRJbnQgYURvY3VtZW50SGVp
Z2h0LA0KLQkJCSAgICAgICAgICAgICAgICAgICAgVEludCBhRGlzcGxheVBvc1kgKTsNCisgICAg
ICAgICAgICBUSW50IGFEaXNwbGF5UG9zWSApOw0KICAgICAgICAgLyoqDQogICAgICAgICAqIFVw
ZGF0ZXMgdGhlIHZlcnRpY2FsIHNjcm9sbGJhcg0KICAgICAgICAgKiBAc2luY2UgU2VyaWVzNjBf
dmVyc2lvbiAyLjgNCiAgICAgICAgICogQHJldHVybiBub25lDQogICAgICAgICAqLw0KICAgICAg
ICAgdm9pZCBVcGRhdGVWU2Nyb2xsQmFyTCggVEludCBhRG9jdW1lbnRIZWlnaHQsDQotCQkJCQkJ
CQlUSW50IGFEaXNwbGF5SGVpZ2h0LA0KLQkJCQkJCQkJVEludCBhRGlzcGxheVBvc1kgKTsNCisg
ICAgICAgICAgICBUSW50IGFEaXNwbGF5SGVpZ2h0LA0KKyAgICAgICAgICAgIFRJbnQgYURpc3Bs
YXlQb3NZICk7DQogICAgICAgICAvKioNCiAgICAgICAgICogVXBkYXRlcyB0aGUgSG9yaXpvbnRh
bCBzY3JvbGxiYXINCiAgICAgICAgICogQHNpbmNlIFNlcmllczYwX3ZlcnNpb24gMy4wDQogICAg
ICAgICAqIEByZXR1cm4gbm9uZQ0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgVXBkYXRlSFNj
cm9sbEJhckwoIFRJbnQgYURvY3VtZW50V2lkdGgsDQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUSW50IGFEaXNwbGF5UG9zWCk7DQorICAgICAgICAgICAgVEludCBhRGlzcGxheVBv
c1gpOw0KICAgICAgICAgLyoqDQogICAgICAgICAqIFVwZGF0ZXMgdGhlIEhvcml6b250YWwgc2Ny
b2xsYmFyDQogICAgICAgICAqIEBzaW5jZSBTZXJpZXM2MF92ZXJzaW9uIDIuOA0KICAgICAgICAg
KiBAcmV0dXJuIG5vbmUNCiAgICAgICAgICovDQogICAgICAgICB2b2lkIFVwZGF0ZUhTY3JvbGxC
YXJMKCBUSW50IGFEb2N1bWVudFdpZHRoLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVEludCBhRGlzcGxheVdpZHRoLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VEludCBhRGlzcGxheVBvc1ggKTsNCi0NCisgICAgICAgICAgICBUSW50IGFEaXNwbGF5V2lkdGgs
DQorICAgICAgICAgICAgVEludCBhRGlzcGxheVBvc1ggKTsNCisgICAgDQogICAgICAgICAvKioN
CiAgICAgICAgICogU2V0cyBpbmRpY2F0b3IgcmVsYXRpbmcgdG8gdGhlIHdlYnBhZ2UgbGF5b3V0
DQogICAgICAgICAqIEBzaW5jZSBTZXJpZXM2MF92ZXJzaW9uIDMuMA0KQEAgLTEyNiw3ICsxMzMs
NyBAQCBOT05TSEFSQUJMRV9DTEFTUyhDQnJDdGxTY3JvbGxpbmdQcm92aWRlDQogICAgICAgICAq
IEByZXR1cm4gbm9uZQ0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQgTm90aWZ5TGF5b3V0Q2hh
bmdlKFRCckN0bExheW91dCBhTGF5b3V0KTsNCi0NCisgICAgDQogICAgICAgICAvKioNCiAgICAg
ICAgICogQ2FsY3VsYXRlcyBhbmQgcmV0dXJucyB0aGUgc2Nyb2xsYmFyIHdpZHRoDQogICAgICAg
ICAqIEBzaW5jZSBTZXJpZXM2MF92ZXJzaW9uIDMuMA0KQEAgLTEzNCwzMSArMTQxLDQwIEBAIE5P
TlNIQVJBQkxFX0NMQVNTKENCckN0bFNjcm9sbGluZ1Byb3ZpZGUNCiAgICAgICAgICogQHJldHVy
biBzY3JvbGxiYXIgd2lkdGgNCiAgICAgICAgICovDQogICAgICAgICBUSW50IFZTY3JvbGxCYXJX
aWR0aCgpOw0KLQ0KLQkJLyoqDQorICAgIA0KKyAgICAgICAgLyoqDQogICAgICAgICAqIENhbGN1
bGF0ZXMgYW5kIHJldHVybnMgdGhlIGhvcml6b250YWwNCi0JCSogc2Nyb2xsYmFyIGhlaWdodA0K
KyAgICAgICAgKiBzY3JvbGxiYXIgaGVpZ2h0DQogICAgICAgICAqIEBzaW5jZSBTZXJpZXM2MF92
ZXJzaW9uIDMuMA0KICAgICAgICAgKiBAcGFyYW0gbm9uZQ0KICAgICAgICAgKiBAcmV0dXJuIHNj
cm9sbGJhciB3aWR0aA0KICAgICAgICAgKi8NCiAgICAgICAgIFRJbnQgSFNjcm9sbEJhckhlaWdo
dCgpOw0KLQ0KKyAgICANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBSZXR1cm5zIHRoZSB2ZXJ0
aWNhbCBzY3JvbGxiYXINCiAgICAgICAgICogQHNpbmNlIFNlcmllczYwX3ZlcnNpb24gMy4wDQog
ICAgICAgICAqIEBwYXJhbSBub25lDQogICAgICAgICAqIEByZXR1cm4gcG9pbnRlciB0byB2ZXJ0
aWNhbCBzY3JvbGxiYXINCiAgICAgICAgICovDQorI2lmZGVmIFJEX0JST1dTRVJfU0NST0xMQkFS
Uw0KKyAgICAgICAgY29uc3QgQ0NvZUNvbnRyb2wqIFZTY3JvbGxCYXIoKTsNCisjZWxzZQ0KICAg
ICAgICAgY29uc3QgQ1Njcm9sbEJhciogVlNjcm9sbEJhcigpOw0KLQ0KKyNlbmRpZg0KKyAgICAg
ICAgDQogICAgICAgICAvKioNCiAgICAgICAgICogUmV0dXJucyB0aGUgaG9yaXpvbnRhbCBzY3Jv
bGxiYXINCiAgICAgICAgICogQHNpbmNlIFNlcmllczYwX3ZlcnNpb24gMy4wDQogICAgICAgICAq
IEBwYXJhbSBub25lDQogICAgICAgICAqIEByZXR1cm4gcG9pbnRlciB0byBob3J6b250YWwgc2Ny
b2xsIGJhcg0KICAgICAgICAgKi8NCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAg
ICAgICBjb25zdCBDQ29lQ29udHJvbCogSFNjcm9sbEJhcigpOw0KKyNlbHNlDQorDQogICAgICAg
ICBjb25zdCBDU2Nyb2xsQmFyKiBIU2Nyb2xsQmFyKCk7DQorI2VuZGlmDQogDQogICAgICAgICAv
KioNCiAgICAgICAgICogUmV0dXJucyB0aGUgU2Nyb2xsQmFyQ29ybmVyV2luZG93DQpAQCAtMTY3
LDcgKzE4Myw3IEBAIE5PTlNIQVJBQkxFX0NMQVNTKENCckN0bFNjcm9sbGluZ1Byb3ZpZGUNCiAg
ICAgICAgICovDQogICAgICAgICBDU2Nyb2xsQmFyQ29ybmVyV2luZG93KiBTY3JvbGxCYXJDb3Ju
ZXJXaW5kb3coKTsNCiANCi0gICAgICAgICAvKioNCisgICAgICAgIC8qKg0KICAgICAgICAgKiBT
ZXRzIHRoZSBEaXNwbGF5IFJlY3QNCiAgICAgICAgICogQHNpbmNlIFNlcmllczYwX3ZlcnNpb24g
My4wDQogICAgICAgICAqIEBwYXJhbSBhUmVjdCB0aGUgZGlzcGxheWFibGUgcmVjdCBzaXplDQpA
QCAtMTgxLDIyICsxOTcsNDYgQEAgTk9OU0hBUkFCTEVfQ0xBU1MoQ0JyQ3RsU2Nyb2xsaW5nUHJv
dmlkZQ0KICAgICAgICAgKiBAcGFyYW0gYVJlY3QgdGhlIGRpc3BsYXlhYmxlIHJlY3Qgc2l6ZQ0K
ICAgICAgICAgKiBAcmV0dXJuIG5vbmUNCiAgICAgICAgICovDQotCQlUQm9vbCBIYXNIb3J6b250
YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBpSGFzSG9yaXpvbnRhbFNjcm9sbEJhcjsgfQ0K
LQ0KKyAgICAgICAgVEJvb2wgSGFzSG9yem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4g
aUhhc0hvcml6b250YWxTY3JvbGxCYXI7IH0NCisgICAgICAgIA0KKyNpZmRlZiBSRF9CUk9XU0VS
X1NDUk9MTEJBUlMNCisgICAgICAgIHZvaWQgSGFuZGxlU2Nyb2xsRXZlbnRMKENFaWtTY3JvbGxC
YXIqIGFTY3JvbGxCYXIsIFRFaWtTY3JvbGxFdmVudCBhRXZlbnRUeXBlKTsNCisgICAgICAgIHZv
aWQgU2tpbkNoYW5nZWRMKCk7DQorICAgICAgICB2b2lkIERyYXdCYWNrZ3JvdW5kKCk7DQorI2Vu
ZGlmDQorICAgICAgICANCiAgICAgcHJpdmF0ZTogICAgLy8gQ2xhc3MgTWV0aG9kcw0KKyNpZmRl
ZiBSRF9CUk9XU0VSX1NDUk9MTEJBUlMNCisgICAgICAgIHZvaWQgUmVzaXplQnJDdGxWaWV3KGNv
bnN0IENFaWtTY3JvbGxCYXI6OlRPcmllbnRhdGlvbiBhT3JpZW50YXRpb24pOw0KKyNlbHNlDQog
ICAgICAgICB2b2lkIFJlc2l6ZUJyQ3RsVmlldyhjb25zdCBDU2Nyb2xsQmFyOjpUT3JpZW50YXRp
b24gYU9yaWVudGF0aW9uLA0KLQkJCQkJCQkgVEludCBhUGl4ZWxzKTsNCi0NCisgICAgICAgICAg
ICBUSW50IGFQaXhlbHMpOw0KKyNlbmRpZg0KKyAgICAgICAgDQogICAgICAgICB2b2lkIFNoaWZ0
QnJDdGxWaWV3KCk7DQotDQorICAgICAgICANCiAgICAgcHJpdmF0ZTogICAgLy8gRGF0YSBNZW1i
ZXJzDQogICAgICAgICAvLyBwb2ludGVyIHRvIGJyb3dzZXIgQ29udHJvbA0KICAgICAgICAgQ0Jy
Q3RsKiBpQnJDdGw7DQotDQorICAgICAgICANCiAgICAgICAgIC8vUG9pbnRlciB0byBTY3JvbGwg
YmFyZnJhbWUNCiAgICAgICAgIENTY3JvbGxCYXJGcmFtZSogaVNjcm9sbEJhckZyYW1lOw0KLQ0K
KyAgICAgICAgDQogICAgICAgICBUQm9vbCBpSGFzSG9yaXpvbnRhbFNjcm9sbEJhcjsNCisjaWZk
ZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAgICAgICBDRWlrU2Nyb2xsQmFyRnJhbWUqIGlT
YkZyYW1lOw0KKyAgICAgICAgVFNpemUgaURpc3BsYXlTaXplOw0KKyAgICAgICAgVFNpemUgaURv
Y1NpemU7DQorICAgICAgICBUUG9pbnQgaVRodW1iUG9zOw0KKyAgICAgICAgVEJyQ3RsTGF5b3V0
IGlCckN0bExheW91dDsNCisgICAgICAgIFRFaWtTY3JvbGxCYXJNb2RlbCBpSFNiYXJNb2RlbDsN
CisgICAgICAgIFRFaWtTY3JvbGxCYXJNb2RlbCBpVlNiYXJNb2RlbDsNCisgICAgICAgIFRCb29s
IGlIYXNWZXJ0aWNhbFNjcm9sbEJhcjsNCisgICAgICAgIFRJbnQgaUhTQmFyV2lkdGg7DQorICAg
ICAgICBURWlrU2Nyb2xsRXZlbnQgaVNjcm9sbEV2ZW50Ow0KKyAgICAgICAgVEludDY0IGlMYXN0
U2Nyb2xsVGltZTsNCisgICAgICAgIFRJbnQ2NCBpU3RhcnRTY3JvbGw7DQorI2VuZGlmDQogICAg
IH07DQogDQogDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvc3JjL0JyQ3RsLmNwcAkocmV2aXNp
b24gMTc5NjgpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC03Nyw3ICs3NywxMSBAQA0KICNpbmNsdWRlICJGYXZpY29uLmgiDQogI2lu
Y2x1ZGUgIlVybFJlcXVlc3RJbmZvLmgiDQogI2luY2x1ZGUgIlRvb2xCYXIuaCINCi0NCisjaWZk
ZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorI2luY2x1ZGUgPEFrbnNCYXNpY0JhY2tncm91bmRD
b250cm9sQ29udGV4dC5oPg0KKyNpbmNsdWRlIDxBa25zVXRpbHMuaD4NCisjaW5jbHVkZSA8QWtu
c0RyYXdVdGlscy5oPg0KKyNlbmRpZg0KICNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogI2lu
Y2x1ZGUgIldpZGdldEV4dGVuc2lvbi5oIg0KICNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0K
QEAgLTM4Myw2ICszODcsMTAgQEAgdm9pZCBDQnJDdGw6OkNvbnN0cnVjdEwoDQogICAgIC8vIFNl
dCB0aGUgcmVjdCBmb3IgQnJvd3NlckNvbnRyb2wgKGEgQ0NvZUNvbnRyb2wpLg0KICAgICBTZXRS
ZWN0KGFSZWN0KTsNCiAgICAgQWN0aXZhdGVMKCk7DQorI2lmZGVmIFJEX0JST1dTRVJfU0NST0xM
QkFSUw0KKyAgICBpQWtuQkdDQyA9IENBa25zQmFzaWNCYWNrZ3JvdW5kQ29udHJvbENvbnRleHQ6
Ok5ld0woS0FrbnNJSURRc25CZ0FyZWFNYWluSGlnaCwgYVBhcmVudC0+UmVjdCgpLCBFRmFsc2Up
OyANCisgICAgaVNraW4gPSBBa25zVXRpbHM6OlNraW5JbnN0YW5jZSgpOw0KKyNlbmRpZg0KICAg
ICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC00NzAsOCArNDc4LDkgQEAgRVhQ
T1JUX0MgQ0JyQ3RsOjp+Q0JyQ3RsKCkNCiAgICAgaVdtbFNlcnZpY2VPcHRpb25BcnJheS5DbG9z
ZSgpOw0KICAgICBpU3Vic2NyaWJlVG9JdGVtcy5DbG9zZSgpOw0KICAgICBpV21sU2VydmljZU9w
dGlvbi5DbG9zZSgpOw0KLQ0KLQ0KKyNpZmRlZiBSRF9CUk9XU0VSX1NDUk9MTEJBUlMNCisgICAg
ZGVsZXRlIGlBa25CR0NDOw0KKyNlbmRpZg0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCkBAIC0xNzc3LDYgKzE3ODYsNjIgQEAgQ0NvZUNvbnRyb2wqIENCckN0bDo6Q29tcG9u
ZW50Q29udHJvbChUSQ0KIA0KICAgICByZXR1cm4gMDsNCiAgICAgfQ0KKyNpZmRlZiBSRF9CUk9X
U0VSX1NDUk9MTEJBUlMNCit2b2lkIENCckN0bDo6RHJhd1Njcm9sbGJhckJhY2tncm91bmQoKQ0K
KyAgICB7DQorICAgIGlmIChpQnJDdGxTY3JvbGxpbmdQcm92aWRlcikNCisgICAgICAgIHsNCisg
ICAgICAgIGlCckN0bFNjcm9sbGluZ1Byb3ZpZGVyLT5EcmF3QmFja2dyb3VuZCgpOw0KKyAgICAg
ICAgfQ0KKyAgICB9DQorDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gQ0Jyb3dzZXJTb3VyY2VDb250YWluZXI6Ok1vcFN1
cHBseU9iamVjdA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KKy8vDQorVFR5cGVVaWQ6OlB0ciBDQnJDdGw6Ok1vcFN1cHBseU9i
amVjdChUVHlwZVVpZCBhSWQpDQorICAgIHsNCisgICAgaWYgKGFJZC5pVWlkID09IE1Ba25zQ29u
dHJvbENvbnRleHQ6OkVUeXBlSWQgJiYgaUFrbkJHQ0MpDQorICAgICAgICB7DQorICAgICAgICBy
ZXR1cm4gTUFrbnNDb250cm9sQ29udGV4dDo6U3VwcGx5TW9wT2JqZWN0KGFJZCwgaUFrbkJHQ0Mp
Ow0KKyAgICAgICAgfQ0KKw0KKyAgICByZXR1cm4gQ0NvZUNvbnRyb2w6Ok1vcFN1cHBseU9iamVj
dChhSWQpOw0KKyAgICB9DQorDQordm9pZCBDQnJDdGw6OkRyYXcoY29uc3QgVFJlY3QmIGFSZWN0
KSBjb25zdA0KKyAgICB7DQorICAgIGlmIChpQnJDdGxTY3JvbGxpbmdQcm92aWRlciAmJiAoaUJy
Q3RsU2Nyb2xsaW5nUHJvdmlkZXItPlZTY3JvbGxCYXIoKSB8fA0KKyAgICAgICAgaUJyQ3RsU2Ny
b2xsaW5nUHJvdmlkZXItPkhTY3JvbGxCYXIoKSkpDQorICAgICAgICB7DQorICAgICAgICBDV2lu
ZG93R2MmIGdjID0gU3lzdGVtR2MoKTsNCisgICAgICAgIA0KKyAgICAgICAgaWYgKGlCckN0bFNj
cm9sbGluZ1Byb3ZpZGVyICYmIGlCckN0bFNjcm9sbGluZ1Byb3ZpZGVyLT5WU2Nyb2xsQmFyKCkp
DQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIFRJbnQgbGVmdDsNCisgICAgICAgICAgICBU
SW50IHJpZ2h0Ow0KKyAgICAgICAgICAgIGlmIChpV2ViS2l0Q29udHJvbC0+V2ViS2l0Vmlldygp
LklzUnRsUGFnZSgpKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGxlZnQg
PSAwOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAg
ICAgICB7DQorICAgICAgICAgICAgICAgIGxlZnQgPSBSZWN0KCkuaUJyLmlYIC0gaUJyQ3RsU2Ny
b2xsaW5nUHJvdmlkZXItPlZTY3JvbGxCYXJXaWR0aCgpOw0KKyAgICAgICAgICAgICAgICB9DQor
ICAgICAgICAgICAgcmlnaHQgPSBsZWZ0ICsgaUJyQ3RsU2Nyb2xsaW5nUHJvdmlkZXItPlZTY3Jv
bGxCYXJXaWR0aCgpOw0KKw0KKyAgICAgICAgICAgIFRSZWN0IHJlY3QoVFBvaW50KGxlZnQsMCks
IFRQb2ludChyaWdodCxSZWN0KCkuaUJyLmlZKSk7DQorICAgICAgICAgICAgQWtuc0RyYXdVdGls
czo6QmFja2dyb3VuZChpU2tpbiwgaUFrbkJHQ0MsIE5VTEwsIGdjLCByZWN0KTsNCisgICAgICAg
ICAgICB9DQorDQorICAgICAgICBpZiAoaUJyQ3RsU2Nyb2xsaW5nUHJvdmlkZXIgJiYgaUJyQ3Rs
U2Nyb2xsaW5nUHJvdmlkZXItPkhTY3JvbGxCYXIoKSkNCisgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgVFJlY3QgcmVjdChUUG9pbnQoMCxSZWN0KCkuaUJyLmlZIC0gaUJyQ3RsU2Nyb2xsaW5n
UHJvdmlkZXItPkhTY3JvbGxCYXJIZWlnaHQoKSksIFJlY3QoKS5pQnIpOw0KKyAgICAgICAgICAg
IEFrbnNEcmF3VXRpbHM6OkJhY2tncm91bmQoaVNraW4sIGlBa25CR0NDLCB0aGlzLCBnYywgcmVj
dCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICB9DQorI2VuZGlmDQogDQogdm9p
ZCBDQnJDdGw6OlNldFdtbE1vZGUoVEJvb2wgYU1vZGUpDQogICB7DQpAQCAtMjM5OSw2ICsyNDY0
LDMzIEBAIFRCb29sIENCckN0bDo6U2VuZENvbW1hbmRzVG9DbGllbnQoDQogICAgIHJldHVybiBF
VHJ1ZTsNCiAgICAgfQ0KIA0KKyNpZmRlZiBSRF9CUk9XU0VSX1NDUk9MTEJBUlMNCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisv
LyBDQnJDdGw6OkhhbmRsZVJlc291cmNlQ2hhbmdlDQorLy8gSWYgbmV3IHNraW4gaXMgc2V0IHRo
ZSBpY29ucyB3aWxsIGJlIHJlbG9hZGVkDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8NCit2b2lkIENCckN0bDo6SGFuZGxl
UmVzb3VyY2VDaGFuZ2UoIFRJbnQgYVR5cGUgKQ0KKyAgICB7DQorICAgIENDb2VDb250cm9sOjpI
YW5kbGVSZXNvdXJjZUNoYW5nZShhVHlwZSk7DQorICAgIHN3aXRjaCAoYVR5cGUpDQorICAgICAg
ICB7DQorICAgICAgICBjYXNlIEtBa25zTWVzc2FnZVNraW5DaGFuZ2UgOg0KKyAgICAgICAgICAg
IHsNCisgICAgICAgICAgICBpZiAoaUJyQ3RsU2Nyb2xsaW5nUHJvdmlkZXIpDQorICAgICAgICAg
ICAgICAgIHsNCisgICAgICAgICAgICAgICAgaVNraW4gPSBBa25zVXRpbHM6OlNraW5JbnN0YW5j
ZSgpOw0KKyAgICAgICAgICAgICAgICBUUkFQX0lHTk9SRShpQnJDdGxTY3JvbGxpbmdQcm92aWRl
ci0+U2tpbkNoYW5nZWRMKCkpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgYnJl
YWs7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgZGVmYXVsdDoNCisgICAgICAgICAgICB7DQor
ICAgICAgICAgICAgYnJlYWs7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICB9DQor
I2VuZGlmDQogI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KIC8vIENCckN0bDo6Q3JlYXRlV2lkZ2V0RXh0ZW5zaW9uDQpJbmRleDogV2ViS2l0L0Jy
b3dzZXJDb250cm9sL3NyYy9CckN0bFNjcm9sbGluZ1Byb3ZpZGVyLmNwcA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMvQnJDdGxTY3JvbGxpbmdQcm92aWRlci5jcHAJ
KHJldmlzaW9uIDE3OTY4KQ0KKysrIFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMvQnJDdGxTY3Jv
bGxpbmdQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00OSw2ICs0OSwxNyBAQA0KICNp
bmNsdWRlICJXZWJLaXRDb250cm9sLmgiDQogI2luY2x1ZGUgIldtbEVuZ2luZUludGVyZmFjZS5o
Ig0KIA0KKyNpZmRlZiBSRF9CUk9XU0VSX1NDUk9MTEJBUlMNCisjaW5jbHVkZSA8ZWlrc2Jmcm0u
aD4NCisjaW5jbHVkZSA8ZWlrc2JvYnMuaD4NCisjaW5jbHVkZSAiV2ViS2l0RnJhbWUuaCINCisN
Citjb25zdCBUSW50IEtTY3JvbGxpbmdKdW1wID0gNDA7DQorY29uc3QgVEludCBLV21sU2Nyb2xs
aW5nSnVtcCA9IDE4Ow0KK2NvbnN0IFRJbnQgS1BhZ2VTY2FsZXJTdGFydCA9IDEwMDAgKiAxMDAw
Ow0KK2NvbnN0IFRJbnQgS1BhZ2VTY2FsZXJWaXNpYmlsaXR5VGltZSA9IDEzMDAqMTAwMDsNCitj
b25zdCBUSW50IEtUaW1lQmV0d2VlbkV2ZW50cyA9IDUwMCoxMDAwOw0KKyNlbmRpZg0KIC8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBUd28gcGhhc2UgY29uc3RydWN0aW9uIChTeW1iaWFuKQ0K
IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC01NiwxMCArNjcsMTAgQEAgQ0JyQ3RsU2Nyb2xs
aW5nUHJvdmlkZXIqIENCckN0bFNjcm9sbGluZw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQnJDdGwmIGFCckN0bCkNCiAgICAgew0KICAg
ICBDQnJDdGxTY3JvbGxpbmdQcm92aWRlciogc2VsZiA9IG5ldyAoRUxlYXZlKSBDQnJDdGxTY3Jv
bGxpbmdQcm92aWRlciggYUJyQ3RsICk7DQotICBDbGVhbnVwU3RhY2s6OlB1c2hMKHNlbGYpOw0K
LSAgc2VsZi0+Q29uc3RydWN0TChhUGFyZW50KTsNCi0gIENsZWFudXBTdGFjazo6UG9wKCk7ICAv
LyBzZWxmDQotICByZXR1cm4gc2VsZjsNCisgICAgQ2xlYW51cFN0YWNrOjpQdXNoTChzZWxmKTsN
CisgICAgc2VsZi0+Q29uc3RydWN0TChhUGFyZW50KTsNCisgICAgQ2xlYW51cFN0YWNrOjpQb3Ao
KTsgIC8vIHNlbGYNCisgICAgcmV0dXJuIHNlbGY7DQogICAgIH0NCiANCiAvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQpAQCAtNzYsOCArODcsMTcgQEAgQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OkNC
ckN0bFNjcm9sbGluZw0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENCckN0bFNjcm9s
bGluZ1Byb3ZpZGVyOjpDb25zdHJ1Y3RMKCBjb25zdCBDQ29lQ29udHJvbCYgYVBhcmVudCApDQog
ICAgIHsNCisjaWZuZGVmIFJEX0JST1dTRVJfU0NST0xMQkFSUw0KICAgICAvLyBDb25zdHJ1Y3Qg
dGhlIFNjcm9sbEJhciBmcmFtZSwgdGhpcyBpcyBvdXIgY29yZSBzY3JvbGxpbmcgQVBJDQogICAg
IGlTY3JvbGxCYXJGcmFtZSA9IENTY3JvbGxCYXJGcmFtZTo6TmV3TCggYVBhcmVudCApOw0KKyNl
bHNlDQorICAgIENDb2VDb250cm9sKiBwYXJlbnQgPSAoQ0NvZUNvbnRyb2wqKSgmYVBhcmVudCk7
DQorICAgIGlTYkZyYW1lID0gbmV3IENFaWtTY3JvbGxCYXJGcmFtZShwYXJlbnQsIHRoaXMpOw0K
KyAgICBpU2JGcmFtZS0+Q3JlYXRlRG91YmxlU3BhblNjcm9sbEJhcnNMKEVGYWxzZSwgRUZhbHNl
KTsgDQorICAgIGlTYkZyYW1lLT5TZXRUeXBlT2ZWU2Nyb2xsQmFyKENFaWtTY3JvbGxCYXJGcmFt
ZTo6RURvdWJsZVNwYW4pOw0KKyAgICBpU2JGcmFtZS0+U2V0VHlwZU9mSFNjcm9sbEJhcihDRWlr
U2Nyb2xsQmFyRnJhbWU6OkVEb3VibGVTcGFuKTsNCisgICAgaVNiRnJhbWUtPlNldFNjcm9sbEJh
clZpc2liaWxpdHlMKENFaWtTY3JvbGxCYXJGcmFtZTo6RUF1dG8sQ0Vpa1Njcm9sbEJhckZyYW1l
OjpFT24pOw0KKyNlbmRpZg0KICAgICB9DQogDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAg
LTg1LDcgKzEwNSwxMSBAQCB2b2lkIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpDb25zdHJ1Y3RM
DQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjp+Q0Jy
Q3RsU2Nyb2xsaW5nUHJvdmlkZXIoKQ0KICAgICB7DQorI2lmbmRlZiBSRF9CUk9XU0VSX1NDUk9M
TEJBUlMNCiAgICAgZGVsZXRlIGlTY3JvbGxCYXJGcmFtZTsNCisjZWxzZQ0KKyAgICBkZWxldGUg
aVNiRnJhbWU7DQorI2VuZGlmDQogICAgIH0NCiANCiANCkBAIC05NSwyNSArMTE5LDI4IEBAIENC
ckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjp+Q0JyQ3RsU2Nyb2xsaW4NCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KIC8vDQogdm9pZCBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6VXBkYXRlVlNjcm9s
bEJhckwoIFRJbnQgYURvY3VtZW50SGVpZ2h0LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVEludCBhRGlzcGxheVBvc1kgKQ0KLSAgew0KLQ0KLSAgLy8gSWYgYSBzY3JvbGxi
YXIgaXMgbmVlZGVkLCB1cGRhdGUgaXQNCi0gIFRJbnQgaGVpZ2h0ID0gaVNjcm9sbEJhckZyYW1l
LT5WU2Nyb2xsQmFyV2lkdGhOZWVkZWQoYURvY3VtZW50SGVpZ2h0LA0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhRGlzcGxheVBvc1kgKTsNCi0NCi0gIC8vIElmIG5lY2Vzc2Fy
eSByZXNpemUgQnJvd3NlciBWaWV3DQotICBpZiAoIGhlaWdodCApDQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEludCBhRGlzcGxheVBvc1kgKQ0KICAg
ICB7DQotICAgIFJlc2l6ZUJyQ3RsVmlldyggQ1Njcm9sbEJhcjo6RVZlcnRpY2FsLCBoZWlnaHQg
KTsNCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAgIFVwZGF0ZVZTY3JvbGxCYXJM
KGFEb2N1bWVudEhlaWdodCwgaURpc3BsYXlTaXplLmlIZWlnaHQsIGFEaXNwbGF5UG9zWSApOw0K
KyNlbHNlDQorICAgIC8vIElmIGEgc2Nyb2xsYmFyIGlzIG5lZWRlZCwgdXBkYXRlIGl0DQorICAg
IFRJbnQgaGVpZ2h0ID0gaVNjcm9sbEJhckZyYW1lLT5WU2Nyb2xsQmFyV2lkdGhOZWVkZWQoYURv
Y3VtZW50SGVpZ2h0LA0KKyAgICAgICAgYURpc3BsYXlQb3NZICk7DQorICAgIA0KKyAgICAvLyBJ
ZiBuZWNlc3NhcnkgcmVzaXplIEJyb3dzZXIgVmlldw0KKyAgICBpZiAoIGhlaWdodCApDQorICAg
ICAgICB7DQorICAgICAgICBSZXNpemVCckN0bFZpZXcoIENTY3JvbGxCYXI6OkVWZXJ0aWNhbCwg
aGVpZ2h0ICk7DQogICAgICAgICB9DQotDQorICAgIA0KICAgICAvLyBQbGFjZSBhIGNhbGwgdG8g
dGFrZSBjYXJlIG9mIExUUiBhbmQgUlRMIHN3aXRjaA0KICAgICBTaGlmdEJyQ3RsVmlldygpOw0K
LQ0KLSAgLy8gVXBkYXRlIHRoZSBWZXJ0aWNhbCBzY3JvbGxiYXINCi0gIGlTY3JvbGxCYXJGcmFt
ZS0+VXBkYXRlVlNjcm9sbEJhckwoKTsNCi0gIH0NCisgICAgDQorICAgIC8vIFVwZGF0ZSB0aGUg
VmVydGljYWwgc2Nyb2xsYmFyDQorICAgIGlTY3JvbGxCYXJGcmFtZS0+VXBkYXRlVlNjcm9sbEJh
ckwoKTsNCisjZW5kaWYNCisgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8g
Q0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OlVwZGF0ZUhTY3JvbGxCYXJMDQpAQCAtMTIxLDYgKzE0
OCw5IEBAIHZvaWQgQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OlVwZGF0ZVZTY3INCiB2b2lkIENC
ckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpVcGRhdGVIU2Nyb2xsQmFyTChUSW50IGFEb2N1bWVudFdp
ZHRoLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEludCBhRGlzcGxh
eVBvc1gpDQogICAgIHsNCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAgIFVwZGF0
ZUhTY3JvbGxCYXJMKGFEb2N1bWVudFdpZHRoLCBpRGlzcGxheVNpemUuaVdpZHRoLCBhRGlzcGxh
eVBvc1gpOw0KKyNlbHNlDQogICAgIC8vIElmIGEgc2Nyb2xsYmFyIGlzIG5lZWRlZCwgdXBkYXRl
IGl0LiBXaGF0IGlzIHRoZSBoZWlnaHQgb2YgdGhlIGRpc3BsYXkuDQogICAgIC8vIHZpZXcgYW5k
IHNjcm9sbEJhckZyYW1lJ3MgcmVjdCB3aWxsIGNoYW5nZSBkdWUgdG8gYWRkL3JlbW92ZSBIc2Ny
b2xsYmFyDQogICAgIC8vIGJ1dCBicmN0bCdzIHJlY3Qgd2lsbCByZW1haW4gdGhlIHNhbWUNCkBA
IC0xMjgsNDQgKzE1OCw3NyBAQCB2b2lkIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpVcGRhdGVI
U2NyDQogICAgIFRJbnQgZGlzcGxheUhlaWdodCA9IHJlY3QuSGVpZ2h0KCk7DQogICAgIC8vQ2hl
Y2sgaWYgaG9yaXpvbnRhbCBzY29ybGwgYmFyIGlzIG5lZWRlZA0KICAgICBUSW50IHdpZHRoID0g
aVNjcm9sbEJhckZyYW1lLT5IU2Nyb2xsQmFySGVpZ2h0TmVlZGVkKGFEb2N1bWVudFdpZHRoLA0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFEaXNwbGF5UG9zWCwNCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5
SGVpZ2h0KTsNCisgICAgICAgIGFEaXNwbGF5UG9zWCwNCisgICAgICAgIGRpc3BsYXlIZWlnaHQp
Ow0KICAgICAvLyBJZiBuZWNlc3NhcnkgcmVzaXplIEJyb3dzZXIgVmlldw0KLSAgaWYgKHdpZHRo
KQ0KLSAgew0KLSAgICBpSGFzSG9yaXpvbnRhbFNjcm9sbEJhciA9IEVUcnVlOw0KLSAgICBSZXNp
emVCckN0bFZpZXcoQ1Njcm9sbEJhcjo6RUhvcml6b250YWwsIHdpZHRoKTsNCi0gIH0NCisgICAg
aWYgKHdpZHRoKQ0KKyAgICAgICAgew0KKyAgICAgICAgaUhhc0hvcml6b250YWxTY3JvbGxCYXIg
PSBFVHJ1ZTsNCisgICAgICAgIFJlc2l6ZUJyQ3RsVmlldyhDU2Nyb2xsQmFyOjpFSG9yaXpvbnRh
bCwgd2lkdGgpOw0KKyAgICAgICAgfQ0KICAgICAvLyBQbGFjZSBhIGNhbGwgdG8gdGFrZSBjYXJl
IG9mIExUUiBhbmQgUlRMIHN3aXRjaA0KLSAgICAgICBTaGlmdEJyQ3RsVmlldygpOw0KKyAgICBT
aGlmdEJyQ3RsVmlldygpOw0KICAgICAvLyBVcGRhdGUgdGhlIEhvcml6b250YWwgc2Nyb2xsYmFy
DQogICAgIGlTY3JvbGxCYXJGcmFtZS0+VXBkYXRlSFNjcm9sbEJhckwoKTsNCisjZW5kaWYNCiAg
ICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ0JyQ3RsU2Nyb2xsaW5nUHJv
dmlkZXI6OlVwZGF0ZUhTY3JvbGxCYXJMIHJlcXVpcmVkIGJ5IHdtbA0KIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQogdm9pZCBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6VXBkYXRlSFNjcm9sbEJh
ckwoIFRJbnQgYURvY3VtZW50V2lkdGgsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRJbnQgYURpc3BsYXlXaWR0aCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUSW50IGFEaXNwbGF5UG9zWCApDQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVEludCBhRGlzcGxheVdpZHRoLA0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJbnQgYURpc3BsYXlQb3NYICkN
CiAgICAgew0KKyNpZmRlZiBSRF9CUk9XU0VSX1NDUk9MTEJBUlMNCisgICAgaURpc3BsYXlTaXpl
LmlXaWR0aCA9IGFEaXNwbGF5V2lkdGg7DQorICAgIGlEb2NTaXplLmlXaWR0aCA9IGFEb2N1bWVu
dFdpZHRoOw0KKyAgICBpVGh1bWJQb3MuaVggPSBhRGlzcGxheVBvc1g7DQorICAgIC8vIFVwZGF0
ZSB0aGUgVmVydGljYWwgc2Nyb2xsYmFyDQorICAgIGlIU2Jhck1vZGVsLmlUaHVtYlBvc2l0aW9u
ID0gKGFEaXNwbGF5UG9zWCk7DQorICAgIGlIU2Jhck1vZGVsLmlTY3JvbGxTcGFuID0gKGFEb2N1
bWVudFdpZHRoKTsNCisgICAgaUhTYmFyTW9kZWwuaVRodW1iU3BhbiA9IChpRGlzcGxheVNpemUu
aVdpZHRoKTsNCisgICAgaWYgKGFEb2N1bWVudFdpZHRoIDw9IGFEaXNwbGF5V2lkdGgpDQorICAg
ICAgICB7DQorICAgICAgICBpU2JGcmFtZS0+U2V0U2Nyb2xsQmFyVmlzaWJpbGl0eUwgKENFaWtT
Y3JvbGxCYXJGcmFtZTo6RU9mZixDRWlrU2Nyb2xsQmFyRnJhbWU6OkVPbikgOw0KKyAgICAgICAg
fQ0KKyAgICBlbHNlDQorICAgICAgICB7DQorICAgICAgICBpU2JGcmFtZS0+U2V0U2Nyb2xsQmFy
VmlzaWJpbGl0eUwgKENFaWtTY3JvbGxCYXJGcmFtZTo6RU9uLENFaWtTY3JvbGxCYXJGcmFtZTo6
RU9uKSA7DQorICAgICAgICB9DQorICAgIFRSZWN0IHJlY3QoaUJyQ3RsLT5SZWN0KCkpOw0KKyAg
ICBURWlrU2Nyb2xsQmFyRnJhbWVMYXlvdXQgbGF5b3V0Ow0KKyAgICBsYXlvdXQuaVRpbGluZ01v
ZGUgPSBURWlrU2Nyb2xsQmFyRnJhbWVMYXlvdXQ6OkVJbmNsdXNpdmVSZWN0Q29uc3RhbnQ7DQor
ICAgIGxheW91dC5TZXRDbGllbnRNYXJnaW4oMCk7DQorICAgIGxheW91dC5TZXRJbmNsdXNpdmVN
YXJnaW4oMCk7DQorICAgIFRBa25Eb3VibGVTcGFuU2Nyb2xsQmFyTW9kZWwgaERzU2Jhck1vZGVs
KGlIU2Jhck1vZGVsKTsNCisgICAgVEFrbkRvdWJsZVNwYW5TY3JvbGxCYXJNb2RlbCB2RHNTYmFy
TW9kZWwoaVZTYmFyTW9kZWwpOw0KKyAgICANCisgICAgaVNiRnJhbWUtPlRpbGVMKCZoRHNTYmFy
TW9kZWwsICZ2RHNTYmFyTW9kZWwsIHJlY3QsIHJlY3QsIGxheW91dCk7ICAgICAgICANCisgICAg
aWYgKGlTYkZyYW1lLT5TY3JvbGxCYXJFeGlzdHMgKENFaWtTY3JvbGxCYXI6OkVIb3Jpem9udGFs
KSkNCisgICAgICAgIHsNCisgICAgICAgIGlTYkZyYW1lLT5Nb3ZlSG9yaXpUaHVtYlRvKGlIU2Jh
ck1vZGVsLmlUaHVtYlBvc2l0aW9uKTsNCisgICAgICAgIH0NCisgICAgUmVzaXplQnJDdGxWaWV3
KCBDRWlrU2Nyb2xsQmFyOjpFSG9yaXpvbnRhbCk7DQorI2Vsc2UNCiAgICAgLy8gSWYgYSBzY3Jv
bGxiYXIgaXMgbmVlZGVkLCB1cGRhdGUgaXQuIFdoYXQgaXMgdGhlIGhlaWdodCBvZiB0aGUgZGlz
cGxheS4NCiAgICAgLy8gdmlldyBhbmQgc2Nyb2xsQmFyRnJhbWUncyByZWN0IHdpbGwgY2hhbmdl
IGR1ZSB0byBhZGQvcmVtb3ZlIEhzY3JvbGxiYXINCiAgICAgLy8gYnV0IGJyY3RsJ3MgcmVjdCB3
aWxsIHJlbWFpbiB0aGUgc2FtZQ0KICAgICBUUmVjdCByZWN0ID0gaUJyQ3RsLT5SZWN0KCk7DQog
ICAgIFRJbnQgZGlzcGxheUhlaWdodCA9IHJlY3QuSGVpZ2h0KCk7DQotDQorICAgIA0KICAgICBU
SW50IHdpZHRoID0gaVNjcm9sbEJhckZyYW1lLT5IU2Nyb2xsQmFyTmVlZGVkKCBhRG9jdW1lbnRX
aWR0aCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYURpc3BsYXlXaWR0aCwNCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYURpc3BsYXlQb3NYLA0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5SGVpZ2h0ICk7DQorICAg
ICAgICBhRGlzcGxheVdpZHRoLA0KKyAgICAgICAgYURpc3BsYXlQb3NYLA0KKyAgICAgICAgZGlz
cGxheUhlaWdodCApOw0KICAgICAvLyBJZiBuZWNlc3NhcnkgcmVzaXplIENCckN0bFZpZXcNCiAg
ICAgUmVzaXplQnJDdGxWaWV3KCBDU2Nyb2xsQmFyOjpFSG9yaXpvbnRhbCwgd2lkdGggKTsNCi0N
CisgICAgDQogICAgIFNoaWZ0QnJDdGxWaWV3KCk7DQotDQorICAgIA0KICAgICAvLyBVcGRhdGUg
dGhlIEhvcml6b250YWwgc2Nyb2xsYmFyDQogICAgIGlTY3JvbGxCYXJGcmFtZS0+VXBkYXRlSFNj
cm9sbEJhckwoKTsNCisjZW5kaWYNCiAgICAgfQ0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQpAQCAtMTc3LDI3ICsyNDAsNTMgQEAgdm9pZCBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6VXBk
YXRlSFNjcg0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8NCiB2b2lkIENCckN0bFNjcm9s
bGluZ1Byb3ZpZGVyOjpVcGRhdGVWU2Nyb2xsQmFyTCggVEludCBhRG9jdW1lbnRIZWlnaHQsDQot
ICAgICAgICAgICAgICAgICAgICAgICAgIFRJbnQgYURpc3BsYXlIZWlnaHQsDQotICAgICAgICAg
ICAgICAgICAgICAgICAgIFRJbnQgYURpc3BsYXlQb3NZICkNCi0gIHsNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSW50IGFEaXNwbGF5SGVpZ2h0LA0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJbnQgYURp
c3BsYXlQb3NZICkNCisgICAgew0KKyNpZmRlZiBSRF9CUk9XU0VSX1NDUk9MTEJBUlMNCisgICAg
aURpc3BsYXlTaXplLmlIZWlnaHQgPSBhRGlzcGxheUhlaWdodDsNCisgICAgaURvY1NpemUuaUhl
aWdodCA9IGFEb2N1bWVudEhlaWdodDsNCisgICAgaVRodW1iUG9zLmlZID0gYURpc3BsYXlQb3NZ
Ow0KKyAgICAvLyBVcGRhdGUgdGhlIFZlcnRpY2FsIHNjcm9sbGJhcg0KKyAgICANCisgICAgaVZT
YmFyTW9kZWwuaVRodW1iUG9zaXRpb24gPSAoYURpc3BsYXlQb3NZKTsNCisgICAgaVZTYmFyTW9k
ZWwuaVNjcm9sbFNwYW4gPSAoYURvY3VtZW50SGVpZ2h0KTsNCisgICAgaVZTYmFyTW9kZWwuaVRo
dW1iU3BhbiA9IChpRGlzcGxheVNpemUuaUhlaWdodCk7DQorICAgIFRSZWN0IHJlY3QoaUJyQ3Rs
LT5SZWN0KCkpOw0KKyAgICBURWlrU2Nyb2xsQmFyRnJhbWVMYXlvdXQgbGF5b3V0Ow0KKyAgICBs
YXlvdXQuaVRpbGluZ01vZGUgPSBURWlrU2Nyb2xsQmFyRnJhbWVMYXlvdXQ6OkVJbmNsdXNpdmVS
ZWN0Q29uc3RhbnQ7DQorICAgIGxheW91dC5TZXRDbGllbnRNYXJnaW4oMCk7DQorICAgIGxheW91
dC5TZXRJbmNsdXNpdmVNYXJnaW4oMCk7DQorICAgIFRBa25Eb3VibGVTcGFuU2Nyb2xsQmFyTW9k
ZWwgaERzU2Jhck1vZGVsKGlIU2Jhck1vZGVsKTsNCisgICAgVEFrbkRvdWJsZVNwYW5TY3JvbGxC
YXJNb2RlbCB2RHNTYmFyTW9kZWwoaVZTYmFyTW9kZWwpOw0KKyAgICANCisgICAgaVNiRnJhbWUt
PlRpbGVMKCZoRHNTYmFyTW9kZWwsICZ2RHNTYmFyTW9kZWwsIHJlY3QsIHJlY3QsIGxheW91dCk7
ICAgICAgICANCisgICAgaVNiRnJhbWUtPlNldFZGb2N1c1Bvc1RvVGh1bWJQb3ModkRzU2Jhck1v
ZGVsLkZvY3VzUG9zaXRpb24oKSk7DQorICAgIA0KKyAgICBSZXNpemVCckN0bFZpZXcoIENFaWtT
Y3JvbGxCYXI6OkVWZXJ0aWNhbCk7DQorICAgIC8vIFNoaWZ0IENWaWV3IHRvIHRoZSByaWdodCBw
b3NpdGlvbiwgaWYgd2UgaGF2ZSBzd2l0Y2hlZCBiZXR3ZWVuDQorICAgIC8vIExUUiBhbmQgUlRM
IHBhZ2VzIChvciB2aWNlLXZlcnNhKQ0KKyAgICBTaGlmdEJyQ3RsVmlldygpOw0KKyNlbHNlDQog
ICAgIC8vIElmIGEgc2Nyb2xsYmFyIGlzIG5lZWRlZCwgdXBkYXRlIGl0DQogICAgIFRJbnQgaGVp
Z2h0ID0gaVNjcm9sbEJhckZyYW1lLT5WU2Nyb2xsQmFyTmVlZGVkKCBhRG9jdW1lbnRIZWlnaHQs
DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhRGlzcGxheUhlaWdodCwNCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFEaXNwbGF5UG9zWSApOw0KLQ0KKyAgICAgICAgYURpc3Bs
YXlIZWlnaHQsDQorICAgICAgICBhRGlzcGxheVBvc1kgKTsNCisgICAgDQogICAgIC8vIElmIG5l
Y2Vzc2FyeSByZXNpemUgY2JyY3Rsdmlldw0KICAgICBpZiAoIGhlaWdodCApDQotICAgICAgew0K
LSAgICAgIFJlc2l6ZUJyQ3RsVmlldyggQ1Njcm9sbEJhcjo6RVZlcnRpY2FsLCBoZWlnaHQgKTsN
Ci0gICAgICB9DQorICAgICAgICB7DQorICAgICAgICBSZXNpemVCckN0bFZpZXcoIENTY3JvbGxC
YXI6OkVWZXJ0aWNhbCwgaGVpZ2h0ICk7DQorICAgICAgICB9DQogDQogICAgIC8vIFNoaWZ0IENW
aWV3IHRvIHRoZSByaWdodCBwb3NpdGlvbiwgaWYgd2UgaGF2ZSBzd2l0Y2hlZCBiZXR3ZWVuDQog
ICAgIC8vIExUUiBhbmQgUlRMIHBhZ2VzIChvciB2aWNlLXZlcnNhKQ0KICAgICBTaGlmdEJyQ3Rs
VmlldygpOw0KLQ0KKyAgICANCiAgICAgLy8gVXBkYXRlIHRoZSBWZXJ0aWNhbCBzY3JvbGxiYXIN
CiAgICAgaVNjcm9sbEJhckZyYW1lLT5VcGRhdGVWU2Nyb2xsQmFyTCgpOw0KLSAgfQ0KKyNlbmRp
Zg0KKyAgICB9DQogDQogDQogDQpAQCAtMjA2LDQ2ICsyOTUsNzUgQEAgdm9pZCBDQnJDdGxTY3Jv
bGxpbmdQcm92aWRlcjo6VXBkYXRlVlNjcg0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogdm9p
ZCBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6Tm90aWZ5TGF5b3V0Q2hhbmdlKFRCckN0bExheW91
dCBhTGF5b3V0KQ0KICAgICB7DQorI2lmZGVmIFJEX0JST1dTRVJfU0NST0xMQkFSUw0KKyAgICBp
QnJDdGxMYXlvdXQgPSBhTGF5b3V0Ow0KKyNlbHNlDQogICAgIGlTY3JvbGxCYXJGcmFtZS0+Tm90
aWZ5TGF5b3V0Q2hhbmdlKGFMYXlvdXQpOw0KKyNlbmRpZg0KICAgICB9DQogDQogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCiAvLyBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6VlNjcm9sbEJhcldp
ZHRoDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBUSW50IENCckN0bFNjcm9sbGluZ1Byb3Zp
ZGVyOjpWU2Nyb2xsQmFyV2lkdGgoKQ0KLSAgew0KLSAgcmV0dXJuIGlTY3JvbGxCYXJGcmFtZS0+
VlNjcm9sbEJhcldpZHRoKCk7DQotICB9DQorICAgIHsNCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JP
TExCQVJTDQorICAgIHJldHVybiBpU2JGcmFtZS0+U2Nyb2xsQmFyQnJlYWR0aChDRWlrU2Nyb2xs
QmFyOjpFVmVydGljYWwpOw0KKyNlbHNlDQorICAgIHJldHVybiBpU2Nyb2xsQmFyRnJhbWUtPlZT
Y3JvbGxCYXJXaWR0aCgpOw0KKyNlbmRpZg0KKyAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCiAvLyBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6SFNjcm9sbEJhckhlaWdodA0KIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogVEludCBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6SFNj
cm9sbEJhckhlaWdodCgpDQotICB7DQotICByZXR1cm4gaVNjcm9sbEJhckZyYW1lLT5IU2Nyb2xs
QmFySGVpZ2h0KCk7DQotICB9DQorICAgIHsNCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJT
DQorICAgIHJldHVybiBpU2JGcmFtZS0+U2Nyb2xsQmFyQnJlYWR0aChDRWlrU2Nyb2xsQmFyOjpF
SG9yaXpvbnRhbCk7DQorI2Vsc2UNCisgICAgcmV0dXJuIGlTY3JvbGxCYXJGcmFtZS0+SFNjcm9s
bEJhckhlaWdodCgpOw0KKyNlbmRpZg0KKyAgICB9DQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
IC8vIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpWU2Nyb2xsQmFyDQogLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KKyNpZmRlZiBSRF9CUk9XU0VSX1NDUk9MTEJBUlMNCitjb25zdCBDQ29lQ29udHJv
bCogQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OlZTY3JvbGxCYXIoKQ0KKyAgICB7DQorICAgIHJl
dHVybiBpU2JGcmFtZS0+R2V0U2Nyb2xsQmFySGFuZGxlKENFaWtTY3JvbGxCYXI6OkVWZXJ0aWNh
bCk7DQorICAgIH0NCisjZWxzZQ0KIGNvbnN0IENTY3JvbGxCYXIqIENCckN0bFNjcm9sbGluZ1By
b3ZpZGVyOjpWU2Nyb2xsQmFyKCkNCiAgICAgew0KICAgICByZXR1cm4gaVNjcm9sbEJhckZyYW1l
LT5WU2Nyb2xsQmFyKCk7DQogICAgIH0NCisjZW5kaWYNCiANCiAvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQogLy8gQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OkhTY3JvbGxCYXINCiAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQorI2lmZGVmIFJEX0JST1dTRVJfU0NST0xMQkFSUw0KK2NvbnN0IENDb2VD
b250cm9sKiBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6SFNjcm9sbEJhcigpDQorICAgIHsNCisg
ICAgcmV0dXJuIGlTYkZyYW1lLT5HZXRTY3JvbGxCYXJIYW5kbGUoQ0Vpa1Njcm9sbEJhcjo6RUhv
cml6b250YWwpOw0KKyAgICB9DQorI2Vsc2UNCiBjb25zdCBDU2Nyb2xsQmFyKiBDQnJDdGxTY3Jv
bGxpbmdQcm92aWRlcjo6SFNjcm9sbEJhcigpDQogICAgIHsNCiAgICAgcmV0dXJuIGlTY3JvbGxC
YXJGcmFtZS0+SFNjcm9sbEJhcigpOw0KICAgICB9DQotDQorI2VuZGlmDQogLy8tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KIC8vIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpTY3JvbGxCYXJDb3JuZXJX
aW5kb3cNCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogQ1Njcm9sbEJhckNvcm5lcldpbmRvdyog
Q0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OlNjcm9sbEJhckNvcm5lcldpbmRvdygpDQogICAgIHsN
CisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAgIHJldHVybiBOVUxMOw0KKyNlbHNl
DQogICAgIHJldHVybiBpU2Nyb2xsQmFyRnJhbWUtPlNjcm9sbEJhckNvcm5lcldpbmRvdygpOw0K
KyNlbmRpZg0KICAgICB9DQogDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTI1MywxMTUg
KzM3MSw0MDEgQEAgQ1Njcm9sbEJhckNvcm5lcldpbmRvdyogQ0JyQ3RsU2Nyb2xsaW5nUA0KIC8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpTZXRT
Y3JvbGxEaXNwbGF5UmVjdChUUmVjdCBhUmVjdCkNCiAgICAgew0KLSAgaVNjcm9sbEJhckZyYW1l
LT5TZXREaXNwbGF5UmVjdChhUmVjdCk7DQorI2lmZGVmIFJEX0JST1dTRVJfU0NST0xMQkFSUw0K
KyAgICBpRGlzcGxheVNpemUgPSBhUmVjdC5TaXplKCk7DQorI2Vsc2UNCisgICAgaVNjcm9sbEJh
ckZyYW1lLT5TZXREaXNwbGF5UmVjdChhUmVjdCk7DQorI2VuZGlmDQogICAgIH0NCiAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQogLy8gdm9pZCBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6UmVzaXpl
QnJDdGxWaWV3DQogLy8gUmVzaXplcyB0aGUgcmVjdCBvZiBWaWV3DQogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQordm9pZCBDQnJDdGxTY3Jv
bGxpbmdQcm92aWRlcjo6UmVzaXplQnJDdGxWaWV3KGNvbnN0IENFaWtTY3JvbGxCYXI6OlRPcmll
bnRhdGlvbiBhT3JpZW50YXRpb24pDQorICAgIHsNCisgICAgVFJlY3QgcmVjdDsNCisgICAgaWYo
aUJyQ3RsLT4gV21sTW9kZSgpKQ0KKyAgICAgICAgew0KKyAgICAgICAgcmVjdCA9IGlCckN0bC0+
V21sRW5naW5lSW50ZXJmYWNlKCktPldtbFZpZXdSZWN0YW5nbGUoKTsNCisgICAgICAgIH0NCisg
ICAgZWxzZQ0KKyAgICAgICAgew0KKyAgICAgICAgLy8gTm90ZTogY2FsbGluZyAuUmVjdCgpIHJl
dHVybnMgYSBpVGwgb2YgMCwwIGluc3RlYWQgb2YgdGhlIHBvc2l0aW9uDQorICAgICAgICAvLyB3
ZSBoYWQgdG8gdXNlIHRoaXMgc2xpZ2h0bHkgaW5lZmZpY2llbnQgd29ya2Fyb3VuZA0KKyAgICAg
ICAgcmVjdC5TZXRSZWN0KGlCckN0bC0+V2ViS2l0Q29udHJvbCgpLT5XZWJLaXRWaWV3KCkuUG9z
aXRpb24oKSwNCisgICAgICAgICAgICBpQnJDdGwtPldlYktpdENvbnRyb2woKS0+V2ViS2l0Vmll
dygpLlNpemUoKSk7DQorICAgICAgICB9DQorICAgIA0KKyAgICAvLyBCcmN0bCByZWN0IHNpemUN
CisgICAgLy8gdGhlc2UgdmFyaWFibGVzIG9ubHkgdXNlZCBvbmNlISBzaGFsbCB3ZSBrZWVwIHRo
ZW0/DQorICAgIFRJbnQgZGlzcGxheVdpZHRoID0gaURpc3BsYXlTaXplLmlXaWR0aDsNCisgICAg
VEludCBkaXNwbGF5SGVpZ2h0ICA9IGlEaXNwbGF5U2l6ZS5pSGVpZ2h0Ow0KKyAgICANCisgICAg
DQorICAgIA0KKyAgICAvLyBEb24ndCB1cGRhdGUgaWYgbm90IG5lY2Vzc2FyeSwgcmVjdCBjYWxs
YmFja3MgY2FuIGNyZWF0ZSBlbmRsZXNzIGxvb3ANCisgICAgaWYgKCBhT3JpZW50YXRpb24gPT0g
Q0Vpa1Njcm9sbEJhcjo6RVZlcnRpY2FsICkNCisgICAgICAgIHsNCisgICAgICAgIFRJbnQgcGl4
ZWxzID0gaVNiRnJhbWUtPlNjcm9sbEJhckJyZWFkdGgoQ0Vpa1Njcm9sbEJhcjo6RVZlcnRpY2Fs
KTsNCisgICAgICAgIGlmICggKCFpSGFzVmVydGljYWxTY3JvbGxCYXIpIHx8ICggcmVjdC5XaWR0
aCgpICE9IGRpc3BsYXlXaWR0aCApICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaUhh
c1ZlcnRpY2FsU2Nyb2xsQmFyID0gRVRydWU7DQorICAgICAgICAgICAgLy8gU2hyaW5rIGluIHRo
ZSBob3Jpem9udGFsIHBsYW5lDQorICAgICAgICAgICAgLy8gVFNpemUgcmVjdFNpemUgPSByZWN0
LlNpemUoKTsNCisgICAgICAgICAgICByZWN0LlNldFdpZHRoKCByZWN0LldpZHRoKCkgLSBwaXhl
bHMgKTsNCisgICAgICAgICAgICANCisgICAgICAgICAgICAvLyBGb3IgUmlnaHQgdG8gTGVmdCBw
YWdlcywgc2hyaW5rIGRpc3BsYXkgb24gdGhlIGxlZnQgc2lkZQ0KKyAgICAgICAgICAgIGlmICgg
aUJyQ3RsTGF5b3V0ID09IEVPcmlnaW5Ub3BSaWdodCkNCisgICAgICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgICAgICAvLyBTaGlmdCB0byB0aGUgcmlnaHQNCisgICAgICAgICAgICAgICAgcmVj
dC5Nb3ZlKCBwaXhlbHMgLCAwICk7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAN
CisgICAgICAgICAgICBpRGlzcGxheVNpemUuaVdpZHRoID0gcmVjdC5XaWR0aCgpIDsNCisgICAg
ICAgICAgICANCisgICAgICAgICAgICAvLyBNb2RpZnkgQnJDdGwgcmVjdCwgaWYgbmVjZXNzYXJ5
DQorICAgICAgICAgICAgaUJyQ3RsLT5XZWJLaXRDb250cm9sKCktPldlYktpdFZpZXcoKS5TZXRS
ZWN0KCByZWN0ICk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICBlbHNlDQorICAg
ICAgICAvLyBIb3Jpem9udGFsDQorICAgICAgICB7DQorICAgICAgICAvLyBXZSBuZWVkIHRvIGtu
b3cgd2hhdCB3YXMgdGhlIGhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIsIGFuZCBi
eSBob3cgbXVjaCB0byBpbmNyZWFzZSANCisgICAgICAgIC8vIHRoZSBXZWJLaXQgaGVpZ2h0LCBh
ZnRlciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgd2FzIHJlbW92ZWQuIFRoZXJlIGlzIG5vIEFQ
SSBmb3IgdGhhdCwgDQorICAgICAgICAvLyBzbyB3ZSBqdXN0IG5lZWQgdG8ga2VlcCB0cmFjayBv
ZiBpdCB3aGlsZSB0aGUgc2Nyb2xsYmFyIGlzIHN0aWxsIHRoZXJlDQorICAgICAgICBpSFNCYXJX
aWR0aCA9IChpU2JGcmFtZS0+U2Nyb2xsQmFyQnJlYWR0aChDRWlrU2Nyb2xsQmFyOjpFSG9yaXpv
bnRhbCkgIT0gMCkgPyANCisgICAgICAgICAgICAoaVNiRnJhbWUtPlNjcm9sbEJhckJyZWFkdGgo
Q0Vpa1Njcm9sbEJhcjo6RUhvcml6b250YWwpKSA6IGlIU0JhcldpZHRoOw0KKyAgICAgICAgDQor
ICAgICAgICBUSW50IHBpeGVscyA9IChpRGlzcGxheVNpemUuaVdpZHRoID49IGlEb2NTaXplLmlX
aWR0aCkgPyAwIDogaVNiRnJhbWUtPlNjcm9sbEJhckJyZWFkdGgoQ0Vpa1Njcm9sbEJhcjo6RUhv
cml6b250YWwpOw0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBUQm9vbCBjaGFuZ2VOZWVk
ZWQgPSAoIHJlY3QuSGVpZ2h0KCkgIT0gZGlzcGxheUhlaWdodCApOw0KKyAgICAgICAgICAgIGlm
IChwaXhlbHMgJiYgKCFpSGFzSG9yaXpvbnRhbFNjcm9sbEJhcikpIA0KKyAgICAgICAgICAgICAg
ICB7DQorICAgICAgICAgICAgICAgIGNoYW5nZU5lZWRlZCA9IEVUcnVlOw0KKyAgICAgICAgICAg
ICAgICBpSGFzSG9yaXpvbnRhbFNjcm9sbEJhciA9IEVUcnVlOw0KKyAgICAgICAgICAgICAgICBw
aXhlbHMgPSBwaXhlbHMgKiAtMTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVs
c2UgaWYgKCghcGl4ZWxzKSAmJiBpSGFzSG9yaXpvbnRhbFNjcm9sbEJhcikgDQorICAgICAgICAg
ICAgICAgIHsNCisgICAgICAgICAgICAgICAgcGl4ZWxzID0gaUhTQmFyV2lkdGg7Ly9DRWlrU2Ny
b2xsQmFyOjpEZWZhdWx0U2Nyb2xsQmFyQnJlYWR0aCgpOw0KKyAgICAgICAgICAgICAgICBjaGFu
Z2VOZWVkZWQgPSBFVHJ1ZTsNCisgICAgICAgICAgICAgICAgaUhhc0hvcml6b250YWxTY3JvbGxC
YXIgPSBFRmFsc2U7DQorICAgICAgICAgICAgICAgIGlIU0JhcldpZHRoID0gQ0Vpa1Njcm9sbEJh
cjo6RGVmYXVsdFNjcm9sbEJhckJyZWFkdGgoKTsvL2lTYkZyYW1lLT5TY3JvbGxCYXJCcmVhZHRo
KENFaWtTY3JvbGxCYXI6OkVIb3Jpem9udGFsKTsgLy8gTm8gQVBJIHRvIGdldCB0aGUgU2Nyb2xs
YmFyIHdpZHRoLi4uDQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoY2hhbmdl
TmVlZGVkKQ0KKyAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGlmIChwaXhlbHMp
DQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAvLyBTaHJpbmsg
aW4gdGhlIHZlcnRpY2FsIHBsYW5lDQorICAgICAgICAgICAgICAgICAgICByZWN0LlNldEhlaWdo
dCggcmVjdC5IZWlnaHQoKSArIHBpeGVscyApOw0KKyAgICAgICAgICAgICAgICAgICAgaURpc3Bs
YXlTaXplLmlIZWlnaHQgPSByZWN0LkhlaWdodCgpOw0KKyAgICAgICAgICAgICAgICAgICAgDQor
ICAgICAgICAgICAgICAgICAgICBpZihpQnJDdGwtPiBXbWxNb2RlKCkpDQorICAgICAgICAgICAg
ICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlCckN0bC0+V21sRW5naW5l
SW50ZXJmYWNlKCktPlNldFJlY3QocmVjdCk7DQorICAgICAgICAgICAgICAgICAgICAgICAgfQ0K
KyAgICAgICAgICAgICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIHsNCisg
ICAgICAgICAgICAgICAgICAgICAgICBpQnJDdGwtPldlYktpdENvbnRyb2woKS0+V2ViS2l0Vmll
dygpLlNldFJlY3QocmVjdCk7DQorICAgICAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAg
ICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAg
ICAgfQ0KKyAgICB9DQorI2Vsc2UNCiB2b2lkIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpSZXNp
emVCckN0bFZpZXcoY29uc3QgQ1Njcm9sbEJhcjo6VE9yaWVudGF0aW9uIGFPcmllbnRhdGlvbiwN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJbnQgYVBpeGVscykNCi0gIHsNCisg
ICAgew0KICAgICBUUmVjdCByZWN0Ow0KICAgICBpZihpQnJDdGwtPiBXbWxNb2RlKCkpDQotICAg
ICAgew0KLSAgICAgIHJlY3QgPSBpQnJDdGwtPldtbEVuZ2luZUludGVyZmFjZSgpLT5XbWxWaWV3
UmVjdGFuZ2xlKCk7DQotICAgICAgfQ0KKyAgICAgICAgew0KKyAgICAgICAgcmVjdCA9IGlCckN0
bC0+V21sRW5naW5lSW50ZXJmYWNlKCktPldtbFZpZXdSZWN0YW5nbGUoKTsNCisgICAgICAgIH0N
CiAgICAgZWxzZQ0KLSAgICAgIHsNCi0gICAgICAvLyBOb3RlOiBjYWxsaW5nIC5SZWN0KCkgcmV0
dXJucyBhIGlUbCBvZiAwLDAgaW5zdGVhZCBvZiB0aGUgcG9zaXRpb24NCi0gICAgICAvLyB3ZSBo
YWQgdG8gdXNlIHRoaXMgc2xpZ2h0bHkgaW5lZmZpY2llbnQgd29ya2Fyb3VuZA0KLSAgICAgIHJl
Y3QuU2V0UmVjdChpQnJDdGwtPldlYktpdENvbnRyb2woKS0+V2ViS2l0VmlldygpLlBvc2l0aW9u
KCksDQotICAgICAgICAgICAgIGlCckN0bC0+V2ViS2l0Q29udHJvbCgpLT5XZWJLaXRWaWV3KCku
U2l6ZSgpKTsNCi0gICAgICB9DQotDQorICAgICAgICB7DQorICAgICAgICAvLyBOb3RlOiBjYWxs
aW5nIC5SZWN0KCkgcmV0dXJucyBhIGlUbCBvZiAwLDAgaW5zdGVhZCBvZiB0aGUgcG9zaXRpb24N
CisgICAgICAgIC8vIHdlIGhhZCB0byB1c2UgdGhpcyBzbGlnaHRseSBpbmVmZmljaWVudCB3b3Jr
YXJvdW5kDQorICAgICAgICByZWN0LlNldFJlY3QoaUJyQ3RsLT5XZWJLaXRDb250cm9sKCktPldl
YktpdFZpZXcoKS5Qb3NpdGlvbigpLA0KKyAgICAgICAgICAgIGlCckN0bC0+V2ViS2l0Q29udHJv
bCgpLT5XZWJLaXRWaWV3KCkuU2l6ZSgpKTsNCisgICAgICAgIH0NCisgICAgDQogICAgIC8vIEJy
Y3RsIHJlY3Qgc2l6ZQ0KLQ0KKyAgICANCiAgICAgLy8gdGhlc2UgdmFyaWFibGVzIG9ubHkgdXNl
ZCBvbmNlISBzaGFsbCB3ZSBrZWVwIHRoZW0/DQogICAgIFRJbnQgZGlzcGxheVdpZHRoID0gaVNj
cm9sbEJhckZyYW1lLT5EaXNwbGF5KCkuV2lkdGgoKTsNCiAgICAgVEludCBkaXNwbGF5SGVpZ2h0
ICA9IGlTY3JvbGxCYXJGcmFtZS0+RGlzcGxheSgpLkhlaWdodCgpOw0KLQ0KKyAgICANCiAgICAg
Ly8gRG9uJ3QgdXBkYXRlIGlmIG5vdCBuZWNlc3NhcnksIHJlY3QgY2FsbGJhY2tzIGNhbiBjcmVh
dGUgZW5kbGVzcyBsb29wDQogICAgIGlmICggYU9yaWVudGF0aW9uID09IENTY3JvbGxCYXI6OkVW
ZXJ0aWNhbCApDQotICAgICAgew0KLSAgICAgIGlmICggYVBpeGVscyB8fCAoIHJlY3QuV2lkdGgo
KSAhPSBkaXNwbGF5V2lkdGggKSApDQogICAgICAgICB7DQotICAgICAgICAvLyBTaHJpbmsgaW4g
dGhlIGhvcml6b250YWwgcGxhbmUNCi0gICAgICAgIC8vIFRTaXplIHJlY3RTaXplID0gcmVjdC5T
aXplKCk7DQotICAgICAgICByZWN0LlNldFdpZHRoKCByZWN0LldpZHRoKCkgLSBhUGl4ZWxzICk7
DQotDQotICAgICAgICAvLyBGb3IgUmlnaHQgdG8gTGVmdCBwYWdlcywgc2hyaW5rIGRpc3BsYXkg
b24gdGhlIGxlZnQgc2lkZQ0KLSAgICAgICAgaWYgKCBpU2Nyb2xsQmFyRnJhbWUtPkxheW91dCgp
ID09IEVPcmlnaW5Ub3BSaWdodA0KLSAgICAgICAgICAgICAmJiBhUGl4ZWxzICkNCi0gICAgICAg
ICAgew0KLSAgICAgICAgICAvLyBTaGlmdCB0byB0aGUgcmlnaHQNCi0gICAgICAgICAgcmVjdC5N
b3ZlKCBhUGl4ZWxzICwgMCApOw0KLSAgICAgICAgICB9DQotDQotICAgICAgICBpU2Nyb2xsQmFy
RnJhbWUtPlNldERpc3BsYXlXaWR0aCggcmVjdC5XaWR0aCgpICk7DQotDQotICAgICAgICAvLyBN
b2RpZnkgQnJDdGwgcmVjdCwgaWYgbmVjZXNzYXJ5DQotICAgICAgICBpZiAoIGFQaXhlbHMgKQ0K
LSAgICAgICAgICB7DQotICAgICAgICAgICBpQnJDdGwtPldlYktpdENvbnRyb2woKS0+V2ViS2l0
VmlldygpLlNldFJlY3QoIHJlY3QgKTsNCi0gICAgICAgICAgfQ0KKyAgICAgICAgaWYgKCBhUGl4
ZWxzIHx8ICggcmVjdC5XaWR0aCgpICE9IGRpc3BsYXlXaWR0aCApICkNCisgICAgICAgICAgICB7
DQorICAgICAgICAgICAgLy8gU2hyaW5rIGluIHRoZSBob3Jpem9udGFsIHBsYW5lDQorICAgICAg
ICAgICAgLy8gVFNpemUgcmVjdFNpemUgPSByZWN0LlNpemUoKTsNCisgICAgICAgICAgICByZWN0
LlNldFdpZHRoKCByZWN0LldpZHRoKCkgLSBhUGl4ZWxzICk7DQorICAgICAgICAgICAgDQorICAg
ICAgICAgICAgLy8gRm9yIFJpZ2h0IHRvIExlZnQgcGFnZXMsIHNocmluayBkaXNwbGF5IG9uIHRo
ZSBsZWZ0IHNpZGUNCisgICAgICAgICAgICBpZiAoIGlTY3JvbGxCYXJGcmFtZS0+TGF5b3V0KCkg
PT0gRU9yaWdpblRvcFJpZ2h0DQorICAgICAgICAgICAgICAgICYmIGFQaXhlbHMgKQ0KKyAgICAg
ICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIC8vIFNoaWZ0IHRvIHRoZSByaWdodA0KKyAg
ICAgICAgICAgICAgICByZWN0Lk1vdmUoIGFQaXhlbHMgLCAwICk7DQorICAgICAgICAgICAgICAg
IH0NCisgICAgICAgICAgICANCisgICAgICAgICAgICBpU2Nyb2xsQmFyRnJhbWUtPlNldERpc3Bs
YXlXaWR0aCggcmVjdC5XaWR0aCgpICk7DQorICAgICAgICAgICAgDQorICAgICAgICAgICAgLy8g
TW9kaWZ5IEJyQ3RsIHJlY3QsIGlmIG5lY2Vzc2FyeQ0KKyAgICAgICAgICAgIGlmICggYVBpeGVs
cyApDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgaUJyQ3RsLT5XZWJLaXRD
b250cm9sKCktPldlYktpdFZpZXcoKS5TZXRSZWN0KCByZWN0ICk7DQorICAgICAgICAgICAgICAg
IH0NCisgICAgICAgICAgICB9DQogICAgICAgICB9DQotICAgICAgfQ0KICAgICBlbHNlDQotICAg
ICAgLy8gSG9yaXpvbnRhbA0KLSAgICAgIHsNCi0gICAgICBpZiAoIGFQaXhlbHMgfHwgKCByZWN0
LkhlaWdodCgpICE9IGRpc3BsYXlIZWlnaHQgKSApDQorICAgICAgICAvLyBIb3Jpem9udGFsDQog
ICAgICAgICB7DQotICAgICAgICAvLyBTaHJpbmsgaW4gdGhlIHZlcnRpY2FsIHBsYW5lDQotICAg
ICAgICByZWN0LlNldEhlaWdodCggcmVjdC5IZWlnaHQoKSAtIGFQaXhlbHMgKTsNCi0gICAgICAg
IGlTY3JvbGxCYXJGcmFtZS0+U2V0RGlzcGxheUhlaWdodCggcmVjdC5IZWlnaHQoKSApOw0KLQ0K
LSAgICAgICAgLy8gTW9kaWZ5IEJyQ3RsIHJlY3QsIGlmIG5lY2Vzc2FyeQ0KLSAgICAgICAgaWYg
KCBhUGl4ZWxzICkNCi0gICAgICAgICAgew0KLSAgICAgICAgICBpZihpQnJDdGwtPiBXbWxNb2Rl
KCkpDQotICAgICAgICAgICAgew0KLSAgICAgICAgICAgIGlCckN0bC0+V21sRW5naW5lSW50ZXJm
YWNlKCktPlNldFJlY3QocmVjdCk7DQotICAgICAgICAgICAgfQ0KLSAgICAgICAgICBlbHNlDQor
ICAgICAgICBpZiAoIGFQaXhlbHMgfHwgKCByZWN0LkhlaWdodCgpICE9IGRpc3BsYXlIZWlnaHQg
KSApDQogICAgICAgICAgICAgew0KLSAgICAgICAgICAgIGlCckN0bC0+V2ViS2l0Q29udHJvbCgp
LT5XZWJLaXRWaWV3KCkuU2V0UmVjdChyZWN0KTsNCisgICAgICAgICAgICAvLyBTaHJpbmsgaW4g
dGhlIHZlcnRpY2FsIHBsYW5lDQorICAgICAgICAgICAgcmVjdC5TZXRIZWlnaHQoIHJlY3QuSGVp
Z2h0KCkgLSBhUGl4ZWxzICk7DQorICAgICAgICAgICAgaVNjcm9sbEJhckZyYW1lLT5TZXREaXNw
bGF5SGVpZ2h0KCByZWN0LkhlaWdodCgpICk7DQorICAgICAgICAgICAgDQorICAgICAgICAgICAg
Ly8gTW9kaWZ5IEJyQ3RsIHJlY3QsIGlmIG5lY2Vzc2FyeQ0KKyAgICAgICAgICAgIGlmICggYVBp
eGVscyApDQorICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgaWYoaUJyQ3RsLT4g
V21sTW9kZSgpKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAg
aUJyQ3RsLT5XbWxFbmdpbmVJbnRlcmZhY2UoKS0+U2V0UmVjdChyZWN0KTsNCisgICAgICAgICAg
ICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAgICAgICAgICAg
ew0KKyAgICAgICAgICAgICAgICAgICAgaUJyQ3RsLT5XZWJLaXRDb250cm9sKCktPldlYktpdFZp
ZXcoKS5TZXRSZWN0KHJlY3QpOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAg
ICAgICB9DQogICAgICAgICAgICAgfQ0KLSAgICAgICAgICB9DQogICAgICAgICB9DQotICAgICAg
fQ0KLSAgfQ0KKyNlbmRpZg0KKyAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAv
LyB2b2lkIENCckN0bFNjcm9sbGluZ1Byb3ZpZGVyOjpTaGlmdEJyQ3RsVmlldygpDQogLy8gU2hp
ZnRzIHRoZSByZWN0IG9mIHZpZXcNCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIHZvaWQgQ0Jy
Q3RsU2Nyb2xsaW5nUHJvdmlkZXI6OlNoaWZ0QnJDdGxWaWV3KCkNCi0gIHsNCi0gIC8vIEVuc3Vy
ZSB0aGF0IHZpZXcgaGFzIG5vdCBiZWVuIGRyYXduIG92ZXIgdGhlIHRvcCBvZiB0aGUNCi0gIC8v
IHZlcnRpY2FsIHNjcm9sbGJhcg0KLSAgVEludCBwb3NYID0gaVNjcm9sbEJhckZyYW1lLT5WU2Ny
b2xsQmFyV2lkdGgoKTsNCi0NCi0gIC8vIE5vdGU6IGNhbGxpbmcgLlJlY3QoKSBhbHdheXMgcmV0
dXJucyBhIGlUbCBvZiAwLDAgaW5zdGVhZCBvZiB0aGUNCi0gIC8vIHBvc2l0aW9uIHdlIGhhZCB0
byB1c2UgdGhpcyBzbGlnaHRseSBpbmVmZmljaWVudCB3b3JrYXJvdW5kDQotICBUUmVjdCByZWN0
KCBpQnJDdGwtPldlYktpdENvbnRyb2woKS0+V2ViS2l0VmlldygpLlBvc2l0aW9uKCksDQorICAg
IHsNCisjaWZkZWYgUkRfQlJPV1NFUl9TQ1JPTExCQVJTDQorICAgIC8vIEVuc3VyZSB0aGF0IHZp
ZXcgaGFzIG5vdCBiZWVuIGRyYXduIG92ZXIgdGhlIHRvcCBvZiB0aGUNCisgICAgLy8gdmVydGlj
YWwgc2Nyb2xsYmFyDQorICAgIFRJbnQgcG9zWCA9IGlTYkZyYW1lLT5TY3JvbGxCYXJCcmVhZHRo
KENFaWtTY3JvbGxCYXI6OkVWZXJ0aWNhbCk7DQorICAgIA0KKyAgICAvLyBOb3RlOiBjYWxsaW5n
IC5SZWN0KCkgYWx3YXlzIHJldHVybnMgYSBpVGwgb2YgMCwwIGluc3RlYWQgb2YgdGhlDQorICAg
IC8vIHBvc2l0aW9uIHdlIGhhZCB0byB1c2UgdGhpcyBzbGlnaHRseSBpbmVmZmljaWVudCB3b3Jr
YXJvdW5kDQorICAgIFRSZWN0IHJlY3QoIGlCckN0bC0+V2ViS2l0Q29udHJvbCgpLT5XZWJLaXRW
aWV3KCkuUG9zaXRpb24oKSwNCiAgICAgICAgIGlCckN0bC0+V2ViS2l0Q29udHJvbCgpLT5XZWJL
aXRWaWV3KCkuU2l6ZSgpICk7DQotDQotICBpZiAoICggaVNjcm9sbEJhckZyYW1lLT5MYXlvdXQo
KSA9PSBFT3JpZ2luVG9wTGVmdCApDQotICAgICAgICAgICAgICAgICAgICAgICYmICggcmVjdC5p
VGwuaVggPT0gcG9zWCApICkNCisgICAgDQorICAgIGlmICggKGlCckN0bExheW91dCA9PSBFT3Jp
Z2luVG9wTGVmdCApDQorICAgICAgICAmJiAoIHJlY3QuaVRsLmlYID09IHBvc1ggKSApDQorICAg
ICAgICB7DQorICAgICAgICAvLyBTaGlmdCBMVFIgcGFnZXMgdG8gdGhlIGxlZnQNCisgICAgICAg
IHJlY3QuTW92ZSggKCAtMSAqIHBvc1ggKSwgMCApOw0KKyAgICAgICAgaUJyQ3RsLT5XZWJLaXRD
b250cm9sKCktPldlYktpdFZpZXcoKS5TZXRSZWN0KCByZWN0ICk7DQorICAgICAgICAvLyBNb3Zl
IHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXINCisgICAgICAgIENFaWtTY3JvbGxCYXIqIHZTY3JvbGxC
YXIgPSBpU2JGcmFtZS0+R2V0U2Nyb2xsQmFySGFuZGxlKENFaWtTY3JvbGxCYXI6OkVWZXJ0aWNh
bCk7DQorICAgICAgICBUUmVjdCBzYlJlY3QgPSB2U2Nyb2xsQmFyLT5SZWN0KCk7DQorICAgICAg
ICBzYlJlY3QuTW92ZShyZWN0LldpZHRoKCksIDApOw0KKyAgICAgICAgdlNjcm9sbEJhci0+U2V0
UmVjdChzYlJlY3QpOw0KKyAgICAgICAgDQorICAgICAgICAvLyBNb3ZlIHRoZSBob3Jpem9udGFs
IHNjcm9sbGJhcg0KKyAgICAgICAgQ0Vpa1Njcm9sbEJhciogaFNjcm9sbEJhciA9IGlTYkZyYW1l
LT5HZXRTY3JvbGxCYXJIYW5kbGUoQ0Vpa1Njcm9sbEJhcjo6RUhvcml6b250YWwpOw0KKyAgICAg
ICAgaWYgKGhTY3JvbGxCYXIpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIHNiUmVjdCA9
IGhTY3JvbGxCYXItPlJlY3QoKTsNCisgICAgICAgICAgICBzYlJlY3QuTW92ZShpQnJDdGwtPlJl
Y3QoKS5XaWR0aCgpIC0gc2JSZWN0LldpZHRoKCksIDApOw0KKyAgICAgICAgICAgIGhTY3JvbGxC
YXItPlNldFJlY3Qoc2JSZWN0KTsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorICAgIGVs
c2UgaWYNCisgICAgICAgICggKCBpQnJDdGxMYXlvdXQgPT0gRU9yaWdpblRvcFJpZ2h0ICkNCisg
ICAgICAgICYmICggcmVjdC5pVGwuaVggPT0gMCApICkNCisgICAgICAgIHsNCisgICAgICAgIC8v
IFNoaWZ0IFJUTCBwYWdlcyB0byB0aGUgcmlnaHQNCisgICAgICAgIHJlY3QuTW92ZSggcG9zWCwg
MCApOw0KKyAgICAgICAgaUJyQ3RsLT5XZWJLaXRDb250cm9sKCktPldlYktpdFZpZXcoKS5TZXRS
ZWN0KCByZWN0ICk7DQorICAgICAgICAvLyBNb3ZlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXINCisg
ICAgICAgIENFaWtTY3JvbGxCYXIqIHZTY3JvbGxCYXIgPSBpU2JGcmFtZS0+R2V0U2Nyb2xsQmFy
SGFuZGxlKENFaWtTY3JvbGxCYXI6OkVWZXJ0aWNhbCk7DQorICAgICAgICBUUmVjdCBzYlJlY3Qg
PSB2U2Nyb2xsQmFyLT5SZWN0KCk7DQorICAgICAgICBzYlJlY3QuTW92ZSgoLTEpICogcmVjdC5X
aWR0aCgpLCAwKTsNCisgICAgICAgIHZTY3JvbGxCYXItPlNldFJlY3Qoc2JSZWN0KTsNCisgICAg
ICAgIA0KKyAgICAgICAgLy8gTW92ZSB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXINCisgICAgICAg
IENFaWtTY3JvbGxCYXIqIGhTY3JvbGxCYXIgPSBpU2JGcmFtZS0+R2V0U2Nyb2xsQmFySGFuZGxl
KENFaWtTY3JvbGxCYXI6OkVIb3Jpem9udGFsKTsNCisgICAgICAgIGlmIChoU2Nyb2xsQmFyKQ0K
KyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBzYlJlY3QgPSBoU2Nyb2xsQmFyLT5SZWN0KCk7
DQorICAgICAgICAgICAgc2JSZWN0Lk1vdmUoc2JSZWN0LldpZHRoKCkgLSBpQnJDdGwtPlJlY3Qo
KS5XaWR0aCgpLCAwKTsNCisgICAgICAgICAgICBoU2Nyb2xsQmFyLT5TZXRSZWN0KHNiUmVjdCk7
DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICBpU2JGcmFtZS0+RHJhd0JhY2tncm91
bmQoaVNiRnJhbWUtPlNjcm9sbEJhckV4aXN0cyhDRWlrU2Nyb2xsQmFyOjpFSG9yaXpvbnRhbCks
DQorICAgICAgICBpU2JGcmFtZS0+U2Nyb2xsQmFyRXhpc3RzKENFaWtTY3JvbGxCYXI6OkVWZXJ0
aWNhbCkpOw0KKyNlbHNlDQorICAgIFRJbnQgcG9zWCA9IGlTY3JvbGxCYXJGcmFtZS0+VlNjcm9s
bEJhcldpZHRoKCk7DQorICAgIA0KKyAgICAvLyBOb3RlOiBjYWxsaW5nIC5SZWN0KCkgYWx3YXlz
IHJldHVybnMgYSBpVGwgb2YgMCwwIGluc3RlYWQgb2YgdGhlDQorICAgIC8vIHBvc2l0aW9uIHdl
IGhhZCB0byB1c2UgdGhpcyBzbGlnaHRseSBpbmVmZmljaWVudCB3b3JrYXJvdW5kDQorICAgIFRS
ZWN0IHJlY3QoIGlCckN0bC0+V2ViS2l0Q29udHJvbCgpLT5XZWJLaXRWaWV3KCkuUG9zaXRpb24o
KSwNCisgICAgICAgIGlCckN0bC0+V2ViS2l0Q29udHJvbCgpLT5XZWJLaXRWaWV3KCkuU2l6ZSgp
ICk7DQorICAgIA0KKyAgICBpZiAoICggaVNjcm9sbEJhckZyYW1lLT5MYXlvdXQoKSA9PSBFT3Jp
Z2luVG9wTGVmdCApDQorICAgICAgICAmJiAoIHJlY3QuaVRsLmlYID09IHBvc1ggKSApDQorICAg
ICAgICB7DQorICAgICAgICAvLyBTaGlmdCBMVFIgcGFnZXMgdG8gdGhlIGxlZnQNCisgICAgICAg
IHJlY3QuTW92ZSggKCAtMSAqIHBvc1ggKSwgMCApOw0KKyAgICAgICAgaUJyQ3RsLT5XZWJLaXRD
b250cm9sKCktPldlYktpdFZpZXcoKS5TZXRSZWN0KCByZWN0ICk7DQorICAgICAgICB9DQorICAg
IGVsc2UgaWYNCisgICAgICAgICggKCBpU2Nyb2xsQmFyRnJhbWUtPkxheW91dCgpID09IEVPcmln
aW5Ub3BSaWdodCApDQorICAgICAgICAmJiAoIHJlY3QuaVRsLmlYID09IDAgKSApDQorICAgICAg
ICB7DQorICAgICAgICAvLyBTaGlmdCBSVEwgcGFnZXMgdG8gdGhlIHJpZ2h0DQorICAgICAgICBy
ZWN0Lk1vdmUoIHBvc1gsIDAgKTsNCisgICAgICAgIGlCckN0bC0+V2ViS2l0Q29udHJvbCgpLT5X
ZWJLaXRWaWV3KCkuU2V0UmVjdCggcmVjdCApOw0KKyAgICAgICAgfQ0KKyNlbmRpZg0KKyAgICB9
DQorI2lmZGVmIFJEX0JST1dTRVJfU0NST0xMQkFSUw0KK3ZvaWQgQ0JyQ3RsU2Nyb2xsaW5nUHJv
dmlkZXI6OkhhbmRsZVNjcm9sbEV2ZW50TChDRWlrU2Nyb2xsQmFyKiAvKmFTY3JvbGxCYXIqLywg
VEVpa1Njcm9sbEV2ZW50IGFFdmVudFR5cGUpDQogICAgIHsNCi0gICAgLy8gU2hpZnQgTFRSIHBh
Z2VzIHRvIHRoZSBsZWZ0DQotICAgIHJlY3QuTW92ZSggKCAtMSAqIHBvc1ggKSwgMCApOw0KLSAg
ICBpQnJDdGwtPldlYktpdENvbnRyb2woKS0+V2ViS2l0VmlldygpLlNldFJlY3QoIHJlY3QgKTsN
Ci0gICAgfQ0KLSAgZWxzZSBpZg0KLSAgICAoICggaVNjcm9sbEJhckZyYW1lLT5MYXlvdXQoKSA9
PSBFT3JpZ2luVG9wUmlnaHQgKQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICYmICggcmVjdC5p
VGwuaVggPT0gMCApICkNCi0gICAgew0KLSAgICAvLyBTaGlmdCBSVEwgcGFnZXMgdG8gdGhlIHJp
Z2h0DQotICAgIHJlY3QuTW92ZSggcG9zWCwgMCApOw0KLSAgICBpQnJDdGwtPldlYktpdENvbnRy
b2woKS0+V2ViS2l0VmlldygpLlNldFJlY3QoIHJlY3QgKTsNCisgICAgVFRpbWUgdGhlVGltZTsN
CisgICAgdGhlVGltZS5Vbml2ZXJzYWxUaW1lKCk7DQorICAgIGNvbnN0IFRJbnQ2NCBub3cgPSAg
dGhlVGltZS5JbnQ2NCgpOw0KKyAgICBUQm9vbCBzaG93UGFnZVNjYWxlciA9IEVGYWxzZTsNCisg
ICAgVEludCBzY3JvbGxpbmdKdW1wID0gKGlCckN0bC0+IFdtbE1vZGUoKSkgPyBLV21sU2Nyb2xs
aW5nSnVtcCA6IEtTY3JvbGxpbmdKdW1wOw0KKyAgICBUUG9pbnQgcG9pbnQoaVRodW1iUG9zLmlY
LCBpVGh1bWJQb3MuaVkpOw0KKyAgICBUSW50IHpvb21MZXZlbCA9IDEwMDsNCisgICAgaWYgKCEo
aUJyQ3RsLT5XbWxNb2RlKCkgfHwgaUJyQ3RsLT5XZWJLaXRDb250cm9sKCktPkluUGFnZVZpZXdN
b2RlKCkpKQ0KKyAgICAgICAgew0KKyAgICAgICAgem9vbUxldmVsID0gaUJyQ3RsLT5XZWJLaXRD
b250cm9sKCktPldlYktpdFZpZXcoKS5TY2FsaW5nRmFjdG9yKCk7DQorICAgICAgICB9DQorICAg
IHN3aXRjaCAoYUV2ZW50VHlwZSkNCisgICAgICAgIHsNCisgICAgICAgIGNhc2UgRUVpa1Njcm9s
bExlZnQ6DQorICAgICAgICAgICAgcG9pbnQuaVggLT0gKHNjcm9sbGluZ0p1bXAgKiB6b29tTGV2
ZWwpIC8gMTAwOw0KKyAgICAgICAgICAgIHNob3dQYWdlU2NhbGVyID0gRVRydWU7DQorICAgICAg
ICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEVFaWtTY3JvbGxVcDoNCisgICAgICAgICAgICBw
b2ludC5pWSAtPSAoc2Nyb2xsaW5nSnVtcCAqIHpvb21MZXZlbCkgLyAxMDA7DQorICAgICAgICAg
ICAgc2hvd1BhZ2VTY2FsZXIgPSBFVHJ1ZTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAg
IGNhc2UgRUVpa1Njcm9sbFJpZ2h0Og0KKyAgICAgICAgICAgIHBvaW50LmlYICs9IChzY3JvbGxp
bmdKdW1wICogem9vbUxldmVsKSAvIDEwMDsNCisgICAgICAgICAgICBzaG93UGFnZVNjYWxlciA9
IEVUcnVlOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBFRWlrU2Nyb2xsRG93
bjoNCisgICAgICAgICAgICBwb2ludC5pWSArPSAoc2Nyb2xsaW5nSnVtcCAqIHpvb21MZXZlbCkg
LyAxMDA7DQorICAgICAgICAgICAgc2hvd1BhZ2VTY2FsZXIgPSBFVHJ1ZTsNCisgICAgICAgICAg
ICBicmVhazsNCisgICAgICAgIGNhc2UgRUVpa1Njcm9sbFBhZ2VMZWZ0Og0KKyAgICAgICAgICAg
IHBvaW50LmlYIC09IChpRGlzcGxheVNpemUuaVdpZHRoKTsNCisgICAgICAgICAgICBzaG93UGFn
ZVNjYWxlciA9IEVUcnVlOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBFRWlr
U2Nyb2xsUGFnZVVwOg0KKyAgICAgICAgICAgIHBvaW50LmlZIC09IChpRGlzcGxheVNpemUuaUhl
aWdodCk7DQorICAgICAgICAgICAgc2hvd1BhZ2VTY2FsZXIgPSBFVHJ1ZTsNCisgICAgICAgICAg
ICBicmVhazsNCisgICAgICAgIGNhc2UgRUVpa1Njcm9sbFBhZ2VSaWdodDoNCisgICAgICAgICAg
ICBwb2ludC5pWCArPSAoaURpc3BsYXlTaXplLmlXaWR0aCk7DQorICAgICAgICAgICAgc2hvd1Bh
Z2VTY2FsZXIgPSBFVHJ1ZTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgRUVp
a1Njcm9sbFBhZ2VEb3duOg0KKyAgICAgICAgICAgIHBvaW50LmlZICs9IChpRGlzcGxheVNpemUu
aUhlaWdodCk7DQorICAgICAgICAgICAgc2hvd1BhZ2VTY2FsZXIgPSBFVHJ1ZTsNCisgICAgICAg
ICAgICBicmVhazsNCisgICAgICAgIGNhc2UgRUVpa1Njcm9sbEhvbWU6DQorICAgICAgICAgICAg
cG9pbnQuaVggPSAwOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBFRWlrU2Ny
b2xsVG9wOg0KKyAgICAgICAgICAgIHBvaW50LmlZID0gMDsNCisgICAgICAgICAgICBicmVhazsN
CisgICAgICAgIGNhc2UgRUVpa1Njcm9sbEVuZDoNCisgICAgICAgICAgICBwb2ludC5pWCA9IChp
RG9jU2l6ZS5pV2lkdGgpOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBFRWlr
U2Nyb2xsQm90dG9tOg0KKyAgICAgICAgICAgIHBvaW50LmlZID0gKGlEb2NTaXplLmlIZWlnaHQp
Ow0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBFRWlrU2Nyb2xsVGh1bWJEcmFn
SG9yaXo6DQorICAgICAgICAgICAgcG9pbnQuaVggPSBpU2JGcmFtZS0+R2V0U2Nyb2xsQmFySGFu
ZGxlKENFaWtTY3JvbGxCYXI6OkVIb3Jpem9udGFsKS0+VGh1bWJQb3NpdGlvbigpOw0KKyAgICAg
ICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSBFRWlrU2Nyb2xsVGh1bWJEcmFnVmVydDoNCisg
ICAgICAgICAgICBwb2ludC5pWSA9IGlTYkZyYW1lLT5HZXRTY3JvbGxCYXJIYW5kbGUoQ0Vpa1Nj
cm9sbEJhcjo6RVZlcnRpY2FsKS0+VGh1bWJQb3NpdGlvbigpOw0KKyAgICAgICAgICAgIGJyZWFr
Ow0KKyAgICAgICAgY2FzZSBFRWlrU2Nyb2xsVGh1bWJSZWxlYXNlSG9yaXo6DQorICAgICAgICBj
YXNlIEVFaWtTY3JvbGxUaHVtYlJlbGVhc2VWZXJ0Og0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAg
ICAgICAgfQ0KKyAgICBpZiAoaUJyQ3RsLT5XbWxNb2RlKCkpDQorICAgICAgICB7DQorICAgICAg
ICBpZiAocG9pbnQuaVggKyBpRGlzcGxheVNpemUuaVdpZHRoID4gaURvY1NpemUuaVdpZHRoKQ0K
KyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBwb2ludC5pWCA9IGlEb2NTaXplLmlXaWR0aCAt
IGlEaXNwbGF5U2l6ZS5pV2lkdGg7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgaWYgKHBvaW50
LmlZICsgaURpc3BsYXlTaXplLmlIZWlnaHQgPiBpRG9jU2l6ZS5pSGVpZ2h0KQ0KKyAgICAgICAg
ICAgIHsNCisgICAgICAgICAgICBwb2ludC5pWSA9IGlEb2NTaXplLmlIZWlnaHQgLSBpRGlzcGxh
eVNpemUuaUhlaWdodDsNCisgICAgICAgICAgICB9DQorICAgICAgICBpZiAocG9pbnQuaVggPCAw
KQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBwb2ludC5pWCA9IDA7DQorICAgICAgICAg
ICAgfQ0KKyAgICAgICAgaWYgKHBvaW50LmlZIDwgMCkNCisgICAgICAgICAgICB7DQorICAgICAg
ICAgICAgcG9pbnQuaVkgPSAwOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIGlCckN0bC0+V21s
RW5naW5lSW50ZXJmYWNlKCktPlNjcm9sbFRvKHBvaW50KTsNCisgICAgICAgIH0NCisgICAgZWxz
ZQ0KKyAgICAgICAgew0KKyAgICAgICAgcG9pbnQuaVggPSAocG9pbnQuaVggKiAxMDApIC8gem9v
bUxldmVsOw0KKyAgICAgICAgcG9pbnQuaVkgPSAocG9pbnQuaVkgKiAxMDApIC8gem9vbUxldmVs
Ow0KKyAgICAgICAgaUJyQ3RsLT5XZWJLaXRDb250cm9sKCktPldlYktpdFZpZXcoKS5NYWluRnJh
bWUoKS5TY3JvbGxUbyhwb2ludCk7DQorICAgICAgICB9DQorICAgIGlmICghKGlCckN0bC0+V21s
TW9kZSgpKSAmJiBzaG93UGFnZVNjYWxlcikNCisgICAgICAgIHsNCisgICAgICAgIGlmIChub3cg
LSBpTGFzdFNjcm9sbFRpbWUgPiBLVGltZUJldHdlZW5FdmVudHMgfHwgaVNjcm9sbEV2ZW50ICE9
IGFFdmVudFR5cGUpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIGlTdGFydFNjcm9sbCA9
IG5vdzsgLy8gc3RhcnRpbmcgbmV3IHNjcm9sbCBtb3ZlbWVudA0KKyAgICAgICAgICAgIH0NCisg
ICAgICAgIGlmIChub3cgLSBpU3RhcnRTY3JvbGwgPiBLUGFnZVNjYWxlclN0YXJ0ICYmIGlTY3Jv
bGxFdmVudCA9PSBhRXZlbnRUeXBlKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBpQnJD
dGwtPldlYktpdENvbnRyb2woKS0+V2ViS2l0VmlldygpLlBhZ2VTY2FsZXIoKS0+U2V0VmlzaWJs
ZVVudGlsKEtQYWdlU2NhbGVyVmlzaWJpbGl0eVRpbWUpOw0KKyAgICAgICAgICAgIH0NCisgICAg
ICAgIGlmIChpU2Nyb2xsRXZlbnQgIT0gYUV2ZW50VHlwZSkNCisgICAgICAgICAgICB7DQorICAg
ICAgICAgICAgaUJyQ3RsLT5XZWJLaXRDb250cm9sKCktPldlYktpdFZpZXcoKS5QYWdlU2NhbGVy
KCktPlNldFZpc2libGUoRUZhbHNlKTsNCisgICAgICAgICAgICB9DQorICAgICAgICBpU2Nyb2xs
RXZlbnQgPSBhRXZlbnRUeXBlOw0KKyAgICAgICAgaUxhc3RTY3JvbGxUaW1lID0gbm93Ow0KKyAg
ICAgICAgfQ0KKyAgICB9DQorICAgIA0KK3ZvaWQgQ0JyQ3RsU2Nyb2xsaW5nUHJvdmlkZXI6OlNr
aW5DaGFuZ2VkTCgpDQorICAgIHsNCisgICAgaVNiRnJhbWUtPkNyZWF0ZURvdWJsZVNwYW5TY3Jv
bGxCYXJzTChFRmFsc2UsIEVGYWxzZSk7IA0KKyAgICBpU2JGcmFtZS0+U2V0VHlwZU9mVlNjcm9s
bEJhcihDRWlrU2Nyb2xsQmFyRnJhbWU6OkVEb3VibGVTcGFuKTsNCisgICAgaVNiRnJhbWUtPlNl
dFNjcm9sbEJhclZpc2liaWxpdHlMKENFaWtTY3JvbGxCYXJGcmFtZTo6RUF1dG8sQ0Vpa1Njcm9s
bEJhckZyYW1lOjpFT24pOw0KKyAgICBpU2JGcmFtZS0+RHJhd1Njcm9sbEJhcnNOb3coKTsNCisg
ICAgVXBkYXRlVlNjcm9sbEJhckwoaURvY1NpemUuaUhlaWdodCwgaVRodW1iUG9zLmlZKTsNCisg
ICAgVXBkYXRlSFNjcm9sbEJhckwoaURvY1NpemUuaVdpZHRoLCBpVGh1bWJQb3MuaVgpOw0KICAg
ICB9DQotICB9DQogDQorDQordm9pZCBDQnJDdGxTY3JvbGxpbmdQcm92aWRlcjo6RHJhd0JhY2tn
cm91bmQoKQ0KKyAgICB7DQorICAgIGlTYkZyYW1lLT5EcmF3QmFja2dyb3VuZChpU2JGcmFtZS0+
U2Nyb2xsQmFyRXhpc3RzKENFaWtTY3JvbGxCYXI6OkVIb3Jpem9udGFsKSwNCisgICAgICAgIGlT
YkZyYW1lLT5TY3JvbGxCYXJFeGlzdHMoQ0Vpa1Njcm9sbEJhcjo6RVZlcnRpY2FsKSk7DQorICAg
IGlTYkZyYW1lLT5EcmF3U2Nyb2xsQmFyc05vdygpOw0KKyAgICB9DQorI2VuZGlmDQogLy8gRW5k
IG9mIEZpbGUNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdENvbnRyb2wuY3Bw
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRDb250cm9sLmNw
cAkocmV2aXNpb24gMTc5NjgpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRDb250
cm9sLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTE2NjQsNiArMTY2NCwxMCBAQCB2b2lkIENXZWJL
aXRDb250cm9sOjpGaW5hbFByb2dyZXNzQ29tcGxlDQogICAgIGlCckN0bC0+SGFuZGxlQnJvd3Nl
ckxvYWRFdmVudEwoIFRCckN0bERlZnM6OkVFdmVudFVybExvYWRpbmdGaW5pc2hlZCwgMCwgMCAp
Ow0KICAgICBpQnJDdGwtPkhhbmRsZUJyb3dzZXJMb2FkRXZlbnRMKCBUQnJDdGxEZWZzOjpFRXZl
bnRDb250ZW50RmluaXNoZWQsIDAsIDAgKTsNCiAgICAgaUJyQ3RsLT5IYW5kbGVCcm93c2VyTG9h
ZEV2ZW50TCggVEJyQ3RsRGVmczo6RUV2ZW50TG9hZEZpbmlzaGVkLCAwLCAwICk7DQorI2lmZGVm
IFJEX0JST1dTRVJfU0NST0xMQkFSUw0KKyAgICBpQnJDdGwtPkRyYXdTY3JvbGxiYXJCYWNrZ3Jv
dW5kKCk7DQorICAgIGlCckN0bC0+RHJhd05vdygpOw0KKyNlbmRpZg0KIA0KICAgaWYgKCBpV2Vi
S2l0Vmlldy0+VGFiYmVkTmF2aWdhdGlvbigpKQ0KICAgICB7DQo=
</data>
<flag name="review"
          id="4219"
          type_id="1"
          status="+"
          setter="yongjun.zhang"
    />
          </attachment>
      

    </bug>

</bugzilla>