<?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>13939</bug_id>
          
          <creation_ts>2007-05-30 13:04:09 -0700</creation_ts>
          <short_desc>[S60] 3.2 widget flag changes.</short_desc>
          <delta_ts>2008-04-09 11:39:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>523.x (Safari 3)</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>PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wei Liu">wei.liu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>8712</commentid>
    <comment_count>0</comment_count>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2007-05-30 13:04:09 -0700</bug_when>
    <thetext>Introduce the new static flag __WEB_WIDGETS and new dynamic feature flag KFeatureIdWebWidgets</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8717</commentid>
    <comment_count>1</comment_count>
      <attachid>14790</attachid>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2007-05-30 13:40:42 -0700</bug_when>
    <thetext>Created attachment 14790
patch to remove old flag and use new flag, 3.2 only</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8626</commentid>
    <comment_count>2</comment_count>
      <attachid>14790</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-05-31 13:49:34 -0700</bug_when>
    <thetext>Comment on attachment 14790
patch to remove old flag and use new flag, 3.2 only

Can you please remove the loadpluginssync function. I t is not needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8436</commentid>
    <comment_count>3</comment_count>
      <attachid>14853</attachid>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2007-06-04 10:10:19 -0700</bug_when>
    <thetext>Created attachment 14853
patch to remove old flag and use new flag, 3.2 only</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8413</commentid>
    <comment_count>4</comment_count>
      <attachid>14853</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-06-04 14:33:16 -0700</bug_when>
    <thetext>Comment on attachment 14853
patch to remove old flag and use new flag, 3.2 only

pluginsyncl function is still called</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8252</commentid>
    <comment_count>5</comment_count>
      <attachid>14863</attachid>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2007-06-05 06:52:15 -0700</bug_when>
    <thetext>Created attachment 14863
flag change for 3.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8259</commentid>
    <comment_count>6</comment_count>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2007-06-05 07:03:03 -0700</bug_when>
    <thetext>HI Sachin,

I don&apos;t understand why you were saying the the pluginssyncl is still called in my 2nd patch. It shows clearly it&apos;s removed. Anyway, I resubmitted my patch again,please check them out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8285</commentid>
    <comment_count>7</comment_count>
      <attachid>14863</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-06-05 12:39:18 -0700</bug_when>
    <thetext>Comment on attachment 14863
flag change for 3.2

webkitcontrol.cpp removes deferanimation code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8292</commentid>
    <comment_count>8</comment_count>
      <attachid>14870</attachid>
    <who name="Wei Liu">wei.liu</who>
    <bug_when>2007-06-05 13:43:05 -0700</bug_when>
    <thetext>Created attachment 14870
widget flag changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8294</commentid>
    <comment_count>9</comment_count>
      <attachid>14870</attachid>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-06-05 13:49:23 -0700</bug_when>
    <thetext>Comment on attachment 14870
widget flag changes.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8295</commentid>
    <comment_count>10</comment_count>
    <who name="Sachin Padma">Sachin.Padma</who>
    <bug_when>2007-06-05 13:50:19 -0700</bug_when>
    <thetext>landed in ccb in r21980</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76975</commentid>
    <comment_count>11</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:39:42 -0700</bug_when>
    <thetext>Bulk closing of all s60 platform bugs. 

Sorry for the noise!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14790</attachid>
            <date>2007-05-30 13:40:42 -0700</date>
            <delta_ts>2007-06-04 10:10:19 -0700</delta_ts>
            <desc>patch to remove old flag and use new flag, 3.2 only</desc>
            <filename>13939.patch</filename>
            <type>text/plain</type>
            <size>36810</size>
            <attacher name="Wei Liu">wei.liu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxOTAwKQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE5IEBADQordzNsaXUsIHJldmlld2VkIGJ5IDxTYWNoaW4+DQorIERFU0M6
IDMuMiB3aWRnZXQgZmxhZyBjaGFuZ2VzLg0KKyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzkzOQ0KKw0KKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERF
RCBPUiBDSEFOR0VEDQorDQorICAgICAgICAqIGJyaWRnZS9XZWJDb3JlQnJpZGdlLmg6DQorICAg
ICAgICAqIGtodG1sL2VjbWEva2pzX3dpbmRvdy5jcHA6DQorICAgICAgICAoV2luZG93OjpXaW5k
b3cpOg0KKyAgICAgICAgKFdpbmRvdzo6bWFyayk6DQorICAgICAgICAoV2luZG93OjpnZXQpOg0K
KyAgICAgICAgKiBraHRtbC9lY21hL2tqc193aW5kb3cuaDoNCisgICAgICAgICoga3dxL0tXUUtI
VE1MUGFydC5jcHA6DQorICAgICAgICAoS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnZXRNZW51SXRl
bU9iamVjdCk6DQorICAgICAgICAqIGt3cS9LV1FLSFRNTFBhcnQuaDoNCisNCiAyMDA3LTA1LTI5
ICBidWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5IFNh
Y2hpbi4NCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgJKHJldmlzaW9uIDIxODUyKQ0KKysr
IFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVCcmlkZ2UuaAkod29ya2luZyBjb3B5KQ0KQEAgLTE1Mywx
MyArMTUzLDEyIEBAIGNsYXNzIEtXUUtIVE1MUGFydDsNCiBjbGFzcyBLSFRNTFZpZXc7DQogY2xh
c3MgUmVuZGVyQXJlbmE7DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBuYW1lc3Bh
Y2UgS0pTIHsNCiAgICAgY2xhc3MgRXhlY1N0YXRlOw0KICAgICBjbGFzcyBPYmplY3RJbXA7DQog
ICAgIGNsYXNzIFByb3RlY3RlZFZhbHVlOw0KIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdF
VFMNCisNCiBuYW1lc3BhY2Uga2h0bWwgew0KICAgICBjbGFzcyBSZW5kZXJQYXJ0Ow0KICAgICBj
bGFzcyBSZW5kZXJPYmplY3Q7DQpAQCAtNzUxLDExICs3NTAsOSBAQCBwdWJsaWM6DQogDQogICAg
IHZpcnR1YWwgVEJvb2wgQ2FuY2VsSW5Qcm9ncmVzcygpID0gMDsNCiANCi0jaWZkZWYgIFJEX0JS
T1dTRVJfV0lER0VUUw0KICAgICB2aXJ0dWFsIHZvaWQqIGNyZWF0ZVdpZGdldE9iamVjdCh2b2lk
KiBleGVjKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCogY3JlYXRlV2lkZ2V0TWVudU9iamVjdCh2
b2lkKiBleGVjKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCogY3JlYXRlV2lkZ2V0TWVudUl0ZW1P
YmplY3Qodm9pZCogZXhlYykgPSAwOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIH07
DQogDQogI2VuZGlmICAgICAgLy8gV0VCQ09SRUJSSURHRV9IDQpJbmRleDogV2ViQ29yZS9raHRt
bC9lY21hL2tqc193aW5kb3cuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9raHRtbC9lY21h
L2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAyMTg1MikNCisrKyBXZWJDb3JlL2todG1sL2VjbWEv
a2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0zMjUsMTAgKzMyNSw4IEBAIFdpbmRv
dzo6V2luZG93KEtIVE1MUGFydCAqcCkNCiAgICwgaGlzdG9yeSgwKQ0KICAgLCBmcmFtZXMoMCkN
CiAgICwgbG9jKDApDQotI2lmZGVmIFJEX0JST1dTRVJfV0lER0VUUw0KICAgLCBtX3dpZGdldCgw
KQ0KICAgLCBtX3dpZGdldE1lbnUoMCkNCi0jZW5kaWYNCiAgICwgbV9zZWxlY3Rpb24oMCkNCiAg
ICwgbV9sb2NhdGlvbmJhcigwKQ0KICAgLCBtX21lbnViYXIoMCkNCkBAIC00OTAsMTIgKzQ4OCwx
MCBAQCB2b2lkIFdpbmRvdzo6bWFyaygpDQogICAgIG1fc3RhdHVzYmFyLT5tYXJrKCk7DQogICBp
ZiAobV90b29sYmFyICYmICFtX3Rvb2xiYXItPm1hcmtlZCgpKQ0KICAgICBtX3Rvb2xiYXItPm1h
cmsoKTsNCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICBpZiAobV93aWRnZXQgJiYgIW1f
d2lkZ2V0LT5tYXJrZWQoKSkNCiAgICAgbV93aWRnZXQtPm1hcmsoKTsNCiAgIGlmIChtX3dpZGdl
dE1lbnUgJiYgIW1fd2lkZ2V0TWVudS0+bWFya2VkKCkpDQogICAgIG1fd2lkZ2V0TWVudS0+bWFy
aygpOw0KLSNlbmRpZg0KIH0NCiANCiBVU3RyaW5nIFdpbmRvdzo6dG9TdHJpbmcoRXhlY1N0YXRl
ICopIGNvbnN0DQpAQCAtODIwLDcgKzgxNiw2IEBAIFZhbHVlIFdpbmRvdzo6Z2V0KEV4ZWNTdGF0
ZSAqZXhlYywgY29uc3QNCiAjZW5kaWYNCiAgICAgY2FzZSBMb2NhdGlvbmJhcjoNCiAgICAgICBy
ZXR1cm4gVmFsdWUobG9jYXRpb25iYXIoZXhlYykpOw0KLSNpZmRlZiBSRF9CUk9XU0VSX1dJREdF
VFMNCiAgICAgY2FzZSBfV2lkZ2V0Og0KICAgICAgIGlmICggbV93aWRnZXQgKQ0KICAgICAgICAg
cmV0dXJuIFZhbHVlKG1fd2lkZ2V0KTsNCkBAIC04NDcsNyArODQyLDYgQEAgVmFsdWUgV2luZG93
OjpnZXQoRXhlY1N0YXRlICpleGVjLCBjb25zdA0KICAgICAgIGlmICghKGNvbnN0X2Nhc3Q8V2lu
ZG93Kj4odGhpcyktPm1fd2lkZ2V0TWVudSkpDQogICAgICAgICByZXR1cm4gVW5kZWZpbmVkKCk7
DQogICAgICAgcmV0dXJuIEtXUShtX3BhcnQpLT5jcmVhdGVXaWRnZXRNZW51SXRlbU9iamVjdChl
eGVjKSA/IFZhbHVlKEtXUShtX3BhcnQpLT5jcmVhdGVXaWRnZXRNZW51SXRlbU9iamVjdChleGVj
KSk6VW5kZWZpbmVkKCk7ICAgDQotI2VuZGlmDQogICAgIGNhc2UgTWVudWJhcjoNCiAgICAgICBy
ZXR1cm4gVmFsdWUobWVudWJhcihleGVjKSk7DQogICAgIGNhc2UgT2Zmc2NyZWVuQnVmZmVyaW5n
Og0KSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfd2luZG93LmgNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5oCShyZXZpc2lvbiAyMTg1MikNCisrKyBX
ZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTU5LDEw
ICsxNTksOCBAQCBuYW1lc3BhY2UgS0pTIHsNCiAgICAgdm9pZCB1cGRhdGVMYXlvdXQoYm9vbCBp
Z25vcmVTdHlsZXNoZWV0cyA9IHRydWUpIGNvbnN0Ow0KIA0KICAgICBRR3VhcmRlZFB0cjxLSFRN
TFBhcnQ+IG1fcGFydDsNCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIE9iamVjdElt
cCAqbV93aWRnZXQ7DQogICAgIE9iamVjdEltcCAqbV93aWRnZXRNZW51Ow0KLSNlbmRpZg0KICAg
ICBTY3JlZW4gKnNjcmVlbjsNCiAgICAgSGlzdG9yeSAqaGlzdG9yeTsNCiAgICAgRnJhbWVBcnJh
eSAqZnJhbWVzOw0KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCShyZXZpc2lvbiAyMTg1MikNCisr
KyBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDEzMSw3
ICs0MTMxLDYgQEAgdm9pZCBLV1FLSFRNTFBhcnQ6OnByZXBhcmVGb3JVc2VyQWN0aW9uKA0KICAg
ICBfc3VibWl0dGVkRm9ybVVSTCA9IEtVUkwoKTsNCiB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VS
X1dJREdFVFMNCiBLSlM6Ok9iamVjdEltcCogS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnZXRPYmpl
Y3QoS0pTOjpFeGVjU3RhdGUqIGV4ZWMpDQogew0KICAgICBLSlM6Ok9iamVjdEltcCogb2JqSW1w
bCA9IHN0YXRpY19jYXN0PEtKUzo6T2JqZWN0SW1wICo+KF9icmlkZ2UtPkNsaWVudCgpLmNyZWF0
ZVdpZGdldE9iamVjdCgodm9pZCogKWV4ZWMpKTsNCkBAIC00MTQ3LDcgKzQxNDYsNiBAQCBLSlM6
Ok9iamVjdEltcCogS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnDQogICAgIEtKUzo6T2JqZWN0SW1w
KiBvYmpJbXBsID0gc3RhdGljX2Nhc3Q8S0pTOjpPYmplY3RJbXAgKj4oX2JyaWRnZS0+Q2xpZW50
KCkuY3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoKHZvaWQqIClleGVjKSk7DQogICAgIHJldHVy
biBvYmpJbXBsOw0KIH0NCi0jZW5kaWYNCiANCiBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSAqS1dR
S0hUTUxQYXJ0OjpnZXRFbWJlZEluc3RhbmNlRm9yVmlldyAoTVdlYkNvcmVXaWRnZXQgKmFWaWV3
KQ0KIHsNCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5oCShyZXZpc2lvbiAyMTg1MikNCisrKyBXZWJDb3Jl
L2t3cS9LV1FLSFRNTFBhcnQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIyNywxMSArMjI3LDkgQEAg
cHVibGljOg0KICAgICBib29sIEtleUV2ZW50KGNvbnN0IFRLZXlFdmVudCYgZXZlbnQsIGJvb2wg
dXApOw0KICAgICAvL2Jvb2wgTGFzdEV2ZW50SXNNb3VzZVVwKCk7DQogDQotI2lmZGVmICBSRF9C
Uk9XU0VSX1dJREdFVFMNCiAgICAgS0pTOjpPYmplY3RJbXAqIGNyZWF0ZVdpZGdldE9iamVjdChL
SlM6OkV4ZWNTdGF0ZSogZXhlYykgOw0KICAgICBLSlM6Ok9iamVjdEltcCogY3JlYXRlV2lkZ2V0
TWVudU9iamVjdChLSlM6OkV4ZWNTdGF0ZSogZXhlYykgOw0KICAgICBLSlM6Ok9iamVjdEltcCog
Y3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoS0pTOjpFeGVjU3RhdGUqIGV4ZWMpIDsNCi0jZW5k
aWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAgICAgLy9NZXRob2RzIHRvIHVwZGF0ZSBmb2N1
c2FibGUgbm9kZSBsaXN0DQogICAgIHZvaWQgdXBkYXRlRm9jdXNhYmxlUmVjdExpc3QoKTsNCklu
ZGV4OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjE5MDApDQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAg
LTEsMyArMSw1OCBAQA0KK3czbGl1LCByZXZpZXdlZCBieSBTYWNoaW4NCisgREVTQzogMy4yIHdp
ZGdldCBmbGFnIGNoYW5nZXMuDQorIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzOTM5DQorDQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHA6DQor
ICAgICAgICAoQ0JyQ3RsOjpIYW5kbGVDb21tYW5kTCk6DQorICAgICAgICAoQ0JyQ3RsOjpBZGRP
cHRpb25NZW51SXRlbXNMKToNCisgICAgICAgIChDQnJDdGw6OkNyZWF0ZVdpZGdldEV4dGVuc2lv
bkwpOg0KKyAgICAgICAgKiBCcm93c2VyQ29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9sRmls
ZUlucHV0U2tpbi5jcHA6DQorICAgICAgICAoQ0Zvcm1GaWxlSW5wdXRTa2luOjpBY3RpdmF0ZUwp
Og0KKyAgICAgICAgKiBCcm93c2VyQ29yZS9SZW5kZXJlcnMvc3JjL1RleHRSZW5kZXJlckZhY3Rv
cnkuY3BwOg0KKyAgICAgICAgKENUZXh0UmVuZGVyZXJGYWN0b3J5OjpEZXZpY2VEZWZhdWx0Rm9u
dEZhbWlsaWVzKToNCisgICAgICAgICogQnJvd3NlclZpZXcvaW5jL1dlYktpdENvbnRyb2wuaDoN
CisgICAgICAgIChDV2ViS2l0Q29udHJvbDo6V2lkZ2V0RXh0ZW5zaW9uKToNCisgICAgICAgICog
QnJvd3NlclZpZXcvaW5jL3dlYmtpdGJyaWRnZS5oOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9z
cmMvV2ViS2l0Q29udHJvbC5jcHA6DQorICAgICAgICAoQ1dlYktpdE9PTU5vdGlmaWVyOjpOb3Rp
ZnkpOg0KKyAgICAgICAgKENTdGF0aWNPYmplY3RDb250YWluZXI6OkNTdGF0aWNPYmplY3RDb250
YWluZXIpOg0KKyAgICAgICAgKENTdGF0aWNPYmplY3RDb250YWluZXI6OkZvcm1EYXRhTWFuYWdl
ckhhbmRsZXJMKToNCisgICAgICAgIChDU3RhdGljT2JqZWN0Q29udGFpbmVyOjpEb3dubG9hZE9i
c2VydmVyKToNCisgICAgICAgIChDU3RhdGljT2JqZWN0Q29udGFpbmVyOjpJbml0aWFsaXplRmFj
dG9yeU9iamVjdHNMKToNCisgICAgICAgIChDV2ViS2l0Q29udHJvbDo6Q1dlYktpdENvbnRyb2wp
Og0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpDb25zdHJ1Y3RMKToNCisgICAgICAgIChDV2Vi
S2l0Q29udHJvbDo6fkNXZWJLaXRDb250cm9sKToNCisgICAgICAgIChDV2ViS2l0Q29udHJvbDo6
R2V0QnJvd3NlclNldHRpbmdMKToNCisgICAgICAgIChDV2ViS2l0Q29udHJvbDo6UGFnZUluZm9M
Qyk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkhhbmRsZUxvYWRlckNvbW1hbmRMKToNCisg
ICAgICAgIChDV2ViS2l0Q29udHJvbDo6U3luY0NhbmNlbEwpOg0KKyAgICAgICAgKENXZWJLaXRD
b250cm9sOjpIaXN0b3J5Vmlldyk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkluY3JlbWVu
dFByb2dyZXNzRm9yTW9yZURhdGEpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpGaW5hbFBy
b2dyZXNzQ29tcGxldGUpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpGb3JlZ3JvdW5kRXZl
bnQpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpDcmVhdGVXaWRnZXRFeHRlbnNpb25MKToN
CisgICAgICAgICogQnJvd3NlclZpZXcvc3JjL1dlYktpdFZpZXcuY3BwOg0KKyAgICAgICAgKENX
ZWJLaXRWaWV3OjpNYWtlVmlzaWJsZSk6DQorICAgICAgICAoQ1dlYktpdFZpZXc6OkRyYXcpOg0K
KyAgICAgICAgKiBCcm93c2VyVmlldy9zcmMvd2Via2l0YnJpZGdlLmNwcDoNCisgICAgICAgIChD
V2ViS2l0QnJpZGdlOjpjcmVhdGVXaWRnZXRNZW51SXRlbU9iamVjdCk6DQorICAgICAgICAqIFBs
dWdpbi9pbmMvUGx1Z2luSGFuZGxlci5oOg0KKyAgICAgICAgKiBQbHVnaW4vaW5jL1BsdWdpblNr
aW4uaDoNCisgICAgICAgICogUGx1Z2luL2luYy9QbHVnaW5XaW4uaDoNCisgICAgICAgICogUGx1
Z2luL2luYy9ucGFwaS5oOg0KKyAgICAgICAgKiBQbHVnaW4vc3JjL05wbkltcGxlbWVudGF0aW9u
LmNwcDoNCisgICAgICAgIChOcG5HZXRWYWx1ZSk6DQorICAgICAgICAqIFBsdWdpbi9zcmMvUGx1
Z2luSGFuZGxlci5jcHA6DQorICAgICAgICAqIFBsdWdpbi9zcmMvUGx1Z2luU2tpbi5jcHA6DQor
ICAgICAgICAoQ1BsdWdpblNraW46OkNvbnN0cnVjdEwpOg0KKyAgICAgICAgKENQbHVnaW5Ta2lu
OjpQbHVnaW5TY3JpcHRhYmxlT2JqZWN0KToNCisgICAgICAgICogUGx1Z2luL3NyYy9QbHVnaW5X
aW4uY3BwOg0KKyAgICAgICAgKENQbHVnaW5XaW46OlBsdWdpblNjcmlwdGFibGVPYmplY3QpOg0K
KyAgICAgICAgKiBncm91cC9Ccm93c2VyVmlldy5tbXA6DQorICAgICAgICAqIGdyb3VwL1BsdWdp
bi5tbXA6DQorICAgICAgICAqIGdyb3VwL2Zvcm1jb250cm9scy5tbXBpOg0KKyAgICAgICAgKiBn
cm91cC93ZWJraXQubW1wOg0KKw0KIDIwMDctMDUtMjkgIGJ1anRhcyAgPHpidWp0YXNAZ21haWwu
Y29tPg0KIA0KICAgICAgICAgUmV2aWV3ZWQgYnkgU2FjaGluLg0KSW5kZXg6IFdlYktpdC9Ccm93
c2VyQ29udHJvbC9zcmMvQnJDdGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJD
b250cm9sL3NyYy9CckN0bC5jcHAJKHJldmlzaW9uIDIxODUyKQ0KKysrIFdlYktpdC9Ccm93c2Vy
Q29udHJvbC9zcmMvQnJDdGwuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtODIsOSArODIsNyBAQA0K
ICNpbmNsdWRlIDxBa25zRHJhd1V0aWxzLmg+DQogI2luY2x1ZGUgPEVzY2FwZVV0aWxzLmg+DQog
I2luY2x1ZGUgIkxvYWRlckNvbnRhaW5lci5oIg0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRT
DQogI2luY2x1ZGUgIldpZGdldEV4dGVuc2lvbi5oIg0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lE
R0VUUw0KIA0KICNpbmNsdWRlICJTbWFydExpbmtIYW5kbGVyLmgiDQogDQpAQCAtOTEwLDcgKzkw
OCw2IEBAIEVYUE9SVF9DIHZvaWQgQ0JyQ3RsOjpIYW5kbGVDb21tYW5kTChUSW4NCiAgICAgICAg
ICAgICAgICAgVFBsdWdpbkNvbnRyb2wgcGx1Z2luQ29udHJvbCgqaVdlYktpdENvbnRyb2wpOw0K
ICAgICAgICAgICAgICAgICBwbHVnaW5Db250cm9sLkhhbmRsZVBsdWdpbkNvbW1hbmRMKGFDb21t
YW5kKTsNCiAgICAgICAgICAgICAgICAgfQ0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQog
ICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIENX
aWRnZXRFeHRlbnNpb24qIHdkZ3RFeHQgPSBpV2ViS2l0Q29udHJvbC0+V2lkZ2V0RXh0ZW5zaW9u
KCk7DQpAQCAtOTIwLDcgKzkxNyw2IEBAIEVYUE9SVF9DIHZvaWQgQ0JyQ3RsOjpIYW5kbGVDb21t
YW5kTChUSW4NCiAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgYnJlYWs7
DQogICAgICAgICAgICAgICAgIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAg
ICAgICAgICBicmVhazsNCiAgICAgICAgICAgICB9DQogICAgICAgICB9ICAgLy8gZW5kIG9mIHN3
aXRjaA0KQEAgLTExNTEsMTMgKzExNDcsMTEgQEAgRVhQT1JUX0Mgdm9pZCBDQnJDdGw6OkFkZE9w
dGlvbk1lbnVJdGVtcw0KICAgICAvLyBCYXNlIHdlJ3JlIHVzaW5nIGZvciB0aGUgcGx1Zy1pbnMN
CiAgICAgVFBsdWdpbkNvbnRyb2wgcGx1Z2luQ29udHJvbCgqaVdlYktpdENvbnRyb2wpOw0KICAg
ICBwbHVnaW5Db250cm9sLkFkZFBsdWdpbk9wdGlvbk1lbnVJdGVtc0woYU1lbnVQYW5lLCBUQnJD
dGxEZWZzOjpFQ29tbWFuZElkUGx1Z2luQmFzZSwgYUFmdGVyKTsNCi0jaWZkZWYgIFJEX0JST1dT
RVJfV0lER0VUUw0KICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiB3ZGd0RXh0ID0gaVdlYktpdENvbnRy
b2wtPldpZGdldEV4dGVuc2lvbigpOw0KICAgICBpZiAoIHdkZ3RFeHQgKQ0KICAgICAgICAgew0K
ICAgICAgICAgd2RndEV4dC0+QWRkT3B0aW9uTWVudUl0ZW1zTCggYU1lbnVQYW5lLCBhUmVzb3Vy
Y2VJZCApOw0KICAgICAgICAgfQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICAgICB9
DQogDQogDQpAQCAtMjUzMSwxMSArMjUyNSw3IEBAIHZvaWQgQ0JyQ3RsOjpIYW5kbGVSZXNvdXJj
ZUNoYW5nZSggVEludCANCiAvLw0KIEVYUE9SVF9DIE1XaWRnZXRFeHRlbnNpb24qIENCckN0bDo6
Q3JlYXRlV2lkZ2V0RXh0ZW5zaW9uTChNV2lkZ2V0Q2FsbGJhY2smIGFXaWRnZXRDYWxsYmFjaykN
CiAgICAgew0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIHJldHVybiBpV2ViS2l0
Q29udHJvbC0+Q3JlYXRlV2lkZ2V0RXh0ZW5zaW9uTChhV2lkZ2V0Q2FsbGJhY2spOw0KLSNlbHNl
DQotICAgIHJldHVybiBOVUxMOw0KLSNlbmRpZg0KICAgICB9DQogDQogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29u
dHJvbEZpbGVJbnB1dFNraW4uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb3Jl
L0Zvcm1jb250cm9scy9zcmMvRkNvbnRyb2xGaWxlSW5wdXRTa2luLmNwcAkocmV2aXNpb24gMjE4
NTIpDQorKysgV2ViS2l0L0Jyb3dzZXJDb3JlL0Zvcm1jb250cm9scy9zcmMvRkNvbnRyb2xGaWxl
SW5wdXRTa2luLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTYzLDEwICs2Myw3IEBADQogI2luY2x1
ZGUgIldlYktpdFZpZXcuaCINCiAjaW5jbHVkZSAiV2ViS2l0Q29udHJvbC5oIg0KICNpbmNsdWRl
ICJXZWJLaXRCcmlkZ2UuaCINCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogI2luY2x1ZGUg
IldpZGdldEV4dGVuc2lvbi5oIg0KLSNlbmRpZg0KLQ0KIA0KIHZvaWQgQnJDdGxQYW5pYyhUSW50
KTsNCiANCkBAIC0zODIsNyArMzc5LDYgQEAgdm9pZCBDRm9ybUZpbGVJbnB1dFNraW46OkFjdGl2
YXRlTCgpDQogICAgIHdlYmtpdEZyYW1lLT5XZWJLaXRWaWV3KCkuU2V0RGlhbG9nTGF1bmNoZWQo
RVRydWUpOw0KIA0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIC8vIElmIFdp
ZGdldCBtb2RlIGFuZCBBY2NlcHRlZCBNaW1lIFR5cGUgaGFzIGJlZW4gc2V0DQogICAgIGlmICh3
ZWJLaXRDb250cm9sLT5XaWRnZXRFeHRlbnNpb24oKSAmJg0KICAgICAgICAgaUFjY2VwdGVkTWlt
ZVR5cGUgJiYgaUFjY2VwdGVkTWltZVR5cGUtPkxlbmd0aCgpKQ0KQEAgLTM5NSwxMCArMzkxLDYg
QEAgdm9pZCBDRm9ybUZpbGVJbnB1dFNraW46OkFjdGl2YXRlTCgpDQogICAgICAgICB9DQogICAg
IC8vIElmIGEgcmVjZW50IHBhdGggZXhpc3RzLCB1c2UgdGhhdCBhcyB0aGUgc3RhcnRpbmcgcG9p
bnQuDQogICAgIGVsc2UgaWYgKCBwdHJNb3N0UmVjZW50UGF0aC5MZW5ndGgoKSApDQotI2Vsc2UN
Ci0gICAgLy8gSWYgYSByZWNlbnQgcGF0aCBleGlzdHMsIHVzZSB0aGF0IGFzIHRoZSBzdGFydGlu
ZyBwb2ludC4NCi0gICAgaWYgKCBwdHJNb3N0UmVjZW50UGF0aC5MZW5ndGgoKSApDQotI2VuZGlm
DQogICAgICAgICB7DQogICAgICAgICBUUGFyc2VQdHJDIGZpbGVOYW1lUGFyc2VyKCBwdHJNb3N0
UmVjZW50UGF0aCApOw0KICAgICAgICAgLy8gR2V0IGRyaXZlDQpJbmRleDogV2ViS2l0L0Jyb3dz
ZXJDb3JlL1JlbmRlcmVycy9zcmMvVGV4dFJlbmRlcmVyRmFjdG9yeS5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlckNvcmUvUmVuZGVyZXJzL3NyYy9UZXh0UmVuZGVyZXJGYWN0b3J5
LmNwcAkocmV2aXNpb24gMjE4NTIpDQorKysgV2ViS2l0L0Jyb3dzZXJDb3JlL1JlbmRlcmVycy9z
cmMvVGV4dFJlbmRlcmVyRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0yNTUsNiArMjU1
LDggQEAgVFB0ckMgQ1RleHRSZW5kZXJlckZhY3Rvcnk6OkRldmljZURlZmF1bA0KICAgICAgICAg
ICAgIH0NCiAgICAgICAgIH0NCiANCisgICAgZm9udC5TZXQoIEtKYXBhbmVzZVN0YW5kYXJkRm9u
dEZhbWlseSApOw0KKw0KICAgICBpRGV2aWNlRGVmYXVsdEZvbnQuU2V0KGZvbnQpOw0KICAgICBy
ZXR1cm4gaURldmljZURlZmF1bHRGb250Ow0KICAgICAqLw0KSW5kZXg6IFdlYktpdC9Ccm93c2Vy
Vmlldy9pbmMvV2ViS2l0Q29udHJvbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJW
aWV3L2luYy9XZWJLaXRDb250cm9sLmgJKHJldmlzaW9uIDIxODUyKQ0KKysrIFdlYktpdC9Ccm93
c2VyVmlldy9pbmMvV2ViS2l0Q29udHJvbC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtOTMsOSArOTMs
NyBAQCBjbGFzcyBDU3RhdGljSW1hZ2VEZWNvZGVyOw0KIGNsYXNzIENQbHVnaW5Db250ZW50UGxh
eWVyOw0KIGNsYXNzIENXZWJLaXRPT01Ob3RpZmllcjsNCiANCi0jaWZkZWYgIFJEX0JST1dTRVJf
V0lER0VUUw0KIGNsYXNzIENXaWRnZXRFeHRlbnNpb247DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9X
SURHRVRTDQogDQogLy8gQ0xBU1MgREVDTEFSQVRJT04NCiAvKioNCkBAIC0zMzAsNyArMzI4LDYg
QEAgY2xhc3MgQ1dlYktpdENvbnRyb2wgOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICovDQogICAg
ICAgICBDV2ViS2l0VmlldyogQ3JlYXRlV2luZG93KGNvbnN0IFREZXNDJiBhRnJhbWVOYW1lLFRC
b29sIGFVc2VySW5pdGlhdGVkKTsNCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAg
ICAgICAgLyoqDQogICAgICAgICAqIENyZWF0ZVdpZGdldEV4dGVuc2lvbg0KICAgICAgICAgKiBQ
dXJwb3NlOiBDcmVhdGVzIHRoZSB3aWRnZXQgZXh0ZW5zaW9uIG9iamVjdA0KQEAgLTMzOSw3ICsz
MzYsNiBAQCBjbGFzcyBDV2ViS2l0Q29udHJvbCA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKiBA
cmV0dXJuIE1XaWRnZXRFeHRlbnNpb24qDQogICAgICAgICAqLw0KICAgICAgICAgTVdpZGdldEV4
dGVuc2lvbiogQ3JlYXRlV2lkZ2V0RXh0ZW5zaW9uTChNV2lkZ2V0Q2FsbGJhY2smIGFXaWRnZXRD
YWxsYmFjaykgOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KICAgICAgICAgLyoq
DQogICAgICAgICAqIEZpbmRXaW5kb3dOYW1lZA0KQEAgLTUyMiwxNCArNTE4LDEyIEBAIGNsYXNz
IENXZWJLaXRDb250cm9sIDogcHVibGljIENCYXNlDQogICAgICAgICAqLw0KICAgICAgICAgQ0Jy
Q3RsJiBCckN0bCgpIGNvbnN0IHsgcmV0dXJuICppQnJDdGw7IH0NCiANCi0jaWZkZWYgIFJEX0JS
T1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQogICAgICAgICAqIEFzc29jaWF0ZWQgYnJvd3Nl
ciBjb250cm9sDQogICAgICAgICAqIEBzaW5jZSAzLjANCiAgICAgICAgICogQHJldHVybiBBIHJl
ZmVyZW5jZSB0byBCckN0bA0KICAgICAgICAgKi8NCiAgICAgICAgIENXaWRnZXRFeHRlbnNpb24q
IFdpZGdldEV4dGVuc2lvbigpIGNvbnN0IHsgcmV0dXJuIGlXaWRnZXRFeHRlbnNpb247IH0NCi0j
ZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBS
ZXNvdXJjZSBsb2FkZXIgc2V0dGluZ3MgY29udHJvbGxlcg0KQEAgLTkzOCw5ICs5MzIsNyBAQCBj
bGFzcyBDV2ViS2l0Q29udHJvbCA6IHB1YmxpYyBDQmFzZQ0KIA0KICAgICAgICAgc3RhdGljIFRJ
bnQgaURlZmF1bHRDaGFyc2V0Ow0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAg
ICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiBpV2lkZ2V0RXh0ZW5zaW9uOw0KLSNlbmRpZiAvL1JEX0JS
T1dTRVJfV0lER0VUUw0KICAgICB9Ow0KIA0KICNlbmRpZiAgICAgIC8vIFdFQktJVENPTlRST0xf
SA0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9pbmMvd2Via2l0YnJpZGdlLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL3dlYmtpdGJyaWRnZS5oCShyZXZpc2lvbiAy
MTg1MikNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL3dlYmtpdGJyaWRnZS5oCSh3b3JraW5n
IGNvcHkpDQpAQCAtOTEsNyArOTEsNiBAQCBjbGFzcyBDV2ViS2l0QnJpZGdlIDogcHVibGljIENC
YXNlLCBwdWJsDQogDQogICAgIHB1YmxpYzogLy8gTWV0aG9kcyBGcm9tIE1XZWJDbGllbnRCcmlk
Z2UNCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQogICAgICAg
ICAqIGNyZWF0ZVdpZGdldE9iamVjdA0KICAgICAgICAgKiBGcm9tIE1XZWJDbGllbnRCcmlkZ2UN
CkBAIC0xMTgsOCArMTE3LDYgQEAgY2xhc3MgQ1dlYktpdEJyaWRnZSA6IHB1YmxpYyBDQmFzZSwg
cHVibA0KICAgICAgICAgKiBAcmV0dXJuIHZvaWQqDQogICAgICAgICAqLw0KICAgICAgICAgdm9p
ZCogY3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoIHZvaWQqIGV4ZWMgKTsNCi0NCi0jZW5kaWYg
Ly9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBDaGlsZEZy
YW1lcw0KSW5kZXg6IFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0Q29udHJvbC5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdENvbnRyb2wuY3BwCShy
ZXZpc2lvbiAyMTg1MikNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdENvbnRyb2wu
Y3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtODMsMTAgKzgzLDkgQEANCiAjaW5jbHVkZSAiSHR0cENh
Y2hlTWFuYWdlci5oIg0KICNpbmNsdWRlICJTdGF0aWNJbWFnZURlY29kZXIuaCINCiAjaW5jbHVk
ZSA8QWtuSW5mb1BvcHVwTm90ZUNvbnRyb2xsZXIuaD4NCisjaW5jbHVkZSA8RmVhdE1nci5oPg0K
IA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogI2luY2x1ZGUgIldpZGdldEV4dGVuc2lv
bi5oIg0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KICNpbmNsdWRlICJQbHVnaW5D
b250ZW50UGxheWVyLmgiDQogI2luY2x1ZGUgIlBsdWdpblNraW4uaCINCkBAIC0yNjIsMTQgKzI2
MSwxNCBAQCBjbGFzcyBDV2ViS2l0T09NTm90aWZpZXIgOiBwdWJsaWMgTU9PTU5vDQogICAgIHB1
YmxpYzoNCiAgICAgICAgIHN0YXRpYyBDV2ViS2l0T09NTm90aWZpZXIqIE5ld0woKTsNCiAgICAg
ICAgIH5DV2ViS2l0T09NTm90aWZpZXIoKTsNCi0gICAgICAgIA0KKw0KICAgICAgICAgLy8gZnJv
bSBNT09NTm90aWZpZXINCiAgICAgICAgIFRJbnQgTm90aWZ5KCk7DQotICAgICAgICANCisNCiAg
ICAgcHJpdmF0ZToNCiAgICAgICAgIENBa25JbmZvUG9wdXBOb3RlQ29udHJvbGxlciogaUluZm9O
b3RlOw0KICAgICB9Ow0KLSAgICANCisNCiBDV2ViS2l0T09NTm90aWZpZXIqIENXZWJLaXRPT01O
b3RpZmllcjo6TmV3TCgpDQogICAgIHsNCiAgICAgQ1dlYktpdE9PTU5vdGlmaWVyKiBzZWxmID0g
bmV3IChFTGVhdmUpIENXZWJLaXRPT01Ob3RpZmllcjsNCkBAIC0yODYsMTUgKzI4NSwxNSBAQCBD
V2ViS2l0T09NTm90aWZpZXI6On5DV2ViS2l0T09NTm90aWZpZXIoDQogDQogVEludCBDV2ViS2l0
T09NTm90aWZpZXI6Ok5vdGlmeSgpDQogICAgIHsNCi0gICAgVFJBUF9JR05PUkUoIA0KKyAgICBU
UkFQX0lHTk9SRSgNCiAgICAgICAgIEhCdWZDKiBzdHIgPSBTdHJpbmdMb2FkZXI6OkxvYWRMQygg
Ul9RVE5fQlJPV1NFUl9JTkZPTk9URV9PVVRfT0ZfTUVNT1JZICk7DQogICAgICAgICBpSW5mb05v
dGUtPlNldFRleHRMKCAqc3RyICk7DQogICAgICAgICBpSW5mb05vdGUtPlNldFRpbWVEZWxheUJl
Zm9yZVNob3coIDAgKTsNCiAgICAgICAgIGlJbmZvTm90ZS0+U2V0VGltZVBvcHVwSW5WaWV3KCA0
MDAwICk7ICAgIC8vIDQgc2Vjb25kcw0KLSAgICAgICAgaUluZm9Ob3RlLT5TaG93SW5mb1BvcHVw
Tm90ZSgpOyAgICAgICAgICAgIA0KKyAgICAgICAgaUluZm9Ob3RlLT5TaG93SW5mb1BvcHVwTm90
ZSgpOw0KICAgICAgICAgQ2xlYW51cFN0YWNrOjpQb3BBbmREZXN0cm95KCk7DQotICAgICAgICAp
ICAgDQotICAgIHJldHVybiAwOyAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgKQ0KKyAg
ICByZXR1cm4gMDsNCiAgICAgfQ0KICNlbmRpZg0KIA0KQEAgLTMxNyw4ICszMTYsOCBAQCBDU3Rh
dGljT2JqZWN0Q29udGFpbmVyJiBDU3RhdGljT2JqZWN0Q29uDQogICAgICAgIH0NCiAgICAgcmV0
dXJuICppSW5zdGFuY2U7DQogICAgIH0NCi0gICAgDQotICAgIA0KKw0KKw0KIC8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KIC8vIENTdGF0aWNPYmplY3RDb250YWluZXI6OkNTdGF0aWNPYmplY3RD
b250YWluZXINCiAvLyBjb25zdHJ1Y3Rvcg0KQEAgLTMyNiw3ICszMjUsNyBAQCBDU3RhdGljT2Jq
ZWN0Q29udGFpbmVyJiBDU3RhdGljT2JqZWN0Q29uDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQogQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6Q1N0YXRpY09iamVjdENvbnRhaW5lcigpDQogICAg
IHsNCi0jaWZkZWYgX19PT01fXyAgICAgICAgDQorI2lmZGVmIF9fT09NX18NCiAgICAgVFJBUF9J
R05PUkUoaU9PTU5vdGlmaWVyID0gQ1dlYktpdE9PTU5vdGlmaWVyOjpOZXdMKCkpOw0KICAgICBN
ZW1vcnlNYW5hZ2VyOjpTZXROb3RpZmllciggaU9PTU5vdGlmaWVyICk7DQogI2VuZGlmDQpAQCAt
NDU2LDcgKzQ1NSw3IEBAIENGb3JtRGF0YU1hbmFnZXIqIENTdGF0aWNPYmplY3RDb250YWluZXIN
CiAgICAgaWYgKGFCckN0bC5DYXBhYmlsaXRpZXMoKSAmIFRCckN0bERlZnM6OkVDYXBhYmlsaXR5
QXV0b0Zvcm1GaWxsICYmICFpRm9ybURhdGFNYW5hZ2VyKQ0KICAgICAgICAgew0KICAgICAgICAg
Ly8gQ3JlYXRlIGRhdGEgbWFuYWdlciBmb3IgYXV0byBmb3JtIGZpbGwNCi0gICAgICAgIGlGb3Jt
RGF0YU1hbmFnZXIgPSBDRm9ybURhdGFNYW5hZ2VyOjpOZXdMKGFCckN0bC5CckN0bERpYWxvZ3NQ
cm92aWRlcigpLCANCisgICAgICAgIGlGb3JtRGF0YU1hbmFnZXIgPSBDRm9ybURhdGFNYW5hZ2Vy
OjpOZXdMKGFCckN0bC5CckN0bERpYWxvZ3NQcm92aWRlcigpLA0KICAgICAgICAgICAgIGFCckN0
bC5XZWJLaXRDb250cm9sKCktPkdldEJyb3dzZXJTZXR0aW5nTChUQnJDdGxEZWZzOjpFU2V0dGlu
Z3NBdXRvRm9ybUZpbGxFbmFibGVkKSApOw0KICAgICAgICAgfQ0KICAgICByZXR1cm4gaUZvcm1E
YXRhTWFuYWdlcjsNCkBAIC01MzEsNyArNTMwLDcgQEAgQ0JyQ3RsRG93bmxvYWRPYnNlcnZlciYg
Q1N0YXRpY09iamVjdENvbg0KICAgICB7DQogICAgIGlmKCAhaURvd25sb2FkT2JzZXJ2ZXIgKQ0K
ICAgICAgICAgew0KLSAgICAgICAgLy8gaW5pdCANCisgICAgICAgIC8vIGluaXQNCiAgICAgICAg
IGlEb3dubG9hZE9ic2VydmVyID0gbmV3IChFTGVhdmUpIENCckN0bERvd25sb2FkT2JzZXJ2ZXI7
DQogICAgICAgICB9DQogICAgIHJldHVybiAqaURvd25sb2FkT2JzZXJ2ZXI7DQpAQCAtNTg4LDcg
KzU4Nyw3IEBAIHZvaWQgQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6SW5pdGlhbGl6ZUYNCiAgICAg
UGx1Z2luSGFuZGxlckwoYUJyQ3RsKTsNCiAgICAgLy8NCiAgICAgTG9hZGVyQ29udGFpbmVyTCgg
YUJyQ3RsICk7DQotICAgIERvd25sb2FkT2JzZXJ2ZXIoKTsgICAgDQorICAgIERvd25sb2FkT2Jz
ZXJ2ZXIoKTsNCiAgICAgLy8gc2F2ZSBwYWdlcyBjYXBhYmlsaXR5DQogICAgIGlJbWdSZW5kZXJl
ckZhY3RvcnktPlNldFNhdmVJbWFnZURhdGEoIGlMb2FkZXJDb250YWluZXItPkNhcGFiaWxpdGll
cygpICYgVEJyQ3RsRGVmczo6RUNhcGFiaWxpdHlTYXZlZFBhZ2UgKTsNCiANCkBAIC02MTMsNyAr
NjEyLDcgQEAgQ1dlYktpdENvbnRyb2w6OkNXZWJLaXRDb250cm9sKA0KICAgICBDQnJDdGwmIGFC
ckN0bCApDQogICAgIDogaUJyQ3RsKCAmYUJyQ3RsICksDQogICAgIGlDYWNoZU1vZGUoIFRCckN0
bERlZnM6OkVDYWNoZU1vZGVOb3JtYWwgKSwNCi0gICAgaUhlYWRlckFycml2ZWQoRUZhbHNlKSwg
ICAgDQorICAgIGlIZWFkZXJBcnJpdmVkKEVGYWxzZSksDQogICAgIGlJbml0aWFsUHJvZ3Jlc3NQ
ZXJjZW50YWdlKCBLTWluSW5pdGlhbFByb2dyZXNzUGVyY2VudGFnZSApDQogICAgIHsNCiAgICAg
fQ0KQEAgLTY0NSw3ICs2NDQsNyBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpDb25zdHJ1Y3RMKCkN
CiAgICAgbG9hZGVyQ29udGFpbmVyLT5TZXRDb29raWVzRW5hYmxlZCggR2V0QnJvd3NlclNldHRp
bmdMKCBUQnJDdGxEZWZzOjpFU2V0dGluZ3NDb29raWVzRW5hYmxlZCApICk7DQogICAgIC8vDQog
ICAgIGxvYWRlckNvbnRhaW5lci0+U2V0RG93bmxvYWRzT3BlbkVuYWJsZWQoIEdldEJyb3dzZXJT
ZXR0aW5nTCggVEJyQ3RsRGVmczo6RVNldHRpbmdzQXV0b09wZW5Eb3dubG9hZHMgKSApOw0KLSAg
ICAvLyAgICANCisgICAgLy8NCiAgICAgbG9hZGVyQ29udGFpbmVyLT5TZXRCcm93c2VyRW1iZWRk
ZWQoIEdldEJyb3dzZXJTZXR0aW5nTCggVEJyQ3RsRGVmczo6RVNldHRpbmdzRW1iZWRkZWQgKSAp
Ow0KICAgICAvLw0KICAgICBsb2FkZXJDb250YWluZXItPlNldExvYWRPYnNlcnZlcnMoICooaUJy
Q3RsLT5CckN0bFNwZWNpYWxMb2FkT2JzZXJ2ZXIoKSksICooaUJyQ3RsLT5CckN0bERvd25sb2Fk
T2JzZXJ2ZXIoKSksDQpAQCAtNjYxLDcgKzY2MCw3IEBAIHZvaWQgQ1dlYktpdENvbnRyb2w6OkNv
bnN0cnVjdEwoKQ0KICAgICAgICAgew0KICAgICAgICAgQ1JlcG9zaXRvcnkqIHJlcCA9IENSZXBv
c2l0b3J5OjpOZXdMKCBLQ1JVaWRCcm93c2VyICk7DQogICAgICAgICByZXAtPkdldCggS0Jyb3dz
ZXJEZWZhdWx0Q2hhcnNldCwgaURlZmF1bHRDaGFyc2V0ICk7DQotICAgICAgICBkZWxldGUgcmVw
OyANCisgICAgICAgIGRlbGV0ZSByZXA7DQogICAgICAgICB9DQogICAgIH0NCiANCkBAIC03MjEs
MTEgKzcyMCw5IEBAIENXZWJLaXRDb250cm9sOjp+Q1dlYktpdENvbnRyb2woKQ0KIA0KICAgICAv
LyBjbGVhdXAgdGhlIHN0YXRpYyBvYmplY3QNCiAgICAgQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6
SW5zdGFuY2UoKS5EZXJlZigpOw0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIGRl
bGV0ZSBpV2lkZ2V0RXh0ZW5zaW9uOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICAg
ICB9DQotICAgIA0KKw0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dlYktpdENv
bnRyb2w6OlNldEJyb3dzZXJTZXR0aW5nDQpAQCAtODQ0LDcgKzg0MSw3IEBAIFRVaW50IENXZWJL
aXRDb250cm9sOjpHZXRCcm93c2VyU2V0dGluZ0wNCiAgICAgICAgICAgICAgICAgVEJyQ3RsRGVm
czo6VEJyQ3RsU2V0dGluZ3MoIGFTZXR0aW5nICkpLkJvb2xWYWx1ZSgpOw0KICAgICAgICAgICAg
IGJyZWFrOw0KICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICANCisNCiAgICAgICAgIC8vIElu
dGVnZXIgc2V0dGluZyB2YWx1ZXMNCiAgICAgICAgIGNhc2UgVEJyQ3RsRGVmczo6RVNldHRpbmdz
Rm9udFNpemU6DQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVTZXR0aW5nc0NoYXJhY3RlcnNl
dDoNCkBAIC05NDcsOCArOTQ0LDggQEAgSEJ1ZkMqIENXZWJLaXRDb250cm9sOjpQYWdlSW5mb0xD
KA0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIGNhc2UgVEJy
Q3RsRGVmczo6RVBhZ2VJbmZvU2F2ZWRQYWdlOg0KLSAgICAgICAgICAgIHsgICAgICAgICAgICAg
ICAgICAgICAgICANCi0gICAgICAgICAgICBwYWdlSW5mbyA9IEdlbmVyYXRlU2F2ZWRQYWdlTCgp
OyAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgcGFnZUlu
Zm8gPSBHZW5lcmF0ZVNhdmVkUGFnZUwoKTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAg
ICAgICB9DQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVQYWdlSW5mb0ZvY3VzZWROb2RlVXJs
Og0KQEAgLTExNTgsNyArMTE1NSw3IEBAIHZvaWQgQ1dlYktpdENvbnRyb2w6OkhhbmRsZUxvYWRl
ckNvbW1hbmQNCiAgICAgICAgICAgICBDV2ViS2l0RnJhbWUqIGZyYW1lID0gJihpV2ViS2l0Vmll
dy0+TWFpbkZyYW1lKCkpOw0KICAgICAgICAgICAgIHdoaWxlKCBmcmFtZSApDQogICAgICAgICAg
ICAgICAgIHsNCi0gICAgICAgICAgICAgICAgLy9MZXQgYWxsIGNvbm5lY3Rpb24gdG8gY2xvc2Ug
Zmlyc3QgdGhlbiBEZXJlZigpIA0KKyAgICAgICAgICAgICAgICAvL0xldCBhbGwgY29ubmVjdGlv
biB0byBjbG9zZSBmaXJzdCB0aGVuIERlcmVmKCkNCiAgICAgICAgICAgICAgICAgLy93aGVuIGRp
c2Nvbm5lY3RlZCBieSB0aGUgdXNlci4NCiAgICAgICAgICAgICAgICAgQ1dlYktpdEZyYW1lKiBj
dXJyZW50RnJhbWUgPSBmcmFtZTsNCiAgICAgICAgICAgICAgICAgY3VycmVudEZyYW1lLT5SZWYo
KTsNCkBAIC0xMTc1LDExICsxMTcyLDExIEBAIHZvaWQgQ1dlYktpdENvbnRyb2w6OkhhbmRsZUxv
YWRlckNvbW1hbmQNCiAjaWYgUFJPR1JFU1NfTE9HDQogICAgICAgICAgICAgd2tEZWJ1ZygpPDwi
dXNlciBjYW5jZWwiPDxmbHVzaDsNCiAjZW5kaWYgLy8gUFJPR1JFU1NfTE9HDQotICAgICAgICAg
ICAgLy8gICAgICAgIA0KKyAgICAgICAgICAgIC8vDQogICAgICAgICAgICAgRmluYWxQcm9ncmVz
c0NvbXBsZXRlKGFFcnJvcik7DQogICAgICAgICAgICAgaUNhbmNlbFRpbWVyLT5DYW5jZWwoKTsN
CiAgICAgICAgICAgICBpQ2FuY2VsVGltZXItPlN0YXJ0KCAwLCAwLCBUQ2FsbEJhY2soICZDYW5j
ZWxDYWxsYmFjaywgdGhpcyApICk7DQotICAgICAgICAgICAgaUNhbmNlbEluUHJvZ3Jlc3MgPSBF
VHJ1ZTsgICAgICAgICAgICANCisgICAgICAgICAgICBpQ2FuY2VsSW5Qcm9ncmVzcyA9IEVUcnVl
Ow0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIGRlZmF1bHQ6
DQpAQCAtMTIwMyw3ICsxMjAwLDcgQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6U3luY0NhbmNlbEwo
KQ0KICNlbmRpZiAvLyBQUk9HUkVTU19MT0cNCiAgICAgaVN5bmNDYW5jZWwgPSBFVHJ1ZTsNCiAg
ICAgaUNhbmNlbFRpbWVyLT5DYW5jZWwoKTsNCi0gDQorDQogICAgIGlmICggaVdlYktpdFZpZXct
PlRhYmJlZE5hdmlnYXRpb24oKSkNCiAgICAgICAgIHsNCiAgICAgICAgIFRXZWJDb3JlRm9jdXNl
ZEVsZW1lbnRUeXBlIGVsVHlwZSA9IEVXZWJDb3JlRWxlbWVudE5vbmU7DQpAQCAtMTIyMSw3ICsx
MjE4LDcgQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6U3luY0NhbmNlbEwoKQ0KICAgICAgICAgICAg
IGlXZWJLaXRWaWV3LT5TZXRGb2N1c2VkRWxlbWVudFR5cGUoIChUQnJDdGxEZWZzOjpUQnJDdGxF
bGVtZW50VHlwZSllbFR5cGUgKTsNCiAgICAgICAgICAgICB9DQogICAgICAgICB9DQotICAgICAg
ICANCisNCiAgICAgQ1dlYktpdEZyYW1lKiBmcmFtZSA9ICYoaVdlYktpdFZpZXctPk1haW5GcmFt
ZSgpKTsNCiAgICAgd2hpbGUoIGZyYW1lICkNCiAgICAgICAgIHsNCkBAIC0xMjMwLDggKzEyMjcs
OCBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpTeW5jQ2FuY2VsTCgpDQogICAgICAgICAvLw0KICAg
ICAgICAgfQ0KICAgICBpU3luY0NhbmNlbCA9IEVGYWxzZTsNCi0gDQotICAgIGlIaXN0b3J5Q29u
dHJvbGxlci0+Q2FuY2VsUmVzZXRFbnRyeVBvc2l0aW9uTCgpOyAgICANCisNCisgICAgaUhpc3Rv
cnlDb250cm9sbGVyLT5DYW5jZWxSZXNldEVudHJ5UG9zaXRpb25MKCk7DQogICAgIGlCckN0bC0+
SGFuZGxlQnJvd3NlckxvYWRFdmVudEwoIFRCckN0bERlZnM6OkVFdmVudENvbnRlbnRGaW5pc2hl
ZCwgMCwgMCApOw0KIA0KICAgICAvLyByZWxlYXNlIGNhbmNlbCBwcm90ZWN0aW9uIHVubGVzcyB0
aGVyZSBpcyBzb21lIG91dHN0YW5kaW5nDQpAQCAtMTUyMyw3ICsxNTIwLDcgQEAgQ0hpc3RvcnlW
aWV3KiBDV2ViS2l0Q29udHJvbDo6SGlzdG9yeVZpZQ0KICAgICByZXR1cm4gaUhpc3RvcnlDb250
cm9sbGVyLT5IaXN0b3J5VmlldyggKTsNCiAjZWxzZQ0KICAgICByZXR1cm4gTlVMTDsNCi0jZW5k
aWYgDQorI2VuZGlmDQogICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTE2
ODMsNyArMTY4MCw3IEBAIHZvaWQgQ1dlYktpdENvbnRyb2w6OkluY3JlbWVudFByb2dyZXNzRm8N
CiAgICAgLy8gY29udGVudCBzaXplIG1pbnVzIHRoZSBsYXN0IHJlY2VpdmVkIGNvbnRlbnQgc2l6
ZQ0KICAgICBUSW50IGJ5dGVzUmVjZWl2ZWQoIGFSZWNlaXZlZENvbnRlbnRTaXplIC0gaXRlbS5p
Qnl0ZXNSZWNlaXZlZCApOw0KIA0KLSAgICAvLyBBZGp1c3QgaWYgdGhlIHRvdGFsIHJlY2VpdmVk
IGJ5dGVzIGlzIGRpZmZlcmVudCB0aGFuIG91ciBlc3RpbWF0ZSANCisgICAgLy8gQWRqdXN0IGlm
IHRoZSB0b3RhbCByZWNlaXZlZCBieXRlcyBpcyBkaWZmZXJlbnQgdGhhbiBvdXIgZXN0aW1hdGUN
CiAgICAgaXRlbS5pQnl0ZXNSZWNlaXZlZCA9IGFSZWNlaXZlZENvbnRlbnRTaXplOw0KICAgICBp
ZiAoIGl0ZW0uaUJ5dGVzUmVjZWl2ZWQgPiBpdGVtLmlFc3RpbWF0ZWRMZW5ndGggKQ0KICAgICAg
ICAgew0KQEAgLTE2OTksNyArMTY5Niw3IEBAIHZvaWQgQ1dlYktpdENvbnRyb2w6OkluY3JlbWVu
dFByb2dyZXNzRm8NCiAgICAgVEludCBudW1QZW5kaW5nT3JMb2FkaW5nUmVxdWVzdHMoIGlXZWJL
aXRWaWV3LT5NYWluRnJhbWUoKS5OdW1QZW5kaW5nT3JMb2FkaW5nUmVxdWVzdHMoKSApOw0KICAg
ICBUSW50IGVzdGltYXRlZEJ5dGVzRm9yUGVuZGluZ1JlcXVlc3RzID0gS1dlYlByb2dyZXNzSXRl
bURlZmF1bHRFc3RpbWF0ZWRMZW5ndGggKg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbnVtUGVuZGluZ09yTG9hZGluZ1JlcXVlc3RzOw0KLSAgICANCisNCiAg
ICAgLy8gQ2FsY3VsYXRlIHRoZSBhbW91bnQgdG8gaW5jcmVtZW50IHRoZSBwcm9ncmVzcyBiYXIN
CiAgICAgVEludCByZW1haW5pbmdCeXRlcyA9ICgoIGlUb3RhbFBhZ2VBbmRSZXNvdXJjZUJ5dGVz
VG9Mb2FkICsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzdGltYXRlZEJ5dGVzRm9y
UGVuZGluZ1JlcXVlc3RzICkgLQ0KQEAgLTE4NDgsNyArMTg0NSw3IEBAIHZvaWQgQ1dlYktpdENv
bnRyb2w6OkZpbmFsUHJvZ3Jlc3NDb21wbGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEwMCwgMCApOw0KICAgICAgICAgfQ0KICAgICBSZXNldFByb2dyZXNzKCk7
DQotICAgICAgICANCisNCiAgICAgaUJyQ3RsLT5IYW5kbGVCcm93c2VyTG9hZEV2ZW50TCggVEJy
Q3RsRGVmczo6RUV2ZW50VXJsTG9hZGluZ0ZpbmlzaGVkLCAwLCAwICk7DQogICAgIGlCckN0bC0+
SGFuZGxlQnJvd3NlckxvYWRFdmVudEwoIFRCckN0bERlZnM6OkVFdmVudENvbnRlbnRGaW5pc2hl
ZCwgMCwgMCApOw0KICAgICBpQnJDdGwtPkhhbmRsZUJyb3dzZXJMb2FkRXZlbnRMKCBUQnJDdGxE
ZWZzOjpFRXZlbnRMb2FkRmluaXNoZWQsIDAsIDAgKTsNCkBAIC0xODkxLDcgKzE4ODgsNyBAQCB2
b2lkIENXZWJLaXRDb250cm9sOjpGaW5hbFByb2dyZXNzQ29tcGxlDQogLy8gZnJhbWVzLiBUaGUg
cHJvZ3Jlc3MgYmFyIG5lZWRzIHRvIG1vdmUgaW4gYSBwb3NpdGl2ZSBkaXJlY3Rpb24gYW5kIG5v
dCBnbw0KIC8vIGJhY2ssIHdoZW4gb3VyIG5ldyBlc3RpbWF0ZWQgcHJvZ3Jlc3MgaXMgbGVzcyB0
aGVuIG91ciBsYXN0IGVzdGltYXRlLiBJZSwNCiAvLyBpZiB3ZSBndWVzcyB3ZSdyZSBhdCAyMCUg
YW5kIHRoZSBuZXh0IGNodWNrIG1ha2VzIG91ciBndWVzcyAxOCUsIHdlIGxlYXZlIHRoZQ0KLS8v
IHByb2dyZXNzIGJhciBhdCAyMCUuIA0KKy8vIHByb2dyZXNzIGJhciBhdCAyMCUuDQogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENXZWJLaXRDb250cm9sOjpQcm9ncmVzc1VwZGF0ZSgp
DQogICAgIHsNCkBAIC0yMjkxLDcgKzIyODgsNiBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpGb3Jl
Z3JvdW5kRXZlbnQoVEJvDQogICAgICAgICBDV2ViQ29yZUJyaWRnZTo6U2V0RGVmZXJzVGltZXJz
KCBFRmFsc2UgKTsNCiAgICAgICAgIH0NCiAgICAgfQ0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURH
RVRTDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDV2ViS2l0Q29udHJvbDo6Q3JlYXRl
V2lkZ2V0RXh0ZW5zaW9uDQogLy8NCkBAIC0yMjk5LDE0ICsyMjk1LDE3IEBAIHZvaWQgQ1dlYktp
dENvbnRyb2w6OkZvcmVncm91bmRFdmVudChUQm8NCiAvLw0KIE1XaWRnZXRFeHRlbnNpb24qIENX
ZWJLaXRDb250cm9sOjpDcmVhdGVXaWRnZXRFeHRlbnNpb25MKE1XaWRnZXRDYWxsYmFjayYgYVdp
ZGdldENhbGxiYWNrKQ0KICAgICB7DQotICAgIGlmKCAhaVdpZGdldEV4dGVuc2lvbiApDQorICAg
IGlmIChGZWF0dXJlTWFuYWdlcjo6RmVhdHVyZVN1cHBvcnRlZChLRmVhdHVyZUlkV2ViV2lkZ2V0
cykpDQogICAgICAgICB7DQotICAgICAgICBpV2lkZ2V0RXh0ZW5zaW9uID0gQ1dpZGdldEV4dGVu
c2lvbjo6TmV3TCgqaVdlYktpdFZpZXcsYVdpZGdldENhbGxiYWNrKTsNCisgICAgICAgIGlmKCAh
aVdpZGdldEV4dGVuc2lvbiApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgIGlXaWRnZXRF
eHRlbnNpb24gPSBDV2lkZ2V0RXh0ZW5zaW9uOjpOZXdMKCppV2ViS2l0VmlldyxhV2lkZ2V0Q2Fs
bGJhY2spOw0KKyAgICAgICAgICAgIH0NCisNCisgICAgICAgIFBsdWdpbkhhbmRsZXIoKS5Mb2Fk
UGx1Z2luc1N5bmNMKCk7DQogICAgICAgICB9DQotICAgIFBsdWdpbkhhbmRsZXIoKS5Mb2FkUGx1
Z2luc1N5bmNMKCk7DQogICAgIHJldHVybiBpV2lkZ2V0RXh0ZW5zaW9uOw0KICAgICB9DQotI2Vu
ZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQog
Ly8gQ2FsbGVkIHdoZW4gdXNlciBjbGlja3MgYSBwbHVnaW4gd2hpY2ggaXMgYWJsZSB0byBhY2Nl
cHQgdXNlciBpbnB1dCwNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdFZpZXcu
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNw
cAkocmV2aXNpb24gMjE4NTIpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3
LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTYyLDExICs2Miw5IEBADQogI2luY2x1ZGUgIldlYktp
dFRvb2xCYXJJbnRlcmZhY2UuaCINCiAjaW5jbHVkZSAiVG9vbEJhci5oIg0KICNpbmNsdWRlICJB
bmltYXRpb25EZWNvZGVyLmgiDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAjaW5jbHVk
ZSAiV2lkZ2V0RXh0ZW5zaW9uLmgiDQogI2luY2x1ZGUgIldpZGdldEVuZ2luZUJyaWRnZS5oIg0K
ICNpbmNsdWRlICJXaWRnZXRSZW5kZXJlci5oIg0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VU
Uw0KICNpbmNsdWRlICJGZWF0TWdyLmgiDQogI2luY2x1ZGUgIldlYkNvcmVGb3JtQ29udHJvbEZh
Y3RvcnkuaCINCiAjaW5jbHVkZSAiRkNvbnRyb2xJbnB1dFdpZGdldC5oIg0KQEAgLTYyNCw3ICs2
MjIsNiBAQCB2b2lkIENXZWJLaXRWaWV3OjpNYWtlVmlzaWJsZSgNCiAgICAgICAgIHJldHVybjsN
CiAgICAgICAgIH0NCiAgICAgU2V0Vmlld1Zpc2libGUoYVZpc2libGUpOw0KLSNpZmRlZiAgUkRf
QlJPV1NFUl9XSURHRVRTDQogICAgIENXaWRnZXRFeHRlbnNpb24qIHdkZ3RFeHQgPSBpV2ViS2l0
Q29udHJvbC0+V2lkZ2V0RXh0ZW5zaW9uKCk7DQogICAgIGlmKCB3ZGd0RXh0ICkNCiAgICAgICAg
IHsNCkBAIC02MzQsNyArNjMxLDYgQEAgdm9pZCBDV2ViS2l0Vmlldzo6TWFrZVZpc2libGUoDQog
ICAgICAgICAgICAgd2RndEJyaWRnZS0+U2V0V2lkZ2V0VmlzaWJpbGl0eShhVmlzaWJsZSk7DQog
ICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0K
ICAgICB9DQogDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtOTIxLDcgKzkxNyw2IEBA
IHZvaWQgQ1dlYktpdFZpZXc6OkRyYXcoDQogICAgIC8vIHB1dCBvZmZzY3JlZW4gYml0bWFwIG9u
dG8gdGhlIHNjcmVlbg0KICAgaVJlbmRlclRhcmdldC0+RmxpcCggUmVjdCgpLmlUbCwgZ2MgKTsN
CiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiB3
ZGd0RXh0ID0gaVdlYktpdENvbnRyb2wtPldpZGdldEV4dGVuc2lvbigpOw0KICAgICBpZiAod2Rn
dEV4dCkNCiAgICAgICAgIHsNCkBAIC05MzEsNyArOTI2LDYgQEAgdm9pZCBDV2ViS2l0Vmlldzo6
RHJhdygNCiAgICAgICAgICAgICB3aWRnZXRSZW5kZXJlci0+RHJhd1RyYW5zaXRpb24oZ2MsIE9m
ZnNjcmVlbkJpdG1hcCgpKTsNCiAgICAgICAgICAgICB9DQogICAgICAgICB9DQotI2VuZGlmIC8v
UkRfQlJPV1NFUl9XSURHRVRTDQogICAgIGlmIChpSXNQYWdlU2NhbGVyRW5hYmxlZCkNCiAgICAg
ICAgIHsNCiAgICAgICAgIGlQYWdlU2NhbGVyLT5EcmF3KCBnYyxhUmVjdCApOw0KSW5kZXg6IFdl
YktpdC9Ccm93c2VyVmlldy9zcmMvd2Via2l0YnJpZGdlLmNwcA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdl
YktpdC9Ccm93c2VyVmlldy9zcmMvd2Via2l0YnJpZGdlLmNwcAkocmV2aXNpb24gMjE4NTIpDQor
KysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy93ZWJraXRicmlkZ2UuY3BwCSh3b3JraW5nIGNvcHkp
DQpAQCAtNTEsOSArNTEsNyBAQA0KICNpbmNsdWRlICJIaXN0b3J5Q29udHJvbGxlci5oIg0KICNp
bmNsdWRlICJMb2FkZXJVdGlscy5oIg0KICNpbmNsdWRlICJXZWJLaXRMb2dnZXIuaCINCi0jaWZk
ZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICNpbmNsdWRlICJXaWRnZXRFeHRlbnNpb24uaCINCi0j
ZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAvL0NPTlNUQU5UUw0KIF9MSVQoS0RhdGVT
dHJpbmcsICIlLUIlOjAlSiU6MSVUJToyJVMlLiUqQzQlOjMlK0IiKTsNCkBAIC0xMzY2LDcgKzEz
NjQsNiBAQCB2b2lkIENXZWJLaXRCcmlkZ2U6OlNldEZvcm1Db250cm9sVGV4dEJ5DQogICAgIH0N
CiAgIH0NCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIHZvaWQqIENXZWJLaXRCcmlk
Z2U6OmNyZWF0ZVdpZGdldE9iamVjdCggdm9pZCogZXhlYyApDQogICAgIHsNCiAgICAgQ1dpZGdl
dEV4dGVuc2lvbiogd2RndEV4dCA9IA0KQEAgLTE0MDUsNSArMTQwMiw0IEBAIHZvaWQqIENXZWJL
aXRCcmlkZ2U6OmNyZWF0ZVdpZGdldE1lbnVJdGUNCiANCiAgICAgcmV0dXJuIDA7DQogICAgIH0N
Ci0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAvLyBlbmQgb2YgZmlsZQ0KSW5kZXg6IFdl
YktpdC9QbHVnaW4vaW5jL1BsdWdpbkhhbmRsZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Q
bHVnaW4vaW5jL1BsdWdpbkhhbmRsZXIuaAkocmV2aXNpb24gMjE4NTIpDQorKysgV2ViS2l0L1Bs
dWdpbi9pbmMvUGx1Z2luSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTM3LDcgKzEzNyw2
IEBAIGNsYXNzIENQbHVnaW5IYW5kbGVyIDogcHVibGljIENCYXNlLCBwdWINCiAgICAgICAgICov
DQogICAgICAgICBUVWludCBHZXRJbmRleEZyb21IYW5kbGUoVEludCBhSGFuZGxlKTsNCiANCi0j
aWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQogICAgICAgICAqIEdldCB0
aGUgaW5kZXggb2YgcGx1Z2luIGluZm8gZnJvbSBpdHMgaGFuZGxlLg0KICAgICAgICAgKg0KQEAg
LTE0Niw3ICsxNDUsNyBAQCBjbGFzcyBDUGx1Z2luSGFuZGxlciA6IHB1YmxpYyBDQmFzZSwgcHVi
DQogICAgICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBwbHVnaW4gaW5mby4NCiAgICAg
ICAgICovDQogICAgICAgICBUQm9vbCBMb2FkUGx1Z2luc1N5bmNMKCk7DQotI2VuZGlmIC8vUkRf
QlJPV1NFUl9XSURHRVRTDQorDQogICAgIHB1YmxpYzogLy9Gcm9tIE1XZWJDb3JlUGx1Z2luSGFu
ZGxlcg0KICAgICAgICAgLyoqDQogICAgICAgICAqIFNjYW5zIGZvciBuZXcgcGx1Z2lucy4NCklu
ZGV4OiBXZWJLaXQvUGx1Z2luL2luYy9QbHVnaW5Ta2luLmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJL
aXQvUGx1Z2luL2luYy9QbHVnaW5Ta2luLmgJKHJldmlzaW9uIDIxODUyKQ0KKysrIFdlYktpdC9Q
bHVnaW4vaW5jL1BsdWdpblNraW4uaAkod29ya2luZyBjb3B5KQ0KQEAgLTM3Nyw3ICszNzcsNiBA
QCBjbGFzcyBDUGx1Z2luU2tpbiA6IHB1YmxpYyBDQmFzZSwNCiAgICAgICAgICovDQogICAgICAg
ICBUQm9vbCBDYW5JbnRlcmFjdCgpIGNvbnN0ICAgICAgICAgICB7IHJldHVybiBpQ2FuUGx1Z2lu
SW50ZXJhY3Q7IH0NCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoq
DQogICAgICAgICAqIEdldCB0aGUgc2NyaXB0aW5nIG9iamVjdCBmcm9tIHBsdWdpbg0KICAgICAg
ICAgKiBTZXRzIHRoZSBmb250DQpAQCAtMzg1LDcgKzM4NCw3IEBAIGNsYXNzIENQbHVnaW5Ta2lu
IDogcHVibGljIENCYXNlLA0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAg
ICAgdm9pZCAqUGx1Z2luU2NyaXB0YWJsZU9iamVjdCgpOyANCi0jZW5kaWYNCisNCiAgIHB1Ymxp
YzogLy8gRnVuY3Rpb25zIGZyb20gTVZpZXdGb2N1c09ic2VydmVyDQogDQogICAgICAgICAvKioN
CkluZGV4OiBXZWJLaXQvUGx1Z2luL2luYy9QbHVnaW5XaW4uaA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdl
YktpdC9QbHVnaW4vaW5jL1BsdWdpbldpbi5oCShyZXZpc2lvbiAyMTg1MikNCisrKyBXZWJLaXQv
UGx1Z2luL2luYy9QbHVnaW5XaW4uaAkod29ya2luZyBjb3B5KQ0KQEAgLTU4LDkgKzU4LDcgQEAg
Y2xhc3MgQ1dlYktpdENvbnRyb2w7DQogY2xhc3MgQ1BsdWdpblNraW47DQogY2xhc3MgQ1BsdWdp
bkhhbmRsZXI7DQogY2xhc3MgQ0JpdG1hcENvbnRleHQ7DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJ
REdFVFMNCiBjbGFzcyBOUE9iamVjdDsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAN
CiAvLyBMT0NBTCBDT05TVEFOVFMgQU5EIE1BQ1JPUw0KIC8vIFRoZXNlIGFyZSB1c2VkIHRvIGRl
c2lnbmF0ZSB0aGUgaGFuZGxpbmcgb2YgaW5jb21pbmcgY29udGVudCBhbmQgbG9hZGluZyBQbHVn
aW5zDQpAQCAtNDkwLDcgKzQ4OCw2IEBAIGNsYXNzIENQbHVnaW5XaW4gOiAgcHVibGljIENDb2VD
b250cm9sLA0KICAgICAgICAgKi8NCiAgICAgdm9pZCBIYW5kbGVMb3NpbmdGb3JlZ3JvdW5kKCk7
DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0KICAgICAgICAg
KiBSZXR1cm4gd2luZG93IG9iamVjdCB1c2FibGUgZnJvbSBzY3JpcHRhYmxlIHBsdWdpbnMNCiAg
ICAgICAgICogQHNpbmNlIDMuMQ0KQEAgLTUwNCw3ICs1MDEsNiBAQCBjbGFzcyBDUGx1Z2luV2lu
IDogIHB1YmxpYyBDQ29lQ29udHJvbCwNCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8N
CiAgICAgICAgIHZvaWQgKlBsdWdpblNjcmlwdGFibGVPYmplY3QoKTsNCi0jZW5kaWYgLy9SRF9C
Uk9XU0VSX1dJREdFVFMNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBTZXRzIHRoZSBwbHVn
aW4ncyBiZWhhdmlvdXIgYXMgd2luZG93ZWQgb3Igd2luZG93bGVzcw0KSW5kZXg6IFdlYktpdC9Q
bHVnaW4vaW5jL25wYXBpLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUGx1Z2luL2luYy9ucGFw
aS5oCShyZXZpc2lvbiAyMTg1MikNCisrKyBXZWJLaXQvUGx1Z2luL2luYy9ucGFwaS5oCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtNDA0LDE0ICs0MDQsMTIgQEAgdHlwZWRlZiBlbnVtIHsNCiAgIC8qIDEy
IGFuZCBvdmVyIGFyZSBhdmFpbGFibGUgb24gTW96aWxsYSBidWlsZHMgc3RhcnRpbmcgd2l0aCAw
LjkuOSAqLw0KICAgTlBQVmphdmFzY3JpcHRQdXNoQ2FsbGVyQm9vbCA9IDEyLA0KICAgTlBQVnBs
dWdpbktlZXBMaWJyYXJ5SW5NZW1vcnkgPSAxMywgICAvKiBhdmFpbGFibGUgaW4gTW96aWxsYSAx
LjAgKi8NCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICBOUFBWcGx1Z2luTmVlZHNYRW1i
ZWQgICAgICAgICA9IDE0LCAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovDQogICAgLyog
c3RhcnRlZCBmcm9tIDEwMC4gVGhlIG51bWJlcnMgMTMgdG8gMTAwMCBhcmUgbGVmdA0KICAgICog
Zm9yIHN0YW5kYXJpemF0aW9uIGFuZCBvdGhlciBmdXR1cmUgdXNlLiBWYWx1ZSByZXR1cm4gaXMg
emVybyBmb3INCiAgICAqIGluZXRlcmFjdGl2ZSBhbmQgJ29uZScgZm9yIG5vbi1pbnRlcmFjdGl2
ZS4NCiAgICAqLw0KICAgTlBQVnBsdWdpblNjcmlwdGFibGVOUE9iamVjdCAgPSAxNSwNCi0jZW5k
aWYNCiAgIE5QUFZwbHVnaW5JbnRlcmFjdGl2ZUJvb2wgPSAxMDAwDQogfSBOUFBWYXJpYWJsZTsN
CiANCkBAIC00MzAsNyArNDI4LDYgQEAgdHlwZWRlZiBlbnVtIHsNCiAgIE5QTlZzZXJ2aWNlTWFu
YWdlciA9ICgxMCB8IE5QX0FCSV9NQVNLKSwNCiAgIE5QTlZET01FbGVtZW50ICAgICA9ICgxMSB8
IE5QX0FCSV9NQVNLKSwgICAvKiBhdmFpbGFibGUgaW4gTW96aWxsYSAxLjIgKi8NCiAgIE5QTlZE
T01XaW5kb3cgICAgICA9ICgxMiB8IE5QX0FCSV9NQVNLKQ0KLSNpZmRlZiBSRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICxOUE5WVG9vbGtpdCAgICAgICAgPSAoMTMgfCBOUF9BQklfTUFTSyksICAvKiBO
b3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovDQogICBOUE5WU3VwcG9ydHNYRW1iZWRCb29sID0g
MTQsICAgICAgICAgICAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovDQogDQpAQCAt
NDM5LDcgKzQzNiw2IEBAIHR5cGVkZWYgZW51bSB7DQogDQogICAgIC8qIEdldCB0aGUgTlBPYmpl
Y3Qgd3JhcHBlciBmb3IgdGhlIHBsdWdpbnMgRE9NIGVsZW1lbnQuICovDQogICBOUE5WUGx1Z2lu
RWxlbWVudE5QT2JqZWN0ICAgICAgICAgICAgICAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2Vi
S2l0ICovDQotI2VuZGlmDQogfSBOUE5WYXJpYWJsZTsNCiANCiAvKg0KSW5kZXg6IFdlYktpdC9Q
bHVnaW4vc3JjL05wbkltcGxlbWVudGF0aW9uLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Q
bHVnaW4vc3JjL05wbkltcGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMjE4NTIpDQorKysgV2Vi
S2l0L1BsdWdpbi9zcmMvTnBuSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
NDI1LDcgKzQyNSw2IEBAIE5QRXJyb3IgTnBuVXJsTG9hZGVyKE5QUCBhSW5zdGFuY2UsIGNvbnMN
CiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICB9DQogICAgICAgICAgICAgYnJlYWs7DQot
I2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIGNhc2UgTlBOVldpbmRvd05QT2Jq
ZWN0Og0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBDUGx1Z2luV2luKiBwbHVnaW5XaW4g
PSAoQ1BsdWdpbldpbiopYUluc3RhbmNlLT5uZGF0YTsNCkBAIC00MzgsNyArNDM3LDYgQEAgTlBF
cnJvciBOcG5VcmxMb2FkZXIoTlBQIGFJbnN0YW5jZSwgY29ucw0KICAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7DQogICAgICAgICAgICAg
fQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgY2FzZSBOUE5WRE9NV2lu
ZG93Og0KICAgICAgICAgY2FzZSBOUE5WeERpc3BsYXk6ICAgICAgICAgIC8vIFVuaXggb25seTog
UmV0dXJucyB0aGUgY3VycmVudCBEaXNwbGF5DQogICAgICAgICBjYXNlIE5QTlZ4dEFwcENvbnRl
eHQ6ICAgICAgLy8gVW5peCBvbmx5OiBSZXR1cm5zIHRoZSBhcHBsaWNhdGlvbidzIFh0QXBwQ29u
dGV4dA0KSW5kZXg6IFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpbkhhbmRsZXIuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViS2l0L1BsdWdpbi9zcmMvUGx1Z2luSGFuZGxlci5jcHAJKHJldmlzaW9uIDIx
ODUyKQ0KKysrIFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpbkhhbmRsZXIuY3BwCSh3b3JraW5nIGNv
cHkpDQpAQCAtNTIzLDcgKzUyMyw2IEBAIFRCb29sIENQbHVnaW5IYW5kbGVyOjpJbml0aWFsaXpl
KFRBbnkqIGENCiAgICAgcmV0dXJuIGRvbmVJbml0Ow0KICAgICB9DQogDQotI2lmZGVmICBSRF9C
Uk9XU0VSX1dJREdFVFMNCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENQbHVnaW5IYW5k
bGVyOjpJbml0aWFsaXplDQogLy8NCkBAIC01NDQsNyArNTQzLDcgQEAgVEJvb2wgQ1BsdWdpbkhh
bmRsZXI6OkxvYWRQbHVnaW5zU3luY0woKQ0KICAgICAgICAgfQ0KICAgICByZXR1cm4gTG9hZFBs
dWdpbnNMKCk7DQogICAgIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCisNCiAvLyBD
UGx1Z2luSGFuZGxlcjo6TG9hZFBsdWdpbnNMDQogLy8NCiAvLyBMb2FkcyBhbGwgdGhlIHBsdWdp
bnMgYW5kIHF1ZXJ5IHRoZW0gZm9yIGRldGFpbHMuDQpJbmRleDogV2ViS2l0L1BsdWdpbi9zcmMv
UGx1Z2luU2tpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUGx1Z2luL3NyYy9QbHVnaW5T
a2luLmNwcAkocmV2aXNpb24gMjE4NTIpDQorKysgV2ViS2l0L1BsdWdpbi9zcmMvUGx1Z2luU2tp
bi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC02OSw5ICs2OSw3IEBADQogI2luY2x1ZGUgIldlYktp
dFZpZXcuaCINCiAjaW5jbHVkZSAiV2ViS2l0Q29udHJvbC5oIg0KICNpbmNsdWRlICJXZWJDb3Jl
R3JhcGhpY3NDb250ZXh0LmgiDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAjaW5jbHVk
ZSAiV2lkZ2V0RXh0ZW5zaW9uLmgiDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQog
Ly8gQ09OU1RBTlRTDQogLy8gc2NoZW1lIGZvciBSVFNQIHVybA0KQEAgLTIxNywxMiArMjE1LDgg
QEAgdm9pZCBDUGx1Z2luU2tpbjo6Q29uc3RydWN0TCggY29uc3QgVERlcw0KICAgICAgICAgICAg
IENsZWFudXBTdGFjazo6UG9wQW5kRGVzdHJveSgpOyAgLy8gdXJsU2NoZW1lDQogICAgICAgICAg
ICAgfQ0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgICAgICBDV2lkZ2V0RXh0
ZW5zaW9uKiB3ZGd0RXh0ID0gaVdlYktpdEZyYW1lLT5XZWJLaXRWaWV3KCkuV2ViS2l0Q29udHJv
bCgpLldpZGdldEV4dGVuc2lvbigpOw0KICAgICAgICAgaWYgKCBiUnRzcEZvdW5kIHx8ICh3ZGd0
RXh0ICYmIGFVcmwuTGVuZ3RoKCkgPT0gMCkpDQotI2Vsc2UNCi0gICAgICAgIGlmICggYlJ0c3BG
b3VuZCApDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogICAgICAgICAgICAgew0KICAg
ICAgICAgICAgIC8vIElmIHJ0c3Agc2NoZW1lIGluIHVybCwgcGFzcyB0byBwbHVnaW4gZGlyZWN0
bHksDQogICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIGF0dHJpYnV0ZSBhcnJheXMgaW5pdGlhbGl6
ZWQNCkBAIC03MDIsMTAgKzY5Niw4IEBAIFRCb29sIENQbHVnaW5Ta2luOjpJc0ZvY3VzYWJsZSgp
IGNvbnN0DQogICAgICAgICByZXR1cm4gRVRydWU7DQogICAgIH0NCiANCi0jaWZkZWYgIFJEX0JS
T1dTRVJfV0lER0VUUw0KIHZvaWQqIENQbHVnaW5Ta2luOjpQbHVnaW5TY3JpcHRhYmxlT2JqZWN0
KCkNCiAgICAgew0KICAgICByZXR1cm4gaVBsdWdpbldpbj9pUGx1Z2luV2luLT5QbHVnaW5TY3Jp
cHRhYmxlT2JqZWN0KCk6MDsNCiAgICAgfQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0K
IA0KSW5kZXg6IFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpbldpbi5jcHANCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJLaXQvUGx1Z2luL3NyYy9QbHVnaW5XaW4uY3BwCShyZXZpc2lvbiAyMTg1MikNCisrKyBX
ZWJLaXQvUGx1Z2luL3NyYy9QbHVnaW5XaW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMTI2NCw3
ICsxMjY0LDYgQEAgdm9pZCBDUGx1Z2luV2luOjpIYW5kbGVMb3NpbmdGb3JlZ3JvdW5kKA0KICAg
ICAgICAgfQ0KICAgfQ0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCiAvLw0KIE5QT2JqZWN0KiBDUGx1Z2luV2luOjpXaW5kb3dTY3JpcHRO
UE9iamVjdCgpDQpAQCAtMTI4OCw3ICsxMjg3LDYgQEAgdm9pZCogQ1BsdWdpbldpbjo6UGx1Z2lu
U2NyaXB0YWJsZU9iamVjdA0KICAgICB9DQogICAgIHJldHVybiAodm9pZCAqKTA7DQogICAgIH0N
Ci0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KIC8vIENQbHVnaW5XaW46OkZvcmNlUmVkcmF3DQpJbmRleDogV2ViS2l0L2dyb3VwL0Jyb3dz
ZXJWaWV3Lm1tcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91cC9Ccm93c2VyVmlldy5tbXAJ
KHJldmlzaW9uIDIxODUyKQ0KKysrIFdlYktpdC9ncm91cC9Ccm93c2VyVmlldy5tbXAJKHdvcmtp
bmcgY29weSkNCkBAIC03NywxMiArNzcsMTAgQEAgU09VUkNFICAgICAgICAgIFNtYXJ0TGlua0hh
bmRsZXIuY3BwDQogU09VUkNFICAgICAgICAgIFNtYXJ0TGlua01hcC5jcHANCiBTT1VSQ0UJCVBv
cHVwRHJhd2VyLmNwcA0KIFNPVVJDRQkJU2Nyb2xsaW5nSW5kaWNhdG9yRHJhd2VyLmNwcA0KLSNp
ZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogU09VUkNFICAgICAgICAgIFdpZGdldEV4dGVuc2lv
bi5jcHANCiBTT1VSQ0UgICAgICAgICAgV2lkZ2V0UHJlZmVyZW5jZXMuY3BwDQogU09VUkNFICAg
ICAgICAgIFdpZGdldFJlbmRlcmVyLmNwcA0KIFNZU1RFTUlOQ0xVREUgICAgICAgIC4uXC4uXC4u
XFdpZGdldEVuZ2luZVxpbmMNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiBVU0VSSU5D
TFVERSAgICAgLi5cUmVzb3VyY2VMb2FkZXJcSW5jDQogVVNFUklOQ0xVREUgICAgIC4uXFJlc291
cmNlTG9hZGVyXGNhY2hlSW5jDQogVVNFUklOQ0xVREUgICAgIC4uXEJyb3dzZXJWaWV3XEluYw0K
SW5kZXg6IFdlYktpdC9ncm91cC9QbHVnaW4ubW1wDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2dy
b3VwL1BsdWdpbi5tbXAJKHJldmlzaW9uIDIxODUyKQ0KKysrIFdlYktpdC9ncm91cC9QbHVnaW4u
bW1wCSh3b3JraW5nIGNvcHkpDQpAQCAtNjAsOSArNjAsNyBAQCBVU0VSSU5DTFVERSAgICAgLi5c
QnJvd3NlckNvcmVcUmVuZGVyZXJzDQogVVNFUklOQ0xVREUgICAgIC4uXFJlc291cmNlTG9hZGVy
XEluYw0KICNpZm5kZWYgX19CUk9XU0VSX1NESw0KIFVTRVJJTkNMVURFICAgICAuLlwuLlwuLlxQ
YWdlU2NhbGVyXEluYw0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogVVNFUklOQ0xVREUg
ICAgIFxTNjBcbXdcd2ViXFdlYkVuZ2luZVxXaWRnZXRFbmdpbmVcSW5jDQotI2VuZGlmIC8vUkRf
QlJPV1NFUl9XSURHRVRTDQogI2VuZGlmDQogVVNFUklOQ0xVREUgICAgIC4uXC4uXFdFQkNPUkVc
YnJpZGdlDQogDQpJbmRleDogV2ViS2l0L2dyb3VwL2Zvcm1jb250cm9scy5tbXBpDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gV2ViS2l0L2dyb3VwL2Zvcm1jb250cm9scy5tbXBpCShyZXZpc2lvbiAyMTg1MikN
CisrKyBXZWJLaXQvZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGkJKHdvcmtpbmcgY29weSkNCkBAIC02
Myw5ICs2Myw3IEBAIFVTRVJJTkNMVURFICAgICAuLlxCcm93c2VyQ29yZVxNaXNjXEluYw0KIFVT
RVJJTkNMVURFICAgICAuLlxSZXNvdXJjZUxvYWRlclxJbmMNCiBVU0VSSU5DTFVERSAgICAgLi5c
QnJvd3NlckNvbnRyb2xcaW5jDQogVVNFUklOQ0xVREUgICAgIC4uXEJyb3dzZXJWaWV3XGluYw0K
LSNpZmRlZiBSRF9CUk9XU0VSX1dJREdFVFMNCiBVU0VSSU5DTFVERSAgICAgLi5cLi5cLi5cV2lk
Z2V0RW5naW5lXGluYw0KLSNlbmRpZg0KICNpZm5kZWYgX19CUk9XU0VSX1NESw0KIFVTRVJJTkNM
VURFICAgICAuLlwuLlwuLlxQYWdlU2NhbGVyXGluYw0KICNlbmRpZg0KSW5kZXg6IFdlYktpdC9n
cm91cC93ZWJraXQubW1wDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2dyb3VwL3dlYmtpdC5tbXAJ
KHJldmlzaW9uIDIxODUyKQ0KKysrIFdlYktpdC9ncm91cC93ZWJraXQubW1wCSh3b3JraW5nIGNv
cHkpDQpAQCAtMTE1LDkgKzExNSw3IEBAIFVTRVJJTkNMVURFICAgLi5cLi5cLi5cVG9vbEJhclxp
bmMNCiBTWVNURU1JTkNMVURFIFxFcG9jMzJcaW5jbHVkZSBcRXBvYzMyXGluY2x1ZGVcb2VtDQog
I2VuZGlmDQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBVU0VSSU5DTFVERSAgIC4u
XC4uXC4uXFdpZGdldEVuZ2luZVxpbmMNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAv
Ly0tDQogDQogU1lTVEVNSU5DTFVERSBcRXBvYzMyXGluY2x1ZGVcaHR0cA0K
</data>
<flag name="review"
          id="6105"
          type_id="1"
          status="-"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14853</attachid>
            <date>2007-06-04 10:10:19 -0700</date>
            <delta_ts>2007-06-05 07:12:52 -0700</delta_ts>
            <desc>patch to remove old flag and use new flag, 3.2 only</desc>
            <filename>13939_2.patch</filename>
            <type>text/plain</type>
            <size>38743</size>
            <attacher name="Wei Liu">wei.liu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxOTY3KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDE5IEBADQordzNsaXUsIHJldmlld2VkIGJ5IDxTYWNoaW4+DQorIERFU0M6
IDMuMiB3aWRnZXQgZmxhZyBjaGFuZ2VzLg0KKyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzkzOQ0KKw0KKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERF
RCBPUiBDSEFOR0VEDQorDQorICAgICAgICAqIGJyaWRnZS9XZWJDb3JlQnJpZGdlLmg6DQorICAg
ICAgICAqIGtodG1sL2VjbWEva2pzX3dpbmRvdy5jcHA6DQorICAgICAgICAoV2luZG93OjpXaW5k
b3cpOg0KKyAgICAgICAgKFdpbmRvdzo6bWFyayk6DQorICAgICAgICAoV2luZG93OjpnZXQpOg0K
KyAgICAgICAgKiBraHRtbC9lY21hL2tqc193aW5kb3cuaDoNCisgICAgICAgICoga3dxL0tXUUtI
VE1MUGFydC5jcHA6DQorICAgICAgICAoS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnZXRNZW51SXRl
bU9iamVjdCk6DQorICAgICAgICAqIGt3cS9LV1FLSFRNTFBhcnQuaDoNCisNCiAyMDA3LTA1LTI5
ICBidWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5IFNh
Y2hpbi4NCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgJKHJldmlzaW9uIDIxOTY3KQ0KKysr
IFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVCcmlkZ2UuaAkod29ya2luZyBjb3B5KQ0KQEAgLTE1Mywx
MyArMTUzLDEyIEBAIGNsYXNzIEtXUUtIVE1MUGFydDsNCiBjbGFzcyBLSFRNTFZpZXc7DQogY2xh
c3MgUmVuZGVyQXJlbmE7DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBuYW1lc3Bh
Y2UgS0pTIHsNCiAgICAgY2xhc3MgRXhlY1N0YXRlOw0KICAgICBjbGFzcyBPYmplY3RJbXA7DQog
ICAgIGNsYXNzIFByb3RlY3RlZFZhbHVlOw0KIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdF
VFMNCisNCiBuYW1lc3BhY2Uga2h0bWwgew0KICAgICBjbGFzcyBSZW5kZXJQYXJ0Ow0KICAgICBj
bGFzcyBSZW5kZXJPYmplY3Q7DQpAQCAtNzUzLDExICs3NTIsOSBAQCBwdWJsaWM6DQogDQogICAg
IHZpcnR1YWwgVEJvb2wgQ2FuY2VsSW5Qcm9ncmVzcygpID0gMDsNCiANCi0jaWZkZWYgIFJEX0JS
T1dTRVJfV0lER0VUUw0KICAgICB2aXJ0dWFsIHZvaWQqIGNyZWF0ZVdpZGdldE9iamVjdCh2b2lk
KiBleGVjKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCogY3JlYXRlV2lkZ2V0TWVudU9iamVjdCh2
b2lkKiBleGVjKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCogY3JlYXRlV2lkZ2V0TWVudUl0ZW1P
YmplY3Qodm9pZCogZXhlYykgPSAwOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIH07
DQogDQogI2VuZGlmICAgICAgLy8gV0VCQ09SRUJSSURHRV9IDQpJbmRleDogV2ViQ29yZS9raHRt
bC9lY21hL2tqc193aW5kb3cuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9raHRtbC9lY21h
L2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAyMTk2NykNCisrKyBXZWJDb3JlL2todG1sL2VjbWEv
a2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0zMjUsMTAgKzMyNSw4IEBAIFdpbmRv
dzo6V2luZG93KEtIVE1MUGFydCAqcCkNCiAgICwgaGlzdG9yeSgwKQ0KICAgLCBmcmFtZXMoMCkN
CiAgICwgbG9jKDApDQotI2lmZGVmIFJEX0JST1dTRVJfV0lER0VUUw0KICAgLCBtX3dpZGdldCgw
KQ0KICAgLCBtX3dpZGdldE1lbnUoMCkNCi0jZW5kaWYNCiAgICwgbV9zZWxlY3Rpb24oMCkNCiAg
ICwgbV9sb2NhdGlvbmJhcigwKQ0KICAgLCBtX21lbnViYXIoMCkNCkBAIC00OTAsMTIgKzQ4OCwx
MCBAQCB2b2lkIFdpbmRvdzo6bWFyaygpDQogICAgIG1fc3RhdHVzYmFyLT5tYXJrKCk7DQogICBp
ZiAobV90b29sYmFyICYmICFtX3Rvb2xiYXItPm1hcmtlZCgpKQ0KICAgICBtX3Rvb2xiYXItPm1h
cmsoKTsNCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICBpZiAobV93aWRnZXQgJiYgIW1f
d2lkZ2V0LT5tYXJrZWQoKSkNCiAgICAgbV93aWRnZXQtPm1hcmsoKTsNCiAgIGlmIChtX3dpZGdl
dE1lbnUgJiYgIW1fd2lkZ2V0TWVudS0+bWFya2VkKCkpDQogICAgIG1fd2lkZ2V0TWVudS0+bWFy
aygpOw0KLSNlbmRpZg0KIH0NCiANCiBVU3RyaW5nIFdpbmRvdzo6dG9TdHJpbmcoRXhlY1N0YXRl
ICopIGNvbnN0DQpAQCAtODIwLDcgKzgxNiw2IEBAIFZhbHVlIFdpbmRvdzo6Z2V0KEV4ZWNTdGF0
ZSAqZXhlYywgY29uc3QNCiAjZW5kaWYNCiAgICAgY2FzZSBMb2NhdGlvbmJhcjoNCiAgICAgICBy
ZXR1cm4gVmFsdWUobG9jYXRpb25iYXIoZXhlYykpOw0KLSNpZmRlZiBSRF9CUk9XU0VSX1dJREdF
VFMNCiAgICAgY2FzZSBfV2lkZ2V0Og0KICAgICAgIGlmICggbV93aWRnZXQgKQ0KICAgICAgICAg
cmV0dXJuIFZhbHVlKG1fd2lkZ2V0KTsNCkBAIC04NDcsNyArODQyLDYgQEAgVmFsdWUgV2luZG93
OjpnZXQoRXhlY1N0YXRlICpleGVjLCBjb25zdA0KICAgICAgIGlmICghKGNvbnN0X2Nhc3Q8V2lu
ZG93Kj4odGhpcyktPm1fd2lkZ2V0TWVudSkpDQogICAgICAgICByZXR1cm4gVW5kZWZpbmVkKCk7
DQogICAgICAgcmV0dXJuIEtXUShtX3BhcnQpLT5jcmVhdGVXaWRnZXRNZW51SXRlbU9iamVjdChl
eGVjKSA/IFZhbHVlKEtXUShtX3BhcnQpLT5jcmVhdGVXaWRnZXRNZW51SXRlbU9iamVjdChleGVj
KSk6VW5kZWZpbmVkKCk7ICAgDQotI2VuZGlmDQogICAgIGNhc2UgTWVudWJhcjoNCiAgICAgICBy
ZXR1cm4gVmFsdWUobWVudWJhcihleGVjKSk7DQogICAgIGNhc2UgT2Zmc2NyZWVuQnVmZmVyaW5n
Og0KSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfd2luZG93LmgNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5oCShyZXZpc2lvbiAyMTk2NykNCisrKyBX
ZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTU5LDEw
ICsxNTksOCBAQCBuYW1lc3BhY2UgS0pTIHsNCiAgICAgdm9pZCB1cGRhdGVMYXlvdXQoYm9vbCBp
Z25vcmVTdHlsZXNoZWV0cyA9IHRydWUpIGNvbnN0Ow0KIA0KICAgICBRR3VhcmRlZFB0cjxLSFRN
TFBhcnQ+IG1fcGFydDsNCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIE9iamVjdElt
cCAqbV93aWRnZXQ7DQogICAgIE9iamVjdEltcCAqbV93aWRnZXRNZW51Ow0KLSNlbmRpZg0KICAg
ICBTY3JlZW4gKnNjcmVlbjsNCiAgICAgSGlzdG9yeSAqaGlzdG9yeTsNCiAgICAgRnJhbWVBcnJh
eSAqZnJhbWVzOw0KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCShyZXZpc2lvbiAyMTk2NykNCisr
KyBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDEzMSw3
ICs0MTMxLDYgQEAgdm9pZCBLV1FLSFRNTFBhcnQ6OnByZXBhcmVGb3JVc2VyQWN0aW9uKA0KICAg
ICBfc3VibWl0dGVkRm9ybVVSTCA9IEtVUkwoKTsNCiB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VS
X1dJREdFVFMNCiBLSlM6Ok9iamVjdEltcCogS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnZXRPYmpl
Y3QoS0pTOjpFeGVjU3RhdGUqIGV4ZWMpDQogew0KICAgICBLSlM6Ok9iamVjdEltcCogb2JqSW1w
bCA9IHN0YXRpY19jYXN0PEtKUzo6T2JqZWN0SW1wICo+KF9icmlkZ2UtPkNsaWVudCgpLmNyZWF0
ZVdpZGdldE9iamVjdCgodm9pZCogKWV4ZWMpKTsNCkBAIC00MTQ3LDcgKzQxNDYsNiBAQCBLSlM6
Ok9iamVjdEltcCogS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnDQogICAgIEtKUzo6T2JqZWN0SW1w
KiBvYmpJbXBsID0gc3RhdGljX2Nhc3Q8S0pTOjpPYmplY3RJbXAgKj4oX2JyaWRnZS0+Q2xpZW50
KCkuY3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoKHZvaWQqIClleGVjKSk7DQogICAgIHJldHVy
biBvYmpJbXBsOw0KIH0NCi0jZW5kaWYNCiANCiBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSAqS1dR
S0hUTUxQYXJ0OjpnZXRFbWJlZEluc3RhbmNlRm9yVmlldyAoTVdlYkNvcmVXaWRnZXQgKmFWaWV3
KQ0KIHsNCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5oCShyZXZpc2lvbiAyMTk2NykNCisrKyBXZWJDb3Jl
L2t3cS9LV1FLSFRNTFBhcnQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIyNywxMSArMjI3LDkgQEAg
cHVibGljOg0KICAgICBib29sIEtleUV2ZW50KGNvbnN0IFRLZXlFdmVudCYgZXZlbnQsIGJvb2wg
dXApOw0KICAgICAvL2Jvb2wgTGFzdEV2ZW50SXNNb3VzZVVwKCk7DQogDQotI2lmZGVmICBSRF9C
Uk9XU0VSX1dJREdFVFMNCiAgICAgS0pTOjpPYmplY3RJbXAqIGNyZWF0ZVdpZGdldE9iamVjdChL
SlM6OkV4ZWNTdGF0ZSogZXhlYykgOw0KICAgICBLSlM6Ok9iamVjdEltcCogY3JlYXRlV2lkZ2V0
TWVudU9iamVjdChLSlM6OkV4ZWNTdGF0ZSogZXhlYykgOw0KICAgICBLSlM6Ok9iamVjdEltcCog
Y3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoS0pTOjpFeGVjU3RhdGUqIGV4ZWMpIDsNCi0jZW5k
aWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAgICAgLy9NZXRob2RzIHRvIHVwZGF0ZSBmb2N1
c2FibGUgbm9kZSBsaXN0DQogICAgIHZvaWQgdXBkYXRlRm9jdXNhYmxlUmVjdExpc3QoKTsNCklu
ZGV4OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMjE5NjcpDQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAg
LTEsMyArMSw1OCBAQA0KK3czbGl1LCByZXZpZXdlZCBieSBTYWNoaW4NCisgREVTQzogMy4yIHdp
ZGdldCBmbGFnIGNoYW5nZXMuDQorIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzOTM5DQorDQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHA6DQor
ICAgICAgICAoQ0JyQ3RsOjpIYW5kbGVDb21tYW5kTCk6DQorICAgICAgICAoQ0JyQ3RsOjpBZGRP
cHRpb25NZW51SXRlbXNMKToNCisgICAgICAgIChDQnJDdGw6OkNyZWF0ZVdpZGdldEV4dGVuc2lv
bkwpOg0KKyAgICAgICAgKiBCcm93c2VyQ29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9sRmls
ZUlucHV0U2tpbi5jcHA6DQorICAgICAgICAoQ0Zvcm1GaWxlSW5wdXRTa2luOjpBY3RpdmF0ZUwp
Og0KKyAgICAgICAgKiBCcm93c2VyVmlldy9pbmMvV2ViS2l0Q29udHJvbC5oOg0KKyAgICAgICAg
KENXZWJLaXRDb250cm9sOjpXaWRnZXRFeHRlbnNpb24pOg0KKyAgICAgICAgKiBCcm93c2VyVmll
dy9pbmMvd2Via2l0YnJpZGdlLmg6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJLaXRD
b250cm9sLmNwcDoNCisgICAgICAgIChDV2ViS2l0T09NTm90aWZpZXI6Ok5vdGlmeSk6DQorICAg
ICAgICAoQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6Q1N0YXRpY09iamVjdENvbnRhaW5lcik6DQor
ICAgICAgICAoQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6Rm9ybURhdGFNYW5hZ2VySGFuZGxlckwp
Og0KKyAgICAgICAgKENTdGF0aWNPYmplY3RDb250YWluZXI6OkRvd25sb2FkT2JzZXJ2ZXIpOg0K
KyAgICAgICAgKENTdGF0aWNPYmplY3RDb250YWluZXI6OkluaXRpYWxpemVGYWN0b3J5T2JqZWN0
c0wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpDV2ViS2l0Q29udHJvbCk6DQorICAgICAg
ICAoQ1dlYktpdENvbnRyb2w6OkNvbnN0cnVjdEwpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9s
Ojp+Q1dlYktpdENvbnRyb2wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpHZXRCcm93c2Vy
U2V0dGluZ0wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpQYWdlSW5mb0xDKToNCisgICAg
ICAgIChDV2ViS2l0Q29udHJvbDo6SGFuZGxlTG9hZGVyQ29tbWFuZEwpOg0KKyAgICAgICAgKENX
ZWJLaXRDb250cm9sOjpTeW5jQ2FuY2VsTCk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6Okhp
c3RvcnlWaWV3KToNCisgICAgICAgIChDV2ViS2l0Q29udHJvbDo6SW5jcmVtZW50UHJvZ3Jlc3NG
b3JNb3JlRGF0YSk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkZpbmFsUHJvZ3Jlc3NDb21w
bGV0ZSk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkZvcmVncm91bmRFdmVudCk6DQorICAg
ICAgICAoQ1dlYktpdENvbnRyb2w6OkNyZWF0ZVdpZGdldEV4dGVuc2lvbkwpOg0KKyAgICAgICAg
KiBCcm93c2VyVmlldy9zcmMvV2ViS2l0Vmlldy5jcHA6DQorICAgICAgICAoQ1dlYktpdFZpZXc6
Ok1ha2VWaXNpYmxlKToNCisgICAgICAgIChDV2ViS2l0Vmlldzo6RHJhdyk6DQorICAgICAgICAq
IEJyb3dzZXJWaWV3L3NyYy9XaWRnZXRFeHRlbnNpb24uY3BwOg0KKyAgICAgICAgKENXaWRnZXRF
eHRlbnNpb246OkFkZE9wdGlvbk1lbnVJdGVtc0wpOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9z
cmMvd2Via2l0YnJpZGdlLmNwcDoNCisgICAgICAgIChDV2ViS2l0QnJpZGdlOjpjcmVhdGVXaWRn
ZXRNZW51SXRlbU9iamVjdCk6DQorICAgICAgICAqIFBsdWdpbi9pbmMvUGx1Z2luSGFuZGxlci5o
Og0KKyAgICAgICAgKiBQbHVnaW4vaW5jL1BsdWdpblNraW4uaDoNCisgICAgICAgICogUGx1Z2lu
L2luYy9QbHVnaW5XaW4uaDoNCisgICAgICAgICogUGx1Z2luL2luYy9ucGFwaS5oOg0KKyAgICAg
ICAgKiBQbHVnaW4vc3JjL05wbkltcGxlbWVudGF0aW9uLmNwcDoNCisgICAgICAgIChOcG5HZXRW
YWx1ZSk6DQorICAgICAgICAqIFBsdWdpbi9zcmMvUGx1Z2luSGFuZGxlci5jcHA6DQorICAgICAg
ICAqIFBsdWdpbi9zcmMvUGx1Z2luU2tpbi5jcHA6DQorICAgICAgICAoQ1BsdWdpblNraW46OkNv
bnN0cnVjdEwpOg0KKyAgICAgICAgKENQbHVnaW5Ta2luOjpQbHVnaW5TY3JpcHRhYmxlT2JqZWN0
KToNCisgICAgICAgICogUGx1Z2luL3NyYy9QbHVnaW5XaW4uY3BwOg0KKyAgICAgICAgKENQbHVn
aW5XaW46OlBsdWdpblNjcmlwdGFibGVPYmplY3QpOg0KKyAgICAgICAgKiBncm91cC9Ccm93c2Vy
Vmlldy5tbXA6DQorICAgICAgICAqIGdyb3VwL1BsdWdpbi5tbXA6DQorICAgICAgICAqIGdyb3Vw
L2Zvcm1jb250cm9scy5tbXBpOg0KKyAgICAgICAgKiBncm91cC93ZWJraXQubW1wOg0KKw0KIHNw
YWRtYSwgcmV2aWV3ZWQgYnkgemFsYW4NCiAgREVTQzogQnJvd3NlciBjb250cm9sIEFQSSwgQ0Jy
Q3RsSW50ZXJmYWNlOjogQ29udGVudFNpemUoKSBkb2VzIG5vdCByZXR1cm4gY29ycmVjdCBjb250
ZW50IHNpemUuDQogIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTU0
DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvc3JjL0JyQ3RsLmNwcAkocmV2aXNpb24gMjE5Njcp
DQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHAJKHdvcmtpbmcgY29weSkN
CkBAIC04Miw5ICs4Miw3IEBADQogI2luY2x1ZGUgPEFrbnNEcmF3VXRpbHMuaD4NCiAjaW5jbHVk
ZSA8RXNjYXBlVXRpbHMuaD4NCiAjaW5jbHVkZSAiTG9hZGVyQ29udGFpbmVyLmgiDQotI2lmZGVm
ICBSRF9CUk9XU0VSX1dJREdFVFMNCiAjaW5jbHVkZSAiV2lkZ2V0RXh0ZW5zaW9uLmgiDQotI2Vu
ZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogI2luY2x1ZGUgIlNtYXJ0TGlua0hhbmRsZXIu
aCINCiANCkBAIC05MTAsNyArOTA4LDYgQEAgRVhQT1JUX0Mgdm9pZCBDQnJDdGw6OkhhbmRsZUNv
bW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICBUUGx1Z2luQ29udHJvbCBwbHVnaW5Db250cm9s
KCppV2ViS2l0Q29udHJvbCk7DQogICAgICAgICAgICAgICAgIHBsdWdpbkNvbnRyb2wuSGFuZGxl
UGx1Z2luQ29tbWFuZEwoYUNvbW1hbmQpOw0KICAgICAgICAgICAgICAgICB9DQotI2lmZGVmICBS
RF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgIHsN
CiAgICAgICAgICAgICAgICAgQ1dpZGdldEV4dGVuc2lvbiogd2RndEV4dCA9IGlXZWJLaXRDb250
cm9sLT5XaWRnZXRFeHRlbnNpb24oKTsNCkBAIC05MjAsNyArOTE3LDYgQEAgRVhQT1JUX0Mgdm9p
ZCBDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgfQ0KLSNlbmRpZiAvL1JEX0JS
T1dTRVJfV0lER0VUUw0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCiAgICAg
ICAgIH0gICAvLyBlbmQgb2Ygc3dpdGNoDQpAQCAtMTE1MSwxMyArMTE0NywxMSBAQCBFWFBPUlRf
QyB2b2lkIENCckN0bDo6QWRkT3B0aW9uTWVudUl0ZW1zDQogICAgIC8vIEJhc2Ugd2UncmUgdXNp
bmcgZm9yIHRoZSBwbHVnLWlucw0KICAgICBUUGx1Z2luQ29udHJvbCBwbHVnaW5Db250cm9sKCpp
V2ViS2l0Q29udHJvbCk7DQogICAgIHBsdWdpbkNvbnRyb2wuQWRkUGx1Z2luT3B0aW9uTWVudUl0
ZW1zTChhTWVudVBhbmUsIFRCckN0bERlZnM6OkVDb21tYW5kSWRQbHVnaW5CYXNlLCBhQWZ0ZXIp
Ow0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIENXaWRnZXRFeHRlbnNpb24qIHdk
Z3RFeHQgPSBpV2ViS2l0Q29udHJvbC0+V2lkZ2V0RXh0ZW5zaW9uKCk7DQogICAgIGlmICggd2Rn
dEV4dCApDQogICAgICAgICB7DQogICAgICAgICB3ZGd0RXh0LT5BZGRPcHRpb25NZW51SXRlbXNM
KCBhTWVudVBhbmUsIGFSZXNvdXJjZUlkICk7DQogICAgICAgICB9DQotI2VuZGlmIC8vUkRfQlJP
V1NFUl9XSURHRVRTDQogICAgIH0NCiANCiANCkBAIC0yNTMxLDExICsyNTI1LDcgQEAgdm9pZCBD
QnJDdGw6OkhhbmRsZVJlc291cmNlQ2hhbmdlKCBUSW50IA0KIC8vDQogRVhQT1JUX0MgTVdpZGdl
dEV4dGVuc2lvbiogQ0JyQ3RsOjpDcmVhdGVXaWRnZXRFeHRlbnNpb25MKE1XaWRnZXRDYWxsYmFj
ayYgYVdpZGdldENhbGxiYWNrKQ0KICAgICB7DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMN
CiAgICAgcmV0dXJuIGlXZWJLaXRDb250cm9sLT5DcmVhdGVXaWRnZXRFeHRlbnNpb25MKGFXaWRn
ZXRDYWxsYmFjayk7DQotI2Vsc2UNCi0gICAgcmV0dXJuIE5VTEw7DQotI2VuZGlmDQogICAgIH0N
CiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29yZS9G
b3JtY29udHJvbHMvc3JjL0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHANCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJbnB1dFNr
aW4uY3BwCShyZXZpc2lvbiAyMTk2NykNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRy
b2xzL3NyYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNjMs
MTAgKzYzLDcgQEANCiAjaW5jbHVkZSAiV2ViS2l0Vmlldy5oIg0KICNpbmNsdWRlICJXZWJLaXRD
b250cm9sLmgiDQogI2luY2x1ZGUgIldlYktpdEJyaWRnZS5oIg0KLSNpZmRlZiBSRF9CUk9XU0VS
X1dJREdFVFMNCiAjaW5jbHVkZSAiV2lkZ2V0RXh0ZW5zaW9uLmgiDQotI2VuZGlmDQotDQogDQog
dm9pZCBCckN0bFBhbmljKFRJbnQpOw0KIA0KQEAgLTM4Miw3ICszNzksNiBAQCB2b2lkIENGb3Jt
RmlsZUlucHV0U2tpbjo6QWN0aXZhdGVMKCkNCiAgICAgd2Via2l0RnJhbWUtPldlYktpdFZpZXco
KS5TZXREaWFsb2dMYXVuY2hlZChFVHJ1ZSk7DQogDQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICAgLy8gSWYgV2lkZ2V0IG1vZGUgYW5kIEFjY2VwdGVkIE1pbWUgVHlwZSBoYXMg
YmVlbiBzZXQNCiAgICAgaWYgKHdlYktpdENvbnRyb2wtPldpZGdldEV4dGVuc2lvbigpICYmDQog
ICAgICAgICBpQWNjZXB0ZWRNaW1lVHlwZSAmJiBpQWNjZXB0ZWRNaW1lVHlwZS0+TGVuZ3RoKCkp
DQpAQCAtMzk1LDEwICszOTEsNiBAQCB2b2lkIENGb3JtRmlsZUlucHV0U2tpbjo6QWN0aXZhdGVM
KCkNCiAgICAgICAgIH0NCiAgICAgLy8gSWYgYSByZWNlbnQgcGF0aCBleGlzdHMsIHVzZSB0aGF0
IGFzIHRoZSBzdGFydGluZyBwb2ludC4NCiAgICAgZWxzZSBpZiAoIHB0ck1vc3RSZWNlbnRQYXRo
Lkxlbmd0aCgpICkNCi0jZWxzZQ0KLSAgICAvLyBJZiBhIHJlY2VudCBwYXRoIGV4aXN0cywgdXNl
IHRoYXQgYXMgdGhlIHN0YXJ0aW5nIHBvaW50Lg0KLSAgICBpZiAoIHB0ck1vc3RSZWNlbnRQYXRo
Lkxlbmd0aCgpICkNCi0jZW5kaWYNCiAgICAgICAgIHsNCiAgICAgICAgIFRQYXJzZVB0ckMgZmls
ZU5hbWVQYXJzZXIoIHB0ck1vc3RSZWNlbnRQYXRoICk7DQogICAgICAgICAvLyBHZXQgZHJpdmUN
CkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdENvbnRyb2wuaA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2ViS2l0Q29udHJvbC5oCShyZXZpc2lvbiAy
MTk2NykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdENvbnRyb2wuaAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTkzLDkgKzkzLDcgQEAgY2xhc3MgQ1N0YXRpY0ltYWdlRGVjb2RlcjsNCiBj
bGFzcyBDUGx1Z2luQ29udGVudFBsYXllcjsNCiBjbGFzcyBDV2ViS2l0T09NTm90aWZpZXI7DQog
DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBjbGFzcyBDV2lkZ2V0RXh0ZW5zaW9uOw0K
LSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vIENMQVNTIERFQ0xBUkFUSU9ODQog
LyoqDQpAQCAtMzMwLDcgKzMyOCw2IEBAIGNsYXNzIENXZWJLaXRDb250cm9sIDogcHVibGljIENC
YXNlDQogICAgICAgICAqLw0KICAgICAgICAgQ1dlYktpdFZpZXcqIENyZWF0ZVdpbmRvdyhjb25z
dCBURGVzQyYgYUZyYW1lTmFtZSxUQm9vbCBhVXNlckluaXRpYXRlZCk7DQogDQotI2lmZGVmICBS
RF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBDcmVhdGVXaWRnZXRF
eHRlbnNpb24NCiAgICAgICAgICogUHVycG9zZTogQ3JlYXRlcyB0aGUgd2lkZ2V0IGV4dGVuc2lv
biBvYmplY3QNCkBAIC0zMzksNyArMzM2LDYgQEAgY2xhc3MgQ1dlYktpdENvbnRyb2wgOiBwdWJs
aWMgQ0Jhc2UNCiAgICAgICAgICogQHJldHVybiBNV2lkZ2V0RXh0ZW5zaW9uKg0KICAgICAgICAg
Ki8NCiAgICAgICAgIE1XaWRnZXRFeHRlbnNpb24qIENyZWF0ZVdpZGdldEV4dGVuc2lvbkwoTVdp
ZGdldENhbGxiYWNrJiBhV2lkZ2V0Q2FsbGJhY2spIDsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJ
REdFVFMNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBGaW5kV2luZG93TmFtZWQNCkBAIC01
MjIsMTQgKzUxOCwxMiBAQCBjbGFzcyBDV2ViS2l0Q29udHJvbCA6IHB1YmxpYyBDQmFzZQ0KICAg
ICAgICAgKi8NCiAgICAgICAgIENCckN0bCYgQnJDdGwoKSBjb25zdCB7IHJldHVybiAqaUJyQ3Rs
OyB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0KICAgICAg
ICAgKiBBc3NvY2lhdGVkIGJyb3dzZXIgY29udHJvbA0KICAgICAgICAgKiBAc2luY2UgMy4wDQog
ICAgICAgICAqIEByZXR1cm4gQSByZWZlcmVuY2UgdG8gQnJDdGwNCiAgICAgICAgICovDQogICAg
ICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiBXaWRnZXRFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiBp
V2lkZ2V0RXh0ZW5zaW9uOyB9DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogICAg
ICAgICAvKioNCiAgICAgICAgICogUmVzb3VyY2UgbG9hZGVyIHNldHRpbmdzIGNvbnRyb2xsZXIN
CkBAIC05MzgsOSArOTMyLDcgQEAgY2xhc3MgQ1dlYktpdENvbnRyb2wgOiBwdWJsaWMgQ0Jhc2UN
CiANCiAgICAgICAgIHN0YXRpYyBUSW50IGlEZWZhdWx0Q2hhcnNldDsNCiANCi0jaWZkZWYgIFJE
X0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgQ1dpZGdldEV4dGVuc2lvbiogaVdpZGdldEV4dGVu
c2lvbjsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgfTsNCiANCiAjZW5kaWYg
ICAgICAvLyBXRUJLSVRDT05UUk9MX0gNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL3dl
YmtpdGJyaWRnZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy93ZWJr
aXRicmlkZ2UuaAkocmV2aXNpb24gMjE5NjcpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy93
ZWJraXRicmlkZ2UuaAkod29ya2luZyBjb3B5KQ0KQEAgLTkxLDcgKzkxLDYgQEAgY2xhc3MgQ1dl
YktpdEJyaWRnZSA6IHB1YmxpYyBDQmFzZSwgcHVibA0KIA0KICAgICBwdWJsaWM6IC8vIE1ldGhv
ZHMgRnJvbSBNV2ViQ2xpZW50QnJpZGdlDQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMN
CiAgICAgICAgIC8qKg0KICAgICAgICAgKiBjcmVhdGVXaWRnZXRPYmplY3QNCiAgICAgICAgICog
RnJvbSBNV2ViQ2xpZW50QnJpZGdlDQpAQCAtMTE4LDggKzExNyw2IEBAIGNsYXNzIENXZWJLaXRC
cmlkZ2UgOiBwdWJsaWMgQ0Jhc2UsIHB1YmwNCiAgICAgICAgICogQHJldHVybiB2b2lkKg0KICAg
ICAgICAgKi8NCiAgICAgICAgIHZvaWQqIGNyZWF0ZVdpZGdldE1lbnVJdGVtT2JqZWN0KCB2b2lk
KiBleGVjICk7DQotDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogICAgICAgICAv
KioNCiAgICAgICAgICogQ2hpbGRGcmFtZXMNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3Jj
L1dlYktpdENvbnRyb2wuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3Ny
Yy9XZWJLaXRDb250cm9sLmNwcAkocmV2aXNpb24gMjE5NjcpDQorKysgV2ViS2l0L0Jyb3dzZXJW
aWV3L3NyYy9XZWJLaXRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTgzLDEwICs4Myw5
IEBADQogI2luY2x1ZGUgIkh0dHBDYWNoZU1hbmFnZXIuaCINCiAjaW5jbHVkZSAiU3RhdGljSW1h
Z2VEZWNvZGVyLmgiDQogI2luY2x1ZGUgPEFrbkluZm9Qb3B1cE5vdGVDb250cm9sbGVyLmg+DQor
I2luY2x1ZGUgPEZlYXRNZ3IuaD4NCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICNp
bmNsdWRlICJXaWRnZXRFeHRlbnNpb24uaCINCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMN
CiANCiAjaW5jbHVkZSAiUGx1Z2luQ29udGVudFBsYXllci5oIg0KICNpbmNsdWRlICJQbHVnaW5T
a2luLmgiDQpAQCAtMjYyLDE0ICsyNjEsMTQgQEAgY2xhc3MgQ1dlYktpdE9PTU5vdGlmaWVyIDog
cHVibGljIE1PT01Obw0KICAgICBwdWJsaWM6DQogICAgICAgICBzdGF0aWMgQ1dlYktpdE9PTU5v
dGlmaWVyKiBOZXdMKCk7DQogICAgICAgICB+Q1dlYktpdE9PTU5vdGlmaWVyKCk7DQotICAgICAg
ICANCisNCiAgICAgICAgIC8vIGZyb20gTU9PTU5vdGlmaWVyDQogICAgICAgICBUSW50IE5vdGlm
eSgpOw0KLSAgICAgICAgDQorDQogICAgIHByaXZhdGU6DQogICAgICAgICBDQWtuSW5mb1BvcHVw
Tm90ZUNvbnRyb2xsZXIqIGlJbmZvTm90ZTsNCiAgICAgfTsNCi0gICAgDQorDQogQ1dlYktpdE9P
TU5vdGlmaWVyKiBDV2ViS2l0T09NTm90aWZpZXI6Ok5ld0woKQ0KICAgICB7DQogICAgIENXZWJL
aXRPT01Ob3RpZmllciogc2VsZiA9IG5ldyAoRUxlYXZlKSBDV2ViS2l0T09NTm90aWZpZXI7DQpA
QCAtMjg2LDE1ICsyODUsMTUgQEAgQ1dlYktpdE9PTU5vdGlmaWVyOjp+Q1dlYktpdE9PTU5vdGlm
aWVyKA0KIA0KIFRJbnQgQ1dlYktpdE9PTU5vdGlmaWVyOjpOb3RpZnkoKQ0KICAgICB7DQotICAg
IFRSQVBfSUdOT1JFKCANCisgICAgVFJBUF9JR05PUkUoDQogICAgICAgICBIQnVmQyogc3RyID0g
U3RyaW5nTG9hZGVyOjpMb2FkTEMoIFJfUVROX0JST1dTRVJfSU5GT05PVEVfT1VUX09GX01FTU9S
WSApOw0KICAgICAgICAgaUluZm9Ob3RlLT5TZXRUZXh0TCggKnN0ciApOw0KICAgICAgICAgaUlu
Zm9Ob3RlLT5TZXRUaW1lRGVsYXlCZWZvcmVTaG93KCAwICk7DQogICAgICAgICBpSW5mb05vdGUt
PlNldFRpbWVQb3B1cEluVmlldyggNDAwMCApOyAgICAvLyA0IHNlY29uZHMNCi0gICAgICAgIGlJ
bmZvTm90ZS0+U2hvd0luZm9Qb3B1cE5vdGUoKTsgICAgICAgICAgICANCisgICAgICAgIGlJbmZv
Tm90ZS0+U2hvd0luZm9Qb3B1cE5vdGUoKTsNCiAgICAgICAgIENsZWFudXBTdGFjazo6UG9wQW5k
RGVzdHJveSgpOw0KLSAgICAgICAgKSAgIA0KLSAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAg
ICAgICANCisgICAgICAgICkNCisgICAgcmV0dXJuIDA7DQogICAgIH0NCiAjZW5kaWYNCiANCkBA
IC0zMTcsOCArMzE2LDggQEAgQ1N0YXRpY09iamVjdENvbnRhaW5lciYgQ1N0YXRpY09iamVjdENv
bg0KICAgICAgICB9DQogICAgIHJldHVybiAqaUluc3RhbmNlOw0KICAgICB9DQotICAgIA0KLSAg
ICANCisNCisNCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDU3RhdGljT2JqZWN0Q29u
dGFpbmVyOjpDU3RhdGljT2JqZWN0Q29udGFpbmVyDQogLy8gY29uc3RydWN0b3INCkBAIC0zMjYs
NyArMzI1LDcgQEAgQ1N0YXRpY09iamVjdENvbnRhaW5lciYgQ1N0YXRpY09iamVjdENvbg0KIC8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENTdGF0aWNPYmplY3RDb250YWluZXI6OkNTdGF0aWNP
YmplY3RDb250YWluZXIoKQ0KICAgICB7DQotI2lmZGVmIF9fT09NX18gICAgICAgIA0KKyNpZmRl
ZiBfX09PTV9fDQogICAgIFRSQVBfSUdOT1JFKGlPT01Ob3RpZmllciA9IENXZWJLaXRPT01Ob3Rp
Zmllcjo6TmV3TCgpKTsNCiAgICAgTWVtb3J5TWFuYWdlcjo6U2V0Tm90aWZpZXIoIGlPT01Ob3Rp
ZmllciApOw0KICNlbmRpZg0KQEAgLTQ1Niw3ICs0NTUsNyBAQCBDRm9ybURhdGFNYW5hZ2VyKiBD
U3RhdGljT2JqZWN0Q29udGFpbmVyDQogICAgIGlmIChhQnJDdGwuQ2FwYWJpbGl0aWVzKCkgJiBU
QnJDdGxEZWZzOjpFQ2FwYWJpbGl0eUF1dG9Gb3JtRmlsbCAmJiAhaUZvcm1EYXRhTWFuYWdlcikN
CiAgICAgICAgIHsNCiAgICAgICAgIC8vIENyZWF0ZSBkYXRhIG1hbmFnZXIgZm9yIGF1dG8gZm9y
bSBmaWxsDQotICAgICAgICBpRm9ybURhdGFNYW5hZ2VyID0gQ0Zvcm1EYXRhTWFuYWdlcjo6TmV3
TChhQnJDdGwuQnJDdGxEaWFsb2dzUHJvdmlkZXIoKSwgDQorICAgICAgICBpRm9ybURhdGFNYW5h
Z2VyID0gQ0Zvcm1EYXRhTWFuYWdlcjo6TmV3TChhQnJDdGwuQnJDdGxEaWFsb2dzUHJvdmlkZXIo
KSwNCiAgICAgICAgICAgICBhQnJDdGwuV2ViS2l0Q29udHJvbCgpLT5HZXRCcm93c2VyU2V0dGlu
Z0woVEJyQ3RsRGVmczo6RVNldHRpbmdzQXV0b0Zvcm1GaWxsRW5hYmxlZCkgKTsNCiAgICAgICAg
IH0NCiAgICAgcmV0dXJuIGlGb3JtRGF0YU1hbmFnZXI7DQpAQCAtNTMxLDcgKzUzMCw3IEBAIENC
ckN0bERvd25sb2FkT2JzZXJ2ZXImIENTdGF0aWNPYmplY3RDb24NCiAgICAgew0KICAgICBpZigg
IWlEb3dubG9hZE9ic2VydmVyICkNCiAgICAgICAgIHsNCi0gICAgICAgIC8vIGluaXQgDQorICAg
ICAgICAvLyBpbml0DQogICAgICAgICBpRG93bmxvYWRPYnNlcnZlciA9IG5ldyAoRUxlYXZlKSBD
QnJDdGxEb3dubG9hZE9ic2VydmVyOw0KICAgICAgICAgfQ0KICAgICByZXR1cm4gKmlEb3dubG9h
ZE9ic2VydmVyOw0KQEAgLTU4OCw3ICs1ODcsNyBAQCB2b2lkIENTdGF0aWNPYmplY3RDb250YWlu
ZXI6OkluaXRpYWxpemVGDQogICAgIFBsdWdpbkhhbmRsZXJMKGFCckN0bCk7DQogICAgIC8vDQog
ICAgIExvYWRlckNvbnRhaW5lckwoIGFCckN0bCApOw0KLSAgICBEb3dubG9hZE9ic2VydmVyKCk7
ICAgIA0KKyAgICBEb3dubG9hZE9ic2VydmVyKCk7DQogICAgIC8vIHNhdmUgcGFnZXMgY2FwYWJp
bGl0eQ0KICAgICBpSW1nUmVuZGVyZXJGYWN0b3J5LT5TZXRTYXZlSW1hZ2VEYXRhKCBpTG9hZGVy
Q29udGFpbmVyLT5DYXBhYmlsaXRpZXMoKSAmIFRCckN0bERlZnM6OkVDYXBhYmlsaXR5U2F2ZWRQ
YWdlICk7DQogDQpAQCAtNjEzLDcgKzYxMiw3IEBAIENXZWJLaXRDb250cm9sOjpDV2ViS2l0Q29u
dHJvbCgNCiAgICAgQ0JyQ3RsJiBhQnJDdGwgKQ0KICAgICA6IGlCckN0bCggJmFCckN0bCApLA0K
ICAgICBpQ2FjaGVNb2RlKCBUQnJDdGxEZWZzOjpFQ2FjaGVNb2RlTm9ybWFsICksDQotICAgIGlI
ZWFkZXJBcnJpdmVkKEVGYWxzZSksICAgIA0KKyAgICBpSGVhZGVyQXJyaXZlZChFRmFsc2UpLA0K
ICAgICBpSW5pdGlhbFByb2dyZXNzUGVyY2VudGFnZSggS01pbkluaXRpYWxQcm9ncmVzc1BlcmNl
bnRhZ2UgKQ0KICAgICB7DQogICAgIH0NCkBAIC02NDUsNyArNjQ0LDcgQEAgdm9pZCBDV2ViS2l0
Q29udHJvbDo6Q29uc3RydWN0TCgpDQogICAgIGxvYWRlckNvbnRhaW5lci0+U2V0Q29va2llc0Vu
YWJsZWQoIEdldEJyb3dzZXJTZXR0aW5nTCggVEJyQ3RsRGVmczo6RVNldHRpbmdzQ29va2llc0Vu
YWJsZWQgKSApOw0KICAgICAvLw0KICAgICBsb2FkZXJDb250YWluZXItPlNldERvd25sb2Fkc09w
ZW5FbmFibGVkKCBHZXRCcm93c2VyU2V0dGluZ0woIFRCckN0bERlZnM6OkVTZXR0aW5nc0F1dG9P
cGVuRG93bmxvYWRzICkgKTsNCi0gICAgLy8gICAgDQorICAgIC8vDQogICAgIGxvYWRlckNvbnRh
aW5lci0+U2V0QnJvd3NlckVtYmVkZGVkKCBHZXRCcm93c2VyU2V0dGluZ0woIFRCckN0bERlZnM6
OkVTZXR0aW5nc0VtYmVkZGVkICkgKTsNCiAgICAgLy8NCiAgICAgbG9hZGVyQ29udGFpbmVyLT5T
ZXRMb2FkT2JzZXJ2ZXJzKCAqKGlCckN0bC0+QnJDdGxTcGVjaWFsTG9hZE9ic2VydmVyKCkpLCAq
KGlCckN0bC0+QnJDdGxEb3dubG9hZE9ic2VydmVyKCkpLA0KQEAgLTY2MSw3ICs2NjAsNyBAQCB2
b2lkIENXZWJLaXRDb250cm9sOjpDb25zdHJ1Y3RMKCkNCiAgICAgICAgIHsNCiAgICAgICAgIENS
ZXBvc2l0b3J5KiByZXAgPSBDUmVwb3NpdG9yeTo6TmV3TCggS0NSVWlkQnJvd3NlciApOw0KICAg
ICAgICAgcmVwLT5HZXQoIEtCcm93c2VyRGVmYXVsdENoYXJzZXQsIGlEZWZhdWx0Q2hhcnNldCAp
Ow0KLSAgICAgICAgZGVsZXRlIHJlcDsgDQorICAgICAgICBkZWxldGUgcmVwOw0KICAgICAgICAg
fQ0KICAgICB9DQogDQpAQCAtNzIxLDExICs3MjAsOSBAQCBDV2ViS2l0Q29udHJvbDo6fkNXZWJL
aXRDb250cm9sKCkNCiANCiAgICAgLy8gY2xlYXVwIHRoZSBzdGF0aWMgb2JqZWN0DQogICAgIENT
dGF0aWNPYmplY3RDb250YWluZXI6Okluc3RhbmNlKCkuRGVyZWYoKTsNCi0jaWZkZWYgIFJEX0JS
T1dTRVJfV0lER0VUUw0KICAgICBkZWxldGUgaVdpZGdldEV4dGVuc2lvbjsNCi0jZW5kaWYgLy9S
RF9CUk9XU0VSX1dJREdFVFMNCiAgICAgfQ0KLSAgICANCisNCiANCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KIC8vIENXZWJLaXRDb250cm9sOjpTZXRCcm93c2VyU2V0dGluZw0KQEAgLTg0NCw3
ICs4NDEsNyBAQCBUVWludCBDV2ViS2l0Q29udHJvbDo6R2V0QnJvd3NlclNldHRpbmdMDQogICAg
ICAgICAgICAgICAgIFRCckN0bERlZnM6OlRCckN0bFNldHRpbmdzKCBhU2V0dGluZyApKS5Cb29s
VmFsdWUoKTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICB9DQotICAgICAgICAg
ICAgDQorDQogICAgICAgICAvLyBJbnRlZ2VyIHNldHRpbmcgdmFsdWVzDQogICAgICAgICBjYXNl
IFRCckN0bERlZnM6OkVTZXR0aW5nc0ZvbnRTaXplOg0KICAgICAgICAgY2FzZSBUQnJDdGxEZWZz
OjpFU2V0dGluZ3NDaGFyYWN0ZXJzZXQ6DQpAQCAtOTQ3LDggKzk0NCw4IEBAIEhCdWZDKiBDV2Vi
S2l0Q29udHJvbDo6UGFnZUluZm9MQygNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg
ICB9DQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVQYWdlSW5mb1NhdmVkUGFnZToNCi0gICAg
ICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgDQotICAgICAgICAgICAgcGFnZUluZm8g
PSBHZW5lcmF0ZVNhdmVkUGFnZUwoKTsgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAg
ew0KKyAgICAgICAgICAgIHBhZ2VJbmZvID0gR2VuZXJhdGVTYXZlZFBhZ2VMKCk7DQogICAgICAg
ICAgICAgYnJlYWs7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgY2FzZSBUQnJDdGxEZWZzOjpF
UGFnZUluZm9Gb2N1c2VkTm9kZVVybDoNCkBAIC0xMTU4LDcgKzExNTUsNyBAQCB2b2lkIENXZWJL
aXRDb250cm9sOjpIYW5kbGVMb2FkZXJDb21tYW5kDQogICAgICAgICAgICAgQ1dlYktpdEZyYW1l
KiBmcmFtZSA9ICYoaVdlYktpdFZpZXctPk1haW5GcmFtZSgpKTsNCiAgICAgICAgICAgICB3aGls
ZSggZnJhbWUgKQ0KICAgICAgICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIC8vTGV0IGFs
bCBjb25uZWN0aW9uIHRvIGNsb3NlIGZpcnN0IHRoZW4gRGVyZWYoKSANCisgICAgICAgICAgICAg
ICAgLy9MZXQgYWxsIGNvbm5lY3Rpb24gdG8gY2xvc2UgZmlyc3QgdGhlbiBEZXJlZigpDQogICAg
ICAgICAgICAgICAgIC8vd2hlbiBkaXNjb25uZWN0ZWQgYnkgdGhlIHVzZXIuDQogICAgICAgICAg
ICAgICAgIENXZWJLaXRGcmFtZSogY3VycmVudEZyYW1lID0gZnJhbWU7DQogICAgICAgICAgICAg
ICAgIGN1cnJlbnRGcmFtZS0+UmVmKCk7DQpAQCAtMTE3NSwxMSArMTE3MiwxMSBAQCB2b2lkIENX
ZWJLaXRDb250cm9sOjpIYW5kbGVMb2FkZXJDb21tYW5kDQogI2lmIFBST0dSRVNTX0xPRw0KICAg
ICAgICAgICAgIHdrRGVidWcoKTw8InVzZXIgY2FuY2VsIjw8Zmx1c2g7DQogI2VuZGlmIC8vIFBS
T0dSRVNTX0xPRw0KLSAgICAgICAgICAgIC8vICAgICAgICANCisgICAgICAgICAgICAvLw0KICAg
ICAgICAgICAgIEZpbmFsUHJvZ3Jlc3NDb21wbGV0ZShhRXJyb3IpOw0KICAgICAgICAgICAgIGlD
YW5jZWxUaW1lci0+Q2FuY2VsKCk7DQogICAgICAgICAgICAgaUNhbmNlbFRpbWVyLT5TdGFydCgg
MCwgMCwgVENhbGxCYWNrKCAmQ2FuY2VsQ2FsbGJhY2ssIHRoaXMgKSApOw0KLSAgICAgICAgICAg
IGlDYW5jZWxJblByb2dyZXNzID0gRVRydWU7ICAgICAgICAgICAgDQorICAgICAgICAgICAgaUNh
bmNlbEluUHJvZ3Jlc3MgPSBFVHJ1ZTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAg
ICB9DQogICAgICAgICBkZWZhdWx0Og0KQEAgLTEyMDMsNyArMTIwMCw3IEBAIHZvaWQgQ1dlYktp
dENvbnRyb2w6OlN5bmNDYW5jZWxMKCkNCiAjZW5kaWYgLy8gUFJPR1JFU1NfTE9HDQogICAgIGlT
eW5jQ2FuY2VsID0gRVRydWU7DQogICAgIGlDYW5jZWxUaW1lci0+Q2FuY2VsKCk7DQotIA0KKw0K
ICAgICBpZiAoIGlXZWJLaXRWaWV3LT5UYWJiZWROYXZpZ2F0aW9uKCkpDQogICAgICAgICB7DQog
ICAgICAgICBUV2ViQ29yZUZvY3VzZWRFbGVtZW50VHlwZSBlbFR5cGUgPSBFV2ViQ29yZUVsZW1l
bnROb25lOw0KQEAgLTEyMjEsNyArMTIxOCw3IEBAIHZvaWQgQ1dlYktpdENvbnRyb2w6OlN5bmND
YW5jZWxMKCkNCiAgICAgICAgICAgICBpV2ViS2l0Vmlldy0+U2V0Rm9jdXNlZEVsZW1lbnRUeXBl
KCAoVEJyQ3RsRGVmczo6VEJyQ3RsRWxlbWVudFR5cGUpZWxUeXBlICk7DQogICAgICAgICAgICAg
fQ0KICAgICAgICAgfQ0KLSAgICAgICAgDQorDQogICAgIENXZWJLaXRGcmFtZSogZnJhbWUgPSAm
KGlXZWJLaXRWaWV3LT5NYWluRnJhbWUoKSk7DQogICAgIHdoaWxlKCBmcmFtZSApDQogICAgICAg
ICB7DQpAQCAtMTIzMCw4ICsxMjI3LDggQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6U3luY0NhbmNl
bEwoKQ0KICAgICAgICAgLy8NCiAgICAgICAgIH0NCiAgICAgaVN5bmNDYW5jZWwgPSBFRmFsc2U7
DQotIA0KLSAgICBpSGlzdG9yeUNvbnRyb2xsZXItPkNhbmNlbFJlc2V0RW50cnlQb3NpdGlvbkwo
KTsgICAgDQorDQorICAgIGlIaXN0b3J5Q29udHJvbGxlci0+Q2FuY2VsUmVzZXRFbnRyeVBvc2l0
aW9uTCgpOw0KICAgICBpQnJDdGwtPkhhbmRsZUJyb3dzZXJMb2FkRXZlbnRMKCBUQnJDdGxEZWZz
OjpFRXZlbnRDb250ZW50RmluaXNoZWQsIDAsIDAgKTsNCiANCiAgICAgLy8gcmVsZWFzZSBjYW5j
ZWwgcHJvdGVjdGlvbiB1bmxlc3MgdGhlcmUgaXMgc29tZSBvdXRzdGFuZGluZw0KQEAgLTE1MjMs
NyArMTUyMCw3IEBAIENIaXN0b3J5VmlldyogQ1dlYktpdENvbnRyb2w6Okhpc3RvcnlWaWUNCiAg
ICAgcmV0dXJuIGlIaXN0b3J5Q29udHJvbGxlci0+SGlzdG9yeVZpZXcoICk7DQogI2Vsc2UNCiAg
ICAgcmV0dXJuIE5VTEw7DQotI2VuZGlmIA0KKyNlbmRpZg0KICAgICB9DQogDQogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCkBAIC0xNjgzLDcgKzE2ODAsNyBAQCB2b2lkIENXZWJLaXRDb250cm9s
OjpJbmNyZW1lbnRQcm9ncmVzc0ZvDQogICAgIC8vIGNvbnRlbnQgc2l6ZSBtaW51cyB0aGUgbGFz
dCByZWNlaXZlZCBjb250ZW50IHNpemUNCiAgICAgVEludCBieXRlc1JlY2VpdmVkKCBhUmVjZWl2
ZWRDb250ZW50U2l6ZSAtIGl0ZW0uaUJ5dGVzUmVjZWl2ZWQgKTsNCiANCi0gICAgLy8gQWRqdXN0
IGlmIHRoZSB0b3RhbCByZWNlaXZlZCBieXRlcyBpcyBkaWZmZXJlbnQgdGhhbiBvdXIgZXN0aW1h
dGUgDQorICAgIC8vIEFkanVzdCBpZiB0aGUgdG90YWwgcmVjZWl2ZWQgYnl0ZXMgaXMgZGlmZmVy
ZW50IHRoYW4gb3VyIGVzdGltYXRlDQogICAgIGl0ZW0uaUJ5dGVzUmVjZWl2ZWQgPSBhUmVjZWl2
ZWRDb250ZW50U2l6ZTsNCiAgICAgaWYgKCBpdGVtLmlCeXRlc1JlY2VpdmVkID4gaXRlbS5pRXN0
aW1hdGVkTGVuZ3RoICkNCiAgICAgICAgIHsNCkBAIC0xNjk5LDcgKzE2OTYsNyBAQCB2b2lkIENX
ZWJLaXRDb250cm9sOjpJbmNyZW1lbnRQcm9ncmVzc0ZvDQogICAgIFRJbnQgbnVtUGVuZGluZ09y
TG9hZGluZ1JlcXVlc3RzKCBpV2ViS2l0Vmlldy0+TWFpbkZyYW1lKCkuTnVtUGVuZGluZ09yTG9h
ZGluZ1JlcXVlc3RzKCkgKTsNCiAgICAgVEludCBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1
ZXN0cyA9IEtXZWJQcm9ncmVzc0l0ZW1EZWZhdWx0RXN0aW1hdGVkTGVuZ3RoICoNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVBlbmRpbmdPckxvYWRpbmdS
ZXF1ZXN0czsNCi0gICAgDQorDQogICAgIC8vIENhbGN1bGF0ZSB0aGUgYW1vdW50IHRvIGluY3Jl
bWVudCB0aGUgcHJvZ3Jlc3MgYmFyDQogICAgIFRJbnQgcmVtYWluaW5nQnl0ZXMgPSAoKCBpVG90
YWxQYWdlQW5kUmVzb3VyY2VCeXRlc1RvTG9hZCArDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1ZXN0cyApIC0NCkBAIC0xODQ4LDcgKzE4
NDUsNyBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpGaW5hbFByb2dyZXNzQ29tcGxlDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsIDAgKTsNCiAgICAgICAgIH0N
CiAgICAgUmVzZXRQcm9ncmVzcygpOw0KLSAgICAgICAgDQorDQogICAgIGlCckN0bC0+SGFuZGxl
QnJvd3NlckxvYWRFdmVudEwoIFRCckN0bERlZnM6OkVFdmVudFVybExvYWRpbmdGaW5pc2hlZCwg
MCwgMCApOw0KICAgICBpQnJDdGwtPkhhbmRsZUJyb3dzZXJMb2FkRXZlbnRMKCBUQnJDdGxEZWZz
OjpFRXZlbnRDb250ZW50RmluaXNoZWQsIDAsIDAgKTsNCiAgICAgaUJyQ3RsLT5IYW5kbGVCcm93
c2VyTG9hZEV2ZW50TCggVEJyQ3RsRGVmczo6RUV2ZW50TG9hZEZpbmlzaGVkLCAwLCAwICk7DQpA
QCAtMTg5Miw3ICsxODg5LDcgQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6RmluYWxQcm9ncmVzc0Nv
bXBsZQ0KIC8vIGZyYW1lcy4gVGhlIHByb2dyZXNzIGJhciBuZWVkcyB0byBtb3ZlIGluIGEgcG9z
aXRpdmUgZGlyZWN0aW9uIGFuZCBub3QgZ28NCiAvLyBiYWNrLCB3aGVuIG91ciBuZXcgZXN0aW1h
dGVkIHByb2dyZXNzIGlzIGxlc3MgdGhlbiBvdXIgbGFzdCBlc3RpbWF0ZS4gSWUsDQogLy8gaWYg
d2UgZ3Vlc3Mgd2UncmUgYXQgMjAlIGFuZCB0aGUgbmV4dCBjaHVjayBtYWtlcyBvdXIgZ3Vlc3Mg
MTglLCB3ZSBsZWF2ZSB0aGUNCi0vLyBwcm9ncmVzcyBiYXIgYXQgMjAlLiANCisvLyBwcm9ncmVz
cyBiYXIgYXQgMjAlLg0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDV2ViS2l0Q29u
dHJvbDo6UHJvZ3Jlc3NVcGRhdGUoKQ0KICAgICB7DQpAQCAtMjI5NSw3ICsyMjkyLDYgQEAgdm9p
ZCBDV2ViS2l0Q29udHJvbDo6Rm9yZWdyb3VuZEV2ZW50KFRCbw0KICAgICAgICAgaVdlYktpdFZp
ZXctPlN5bmNSZXBhaW50KCBpV2ViS2l0Vmlldy0+TWFpbkZyYW1lKCkuVmlzaWJsZVJlY3QoKSAp
Ow0KICAgICAgICAgfQ0KICAgICB9DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENXZWJLaXRDb250cm9sOjpDcmVhdGVXaWRnZXRFeHRl
bnNpb24NCiAvLw0KQEAgLTIzMDMsMTQgKzIyOTksMTUgQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6
Rm9yZWdyb3VuZEV2ZW50KFRCbw0KIC8vDQogTVdpZGdldEV4dGVuc2lvbiogQ1dlYktpdENvbnRy
b2w6OkNyZWF0ZVdpZGdldEV4dGVuc2lvbkwoTVdpZGdldENhbGxiYWNrJiBhV2lkZ2V0Q2FsbGJh
Y2spDQogICAgIHsNCi0gICAgaWYoICFpV2lkZ2V0RXh0ZW5zaW9uICkNCisgICAgaWYgKEZlYXR1
cmVNYW5hZ2VyOjpGZWF0dXJlU3VwcG9ydGVkKEtGZWF0dXJlSWRXZWJXaWRnZXRzKSkNCiAgICAg
ICAgIHsNCi0gICAgICAgIGlXaWRnZXRFeHRlbnNpb24gPSBDV2lkZ2V0RXh0ZW5zaW9uOjpOZXdM
KCppV2ViS2l0VmlldyxhV2lkZ2V0Q2FsbGJhY2spOw0KKyAgICAgICAgaWYoICFpV2lkZ2V0RXh0
ZW5zaW9uICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaVdpZGdldEV4dGVuc2lvbiA9
IENXaWRnZXRFeHRlbnNpb246Ok5ld0woKmlXZWJLaXRWaWV3LGFXaWRnZXRDYWxsYmFjayk7DQor
ICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KLSAgICBQbHVnaW5IYW5kbGVyKCkuTG9hZFBsdWdp
bnNTeW5jTCgpOw0KICAgICByZXR1cm4gaVdpZGdldEV4dGVuc2lvbjsNCiAgICAgfQ0KLSNlbmRp
ZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8v
IENhbGxlZCB3aGVuIHVzZXIgY2xpY2tzIGEgcGx1Z2luIHdoaWNoIGlzIGFibGUgdG8gYWNjZXB0
IHVzZXIgaW5wdXQsDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0Vmlldy5jcHAJ
KHJldmlzaW9uIDIxOTY3KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0Vmlldy5j
cHAJKHdvcmtpbmcgY29weSkNCkBAIC02MiwxMSArNjIsOSBAQA0KICNpbmNsdWRlICJXZWJLaXRU
b29sQmFySW50ZXJmYWNlLmgiDQogI2luY2x1ZGUgIlRvb2xCYXIuaCINCiAjaW5jbHVkZSAiQW5p
bWF0aW9uRGVjb2Rlci5oIg0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogI2luY2x1ZGUg
IldpZGdldEV4dGVuc2lvbi5oIg0KICNpbmNsdWRlICJXaWRnZXRFbmdpbmVCcmlkZ2UuaCINCiAj
aW5jbHVkZSAiV2lkZ2V0UmVuZGVyZXIuaCINCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMN
CiAjaW5jbHVkZSAiRmVhdE1nci5oIg0KICNpbmNsdWRlICJXZWJDb3JlRm9ybUNvbnRyb2xGYWN0
b3J5LmgiDQogI2luY2x1ZGUgIkZDb250cm9sSW5wdXRXaWRnZXQuaCINCkBAIC02MjQsNyArNjIy
LDYgQEAgdm9pZCBDV2ViS2l0Vmlldzo6TWFrZVZpc2libGUoDQogICAgICAgICByZXR1cm47DQog
ICAgICAgICB9DQogICAgIFNldFZpZXdWaXNpYmxlKGFWaXNpYmxlKTsNCi0jaWZkZWYgIFJEX0JS
T1dTRVJfV0lER0VUUw0KICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiB3ZGd0RXh0ID0gaVdlYktpdENv
bnRyb2wtPldpZGdldEV4dGVuc2lvbigpOw0KICAgICBpZiggd2RndEV4dCApDQogICAgICAgICB7
DQpAQCAtNjM0LDcgKzYzMSw2IEBAIHZvaWQgQ1dlYktpdFZpZXc6Ok1ha2VWaXNpYmxlKA0KICAg
ICAgICAgICAgIHdkZ3RCcmlkZ2UtPlNldFdpZGdldFZpc2liaWxpdHkoYVZpc2libGUpOw0KICAg
ICAgICAgICAgIH0NCiAgICAgICAgIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAg
ICAgfQ0KIA0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTkyMSw3ICs5MTcsNiBAQCB2
b2lkIENXZWJLaXRWaWV3OjpEcmF3KA0KICAgICAvLyBwdXQgb2Zmc2NyZWVuIGJpdG1hcCBvbnRv
IHRoZSBzY3JlZW4NCiAgIGlSZW5kZXJUYXJnZXQtPkZsaXAoIFJlY3QoKS5pVGwsIGdjICk7DQog
DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgQ1dpZGdldEV4dGVuc2lvbiogd2Rn
dEV4dCA9IGlXZWJLaXRDb250cm9sLT5XaWRnZXRFeHRlbnNpb24oKTsNCiAgICAgaWYgKHdkZ3RF
eHQpDQogICAgICAgICB7DQpAQCAtOTMxLDcgKzkyNiw2IEBAIHZvaWQgQ1dlYktpdFZpZXc6OkRy
YXcoDQogICAgICAgICAgICAgd2lkZ2V0UmVuZGVyZXItPkRyYXdUcmFuc2l0aW9uKGdjLCBPZmZz
Y3JlZW5CaXRtYXAoKSk7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KLSNlbmRpZiAvL1JE
X0JST1dTRVJfV0lER0VUUw0KICAgICBpZiAoaUlzUGFnZVNjYWxlckVuYWJsZWQpDQogICAgICAg
ICB7DQogICAgICAgICBpUGFnZVNjYWxlci0+RHJhdyggZ2MsYVJlY3QgKTsNCkluZGV4OiBXZWJL
aXQvQnJvd3NlclZpZXcvc3JjL1dpZGdldEV4dGVuc2lvbi5jcHANCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dpZGdldEV4dGVuc2lvbi5jcHAJKHJldmlzaW9uIDIxOTY3
KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2lkZ2V0RXh0ZW5zaW9uLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTQ1LDkgKzQ1LDkgQEANCiAjaW5jbHVkZSA8YXBnY2xpLmg+DQogI2luY2x1
ZGUgPGFwZ3Rhc2suaD4NCiAjaW5jbHVkZSA8YnJvd3NlcmxhdW5jaGVyLmg+DQotI2luY2x1ZGUg
PHdpZGdldHVpLnJzZz4NCiAjaW5jbHVkZSA8d2lkZ2V0bWVudS5yc2c+DQogI2luY2x1ZGUgPGVp
a2J0Z3BjLmg+DQorI2luY2x1ZGUgPGF2a29uLmhyaD4NCiANCiAjaW5jbHVkZSAiV2lkZ2V0RXh0
ZW5zaW9uLmgiDQogI2luY2x1ZGUgIldpZGdldFByZWZlcmVuY2VzLmgiDQpAQCAtMzk2LDIzICsz
OTYsOCBAQCB2b2lkIENXaWRnZXRFeHRlbnNpb246OkFkZE9wdGlvbk1lbnVJdGVtDQogICAgIENN
ZW51SXRlbSogcGFyZW50Tm9kZSA9IE5VTEw7DQogICAgIFRJbnQgcGFyZW50Q21kSWQgPSAtMTsN
CiANCi0gICAgaWYgKCBhUmVzb3VyY2VJZCA9PSBSX1dJREdFVFVJX01FTlUgKQ0KLSAgICAgICAg
ew0KLSAgICAgICAgLy9pbnZva2UgbWVudSBvbnNob3cgY2FsbGJhY2sNCi0gICAgICAgIGlmICgg
aVdpZGdldEVuZ2luZUJyaWRnZSApDQotICAgICAgICAgICAgew0KLSAgICAgICAgICAgIGlXaWRn
ZXRFbmdpbmVCcmlkZ2UtPk1lbnVTaG93ZWQoKTsNCi0gICAgICAgICAgICB9DQogDQotICAgICAg
ICBpZiAoIGFNZW51UGFuZS5OdW1iZXJPZkl0ZW1zSW5QYW5lKCkgPiAxICkNCi0gICAgICAgICAg
ICB7DQotICAgICAgICAgICAgYU1lbnVQYW5lLkRlbGV0ZUJldHdlZW5NZW51SXRlbXMoIA0KLSAg
ICAgICAgICAgICAgICAwLCBhTWVudVBhbmUuTnVtYmVyT2ZJdGVtc0luUGFuZSgpIC0gMiApOw0K
LSAgICAgICAgICAgIH0NCi0gICAgICAgIGlmICggaU1lbnVSb290ICkNCi0gICAgICAgICAgICBu
b2RlID0gaU1lbnVSb290LT5GaXJzdENoaWxkKCk7DQotICAgICAgICB9ICAgICAgIA0KLSAgICBl
bHNlIGlmICggYVJlc291cmNlSWQgPj0gUl9DQVNDQURFX01FTlVfMSApIC8vb25lIG9mIHRoZSBj
YXNjYWRlIG1lbnUgcGFuZQ0KKyAgICBpZiAoIGFSZXNvdXJjZUlkID49IFJfQ0FTQ0FERV9NRU5V
XzEgKSAvL29uZSBvZiB0aGUgY2FzY2FkZSBtZW51IHBhbmUNCiAgICAgICAgIHsgICANCiAgICAg
ICAgIGZvciAoIFRJbnQgaSA9IDA7IGkgPCBpQ2FzY2FkZUFyci5Db3VudCgpOyBpKysgKQ0KICAg
ICAgICAgICAgIHsNCkBAIC00MzAsNyArNDE1LDIxIEBAIHZvaWQgQ1dpZGdldEV4dGVuc2lvbjo6
QWRkT3B0aW9uTWVudUl0ZW0NCiAgICAgICAgIGlmICggcGFyZW50Tm9kZSApDQogICAgICAgICAg
ICAgbm9kZSA9IHBhcmVudE5vZGUtPkZpcnN0Q2hpbGQoKTsNCiAgICAgICAgIH0NCisgICAgZWxz
ZXsNCisgICAgICAgIC8vaW52b2tlIG1lbnUgb25zaG93IGNhbGxiYWNrDQorICAgICAgICBpZiAo
IGlXaWRnZXRFbmdpbmVCcmlkZ2UgKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBpV2lk
Z2V0RW5naW5lQnJpZGdlLT5NZW51U2hvd2VkKCk7DQorICAgICAgICAgICAgfQ0KIA0KKyAgICAg
ICAgaWYgKCBhTWVudVBhbmUuTnVtYmVyT2ZJdGVtc0luUGFuZSgpID4gMSApDQorICAgICAgICAg
ICAgew0KKyAgICAgICAgICAgIGFNZW51UGFuZS5EZWxldGVCZXR3ZWVuTWVudUl0ZW1zKA0KKyAg
ICAgICAgICAgICAgICAwLCBhTWVudVBhbmUuTnVtYmVyT2ZJdGVtc0luUGFuZSgpIC0gMik7DQor
ICAgICAgICAgICAgfQ0KKyAgICAgICAgaWYgKCBpTWVudVJvb3QgKQ0KKyAgICAgICAgICAgIG5v
ZGUgPSBpTWVudVJvb3QtPkZpcnN0Q2hpbGQoKTsNCisgICAgICAgIH0NCiAgICAgaWYgKCBub2Rl
ICkNCiAgICAgICAgIHsNCiAgICAgICAgIC8vYWRkIGZpcnN0IGNoaWxkDQpJbmRleDogV2ViS2l0
L0Jyb3dzZXJWaWV3L3NyYy93ZWJraXRicmlkZ2UuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0
L0Jyb3dzZXJWaWV3L3NyYy93ZWJraXRicmlkZ2UuY3BwCShyZXZpc2lvbiAyMTk2NykNCisrKyBX
ZWJLaXQvQnJvd3NlclZpZXcvc3JjL3dlYmtpdGJyaWRnZS5jcHAJKHdvcmtpbmcgY29weSkNCkBA
IC01MSw5ICs1MSw3IEBADQogI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiDQogI2luY2x1
ZGUgIkxvYWRlclV0aWxzLmgiDQogI2luY2x1ZGUgIldlYktpdExvZ2dlci5oIg0KLSNpZmRlZiAg
UkRfQlJPV1NFUl9XSURHRVRTDQogI2luY2x1ZGUgIldpZGdldEV4dGVuc2lvbi5oIg0KLSNlbmRp
ZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vQ09OU1RBTlRTDQogX0xJVChLRGF0ZVN0cmlu
ZywgIiUtQiU6MCVKJToxJVQlOjIlUyUuJSpDNCU6MyUrQiIpOw0KQEAgLTEzNjYsNyArMTM2NCw2
IEBAIHZvaWQgQ1dlYktpdEJyaWRnZTo6U2V0Rm9ybUNvbnRyb2xUZXh0QnkNCiAgICAgfQ0KICAg
fQ0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogdm9pZCogQ1dlYktpdEJyaWRnZTo6
Y3JlYXRlV2lkZ2V0T2JqZWN0KCB2b2lkKiBleGVjICkNCiAgICAgew0KICAgICBDV2lkZ2V0RXh0
ZW5zaW9uKiB3ZGd0RXh0ID0gDQpAQCAtMTQwNSw1ICsxNDAyLDQgQEAgdm9pZCogQ1dlYktpdEJy
aWRnZTo6Y3JlYXRlV2lkZ2V0TWVudUl0ZQ0KIA0KICAgICByZXR1cm4gMDsNCiAgICAgfQ0KLSNl
bmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIC8vIGVuZCBvZiBmaWxlDQpJbmRleDogV2ViS2l0
L1BsdWdpbi9pbmMvUGx1Z2luSGFuZGxlci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1BsdWdp
bi9pbmMvUGx1Z2luSGFuZGxlci5oCShyZXZpc2lvbiAyMTk2NykNCisrKyBXZWJLaXQvUGx1Z2lu
L2luYy9QbHVnaW5IYW5kbGVyLmgJKHdvcmtpbmcgY29weSkNCkBAIC0xMzcsNyArMTM3LDYgQEAg
Y2xhc3MgQ1BsdWdpbkhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UsIHB1Yg0KICAgICAgICAgKi8NCiAg
ICAgICAgIFRVaW50IEdldEluZGV4RnJvbUhhbmRsZShUSW50IGFIYW5kbGUpOw0KIA0KLSNpZmRl
ZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgICAgICAvKioNCiAgICAgICAgICogR2V0IHRoZSBp
bmRleCBvZiBwbHVnaW4gaW5mbyBmcm9tIGl0cyBoYW5kbGUuDQogICAgICAgICAqDQpAQCAtMTQ2
LDcgKzE0NSw3IEBAIGNsYXNzIENQbHVnaW5IYW5kbGVyIDogcHVibGljIENCYXNlLCBwdWINCiAg
ICAgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIHBsdWdpbiBpbmZvLg0KICAgICAgICAg
Ki8NCiAgICAgICAgIFRCb29sIExvYWRQbHVnaW5zU3luY0woKTsNCi0jZW5kaWYgLy9SRF9CUk9X
U0VSX1dJREdFVFMNCisNCiAgICAgcHVibGljOiAvL0Zyb20gTVdlYkNvcmVQbHVnaW5IYW5kbGVy
DQogICAgICAgICAvKioNCiAgICAgICAgICogU2NhbnMgZm9yIG5ldyBwbHVnaW5zLg0KSW5kZXg6
IFdlYktpdC9QbHVnaW4vaW5jL1BsdWdpblNraW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Q
bHVnaW4vaW5jL1BsdWdpblNraW4uaAkocmV2aXNpb24gMjE5NjcpDQorKysgV2ViS2l0L1BsdWdp
bi9pbmMvUGx1Z2luU2tpbi5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMzc3LDcgKzM3Nyw2IEBAIGNs
YXNzIENQbHVnaW5Ta2luIDogcHVibGljIENCYXNlLA0KICAgICAgICAgKi8NCiAgICAgICAgIFRC
b29sIENhbkludGVyYWN0KCkgY29uc3QgICAgICAgICAgIHsgcmV0dXJuIGlDYW5QbHVnaW5JbnRl
cmFjdDsgfQ0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgICAgICAvKioNCiAg
ICAgICAgICogR2V0IHRoZSBzY3JpcHRpbmcgb2JqZWN0IGZyb20gcGx1Z2luDQogICAgICAgICAq
IFNldHMgdGhlIGZvbnQNCkBAIC0zODUsNyArMzg0LDcgQEAgY2xhc3MgQ1BsdWdpblNraW4gOiBw
dWJsaWMgQ0Jhc2UsDQogICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQogICAgICAgICB2
b2lkICpQbHVnaW5TY3JpcHRhYmxlT2JqZWN0KCk7IA0KLSNlbmRpZg0KKw0KICAgcHVibGljOiAv
LyBGdW5jdGlvbnMgZnJvbSBNVmlld0ZvY3VzT2JzZXJ2ZXINCiANCiAgICAgICAgIC8qKg0KSW5k
ZXg6IFdlYktpdC9QbHVnaW4vaW5jL1BsdWdpbldpbi5oDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0
L1BsdWdpbi9pbmMvUGx1Z2luV2luLmgJKHJldmlzaW9uIDIxOTY3KQ0KKysrIFdlYktpdC9QbHVn
aW4vaW5jL1BsdWdpbldpbi5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNTgsOSArNTgsNyBAQCBjbGFz
cyBDV2ViS2l0Q29udHJvbDsNCiBjbGFzcyBDUGx1Z2luU2tpbjsNCiBjbGFzcyBDUGx1Z2luSGFu
ZGxlcjsNCiBjbGFzcyBDQml0bWFwQ29udGV4dDsNCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VU
Uw0KIGNsYXNzIE5QT2JqZWN0Ow0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8v
IExPQ0FMIENPTlNUQU5UUyBBTkQgTUFDUk9TDQogLy8gVGhlc2UgYXJlIHVzZWQgdG8gZGVzaWdu
YXRlIHRoZSBoYW5kbGluZyBvZiBpbmNvbWluZyBjb250ZW50IGFuZCBsb2FkaW5nIFBsdWdpbnMN
CkBAIC00OTAsNyArNDg4LDYgQEAgY2xhc3MgQ1BsdWdpbldpbiA6ICBwdWJsaWMgQ0NvZUNvbnRy
b2wsDQogICAgICAgICAqLw0KICAgICB2b2lkIEhhbmRsZUxvc2luZ0ZvcmVncm91bmQoKTsNCiAN
Ci0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQogICAgICAgICAqIFJl
dHVybiB3aW5kb3cgb2JqZWN0IHVzYWJsZSBmcm9tIHNjcmlwdGFibGUgcGx1Z2lucw0KICAgICAg
ICAgKiBAc2luY2UgMy4xDQpAQCAtNTA0LDcgKzUwMSw2IEBAIGNsYXNzIENQbHVnaW5XaW4gOiAg
cHVibGljIENDb2VDb250cm9sLA0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAg
ICAgICAgdm9pZCAqUGx1Z2luU2NyaXB0YWJsZU9iamVjdCgpOw0KLSNlbmRpZiAvL1JEX0JST1dT
RVJfV0lER0VUUw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqIFNldHMgdGhlIHBsdWdpbidz
IGJlaGF2aW91ciBhcyB3aW5kb3dlZCBvciB3aW5kb3dsZXNzDQpJbmRleDogV2ViS2l0L1BsdWdp
bi9pbmMvbnBhcGkuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9QbHVnaW4vaW5jL25wYXBpLmgJ
KHJldmlzaW9uIDIxOTY3KQ0KKysrIFdlYktpdC9QbHVnaW4vaW5jL25wYXBpLmgJKHdvcmtpbmcg
Y29weSkNCkBAIC00MDQsMTQgKzQwNCwxMiBAQCB0eXBlZGVmIGVudW0gew0KICAgLyogMTIgYW5k
IG92ZXIgYXJlIGF2YWlsYWJsZSBvbiBNb3ppbGxhIGJ1aWxkcyBzdGFydGluZyB3aXRoIDAuOS45
ICovDQogICBOUFBWamF2YXNjcmlwdFB1c2hDYWxsZXJCb29sID0gMTIsDQogICBOUFBWcGx1Z2lu
S2VlcExpYnJhcnlJbk1lbW9yeSA9IDEzLCAgIC8qIGF2YWlsYWJsZSBpbiBNb3ppbGxhIDEuMCAq
Lw0KLSNpZmRlZiBSRF9CUk9XU0VSX1dJREdFVFMNCiAgIE5QUFZwbHVnaW5OZWVkc1hFbWJlZCAg
ICAgICAgID0gMTQsIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8NCiAgICAvKiBzdGFy
dGVkIGZyb20gMTAwLiBUaGUgbnVtYmVycyAxMyB0byAxMDAwIGFyZSBsZWZ0DQogICAgKiBmb3Ig
c3RhbmRhcml6YXRpb24gYW5kIG90aGVyIGZ1dHVyZSB1c2UuIFZhbHVlIHJldHVybiBpcyB6ZXJv
IGZvcg0KICAgICogaW5ldGVyYWN0aXZlIGFuZCAnb25lJyBmb3Igbm9uLWludGVyYWN0aXZlLg0K
ICAgICovDQogICBOUFBWcGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0ICA9IDE1LA0KLSNlbmRpZg0K
ICAgTlBQVnBsdWdpbkludGVyYWN0aXZlQm9vbCA9IDEwMDANCiB9IE5QUFZhcmlhYmxlOw0KIA0K
QEAgLTQzMCw3ICs0MjgsNiBAQCB0eXBlZGVmIGVudW0gew0KICAgTlBOVnNlcnZpY2VNYW5hZ2Vy
ID0gKDEwIHwgTlBfQUJJX01BU0spLA0KICAgTlBOVkRPTUVsZW1lbnQgICAgID0gKDExIHwgTlBf
QUJJX01BU0spLCAgIC8qIGF2YWlsYWJsZSBpbiBNb3ppbGxhIDEuMiAqLw0KICAgTlBOVkRPTVdp
bmRvdyAgICAgID0gKDEyIHwgTlBfQUJJX01BU0spDQotI2lmZGVmIFJEX0JST1dTRVJfV0lER0VU
Uw0KICAgLE5QTlZUb29sa2l0ICAgICAgICA9ICgxMyB8IE5QX0FCSV9NQVNLKSwgIC8qIE5vdCBp
bXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8NCiAgIE5QTlZTdXBwb3J0c1hFbWJlZEJvb2wgPSAxNCwg
ICAgICAgICAgICAgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8NCiANCkBAIC00Mzks
NyArNDM2LDYgQEAgdHlwZWRlZiBlbnVtIHsNCiANCiAgICAgLyogR2V0IHRoZSBOUE9iamVjdCB3
cmFwcGVyIGZvciB0aGUgcGx1Z2lucyBET00gZWxlbWVudC4gKi8NCiAgIE5QTlZQbHVnaW5FbGVt
ZW50TlBPYmplY3QgICAgICAgICAgICAgICAgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQg
Ki8NCi0jZW5kaWYNCiB9IE5QTlZhcmlhYmxlOw0KIA0KIC8qDQpJbmRleDogV2ViS2l0L1BsdWdp
bi9zcmMvTnBuSW1wbGVtZW50YXRpb24uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1BsdWdp
bi9zcmMvTnBuSW1wbGVtZW50YXRpb24uY3BwCShyZXZpc2lvbiAyMTk2NykNCisrKyBXZWJLaXQv
UGx1Z2luL3NyYy9OcG5JbXBsZW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00MjUs
NyArNDI1LDYgQEAgTlBFcnJvciBOcG5VcmxMb2FkZXIoTlBQIGFJbnN0YW5jZSwgY29ucw0KICAg
ICAgICAgICAgICAgICB9DQogICAgICAgICAgIH0NCiAgICAgICAgICAgICBicmVhazsNCi0jaWZk
ZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgY2FzZSBOUE5WV2luZG93TlBPYmplY3Q6
DQogICAgICAgICAgICAgew0KICAgICAgICAgICAgIENQbHVnaW5XaW4qIHBsdWdpbldpbiA9IChD
UGx1Z2luV2luKilhSW5zdGFuY2UtPm5kYXRhOw0KQEAgLTQzOCw3ICs0MzcsNiBAQCBOUEVycm9y
IE5wblVybExvYWRlcihOUFAgYUluc3RhbmNlLCBjb25zDQogICAgICAgICAgICAgICAgIH0NCiAg
ICAgICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsNCiAgICAgICAgICAgICB9DQot
I2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogICAgICAgICBjYXNlIE5QTlZET01XaW5kb3c6
DQogICAgICAgICBjYXNlIE5QTlZ4RGlzcGxheTogICAgICAgICAgLy8gVW5peCBvbmx5OiBSZXR1
cm5zIHRoZSBjdXJyZW50IERpc3BsYXkNCiAgICAgICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4dDog
ICAgICAvLyBVbml4IG9ubHk6IFJldHVybnMgdGhlIGFwcGxpY2F0aW9uJ3MgWHRBcHBDb250ZXh0
DQpJbmRleDogV2ViS2l0L1BsdWdpbi9zcmMvUGx1Z2luSGFuZGxlci5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvUGx1Z2luL3NyYy9QbHVnaW5IYW5kbGVyLmNwcAkocmV2aXNpb24gMjE5Njcp
DQorKysgV2ViS2l0L1BsdWdpbi9zcmMvUGx1Z2luSGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkN
CkBAIC01MjMsMjggKzUyMyw2IEBAIFRCb29sIENQbHVnaW5IYW5kbGVyOjpJbml0aWFsaXplKFRB
bnkqIGENCiAgICAgcmV0dXJuIGRvbmVJbml0Ow0KICAgICB9DQogDQotI2lmZGVmICBSRF9CUk9X
U0VSX1dJREdFVFMNCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLS8vIENQbHVnaW5IYW5kbGVy
OjpJbml0aWFsaXplDQotLy8NCi0vLyBJbml0aWFsaXplcyB0aGUgUGx1Z2luSGFuZGxlciwgcG9z
c2libHkgYXN5bmNocm9ub3VzbHkNCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLS8vDQotVEJv
b2wgQ1BsdWdpbkhhbmRsZXI6OkxvYWRQbHVnaW5zU3luY0woKQ0KLSAgICB7DQotICAgIGlmKCBp
UGx1Z2luSW5mb0FycmF5LkNvdW50KCkgIT0gMCApDQotICAgICAgICB7DQotICAgICAgICByZXR1
cm4gRVRydWU7DQotICAgICAgICB9DQotDQotICAgIC8vQ2FuY2VsIHRoZSBlYXJsaWVyIHJlcXVl
c3QgYW5kIGxvYWQgcGx1Z2lucyBub3cNCi0gICAgaWYoIGlJZGxlICkNCi0gICAgICAgIHsNCi0g
ICAgICAgIGlJZGxlLT5DYW5jZWwoKTsNCi0gICAgICAgIH0NCi0gICAgcmV0dXJuIExvYWRQbHVn
aW5zTCgpOw0KLSAgICB9DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogLy8gQ1BsdWdp
bkhhbmRsZXI6OkxvYWRQbHVnaW5zTA0KIC8vDQogLy8gTG9hZHMgYWxsIHRoZSBwbHVnaW5zIGFu
ZCBxdWVyeSB0aGVtIGZvciBkZXRhaWxzLg0KSW5kZXg6IFdlYktpdC9QbHVnaW4vc3JjL1BsdWdp
blNraW4uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1BsdWdpbi9zcmMvUGx1Z2luU2tpbi5j
cHAJKHJldmlzaW9uIDIxOTY3KQ0KKysrIFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpblNraW4uY3Bw
CSh3b3JraW5nIGNvcHkpDQpAQCAtNjksOSArNjksNyBAQA0KICNpbmNsdWRlICJXZWJLaXRWaWV3
LmgiDQogI2luY2x1ZGUgIldlYktpdENvbnRyb2wuaCINCiAjaW5jbHVkZSAiV2ViQ29yZUdyYXBo
aWNzQ29udGV4dC5oIg0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogI2luY2x1ZGUgIldp
ZGdldEV4dGVuc2lvbi5oIg0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vIENP
TlNUQU5UUw0KIC8vIHNjaGVtZSBmb3IgUlRTUCB1cmwNCkBAIC0yMTcsMTIgKzIxNSw4IEBAIHZv
aWQgQ1BsdWdpblNraW46OkNvbnN0cnVjdEwoIGNvbnN0IFREZXMNCiAgICAgICAgICAgICBDbGVh
bnVwU3RhY2s6OlBvcEFuZERlc3Ryb3koKTsgIC8vIHVybFNjaGVtZQ0KICAgICAgICAgICAgIH0N
CiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgQ1dpZGdldEV4dGVuc2lv
biogd2RndEV4dCA9IGlXZWJLaXRGcmFtZS0+V2ViS2l0VmlldygpLldlYktpdENvbnRyb2woKS5X
aWRnZXRFeHRlbnNpb24oKTsNCiAgICAgICAgIGlmICggYlJ0c3BGb3VuZCB8fCAod2RndEV4dCAm
JiBhVXJsLkxlbmd0aCgpID09IDApKQ0KLSNlbHNlDQotICAgICAgICBpZiAoIGJSdHNwRm91bmQg
KQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgICAgIHsNCiAgICAgICAg
ICAgICAvLyBJZiBydHNwIHNjaGVtZSBpbiB1cmwsIHBhc3MgdG8gcGx1Z2luIGRpcmVjdGx5LA0K
ICAgICAgICAgICAgIC8vIGFmdGVyIHRoZSBhdHRyaWJ1dGUgYXJyYXlzIGluaXRpYWxpemVkDQpA
QCAtNzAyLDEwICs2OTYsOCBAQCBUQm9vbCBDUGx1Z2luU2tpbjo6SXNGb2N1c2FibGUoKSBjb25z
dA0KICAgICAgICAgcmV0dXJuIEVUcnVlOw0KICAgICB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VS
X1dJREdFVFMNCiB2b2lkKiBDUGx1Z2luU2tpbjo6UGx1Z2luU2NyaXB0YWJsZU9iamVjdCgpDQog
ICAgIHsNCiAgICAgcmV0dXJuIGlQbHVnaW5XaW4/aVBsdWdpbldpbi0+UGx1Z2luU2NyaXB0YWJs
ZU9iamVjdCgpOjA7DQogICAgIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCklu
ZGV4OiBXZWJLaXQvUGx1Z2luL3NyYy9QbHVnaW5XaW4uY3BwDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
S2l0L1BsdWdpbi9zcmMvUGx1Z2luV2luLmNwcAkocmV2aXNpb24gMjE5NjcpDQorKysgV2ViS2l0
L1BsdWdpbi9zcmMvUGx1Z2luV2luLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTEyNjQsNyArMTI2
NCw2IEBAIHZvaWQgQ1BsdWdpbldpbjo6SGFuZGxlTG9zaW5nRm9yZWdyb3VuZCgNCiAgICAgICAg
IH0NCiAgIH0NCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tDQogLy8NCiBOUE9iamVjdCogQ1BsdWdpbldpbjo6V2luZG93U2NyaXB0TlBPYmpl
Y3QoKQ0KQEAgLTEyODgsNyArMTI4Nyw2IEBAIHZvaWQqIENQbHVnaW5XaW46OlBsdWdpblNjcmlw
dGFibGVPYmplY3QNCiAgICAgfQ0KICAgICByZXR1cm4gKHZvaWQgKikwOw0KICAgICB9DQotI2Vu
ZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAv
LyBDUGx1Z2luV2luOjpGb3JjZVJlZHJhdw0KSW5kZXg6IFdlYktpdC9ncm91cC9Ccm93c2VyVmll
dy5tbXANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3JvdXAvQnJvd3NlclZpZXcubW1wCShyZXZp
c2lvbiAyMTk2NykNCisrKyBXZWJLaXQvZ3JvdXAvQnJvd3NlclZpZXcubW1wCSh3b3JraW5nIGNv
cHkpDQpAQCAtNzcsMTIgKzc3LDEwIEBAIFNPVVJDRSAgICAgICAgICBTbWFydExpbmtIYW5kbGVy
LmNwcA0KIFNPVVJDRSAgICAgICAgICBTbWFydExpbmtNYXAuY3BwDQogU09VUkNFCQlQb3B1cERy
YXdlci5jcHANCiBTT1VSQ0UJCVNjcm9sbGluZ0luZGljYXRvckRyYXdlci5jcHANCi0jaWZkZWYg
IFJEX0JST1dTRVJfV0lER0VUUw0KIFNPVVJDRSAgICAgICAgICBXaWRnZXRFeHRlbnNpb24uY3Bw
DQogU09VUkNFICAgICAgICAgIFdpZGdldFByZWZlcmVuY2VzLmNwcA0KIFNPVVJDRSAgICAgICAg
ICBXaWRnZXRSZW5kZXJlci5jcHANCiBTWVNURU1JTkNMVURFICAgICAgICAuLlwuLlwuLlxXaWRn
ZXRFbmdpbmVcaW5jDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogVVNFUklOQ0xVREUg
ICAgIC4uXFJlc291cmNlTG9hZGVyXEluYw0KIFVTRVJJTkNMVURFICAgICAuLlxSZXNvdXJjZUxv
YWRlclxjYWNoZUluYw0KIFVTRVJJTkNMVURFICAgICAuLlxCcm93c2VyVmlld1xJbmMNCkluZGV4
OiBXZWJLaXQvZ3JvdXAvUGx1Z2luLm1tcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91cC9Q
bHVnaW4ubW1wCShyZXZpc2lvbiAyMTk2NykNCisrKyBXZWJLaXQvZ3JvdXAvUGx1Z2luLm1tcAko
d29ya2luZyBjb3B5KQ0KQEAgLTYwLDkgKzYwLDcgQEAgVVNFUklOQ0xVREUgICAgIC4uXEJyb3dz
ZXJDb3JlXFJlbmRlcmVycw0KIFVTRVJJTkNMVURFICAgICAuLlxSZXNvdXJjZUxvYWRlclxJbmMN
CiAjaWZuZGVmIF9fQlJPV1NFUl9TREsNCiBVU0VSSU5DTFVERSAgICAgLi5cLi5cLi5cUGFnZVNj
YWxlclxJbmMNCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIFVTRVJJTkNMVURFICAgICBc
UzYwXG13XHdlYlxXZWJFbmdpbmVcV2lkZ2V0RW5naW5lXEluYw0KLSNlbmRpZiAvL1JEX0JST1dT
RVJfV0lER0VUUw0KICNlbmRpZg0KIFVTRVJJTkNMVURFICAgICAuLlwuLlxXRUJDT1JFXGJyaWRn
ZQ0KIA0KSW5kZXg6IFdlYktpdC9ncm91cC9mb3JtY29udHJvbHMubW1waQ0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9ncm91cC9mb3JtY29udHJvbHMubW1waQkocmV2aXNpb24gMjE5NjcpDQorKysg
V2ViS2l0L2dyb3VwL2Zvcm1jb250cm9scy5tbXBpCSh3b3JraW5nIGNvcHkpDQpAQCAtNjMsOSAr
NjMsNyBAQCBVU0VSSU5DTFVERSAgICAgLi5cQnJvd3NlckNvcmVcTWlzY1xJbmMNCiBVU0VSSU5D
TFVERSAgICAgLi5cUmVzb3VyY2VMb2FkZXJcSW5jDQogVVNFUklOQ0xVREUgICAgIC4uXEJyb3dz
ZXJDb250cm9sXGluYw0KIFVTRVJJTkNMVURFICAgICAuLlxCcm93c2VyVmlld1xpbmMNCi0jaWZk
ZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogVVNFUklOQ0xVREUgICAgIC4uXC4uXC4uXFdpZGdldEVu
Z2luZVxpbmMNCi0jZW5kaWYNCiAjaWZuZGVmIF9fQlJPV1NFUl9TREsNCiBVU0VSSU5DTFVERSAg
ICAgLi5cLi5cLi5cUGFnZVNjYWxlclxpbmMNCiAjZW5kaWYNCkluZGV4OiBXZWJLaXQvZ3JvdXAv
d2Via2l0Lm1tcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91cC93ZWJraXQubW1wCShyZXZp
c2lvbiAyMTk2NykNCisrKyBXZWJLaXQvZ3JvdXAvd2Via2l0Lm1tcAkod29ya2luZyBjb3B5KQ0K
QEAgLTExNSw5ICsxMTUsNyBAQCBVU0VSSU5DTFVERSAgIC4uXC4uXC4uXFRvb2xCYXJcaW5jDQog
U1lTVEVNSU5DTFVERSBcRXBvYzMyXGluY2x1ZGUgXEVwb2MzMlxpbmNsdWRlXG9lbQ0KICNlbmRp
Zg0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogVVNFUklOQ0xVREUgICAuLlwuLlwu
LlxXaWRnZXRFbmdpbmVcaW5jDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogLy8tLQ0K
IA0KIFNZU1RFTUlOQ0xVREUgXEVwb2MzMlxpbmNsdWRlXGh0dHANCg==
</data>
<flag name="review"
          id="6138"
          type_id="1"
          status="-"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14863</attachid>
            <date>2007-06-05 06:52:15 -0700</date>
            <delta_ts>2007-06-05 13:43:05 -0700</delta_ts>
            <desc>flag change for 3.2</desc>
            <filename>13939_3.patch</filename>
            <type>text/plain</type>
            <size>37360</size>
            <attacher name="Wei Liu">wei.liu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDIwIEBADQordzNsaXUsIHJldmlld2VkIGJ5IDxTYWNoaW4+DQorIERFU0M6
IDMuMiB3aWRnZXQgZmxhZyBjaGFuZ2VzLg0KKyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzkzOQ0KKw0KKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERF
RCBPUiBDSEFOR0VEDQorDQorICAgICAgICAqIGJyaWRnZS9XZWJDb3JlQnJpZGdlLmg6DQorICAg
ICAgICAqIGtodG1sL2VjbWEva2pzX3dpbmRvdy5jcHA6DQorICAgICAgICAoV2luZG93OjpXaW5k
b3cpOg0KKyAgICAgICAgKFdpbmRvdzo6bWFyayk6DQorICAgICAgICAoV2luZG93OjpnZXQpOg0K
KyAgICAgICAgKiBraHRtbC9lY21hL2tqc193aW5kb3cuaDoNCisgICAgICAgICoga3dxL0tXUUtI
VE1MUGFydC5jcHA6DQorICAgICAgICAoS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnZXRNZW51SXRl
bU9iamVjdCk6DQorICAgICAgICAqIGt3cS9LV1FLSFRNTFBhcnQuaDoNCisNCisNCiAyMDA3LTA1
LTI5ICBidWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5
IFNhY2hpbi4NCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgJKHJldmlzaW9uIDIxOTc3KQ0K
KysrIFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVCcmlkZ2UuaAkod29ya2luZyBjb3B5KQ0KQEAgLTE1
MywxMyArMTUzLDEyIEBAIGNsYXNzIEtXUUtIVE1MUGFydDsNCiBjbGFzcyBLSFRNTFZpZXc7DQog
Y2xhc3MgUmVuZGVyQXJlbmE7DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBuYW1l
c3BhY2UgS0pTIHsNCiAgICAgY2xhc3MgRXhlY1N0YXRlOw0KICAgICBjbGFzcyBPYmplY3RJbXA7
DQogICAgIGNsYXNzIFByb3RlY3RlZFZhbHVlOw0KIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJ
REdFVFMNCisNCiBuYW1lc3BhY2Uga2h0bWwgew0KICAgICBjbGFzcyBSZW5kZXJQYXJ0Ow0KICAg
ICBjbGFzcyBSZW5kZXJPYmplY3Q7DQpAQCAtNzUzLDExICs3NTIsOSBAQCBwdWJsaWM6DQogDQog
ICAgIHZpcnR1YWwgVEJvb2wgQ2FuY2VsSW5Qcm9ncmVzcygpID0gMDsNCiANCi0jaWZkZWYgIFJE
X0JST1dTRVJfV0lER0VUUw0KICAgICB2aXJ0dWFsIHZvaWQqIGNyZWF0ZVdpZGdldE9iamVjdCh2
b2lkKiBleGVjKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCogY3JlYXRlV2lkZ2V0TWVudU9iamVj
dCh2b2lkKiBleGVjKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCogY3JlYXRlV2lkZ2V0TWVudUl0
ZW1PYmplY3Qodm9pZCogZXhlYykgPSAwOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0K
IH07DQogDQogI2VuZGlmICAgICAgLy8gV0VCQ09SRUJSSURHRV9IDQpJbmRleDogV2ViQ29yZS9r
aHRtbC9lY21hL2tqc193aW5kb3cuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9raHRtbC9l
Y21hL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAyMTk3NykNCisrKyBXZWJDb3JlL2todG1sL2Vj
bWEva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0zMjUsMTAgKzMyNSw4IEBAIFdp
bmRvdzo6V2luZG93KEtIVE1MUGFydCAqcCkNCiAgICwgaGlzdG9yeSgwKQ0KICAgLCBmcmFtZXMo
MCkNCiAgICwgbG9jKDApDQotI2lmZGVmIFJEX0JST1dTRVJfV0lER0VUUw0KICAgLCBtX3dpZGdl
dCgwKQ0KICAgLCBtX3dpZGdldE1lbnUoMCkNCi0jZW5kaWYNCiAgICwgbV9zZWxlY3Rpb24oMCkN
CiAgICwgbV9sb2NhdGlvbmJhcigwKQ0KICAgLCBtX21lbnViYXIoMCkNCkBAIC00OTAsMTIgKzQ4
OCwxMCBAQCB2b2lkIFdpbmRvdzo6bWFyaygpDQogICAgIG1fc3RhdHVzYmFyLT5tYXJrKCk7DQog
ICBpZiAobV90b29sYmFyICYmICFtX3Rvb2xiYXItPm1hcmtlZCgpKQ0KICAgICBtX3Rvb2xiYXIt
Pm1hcmsoKTsNCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICBpZiAobV93aWRnZXQgJiYg
IW1fd2lkZ2V0LT5tYXJrZWQoKSkNCiAgICAgbV93aWRnZXQtPm1hcmsoKTsNCiAgIGlmIChtX3dp
ZGdldE1lbnUgJiYgIW1fd2lkZ2V0TWVudS0+bWFya2VkKCkpDQogICAgIG1fd2lkZ2V0TWVudS0+
bWFyaygpOw0KLSNlbmRpZg0KIH0NCiANCiBVU3RyaW5nIFdpbmRvdzo6dG9TdHJpbmcoRXhlY1N0
YXRlICopIGNvbnN0DQpAQCAtODIwLDcgKzgxNiw2IEBAIFZhbHVlIFdpbmRvdzo6Z2V0KEV4ZWNT
dGF0ZSAqZXhlYywgY29uc3QNCiAjZW5kaWYNCiAgICAgY2FzZSBMb2NhdGlvbmJhcjoNCiAgICAg
ICByZXR1cm4gVmFsdWUobG9jYXRpb25iYXIoZXhlYykpOw0KLSNpZmRlZiBSRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICAgY2FzZSBfV2lkZ2V0Og0KICAgICAgIGlmICggbV93aWRnZXQgKQ0KICAgICAg
ICAgcmV0dXJuIFZhbHVlKG1fd2lkZ2V0KTsNCkBAIC04NDcsNyArODQyLDYgQEAgVmFsdWUgV2lu
ZG93OjpnZXQoRXhlY1N0YXRlICpleGVjLCBjb25zdA0KICAgICAgIGlmICghKGNvbnN0X2Nhc3Q8
V2luZG93Kj4odGhpcyktPm1fd2lkZ2V0TWVudSkpDQogICAgICAgICByZXR1cm4gVW5kZWZpbmVk
KCk7DQogICAgICAgcmV0dXJuIEtXUShtX3BhcnQpLT5jcmVhdGVXaWRnZXRNZW51SXRlbU9iamVj
dChleGVjKSA/IFZhbHVlKEtXUShtX3BhcnQpLT5jcmVhdGVXaWRnZXRNZW51SXRlbU9iamVjdChl
eGVjKSk6VW5kZWZpbmVkKCk7ICAgDQotI2VuZGlmDQogICAgIGNhc2UgTWVudWJhcjoNCiAgICAg
ICByZXR1cm4gVmFsdWUobWVudWJhcihleGVjKSk7DQogICAgIGNhc2UgT2Zmc2NyZWVuQnVmZmVy
aW5nOg0KSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfd2luZG93LmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5oCShyZXZpc2lvbiAyMTk3NykNCisr
KyBXZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTU5
LDEwICsxNTksOCBAQCBuYW1lc3BhY2UgS0pTIHsNCiAgICAgdm9pZCB1cGRhdGVMYXlvdXQoYm9v
bCBpZ25vcmVTdHlsZXNoZWV0cyA9IHRydWUpIGNvbnN0Ow0KIA0KICAgICBRR3VhcmRlZFB0cjxL
SFRNTFBhcnQ+IG1fcGFydDsNCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIE9iamVj
dEltcCAqbV93aWRnZXQ7DQogICAgIE9iamVjdEltcCAqbV93aWRnZXRNZW51Ow0KLSNlbmRpZg0K
ICAgICBTY3JlZW4gKnNjcmVlbjsNCiAgICAgSGlzdG9yeSAqaGlzdG9yeTsNCiAgICAgRnJhbWVB
cnJheSAqZnJhbWVzOw0KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCShyZXZpc2lvbiAyMTk3NykN
CisrKyBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDEz
MSw3ICs0MTMxLDYgQEAgdm9pZCBLV1FLSFRNTFBhcnQ6OnByZXBhcmVGb3JVc2VyQWN0aW9uKA0K
ICAgICBfc3VibWl0dGVkRm9ybVVSTCA9IEtVUkwoKTsNCiB9DQogDQotI2lmZGVmICBSRF9CUk9X
U0VSX1dJREdFVFMNCiBLSlM6Ok9iamVjdEltcCogS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnZXRP
YmplY3QoS0pTOjpFeGVjU3RhdGUqIGV4ZWMpDQogew0KICAgICBLSlM6Ok9iamVjdEltcCogb2Jq
SW1wbCA9IHN0YXRpY19jYXN0PEtKUzo6T2JqZWN0SW1wICo+KF9icmlkZ2UtPkNsaWVudCgpLmNy
ZWF0ZVdpZGdldE9iamVjdCgodm9pZCogKWV4ZWMpKTsNCkBAIC00MTQ3LDcgKzQxNDYsNiBAQCBL
SlM6Ok9iamVjdEltcCogS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnDQogICAgIEtKUzo6T2JqZWN0
SW1wKiBvYmpJbXBsID0gc3RhdGljX2Nhc3Q8S0pTOjpPYmplY3RJbXAgKj4oX2JyaWRnZS0+Q2xp
ZW50KCkuY3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoKHZvaWQqIClleGVjKSk7DQogICAgIHJl
dHVybiBvYmpJbXBsOw0KIH0NCi0jZW5kaWYNCiANCiBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSAq
S1dRS0hUTUxQYXJ0OjpnZXRFbWJlZEluc3RhbmNlRm9yVmlldyAoTVdlYkNvcmVXaWRnZXQgKmFW
aWV3KQ0KIHsNCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5oCShyZXZpc2lvbiAyMTk3NykNCisrKyBXZWJD
b3JlL2t3cS9LV1FLSFRNTFBhcnQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIyNywxMSArMjI3LDkg
QEAgcHVibGljOg0KICAgICBib29sIEtleUV2ZW50KGNvbnN0IFRLZXlFdmVudCYgZXZlbnQsIGJv
b2wgdXApOw0KICAgICAvL2Jvb2wgTGFzdEV2ZW50SXNNb3VzZVVwKCk7DQogDQotI2lmZGVmICBS
RF9CUk9XU0VSX1dJREdFVFMNCiAgICAgS0pTOjpPYmplY3RJbXAqIGNyZWF0ZVdpZGdldE9iamVj
dChLSlM6OkV4ZWNTdGF0ZSogZXhlYykgOw0KICAgICBLSlM6Ok9iamVjdEltcCogY3JlYXRlV2lk
Z2V0TWVudU9iamVjdChLSlM6OkV4ZWNTdGF0ZSogZXhlYykgOw0KICAgICBLSlM6Ok9iamVjdElt
cCogY3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoS0pTOjpFeGVjU3RhdGUqIGV4ZWMpIDsNCi0j
ZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAgICAgLy9NZXRob2RzIHRvIHVwZGF0ZSBm
b2N1c2FibGUgbm9kZSBsaXN0DQogICAgIHZvaWQgdXBkYXRlRm9jdXNhYmxlUmVjdExpc3QoKTsN
CkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxv
ZwkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0K
QEAgLTEsMyArMSw1NiBAQA0KK3czbGl1LCByZXZpZXdlZCBieSBTYWNoaW4NCisgREVTQzogMy4y
IHdpZGdldCBmbGFnIGNoYW5nZXMuDQorIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzOTM5DQorDQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHA6
DQorICAgICAgICAoQ0JyQ3RsOjpIYW5kbGVDb21tYW5kTCk6DQorICAgICAgICAoQ0JyQ3RsOjpB
ZGRPcHRpb25NZW51SXRlbXNMKToNCisgICAgICAgIChDQnJDdGw6OkNyZWF0ZVdpZGdldEV4dGVu
c2lvbkwpOg0KKyAgICAgICAgKiBCcm93c2VyQ29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9s
RmlsZUlucHV0U2tpbi5jcHA6DQorICAgICAgICAoQ0Zvcm1GaWxlSW5wdXRTa2luOjpBY3RpdmF0
ZUwpOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9pbmMvV2ViS2l0Q29udHJvbC5oOg0KKyAgICAg
ICAgKENXZWJLaXRDb250cm9sOjpXaWRnZXRFeHRlbnNpb24pOg0KKyAgICAgICAgKiBCcm93c2Vy
Vmlldy9pbmMvd2Via2l0YnJpZGdlLmg6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJL
aXRDb250cm9sLmNwcDoNCisgICAgICAgIChDV2ViS2l0T09NTm90aWZpZXI6Ok5vdGlmeSk6DQor
ICAgICAgICAoQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6Q1N0YXRpY09iamVjdENvbnRhaW5lcik6
DQorICAgICAgICAoQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6Rm9ybURhdGFNYW5hZ2VySGFuZGxl
ckwpOg0KKyAgICAgICAgKENTdGF0aWNPYmplY3RDb250YWluZXI6OkRvd25sb2FkT2JzZXJ2ZXIp
Og0KKyAgICAgICAgKENTdGF0aWNPYmplY3RDb250YWluZXI6OkluaXRpYWxpemVGYWN0b3J5T2Jq
ZWN0c0wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpDV2ViS2l0Q29udHJvbCk6DQorICAg
ICAgICAoQ1dlYktpdENvbnRyb2w6OkNvbnN0cnVjdEwpOg0KKyAgICAgICAgKENXZWJLaXRDb250
cm9sOjp+Q1dlYktpdENvbnRyb2wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpHZXRCcm93
c2VyU2V0dGluZ0wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpQYWdlSW5mb0xDKToNCisg
ICAgICAgIChDV2ViS2l0Q29udHJvbDo6SGFuZGxlTG9hZGVyQ29tbWFuZEwpOg0KKyAgICAgICAg
KENXZWJLaXRDb250cm9sOjpTeW5jQ2FuY2VsTCk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6
Okhpc3RvcnlWaWV3KToNCisgICAgICAgIChDV2ViS2l0Q29udHJvbDo6SW5jcmVtZW50UHJvZ3Jl
c3NGb3JNb3JlRGF0YSk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkZpbmFsUHJvZ3Jlc3ND
b21wbGV0ZSk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkZvcmVncm91bmRFdmVudCk6DQor
ICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkNyZWF0ZVdpZGdldEV4dGVuc2lvbkwpOg0KKyAgICAg
ICAgKiBCcm93c2VyVmlldy9zcmMvV2ViS2l0Vmlldy5jcHA6DQorICAgICAgICAoQ1dlYktpdFZp
ZXc6Ok1ha2VWaXNpYmxlKToNCisgICAgICAgIChDV2ViS2l0Vmlldzo6RHJhdyk6DQorICAgICAg
ICAqIEJyb3dzZXJWaWV3L3NyYy93ZWJraXRicmlkZ2UuY3BwOg0KKyAgICAgICAgKENXZWJLaXRC
cmlkZ2U6OmNyZWF0ZVdpZGdldE1lbnVJdGVtT2JqZWN0KToNCisgICAgICAgICogUGx1Z2luL2lu
Yy9QbHVnaW5IYW5kbGVyLmg6DQorICAgICAgICAqIFBsdWdpbi9pbmMvUGx1Z2luU2tpbi5oOg0K
KyAgICAgICAgKiBQbHVnaW4vaW5jL1BsdWdpbldpbi5oOg0KKyAgICAgICAgKiBQbHVnaW4vaW5j
L25wYXBpLmg6DQorICAgICAgICAqIFBsdWdpbi9zcmMvTnBuSW1wbGVtZW50YXRpb24uY3BwOg0K
KyAgICAgICAgKE5wbkdldFZhbHVlKToNCisgICAgICAgICogUGx1Z2luL3NyYy9QbHVnaW5IYW5k
bGVyLmNwcDoNCisgICAgICAgICogUGx1Z2luL3NyYy9QbHVnaW5Ta2luLmNwcDoNCisgICAgICAg
IChDUGx1Z2luU2tpbjo6Q29uc3RydWN0TCk6DQorICAgICAgICAoQ1BsdWdpblNraW46OlBsdWdp
blNjcmlwdGFibGVPYmplY3QpOg0KKyAgICAgICAgKiBQbHVnaW4vc3JjL1BsdWdpbldpbi5jcHA6
DQorICAgICAgICAoQ1BsdWdpbldpbjo6UGx1Z2luU2NyaXB0YWJsZU9iamVjdCk6DQorICAgICAg
ICAqIGdyb3VwL0Jyb3dzZXJWaWV3Lm1tcDoNCisgICAgICAgICogZ3JvdXAvUGx1Z2luLm1tcDoN
CisgICAgICAgICogZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGk6DQorICAgICAgICAqIGdyb3VwL3dl
YmtpdC5tbXA6DQorDQogeWFkYXZhbGwsIHJldmlld2VkIGJ5IDx5b25nanVuLnpoYW5nQG5va2lh
LmNvbT4NCiAgREVTQzogUmVtb3ZlIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiBVSSBSU1Mg
ZmlsZSBhbmQgZW5naW5lDQogIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzOTk0DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvc3JjL0JyQ3RsLmNwcAkocmV2aXNpb24g
MjE5NzcpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHAJKHdvcmtpbmcg
Y29weSkNCkBAIC04Miw5ICs4Miw3IEBADQogI2luY2x1ZGUgPEFrbnNEcmF3VXRpbHMuaD4NCiAj
aW5jbHVkZSA8RXNjYXBlVXRpbHMuaD4NCiAjaW5jbHVkZSAiTG9hZGVyQ29udGFpbmVyLmgiDQot
I2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAjaW5jbHVkZSAiV2lkZ2V0RXh0ZW5zaW9uLmgi
DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogI2luY2x1ZGUgIlNtYXJ0TGlua0hh
bmRsZXIuaCINCiANCkBAIC05MTAsNyArOTA4LDYgQEAgRVhQT1JUX0Mgdm9pZCBDQnJDdGw6Okhh
bmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICBUUGx1Z2luQ29udHJvbCBwbHVnaW5D
b250cm9sKCppV2ViS2l0Q29udHJvbCk7DQogICAgICAgICAgICAgICAgIHBsdWdpbkNvbnRyb2wu
SGFuZGxlUGx1Z2luQ29tbWFuZEwoYUNvbW1hbmQpOw0KICAgICAgICAgICAgICAgICB9DQotI2lm
ZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAg
ICAgIHsNCiAgICAgICAgICAgICAgICAgQ1dpZGdldEV4dGVuc2lvbiogd2RndEV4dCA9IGlXZWJL
aXRDb250cm9sLT5XaWRnZXRFeHRlbnNpb24oKTsNCkBAIC05MjAsNyArOTE3LDYgQEAgRVhQT1JU
X0Mgdm9pZCBDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICAgICAg
fQ0KICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgfQ0KLSNlbmRpZiAv
L1JEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0N
CiAgICAgICAgIH0gICAvLyBlbmQgb2Ygc3dpdGNoDQpAQCAtMTE1MSwxMyArMTE0NywxMSBAQCBF
WFBPUlRfQyB2b2lkIENCckN0bDo6QWRkT3B0aW9uTWVudUl0ZW1zDQogICAgIC8vIEJhc2Ugd2Un
cmUgdXNpbmcgZm9yIHRoZSBwbHVnLWlucw0KICAgICBUUGx1Z2luQ29udHJvbCBwbHVnaW5Db250
cm9sKCppV2ViS2l0Q29udHJvbCk7DQogICAgIHBsdWdpbkNvbnRyb2wuQWRkUGx1Z2luT3B0aW9u
TWVudUl0ZW1zTChhTWVudVBhbmUsIFRCckN0bERlZnM6OkVDb21tYW5kSWRQbHVnaW5CYXNlLCBh
QWZ0ZXIpOw0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIENXaWRnZXRFeHRlbnNp
b24qIHdkZ3RFeHQgPSBpV2ViS2l0Q29udHJvbC0+V2lkZ2V0RXh0ZW5zaW9uKCk7DQogICAgIGlm
ICggd2RndEV4dCApDQogICAgICAgICB7DQogICAgICAgICB3ZGd0RXh0LT5BZGRPcHRpb25NZW51
SXRlbXNMKCBhTWVudVBhbmUsIGFSZXNvdXJjZUlkICk7DQogICAgICAgICB9DQotI2VuZGlmIC8v
UkRfQlJPV1NFUl9XSURHRVRTDQogICAgIH0NCiANCiANCkBAIC0yNTMxLDExICsyNTI1LDcgQEAg
dm9pZCBDQnJDdGw6OkhhbmRsZVJlc291cmNlQ2hhbmdlKCBUSW50IA0KIC8vDQogRVhQT1JUX0Mg
TVdpZGdldEV4dGVuc2lvbiogQ0JyQ3RsOjpDcmVhdGVXaWRnZXRFeHRlbnNpb25MKE1XaWRnZXRD
YWxsYmFjayYgYVdpZGdldENhbGxiYWNrKQ0KICAgICB7DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICAgcmV0dXJuIGlXZWJLaXRDb250cm9sLT5DcmVhdGVXaWRnZXRFeHRlbnNpb25M
KGFXaWRnZXRDYWxsYmFjayk7DQotI2Vsc2UNCi0gICAgcmV0dXJuIE5VTEw7DQotI2VuZGlmDQog
ICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSW5kZXg6IFdlYktpdC9Ccm93c2Vy
Q29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJ
bnB1dFNraW4uY3BwCShyZXZpc2lvbiAyMTk3NykNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9y
bWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uY3BwCSh3b3JraW5nIGNvcHkpDQpA
QCAtNjMsMTAgKzYzLDcgQEANCiAjaW5jbHVkZSAiV2ViS2l0Vmlldy5oIg0KICNpbmNsdWRlICJX
ZWJLaXRDb250cm9sLmgiDQogI2luY2x1ZGUgIldlYktpdEJyaWRnZS5oIg0KLSNpZmRlZiBSRF9C
Uk9XU0VSX1dJREdFVFMNCiAjaW5jbHVkZSAiV2lkZ2V0RXh0ZW5zaW9uLmgiDQotI2VuZGlmDQot
DQogDQogdm9pZCBCckN0bFBhbmljKFRJbnQpOw0KIA0KQEAgLTM4Miw3ICszNzksNiBAQCB2b2lk
IENGb3JtRmlsZUlucHV0U2tpbjo6QWN0aXZhdGVMKCkNCiAgICAgd2Via2l0RnJhbWUtPldlYktp
dFZpZXcoKS5TZXREaWFsb2dMYXVuY2hlZChFVHJ1ZSk7DQogDQogDQotI2lmZGVmICBSRF9CUk9X
U0VSX1dJREdFVFMNCiAgICAgLy8gSWYgV2lkZ2V0IG1vZGUgYW5kIEFjY2VwdGVkIE1pbWUgVHlw
ZSBoYXMgYmVlbiBzZXQNCiAgICAgaWYgKHdlYktpdENvbnRyb2wtPldpZGdldEV4dGVuc2lvbigp
ICYmDQogICAgICAgICBpQWNjZXB0ZWRNaW1lVHlwZSAmJiBpQWNjZXB0ZWRNaW1lVHlwZS0+TGVu
Z3RoKCkpDQpAQCAtMzk1LDEwICszOTEsNiBAQCB2b2lkIENGb3JtRmlsZUlucHV0U2tpbjo6QWN0
aXZhdGVMKCkNCiAgICAgICAgIH0NCiAgICAgLy8gSWYgYSByZWNlbnQgcGF0aCBleGlzdHMsIHVz
ZSB0aGF0IGFzIHRoZSBzdGFydGluZyBwb2ludC4NCiAgICAgZWxzZSBpZiAoIHB0ck1vc3RSZWNl
bnRQYXRoLkxlbmd0aCgpICkNCi0jZWxzZQ0KLSAgICAvLyBJZiBhIHJlY2VudCBwYXRoIGV4aXN0
cywgdXNlIHRoYXQgYXMgdGhlIHN0YXJ0aW5nIHBvaW50Lg0KLSAgICBpZiAoIHB0ck1vc3RSZWNl
bnRQYXRoLkxlbmd0aCgpICkNCi0jZW5kaWYNCiAgICAgICAgIHsNCiAgICAgICAgIFRQYXJzZVB0
ckMgZmlsZU5hbWVQYXJzZXIoIHB0ck1vc3RSZWNlbnRQYXRoICk7DQogICAgICAgICAvLyBHZXQg
ZHJpdmUNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdENvbnRyb2wuaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2ViS2l0Q29udHJvbC5oCShyZXZp
c2lvbiAyMTk3NykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdENvbnRyb2wuaAko
d29ya2luZyBjb3B5KQ0KQEAgLTkzLDkgKzkzLDcgQEAgY2xhc3MgQ1N0YXRpY0ltYWdlRGVjb2Rl
cjsNCiBjbGFzcyBDUGx1Z2luQ29udGVudFBsYXllcjsNCiBjbGFzcyBDV2ViS2l0T09NTm90aWZp
ZXI7DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBjbGFzcyBDV2lkZ2V0RXh0ZW5z
aW9uOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vIENMQVNTIERFQ0xBUkFU
SU9ODQogLyoqDQpAQCAtMzMwLDcgKzMyOCw2IEBAIGNsYXNzIENXZWJLaXRDb250cm9sIDogcHVi
bGljIENCYXNlDQogICAgICAgICAqLw0KICAgICAgICAgQ1dlYktpdFZpZXcqIENyZWF0ZVdpbmRv
dyhjb25zdCBURGVzQyYgYUZyYW1lTmFtZSxUQm9vbCBhVXNlckluaXRpYXRlZCk7DQogDQotI2lm
ZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBDcmVhdGVX
aWRnZXRFeHRlbnNpb24NCiAgICAgICAgICogUHVycG9zZTogQ3JlYXRlcyB0aGUgd2lkZ2V0IGV4
dGVuc2lvbiBvYmplY3QNCkBAIC0zMzksNyArMzM2LDYgQEAgY2xhc3MgQ1dlYktpdENvbnRyb2wg
OiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICogQHJldHVybiBNV2lkZ2V0RXh0ZW5zaW9uKg0KICAg
ICAgICAgKi8NCiAgICAgICAgIE1XaWRnZXRFeHRlbnNpb24qIENyZWF0ZVdpZGdldEV4dGVuc2lv
bkwoTVdpZGdldENhbGxiYWNrJiBhV2lkZ2V0Q2FsbGJhY2spIDsNCi0jZW5kaWYgLy9SRF9CUk9X
U0VSX1dJREdFVFMNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBGaW5kV2luZG93TmFtZWQN
CkBAIC01MjIsMTQgKzUxOCwxMiBAQCBjbGFzcyBDV2ViS2l0Q29udHJvbCA6IHB1YmxpYyBDQmFz
ZQ0KICAgICAgICAgKi8NCiAgICAgICAgIENCckN0bCYgQnJDdGwoKSBjb25zdCB7IHJldHVybiAq
aUJyQ3RsOyB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0K
ICAgICAgICAgKiBBc3NvY2lhdGVkIGJyb3dzZXIgY29udHJvbA0KICAgICAgICAgKiBAc2luY2Ug
My4wDQogICAgICAgICAqIEByZXR1cm4gQSByZWZlcmVuY2UgdG8gQnJDdGwNCiAgICAgICAgICov
DQogICAgICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiBXaWRnZXRFeHRlbnNpb24oKSBjb25zdCB7IHJl
dHVybiBpV2lkZ2V0RXh0ZW5zaW9uOyB9DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQog
DQogICAgICAgICAvKioNCiAgICAgICAgICogUmVzb3VyY2UgbG9hZGVyIHNldHRpbmdzIGNvbnRy
b2xsZXINCkBAIC05MzgsOSArOTMyLDcgQEAgY2xhc3MgQ1dlYktpdENvbnRyb2wgOiBwdWJsaWMg
Q0Jhc2UNCiANCiAgICAgICAgIHN0YXRpYyBUSW50IGlEZWZhdWx0Q2hhcnNldDsNCiANCi0jaWZk
ZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgQ1dpZGdldEV4dGVuc2lvbiogaVdpZGdl
dEV4dGVuc2lvbjsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgfTsNCiANCiAj
ZW5kaWYgICAgICAvLyBXRUJLSVRDT05UUk9MX0gNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcv
aW5jL3dlYmtpdGJyaWRnZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2lu
Yy93ZWJraXRicmlkZ2UuaAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3
L2luYy93ZWJraXRicmlkZ2UuaAkod29ya2luZyBjb3B5KQ0KQEAgLTkxLDcgKzkxLDYgQEAgY2xh
c3MgQ1dlYktpdEJyaWRnZSA6IHB1YmxpYyBDQmFzZSwgcHVibA0KIA0KICAgICBwdWJsaWM6IC8v
IE1ldGhvZHMgRnJvbSBNV2ViQ2xpZW50QnJpZGdlDQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBjcmVhdGVXaWRnZXRPYmplY3QNCiAgICAg
ICAgICogRnJvbSBNV2ViQ2xpZW50QnJpZGdlDQpAQCAtMTE4LDggKzExNyw2IEBAIGNsYXNzIENX
ZWJLaXRCcmlkZ2UgOiBwdWJsaWMgQ0Jhc2UsIHB1YmwNCiAgICAgICAgICogQHJldHVybiB2b2lk
Kg0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQqIGNyZWF0ZVdpZGdldE1lbnVJdGVtT2JqZWN0
KCB2b2lkKiBleGVjICk7DQotDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogICAg
ICAgICAvKioNCiAgICAgICAgICogQ2hpbGRGcmFtZXMNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZp
ZXcvc3JjL1dlYktpdENvbnRyb2wuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJW
aWV3L3NyYy9XZWJLaXRDb250cm9sLmNwcAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L0Jy
b3dzZXJWaWV3L3NyYy9XZWJLaXRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTgzLDEw
ICs4Myw5IEBADQogI2luY2x1ZGUgIkh0dHBDYWNoZU1hbmFnZXIuaCINCiAjaW5jbHVkZSAiU3Rh
dGljSW1hZ2VEZWNvZGVyLmgiDQogI2luY2x1ZGUgPEFrbkluZm9Qb3B1cE5vdGVDb250cm9sbGVy
Lmg+DQorI2luY2x1ZGUgPEZlYXRNZ3IuaD4NCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VU
Uw0KICNpbmNsdWRlICJXaWRnZXRFeHRlbnNpb24uaCINCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJ
REdFVFMNCiANCiAjaW5jbHVkZSAiUGx1Z2luQ29udGVudFBsYXllci5oIg0KICNpbmNsdWRlICJQ
bHVnaW5Ta2luLmgiDQpAQCAtMjYyLDE0ICsyNjEsMTQgQEAgY2xhc3MgQ1dlYktpdE9PTU5vdGlm
aWVyIDogcHVibGljIE1PT01Obw0KICAgICBwdWJsaWM6DQogICAgICAgICBzdGF0aWMgQ1dlYktp
dE9PTU5vdGlmaWVyKiBOZXdMKCk7DQogICAgICAgICB+Q1dlYktpdE9PTU5vdGlmaWVyKCk7DQot
ICAgICAgICANCisNCiAgICAgICAgIC8vIGZyb20gTU9PTU5vdGlmaWVyDQogICAgICAgICBUSW50
IE5vdGlmeSgpOw0KLSAgICAgICAgDQorDQogICAgIHByaXZhdGU6DQogICAgICAgICBDQWtuSW5m
b1BvcHVwTm90ZUNvbnRyb2xsZXIqIGlJbmZvTm90ZTsNCiAgICAgfTsNCi0gICAgDQorDQogQ1dl
YktpdE9PTU5vdGlmaWVyKiBDV2ViS2l0T09NTm90aWZpZXI6Ok5ld0woKQ0KICAgICB7DQogICAg
IENXZWJLaXRPT01Ob3RpZmllciogc2VsZiA9IG5ldyAoRUxlYXZlKSBDV2ViS2l0T09NTm90aWZp
ZXI7DQpAQCAtMjg2LDE1ICsyODUsMTUgQEAgQ1dlYktpdE9PTU5vdGlmaWVyOjp+Q1dlYktpdE9P
TU5vdGlmaWVyKA0KIA0KIFRJbnQgQ1dlYktpdE9PTU5vdGlmaWVyOjpOb3RpZnkoKQ0KICAgICB7
DQotICAgIFRSQVBfSUdOT1JFKCANCisgICAgVFJBUF9JR05PUkUoDQogICAgICAgICBIQnVmQyog
c3RyID0gU3RyaW5nTG9hZGVyOjpMb2FkTEMoIFJfUVROX0JST1dTRVJfSU5GT05PVEVfT1VUX09G
X01FTU9SWSApOw0KICAgICAgICAgaUluZm9Ob3RlLT5TZXRUZXh0TCggKnN0ciApOw0KICAgICAg
ICAgaUluZm9Ob3RlLT5TZXRUaW1lRGVsYXlCZWZvcmVTaG93KCAwICk7DQogICAgICAgICBpSW5m
b05vdGUtPlNldFRpbWVQb3B1cEluVmlldyggNDAwMCApOyAgICAvLyA0IHNlY29uZHMNCi0gICAg
ICAgIGlJbmZvTm90ZS0+U2hvd0luZm9Qb3B1cE5vdGUoKTsgICAgICAgICAgICANCisgICAgICAg
IGlJbmZvTm90ZS0+U2hvd0luZm9Qb3B1cE5vdGUoKTsNCiAgICAgICAgIENsZWFudXBTdGFjazo6
UG9wQW5kRGVzdHJveSgpOw0KLSAgICAgICAgKSAgIA0KLSAgICByZXR1cm4gMDsgICAgICAgICAg
ICAgICAgICAgICANCisgICAgICAgICkNCisgICAgcmV0dXJuIDA7DQogICAgIH0NCiAjZW5kaWYN
CiANCkBAIC0zMTcsOCArMzE2LDggQEAgQ1N0YXRpY09iamVjdENvbnRhaW5lciYgQ1N0YXRpY09i
amVjdENvbg0KICAgICAgICB9DQogICAgIHJldHVybiAqaUluc3RhbmNlOw0KICAgICB9DQotICAg
IA0KLSAgICANCisNCisNCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDU3RhdGljT2Jq
ZWN0Q29udGFpbmVyOjpDU3RhdGljT2JqZWN0Q29udGFpbmVyDQogLy8gY29uc3RydWN0b3INCkBA
IC0zMjYsNyArMzI1LDcgQEAgQ1N0YXRpY09iamVjdENvbnRhaW5lciYgQ1N0YXRpY09iamVjdENv
bg0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENTdGF0aWNPYmplY3RDb250YWluZXI6OkNT
dGF0aWNPYmplY3RDb250YWluZXIoKQ0KICAgICB7DQotI2lmZGVmIF9fT09NX18gICAgICAgIA0K
KyNpZmRlZiBfX09PTV9fDQogICAgIFRSQVBfSUdOT1JFKGlPT01Ob3RpZmllciA9IENXZWJLaXRP
T01Ob3RpZmllcjo6TmV3TCgpKTsNCiAgICAgTWVtb3J5TWFuYWdlcjo6U2V0Tm90aWZpZXIoIGlP
T01Ob3RpZmllciApOw0KICNlbmRpZg0KQEAgLTQ1Niw3ICs0NTUsNyBAQCBDRm9ybURhdGFNYW5h
Z2VyKiBDU3RhdGljT2JqZWN0Q29udGFpbmVyDQogICAgIGlmIChhQnJDdGwuQ2FwYWJpbGl0aWVz
KCkgJiBUQnJDdGxEZWZzOjpFQ2FwYWJpbGl0eUF1dG9Gb3JtRmlsbCAmJiAhaUZvcm1EYXRhTWFu
YWdlcikNCiAgICAgICAgIHsNCiAgICAgICAgIC8vIENyZWF0ZSBkYXRhIG1hbmFnZXIgZm9yIGF1
dG8gZm9ybSBmaWxsDQotICAgICAgICBpRm9ybURhdGFNYW5hZ2VyID0gQ0Zvcm1EYXRhTWFuYWdl
cjo6TmV3TChhQnJDdGwuQnJDdGxEaWFsb2dzUHJvdmlkZXIoKSwgDQorICAgICAgICBpRm9ybURh
dGFNYW5hZ2VyID0gQ0Zvcm1EYXRhTWFuYWdlcjo6TmV3TChhQnJDdGwuQnJDdGxEaWFsb2dzUHJv
dmlkZXIoKSwNCiAgICAgICAgICAgICBhQnJDdGwuV2ViS2l0Q29udHJvbCgpLT5HZXRCcm93c2Vy
U2V0dGluZ0woVEJyQ3RsRGVmczo6RVNldHRpbmdzQXV0b0Zvcm1GaWxsRW5hYmxlZCkgKTsNCiAg
ICAgICAgIH0NCiAgICAgcmV0dXJuIGlGb3JtRGF0YU1hbmFnZXI7DQpAQCAtNTMxLDcgKzUzMCw3
IEBAIENCckN0bERvd25sb2FkT2JzZXJ2ZXImIENTdGF0aWNPYmplY3RDb24NCiAgICAgew0KICAg
ICBpZiggIWlEb3dubG9hZE9ic2VydmVyICkNCiAgICAgICAgIHsNCi0gICAgICAgIC8vIGluaXQg
DQorICAgICAgICAvLyBpbml0DQogICAgICAgICBpRG93bmxvYWRPYnNlcnZlciA9IG5ldyAoRUxl
YXZlKSBDQnJDdGxEb3dubG9hZE9ic2VydmVyOw0KICAgICAgICAgfQ0KICAgICByZXR1cm4gKmlE
b3dubG9hZE9ic2VydmVyOw0KQEAgLTU4OCw3ICs1ODcsNyBAQCB2b2lkIENTdGF0aWNPYmplY3RD
b250YWluZXI6OkluaXRpYWxpemVGDQogICAgIFBsdWdpbkhhbmRsZXJMKGFCckN0bCk7DQogICAg
IC8vDQogICAgIExvYWRlckNvbnRhaW5lckwoIGFCckN0bCApOw0KLSAgICBEb3dubG9hZE9ic2Vy
dmVyKCk7ICAgIA0KKyAgICBEb3dubG9hZE9ic2VydmVyKCk7DQogICAgIC8vIHNhdmUgcGFnZXMg
Y2FwYWJpbGl0eQ0KICAgICBpSW1nUmVuZGVyZXJGYWN0b3J5LT5TZXRTYXZlSW1hZ2VEYXRhKCBp
TG9hZGVyQ29udGFpbmVyLT5DYXBhYmlsaXRpZXMoKSAmIFRCckN0bERlZnM6OkVDYXBhYmlsaXR5
U2F2ZWRQYWdlICk7DQogDQpAQCAtNjEzLDcgKzYxMiw3IEBAIENXZWJLaXRDb250cm9sOjpDV2Vi
S2l0Q29udHJvbCgNCiAgICAgQ0JyQ3RsJiBhQnJDdGwgKQ0KICAgICA6IGlCckN0bCggJmFCckN0
bCApLA0KICAgICBpQ2FjaGVNb2RlKCBUQnJDdGxEZWZzOjpFQ2FjaGVNb2RlTm9ybWFsICksDQot
ICAgIGlIZWFkZXJBcnJpdmVkKEVGYWxzZSksICAgIA0KKyAgICBpSGVhZGVyQXJyaXZlZChFRmFs
c2UpLA0KICAgICBpSW5pdGlhbFByb2dyZXNzUGVyY2VudGFnZSggS01pbkluaXRpYWxQcm9ncmVz
c1BlcmNlbnRhZ2UgKQ0KICAgICB7DQogICAgIH0NCkBAIC02NDUsNyArNjQ0LDcgQEAgdm9pZCBD
V2ViS2l0Q29udHJvbDo6Q29uc3RydWN0TCgpDQogICAgIGxvYWRlckNvbnRhaW5lci0+U2V0Q29v
a2llc0VuYWJsZWQoIEdldEJyb3dzZXJTZXR0aW5nTCggVEJyQ3RsRGVmczo6RVNldHRpbmdzQ29v
a2llc0VuYWJsZWQgKSApOw0KICAgICAvLw0KICAgICBsb2FkZXJDb250YWluZXItPlNldERvd25s
b2Fkc09wZW5FbmFibGVkKCBHZXRCcm93c2VyU2V0dGluZ0woIFRCckN0bERlZnM6OkVTZXR0aW5n
c0F1dG9PcGVuRG93bmxvYWRzICkgKTsNCi0gICAgLy8gICAgDQorICAgIC8vDQogICAgIGxvYWRl
ckNvbnRhaW5lci0+U2V0QnJvd3NlckVtYmVkZGVkKCBHZXRCcm93c2VyU2V0dGluZ0woIFRCckN0
bERlZnM6OkVTZXR0aW5nc0VtYmVkZGVkICkgKTsNCiAgICAgLy8NCiAgICAgbG9hZGVyQ29udGFp
bmVyLT5TZXRMb2FkT2JzZXJ2ZXJzKCAqKGlCckN0bC0+QnJDdGxTcGVjaWFsTG9hZE9ic2VydmVy
KCkpLCAqKGlCckN0bC0+QnJDdGxEb3dubG9hZE9ic2VydmVyKCkpLA0KQEAgLTY2MSw3ICs2NjAs
NyBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpDb25zdHJ1Y3RMKCkNCiAgICAgICAgIHsNCiAgICAg
ICAgIENSZXBvc2l0b3J5KiByZXAgPSBDUmVwb3NpdG9yeTo6TmV3TCggS0NSVWlkQnJvd3NlciAp
Ow0KICAgICAgICAgcmVwLT5HZXQoIEtCcm93c2VyRGVmYXVsdENoYXJzZXQsIGlEZWZhdWx0Q2hh
cnNldCApOw0KLSAgICAgICAgZGVsZXRlIHJlcDsgDQorICAgICAgICBkZWxldGUgcmVwOw0KICAg
ICAgICAgfQ0KICAgICB9DQogDQpAQCAtNzIxLDExICs3MjAsOSBAQCBDV2ViS2l0Q29udHJvbDo6
fkNXZWJLaXRDb250cm9sKCkNCiANCiAgICAgLy8gY2xlYXVwIHRoZSBzdGF0aWMgb2JqZWN0DQog
ICAgIENTdGF0aWNPYmplY3RDb250YWluZXI6Okluc3RhbmNlKCkuRGVyZWYoKTsNCi0jaWZkZWYg
IFJEX0JST1dTRVJfV0lER0VUUw0KICAgICBkZWxldGUgaVdpZGdldEV4dGVuc2lvbjsNCi0jZW5k
aWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgfQ0KLSAgICANCisNCiANCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KIC8vIENXZWJLaXRDb250cm9sOjpTZXRCcm93c2VyU2V0dGluZw0KQEAg
LTg0NCw3ICs4NDEsNyBAQCBUVWludCBDV2ViS2l0Q29udHJvbDo6R2V0QnJvd3NlclNldHRpbmdM
DQogICAgICAgICAgICAgICAgIFRCckN0bERlZnM6OlRCckN0bFNldHRpbmdzKCBhU2V0dGluZyAp
KS5Cb29sVmFsdWUoKTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICB9DQotICAg
ICAgICAgICAgDQorDQogICAgICAgICAvLyBJbnRlZ2VyIHNldHRpbmcgdmFsdWVzDQogICAgICAg
ICBjYXNlIFRCckN0bERlZnM6OkVTZXR0aW5nc0ZvbnRTaXplOg0KICAgICAgICAgY2FzZSBUQnJD
dGxEZWZzOjpFU2V0dGluZ3NDaGFyYWN0ZXJzZXQ6DQpAQCAtOTQ3LDggKzk0NCw4IEBAIEhCdWZD
KiBDV2ViS2l0Q29udHJvbDo6UGFnZUluZm9MQygNCiAgICAgICAgICAgICBicmVhazsNCiAgICAg
ICAgICAgICB9DQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVQYWdlSW5mb1NhdmVkUGFnZToN
Ci0gICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgDQotICAgICAgICAgICAgcGFn
ZUluZm8gPSBHZW5lcmF0ZVNhdmVkUGFnZUwoKTsgICAgICAgICAgICAgICAgICAgDQorICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgIHBhZ2VJbmZvID0gR2VuZXJhdGVTYXZlZFBhZ2VMKCk7DQog
ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgY2FzZSBUQnJDdGxE
ZWZzOjpFUGFnZUluZm9Gb2N1c2VkTm9kZVVybDoNCkBAIC0xMTU4LDcgKzExNTUsNyBAQCB2b2lk
IENXZWJLaXRDb250cm9sOjpIYW5kbGVMb2FkZXJDb21tYW5kDQogICAgICAgICAgICAgQ1dlYktp
dEZyYW1lKiBmcmFtZSA9ICYoaVdlYktpdFZpZXctPk1haW5GcmFtZSgpKTsNCiAgICAgICAgICAg
ICB3aGlsZSggZnJhbWUgKQ0KICAgICAgICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIC8v
TGV0IGFsbCBjb25uZWN0aW9uIHRvIGNsb3NlIGZpcnN0IHRoZW4gRGVyZWYoKSANCisgICAgICAg
ICAgICAgICAgLy9MZXQgYWxsIGNvbm5lY3Rpb24gdG8gY2xvc2UgZmlyc3QgdGhlbiBEZXJlZigp
DQogICAgICAgICAgICAgICAgIC8vd2hlbiBkaXNjb25uZWN0ZWQgYnkgdGhlIHVzZXIuDQogICAg
ICAgICAgICAgICAgIENXZWJLaXRGcmFtZSogY3VycmVudEZyYW1lID0gZnJhbWU7DQogICAgICAg
ICAgICAgICAgIGN1cnJlbnRGcmFtZS0+UmVmKCk7DQpAQCAtMTE3NSwxMSArMTE3MiwxMSBAQCB2
b2lkIENXZWJLaXRDb250cm9sOjpIYW5kbGVMb2FkZXJDb21tYW5kDQogI2lmIFBST0dSRVNTX0xP
Rw0KICAgICAgICAgICAgIHdrRGVidWcoKTw8InVzZXIgY2FuY2VsIjw8Zmx1c2g7DQogI2VuZGlm
IC8vIFBST0dSRVNTX0xPRw0KLSAgICAgICAgICAgIC8vICAgICAgICANCisgICAgICAgICAgICAv
Lw0KICAgICAgICAgICAgIEZpbmFsUHJvZ3Jlc3NDb21wbGV0ZShhRXJyb3IpOw0KICAgICAgICAg
ICAgIGlDYW5jZWxUaW1lci0+Q2FuY2VsKCk7DQogICAgICAgICAgICAgaUNhbmNlbFRpbWVyLT5T
dGFydCggMCwgMCwgVENhbGxCYWNrKCAmQ2FuY2VsQ2FsbGJhY2ssIHRoaXMgKSApOw0KLSAgICAg
ICAgICAgIGlDYW5jZWxJblByb2dyZXNzID0gRVRydWU7ICAgICAgICAgICAgDQorICAgICAgICAg
ICAgaUNhbmNlbEluUHJvZ3Jlc3MgPSBFVHJ1ZTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAg
ICAgICAgICB9DQogICAgICAgICBkZWZhdWx0Og0KQEAgLTEyMDMsNyArMTIwMCw3IEBAIHZvaWQg
Q1dlYktpdENvbnRyb2w6OlN5bmNDYW5jZWxMKCkNCiAjZW5kaWYgLy8gUFJPR1JFU1NfTE9HDQog
ICAgIGlTeW5jQ2FuY2VsID0gRVRydWU7DQogICAgIGlDYW5jZWxUaW1lci0+Q2FuY2VsKCk7DQot
IA0KKw0KICAgICBpZiAoIGlXZWJLaXRWaWV3LT5UYWJiZWROYXZpZ2F0aW9uKCkpDQogICAgICAg
ICB7DQogICAgICAgICBUV2ViQ29yZUZvY3VzZWRFbGVtZW50VHlwZSBlbFR5cGUgPSBFV2ViQ29y
ZUVsZW1lbnROb25lOw0KQEAgLTEyMjEsNyArMTIxOCw3IEBAIHZvaWQgQ1dlYktpdENvbnRyb2w6
OlN5bmNDYW5jZWxMKCkNCiAgICAgICAgICAgICBpV2ViS2l0Vmlldy0+U2V0Rm9jdXNlZEVsZW1l
bnRUeXBlKCAoVEJyQ3RsRGVmczo6VEJyQ3RsRWxlbWVudFR5cGUpZWxUeXBlICk7DQogICAgICAg
ICAgICAgfQ0KICAgICAgICAgfQ0KLSAgICAgICAgDQorDQogICAgIENXZWJLaXRGcmFtZSogZnJh
bWUgPSAmKGlXZWJLaXRWaWV3LT5NYWluRnJhbWUoKSk7DQogICAgIHdoaWxlKCBmcmFtZSApDQog
ICAgICAgICB7DQpAQCAtMTIzMCw4ICsxMjI3LDggQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6U3lu
Y0NhbmNlbEwoKQ0KICAgICAgICAgLy8NCiAgICAgICAgIH0NCiAgICAgaVN5bmNDYW5jZWwgPSBF
RmFsc2U7DQotIA0KLSAgICBpSGlzdG9yeUNvbnRyb2xsZXItPkNhbmNlbFJlc2V0RW50cnlQb3Np
dGlvbkwoKTsgICAgDQorDQorICAgIGlIaXN0b3J5Q29udHJvbGxlci0+Q2FuY2VsUmVzZXRFbnRy
eVBvc2l0aW9uTCgpOw0KICAgICBpQnJDdGwtPkhhbmRsZUJyb3dzZXJMb2FkRXZlbnRMKCBUQnJD
dGxEZWZzOjpFRXZlbnRDb250ZW50RmluaXNoZWQsIDAsIDAgKTsNCiANCiAgICAgLy8gcmVsZWFz
ZSBjYW5jZWwgcHJvdGVjdGlvbiB1bmxlc3MgdGhlcmUgaXMgc29tZSBvdXRzdGFuZGluZw0KQEAg
LTE1MjMsNyArMTUyMCw3IEBAIENIaXN0b3J5VmlldyogQ1dlYktpdENvbnRyb2w6Okhpc3RvcnlW
aWUNCiAgICAgcmV0dXJuIGlIaXN0b3J5Q29udHJvbGxlci0+SGlzdG9yeVZpZXcoICk7DQogI2Vs
c2UNCiAgICAgcmV0dXJuIE5VTEw7DQotI2VuZGlmIA0KKyNlbmRpZg0KICAgICB9DQogDQogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xNjgzLDcgKzE2ODAsNyBAQCB2b2lkIENXZWJLaXRD
b250cm9sOjpJbmNyZW1lbnRQcm9ncmVzc0ZvDQogICAgIC8vIGNvbnRlbnQgc2l6ZSBtaW51cyB0
aGUgbGFzdCByZWNlaXZlZCBjb250ZW50IHNpemUNCiAgICAgVEludCBieXRlc1JlY2VpdmVkKCBh
UmVjZWl2ZWRDb250ZW50U2l6ZSAtIGl0ZW0uaUJ5dGVzUmVjZWl2ZWQgKTsNCiANCi0gICAgLy8g
QWRqdXN0IGlmIHRoZSB0b3RhbCByZWNlaXZlZCBieXRlcyBpcyBkaWZmZXJlbnQgdGhhbiBvdXIg
ZXN0aW1hdGUgDQorICAgIC8vIEFkanVzdCBpZiB0aGUgdG90YWwgcmVjZWl2ZWQgYnl0ZXMgaXMg
ZGlmZmVyZW50IHRoYW4gb3VyIGVzdGltYXRlDQogICAgIGl0ZW0uaUJ5dGVzUmVjZWl2ZWQgPSBh
UmVjZWl2ZWRDb250ZW50U2l6ZTsNCiAgICAgaWYgKCBpdGVtLmlCeXRlc1JlY2VpdmVkID4gaXRl
bS5pRXN0aW1hdGVkTGVuZ3RoICkNCiAgICAgICAgIHsNCkBAIC0xNjk5LDcgKzE2OTYsNyBAQCB2
b2lkIENXZWJLaXRDb250cm9sOjpJbmNyZW1lbnRQcm9ncmVzc0ZvDQogICAgIFRJbnQgbnVtUGVu
ZGluZ09yTG9hZGluZ1JlcXVlc3RzKCBpV2ViS2l0Vmlldy0+TWFpbkZyYW1lKCkuTnVtUGVuZGlu
Z09yTG9hZGluZ1JlcXVlc3RzKCkgKTsNCiAgICAgVEludCBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRp
bmdSZXF1ZXN0cyA9IEtXZWJQcm9ncmVzc0l0ZW1EZWZhdWx0RXN0aW1hdGVkTGVuZ3RoICoNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVBlbmRpbmdPckxv
YWRpbmdSZXF1ZXN0czsNCi0gICAgDQorDQogICAgIC8vIENhbGN1bGF0ZSB0aGUgYW1vdW50IHRv
IGluY3JlbWVudCB0aGUgcHJvZ3Jlc3MgYmFyDQogICAgIFRJbnQgcmVtYWluaW5nQnl0ZXMgPSAo
KCBpVG90YWxQYWdlQW5kUmVzb3VyY2VCeXRlc1RvTG9hZCArDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1ZXN0cyApIC0NCkBAIC0xODQ4
LDcgKzE4NDUsNyBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpGaW5hbFByb2dyZXNzQ29tcGxlDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsIDAgKTsNCiAgICAg
ICAgIH0NCiAgICAgUmVzZXRQcm9ncmVzcygpOw0KLSAgICAgICAgDQorDQogICAgIGlCckN0bC0+
SGFuZGxlQnJvd3NlckxvYWRFdmVudEwoIFRCckN0bERlZnM6OkVFdmVudFVybExvYWRpbmdGaW5p
c2hlZCwgMCwgMCApOw0KICAgICBpQnJDdGwtPkhhbmRsZUJyb3dzZXJMb2FkRXZlbnRMKCBUQnJD
dGxEZWZzOjpFRXZlbnRDb250ZW50RmluaXNoZWQsIDAsIDAgKTsNCiAgICAgaUJyQ3RsLT5IYW5k
bGVCcm93c2VyTG9hZEV2ZW50TCggVEJyQ3RsRGVmczo6RUV2ZW50TG9hZEZpbmlzaGVkLCAwLCAw
ICk7DQpAQCAtMTg3OCw3ICsxODc1LDYgQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6RmluYWxQcm9n
cmVzc0NvbXBsZQ0KICAgICBpZiggaVN1c3BlbmRUaW1lcnMgKQ0KICAgICAgICAgew0KICAgICAg
ICAgQ1dlYkNvcmVCcmlkZ2U6OlNldERlZmVyc1RpbWVycyggRVRydWUgKTsNCi0gICAgICAgIGlX
ZWJLaXRWaWV3LT5NYWluRnJhbWUoKS5XZWJLaXRCcmlkZ2UoKS5XZWJDb3JlQnJpZGdlKCkuU2V0
RGVmZXJBbmltYXRpb25zKCk7DQogICAgICAgICB9DQogICAgIH0NCiANCkBAIC0xODkyLDcgKzE4
ODgsNyBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpGaW5hbFByb2dyZXNzQ29tcGxlDQogLy8gZnJh
bWVzLiBUaGUgcHJvZ3Jlc3MgYmFyIG5lZWRzIHRvIG1vdmUgaW4gYSBwb3NpdGl2ZSBkaXJlY3Rp
b24gYW5kIG5vdCBnbw0KIC8vIGJhY2ssIHdoZW4gb3VyIG5ldyBlc3RpbWF0ZWQgcHJvZ3Jlc3Mg
aXMgbGVzcyB0aGVuIG91ciBsYXN0IGVzdGltYXRlLiBJZSwNCiAvLyBpZiB3ZSBndWVzcyB3ZSdy
ZSBhdCAyMCUgYW5kIHRoZSBuZXh0IGNodWNrIG1ha2VzIG91ciBndWVzcyAxOCUsIHdlIGxlYXZl
IHRoZQ0KLS8vIHByb2dyZXNzIGJhciBhdCAyMCUuIA0KKy8vIHByb2dyZXNzIGJhciBhdCAyMCUu
DQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENXZWJLaXRDb250cm9sOjpQcm9ncmVz
c1VwZGF0ZSgpDQogICAgIHsNCkBAIC0yMjc5LDcgKzIyNzUsNiBAQCB2b2lkIENXZWJLaXRDb250
cm9sOjpGb3JlZ3JvdW5kRXZlbnQoVEJvDQogICAgICAgICBpZiggSXNQcm9ncmVzc0NvbXBsZXRl
KCkgKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICBDV2ViQ29yZUJyaWRnZTo6U2V0RGVm
ZXJzVGltZXJzKCBFVHJ1ZSApOw0KLSAgICAgICAgICAgIGlXZWJLaXRWaWV3LT5NYWluRnJhbWUo
KS5XZWJLaXRCcmlkZ2UoKS5XZWJDb3JlQnJpZGdlKCkuU2V0RGVmZXJBbmltYXRpb25zKCk7DQog
ICAgICAgICAgICAgfQ0KICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgIHsNCkBAIC0yMjkxLDEx
ICsyMjg2LDggQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6Rm9yZWdyb3VuZEV2ZW50KFRCbw0KICAg
ICAgICAgew0KICAgICAgICAgaVN1c3BlbmRUaW1lcnMgPSBFRmFsc2U7DQogICAgICAgICBDV2Vi
Q29yZUJyaWRnZTo6U2V0RGVmZXJzVGltZXJzKCBFRmFsc2UgKTsNCi0gICAgICAgIC8vIGludmFs
aWRhdGUgdGhlIHZpZXcgdG8gd2FrZSB1cCBhbmltYXRpb25zDQotICAgICAgICBpV2ViS2l0Vmll
dy0+U3luY1JlcGFpbnQoIGlXZWJLaXRWaWV3LT5NYWluRnJhbWUoKS5WaXNpYmxlUmVjdCgpICk7
DQogICAgICAgICB9DQogICAgIH0NCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1dlYktpdENvbnRyb2w6OkNyZWF0ZVdpZGdldEV4dGVu
c2lvbg0KIC8vDQpAQCAtMjMwMywxNCArMjI5NSwxNiBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpG
b3JlZ3JvdW5kRXZlbnQoVEJvDQogLy8NCiBNV2lkZ2V0RXh0ZW5zaW9uKiBDV2ViS2l0Q29udHJv
bDo6Q3JlYXRlV2lkZ2V0RXh0ZW5zaW9uTChNV2lkZ2V0Q2FsbGJhY2smIGFXaWRnZXRDYWxsYmFj
aykNCiAgICAgew0KLSAgICBpZiggIWlXaWRnZXRFeHRlbnNpb24gKQ0KKyAgICBpZiAoRmVhdHVy
ZU1hbmFnZXI6OkZlYXR1cmVTdXBwb3J0ZWQoS0ZlYXR1cmVJZFdlYldpZGdldHMpKQ0KICAgICAg
ICAgew0KLSAgICAgICAgaVdpZGdldEV4dGVuc2lvbiA9IENXaWRnZXRFeHRlbnNpb246Ok5ld0wo
KmlXZWJLaXRWaWV3LGFXaWRnZXRDYWxsYmFjayk7DQorICAgICAgICBpZiggIWlXaWRnZXRFeHRl
bnNpb24gKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICBpV2lkZ2V0RXh0ZW5zaW9uID0g
Q1dpZGdldEV4dGVuc2lvbjo6TmV3TCgqaVdlYktpdFZpZXcsYVdpZGdldENhbGxiYWNrKTsNCisg
ICAgICAgICAgICB9DQorDQogICAgICAgICB9DQotICAgIFBsdWdpbkhhbmRsZXIoKS5Mb2FkUGx1
Z2luc1N5bmNMKCk7DQogICAgIHJldHVybiBpV2lkZ2V0RXh0ZW5zaW9uOw0KICAgICB9DQotI2Vu
ZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQog
Ly8gQ2FsbGVkIHdoZW4gdXNlciBjbGlja3MgYSBwbHVnaW4gd2hpY2ggaXMgYWJsZSB0byBhY2Nl
cHQgdXNlciBpbnB1dCwNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL1dlYktpdFZpZXcu
Y3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3LmNw
cAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJLaXRWaWV3
LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTYyLDExICs2Miw5IEBADQogI2luY2x1ZGUgIldlYktp
dFRvb2xCYXJJbnRlcmZhY2UuaCINCiAjaW5jbHVkZSAiVG9vbEJhci5oIg0KICNpbmNsdWRlICJB
bmltYXRpb25EZWNvZGVyLmgiDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAjaW5jbHVk
ZSAiV2lkZ2V0RXh0ZW5zaW9uLmgiDQogI2luY2x1ZGUgIldpZGdldEVuZ2luZUJyaWRnZS5oIg0K
ICNpbmNsdWRlICJXaWRnZXRSZW5kZXJlci5oIg0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VU
Uw0KICNpbmNsdWRlICJGZWF0TWdyLmgiDQogI2luY2x1ZGUgIldlYkNvcmVGb3JtQ29udHJvbEZh
Y3RvcnkuaCINCiAjaW5jbHVkZSAiRkNvbnRyb2xJbnB1dFdpZGdldC5oIg0KQEAgLTYyNCw3ICs2
MjIsNiBAQCB2b2lkIENXZWJLaXRWaWV3OjpNYWtlVmlzaWJsZSgNCiAgICAgICAgIHJldHVybjsN
CiAgICAgICAgIH0NCiAgICAgU2V0Vmlld1Zpc2libGUoYVZpc2libGUpOw0KLSNpZmRlZiAgUkRf
QlJPV1NFUl9XSURHRVRTDQogICAgIENXaWRnZXRFeHRlbnNpb24qIHdkZ3RFeHQgPSBpV2ViS2l0
Q29udHJvbC0+V2lkZ2V0RXh0ZW5zaW9uKCk7DQogICAgIGlmKCB3ZGd0RXh0ICkNCiAgICAgICAg
IHsNCkBAIC02MzQsNyArNjMxLDYgQEAgdm9pZCBDV2ViS2l0Vmlldzo6TWFrZVZpc2libGUoDQog
ICAgICAgICAgICAgd2RndEJyaWRnZS0+U2V0V2lkZ2V0VmlzaWJpbGl0eShhVmlzaWJsZSk7DQog
ICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0K
ICAgICB9DQogDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtOTIxLDcgKzkxNyw2IEBA
IHZvaWQgQ1dlYktpdFZpZXc6OkRyYXcoDQogICAgIC8vIHB1dCBvZmZzY3JlZW4gYml0bWFwIG9u
dG8gdGhlIHNjcmVlbg0KICAgaVJlbmRlclRhcmdldC0+RmxpcCggUmVjdCgpLmlUbCwgZ2MgKTsN
CiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiB3
ZGd0RXh0ID0gaVdlYktpdENvbnRyb2wtPldpZGdldEV4dGVuc2lvbigpOw0KICAgICBpZiAod2Rn
dEV4dCkNCiAgICAgICAgIHsNCkBAIC05MzEsNyArOTI2LDYgQEAgdm9pZCBDV2ViS2l0Vmlldzo6
RHJhdygNCiAgICAgICAgICAgICB3aWRnZXRSZW5kZXJlci0+RHJhd1RyYW5zaXRpb24oZ2MsIE9m
ZnNjcmVlbkJpdG1hcCgpKTsNCiAgICAgICAgICAgICB9DQogICAgICAgICB9DQotI2VuZGlmIC8v
UkRfQlJPV1NFUl9XSURHRVRTDQogICAgIGlmIChpSXNQYWdlU2NhbGVyRW5hYmxlZCkNCiAgICAg
ICAgIHsNCiAgICAgICAgIGlQYWdlU2NhbGVyLT5EcmF3KCBnYyxhUmVjdCApOw0KSW5kZXg6IFdl
YktpdC9Ccm93c2VyVmlldy9zcmMvd2Via2l0YnJpZGdlLmNwcA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdl
YktpdC9Ccm93c2VyVmlldy9zcmMvd2Via2l0YnJpZGdlLmNwcAkocmV2aXNpb24gMjE5NzcpDQor
KysgV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy93ZWJraXRicmlkZ2UuY3BwCSh3b3JraW5nIGNvcHkp
DQpAQCAtNTEsOSArNTEsNyBAQA0KICNpbmNsdWRlICJIaXN0b3J5Q29udHJvbGxlci5oIg0KICNp
bmNsdWRlICJMb2FkZXJVdGlscy5oIg0KICNpbmNsdWRlICJXZWJLaXRMb2dnZXIuaCINCi0jaWZk
ZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICNpbmNsdWRlICJXaWRnZXRFeHRlbnNpb24uaCINCi0j
ZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAvL0NPTlNUQU5UUw0KIF9MSVQoS0RhdGVT
dHJpbmcsICIlLUIlOjAlSiU6MSVUJToyJVMlLiUqQzQlOjMlK0IiKTsNCkBAIC0xMzY2LDcgKzEz
NjQsNiBAQCB2b2lkIENXZWJLaXRCcmlkZ2U6OlNldEZvcm1Db250cm9sVGV4dEJ5DQogICAgIH0N
CiAgIH0NCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIHZvaWQqIENXZWJLaXRCcmlk
Z2U6OmNyZWF0ZVdpZGdldE9iamVjdCggdm9pZCogZXhlYyApDQogICAgIHsNCiAgICAgQ1dpZGdl
dEV4dGVuc2lvbiogd2RndEV4dCA9IA0KQEAgLTE0MDUsNSArMTQwMiw0IEBAIHZvaWQqIENXZWJL
aXRCcmlkZ2U6OmNyZWF0ZVdpZGdldE1lbnVJdGUNCiANCiAgICAgcmV0dXJuIDA7DQogICAgIH0N
Ci0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAvLyBlbmQgb2YgZmlsZQ0KSW5kZXg6IFdl
YktpdC9QbHVnaW4vaW5jL1BsdWdpbkhhbmRsZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Q
bHVnaW4vaW5jL1BsdWdpbkhhbmRsZXIuaAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L1Bs
dWdpbi9pbmMvUGx1Z2luSGFuZGxlci5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTM3LDE2ICsxMzcs
NiBAQCBjbGFzcyBDUGx1Z2luSGFuZGxlciA6IHB1YmxpYyBDQmFzZSwgcHViDQogICAgICAgICAq
Lw0KICAgICAgICAgVFVpbnQgR2V0SW5kZXhGcm9tSGFuZGxlKFRJbnQgYUhhbmRsZSk7DQogDQot
I2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCi0gICAgICAgIC8qKg0KLSAgICAgICAgKiBHZXQg
dGhlIGluZGV4IG9mIHBsdWdpbiBpbmZvIGZyb20gaXRzIGhhbmRsZS4NCi0gICAgICAgICoNCi0g
ICAgICAgICogQHNpbmNlIDMuMQ0KLSAgICAgICAgKiBAcGFyYW0gYUhhbmRsZSBUaGUgaGFuZGxl
IG9mIHRoZSBwbHVnaW4sIHJldHVybmVkIGZyb20gRmluZFBsdWdpbi4NCi0gICAgICAgICogQHJl
dHVybiB0aGUgaW5kZXggb2YgdGhlIHBsdWdpbiBpbmZvLg0KLSAgICAgICAgKi8NCi0gICAgICAg
IFRCb29sIExvYWRQbHVnaW5zU3luY0woKTsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMN
CiAgICAgcHVibGljOiAvL0Zyb20gTVdlYkNvcmVQbHVnaW5IYW5kbGVyDQogICAgICAgICAvKioN
CiAgICAgICAgICogU2NhbnMgZm9yIG5ldyBwbHVnaW5zLg0KSW5kZXg6IFdlYktpdC9QbHVnaW4v
aW5jL1BsdWdpblNraW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9QbHVnaW4vaW5jL1BsdWdp
blNraW4uaAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L1BsdWdpbi9pbmMvUGx1Z2luU2tp
bi5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMzc3LDcgKzM3Nyw2IEBAIGNsYXNzIENQbHVnaW5Ta2lu
IDogcHVibGljIENCYXNlLA0KICAgICAgICAgKi8NCiAgICAgICAgIFRCb29sIENhbkludGVyYWN0
KCkgY29uc3QgICAgICAgICAgIHsgcmV0dXJuIGlDYW5QbHVnaW5JbnRlcmFjdDsgfQ0KIA0KLSNp
ZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgICAgICAvKioNCiAgICAgICAgICogR2V0IHRo
ZSBzY3JpcHRpbmcgb2JqZWN0IGZyb20gcGx1Z2luDQogICAgICAgICAqIFNldHMgdGhlIGZvbnQN
CkBAIC0zODUsNyArMzg0LDcgQEAgY2xhc3MgQ1BsdWdpblNraW4gOiBwdWJsaWMgQ0Jhc2UsDQog
ICAgICAgICAqIEByZXR1cm4NCiAgICAgICAgICovDQogICAgICAgICB2b2lkICpQbHVnaW5TY3Jp
cHRhYmxlT2JqZWN0KCk7IA0KLSNlbmRpZg0KKw0KICAgcHVibGljOiAvLyBGdW5jdGlvbnMgZnJv
bSBNVmlld0ZvY3VzT2JzZXJ2ZXINCiANCiAgICAgICAgIC8qKg0KSW5kZXg6IFdlYktpdC9QbHVn
aW4vaW5jL1BsdWdpbldpbi5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1BsdWdpbi9pbmMvUGx1
Z2luV2luLmgJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdlYktpdC9QbHVnaW4vaW5jL1BsdWdpbldp
bi5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNTgsOSArNTgsNyBAQCBjbGFzcyBDV2ViS2l0Q29udHJv
bDsNCiBjbGFzcyBDUGx1Z2luU2tpbjsNCiBjbGFzcyBDUGx1Z2luSGFuZGxlcjsNCiBjbGFzcyBD
Qml0bWFwQ29udGV4dDsNCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIGNsYXNzIE5QT2Jq
ZWN0Ow0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vIExPQ0FMIENPTlNUQU5U
UyBBTkQgTUFDUk9TDQogLy8gVGhlc2UgYXJlIHVzZWQgdG8gZGVzaWduYXRlIHRoZSBoYW5kbGlu
ZyBvZiBpbmNvbWluZyBjb250ZW50IGFuZCBsb2FkaW5nIFBsdWdpbnMNCkBAIC00OTAsNyArNDg4
LDYgQEAgY2xhc3MgQ1BsdWdpbldpbiA6ICBwdWJsaWMgQ0NvZUNvbnRyb2wsDQogICAgICAgICAq
Lw0KICAgICB2b2lkIEhhbmRsZUxvc2luZ0ZvcmVncm91bmQoKTsNCiANCi0jaWZkZWYgIFJEX0JS
T1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQogICAgICAgICAqIFJldHVybiB3aW5kb3cgb2Jq
ZWN0IHVzYWJsZSBmcm9tIHNjcmlwdGFibGUgcGx1Z2lucw0KICAgICAgICAgKiBAc2luY2UgMy4x
DQpAQCAtNTA0LDcgKzUwMSw2IEBAIGNsYXNzIENQbHVnaW5XaW4gOiAgcHVibGljIENDb2VDb250
cm9sLA0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCAqUGx1
Z2luU2NyaXB0YWJsZU9iamVjdCgpOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0K
ICAgICAgICAgLyoqDQogICAgICAgICAqIFNldHMgdGhlIHBsdWdpbidzIGJlaGF2aW91ciBhcyB3
aW5kb3dlZCBvciB3aW5kb3dsZXNzDQpJbmRleDogV2ViS2l0L1BsdWdpbi9pbmMvbnBhcGkuaA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFdlYktpdC9QbHVnaW4vaW5jL25wYXBpLmgJKHJldmlzaW9uIDIxOTc3
KQ0KKysrIFdlYktpdC9QbHVnaW4vaW5jL25wYXBpLmgJKHdvcmtpbmcgY29weSkNCkBAIC00MDQs
MTQgKzQwNCwxMiBAQCB0eXBlZGVmIGVudW0gew0KICAgLyogMTIgYW5kIG92ZXIgYXJlIGF2YWls
YWJsZSBvbiBNb3ppbGxhIGJ1aWxkcyBzdGFydGluZyB3aXRoIDAuOS45ICovDQogICBOUFBWamF2
YXNjcmlwdFB1c2hDYWxsZXJCb29sID0gMTIsDQogICBOUFBWcGx1Z2luS2VlcExpYnJhcnlJbk1l
bW9yeSA9IDEzLCAgIC8qIGF2YWlsYWJsZSBpbiBNb3ppbGxhIDEuMCAqLw0KLSNpZmRlZiBSRF9C
Uk9XU0VSX1dJREdFVFMNCiAgIE5QUFZwbHVnaW5OZWVkc1hFbWJlZCAgICAgICAgID0gMTQsIC8q
IE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8NCiAgICAvKiBzdGFydGVkIGZyb20gMTAwLiBU
aGUgbnVtYmVycyAxMyB0byAxMDAwIGFyZSBsZWZ0DQogICAgKiBmb3Igc3RhbmRhcml6YXRpb24g
YW5kIG90aGVyIGZ1dHVyZSB1c2UuIFZhbHVlIHJldHVybiBpcyB6ZXJvIGZvcg0KICAgICogaW5l
dGVyYWN0aXZlIGFuZCAnb25lJyBmb3Igbm9uLWludGVyYWN0aXZlLg0KICAgICovDQogICBOUFBW
cGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0ICA9IDE1LA0KLSNlbmRpZg0KICAgTlBQVnBsdWdpbklu
dGVyYWN0aXZlQm9vbCA9IDEwMDANCiB9IE5QUFZhcmlhYmxlOw0KIA0KQEAgLTQzMCw3ICs0Mjgs
NiBAQCB0eXBlZGVmIGVudW0gew0KICAgTlBOVnNlcnZpY2VNYW5hZ2VyID0gKDEwIHwgTlBfQUJJ
X01BU0spLA0KICAgTlBOVkRPTUVsZW1lbnQgICAgID0gKDExIHwgTlBfQUJJX01BU0spLCAgIC8q
IGF2YWlsYWJsZSBpbiBNb3ppbGxhIDEuMiAqLw0KICAgTlBOVkRPTVdpbmRvdyAgICAgID0gKDEy
IHwgTlBfQUJJX01BU0spDQotI2lmZGVmIFJEX0JST1dTRVJfV0lER0VUUw0KICAgLE5QTlZUb29s
a2l0ICAgICAgICA9ICgxMyB8IE5QX0FCSV9NQVNLKSwgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBX
ZWJLaXQgKi8NCiAgIE5QTlZTdXBwb3J0c1hFbWJlZEJvb2wgPSAxNCwgICAgICAgICAgICAgIC8q
IE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8NCiANCkBAIC00MzksNyArNDM2LDYgQEAgdHlw
ZWRlZiBlbnVtIHsNCiANCiAgICAgLyogR2V0IHRoZSBOUE9iamVjdCB3cmFwcGVyIGZvciB0aGUg
cGx1Z2lucyBET00gZWxlbWVudC4gKi8NCiAgIE5QTlZQbHVnaW5FbGVtZW50TlBPYmplY3QgICAg
ICAgICAgICAgICAgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8NCi0jZW5kaWYNCiB9
IE5QTlZhcmlhYmxlOw0KIA0KIC8qDQpJbmRleDogV2ViS2l0L1BsdWdpbi9zcmMvTnBuSW1wbGVt
ZW50YXRpb24uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1BsdWdpbi9zcmMvTnBuSW1wbGVt
ZW50YXRpb24uY3BwCShyZXZpc2lvbiAyMTk3NykNCisrKyBXZWJLaXQvUGx1Z2luL3NyYy9OcG5J
bXBsZW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC00MjUsNyArNDI1LDYgQEAgTlBF
cnJvciBOcG5VcmxMb2FkZXIoTlBQIGFJbnN0YW5jZSwgY29ucw0KICAgICAgICAgICAgICAgICB9
DQogICAgICAgICAgIH0NCiAgICAgICAgICAgICBicmVhazsNCi0jaWZkZWYgIFJEX0JST1dTRVJf
V0lER0VUUw0KICAgICAgICAgY2FzZSBOUE5WV2luZG93TlBPYmplY3Q6DQogICAgICAgICAgICAg
ew0KICAgICAgICAgICAgIENQbHVnaW5XaW4qIHBsdWdpbldpbiA9IChDUGx1Z2luV2luKilhSW5z
dGFuY2UtPm5kYXRhOw0KQEAgLTQzOCw3ICs0MzcsNiBAQCBOUEVycm9yIE5wblVybExvYWRlcihO
UFAgYUluc3RhbmNlLCBjb25zDQogICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICByZXR1
cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsNCiAgICAgICAgICAgICB9DQotI2VuZGlmIC8vUkRfQlJP
V1NFUl9XSURHRVRTDQogICAgICAgICBjYXNlIE5QTlZET01XaW5kb3c6DQogICAgICAgICBjYXNl
IE5QTlZ4RGlzcGxheTogICAgICAgICAgLy8gVW5peCBvbmx5OiBSZXR1cm5zIHRoZSBjdXJyZW50
IERpc3BsYXkNCiAgICAgICAgIGNhc2UgTlBOVnh0QXBwQ29udGV4dDogICAgICAvLyBVbml4IG9u
bHk6IFJldHVybnMgdGhlIGFwcGxpY2F0aW9uJ3MgWHRBcHBDb250ZXh0DQpJbmRleDogV2ViS2l0
L1BsdWdpbi9zcmMvUGx1Z2luSGFuZGxlci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUGx1
Z2luL3NyYy9QbHVnaW5IYW5kbGVyLmNwcAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L1Bs
dWdpbi9zcmMvUGx1Z2luSGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC01MjMsMjggKzUy
Myw2IEBAIFRCb29sIENQbHVnaW5IYW5kbGVyOjpJbml0aWFsaXplKFRBbnkqIGENCiAgICAgcmV0
dXJuIGRvbmVJbml0Ow0KICAgICB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCi0v
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLS8vIENQbHVnaW5IYW5kbGVyOjpJbml0aWFsaXplDQot
Ly8NCi0vLyBJbml0aWFsaXplcyB0aGUgUGx1Z2luSGFuZGxlciwgcG9zc2libHkgYXN5bmNocm9u
b3VzbHkNCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLS8vDQotVEJvb2wgQ1BsdWdpbkhhbmRs
ZXI6OkxvYWRQbHVnaW5zU3luY0woKQ0KLSAgICB7DQotICAgIGlmKCBpUGx1Z2luSW5mb0FycmF5
LkNvdW50KCkgIT0gMCApDQotICAgICAgICB7DQotICAgICAgICByZXR1cm4gRVRydWU7DQotICAg
ICAgICB9DQotDQotICAgIC8vQ2FuY2VsIHRoZSBlYXJsaWVyIHJlcXVlc3QgYW5kIGxvYWQgcGx1
Z2lucyBub3cNCi0gICAgaWYoIGlJZGxlICkNCi0gICAgICAgIHsNCi0gICAgICAgIGlJZGxlLT5D
YW5jZWwoKTsNCi0gICAgICAgIH0NCi0gICAgcmV0dXJuIExvYWRQbHVnaW5zTCgpOw0KLSAgICB9
DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogLy8gQ1BsdWdpbkhhbmRsZXI6OkxvYWRQ
bHVnaW5zTA0KIC8vDQogLy8gTG9hZHMgYWxsIHRoZSBwbHVnaW5zIGFuZCBxdWVyeSB0aGVtIGZv
ciBkZXRhaWxzLg0KSW5kZXg6IFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpblNraW4uY3BwDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gV2ViS2l0L1BsdWdpbi9zcmMvUGx1Z2luU2tpbi5jcHAJKHJldmlzaW9uIDIx
OTc3KQ0KKysrIFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpblNraW4uY3BwCSh3b3JraW5nIGNvcHkp
DQpAQCAtNjksOSArNjksNyBAQA0KICNpbmNsdWRlICJXZWJLaXRWaWV3LmgiDQogI2luY2x1ZGUg
IldlYktpdENvbnRyb2wuaCINCiAjaW5jbHVkZSAiV2ViQ29yZUdyYXBoaWNzQ29udGV4dC5oIg0K
LSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogI2luY2x1ZGUgIldpZGdldEV4dGVuc2lvbi5o
Ig0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vIENPTlNUQU5UUw0KIC8vIHNj
aGVtZSBmb3IgUlRTUCB1cmwNCkBAIC0yMTcsMTIgKzIxNSw4IEBAIHZvaWQgQ1BsdWdpblNraW46
OkNvbnN0cnVjdEwoIGNvbnN0IFREZXMNCiAgICAgICAgICAgICBDbGVhbnVwU3RhY2s6OlBvcEFu
ZERlc3Ryb3koKTsgIC8vIHVybFNjaGVtZQ0KICAgICAgICAgICAgIH0NCiANCi0jaWZkZWYgIFJE
X0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgQ1dpZGdldEV4dGVuc2lvbiogd2RndEV4dCA9IGlX
ZWJLaXRGcmFtZS0+V2ViS2l0VmlldygpLldlYktpdENvbnRyb2woKS5XaWRnZXRFeHRlbnNpb24o
KTsNCiAgICAgICAgIGlmICggYlJ0c3BGb3VuZCB8fCAod2RndEV4dCAmJiBhVXJsLkxlbmd0aCgp
ID09IDApKQ0KLSNlbHNlDQotICAgICAgICBpZiAoIGJSdHNwRm91bmQgKQ0KLSNlbmRpZiAvL1JE
X0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAvLyBJZiBydHNw
IHNjaGVtZSBpbiB1cmwsIHBhc3MgdG8gcGx1Z2luIGRpcmVjdGx5LA0KICAgICAgICAgICAgIC8v
IGFmdGVyIHRoZSBhdHRyaWJ1dGUgYXJyYXlzIGluaXRpYWxpemVkDQpAQCAtNzAyLDEwICs2OTYs
OCBAQCBUQm9vbCBDUGx1Z2luU2tpbjo6SXNGb2N1c2FibGUoKSBjb25zdA0KICAgICAgICAgcmV0
dXJuIEVUcnVlOw0KICAgICB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiB2b2lk
KiBDUGx1Z2luU2tpbjo6UGx1Z2luU2NyaXB0YWJsZU9iamVjdCgpDQogICAgIHsNCiAgICAgcmV0
dXJuIGlQbHVnaW5XaW4/aVBsdWdpbldpbi0+UGx1Z2luU2NyaXB0YWJsZU9iamVjdCgpOjA7DQog
ICAgIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCkluZGV4OiBXZWJLaXQvUGx1
Z2luL3NyYy9QbHVnaW5XaW4uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L1BsdWdpbi9zcmMv
UGx1Z2luV2luLmNwcAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L1BsdWdpbi9zcmMvUGx1
Z2luV2luLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTEyNjQsNyArMTI2NCw2IEBAIHZvaWQgQ1Bs
dWdpbldpbjo6SGFuZGxlTG9zaW5nRm9yZWdyb3VuZCgNCiAgICAgICAgIH0NCiAgIH0NCiANCi0j
aWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8N
CiBOUE9iamVjdCogQ1BsdWdpbldpbjo6V2luZG93U2NyaXB0TlBPYmplY3QoKQ0KQEAgLTEyODgs
NyArMTI4Nyw2IEBAIHZvaWQqIENQbHVnaW5XaW46OlBsdWdpblNjcmlwdGFibGVPYmplY3QNCiAg
ICAgfQ0KICAgICByZXR1cm4gKHZvaWQgKikwOw0KICAgICB9DQotI2VuZGlmIC8vUkRfQlJPV1NF
Ul9XSURHRVRTDQogDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDUGx1Z2luV2luOjpG
b3JjZVJlZHJhdw0KSW5kZXg6IFdlYktpdC9ncm91cC9Ccm93c2VyVmlldy5tbXANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvZ3JvdXAvQnJvd3NlclZpZXcubW1wCShyZXZpc2lvbiAyMTk3NykNCisr
KyBXZWJLaXQvZ3JvdXAvQnJvd3NlclZpZXcubW1wCSh3b3JraW5nIGNvcHkpDQpAQCAtNzcsMTIg
Kzc3LDEwIEBAIFNPVVJDRSAgICAgICAgICBTbWFydExpbmtIYW5kbGVyLmNwcA0KIFNPVVJDRSAg
ICAgICAgICBTbWFydExpbmtNYXAuY3BwDQogU09VUkNFCQlQb3B1cERyYXdlci5jcHANCiBTT1VS
Q0UJCVNjcm9sbGluZ0luZGljYXRvckRyYXdlci5jcHANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lE
R0VUUw0KIFNPVVJDRSAgICAgICAgICBXaWRnZXRFeHRlbnNpb24uY3BwDQogU09VUkNFICAgICAg
ICAgIFdpZGdldFByZWZlcmVuY2VzLmNwcA0KIFNPVVJDRSAgICAgICAgICBXaWRnZXRSZW5kZXJl
ci5jcHANCiBTWVNURU1JTkNMVURFICAgICAgICAuLlwuLlwuLlxXaWRnZXRFbmdpbmVcaW5jDQot
I2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogVVNFUklOQ0xVREUgICAgIC4uXFJlc291cmNl
TG9hZGVyXEluYw0KIFVTRVJJTkNMVURFICAgICAuLlxSZXNvdXJjZUxvYWRlclxjYWNoZUluYw0K
IFVTRVJJTkNMVURFICAgICAuLlxCcm93c2VyVmlld1xJbmMNCkluZGV4OiBXZWJLaXQvZ3JvdXAv
UGx1Z2luLm1tcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91cC9QbHVnaW4ubW1wCShyZXZp
c2lvbiAyMTk3NykNCisrKyBXZWJLaXQvZ3JvdXAvUGx1Z2luLm1tcAkod29ya2luZyBjb3B5KQ0K
QEAgLTYwLDkgKzYwLDcgQEAgVVNFUklOQ0xVREUgICAgIC4uXEJyb3dzZXJDb3JlXFJlbmRlcmVy
cw0KIFVTRVJJTkNMVURFICAgICAuLlxSZXNvdXJjZUxvYWRlclxJbmMNCiAjaWZuZGVmIF9fQlJP
V1NFUl9TREsNCiBVU0VSSU5DTFVERSAgICAgLi5cLi5cLi5cUGFnZVNjYWxlclxJbmMNCi0jaWZk
ZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIFVTRVJJTkNMVURFICAgICBcUzYwXG13XHdlYlxXZWJF
bmdpbmVcV2lkZ2V0RW5naW5lXEluYw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICNl
bmRpZg0KIFVTRVJJTkNMVURFICAgICAuLlwuLlxXRUJDT1JFXGJyaWRnZQ0KIA0KSW5kZXg6IFdl
YktpdC9ncm91cC9mb3JtY29udHJvbHMubW1waQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91
cC9mb3JtY29udHJvbHMubW1waQkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L2dyb3VwL2Zv
cm1jb250cm9scy5tbXBpCSh3b3JraW5nIGNvcHkpDQpAQCAtNjMsOSArNjMsNyBAQCBVU0VSSU5D
TFVERSAgICAgLi5cQnJvd3NlckNvcmVcTWlzY1xJbmMNCiBVU0VSSU5DTFVERSAgICAgLi5cUmVz
b3VyY2VMb2FkZXJcSW5jDQogVVNFUklOQ0xVREUgICAgIC4uXEJyb3dzZXJDb250cm9sXGluYw0K
IFVTRVJJTkNMVURFICAgICAuLlxCcm93c2VyVmlld1xpbmMNCi0jaWZkZWYgUkRfQlJPV1NFUl9X
SURHRVRTDQogVVNFUklOQ0xVREUgICAgIC4uXC4uXC4uXFdpZGdldEVuZ2luZVxpbmMNCi0jZW5k
aWYNCiAjaWZuZGVmIF9fQlJPV1NFUl9TREsNCiBVU0VSSU5DTFVERSAgICAgLi5cLi5cLi5cUGFn
ZVNjYWxlclxpbmMNCiAjZW5kaWYNCkluZGV4OiBXZWJLaXQvZ3JvdXAvd2Via2l0Lm1tcA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYktpdC9ncm91cC93ZWJraXQubW1wCShyZXZpc2lvbiAyMTk3NykNCisr
KyBXZWJLaXQvZ3JvdXAvd2Via2l0Lm1tcAkod29ya2luZyBjb3B5KQ0KQEAgLTExNSw5ICsxMTUs
NyBAQCBVU0VSSU5DTFVERSAgIC4uXC4uXC4uXFRvb2xCYXJcaW5jDQogU1lTVEVNSU5DTFVERSBc
RXBvYzMyXGluY2x1ZGUgXEVwb2MzMlxpbmNsdWRlXG9lbQ0KICNlbmRpZg0KIA0KLSNpZmRlZiAg
UkRfQlJPV1NFUl9XSURHRVRTDQogVVNFUklOQ0xVREUgICAuLlwuLlwuLlxXaWRnZXRFbmdpbmVc
aW5jDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogLy8tLQ0KIA0KIFNZU1RFTUlOQ0xV
REUgXEVwb2MzMlxpbmNsdWRlXGh0dHANCg==
</data>
<flag name="review"
          id="6143"
          type_id="1"
          status="-"
          setter="Sachin.Padma"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14870</attachid>
            <date>2007-06-05 13:43:05 -0700</date>
            <delta_ts>2007-06-05 13:49:23 -0700</delta_ts>
            <desc>widget flag changes.</desc>
            <filename>13939_4.patch</filename>
            <type>text/plain</type>
            <size>36626</size>
            <attacher name="Wei Liu">wei.liu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDIwIEBADQordzNsaXUsIHJldmlld2VkIGJ5IDxTYWNoaW4+DQorIERFU0M6
IDMuMiB3aWRnZXQgZmxhZyBjaGFuZ2VzLg0KKyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzkzOQ0KKw0KKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERF
RCBPUiBDSEFOR0VEDQorDQorICAgICAgICAqIGJyaWRnZS9XZWJDb3JlQnJpZGdlLmg6DQorICAg
ICAgICAqIGtodG1sL2VjbWEva2pzX3dpbmRvdy5jcHA6DQorICAgICAgICAoV2luZG93OjpXaW5k
b3cpOg0KKyAgICAgICAgKFdpbmRvdzo6bWFyayk6DQorICAgICAgICAoV2luZG93OjpnZXQpOg0K
KyAgICAgICAgKiBraHRtbC9lY21hL2tqc193aW5kb3cuaDoNCisgICAgICAgICoga3dxL0tXUUtI
VE1MUGFydC5jcHA6DQorICAgICAgICAoS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnZXRNZW51SXRl
bU9iamVjdCk6DQorICAgICAgICAqIGt3cS9LV1FLSFRNTFBhcnQuaDoNCisNCisNCiAyMDA3LTA1
LTI5ICBidWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5
IFNhY2hpbi4NCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJDb3JlL2JyaWRnZS9XZWJDb3JlQnJpZGdlLmgJKHJldmlzaW9uIDIxOTc3KQ0K
KysrIFdlYkNvcmUvYnJpZGdlL1dlYkNvcmVCcmlkZ2UuaAkod29ya2luZyBjb3B5KQ0KQEAgLTE1
MywxMyArMTUzLDEyIEBAIGNsYXNzIEtXUUtIVE1MUGFydDsNCiBjbGFzcyBLSFRNTFZpZXc7DQog
Y2xhc3MgUmVuZGVyQXJlbmE7DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBuYW1l
c3BhY2UgS0pTIHsNCiAgICAgY2xhc3MgRXhlY1N0YXRlOw0KICAgICBjbGFzcyBPYmplY3RJbXA7
DQogICAgIGNsYXNzIFByb3RlY3RlZFZhbHVlOw0KIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJ
REdFVFMNCisNCiBuYW1lc3BhY2Uga2h0bWwgew0KICAgICBjbGFzcyBSZW5kZXJQYXJ0Ow0KICAg
ICBjbGFzcyBSZW5kZXJPYmplY3Q7DQpAQCAtNzUzLDExICs3NTIsOSBAQCBwdWJsaWM6DQogDQog
ICAgIHZpcnR1YWwgVEJvb2wgQ2FuY2VsSW5Qcm9ncmVzcygpID0gMDsNCiANCi0jaWZkZWYgIFJE
X0JST1dTRVJfV0lER0VUUw0KICAgICB2aXJ0dWFsIHZvaWQqIGNyZWF0ZVdpZGdldE9iamVjdCh2
b2lkKiBleGVjKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCogY3JlYXRlV2lkZ2V0TWVudU9iamVj
dCh2b2lkKiBleGVjKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCogY3JlYXRlV2lkZ2V0TWVudUl0
ZW1PYmplY3Qodm9pZCogZXhlYykgPSAwOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0K
IH07DQogDQogI2VuZGlmICAgICAgLy8gV0VCQ09SRUJSSURHRV9IDQpJbmRleDogV2ViQ29yZS9r
aHRtbC9lY21hL2tqc193aW5kb3cuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9raHRtbC9l
Y21hL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAyMTk3NykNCisrKyBXZWJDb3JlL2todG1sL2Vj
bWEva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0zMjUsMTAgKzMyNSw4IEBAIFdp
bmRvdzo6V2luZG93KEtIVE1MUGFydCAqcCkNCiAgICwgaGlzdG9yeSgwKQ0KICAgLCBmcmFtZXMo
MCkNCiAgICwgbG9jKDApDQotI2lmZGVmIFJEX0JST1dTRVJfV0lER0VUUw0KICAgLCBtX3dpZGdl
dCgwKQ0KICAgLCBtX3dpZGdldE1lbnUoMCkNCi0jZW5kaWYNCiAgICwgbV9zZWxlY3Rpb24oMCkN
CiAgICwgbV9sb2NhdGlvbmJhcigwKQ0KICAgLCBtX21lbnViYXIoMCkNCkBAIC00OTAsMTIgKzQ4
OCwxMCBAQCB2b2lkIFdpbmRvdzo6bWFyaygpDQogICAgIG1fc3RhdHVzYmFyLT5tYXJrKCk7DQog
ICBpZiAobV90b29sYmFyICYmICFtX3Rvb2xiYXItPm1hcmtlZCgpKQ0KICAgICBtX3Rvb2xiYXIt
Pm1hcmsoKTsNCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICBpZiAobV93aWRnZXQgJiYg
IW1fd2lkZ2V0LT5tYXJrZWQoKSkNCiAgICAgbV93aWRnZXQtPm1hcmsoKTsNCiAgIGlmIChtX3dp
ZGdldE1lbnUgJiYgIW1fd2lkZ2V0TWVudS0+bWFya2VkKCkpDQogICAgIG1fd2lkZ2V0TWVudS0+
bWFyaygpOw0KLSNlbmRpZg0KIH0NCiANCiBVU3RyaW5nIFdpbmRvdzo6dG9TdHJpbmcoRXhlY1N0
YXRlICopIGNvbnN0DQpAQCAtODIwLDcgKzgxNiw2IEBAIFZhbHVlIFdpbmRvdzo6Z2V0KEV4ZWNT
dGF0ZSAqZXhlYywgY29uc3QNCiAjZW5kaWYNCiAgICAgY2FzZSBMb2NhdGlvbmJhcjoNCiAgICAg
ICByZXR1cm4gVmFsdWUobG9jYXRpb25iYXIoZXhlYykpOw0KLSNpZmRlZiBSRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICAgY2FzZSBfV2lkZ2V0Og0KICAgICAgIGlmICggbV93aWRnZXQgKQ0KICAgICAg
ICAgcmV0dXJuIFZhbHVlKG1fd2lkZ2V0KTsNCkBAIC04NDcsNyArODQyLDYgQEAgVmFsdWUgV2lu
ZG93OjpnZXQoRXhlY1N0YXRlICpleGVjLCBjb25zdA0KICAgICAgIGlmICghKGNvbnN0X2Nhc3Q8
V2luZG93Kj4odGhpcyktPm1fd2lkZ2V0TWVudSkpDQogICAgICAgICByZXR1cm4gVW5kZWZpbmVk
KCk7DQogICAgICAgcmV0dXJuIEtXUShtX3BhcnQpLT5jcmVhdGVXaWRnZXRNZW51SXRlbU9iamVj
dChleGVjKSA/IFZhbHVlKEtXUShtX3BhcnQpLT5jcmVhdGVXaWRnZXRNZW51SXRlbU9iamVjdChl
eGVjKSk6VW5kZWZpbmVkKCk7ICAgDQotI2VuZGlmDQogICAgIGNhc2UgTWVudWJhcjoNCiAgICAg
ICByZXR1cm4gVmFsdWUobWVudWJhcihleGVjKSk7DQogICAgIGNhc2UgT2Zmc2NyZWVuQnVmZmVy
aW5nOg0KSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS9ranNfd2luZG93LmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5oCShyZXZpc2lvbiAyMTk3NykNCisr
KyBXZWJDb3JlL2todG1sL2VjbWEva2pzX3dpbmRvdy5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTU5
LDEwICsxNTksOCBAQCBuYW1lc3BhY2UgS0pTIHsNCiAgICAgdm9pZCB1cGRhdGVMYXlvdXQoYm9v
bCBpZ25vcmVTdHlsZXNoZWV0cyA9IHRydWUpIGNvbnN0Ow0KIA0KICAgICBRR3VhcmRlZFB0cjxL
SFRNTFBhcnQ+IG1fcGFydDsNCi0jaWZkZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIE9iamVj
dEltcCAqbV93aWRnZXQ7DQogICAgIE9iamVjdEltcCAqbV93aWRnZXRNZW51Ow0KLSNlbmRpZg0K
ICAgICBTY3JlZW4gKnNjcmVlbjsNCiAgICAgSGlzdG9yeSAqaGlzdG9yeTsNCiAgICAgRnJhbWVB
cnJheSAqZnJhbWVzOw0KSW5kZXg6IFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCShyZXZpc2lvbiAyMTk3NykN
CisrKyBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDEz
MSw3ICs0MTMxLDYgQEAgdm9pZCBLV1FLSFRNTFBhcnQ6OnByZXBhcmVGb3JVc2VyQWN0aW9uKA0K
ICAgICBfc3VibWl0dGVkRm9ybVVSTCA9IEtVUkwoKTsNCiB9DQogDQotI2lmZGVmICBSRF9CUk9X
U0VSX1dJREdFVFMNCiBLSlM6Ok9iamVjdEltcCogS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnZXRP
YmplY3QoS0pTOjpFeGVjU3RhdGUqIGV4ZWMpDQogew0KICAgICBLSlM6Ok9iamVjdEltcCogb2Jq
SW1wbCA9IHN0YXRpY19jYXN0PEtKUzo6T2JqZWN0SW1wICo+KF9icmlkZ2UtPkNsaWVudCgpLmNy
ZWF0ZVdpZGdldE9iamVjdCgodm9pZCogKWV4ZWMpKTsNCkBAIC00MTQ3LDcgKzQxNDYsNiBAQCBL
SlM6Ok9iamVjdEltcCogS1dRS0hUTUxQYXJ0OjpjcmVhdGVXaWRnDQogICAgIEtKUzo6T2JqZWN0
SW1wKiBvYmpJbXBsID0gc3RhdGljX2Nhc3Q8S0pTOjpPYmplY3RJbXAgKj4oX2JyaWRnZS0+Q2xp
ZW50KCkuY3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoKHZvaWQqIClleGVjKSk7DQogICAgIHJl
dHVybiBvYmpJbXBsOw0KIH0NCi0jZW5kaWYNCiANCiBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSAq
S1dRS0hUTUxQYXJ0OjpnZXRFbWJlZEluc3RhbmNlRm9yVmlldyAoTVdlYkNvcmVXaWRnZXQgKmFW
aWV3KQ0KIHsNCkluZGV4OiBXZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYkNvcmUva3dxL0tXUUtIVE1MUGFydC5oCShyZXZpc2lvbiAyMTk3NykNCisrKyBXZWJD
b3JlL2t3cS9LV1FLSFRNTFBhcnQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIyNywxMSArMjI3LDkg
QEAgcHVibGljOg0KICAgICBib29sIEtleUV2ZW50KGNvbnN0IFRLZXlFdmVudCYgZXZlbnQsIGJv
b2wgdXApOw0KICAgICAvL2Jvb2wgTGFzdEV2ZW50SXNNb3VzZVVwKCk7DQogDQotI2lmZGVmICBS
RF9CUk9XU0VSX1dJREdFVFMNCiAgICAgS0pTOjpPYmplY3RJbXAqIGNyZWF0ZVdpZGdldE9iamVj
dChLSlM6OkV4ZWNTdGF0ZSogZXhlYykgOw0KICAgICBLSlM6Ok9iamVjdEltcCogY3JlYXRlV2lk
Z2V0TWVudU9iamVjdChLSlM6OkV4ZWNTdGF0ZSogZXhlYykgOw0KICAgICBLSlM6Ok9iamVjdElt
cCogY3JlYXRlV2lkZ2V0TWVudUl0ZW1PYmplY3QoS0pTOjpFeGVjU3RhdGUqIGV4ZWMpIDsNCi0j
ZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAgICAgLy9NZXRob2RzIHRvIHVwZGF0ZSBm
b2N1c2FibGUgbm9kZSBsaXN0DQogICAgIHZvaWQgdXBkYXRlRm9jdXNhYmxlUmVjdExpc3QoKTsN
CkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NoYW5nZUxv
ZwkocmV2aXNpb24gMjE5NzgpDQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0K
QEAgLTEsMyArMSw1NiBAQA0KK3czbGl1LCByZXZpZXdlZCBieSBTYWNoaW4NCisgREVTQzogMy4y
IHdpZGdldCBmbGFnIGNoYW5nZXMuDQorIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzOTM5DQorDQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHA6
DQorICAgICAgICAoQ0JyQ3RsOjpIYW5kbGVDb21tYW5kTCk6DQorICAgICAgICAoQ0JyQ3RsOjpB
ZGRPcHRpb25NZW51SXRlbXNMKToNCisgICAgICAgIChDQnJDdGw6OkNyZWF0ZVdpZGdldEV4dGVu
c2lvbkwpOg0KKyAgICAgICAgKiBCcm93c2VyQ29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9s
RmlsZUlucHV0U2tpbi5jcHA6DQorICAgICAgICAoQ0Zvcm1GaWxlSW5wdXRTa2luOjpBY3RpdmF0
ZUwpOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9pbmMvV2ViS2l0Q29udHJvbC5oOg0KKyAgICAg
ICAgKENXZWJLaXRDb250cm9sOjpXaWRnZXRFeHRlbnNpb24pOg0KKyAgICAgICAgKiBCcm93c2Vy
Vmlldy9pbmMvd2Via2l0YnJpZGdlLmg6DQorICAgICAgICAqIEJyb3dzZXJWaWV3L3NyYy9XZWJL
aXRDb250cm9sLmNwcDoNCisgICAgICAgIChDV2ViS2l0T09NTm90aWZpZXI6Ok5vdGlmeSk6DQor
ICAgICAgICAoQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6Q1N0YXRpY09iamVjdENvbnRhaW5lcik6
DQorICAgICAgICAoQ1N0YXRpY09iamVjdENvbnRhaW5lcjo6Rm9ybURhdGFNYW5hZ2VySGFuZGxl
ckwpOg0KKyAgICAgICAgKENTdGF0aWNPYmplY3RDb250YWluZXI6OkRvd25sb2FkT2JzZXJ2ZXIp
Og0KKyAgICAgICAgKENTdGF0aWNPYmplY3RDb250YWluZXI6OkluaXRpYWxpemVGYWN0b3J5T2Jq
ZWN0c0wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpDV2ViS2l0Q29udHJvbCk6DQorICAg
ICAgICAoQ1dlYktpdENvbnRyb2w6OkNvbnN0cnVjdEwpOg0KKyAgICAgICAgKENXZWJLaXRDb250
cm9sOjp+Q1dlYktpdENvbnRyb2wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpHZXRCcm93
c2VyU2V0dGluZ0wpOg0KKyAgICAgICAgKENXZWJLaXRDb250cm9sOjpQYWdlSW5mb0xDKToNCisg
ICAgICAgIChDV2ViS2l0Q29udHJvbDo6SGFuZGxlTG9hZGVyQ29tbWFuZEwpOg0KKyAgICAgICAg
KENXZWJLaXRDb250cm9sOjpTeW5jQ2FuY2VsTCk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6
Okhpc3RvcnlWaWV3KToNCisgICAgICAgIChDV2ViS2l0Q29udHJvbDo6SW5jcmVtZW50UHJvZ3Jl
c3NGb3JNb3JlRGF0YSk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkZpbmFsUHJvZ3Jlc3ND
b21wbGV0ZSk6DQorICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkZvcmVncm91bmRFdmVudCk6DQor
ICAgICAgICAoQ1dlYktpdENvbnRyb2w6OkNyZWF0ZVdpZGdldEV4dGVuc2lvbkwpOg0KKyAgICAg
ICAgKiBCcm93c2VyVmlldy9zcmMvV2ViS2l0Vmlldy5jcHA6DQorICAgICAgICAoQ1dlYktpdFZp
ZXc6Ok1ha2VWaXNpYmxlKToNCisgICAgICAgIChDV2ViS2l0Vmlldzo6RHJhdyk6DQorICAgICAg
ICAqIEJyb3dzZXJWaWV3L3NyYy93ZWJraXRicmlkZ2UuY3BwOg0KKyAgICAgICAgKENXZWJLaXRC
cmlkZ2U6OmNyZWF0ZVdpZGdldE1lbnVJdGVtT2JqZWN0KToNCisgICAgICAgICogUGx1Z2luL2lu
Yy9QbHVnaW5IYW5kbGVyLmg6DQorICAgICAgICAqIFBsdWdpbi9pbmMvUGx1Z2luU2tpbi5oOg0K
KyAgICAgICAgKiBQbHVnaW4vaW5jL1BsdWdpbldpbi5oOg0KKyAgICAgICAgKiBQbHVnaW4vaW5j
L25wYXBpLmg6DQorICAgICAgICAqIFBsdWdpbi9zcmMvTnBuSW1wbGVtZW50YXRpb24uY3BwOg0K
KyAgICAgICAgKE5wbkdldFZhbHVlKToNCisgICAgICAgICogUGx1Z2luL3NyYy9QbHVnaW5IYW5k
bGVyLmNwcDoNCisgICAgICAgICogUGx1Z2luL3NyYy9QbHVnaW5Ta2luLmNwcDoNCisgICAgICAg
IChDUGx1Z2luU2tpbjo6Q29uc3RydWN0TCk6DQorICAgICAgICAoQ1BsdWdpblNraW46OlBsdWdp
blNjcmlwdGFibGVPYmplY3QpOg0KKyAgICAgICAgKiBQbHVnaW4vc3JjL1BsdWdpbldpbi5jcHA6
DQorICAgICAgICAoQ1BsdWdpbldpbjo6UGx1Z2luU2NyaXB0YWJsZU9iamVjdCk6DQorICAgICAg
ICAqIGdyb3VwL0Jyb3dzZXJWaWV3Lm1tcDoNCisgICAgICAgICogZ3JvdXAvUGx1Z2luLm1tcDoN
CisgICAgICAgICogZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGk6DQorICAgICAgICAqIGdyb3VwL3dl
YmtpdC5tbXA6DQorDQogeWFkYXZhbGwsIHJldmlld2VkIGJ5IDx5b25nanVuLnpoYW5nQG5va2lh
LmNvbT4NCiAgREVTQzogUmVtb3ZlIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiBVSSBSU1Mg
ZmlsZSBhbmQgZW5naW5lDQogIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzOTk0DQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvc3JjL0JyQ3RsLmNwcAkocmV2aXNpb24g
MjE5NzcpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHAJKHdvcmtpbmcg
Y29weSkNCkBAIC04Miw5ICs4Miw3IEBADQogI2luY2x1ZGUgPEFrbnNEcmF3VXRpbHMuaD4NCiAj
aW5jbHVkZSA8RXNjYXBlVXRpbHMuaD4NCiAjaW5jbHVkZSAiTG9hZGVyQ29udGFpbmVyLmgiDQot
I2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAjaW5jbHVkZSAiV2lkZ2V0RXh0ZW5zaW9uLmgi
DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogI2luY2x1ZGUgIlNtYXJ0TGlua0hh
bmRsZXIuaCINCiANCkBAIC05MTAsNyArOTA4LDYgQEAgRVhQT1JUX0Mgdm9pZCBDQnJDdGw6Okhh
bmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICBUUGx1Z2luQ29udHJvbCBwbHVnaW5D
b250cm9sKCppV2ViS2l0Q29udHJvbCk7DQogICAgICAgICAgICAgICAgIHBsdWdpbkNvbnRyb2wu
SGFuZGxlUGx1Z2luQ29tbWFuZEwoYUNvbW1hbmQpOw0KICAgICAgICAgICAgICAgICB9DQotI2lm
ZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAg
ICAgIHsNCiAgICAgICAgICAgICAgICAgQ1dpZGdldEV4dGVuc2lvbiogd2RndEV4dCA9IGlXZWJL
aXRDb250cm9sLT5XaWRnZXRFeHRlbnNpb24oKTsNCkBAIC05MjAsNyArOTE3LDYgQEAgRVhQT1JU
X0Mgdm9pZCBDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKFRJbg0KICAgICAgICAgICAgICAgICAgICAg
fQ0KICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgfQ0KLSNlbmRpZiAv
L1JEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0N
CiAgICAgICAgIH0gICAvLyBlbmQgb2Ygc3dpdGNoDQpAQCAtMTE1MSwxMyArMTE0NywxMSBAQCBF
WFBPUlRfQyB2b2lkIENCckN0bDo6QWRkT3B0aW9uTWVudUl0ZW1zDQogICAgIC8vIEJhc2Ugd2Un
cmUgdXNpbmcgZm9yIHRoZSBwbHVnLWlucw0KICAgICBUUGx1Z2luQ29udHJvbCBwbHVnaW5Db250
cm9sKCppV2ViS2l0Q29udHJvbCk7DQogICAgIHBsdWdpbkNvbnRyb2wuQWRkUGx1Z2luT3B0aW9u
TWVudUl0ZW1zTChhTWVudVBhbmUsIFRCckN0bERlZnM6OkVDb21tYW5kSWRQbHVnaW5CYXNlLCBh
QWZ0ZXIpOw0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIENXaWRnZXRFeHRlbnNp
b24qIHdkZ3RFeHQgPSBpV2ViS2l0Q29udHJvbC0+V2lkZ2V0RXh0ZW5zaW9uKCk7DQogICAgIGlm
ICggd2RndEV4dCApDQogICAgICAgICB7DQogICAgICAgICB3ZGd0RXh0LT5BZGRPcHRpb25NZW51
SXRlbXNMKCBhTWVudVBhbmUsIGFSZXNvdXJjZUlkICk7DQogICAgICAgICB9DQotI2VuZGlmIC8v
UkRfQlJPV1NFUl9XSURHRVRTDQogICAgIH0NCiANCiANCkBAIC0yNTMxLDExICsyNTI1LDcgQEAg
dm9pZCBDQnJDdGw6OkhhbmRsZVJlc291cmNlQ2hhbmdlKCBUSW50IA0KIC8vDQogRVhQT1JUX0Mg
TVdpZGdldEV4dGVuc2lvbiogQ0JyQ3RsOjpDcmVhdGVXaWRnZXRFeHRlbnNpb25MKE1XaWRnZXRD
YWxsYmFjayYgYVdpZGdldENhbGxiYWNrKQ0KICAgICB7DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICAgcmV0dXJuIGlXZWJLaXRDb250cm9sLT5DcmVhdGVXaWRnZXRFeHRlbnNpb25M
KGFXaWRnZXRDYWxsYmFjayk7DQotI2Vsc2UNCi0gICAgcmV0dXJuIE5VTEw7DQotI2VuZGlmDQog
ICAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSW5kZXg6IFdlYktpdC9Ccm93c2Vy
Q29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJ
bnB1dFNraW4uY3BwCShyZXZpc2lvbiAyMTk3NykNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9y
bWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uY3BwCSh3b3JraW5nIGNvcHkpDQpA
QCAtNjMsMTAgKzYzLDcgQEANCiAjaW5jbHVkZSAiV2ViS2l0Vmlldy5oIg0KICNpbmNsdWRlICJX
ZWJLaXRDb250cm9sLmgiDQogI2luY2x1ZGUgIldlYktpdEJyaWRnZS5oIg0KLSNpZmRlZiBSRF9C
Uk9XU0VSX1dJREdFVFMNCiAjaW5jbHVkZSAiV2lkZ2V0RXh0ZW5zaW9uLmgiDQotI2VuZGlmDQot
DQogDQogdm9pZCBCckN0bFBhbmljKFRJbnQpOw0KIA0KQEAgLTM4Miw3ICszNzksNiBAQCB2b2lk
IENGb3JtRmlsZUlucHV0U2tpbjo6QWN0aXZhdGVMKCkNCiAgICAgd2Via2l0RnJhbWUtPldlYktp
dFZpZXcoKS5TZXREaWFsb2dMYXVuY2hlZChFVHJ1ZSk7DQogDQogDQotI2lmZGVmICBSRF9CUk9X
U0VSX1dJREdFVFMNCiAgICAgLy8gSWYgV2lkZ2V0IG1vZGUgYW5kIEFjY2VwdGVkIE1pbWUgVHlw
ZSBoYXMgYmVlbiBzZXQNCiAgICAgaWYgKHdlYktpdENvbnRyb2wtPldpZGdldEV4dGVuc2lvbigp
ICYmDQogICAgICAgICBpQWNjZXB0ZWRNaW1lVHlwZSAmJiBpQWNjZXB0ZWRNaW1lVHlwZS0+TGVu
Z3RoKCkpDQpAQCAtMzk1LDEwICszOTEsNiBAQCB2b2lkIENGb3JtRmlsZUlucHV0U2tpbjo6QWN0
aXZhdGVMKCkNCiAgICAgICAgIH0NCiAgICAgLy8gSWYgYSByZWNlbnQgcGF0aCBleGlzdHMsIHVz
ZSB0aGF0IGFzIHRoZSBzdGFydGluZyBwb2ludC4NCiAgICAgZWxzZSBpZiAoIHB0ck1vc3RSZWNl
bnRQYXRoLkxlbmd0aCgpICkNCi0jZWxzZQ0KLSAgICAvLyBJZiBhIHJlY2VudCBwYXRoIGV4aXN0
cywgdXNlIHRoYXQgYXMgdGhlIHN0YXJ0aW5nIHBvaW50Lg0KLSAgICBpZiAoIHB0ck1vc3RSZWNl
bnRQYXRoLkxlbmd0aCgpICkNCi0jZW5kaWYNCiAgICAgICAgIHsNCiAgICAgICAgIFRQYXJzZVB0
ckMgZmlsZU5hbWVQYXJzZXIoIHB0ck1vc3RSZWNlbnRQYXRoICk7DQogICAgICAgICAvLyBHZXQg
ZHJpdmUNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdENvbnRyb2wuaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9pbmMvV2ViS2l0Q29udHJvbC5oCShyZXZp
c2lvbiAyMTk3NykNCisrKyBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dlYktpdENvbnRyb2wuaAko
d29ya2luZyBjb3B5KQ0KQEAgLTkzLDkgKzkzLDcgQEAgY2xhc3MgQ1N0YXRpY0ltYWdlRGVjb2Rl
cjsNCiBjbGFzcyBDUGx1Z2luQ29udGVudFBsYXllcjsNCiBjbGFzcyBDV2ViS2l0T09NTm90aWZp
ZXI7DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBjbGFzcyBDV2lkZ2V0RXh0ZW5z
aW9uOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vIENMQVNTIERFQ0xBUkFU
SU9ODQogLyoqDQpAQCAtMzMwLDcgKzMyOCw2IEBAIGNsYXNzIENXZWJLaXRDb250cm9sIDogcHVi
bGljIENCYXNlDQogICAgICAgICAqLw0KICAgICAgICAgQ1dlYktpdFZpZXcqIENyZWF0ZVdpbmRv
dyhjb25zdCBURGVzQyYgYUZyYW1lTmFtZSxUQm9vbCBhVXNlckluaXRpYXRlZCk7DQogDQotI2lm
ZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBDcmVhdGVX
aWRnZXRFeHRlbnNpb24NCiAgICAgICAgICogUHVycG9zZTogQ3JlYXRlcyB0aGUgd2lkZ2V0IGV4
dGVuc2lvbiBvYmplY3QNCkBAIC0zMzksNyArMzM2LDYgQEAgY2xhc3MgQ1dlYktpdENvbnRyb2wg
OiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICogQHJldHVybiBNV2lkZ2V0RXh0ZW5zaW9uKg0KICAg
ICAgICAgKi8NCiAgICAgICAgIE1XaWRnZXRFeHRlbnNpb24qIENyZWF0ZVdpZGdldEV4dGVuc2lv
bkwoTVdpZGdldENhbGxiYWNrJiBhV2lkZ2V0Q2FsbGJhY2spIDsNCi0jZW5kaWYgLy9SRF9CUk9X
U0VSX1dJREdFVFMNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBGaW5kV2luZG93TmFtZWQN
CkBAIC01MjIsMTQgKzUxOCwxMiBAQCBjbGFzcyBDV2ViS2l0Q29udHJvbCA6IHB1YmxpYyBDQmFz
ZQ0KICAgICAgICAgKi8NCiAgICAgICAgIENCckN0bCYgQnJDdGwoKSBjb25zdCB7IHJldHVybiAq
aUJyQ3RsOyB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0K
ICAgICAgICAgKiBBc3NvY2lhdGVkIGJyb3dzZXIgY29udHJvbA0KICAgICAgICAgKiBAc2luY2Ug
My4wDQogICAgICAgICAqIEByZXR1cm4gQSByZWZlcmVuY2UgdG8gQnJDdGwNCiAgICAgICAgICov
DQogICAgICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiBXaWRnZXRFeHRlbnNpb24oKSBjb25zdCB7IHJl
dHVybiBpV2lkZ2V0RXh0ZW5zaW9uOyB9DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQog
DQogICAgICAgICAvKioNCiAgICAgICAgICogUmVzb3VyY2UgbG9hZGVyIHNldHRpbmdzIGNvbnRy
b2xsZXINCkBAIC05MzgsOSArOTMyLDcgQEAgY2xhc3MgQ1dlYktpdENvbnRyb2wgOiBwdWJsaWMg
Q0Jhc2UNCiANCiAgICAgICAgIHN0YXRpYyBUSW50IGlEZWZhdWx0Q2hhcnNldDsNCiANCi0jaWZk
ZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgQ1dpZGdldEV4dGVuc2lvbiogaVdpZGdl
dEV4dGVuc2lvbjsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgfTsNCiANCiAj
ZW5kaWYgICAgICAvLyBXRUJLSVRDT05UUk9MX0gNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcv
aW5jL3dlYmtpdGJyaWRnZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2lu
Yy93ZWJraXRicmlkZ2UuaAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3
L2luYy93ZWJraXRicmlkZ2UuaAkod29ya2luZyBjb3B5KQ0KQEAgLTkxLDcgKzkxLDYgQEAgY2xh
c3MgQ1dlYktpdEJyaWRnZSA6IHB1YmxpYyBDQmFzZSwgcHVibA0KIA0KICAgICBwdWJsaWM6IC8v
IE1ldGhvZHMgRnJvbSBNV2ViQ2xpZW50QnJpZGdlDQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBjcmVhdGVXaWRnZXRPYmplY3QNCiAgICAg
ICAgICogRnJvbSBNV2ViQ2xpZW50QnJpZGdlDQpAQCAtMTE4LDggKzExNyw2IEBAIGNsYXNzIENX
ZWJLaXRCcmlkZ2UgOiBwdWJsaWMgQ0Jhc2UsIHB1YmwNCiAgICAgICAgICogQHJldHVybiB2b2lk
Kg0KICAgICAgICAgKi8NCiAgICAgICAgIHZvaWQqIGNyZWF0ZVdpZGdldE1lbnVJdGVtT2JqZWN0
KCB2b2lkKiBleGVjICk7DQotDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogICAg
ICAgICAvKioNCiAgICAgICAgICogQ2hpbGRGcmFtZXMNCkluZGV4OiBXZWJLaXQvQnJvd3NlclZp
ZXcvc3JjL1dlYktpdENvbnRyb2wuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJW
aWV3L3NyYy9XZWJLaXRDb250cm9sLmNwcAkocmV2aXNpb24gMjE5NzgpDQorKysgV2ViS2l0L0Jy
b3dzZXJWaWV3L3NyYy9XZWJLaXRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTgzLDEw
ICs4Myw5IEBADQogI2luY2x1ZGUgIkh0dHBDYWNoZU1hbmFnZXIuaCINCiAjaW5jbHVkZSAiU3Rh
dGljSW1hZ2VEZWNvZGVyLmgiDQogI2luY2x1ZGUgPEFrbkluZm9Qb3B1cE5vdGVDb250cm9sbGVy
Lmg+DQorI2luY2x1ZGUgPEZlYXRNZ3IuaD4NCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VU
Uw0KICNpbmNsdWRlICJXaWRnZXRFeHRlbnNpb24uaCINCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJ
REdFVFMNCiANCiAjaW5jbHVkZSAiUGx1Z2luQ29udGVudFBsYXllci5oIg0KICNpbmNsdWRlICJQ
bHVnaW5Ta2luLmgiDQpAQCAtMjYyLDE0ICsyNjEsMTQgQEAgY2xhc3MgQ1dlYktpdE9PTU5vdGlm
aWVyIDogcHVibGljIE1PT01Obw0KICAgICBwdWJsaWM6DQogICAgICAgICBzdGF0aWMgQ1dlYktp
dE9PTU5vdGlmaWVyKiBOZXdMKCk7DQogICAgICAgICB+Q1dlYktpdE9PTU5vdGlmaWVyKCk7DQot
ICAgICAgICANCisNCiAgICAgICAgIC8vIGZyb20gTU9PTU5vdGlmaWVyDQogICAgICAgICBUSW50
IE5vdGlmeSgpOw0KLSAgICAgICAgDQorDQogICAgIHByaXZhdGU6DQogICAgICAgICBDQWtuSW5m
b1BvcHVwTm90ZUNvbnRyb2xsZXIqIGlJbmZvTm90ZTsNCiAgICAgfTsNCi0gICAgDQorDQogQ1dl
YktpdE9PTU5vdGlmaWVyKiBDV2ViS2l0T09NTm90aWZpZXI6Ok5ld0woKQ0KICAgICB7DQogICAg
IENXZWJLaXRPT01Ob3RpZmllciogc2VsZiA9IG5ldyAoRUxlYXZlKSBDV2ViS2l0T09NTm90aWZp
ZXI7DQpAQCAtMjg2LDE1ICsyODUsMTUgQEAgQ1dlYktpdE9PTU5vdGlmaWVyOjp+Q1dlYktpdE9P
TU5vdGlmaWVyKA0KIA0KIFRJbnQgQ1dlYktpdE9PTU5vdGlmaWVyOjpOb3RpZnkoKQ0KICAgICB7
DQotICAgIFRSQVBfSUdOT1JFKCANCisgICAgVFJBUF9JR05PUkUoDQogICAgICAgICBIQnVmQyog
c3RyID0gU3RyaW5nTG9hZGVyOjpMb2FkTEMoIFJfUVROX0JST1dTRVJfSU5GT05PVEVfT1VUX09G
X01FTU9SWSApOw0KICAgICAgICAgaUluZm9Ob3RlLT5TZXRUZXh0TCggKnN0ciApOw0KICAgICAg
ICAgaUluZm9Ob3RlLT5TZXRUaW1lRGVsYXlCZWZvcmVTaG93KCAwICk7DQogICAgICAgICBpSW5m
b05vdGUtPlNldFRpbWVQb3B1cEluVmlldyggNDAwMCApOyAgICAvLyA0IHNlY29uZHMNCi0gICAg
ICAgIGlJbmZvTm90ZS0+U2hvd0luZm9Qb3B1cE5vdGUoKTsgICAgICAgICAgICANCisgICAgICAg
IGlJbmZvTm90ZS0+U2hvd0luZm9Qb3B1cE5vdGUoKTsNCiAgICAgICAgIENsZWFudXBTdGFjazo6
UG9wQW5kRGVzdHJveSgpOw0KLSAgICAgICAgKSAgIA0KLSAgICByZXR1cm4gMDsgICAgICAgICAg
ICAgICAgICAgICANCisgICAgICAgICkNCisgICAgcmV0dXJuIDA7DQogICAgIH0NCiAjZW5kaWYN
CiANCkBAIC0zMTcsOCArMzE2LDggQEAgQ1N0YXRpY09iamVjdENvbnRhaW5lciYgQ1N0YXRpY09i
amVjdENvbg0KICAgICAgICB9DQogICAgIHJldHVybiAqaUluc3RhbmNlOw0KICAgICB9DQotICAg
IA0KLSAgICANCisNCisNCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLyBDU3RhdGljT2Jq
ZWN0Q29udGFpbmVyOjpDU3RhdGljT2JqZWN0Q29udGFpbmVyDQogLy8gY29uc3RydWN0b3INCkBA
IC0zMjYsNyArMzI1LDcgQEAgQ1N0YXRpY09iamVjdENvbnRhaW5lciYgQ1N0YXRpY09iamVjdENv
bg0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIENTdGF0aWNPYmplY3RDb250YWluZXI6OkNT
dGF0aWNPYmplY3RDb250YWluZXIoKQ0KICAgICB7DQotI2lmZGVmIF9fT09NX18gICAgICAgIA0K
KyNpZmRlZiBfX09PTV9fDQogICAgIFRSQVBfSUdOT1JFKGlPT01Ob3RpZmllciA9IENXZWJLaXRP
T01Ob3RpZmllcjo6TmV3TCgpKTsNCiAgICAgTWVtb3J5TWFuYWdlcjo6U2V0Tm90aWZpZXIoIGlP
T01Ob3RpZmllciApOw0KICNlbmRpZg0KQEAgLTQ1Niw3ICs0NTUsNyBAQCBDRm9ybURhdGFNYW5h
Z2VyKiBDU3RhdGljT2JqZWN0Q29udGFpbmVyDQogICAgIGlmIChhQnJDdGwuQ2FwYWJpbGl0aWVz
KCkgJiBUQnJDdGxEZWZzOjpFQ2FwYWJpbGl0eUF1dG9Gb3JtRmlsbCAmJiAhaUZvcm1EYXRhTWFu
YWdlcikNCiAgICAgICAgIHsNCiAgICAgICAgIC8vIENyZWF0ZSBkYXRhIG1hbmFnZXIgZm9yIGF1
dG8gZm9ybSBmaWxsDQotICAgICAgICBpRm9ybURhdGFNYW5hZ2VyID0gQ0Zvcm1EYXRhTWFuYWdl
cjo6TmV3TChhQnJDdGwuQnJDdGxEaWFsb2dzUHJvdmlkZXIoKSwgDQorICAgICAgICBpRm9ybURh
dGFNYW5hZ2VyID0gQ0Zvcm1EYXRhTWFuYWdlcjo6TmV3TChhQnJDdGwuQnJDdGxEaWFsb2dzUHJv
dmlkZXIoKSwNCiAgICAgICAgICAgICBhQnJDdGwuV2ViS2l0Q29udHJvbCgpLT5HZXRCcm93c2Vy
U2V0dGluZ0woVEJyQ3RsRGVmczo6RVNldHRpbmdzQXV0b0Zvcm1GaWxsRW5hYmxlZCkgKTsNCiAg
ICAgICAgIH0NCiAgICAgcmV0dXJuIGlGb3JtRGF0YU1hbmFnZXI7DQpAQCAtNTMxLDcgKzUzMCw3
IEBAIENCckN0bERvd25sb2FkT2JzZXJ2ZXImIENTdGF0aWNPYmplY3RDb24NCiAgICAgew0KICAg
ICBpZiggIWlEb3dubG9hZE9ic2VydmVyICkNCiAgICAgICAgIHsNCi0gICAgICAgIC8vIGluaXQg
DQorICAgICAgICAvLyBpbml0DQogICAgICAgICBpRG93bmxvYWRPYnNlcnZlciA9IG5ldyAoRUxl
YXZlKSBDQnJDdGxEb3dubG9hZE9ic2VydmVyOw0KICAgICAgICAgfQ0KICAgICByZXR1cm4gKmlE
b3dubG9hZE9ic2VydmVyOw0KQEAgLTU4OCw3ICs1ODcsNyBAQCB2b2lkIENTdGF0aWNPYmplY3RD
b250YWluZXI6OkluaXRpYWxpemVGDQogICAgIFBsdWdpbkhhbmRsZXJMKGFCckN0bCk7DQogICAg
IC8vDQogICAgIExvYWRlckNvbnRhaW5lckwoIGFCckN0bCApOw0KLSAgICBEb3dubG9hZE9ic2Vy
dmVyKCk7ICAgIA0KKyAgICBEb3dubG9hZE9ic2VydmVyKCk7DQogICAgIC8vIHNhdmUgcGFnZXMg
Y2FwYWJpbGl0eQ0KICAgICBpSW1nUmVuZGVyZXJGYWN0b3J5LT5TZXRTYXZlSW1hZ2VEYXRhKCBp
TG9hZGVyQ29udGFpbmVyLT5DYXBhYmlsaXRpZXMoKSAmIFRCckN0bERlZnM6OkVDYXBhYmlsaXR5
U2F2ZWRQYWdlICk7DQogDQpAQCAtNjEzLDcgKzYxMiw3IEBAIENXZWJLaXRDb250cm9sOjpDV2Vi
S2l0Q29udHJvbCgNCiAgICAgQ0JyQ3RsJiBhQnJDdGwgKQ0KICAgICA6IGlCckN0bCggJmFCckN0
bCApLA0KICAgICBpQ2FjaGVNb2RlKCBUQnJDdGxEZWZzOjpFQ2FjaGVNb2RlTm9ybWFsICksDQot
ICAgIGlIZWFkZXJBcnJpdmVkKEVGYWxzZSksICAgIA0KKyAgICBpSGVhZGVyQXJyaXZlZChFRmFs
c2UpLA0KICAgICBpSW5pdGlhbFByb2dyZXNzUGVyY2VudGFnZSggS01pbkluaXRpYWxQcm9ncmVz
c1BlcmNlbnRhZ2UgKQ0KICAgICB7DQogICAgIH0NCkBAIC02NDUsNyArNjQ0LDcgQEAgdm9pZCBD
V2ViS2l0Q29udHJvbDo6Q29uc3RydWN0TCgpDQogICAgIGxvYWRlckNvbnRhaW5lci0+U2V0Q29v
a2llc0VuYWJsZWQoIEdldEJyb3dzZXJTZXR0aW5nTCggVEJyQ3RsRGVmczo6RVNldHRpbmdzQ29v
a2llc0VuYWJsZWQgKSApOw0KICAgICAvLw0KICAgICBsb2FkZXJDb250YWluZXItPlNldERvd25s
b2Fkc09wZW5FbmFibGVkKCBHZXRCcm93c2VyU2V0dGluZ0woIFRCckN0bERlZnM6OkVTZXR0aW5n
c0F1dG9PcGVuRG93bmxvYWRzICkgKTsNCi0gICAgLy8gICAgDQorICAgIC8vDQogICAgIGxvYWRl
ckNvbnRhaW5lci0+U2V0QnJvd3NlckVtYmVkZGVkKCBHZXRCcm93c2VyU2V0dGluZ0woIFRCckN0
bERlZnM6OkVTZXR0aW5nc0VtYmVkZGVkICkgKTsNCiAgICAgLy8NCiAgICAgbG9hZGVyQ29udGFp
bmVyLT5TZXRMb2FkT2JzZXJ2ZXJzKCAqKGlCckN0bC0+QnJDdGxTcGVjaWFsTG9hZE9ic2VydmVy
KCkpLCAqKGlCckN0bC0+QnJDdGxEb3dubG9hZE9ic2VydmVyKCkpLA0KQEAgLTY2MSw3ICs2NjAs
NyBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpDb25zdHJ1Y3RMKCkNCiAgICAgICAgIHsNCiAgICAg
ICAgIENSZXBvc2l0b3J5KiByZXAgPSBDUmVwb3NpdG9yeTo6TmV3TCggS0NSVWlkQnJvd3NlciAp
Ow0KICAgICAgICAgcmVwLT5HZXQoIEtCcm93c2VyRGVmYXVsdENoYXJzZXQsIGlEZWZhdWx0Q2hh
cnNldCApOw0KLSAgICAgICAgZGVsZXRlIHJlcDsgDQorICAgICAgICBkZWxldGUgcmVwOw0KICAg
ICAgICAgfQ0KICAgICB9DQogDQpAQCAtNzIxLDExICs3MjAsOSBAQCBDV2ViS2l0Q29udHJvbDo6
fkNXZWJLaXRDb250cm9sKCkNCiANCiAgICAgLy8gY2xlYXVwIHRoZSBzdGF0aWMgb2JqZWN0DQog
ICAgIENTdGF0aWNPYmplY3RDb250YWluZXI6Okluc3RhbmNlKCkuRGVyZWYoKTsNCi0jaWZkZWYg
IFJEX0JST1dTRVJfV0lER0VUUw0KICAgICBkZWxldGUgaVdpZGdldEV4dGVuc2lvbjsNCi0jZW5k
aWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgfQ0KLSAgICANCisNCiANCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KIC8vIENXZWJLaXRDb250cm9sOjpTZXRCcm93c2VyU2V0dGluZw0KQEAg
LTg0NCw3ICs4NDEsNyBAQCBUVWludCBDV2ViS2l0Q29udHJvbDo6R2V0QnJvd3NlclNldHRpbmdM
DQogICAgICAgICAgICAgICAgIFRCckN0bERlZnM6OlRCckN0bFNldHRpbmdzKCBhU2V0dGluZyAp
KS5Cb29sVmFsdWUoKTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICB9DQotICAg
ICAgICAgICAgDQorDQogICAgICAgICAvLyBJbnRlZ2VyIHNldHRpbmcgdmFsdWVzDQogICAgICAg
ICBjYXNlIFRCckN0bERlZnM6OkVTZXR0aW5nc0ZvbnRTaXplOg0KICAgICAgICAgY2FzZSBUQnJD
dGxEZWZzOjpFU2V0dGluZ3NDaGFyYWN0ZXJzZXQ6DQpAQCAtOTQ3LDggKzk0NCw4IEBAIEhCdWZD
KiBDV2ViS2l0Q29udHJvbDo6UGFnZUluZm9MQygNCiAgICAgICAgICAgICBicmVhazsNCiAgICAg
ICAgICAgICB9DQogICAgICAgICBjYXNlIFRCckN0bERlZnM6OkVQYWdlSW5mb1NhdmVkUGFnZToN
Ci0gICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgDQotICAgICAgICAgICAgcGFn
ZUluZm8gPSBHZW5lcmF0ZVNhdmVkUGFnZUwoKTsgICAgICAgICAgICAgICAgICAgDQorICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgIHBhZ2VJbmZvID0gR2VuZXJhdGVTYXZlZFBhZ2VMKCk7DQog
ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgY2FzZSBUQnJDdGxE
ZWZzOjpFUGFnZUluZm9Gb2N1c2VkTm9kZVVybDoNCkBAIC0xMTU4LDcgKzExNTUsNyBAQCB2b2lk
IENXZWJLaXRDb250cm9sOjpIYW5kbGVMb2FkZXJDb21tYW5kDQogICAgICAgICAgICAgQ1dlYktp
dEZyYW1lKiBmcmFtZSA9ICYoaVdlYktpdFZpZXctPk1haW5GcmFtZSgpKTsNCiAgICAgICAgICAg
ICB3aGlsZSggZnJhbWUgKQ0KICAgICAgICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgIC8v
TGV0IGFsbCBjb25uZWN0aW9uIHRvIGNsb3NlIGZpcnN0IHRoZW4gRGVyZWYoKSANCisgICAgICAg
ICAgICAgICAgLy9MZXQgYWxsIGNvbm5lY3Rpb24gdG8gY2xvc2UgZmlyc3QgdGhlbiBEZXJlZigp
DQogICAgICAgICAgICAgICAgIC8vd2hlbiBkaXNjb25uZWN0ZWQgYnkgdGhlIHVzZXIuDQogICAg
ICAgICAgICAgICAgIENXZWJLaXRGcmFtZSogY3VycmVudEZyYW1lID0gZnJhbWU7DQogICAgICAg
ICAgICAgICAgIGN1cnJlbnRGcmFtZS0+UmVmKCk7DQpAQCAtMTE3NSwxMSArMTE3MiwxMSBAQCB2
b2lkIENXZWJLaXRDb250cm9sOjpIYW5kbGVMb2FkZXJDb21tYW5kDQogI2lmIFBST0dSRVNTX0xP
Rw0KICAgICAgICAgICAgIHdrRGVidWcoKTw8InVzZXIgY2FuY2VsIjw8Zmx1c2g7DQogI2VuZGlm
IC8vIFBST0dSRVNTX0xPRw0KLSAgICAgICAgICAgIC8vICAgICAgICANCisgICAgICAgICAgICAv
Lw0KICAgICAgICAgICAgIEZpbmFsUHJvZ3Jlc3NDb21wbGV0ZShhRXJyb3IpOw0KICAgICAgICAg
ICAgIGlDYW5jZWxUaW1lci0+Q2FuY2VsKCk7DQogICAgICAgICAgICAgaUNhbmNlbFRpbWVyLT5T
dGFydCggMCwgMCwgVENhbGxCYWNrKCAmQ2FuY2VsQ2FsbGJhY2ssIHRoaXMgKSApOw0KLSAgICAg
ICAgICAgIGlDYW5jZWxJblByb2dyZXNzID0gRVRydWU7ICAgICAgICAgICAgDQorICAgICAgICAg
ICAgaUNhbmNlbEluUHJvZ3Jlc3MgPSBFVHJ1ZTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAg
ICAgICAgICB9DQogICAgICAgICBkZWZhdWx0Og0KQEAgLTEyMDMsNyArMTIwMCw3IEBAIHZvaWQg
Q1dlYktpdENvbnRyb2w6OlN5bmNDYW5jZWxMKCkNCiAjZW5kaWYgLy8gUFJPR1JFU1NfTE9HDQog
ICAgIGlTeW5jQ2FuY2VsID0gRVRydWU7DQogICAgIGlDYW5jZWxUaW1lci0+Q2FuY2VsKCk7DQot
IA0KKw0KICAgICBpZiAoIGlXZWJLaXRWaWV3LT5UYWJiZWROYXZpZ2F0aW9uKCkpDQogICAgICAg
ICB7DQogICAgICAgICBUV2ViQ29yZUZvY3VzZWRFbGVtZW50VHlwZSBlbFR5cGUgPSBFV2ViQ29y
ZUVsZW1lbnROb25lOw0KQEAgLTEyMjEsNyArMTIxOCw3IEBAIHZvaWQgQ1dlYktpdENvbnRyb2w6
OlN5bmNDYW5jZWxMKCkNCiAgICAgICAgICAgICBpV2ViS2l0Vmlldy0+U2V0Rm9jdXNlZEVsZW1l
bnRUeXBlKCAoVEJyQ3RsRGVmczo6VEJyQ3RsRWxlbWVudFR5cGUpZWxUeXBlICk7DQogICAgICAg
ICAgICAgfQ0KICAgICAgICAgfQ0KLSAgICAgICAgDQorDQogICAgIENXZWJLaXRGcmFtZSogZnJh
bWUgPSAmKGlXZWJLaXRWaWV3LT5NYWluRnJhbWUoKSk7DQogICAgIHdoaWxlKCBmcmFtZSApDQog
ICAgICAgICB7DQpAQCAtMTIzMCw4ICsxMjI3LDggQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6U3lu
Y0NhbmNlbEwoKQ0KICAgICAgICAgLy8NCiAgICAgICAgIH0NCiAgICAgaVN5bmNDYW5jZWwgPSBF
RmFsc2U7DQotIA0KLSAgICBpSGlzdG9yeUNvbnRyb2xsZXItPkNhbmNlbFJlc2V0RW50cnlQb3Np
dGlvbkwoKTsgICAgDQorDQorICAgIGlIaXN0b3J5Q29udHJvbGxlci0+Q2FuY2VsUmVzZXRFbnRy
eVBvc2l0aW9uTCgpOw0KICAgICBpQnJDdGwtPkhhbmRsZUJyb3dzZXJMb2FkRXZlbnRMKCBUQnJD
dGxEZWZzOjpFRXZlbnRDb250ZW50RmluaXNoZWQsIDAsIDAgKTsNCiANCiAgICAgLy8gcmVsZWFz
ZSBjYW5jZWwgcHJvdGVjdGlvbiB1bmxlc3MgdGhlcmUgaXMgc29tZSBvdXRzdGFuZGluZw0KQEAg
LTE1MjMsNyArMTUyMCw3IEBAIENIaXN0b3J5VmlldyogQ1dlYktpdENvbnRyb2w6Okhpc3RvcnlW
aWUNCiAgICAgcmV0dXJuIGlIaXN0b3J5Q29udHJvbGxlci0+SGlzdG9yeVZpZXcoICk7DQogI2Vs
c2UNCiAgICAgcmV0dXJuIE5VTEw7DQotI2VuZGlmIA0KKyNlbmRpZg0KICAgICB9DQogDQogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0xNjgzLDcgKzE2ODAsNyBAQCB2b2lkIENXZWJLaXRD
b250cm9sOjpJbmNyZW1lbnRQcm9ncmVzc0ZvDQogICAgIC8vIGNvbnRlbnQgc2l6ZSBtaW51cyB0
aGUgbGFzdCByZWNlaXZlZCBjb250ZW50IHNpemUNCiAgICAgVEludCBieXRlc1JlY2VpdmVkKCBh
UmVjZWl2ZWRDb250ZW50U2l6ZSAtIGl0ZW0uaUJ5dGVzUmVjZWl2ZWQgKTsNCiANCi0gICAgLy8g
QWRqdXN0IGlmIHRoZSB0b3RhbCByZWNlaXZlZCBieXRlcyBpcyBkaWZmZXJlbnQgdGhhbiBvdXIg
ZXN0aW1hdGUgDQorICAgIC8vIEFkanVzdCBpZiB0aGUgdG90YWwgcmVjZWl2ZWQgYnl0ZXMgaXMg
ZGlmZmVyZW50IHRoYW4gb3VyIGVzdGltYXRlDQogICAgIGl0ZW0uaUJ5dGVzUmVjZWl2ZWQgPSBh
UmVjZWl2ZWRDb250ZW50U2l6ZTsNCiAgICAgaWYgKCBpdGVtLmlCeXRlc1JlY2VpdmVkID4gaXRl
bS5pRXN0aW1hdGVkTGVuZ3RoICkNCiAgICAgICAgIHsNCkBAIC0xNjk5LDcgKzE2OTYsNyBAQCB2
b2lkIENXZWJLaXRDb250cm9sOjpJbmNyZW1lbnRQcm9ncmVzc0ZvDQogICAgIFRJbnQgbnVtUGVu
ZGluZ09yTG9hZGluZ1JlcXVlc3RzKCBpV2ViS2l0Vmlldy0+TWFpbkZyYW1lKCkuTnVtUGVuZGlu
Z09yTG9hZGluZ1JlcXVlc3RzKCkgKTsNCiAgICAgVEludCBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRp
bmdSZXF1ZXN0cyA9IEtXZWJQcm9ncmVzc0l0ZW1EZWZhdWx0RXN0aW1hdGVkTGVuZ3RoICoNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVBlbmRpbmdPckxv
YWRpbmdSZXF1ZXN0czsNCi0gICAgDQorDQogICAgIC8vIENhbGN1bGF0ZSB0aGUgYW1vdW50IHRv
IGluY3JlbWVudCB0aGUgcHJvZ3Jlc3MgYmFyDQogICAgIFRJbnQgcmVtYWluaW5nQnl0ZXMgPSAo
KCBpVG90YWxQYWdlQW5kUmVzb3VyY2VCeXRlc1RvTG9hZCArDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1ZXN0cyApIC0NCkBAIC0xODQ4
LDcgKzE4NDUsNyBAQCB2b2lkIENXZWJLaXRDb250cm9sOjpGaW5hbFByb2dyZXNzQ29tcGxlDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsIDAgKTsNCiAgICAg
ICAgIH0NCiAgICAgUmVzZXRQcm9ncmVzcygpOw0KLSAgICAgICAgDQorDQogICAgIGlCckN0bC0+
SGFuZGxlQnJvd3NlckxvYWRFdmVudEwoIFRCckN0bERlZnM6OkVFdmVudFVybExvYWRpbmdGaW5p
c2hlZCwgMCwgMCApOw0KICAgICBpQnJDdGwtPkhhbmRsZUJyb3dzZXJMb2FkRXZlbnRMKCBUQnJD
dGxEZWZzOjpFRXZlbnRDb250ZW50RmluaXNoZWQsIDAsIDAgKTsNCiAgICAgaUJyQ3RsLT5IYW5k
bGVCcm93c2VyTG9hZEV2ZW50TCggVEJyQ3RsRGVmczo6RUV2ZW50TG9hZEZpbmlzaGVkLCAwLCAw
ICk7DQpAQCAtMTg5Miw3ICsxODg5LDcgQEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6RmluYWxQcm9n
cmVzc0NvbXBsZQ0KIC8vIGZyYW1lcy4gVGhlIHByb2dyZXNzIGJhciBuZWVkcyB0byBtb3ZlIGlu
IGEgcG9zaXRpdmUgZGlyZWN0aW9uIGFuZCBub3QgZ28NCiAvLyBiYWNrLCB3aGVuIG91ciBuZXcg
ZXN0aW1hdGVkIHByb2dyZXNzIGlzIGxlc3MgdGhlbiBvdXIgbGFzdCBlc3RpbWF0ZS4gSWUsDQog
Ly8gaWYgd2UgZ3Vlc3Mgd2UncmUgYXQgMjAlIGFuZCB0aGUgbmV4dCBjaHVjayBtYWtlcyBvdXIg
Z3Vlc3MgMTglLCB3ZSBsZWF2ZSB0aGUNCi0vLyBwcm9ncmVzcyBiYXIgYXQgMjAlLiANCisvLyBw
cm9ncmVzcyBiYXIgYXQgMjAlLg0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogdm9pZCBDV2Vi
S2l0Q29udHJvbDo6UHJvZ3Jlc3NVcGRhdGUoKQ0KICAgICB7DQpAQCAtMjI5NSw3ICsyMjkyLDYg
QEAgdm9pZCBDV2ViS2l0Q29udHJvbDo6Rm9yZWdyb3VuZEV2ZW50KFRCbw0KICAgICAgICAgaVdl
YktpdFZpZXctPlN5bmNSZXBhaW50KCBpV2ViS2l0Vmlldy0+TWFpbkZyYW1lKCkuVmlzaWJsZVJl
Y3QoKSApOw0KICAgICAgICAgfQ0KICAgICB9DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMN
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENXZWJLaXRDb250cm9sOjpDcmVhdGVXaWRn
ZXRFeHRlbnNpb24NCiAvLw0KQEAgLTIzMDMsMTQgKzIyOTksMTYgQEAgdm9pZCBDV2ViS2l0Q29u
dHJvbDo6Rm9yZWdyb3VuZEV2ZW50KFRCbw0KIC8vDQogTVdpZGdldEV4dGVuc2lvbiogQ1dlYktp
dENvbnRyb2w6OkNyZWF0ZVdpZGdldEV4dGVuc2lvbkwoTVdpZGdldENhbGxiYWNrJiBhV2lkZ2V0
Q2FsbGJhY2spDQogICAgIHsNCi0gICAgaWYoICFpV2lkZ2V0RXh0ZW5zaW9uICkNCisgICAgaWYg
KEZlYXR1cmVNYW5hZ2VyOjpGZWF0dXJlU3VwcG9ydGVkKEtGZWF0dXJlSWRXZWJXaWRnZXRzKSkN
CiAgICAgICAgIHsNCi0gICAgICAgIGlXaWRnZXRFeHRlbnNpb24gPSBDV2lkZ2V0RXh0ZW5zaW9u
OjpOZXdMKCppV2ViS2l0VmlldyxhV2lkZ2V0Q2FsbGJhY2spOw0KKyAgICAgICAgaWYoICFpV2lk
Z2V0RXh0ZW5zaW9uICkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgaVdpZGdldEV4dGVu
c2lvbiA9IENXaWRnZXRFeHRlbnNpb246Ok5ld0woKmlXZWJLaXRWaWV3LGFXaWRnZXRDYWxsYmFj
ayk7DQorICAgICAgICAgICAgfQ0KKw0KICAgICAgICAgfQ0KLSAgICBQbHVnaW5IYW5kbGVyKCku
TG9hZFBsdWdpbnNTeW5jTCgpOw0KICAgICByZXR1cm4gaVdpZGdldEV4dGVuc2lvbjsNCiAgICAg
fQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KIC8vIENhbGxlZCB3aGVuIHVzZXIgY2xpY2tzIGEgcGx1Z2luIHdoaWNoIGlzIGFibGUg
dG8gYWNjZXB0IHVzZXIgaW5wdXQsDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3L3NyYy9XZWJL
aXRWaWV3LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2ViS2l0
Vmlldy5jcHAJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvV2Vi
S2l0Vmlldy5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC02MiwxMSArNjIsOSBAQA0KICNpbmNsdWRl
ICJXZWJLaXRUb29sQmFySW50ZXJmYWNlLmgiDQogI2luY2x1ZGUgIlRvb2xCYXIuaCINCiAjaW5j
bHVkZSAiQW5pbWF0aW9uRGVjb2Rlci5oIg0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQog
I2luY2x1ZGUgIldpZGdldEV4dGVuc2lvbi5oIg0KICNpbmNsdWRlICJXaWRnZXRFbmdpbmVCcmlk
Z2UuaCINCiAjaW5jbHVkZSAiV2lkZ2V0UmVuZGVyZXIuaCINCi0jZW5kaWYgLy9SRF9CUk9XU0VS
X1dJREdFVFMNCiAjaW5jbHVkZSAiRmVhdE1nci5oIg0KICNpbmNsdWRlICJXZWJDb3JlRm9ybUNv
bnRyb2xGYWN0b3J5LmgiDQogI2luY2x1ZGUgIkZDb250cm9sSW5wdXRXaWRnZXQuaCINCkBAIC02
MjQsNyArNjIyLDYgQEAgdm9pZCBDV2ViS2l0Vmlldzo6TWFrZVZpc2libGUoDQogICAgICAgICBy
ZXR1cm47DQogICAgICAgICB9DQogICAgIFNldFZpZXdWaXNpYmxlKGFWaXNpYmxlKTsNCi0jaWZk
ZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICBDV2lkZ2V0RXh0ZW5zaW9uKiB3ZGd0RXh0ID0g
aVdlYktpdENvbnRyb2wtPldpZGdldEV4dGVuc2lvbigpOw0KICAgICBpZiggd2RndEV4dCApDQog
ICAgICAgICB7DQpAQCAtNjM0LDcgKzYzMSw2IEBAIHZvaWQgQ1dlYktpdFZpZXc6Ok1ha2VWaXNp
YmxlKA0KICAgICAgICAgICAgIHdkZ3RCcmlkZ2UtPlNldFdpZGdldFZpc2liaWxpdHkoYVZpc2li
bGUpOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJ
REdFVFMNCiAgICAgfQ0KIA0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQEAgLTkyMSw3ICs5
MTcsNiBAQCB2b2lkIENXZWJLaXRWaWV3OjpEcmF3KA0KICAgICAvLyBwdXQgb2Zmc2NyZWVuIGJp
dG1hcCBvbnRvIHRoZSBzY3JlZW4NCiAgIGlSZW5kZXJUYXJnZXQtPkZsaXAoIFJlY3QoKS5pVGws
IGdjICk7DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgQ1dpZGdldEV4dGVu
c2lvbiogd2RndEV4dCA9IGlXZWJLaXRDb250cm9sLT5XaWRnZXRFeHRlbnNpb24oKTsNCiAgICAg
aWYgKHdkZ3RFeHQpDQogICAgICAgICB7DQpAQCAtOTMxLDcgKzkyNiw2IEBAIHZvaWQgQ1dlYktp
dFZpZXc6OkRyYXcoDQogICAgICAgICAgICAgd2lkZ2V0UmVuZGVyZXItPkRyYXdUcmFuc2l0aW9u
KGdjLCBPZmZzY3JlZW5CaXRtYXAoKSk7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KLSNl
bmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICAgICBpZiAoaUlzUGFnZVNjYWxlckVuYWJsZWQp
DQogICAgICAgICB7DQogICAgICAgICBpUGFnZVNjYWxlci0+RHJhdyggZ2MsYVJlY3QgKTsNCklu
ZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL3dlYmtpdGJyaWRnZS5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJLaXQvQnJvd3NlclZpZXcvc3JjL3dlYmtpdGJyaWRnZS5jcHAJKHJldmlzaW9uIDIx
OTc3KQ0KKysrIFdlYktpdC9Ccm93c2VyVmlldy9zcmMvd2Via2l0YnJpZGdlLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTUxLDkgKzUxLDcgQEANCiAjaW5jbHVkZSAiSGlzdG9yeUNvbnRyb2xsZXIu
aCINCiAjaW5jbHVkZSAiTG9hZGVyVXRpbHMuaCINCiAjaW5jbHVkZSAiV2ViS2l0TG9nZ2VyLmgi
DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAjaW5jbHVkZSAiV2lkZ2V0RXh0ZW5zaW9u
LmgiDQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogLy9DT05TVEFOVFMNCiBfTElU
KEtEYXRlU3RyaW5nLCAiJS1CJTowJUolOjElVCU6MiVTJS4lKkM0JTozJStCIik7DQpAQCAtMTM2
Niw3ICsxMzY0LDYgQEAgdm9pZCBDV2ViS2l0QnJpZGdlOjpTZXRGb3JtQ29udHJvbFRleHRCeQ0K
ICAgICB9DQogICB9DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiB2b2lkKiBDV2Vi
S2l0QnJpZGdlOjpjcmVhdGVXaWRnZXRPYmplY3QoIHZvaWQqIGV4ZWMgKQ0KICAgICB7DQogICAg
IENXaWRnZXRFeHRlbnNpb24qIHdkZ3RFeHQgPSANCkBAIC0xNDA1LDUgKzE0MDIsNCBAQCB2b2lk
KiBDV2ViS2l0QnJpZGdlOjpjcmVhdGVXaWRnZXRNZW51SXRlDQogDQogICAgIHJldHVybiAwOw0K
ICAgICB9DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogLy8gZW5kIG9mIGZpbGUNCklu
ZGV4OiBXZWJLaXQvUGx1Z2luL2luYy9QbHVnaW5IYW5kbGVyLmgNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJLaXQvUGx1Z2luL2luYy9QbHVnaW5IYW5kbGVyLmgJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdl
YktpdC9QbHVnaW4vaW5jL1BsdWdpbkhhbmRsZXIuaAkod29ya2luZyBjb3B5KQ0KQEAgLTEzNywx
NiArMTM3LDYgQEAgY2xhc3MgQ1BsdWdpbkhhbmRsZXIgOiBwdWJsaWMgQ0Jhc2UsIHB1Yg0KICAg
ICAgICAgKi8NCiAgICAgICAgIFRVaW50IEdldEluZGV4RnJvbUhhbmRsZShUSW50IGFIYW5kbGUp
Ow0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQotICAgICAgICAvKioNCi0gICAgICAg
ICogR2V0IHRoZSBpbmRleCBvZiBwbHVnaW4gaW5mbyBmcm9tIGl0cyBoYW5kbGUuDQotICAgICAg
ICAqDQotICAgICAgICAqIEBzaW5jZSAzLjENCi0gICAgICAgICogQHBhcmFtIGFIYW5kbGUgVGhl
IGhhbmRsZSBvZiB0aGUgcGx1Z2luLCByZXR1cm5lZCBmcm9tIEZpbmRQbHVnaW4uDQotICAgICAg
ICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBwbHVnaW4gaW5mby4NCi0gICAgICAgICovDQot
ICAgICAgICBUQm9vbCBMb2FkUGx1Z2luc1N5bmNMKCk7DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9X
SURHRVRTDQogICAgIHB1YmxpYzogLy9Gcm9tIE1XZWJDb3JlUGx1Z2luSGFuZGxlcg0KICAgICAg
ICAgLyoqDQogICAgICAgICAqIFNjYW5zIGZvciBuZXcgcGx1Z2lucy4NCkluZGV4OiBXZWJLaXQv
UGx1Z2luL2luYy9QbHVnaW5Ta2luLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUGx1Z2luL2lu
Yy9QbHVnaW5Ta2luLmgJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdlYktpdC9QbHVnaW4vaW5jL1Bs
dWdpblNraW4uaAkod29ya2luZyBjb3B5KQ0KQEAgLTM3Nyw3ICszNzcsNiBAQCBjbGFzcyBDUGx1
Z2luU2tpbiA6IHB1YmxpYyBDQmFzZSwNCiAgICAgICAgICovDQogICAgICAgICBUQm9vbCBDYW5J
bnRlcmFjdCgpIGNvbnN0ICAgICAgICAgICB7IHJldHVybiBpQ2FuUGx1Z2luSW50ZXJhY3Q7IH0N
CiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQogICAgICAgICAq
IEdldCB0aGUgc2NyaXB0aW5nIG9iamVjdCBmcm9tIHBsdWdpbg0KICAgICAgICAgKiBTZXRzIHRo
ZSBmb250DQpAQCAtMzg1LDcgKzM4NCw3IEBAIGNsYXNzIENQbHVnaW5Ta2luIDogcHVibGljIENC
YXNlLA0KICAgICAgICAgKiBAcmV0dXJuDQogICAgICAgICAqLw0KICAgICAgICAgdm9pZCAqUGx1
Z2luU2NyaXB0YWJsZU9iamVjdCgpOyANCi0jZW5kaWYNCisNCiAgIHB1YmxpYzogLy8gRnVuY3Rp
b25zIGZyb20gTVZpZXdGb2N1c09ic2VydmVyDQogDQogICAgICAgICAvKioNCkluZGV4OiBXZWJL
aXQvUGx1Z2luL2luYy9QbHVnaW5XaW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9QbHVnaW4v
aW5jL1BsdWdpbldpbi5oCShyZXZpc2lvbiAyMTk3NykNCisrKyBXZWJLaXQvUGx1Z2luL2luYy9Q
bHVnaW5XaW4uaAkod29ya2luZyBjb3B5KQ0KQEAgLTU4LDkgKzU4LDcgQEAgY2xhc3MgQ1dlYktp
dENvbnRyb2w7DQogY2xhc3MgQ1BsdWdpblNraW47DQogY2xhc3MgQ1BsdWdpbkhhbmRsZXI7DQog
Y2xhc3MgQ0JpdG1hcENvbnRleHQ7DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBjbGFz
cyBOUE9iamVjdDsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAvLyBMT0NBTCBD
T05TVEFOVFMgQU5EIE1BQ1JPUw0KIC8vIFRoZXNlIGFyZSB1c2VkIHRvIGRlc2lnbmF0ZSB0aGUg
aGFuZGxpbmcgb2YgaW5jb21pbmcgY29udGVudCBhbmQgbG9hZGluZyBQbHVnaW5zDQpAQCAtNDkw
LDcgKzQ4OCw2IEBAIGNsYXNzIENQbHVnaW5XaW4gOiAgcHVibGljIENDb2VDb250cm9sLA0KICAg
ICAgICAgKi8NCiAgICAgdm9pZCBIYW5kbGVMb3NpbmdGb3JlZ3JvdW5kKCk7DQogDQotI2lmZGVm
ICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBSZXR1cm4gd2lu
ZG93IG9iamVjdCB1c2FibGUgZnJvbSBzY3JpcHRhYmxlIHBsdWdpbnMNCiAgICAgICAgICogQHNp
bmNlIDMuMQ0KQEAgLTUwNCw3ICs1MDEsNiBAQCBjbGFzcyBDUGx1Z2luV2luIDogIHB1YmxpYyBD
Q29lQ29udHJvbCwNCiAgICAgICAgICogQHJldHVybg0KICAgICAgICAgKi8NCiAgICAgICAgIHZv
aWQgKlBsdWdpblNjcmlwdGFibGVPYmplY3QoKTsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdF
VFMNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBTZXRzIHRoZSBwbHVnaW4ncyBiZWhhdmlv
dXIgYXMgd2luZG93ZWQgb3Igd2luZG93bGVzcw0KSW5kZXg6IFdlYktpdC9QbHVnaW4vaW5jL25w
YXBpLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvUGx1Z2luL2luYy9ucGFwaS5oCShyZXZpc2lv
biAyMTk3NykNCisrKyBXZWJLaXQvUGx1Z2luL2luYy9ucGFwaS5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtNDA0LDE0ICs0MDQsMTIgQEAgdHlwZWRlZiBlbnVtIHsNCiAgIC8qIDEyIGFuZCBvdmVyIGFy
ZSBhdmFpbGFibGUgb24gTW96aWxsYSBidWlsZHMgc3RhcnRpbmcgd2l0aCAwLjkuOSAqLw0KICAg
TlBQVmphdmFzY3JpcHRQdXNoQ2FsbGVyQm9vbCA9IDEyLA0KICAgTlBQVnBsdWdpbktlZXBMaWJy
YXJ5SW5NZW1vcnkgPSAxMywgICAvKiBhdmFpbGFibGUgaW4gTW96aWxsYSAxLjAgKi8NCi0jaWZk
ZWYgUkRfQlJPV1NFUl9XSURHRVRTDQogICBOUFBWcGx1Z2luTmVlZHNYRW1iZWQgICAgICAgICA9
IDE0LCAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovDQogICAgLyogc3RhcnRlZCBmcm9t
IDEwMC4gVGhlIG51bWJlcnMgMTMgdG8gMTAwMCBhcmUgbGVmdA0KICAgICogZm9yIHN0YW5kYXJp
emF0aW9uIGFuZCBvdGhlciBmdXR1cmUgdXNlLiBWYWx1ZSByZXR1cm4gaXMgemVybyBmb3INCiAg
ICAqIGluZXRlcmFjdGl2ZSBhbmQgJ29uZScgZm9yIG5vbi1pbnRlcmFjdGl2ZS4NCiAgICAqLw0K
ICAgTlBQVnBsdWdpblNjcmlwdGFibGVOUE9iamVjdCAgPSAxNSwNCi0jZW5kaWYNCiAgIE5QUFZw
bHVnaW5JbnRlcmFjdGl2ZUJvb2wgPSAxMDAwDQogfSBOUFBWYXJpYWJsZTsNCiANCkBAIC00MzAs
NyArNDI4LDYgQEAgdHlwZWRlZiBlbnVtIHsNCiAgIE5QTlZzZXJ2aWNlTWFuYWdlciA9ICgxMCB8
IE5QX0FCSV9NQVNLKSwNCiAgIE5QTlZET01FbGVtZW50ICAgICA9ICgxMSB8IE5QX0FCSV9NQVNL
KSwgICAvKiBhdmFpbGFibGUgaW4gTW96aWxsYSAxLjIgKi8NCiAgIE5QTlZET01XaW5kb3cgICAg
ICA9ICgxMiB8IE5QX0FCSV9NQVNLKQ0KLSNpZmRlZiBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICxO
UE5WVG9vbGtpdCAgICAgICAgPSAoMTMgfCBOUF9BQklfTUFTSyksICAvKiBOb3QgaW1wbGVtZW50
ZWQgaW4gV2ViS2l0ICovDQogICBOUE5WU3VwcG9ydHNYRW1iZWRCb29sID0gMTQsICAgICAgICAg
ICAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovDQogDQpAQCAtNDM5LDcgKzQzNiw2
IEBAIHR5cGVkZWYgZW51bSB7DQogDQogICAgIC8qIEdldCB0aGUgTlBPYmplY3Qgd3JhcHBlciBm
b3IgdGhlIHBsdWdpbnMgRE9NIGVsZW1lbnQuICovDQogICBOUE5WUGx1Z2luRWxlbWVudE5QT2Jq
ZWN0ICAgICAgICAgICAgICAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0ICovDQotI2Vu
ZGlmDQogfSBOUE5WYXJpYWJsZTsNCiANCiAvKg0KSW5kZXg6IFdlYktpdC9QbHVnaW4vc3JjL05w
bkltcGxlbWVudGF0aW9uLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9QbHVnaW4vc3JjL05w
bkltcGxlbWVudGF0aW9uLmNwcAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L1BsdWdpbi9z
cmMvTnBuSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDI1LDcgKzQyNSw2
IEBAIE5QRXJyb3IgTnBuVXJsTG9hZGVyKE5QUCBhSW5zdGFuY2UsIGNvbnMNCiAgICAgICAgICAg
ICAgICAgfQ0KICAgICAgICAgICB9DQogICAgICAgICAgICAgYnJlYWs7DQotI2lmZGVmICBSRF9C
Uk9XU0VSX1dJREdFVFMNCiAgICAgICAgIGNhc2UgTlBOVldpbmRvd05QT2JqZWN0Og0KICAgICAg
ICAgICAgIHsNCiAgICAgICAgICAgICBDUGx1Z2luV2luKiBwbHVnaW5XaW4gPSAoQ1BsdWdpbldp
biopYUluc3RhbmNlLT5uZGF0YTsNCkBAIC00MzgsNyArNDM3LDYgQEAgTlBFcnJvciBOcG5VcmxM
b2FkZXIoTlBQIGFJbnN0YW5jZSwgY29ucw0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg
ICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7DQogICAgICAgICAgICAgfQ0KLSNlbmRpZiAv
L1JEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgY2FzZSBOUE5WRE9NV2luZG93Og0KICAgICAg
ICAgY2FzZSBOUE5WeERpc3BsYXk6ICAgICAgICAgIC8vIFVuaXggb25seTogUmV0dXJucyB0aGUg
Y3VycmVudCBEaXNwbGF5DQogICAgICAgICBjYXNlIE5QTlZ4dEFwcENvbnRleHQ6ICAgICAgLy8g
VW5peCBvbmx5OiBSZXR1cm5zIHRoZSBhcHBsaWNhdGlvbidzIFh0QXBwQ29udGV4dA0KSW5kZXg6
IFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpbkhhbmRsZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
S2l0L1BsdWdpbi9zcmMvUGx1Z2luSGFuZGxlci5jcHAJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdl
YktpdC9QbHVnaW4vc3JjL1BsdWdpbkhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNTIz
LDI4ICs1MjMsNiBAQCBUQm9vbCBDUGx1Z2luSGFuZGxlcjo6SW5pdGlhbGl6ZShUQW55KiBhDQog
ICAgIHJldHVybiBkb25lSW5pdDsNCiAgICAgfQ0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURH
RVRTDQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0vLyBDUGx1Z2luSGFuZGxlcjo6SW5pdGlh
bGl6ZQ0KLS8vDQotLy8gSW5pdGlhbGl6ZXMgdGhlIFBsdWdpbkhhbmRsZXIsIHBvc3NpYmx5IGFz
eW5jaHJvbm91c2x5DQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0vLw0KLVRCb29sIENQbHVn
aW5IYW5kbGVyOjpMb2FkUGx1Z2luc1N5bmNMKCkNCi0gICAgew0KLSAgICBpZiggaVBsdWdpbklu
Zm9BcnJheS5Db3VudCgpICE9IDAgKQ0KLSAgICAgICAgew0KLSAgICAgICAgcmV0dXJuIEVUcnVl
Ow0KLSAgICAgICAgfQ0KLQ0KLSAgICAvL0NhbmNlbCB0aGUgZWFybGllciByZXF1ZXN0IGFuZCBs
b2FkIHBsdWdpbnMgbm93DQotICAgIGlmKCBpSWRsZSApDQotICAgICAgICB7DQotICAgICAgICBp
SWRsZS0+Q2FuY2VsKCk7DQotICAgICAgICB9DQotICAgIHJldHVybiBMb2FkUGx1Z2luc0woKTsN
Ci0gICAgfQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIC8vIENQbHVnaW5IYW5kbGVy
OjpMb2FkUGx1Z2luc0wNCiAvLw0KIC8vIExvYWRzIGFsbCB0aGUgcGx1Z2lucyBhbmQgcXVlcnkg
dGhlbSBmb3IgZGV0YWlscy4NCkluZGV4OiBXZWJLaXQvUGx1Z2luL3NyYy9QbHVnaW5Ta2luLmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9QbHVnaW4vc3JjL1BsdWdpblNraW4uY3BwCShyZXZp
c2lvbiAyMTk3NykNCisrKyBXZWJLaXQvUGx1Z2luL3NyYy9QbHVnaW5Ta2luLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTY5LDkgKzY5LDcgQEANCiAjaW5jbHVkZSAiV2ViS2l0Vmlldy5oIg0KICNp
bmNsdWRlICJXZWJLaXRDb250cm9sLmgiDQogI2luY2x1ZGUgIldlYkNvcmVHcmFwaGljc0NvbnRl
eHQuaCINCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICNpbmNsdWRlICJXaWRnZXRFeHRl
bnNpb24uaCINCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAvLyBDT05TVEFOVFMN
CiAvLyBzY2hlbWUgZm9yIFJUU1AgdXJsDQpAQCAtMjE3LDEyICsyMTUsOCBAQCB2b2lkIENQbHVn
aW5Ta2luOjpDb25zdHJ1Y3RMKCBjb25zdCBURGVzDQogICAgICAgICAgICAgQ2xlYW51cFN0YWNr
OjpQb3BBbmREZXN0cm95KCk7ICAvLyB1cmxTY2hlbWUNCiAgICAgICAgICAgICB9DQogDQotI2lm
ZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIENXaWRnZXRFeHRlbnNpb24qIHdkZ3RF
eHQgPSBpV2ViS2l0RnJhbWUtPldlYktpdFZpZXcoKS5XZWJLaXRDb250cm9sKCkuV2lkZ2V0RXh0
ZW5zaW9uKCk7DQogICAgICAgICBpZiAoIGJSdHNwRm91bmQgfHwgKHdkZ3RFeHQgJiYgYVVybC5M
ZW5ndGgoKSA9PSAwKSkNCi0jZWxzZQ0KLSAgICAgICAgaWYgKCBiUnRzcEZvdW5kICkNCi0jZW5k
aWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgLy8g
SWYgcnRzcCBzY2hlbWUgaW4gdXJsLCBwYXNzIHRvIHBsdWdpbiBkaXJlY3RseSwNCiAgICAgICAg
ICAgICAvLyBhZnRlciB0aGUgYXR0cmlidXRlIGFycmF5cyBpbml0aWFsaXplZA0KQEAgLTcwMiwx
MCArNjk2LDggQEAgVEJvb2wgQ1BsdWdpblNraW46OklzRm9jdXNhYmxlKCkgY29uc3QNCiAgICAg
ICAgIHJldHVybiBFVHJ1ZTsNCiAgICAgfQ0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRT
DQogdm9pZCogQ1BsdWdpblNraW46OlBsdWdpblNjcmlwdGFibGVPYmplY3QoKQ0KICAgICB7DQog
ICAgIHJldHVybiBpUGx1Z2luV2luP2lQbHVnaW5XaW4tPlBsdWdpblNjcmlwdGFibGVPYmplY3Qo
KTowOw0KICAgICB9DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQpJbmRleDogV2Vi
S2l0L1BsdWdpbi9zcmMvUGx1Z2luV2luLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9QbHVn
aW4vc3JjL1BsdWdpbldpbi5jcHAJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdlYktpdC9QbHVnaW4v
c3JjL1BsdWdpbldpbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xMjY0LDcgKzEyNjQsNiBAQCB2
b2lkIENQbHVnaW5XaW46OkhhbmRsZUxvc2luZ0ZvcmVncm91bmQoDQogICAgICAgICB9DQogICB9
DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KIC8vDQogTlBPYmplY3QqIENQbHVnaW5XaW46OldpbmRvd1NjcmlwdE5QT2JqZWN0KCkNCkBA
IC0xMjg4LDcgKzEyODcsNiBAQCB2b2lkKiBDUGx1Z2luV2luOjpQbHVnaW5TY3JpcHRhYmxlT2Jq
ZWN0DQogICAgIH0NCiAgICAgcmV0dXJuICh2b2lkICopMDsNCiAgICAgfQ0KLSNlbmRpZiAvL1JE
X0JST1dTRVJfV0lER0VUUw0KIA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ1BsdWdp
bldpbjo6Rm9yY2VSZWRyYXcNCkluZGV4OiBXZWJLaXQvZ3JvdXAvQnJvd3NlclZpZXcubW1wDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gV2ViS2l0L2dyb3VwL0Jyb3dzZXJWaWV3Lm1tcAkocmV2aXNpb24gMjE5
NzcpDQorKysgV2ViS2l0L2dyb3VwL0Jyb3dzZXJWaWV3Lm1tcAkod29ya2luZyBjb3B5KQ0KQEAg
LTc3LDEyICs3NywxMCBAQCBTT1VSQ0UgICAgICAgICAgU21hcnRMaW5rSGFuZGxlci5jcHANCiBT
T1VSQ0UgICAgICAgICAgU21hcnRMaW5rTWFwLmNwcA0KIFNPVVJDRQkJUG9wdXBEcmF3ZXIuY3Bw
DQogU09VUkNFCQlTY3JvbGxpbmdJbmRpY2F0b3JEcmF3ZXIuY3BwDQotI2lmZGVmICBSRF9CUk9X
U0VSX1dJREdFVFMNCiBTT1VSQ0UgICAgICAgICAgV2lkZ2V0RXh0ZW5zaW9uLmNwcA0KIFNPVVJD
RSAgICAgICAgICBXaWRnZXRQcmVmZXJlbmNlcy5jcHANCiBTT1VSQ0UgICAgICAgICAgV2lkZ2V0
UmVuZGVyZXIuY3BwDQogU1lTVEVNSU5DTFVERSAgICAgICAgLi5cLi5cLi5cV2lkZ2V0RW5naW5l
XGluYw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIFVTRVJJTkNMVURFICAgICAuLlxS
ZXNvdXJjZUxvYWRlclxJbmMNCiBVU0VSSU5DTFVERSAgICAgLi5cUmVzb3VyY2VMb2FkZXJcY2Fj
aGVJbmMNCiBVU0VSSU5DTFVERSAgICAgLi5cQnJvd3NlclZpZXdcSW5jDQpJbmRleDogV2ViS2l0
L2dyb3VwL1BsdWdpbi5tbXANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3JvdXAvUGx1Z2luLm1t
cAkocmV2aXNpb24gMjE5NzcpDQorKysgV2ViS2l0L2dyb3VwL1BsdWdpbi5tbXAJKHdvcmtpbmcg
Y29weSkNCkBAIC02MCw5ICs2MCw3IEBAIFVTRVJJTkNMVURFICAgICAuLlxCcm93c2VyQ29yZVxS
ZW5kZXJlcnMNCiBVU0VSSU5DTFVERSAgICAgLi5cUmVzb3VyY2VMb2FkZXJcSW5jDQogI2lmbmRl
ZiBfX0JST1dTRVJfU0RLDQogVVNFUklOQ0xVREUgICAgIC4uXC4uXC4uXFBhZ2VTY2FsZXJcSW5j
DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiBVU0VSSU5DTFVERSAgICAgXFM2MFxtd1x3
ZWJcV2ViRW5naW5lXFdpZGdldEVuZ2luZVxJbmMNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdF
VFMNCiAjZW5kaWYNCiBVU0VSSU5DTFVERSAgICAgLi5cLi5cV0VCQ09SRVxicmlkZ2UNCiANCklu
ZGV4OiBXZWJLaXQvZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGkNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJL
aXQvZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGkJKHJldmlzaW9uIDIxOTc3KQ0KKysrIFdlYktpdC9n
cm91cC9mb3JtY29udHJvbHMubW1waQkod29ya2luZyBjb3B5KQ0KQEAgLTYzLDkgKzYzLDcgQEAg
VVNFUklOQ0xVREUgICAgIC4uXEJyb3dzZXJDb3JlXE1pc2NcSW5jDQogVVNFUklOQ0xVREUgICAg
IC4uXFJlc291cmNlTG9hZGVyXEluYw0KIFVTRVJJTkNMVURFICAgICAuLlxCcm93c2VyQ29udHJv
bFxpbmMNCiBVU0VSSU5DTFVERSAgICAgLi5cQnJvd3NlclZpZXdcaW5jDQotI2lmZGVmIFJEX0JS
T1dTRVJfV0lER0VUUw0KIFVTRVJJTkNMVURFICAgICAuLlwuLlwuLlxXaWRnZXRFbmdpbmVcaW5j
DQotI2VuZGlmDQogI2lmbmRlZiBfX0JST1dTRVJfU0RLDQogVVNFUklOQ0xVREUgICAgIC4uXC4u
XC4uXFBhZ2VTY2FsZXJcaW5jDQogI2VuZGlmDQpJbmRleDogV2ViS2l0L2dyb3VwL3dlYmtpdC5t
bXANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3JvdXAvd2Via2l0Lm1tcAkocmV2aXNpb24gMjE5
NzcpDQorKysgV2ViS2l0L2dyb3VwL3dlYmtpdC5tbXAJKHdvcmtpbmcgY29weSkNCkBAIC0xMTUs
OSArMTE1LDcgQEAgVVNFUklOQ0xVREUgICAuLlwuLlwuLlxUb29sQmFyXGluYw0KIFNZU1RFTUlO
Q0xVREUgXEVwb2MzMlxpbmNsdWRlIFxFcG9jMzJcaW5jbHVkZVxvZW0NCiAjZW5kaWYNCiANCi0j
aWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KIFVTRVJJTkNMVURFICAgLi5cLi5cLi5cV2lkZ2V0
RW5naW5lXGluYw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIC8vLS0NCiANCiBTWVNU
RU1JTkNMVURFIFxFcG9jMzJcaW5jbHVkZVxodHRwDQo=
</data>
<flag name="review"
          id="6146"
          type_id="1"
          status="+"
          setter="Sachin.Padma"
    />
          </attachment>
      

    </bug>

</bugzilla>