<?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>13406</bug_id>
          
          <creation_ts>2007-04-19 10:45:00 -0700</creation_ts>
          <short_desc>[S60] BC break in BrCtlInterface</short_desc>
          <delta_ts>2008-04-09 11:39:28 -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>WebKit API</component>
          <version>420+</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steven Winship">steven.winship</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>14005</commentid>
    <comment_count>0</comment_count>
    <who name="Steven Winship">steven.winship</who>
    <bug_when>2007-04-19 10:45:00 -0700</bug_when>
    <thetext>BC break in BrCtlInterface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14006</commentid>
    <comment_count>1</comment_count>
      <attachid>14091</attachid>
    <who name="Steven Winship">steven.winship</who>
    <bug_when>2007-04-19 10:45:55 -0700</bug_when>
    <thetext>Created attachment 14091
fix for BC break</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13753</commentid>
    <comment_count>2</comment_count>
      <attachid>14091</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2007-04-20 08:41:35 -0700</bug_when>
    <thetext>Comment on attachment 14091
fix for BC break

please add review, bugzilla id in changlog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13755</commentid>
    <comment_count>3</comment_count>
      <attachid>14110</attachid>
    <who name="Steven Winship">steven.winship</who>
    <bug_when>2007-04-20 08:54:58 -0700</bug_when>
    <thetext>Created attachment 14110
fixed change.log

fixed change.log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13222</commentid>
    <comment_count>4</comment_count>
      <attachid>14110</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2007-04-23 06:53:52 -0700</bug_when>
    <thetext>Comment on attachment 14110
fixed change.log

r = me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13223</commentid>
    <comment_count>5</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2007-04-23 06:54:25 -0700</bug_when>
    <thetext>landed on r21033</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76882</commentid>
    <comment_count>6</comment_count>
    <who name="Bradley Morrison">bradley.morrison</who>
    <bug_when>2008-04-09 11:39:28 -0700</bug_when>
    <thetext>Bulk closing of all s60 platform bugs. 

Sorry for the noise!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14091</attachid>
            <date>2007-04-19 10:45:55 -0700</date>
            <delta_ts>2007-04-20 08:41:35 -0700</delta_ts>
            <desc>fix for BC break</desc>
            <filename>WidgetFileUploadBC.patch</filename>
            <type>text/plain</type>
            <size>40398</size>
            <attacher name="Steven Winship">steven.winship</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDk1MSkNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDI4IEBADQord2luc2hpcCwgcmV2aWV3ZWQgYnkgPHJldmlld2VyPg0KKyBERVND
OiANCisgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9DQorDQorICAgICAg
ICAqIEJyb3dzZXJDb250cm9sL2luYy9CckN0bC5oOg0KKyAgICAgICAgKiBCcm93c2VyQ29udHJv
bC9pbmMvQnJDdGxEZWZzLmg6DQorICAgICAgICAoVEJyQ3RsRGVmczo6KToNCisgICAgICAgICog
QnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGlhbG9nc1Byb3ZpZGVyLmg6DQorICAgICAgICAoVEJy
Q3RsU2VsZWN0T3B0aW9uRGF0YTo6VEJyQ3RsU2VsZWN0T3B0aW9uRGF0YSk6DQorICAgICAgICAo
VEJyQ3RsSW1hZ2VDYXJyaWVyOjpUQnJDdGxJbWFnZUNhcnJpZXIpOg0KKyAgICAgICAgKiBCcm93
c2VyQ29udHJvbC9pbmMvQnJDdGxJbnRlcmZhY2UuaDoNCisgICAgICAgICogQnJvd3NlckNvbnRy
b2wvc3JjL0JyQ3RsLmNwcDoNCisgICAgICAgIChDQnJDdGw6On5DQnJDdGwpOg0KKyAgICAgICAg
KENCckN0bDo6SGFuZGxlQ29tbWFuZEwpOg0KKyAgICAgICAgKENCckN0bDo6Q3JlYXRlV2lkZ2V0
RXh0ZW5zaW9uTCk6DQorICAgICAgICAqIEJyb3dzZXJDb3JlL0Zvcm1jb250cm9scy9pbmMvRkNv
bnRyb2xGaWxlSW5wdXRTa2luLmg6DQorICAgICAgICAqIEJyb3dzZXJDb3JlL0Zvcm1jb250cm9s
cy9zcmMvRkNvbnRyb2xGaWxlSW5wdXRTa2luLmNwcDoNCisgICAgICAgIChURmlsZURpYWxvZ1dy
YXBwZXI6OkRpYWxvZ01pbWVGaWxlU2VsZWN0TEMpOg0KKyAgICAgICAgKENGb3JtRmlsZUlucHV0
U2tpbjo6U2V0QWNjZXB0ZWRNaW1lVHlwZSk6DQorICAgICAgICAoQ0Zvcm1GaWxlSW5wdXRTa2lu
OjpBY3RpdmF0ZUwpOg0KKyAgICAgICAgKiBCcm93c2VyVmlldy9pbmMvV2lkZ2V0RXh0ZW5zaW9u
Lmg6DQorICAgICAgICAqIGdyb3VwL0JXSU5TQ1cvV2ViS2l0XzMwVS5kZWY6DQorICAgICAgICAq
IGdyb3VwL0VBQkkvYnJvd3NlcmVuZ2luZVUuZGVmOg0KKyAgICAgICAgKiBncm91cC9mb3JtY29u
dHJvbHMubW1waToNCisNCiAyMDA3LTA0LTE2ICBzcGFkbWEgIA0KIA0KICAgICAgICAgUmV2aWV3
ZWQgYnkgWmFsYW4NCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsLmgNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsLmgJKHJldmlzaW9u
IDIwOTUxKQ0KKysrIFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGwuaAkod29ya2luZyBj
b3B5KQ0KQEAgLTY1MCwxNCArNjUwLDEyIEBAIGNsYXNzIENCckN0bCA6IHB1YmxpYyBDQnJDdGxJ
bnRlcmZhY2UsIHANCiAgICAgICAgICovDQogICAgICAgICBJTVBPUlRfQyBUQnJDdGxEZWZzOjpU
QnJDdGxGaW5kUmVzcG9uc2UgRmluZEtleXdvcmRBZ2FpbiggVEJvb2wgYUZvd2FyZERpcmVjdGlv
biApOw0KIA0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgICAgICAvKioNCiAgICAg
ICAgICogQ3JlYXRlcyB0aGUgd2lkZ2V0IGV4dGVuc2lvbiBvYmplY3QNCiAgICAgICAgICogQHNp
bmNlIDMuMg0KICAgICAgICAgKiBAcmV0dXJuIE1XaWRnZXRFeHRlbnNpb24NCiAgICAgICAgICov
DQogICAgICAgICBJTVBPUlRfQyBNV2lkZ2V0RXh0ZW5zaW9uKiBDcmVhdGVXaWRnZXRFeHRlbnNp
b25MKE1XaWRnZXRDYWxsYmFjayYgYVdpZGdldENhbGxiYWNrKSA7DQotI2VuZGlmIC8vUkRfQlJP
V1NFUl9XSURHRVRTDQogDQogICAgICAgICAvKioNCiAgICAgICAgICogR2V0IGluZm9ybWF0aW9u
IGFib3V0IHRoZSBmb2N1c2VkIGltYWdlLiBUaGUgZnVuY3Rpb24gbGVhdmVzIGlmIHRoZSBmb2N1
cyBpcyBub3Qgb24gYW4gaW1hZ2UNCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0Jy
Q3RsRGVmcy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0
bERlZnMuaAkocmV2aXNpb24gMjA5NTEpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9C
ckN0bERlZnMuaAkod29ya2luZyBjb3B5KQ0KQEAgLTcyMiw3ICs3MjIsNyBAQCBjbGFzcyBUQnJD
dGxEZWZzDQogICAgICAgICBFQ2xpZW50Q29tbWFuZFN1YnNjcmliZVRvRmVlZHMsDQogICAgICAg
ICBFQ2xpZW50Q29tbWFuZFNob3dDb250ZXh0TWVudQ0KICAgICAgICAgfTsNCi0jaWZkZWYgIFJE
X0JST1dTRVJfV0lER0VUUw0KKw0KICAgICAvKioNCiAgICAgKiBUaGUgd2lkZ2V0IHBhcmFtcy4N
CiAgICAgKi8NCkBAIC03MzIsNyArNzMyLDYgQEAgY2xhc3MgVEJyQ3RsRGVmcw0KICAgICAgICAg
RVdpZGdldEJ1bmRsZUlkLA0KICAgICAgICAgRVdpZGdldEJhc2VQYXRoDQogICAgICAgICB9Ow0K
LSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICAgICB9Ow0KIA0KICNlbmRpZiAgICAgIC8v
IEJSQ1RMREVGU19IDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERpYWxv
Z3NQcm92aWRlci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9C
ckN0bERpYWxvZ3NQcm92aWRlci5oCShyZXZpc2lvbiAyMDk1MSkNCisrKyBXZWJLaXQvQnJvd3Nl
ckNvbnRyb2wvaW5jL0JyQ3RsRGlhbG9nc1Byb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkNCkBAIC04
LDExICs4LDExIEBADQogKg0KICogICAgQ29weXJpZ2h0IChjKSAyMDA2LCBOb2tpYSBDb3Jwb3Jh
dGlvbg0KICogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0qICANCisqDQogKiAgIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dA0KICogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMNCiAqICAgYXJlIG1ldDoNCi0qICANCisqDQogKiAgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCiAqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuDQogKiAgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCkBAIC0yMiw3ICsyMiw3IEBA
DQogKiAgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgTm9raWEgQ29ycG9yYXRpb24gbm9y
IHRoZSBuYW1lcyBvZiBpdHMNCiAqICAgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCiAqICAgICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQotKiAg
DQorKg0KICogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTDQogKiAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQogKiAgIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUg0K
QEAgLTM1LDcgKzM1LDcgQEANCiAqICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCiAqICAgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSA0KICogICBEQU1B
R0UuDQotKiAgDQorKg0KICogICAgUGxlYXNlIHNlZSBmaWxlIHBhdGVudGxpY2Vuc2UudHh0IGZv
ciBmdXJ0aGVyIGdyYW50cy4NCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICovDQpAQCAtNTcs
MTUgKzU3LDE1IEBAIGVudW0gVEJyQ3RsU2VsZWN0T3B0aW9uVHlwZQ0KICAgICBFU2VsZWN0VHlw
ZVNpbmdsZSwgICAgLy8vPCBTaW5nbGUgc2VsZWN0IC0gRGlzcGxheSBhIHJhZGlvIGJ1dHRvbg0K
ICAgICBFU2VsZWN0VHlwZU5vbmUsICAgICAgLy8vPCBTaW5nbGUgc2VsZWN0IC0gRG8gbm90IGRp
c3BsYXkgYW55IGJ1dHRvbg0KICAgICAvKioNCi0gICAgKiBObyBidXR0b25zIChzaW5nbGUgc2Vs
ZWN0aW9uIG9ubHkpIA0KLSAgICAqIE9LIHNvZnRrZXkgaXMgYXZhaWxhYmxlIA0KKyAgICAqIE5v
IGJ1dHRvbnMgKHNpbmdsZSBzZWxlY3Rpb24gb25seSkNCisgICAgKiBPSyBzb2Z0a2V5IGlzIGF2
YWlsYWJsZQ0KICAgICAqIENhbmNlbCBidXR0b24gaXMgbm90IGF2YWlsYWJsZQ0KICAgICAqLw0K
LSAgICBFU2VsZWN0VHlwZU9rT25seSAgICAgDQorICAgIEVTZWxlY3RUeXBlT2tPbmx5DQogICAg
IH07DQogDQogLyoqDQotKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGltYWdlIGlmIGl0IGNhbm5vdCBi
ZSByZWNvZ25pemVkIGJ5IHRoZSANCisqIERlZmluZXMgdGhlIHR5cGUgb2YgaW1hZ2UgaWYgaXQg
Y2Fubm90IGJlIHJlY29nbml6ZWQgYnkgdGhlDQogKiBTeW1iaWFuIGltYWdlIGNvbnZlcnNpb24g
bGlicmFyeS4NCiAqLw0KIA0KQEAgLTgzLDE2ICs4MywxNiBAQCBjbGFzcyBDQnJDdGxPYmplY3RJ
bmZvOw0KIGNsYXNzIFRCckN0bEltYWdlQ2FycmllcjsNCiANCiAvKioNCi0qIFRoZSBNQnJEaWFs
b2dzUHJvdmlkZXIgY2xhc3MgcHJvdmlkZXMgZnVuY3Rpb25zIGltcGxlbWVudGVkIGJ5IA0KLSog
dGhlIEJyb3dzZXIgQ29udHJvbCB0byBkaXNwbGF5IGRpYWxvZ3MsIHN1Y2ggYXMgZXJyb3Igbm90
aWZpY2F0aW9ucywgDQotKiBhdXRoZW50aWNhdGlvbiByZXF1ZXN0cywgYW5kIHNlbGVjdGlvbiBs
aXN0cy4gDQorKiBUaGUgTUJyRGlhbG9nc1Byb3ZpZGVyIGNsYXNzIHByb3ZpZGVzIGZ1bmN0aW9u
cyBpbXBsZW1lbnRlZCBieQ0KKyogdGhlIEJyb3dzZXIgQ29udHJvbCB0byBkaXNwbGF5IGRpYWxv
Z3MsIHN1Y2ggYXMgZXJyb3Igbm90aWZpY2F0aW9ucywNCisqIGF1dGhlbnRpY2F0aW9uIHJlcXVl
c3RzLCBhbmQgc2VsZWN0aW9uIGxpc3RzLg0KICoNCiAqIFVzYWdlOg0KICoNCiAqIEBjb2RlDQog
KiAgI2luY2x1ZGUgPEJyQ3RsRGlhbG9nc1Byb3ZpZGVyLmg+DQogKg0KLSogIA0KKyoNCiAqIEBz
ZWUgUzYwIFBsYXRmb3JtOiBCcm93c2VyIENvbnRyb2wgQVBJIERldmVsb3BlcidzIEd1aWRlIFZl
cnNpb24gMi4wDQogKiBAbGliIEJyb3dzZXJFbmdpbmUubGliDQogKiBAZmlsZSBCckN0bERpYWxv
Z3NQcm92aWRlci5oDQpAQCAtMTAxLDkgKzEwMSw5IEBAIGNsYXNzIFRCckN0bEltYWdlQ2Fycmll
cjsNCiBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAgew0KICAgICBwdWJsaWM6IC8v
IE5ldyBmdW5jdGlvbnMNCi0gICAgICAgIA0KKw0KICAgICAgICAgLyoqDQotICAgICAgICAqIE5v
dGlmaWVzIHRoZSB1c2VyIG9mIGFuIGVycm9yIGVuY291bnRlcmVkIGR1cmluZyBhIGRvd25sb2Fk
LiANCisgICAgICAgICogTm90aWZpZXMgdGhlIHVzZXIgb2YgYW4gZXJyb3IgZW5jb3VudGVyZWQg
ZHVyaW5nIGEgZG93bmxvYWQuDQogICAgICAgICAqIFNvbWUgZXhhbXBsZXMgYXJlOiBpbnN1ZmZp
Y2llbnQgbWVtb3J5LCB1bnJlY29nbml6ZWQgVVJMLCBhbmQgRE5TIG5vdCBmb3VuZC4NCiAgICAg
ICAgICogQHNpbmNlIDIuOA0KICAgICAgICAgKiBAcGFyYW0gYUVyckNvZGUgVGhlIGVycm9yIHRo
YXQgb2NjdXJlZA0KQEAgLTExMiw3ICsxMTIsNyBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlk
ZXINCiAgICAgICAgIHZpcnR1YWwgdm9pZCBEaWFsb2dOb3RpZnlFcnJvckwoVEludCBhRXJyQ29k
ZSkgPSAwOw0KIA0KICAgICAgICAgLyoqDQotICAgICAgICAqIE5vdGlmaWVzIHRoZSB1c2VyIG9m
IGFuIGVycm9yIGZyb20gdGhlIEhUVFAgc2VydmVyIA0KKyAgICAgICAgKiBOb3RpZmllcyB0aGUg
dXNlciBvZiBhbiBlcnJvciBmcm9tIHRoZSBIVFRQIHNlcnZlcg0KICAgICAgICAgKiBkdXJpbmcg
YSBkb3dubG9hZC4gU29tZSBleGFtcGxlcyBhcmU6IGZpbGUgbm90IGZvdW5kLCByZWRpcmVjdCBl
cnJvci4NCiAgICAgICAgICogQHNpbmNlIDIuOA0KICAgICAgICAgKiBAcGFyYW0gYUVyckNvZGUg
VGhlIGVycm9yIHRoYXQgb2NjdXJlZA0KQEAgLTEyMiw3ICsxMjIsNyBAQCBjbGFzcyBNQnJDdGxE
aWFsb2dzUHJvdmlkZXINCiAgICAgICAgIHZpcnR1YWwgdm9pZCBEaWFsb2dOb3RpZnlIdHRwRXJy
b3JMKFRJbnQgYUVyckNvZGUsIGNvbnN0IFREZXNDJiBhVXJpKSA9IDA7DQogDQogICAgICAgICAv
KioNCi0gICAgICAgICogTmF2aWdhdGVzIHRocm91Z2ggeW91ciBmaWxlIHN5c3RlbSBhbmQgc2Vs
ZWN0cyBhIGZpbGU7IA0KKyAgICAgICAgKiBOYXZpZ2F0ZXMgdGhyb3VnaCB5b3VyIGZpbGUgc3lz
dGVtIGFuZCBzZWxlY3RzIGEgZmlsZTsNCiAgICAgICAgICogYW5hbG9nb3VzIHRvIHRoZSBCcm93
c2UgY29tbWFuZCBpbiBXaW5kb3dzLg0KICAgICAgICAgKiBAc2luY2UgMi44DQogICAgICAgICAq
IEBwYXJhbSBhU3RhcnRQYXRoIFRoZSBpbml0aWFsIGRpc3BsYXllZCBkaXJlY3RvcnkNCkBAIC0x
NDMsMjIgKzE0MywyMiBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAgICAgICog
QHBhcmFtIGFCckN0bFNlbGVjdE9wdGlvblR5cGUgVGhlIHR5cGUgb2YgdGhlIGxpc3QgYm94Lg0K
ICAgICAgICAgKiBWYWx1ZXM6IE9uZSBvZiB0aGUgZm9sbG93aW5nOg0KICAgICAgICAgKiBDaGVj
ayBib3hlcyAobXVsdGlwbGUgc2VsZWN0aW9ucyBhbGxvd2VkKQ0KLSAgICAgICAgKiBSYWRpbyBi
dXR0b25zIChzaW5nbGUgc2VsZWN0aW9uIG9ubHkpLiBGb3IgZXhhbXBsZSwgaGlnaGxpZ2h0IGEg
VVJMIGxpc3RlZCANCisgICAgICAgICogUmFkaW8gYnV0dG9ucyAoc2luZ2xlIHNlbGVjdGlvbiBv
bmx5KS4gRm9yIGV4YW1wbGUsIGhpZ2hsaWdodCBhIFVSTCBsaXN0ZWQNCiAgICAgICAgICogICBp
biB0aGUgc2Vzc2lvbiBIaXN0b3J5Lg0KICAgICAgICAgKiAgIE5vIGJ1dHRvbnMgKHNpbmdsZSBz
ZWxlY3Rpb24gb25seSkNCiAgICAgICAgICogTm8gYnV0dG9ucyAoc2luZ2xlIHNlbGVjdGlvbiBv
bmx5KSwgT0sgc29mdGtleSBhdmFpbGFibGUNCi0gICAgICAgICogRm9yIGV4YW1wbGUsIGlmIHlv
dSBhcmUgYWJvdXQgdG8gZG93bmxvYWQgYSBwbHVnLWluLCB5b3UgY2FuIGNob29zZSANCi0gICAg
ICAgICogdG8gZGlzcGxheSB0aGUgY29udGVudCBpbiB0aGUgV2ViIHBhZ2Ugb3IgaW4gYSB2aWV3
ZXIgYXBwbGljYXRpb24uIA0KKyAgICAgICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IGFyZSBhYm91
dCB0byBkb3dubG9hZCBhIHBsdWctaW4sIHlvdSBjYW4gY2hvb3NlDQorICAgICAgICAqIHRvIGRp
c3BsYXkgdGhlIGNvbnRlbnQgaW4gdGhlIFdlYiBwYWdlIG9yIGluIGEgdmlld2VyIGFwcGxpY2F0
aW9uLg0KICAgICAgICAgKiBAcGFyYW0gYU9wdGlvbnMgQSBsaXN0IG9mIG9wdGlvbnMgdG8gZGlz
cGxheQ0KICAgICAgICAgKiBAcmV0dXJuIEVGYWxzZSBpZiB0aGUgdXNlciBjYW5jZWxlZCB0aGUg
ZGlhbG9nIHNlbGVjdGlvbg0KICAgICAgICAgKiBFVHJ1ZSBpZiB0aGUgdXNlciBzZWxlY3RlZCBh
biBvcHRpb24uDQogICAgICAgICAqLw0KLSAgICAgICAgdmlydHVhbCBUQm9vbCBEaWFsb2dTZWxl
Y3RPcHRpb25MKGNvbnN0IFREZXNDJiBhVGl0bGUsIA0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRCckN0bFNlbGVjdE9wdGlvblR5cGUgYUJyQ3RsU2VsZWN0T3B0
aW9uVHlwZSwgDQorICAgICAgICB2aXJ0dWFsIFRCb29sIERpYWxvZ1NlbGVjdE9wdGlvbkwoY29u
c3QgVERlc0MmIGFUaXRsZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBUQnJDdGxTZWxlY3RPcHRpb25UeXBlIGFCckN0bFNlbGVjdE9wdGlvblR5cGUsDQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FycmF5Rml4PFRCckN0bFNl
bGVjdE9wdGlvbkRhdGE+JiBhT3B0aW9ucykgPSAwOw0KIA0KICAgICAgICAgLyoqDQotICAgICAg
ICAqIFVzZXIgQXV0aGVudGljYXRpb24gZGlhbG9nLiANCisgICAgICAgICogVXNlciBBdXRoZW50
aWNhdGlvbiBkaWFsb2cuDQogICAgICAgICAqIEBzaW5jZSAyLjgNCiAgICAgICAgICogQHBhcmFt
IGFVcmwgVGhlIHVybCByZXF1aXJpbmcgYXV0aGVudGljYXRpb24NCiAgICAgICAgICogQHBhcmFt
IGFSZWFsbSBUaGUgcmVhbG0gcmVxdWlyaW5nIGF1dGhlbnRpY2F0aW9uDQpAQCAtMTY2LDIyICsx
NjYsMjIgQEAgY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICAqIEBwYXJhbSBh
UmV0dXJuZWRVc2VyTmFtZSBUaGUgdXNlciBuYW1lIGVudGVyZWQgYnkgdGhlIHVzZXINCiAgICAg
ICAgICogQHBhcmFtIGFSZXR1cm5lZFBhc3N3ZCBUaGUgcGFzc3dvcmQgZW50ZXJlZCBieSB0aGUg
dXNlcg0KICAgICAgICAgKiBAcGFyYW0gYUJhc2ljQXV0aGVudGljYXRpb24gRVRydWUgaWYgYmFz
aWMgYXV0aGVudGljYXRpb24gaXMgcmVxdWlyZWQuDQotICAgICAgICAqIEVGYWxzZSBpZiBhbm90
aGVyIHR5cGUgb2YgYXV0aGVudGljYXRpb24gaXMgcmVxdWlyZWQ7IGZvciBleGFtcGxlLCBEaWdl
c3QuIA0KKyAgICAgICAgKiBFRmFsc2UgaWYgYW5vdGhlciB0eXBlIG9mIGF1dGhlbnRpY2F0aW9u
IGlzIHJlcXVpcmVkOyBmb3IgZXhhbXBsZSwgRGlnZXN0Lg0KICAgICAgICAgKiBEZWZhdWx0OiBF
RmFsc2UNCiAgICAgICAgICogQHJldHVybiBFRmFsc2UgaWYgdGhlIHVzZXIgY2FuY2VsbGVkIHRo
ZSBzZWxlY3Rpb24NCiAgICAgICAgICogRVRydWUgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgYW4gb3B0
aW9uLg0KICAgICAgICAgQCBhdHRpb250aW9uIFVzZXIgbmFtZSBhbmQgcGFzc3dvcmQgYXJlIHJl
dHVybmVkIG9uIGNsZWFudXAgc3RhY2suDQogICAgICAgICAqLw0KLSAgICAgICAgdmlydHVhbCBU
Qm9vbCBEaWFsb2dVc2VyQXV0aGVudGljYXRpb25MQyhjb25zdCBURGVzQyYgYVVybCwgDQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFREZXND
JiBhUmVhbG0sIA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBURGVzQyYgYURlZmF1bHRVc2VyTmFtZSwgDQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhCdWZDKiYgYVJldHVybmVkVXNlck5hbWUs
IA0KKyAgICAgICAgdmlydHVhbCBUQm9vbCBEaWFsb2dVc2VyQXV0aGVudGljYXRpb25MQyhjb25z
dCBURGVzQyYgYVVybCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgVERlc0MmIGFSZWFsbSwNCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVERlc0MmIGFEZWZhdWx0VXNlck5hbWUsDQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhCdWZDKiYg
YVJldHVybmVkVXNlck5hbWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEhCdWZDKiYgYVJldHVybmVkUGFzc3dkLA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQm9vbCBhQmFzaWNBdXRoZW50aWNhdGlv
biA9IEVGYWxzZSkgPSAwOw0KIA0KICAgICAgICAgLyoqDQotICAgICAgICAqIERpc3BsYXlzIGEg
bWVzc2FnZSB0byB0aGUgdXNlci4gDQotICAgICAgICAqIEZvciBleGFtcGxlLCB0aGUgbWVzc2Fn
ZSBtYXkgaW5mb3JtIHRoZSB1c2VyIA0KKyAgICAgICAgKiBEaXNwbGF5cyBhIG1lc3NhZ2UgdG8g
dGhlIHVzZXIuDQorICAgICAgICAqIEZvciBleGFtcGxlLCB0aGUgbWVzc2FnZSBtYXkgaW5mb3Jt
IHRoZSB1c2VyDQogICAgICAgICAqIGFib3V0IGFuIGVycm9yIGVuY291bnRlcmVkIHdoaWxlIHBy
b2Nlc3NpbmcgYSByZXF1ZXN0Lg0KICAgICAgICAgKiBAc2luY2UgMi44DQogICAgICAgICAqIEBw
YXJhbSBhTWVzc2FnZSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5DQpAQCAtMTg5LDcgKzE4OSw3IEBA
IGNsYXNzIE1CckN0bERpYWxvZ3NQcm92aWRlcg0KICAgICAgICAgKiBAYXR0ZW50aW9uIFNvZnRr
ZXlzIGFyZSBub3Qgc3VwcG9ydGVkLg0KICAgICAgICAgKiBUaGUgbWVzc2FnZSBkaXNhcHBlYXJz
IGFmdGVyIGEgdGltZSBvdXQuDQogICAgICAgICAqLw0KLSAgICAgICAgdmlydHVhbCB2b2lkIERp
YWxvZ05vdGVMKGNvbnN0IFREZXNDJiBhTWVzc2FnZSkgPSAwOyANCisgICAgICAgIHZpcnR1YWwg
dm9pZCBEaWFsb2dOb3RlTChjb25zdCBURGVzQyYgYU1lc3NhZ2UpID0gMDsNCiANCiAgICAgICAg
IC8qKg0KICAgICAgICAgKiBEaXNwbGF5IGEgbm90ZSB0byB0aGUgdXNlciB3aXRoIG9rIHNvZnRr
ZXkgb25seQ0KQEAgLTIwMCw3ICsyMDAsNyBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXIN
CiAgICAgICAgICogQGF0dGVudGlvbiBUaGUgT0sgc29mdGtleSBpcyBzdXBwb3J0ZWQuDQogICAg
ICAgICAqIFRoZSBtZXNzYWdlIGRpc3BsYXlzIHVudGlsIHRoZSB1c2VyIHByZXNzZXMgT0suDQog
ICAgICAgICAqLw0KLSAgICAgICAgdmlydHVhbCB2b2lkIERpYWxvZ0FsZXJ0TChjb25zdCBURGVz
QyYgYVRpdGxlLCBjb25zdCBURGVzQyYgYU1lc3NhZ2UpID0gMDsgDQorICAgICAgICB2aXJ0dWFs
IHZvaWQgRGlhbG9nQWxlcnRMKGNvbnN0IFREZXNDJiBhVGl0bGUsIGNvbnN0IFREZXNDJiBhTWVz
c2FnZSkgPSAwOw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAqIERpc3BsYXkgY29uZmlybWF0
aW9uIG1lc3NhZ2UgdG8gdGhlIHVzZXIuDQpAQCAtMjI0LDcgKzIyNCw3IEBAIGNsYXNzIE1CckN0
bERpYWxvZ3NQcm92aWRlcg0KICAgICAgICAgKiBAcGFyYW0gYVRpdGxlIFRoZSB0aXRsZSwgY291
bGQgYmUgZW1wdHkNCiAgICAgICAgICogQHBhcmFtIGFNZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGRp
c3BsYXkNCiAgICAgICAgICogQHBhcmFtIGFEZWZhdWx0SW5wdXQgVGhlIGRlZmF1bHQgaW5wdXQg
aWYgYXZhaWxhYmxlDQotICAgICAgICAqIEBwYXJhbSBhUmV0dXJuZWRJbnB1dCBUaGUgaW5wdXQg
ZW50ZXJlZCBieSB0aGUgdXNlci4gDQorICAgICAgICAqIEBwYXJhbSBhUmV0dXJuZWRJbnB1dCBU
aGUgaW5wdXQgZW50ZXJlZCBieSB0aGUgdXNlci4NCiAgICAgICAgICogQHJldHVybiBFRmFsc2Ug
aWYgdGhlIHVzZXIgY2FuY2VsbGVkIHRoZSBzZWxlY3Rpb24NCiAgICAgICAgICogRVRydWUgaWYg
dGhlIHVzZXIgc2VsZWN0ZWQgYW4gb3B0aW9uLg0KICAgICAgICAgKiBAYXR0ZW50aW9uIFJldHVy
bmVkIG9uIHRoZSBjbGVhbnVwIHN0YWNrLg0KQEAgLTIzNSw3ICsyMzUsNyBAQCBjbGFzcyBNQnJD
dGxEaWFsb2dzUHJvdmlkZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SEJ1ZkMqJiBhUmV0dXJuZWRJbnB1dCkgPSAwOw0KIA0KICAgICAgICAgLyoqDQotICAgICAgICAq
IERpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBOZXRzY2FwZSBwbHVnLWluIG9iamVjdCBh
bmQgDQorICAgICAgICAqIERpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBOZXRzY2FwZSBw
bHVnLWluIG9iamVjdCBhbmQNCiAgICAgICAgICogcmVxdWVzdHMgY29uZmlybWF0aW9uIGJlZm9y
ZSBkb3dubG9hZGluZyB0aGUgb2JqZWN0Lg0KICAgICAgICAgKiBAc2luY2UgMi44DQogICAgICAg
ICAqIEBwYXJhbSBhQnJDdGxPYmplY3RJbmZvIEluZm9ybWF0aW9uIGFib3V0IHRoZSBvYmplY3Qg
dG8gYmUgZG93bmxvYWRlZC4NCkBAIC0yNDMsOSArMjQzLDkgQEAgY2xhc3MgTUJyQ3RsRGlhbG9n
c1Byb3ZpZGVyDQogICAgICAgICAqIENvbnRlbnQgdHlwZQ0KICAgICAgICAgKiBTaXplDQogICAg
ICAgICAqIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBhIHZpZXdlciBhcHBsaWNhdGlvbiBleGlz
dHMgZm9yIHRoaXMgY29udGVudA0KLSAgICAgICAgKiBGbGFnIHRvIGluZGljYXRlIHdoZXRoZXIg
YSBOZXRzY2FwZSBwbHVnLWluIGV4aXN0cyB0aGF0IHN1cHBvcnRzIHRoaXMgY29udGVudCANCisg
ICAgICAgICogRmxhZyB0byBpbmRpY2F0ZSB3aGV0aGVyIGEgTmV0c2NhcGUgcGx1Zy1pbiBleGlz
dHMgdGhhdCBzdXBwb3J0cyB0aGlzIGNvbnRlbnQNCiAgICAgICAgICogTmFtZSBvZiB0aGUgYXBw
bGljYXRpb24gb3IgTmV0c2NhcGUgcGx1Zy1pbiB3aXRoIHdoaWNoIHRoZSBjb250ZW50IGNhbg0K
LSAgICAgICAgKiBiZSB2aWV3ZWQgb24gdGhlIG1vYmlsZSBwaG9uZSANCisgICAgICAgICogYmUg
dmlld2VkIG9uIHRoZSBtb2JpbGUgcGhvbmUNCiAgICAgICAgICogQHJldHVybiBFRmFsc2UgaWYg
dGhlIHVzZXIgY2FuY2VsbGVkIHRoZSBzZWxlY3Rpb24NCiAgICAgICAgICogRVRydWUgaWYgdGhl
IHVzZXIgc2VsZWN0ZWQgYW4gb3B0aW9uLg0KICAgICAgICAgKi8NCkBAIC0yNTQsMTQgKzI1NCwx
NCBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAgICAgIC8qKg0KICAgICAgICAg
KiBEaXNwbGF5IHRoZSBpbWFnZXMgdGhhdCBhcHBlYXIgaW4gdGhlIGN1cnJlbnQgcGFnZQ0KICAg
ICAgICAgKiBAc2luY2UgMi44DQotICAgICAgICAqIEBwYXJhbSBhUGFnZUltYWdlcyBBcnJheSBk
ZXNjcmliaW5nIHRoZSBpbWFnZXMgdGhhdCBhcHBlYXIgaW4gdGhlIGN1cnJlbnQgcGFnZS4gDQor
ICAgICAgICAqIEBwYXJhbSBhUGFnZUltYWdlcyBBcnJheSBkZXNjcmliaW5nIHRoZSBpbWFnZXMg
dGhhdCBhcHBlYXIgaW4gdGhlIGN1cnJlbnQgcGFnZS4NCiAgICAgICAgICogVGhlIGFycmF5IGNv
bnRhaW5zIHRoZSBmb2xsb3dpbmcgZWxlbWVudHMgZm9yIGVhY2ggaW1hZ2U6DQogICAgICAgICAq
IEltYWdlIGRhdGENCiAgICAgICAgICogVVJMIG9mIHRoZSBpbWFnZQ0KICAgICAgICAgKiBUaXRs
ZSBmb3IgdGhlIGltYWdlDQogICAgICAgICAqIEltYWdlIHR5cGUNCi0gICAgICAgICogSWYgdGhl
IGltYWdlIHR5cGUgaXMgV0JNUCBvciBPVEEsIGl0IG11c3QgYmUgc3BlY2lmaWVkLiANCi0gICAg
ICAgICogU3ltYmlhbiBjYW4gZGV0ZWN0IGFueSBvdGhlciBpbWFnZSB0eXBlLiANCisgICAgICAg
ICogSWYgdGhlIGltYWdlIHR5cGUgaXMgV0JNUCBvciBPVEEsIGl0IG11c3QgYmUgc3BlY2lmaWVk
Lg0KKyAgICAgICAgKiBTeW1iaWFuIGNhbiBkZXRlY3QgYW55IG90aGVyIGltYWdlIHR5cGUuDQog
ICAgICAgICAqIEByZXR1cm4gdm9pZA0KICAgICAgICAgKi8NCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBEaWFsb2dEaXNwbGF5UGFnZUltYWdlc0woQ0FycmF5Rml4RmxhdDxUQnJDdGxJbWFnZUNhcnJp
ZXI+JiBhUGFnZUltYWdlcykgPSAwOw0KQEAgLTI3MiwzMiArMjcyLDE5IEBAIGNsYXNzIE1CckN0
bERpYWxvZ3NQcm92aWRlcg0KICAgICAgICAgKiBAcmV0dXJuIHZvaWQNCiAgICAgICAgICovDQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgQ2FuY2VsQWxsKCkgPSAwOw0KLSAgICAgICAgDQorDQogICAg
ICAgICAvKioNCiAgICAgICAgICogRGlzcGxheXMgYSBkaWFsb2cgZm9yIHNlYXJjaGluZyBvbiB0
aGUgcGFnZS4NCiAgICAgICAgICogQHNpbmNlIDMuMA0KICAgICAgICAgKiBAcmV0dXJuIHZvaWQN
CiAgICAgICAgICovDQotICAgICAgIHZpcnR1YWwgdm9pZCBEaWFsb2dGaW5kTCgpID0gMDsgDQot
ICAgICAgIA0KLSAgICAgICAgLyoqDQotICAgICAgICAqIE5hdmlnYXRlcyB0aHJvdWdoIHlvdXIg
ZmlsZSBzeXN0ZW0gYW5kIHNlbGVjdHMgYSBmaWxlIG9mIHNwZWNpZmljIG1pbWUgdHlwZTsgDQot
ICAgICAgICAqIGFuYWxvZ291cyB0byB0aGUgQnJvd3NlIGNvbW1hbmQgaW4gV2luZG93cy4NCi0g
ICAgICAgICogQHNpbmNlIDMuMg0KLSAgICAgICAgKiBAcGFyYW0gYVNlbGVjdGVkRmlsZU5hbWUg
VGhlIHNlbGVjdGVkIGZpbGUgbmFtZS4NCi0gICAgICAgICogQHBhcmFtIGFNaW1lVHlwZSBUaGUg
YWNjZXB0ZWQgbWltZSB0eXBlLg0KLSAgICAgICAgKiBAcmV0dXJuIEVUcnVlIGlmIHRoZSB1c2Vy
IHNlbGVjdGVkIGEgZmlsZQ0KLSAgICAgICAgKiBFRmFsc2UgaWYgdGhlIHVzZXIgY2FuY2VsbGVk
IHRoZSB0cmFuc2FjdGlvbiBhbmQgZGlkIG5vdCBzZWxlY3QgYSBmaWxlLg0KLSAgICAgICAgKiBA
YXR0aW9udGlvbiBSZXR1cm5lZCBvbiBjbGVhbnVwIHN0YWNrLiBCcm93c2VyIGNvbnRyb2wgd2ls
bCBmcmVlIHRoZSBidWZmZXIuDQotICAgICAgICAqLw0KLSAgICAgICAgdmlydHVhbCBUQm9vbCBE
aWFsb2dNaW1lRmlsZVNlbGVjdExDKEhCdWZDKiYgYVNlbGVjdGVkRmlsZU5hbWUsDQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBURGVzQyYgYU1pbWVUeXBl
KSA9IDA7DQotICAgICAgIA0KKyAgICAgICB2aXJ0dWFsIHZvaWQgRGlhbG9nRmluZEwoKSA9IDA7
DQorDQogICAgIH07DQogDQogDQogLyoqDQotKiBUaGUgVEJyQ3RsU2VsZWN0T3B0aW9uRGF0YSBj
bGFzcyByZXByZXNlbnRzIGEgbGlzdCBvZiBlbGVtZW50cyANCisqIFRoZSBUQnJDdGxTZWxlY3RP
cHRpb25EYXRhIGNsYXNzIHJlcHJlc2VudHMgYSBsaXN0IG9mIGVsZW1lbnRzDQogKiB0byBkaXNw
bGF5IGluIHRoZSBsaXN0IGJveC4gVGhpcyBjbGFzcyBpcyB1c2VkIGZvciB0aGUgTGlzdCBTZWxl
Y3Rpb24gRGlhbG9nLg0KICogQGNvZGUNCiAqICAjaW5jbHVkZSA8QnJDdGxEaWFsb2dzUHJvdmlk
ZXIuaD4NCkBAIC0zMTUsNyArMzAyLDcgQEAgY2xhc3MgVEJyQ3RsU2VsZWN0T3B0aW9uRGF0YQ0K
ICAgICAgICAgKiBAc2luY2UgMi44DQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5lIFRCckN0
bFNlbGVjdE9wdGlvbkRhdGEoKQ0KLSAgICAgICAgICAgICAgICB7ICAgDQorICAgICAgICAgICAg
ICAgIHsNCiAgICAgICAgICAgICAgICAgaVRleHQuU2V0KE5VTEwsIDApOw0KICAgICAgICAgICAg
ICAgICBpSXNTZWxlY3RlZCA9IEVGYWxzZTsNCiAgICAgICAgICAgICAgICAgaUlzT3B0R3JvdXAg
PSBFRmFsc2U7DQpAQCAtMzMxLDcxICszMTgsNzEgQEAgY2xhc3MgVEJyQ3RsU2VsZWN0T3B0aW9u
RGF0YQ0KICAgICAgICAgKiBAcGFyYW0gYUhhc09uUGljayBJZiBoYXMgb25QaWNrLCBUaGUgZGlh
bG9nIHNob3VsZCBjbG9zZSB3aGVuIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkDQogICAgICAgICAq
IEByZXR1cm4gVGJyQ3RsU2VsZWN0T3B0aW9uRGF0YSBvYmplY3QNCiAgICAgICAgICovDQotICAg
ICAgICBpbmxpbmUgVEJyQ3RsU2VsZWN0T3B0aW9uRGF0YSggY29uc3QgVERlc0MmIGFUZXh0LCAN
CisgICAgICAgIGlubGluZSBUQnJDdGxTZWxlY3RPcHRpb25EYXRhKCBjb25zdCBURGVzQyYgYVRl
eHQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRCb29sIGFJc1Nl
bGVjdGVkLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQm9vbCBh
SXNPcHRHcm91cCwgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRC
b29sIGFJc09wdEdyb3VwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUQm9vbCBhSGFzT25QaWNrICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVRleHQuU2V0KGFUZXh0KTsNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
SXNTZWxlY3RlZCA9IGFJc1NlbGVjdGVkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlJc09wdEdyb3VwID0gYUlzT3B0R3JvdXA7
DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaUhhc09uUGljayA9IGFIYXNPblBpY2s7IA0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlIYXNPblBpY2sgPSBhSGFzT25Q
aWNrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0NCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBHZXRzIHRoZSBkaXNwbGF5IHRl
eHQgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWVkIG9wdGlvbi4NCiAgICAgICAgICogQHNpbmNl
IDIuOA0KLSAgICAgICAgKiBAcmV0dXJuIEEgcmVmZXJlbmNlIHRvIGEgU3ltYmlhbiBURGVzQyBv
YmplY3QgdGhhdCANCi0gICAgICAgICogY29udGFpbnMgdGhlIHRleHQgYXNzb2NpYXRlZCB3aXRo
IHRoaXMgb3B0aW9uLiANCisgICAgICAgICogQHJldHVybiBBIHJlZmVyZW5jZSB0byBhIFN5bWJp
YW4gVERlc0Mgb2JqZWN0IHRoYXQNCisgICAgICAgICogY29udGFpbnMgdGhlIHRleHQgYXNzb2Np
YXRlZCB3aXRoIHRoaXMgb3B0aW9uLg0KICAgICAgICAgKi8NCiAgICAgICAgIGlubGluZSBjb25z
dCBURGVzQyYgVGV4dCgpIGNvbnN0IHtyZXR1cm4gaVRleHQ7fQ0KICAgICAgICAgLyoqDQotICAg
ICAgICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbiBvcHRpb24gaXMgc2VsZWN0ZWQuIA0K
KyAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gb3B0aW9uIGlzIHNlbGVjdGVk
Lg0KICAgICAgICAgKiBAc2luY2UgMi44DQogICAgICAgICAqIEByZXR1cm4gRVRydWUgaWYgdGhl
IG9wdGlvbiBpcyBzZWxlY3RlZA0KICAgICAgICAgKiBFRmFsc2UgaWYgdGhlIG9wdGlvbiBpcyBu
b3Qgc2VsZWN0ZWQNCiAgICAgICAgICovDQogICAgICAgICBpbmxpbmUgVEJvb2wgSXNTZWxlY3Rl
ZCgpIGNvbnN0IHtyZXR1cm4gaUlzU2VsZWN0ZWQ7fQ0KICAgICAgICAgLyoqDQotICAgICAgICAq
IEluZGljYXRlcyB3aGV0aGVyIGFuIG9wdGlvbiBncm91cCBtZW1iZXIgDQotICAgICAgICAqIHZh
cmlhYmxlIGlzIGEgZ3JvdXAgdGl0bGUgb3IgYSBzZWxlY3RhYmxlIG9wdGlvbi4gDQorICAgICAg
ICAqIEluZGljYXRlcyB3aGV0aGVyIGFuIG9wdGlvbiBncm91cCBtZW1iZXINCisgICAgICAgICog
dmFyaWFibGUgaXMgYSBncm91cCB0aXRsZSBvciBhIHNlbGVjdGFibGUgb3B0aW9uLg0KICAgICAg
ICAgKiBAc2luY2UgMi44DQogICAgICAgICAqIEByZXR1cm4gRVRydWUgaWYgdGhlIGxpc3RlZCBp
dGVtIGlzIHRoZSB0aXRsZSBvZiBhbiBvcHRpb24gZ3JvdXANCi0gICAgICAgICogRUZhbHNlIGlm
IHRoZSBsaXN0ZWQgaXRlbSBpcyBvbmUgb2YgdGhlIG9wdGlvbnMgZnJvbSB3aGljaCB0byBzZWxl
Y3QgDQorICAgICAgICAqIEVGYWxzZSBpZiB0aGUgbGlzdGVkIGl0ZW0gaXMgb25lIG9mIHRoZSBv
cHRpb25zIGZyb20gd2hpY2ggdG8gc2VsZWN0DQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5l
IFRCb29sIElzT3B0R3JvdXAoKSBjb25zdCB7cmV0dXJuIGlJc09wdEdyb3VwO30NCiAgICAgICAg
IC8qKg0KLSAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIGRpYWxvZyBjbG9z
ZXMgd2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQuIA0KKyAgICAgICAgKiBJbmRpY2F0ZXMgd2hl
dGhlciBvciBub3QgdGhlIGRpYWxvZyBjbG9zZXMgd2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQu
DQogICAgICAgICAqIEBzaW5jZSAyLjgNCi0gICAgICAgICogQHJldHVybiBFVHJ1ZSBpZiB0aGUg
ZGlhbG9nIGNsb3NlcyB3aGVuIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkLiANCisgICAgICAgICog
QHJldHVybiBFVHJ1ZSBpZiB0aGUgZGlhbG9nIGNsb3NlcyB3aGVuIHRoZSBlbGVtZW50IGlzIHNl
bGVjdGVkLg0KICAgICAgICAgKiBUaGlzIGlzIGtub3duIGFzIGhhdmluZyBPblBpY2sgY2FwYWJp
bGl0eS4NCiAgICAgICAgICogRUZhbHNlIGlmIHRoZSBkaWFsb2cgZG9lcyBub3QgY2xvc2Ugd2hl
biB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZA0KICAgICAgICAgKi8NCiAgICAgICAgIGlubGluZSBU
Qm9vbCBIYXNPblBpY2soKSBjb25zdCB7cmV0dXJuIGlIYXNPblBpY2s7fQ0KICAgICAgICAgLyoq
DQotICAgICAgICAqIFNldHMgdGhlIHRleHQgb2YgdGhlIG9wdGlvbiBvYmplY3QuIA0KKyAgICAg
ICAgKiBTZXRzIHRoZSB0ZXh0IG9mIHRoZSBvcHRpb24gb2JqZWN0Lg0KICAgICAgICAgKiBAc2lu
Y2UgMi44DQotICAgICAgICAqIEBwYXJhbSBhVGV4dCBBIHJlZmVyZW5jZSB0byBhIFREZXNDIG9i
amVjdCB0aGF0IGNvbnRhaW5zIHRoZSANCisgICAgICAgICogQHBhcmFtIGFUZXh0IEEgcmVmZXJl
bmNlIHRvIGEgVERlc0Mgb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlDQogICAgICAgICAqIHRleHQg
dG8gYXNzb2NpYXRlIHdpdGggYSBwYXJ0aWN1bGFyIG9wdGlvbi4NCiAgICAgICAgICogQHJldHVy
biBOb25lDQogICAgICAgICAqLw0KIA0KICAgICAgICAgaW5saW5lIHZvaWQgU2V0VGV4dCggVERl
c0MmIGFUZXh0ICkgICAgICAgICAgICAgeyBpVGV4dC5TZXQoIGFUZXh0ICk7IH0NCiAgICAgICAg
IC8qKg0KLSAgICAgICAgKiBTZXRzIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgYW4gb3B0aW9uLiAN
CisgICAgICAgICogU2V0cyB0aGUgc2VsZWN0aW9uIHN0YXRlIG9mIGFuIG9wdGlvbi4NCiAgICAg
ICAgICogQHNpbmNlIDIuOA0KICAgICAgICAgKiBAcGFyYW0gYUlzU2VsZWN0ZWQgVGhlIHN0YXRl
IG9mIHRoZSBJc1NlbGVjdGVkIG1lbWJlciB2YXJpYWJsZS4NCiAgICAgICAgICogVmFsdWU6DQog
ICAgICAgICAqIEVUcnVlIGlmIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQNCiAgICAgICAgICogRUZh
bHNlIGlmIHRoZSBvcHRpb24gaXMgbm90IHNlbGVjdGVkDQotICAgICAgICAqIEByZXR1cm4gTm9u
ZSANCisgICAgICAgICogQHJldHVybiBOb25lDQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5l
IHZvaWQgU2V0SXNTZWxlY3RlZCggVEJvb2wgYUlzU2VsZWN0ZWQgKSAgeyBpSXNTZWxlY3RlZCA9
IGFJc1NlbGVjdGVkOyB9DQogICAgICAgICAvKioNCi0gICAgICAgICogU2V0cyB0aGUgc3RhdGUg
b2YgdGhlIG9wdGlvbiBncm91cCBtZW1iZXIgdmFyaWFibGUuIA0KLSAgICAgICAgKiBJbmRpY2F0
ZXMgd2hldGhlciBhbiBvcHRpb24gZ3JvdXAgbWVtYmVyIHZhcmlhYmxlIGlzIGEgZ3JvdXAgdGl0
bGUgDQorICAgICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBvcHRpb24gZ3JvdXAgbWVtYmVy
IHZhcmlhYmxlLg0KKyAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBvcHRpb24gZ3JvdXAg
bWVtYmVyIHZhcmlhYmxlIGlzIGEgZ3JvdXAgdGl0bGUNCiAgICAgICAgICogb3IgYSBzZWxlY3Rh
YmxlIG9wdGlvbi4NCiAgICAgICAgICogQHNpbmNlIDIuOA0KLSAgICAgICAgKiBAcGFyYW0gYUlz
T3B0R3JvdXAgVGhlIHN0YXRlIG9mIHRoZSBvcHRpb24gZ3JvdXAuIA0KKyAgICAgICAgKiBAcGFy
YW0gYUlzT3B0R3JvdXAgVGhlIHN0YXRlIG9mIHRoZSBvcHRpb24gZ3JvdXAuDQogICAgICAgICAq
IFZhbHVlOg0KICAgICAgICAgKiBFVHJ1ZSBpZiB0aGUgbGlzdGVkIGl0ZW0gaXMgdGhlIHRpdGxl
IG9mIGFuIG9wdGlvbiBncm91cC4NCiAgICAgICAgICogRUZhbHNlIGlmIHRoZSBsaXN0ZWQgaXRl
bSBpcyBvbmUgb2YgdGhlIG9wdGlvbnMgZnJvbSB3aGljaCB0byBzZWxlY3QuDQpAQCAtNDAzLDEx
ICszOTAsMTEgQEAgY2xhc3MgVEJyQ3RsU2VsZWN0T3B0aW9uRGF0YQ0KICAgICAgICAgKi8NCiAg
ICAgICAgIGlubGluZSB2b2lkIFNldElzT3B0R3JvdXAoIFRCb29sIGFJc09wdEdyb3VwICkgIHsg
aUlzT3B0R3JvdXAgPSBhSXNPcHRHcm91cDsgfQ0KICAgICAgICAgLyoqDQotICAgICAgICAqIFNl
dHMgdGhlIHN0YXRlIG9mIHRoZSBoYXNPblBpY2sgbWVtYmVyIHZhcmlhYmxlLiANCisgICAgICAg
ICogU2V0cyB0aGUgc3RhdGUgb2YgdGhlIGhhc09uUGljayBtZW1iZXIgdmFyaWFibGUuDQogICAg
ICAgICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgZGlhbG9nIGNsb3NlcyB3aGVuIGFu
IG9wdGlvbiBpcyBzZWxlY3RlZC4NCiAgICAgICAgICogQHNpbmNlIDIuOA0KLSAgICAgICAgKiBA
cGFyYW0gYUhhc09uUGljayANCi0gICAgICAgICogRVRydWUgaWYgdGhlIGRpYWxvZyBjbG9zZXMg
d2hlbiB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZC4gVGhpcyANCisgICAgICAgICogQHBhcmFtIGFI
YXNPblBpY2sNCisgICAgICAgICogRVRydWUgaWYgdGhlIGRpYWxvZyBjbG9zZXMgd2hlbiB0aGUg
ZWxlbWVudCBpcyBzZWxlY3RlZC4gVGhpcw0KICAgICAgICAgKiBpcyBrbm93biBhcyBoYXZpbmcg
T25QaWNrIGNhcGFiaWxpdHkuDQogICAgICAgICAqIEVGYWxzZSBpZiB0aGUgZGlhbG9nIGRvZXMg
bm90IGNsb3NlIHdoZW4gdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQNCiAgICAgICAgICogQHJldHVy
biBOb25lDQpAQCAtNDIyLDcgKzQwOSw3IEBAIGNsYXNzIFRCckN0bFNlbGVjdE9wdGlvbkRhdGEN
CiAgICAgICAgIC8vIEZsYWcgaWYgYW4gZWxlbWVudCBvciBvcHJpb24gZ3JvdXAgdGl0bGUNCiAg
ICAgICAgIFRCb29sIGlJc09wdEdyb3VwOw0KICAgICAgICAgLy8gRmxhZyBpZiB0aGUgZWxlbWVu
dCBoYXMgb25QaWNrDQotICAgICAgICBUQm9vbCBpSGFzT25QaWNrOyANCisgICAgICAgIFRCb29s
IGlIYXNPblBpY2s7DQogICAgIH07DQogDQogLyoqDQpAQCAtNDQzLDcgKzQzMCw3IEBAIGNsYXNz
IENCckN0bE9iamVjdEluZm8gOiBwdWJsaWMgQ0Jhc2UNCiAgICAgICAgICogQHNpbmNlIDIuOA0K
ICAgICAgICAgKi8NCiAgICAgICAgIENCckN0bE9iamVjdEluZm8oKTsNCi0gICAgDQorDQogICAg
ICAgICAvKioNCiAgICAgICAgICogQ29uc3RydWN0b3INCiAgICAgICAgICogQHNpbmNlIDMuMA0K
QEAgLTQ2Nyw3ICs0NTQsNyBAQCBjbGFzcyBDQnJDdGxPYmplY3RJbmZvIDogcHVibGljIENCYXNl
DQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5lIHZvaWQgU2V0QXBwU3VwcG9ydGVkKFRCb29s
IGFBcHBTdXBwb3J0ZWQpIHtpQXBwU3VwcG9ydGVkID0gYUFwcFN1cHBvcnRlZDt9DQogICAgICAg
ICAvKioNCi0gICAgICAgICogU2V0cyB0aGUgZmxhZyBpZiB0aGVyZSBpcyBhIG5ldHNjYXBlIHBs
dWdpbiBmb3IgdGhpcyBvYmplY3QgDQorICAgICAgICAqIFNldHMgdGhlIGZsYWcgaWYgdGhlcmUg
aXMgYSBuZXRzY2FwZSBwbHVnaW4gZm9yIHRoaXMgb2JqZWN0DQogICAgICAgICAqIEBzaW5jZSAz
LjANCiAgICAgICAgICogQHBhcmFtIGFQbHVnaW5TdXBwb3J0ZWQgRVRydWUgaWYgdGhlcmUgaXMg
YSBuZXRzY2FwZSBwbHVnaW4gZm9yIHRoaXMgb2JqZWN0DQogICAgICAgICAqIEVGYWxzZSBpZiB0
aGVyZSBpcyBub3QgYSBuZXRzY2FwZSBwbHVnaW4gZm9yIHRoaXMgb2JqZWN0Lg0KQEAgLTQ4NCwx
NSArNDcxLDE1IEBAIGNsYXNzIENCckN0bE9iamVjdEluZm8gOiBwdWJsaWMgQ0Jhc2UNCiAgICAg
ICAgIC8qKg0KICAgICAgICAgKiBTZXRzIHRoZSBuYW1lIG9mIHRoZSB2aWV3ZXIgYXBwIG9yIG5l
dHNjYXBlIHBsdWdpbiB0aGF0IHN1cHBvcnRzIHRoaXMgb2JqZWN0DQogICAgICAgICAqIEBzaW5j
ZSAzLjANCi0gICAgICAgICogQHBhcmFtIGFBcHBOYW1lICBTeW1iaWFuIGRlc2NyaXB0b3IgY29u
dGFpbmluZyB0aGUgbmFtZSBvZiANCisgICAgICAgICogQHBhcmFtIGFBcHBOYW1lICBTeW1iaWFu
IGRlc2NyaXB0b3IgY29udGFpbmluZyB0aGUgbmFtZSBvZg0KICAgICAgICAgKiB0aGUgdmlld2Vy
IGFwcCBvciBuZXRzY2FwZSBwbHVnaW4gdGhhdCBzdXBwb3J0cyB0aGlzIG9iamVjdC4NCiAgICAg
ICAgICogQHJldHVybiBOb25lDQogICAgICAgICAqLw0KICAgICBpbmxpbmUgdm9pZCBTZXRBcHBO
YW1lKGNvbnN0IFREZXNDJiBhQXBwTmFtZSkge2lBcHBOYW1lLlNldChhQXBwTmFtZSk7fQ0KICAg
ICAgICAgLyoqDQotICAgICAgICAqIFNldHMgdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgb2JqZWN0
IA0KKyAgICAgICAgKiBTZXRzIHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIG9iamVjdA0KICAgICAg
ICAgKiBAc2luY2UgMy4wDQotICAgICAgICAqIEBwYXJhbSBhRmlsZVR5cGUgU3ltYmlhbiBkZXNj
cmlwdG9yIGhvbGRpbmcgY29udGVudCB0eXBlIG9mIHRoZSBvYmplY3QgDQorICAgICAgICAqIEBw
YXJhbSBhRmlsZVR5cGUgU3ltYmlhbiBkZXNjcmlwdG9yIGhvbGRpbmcgY29udGVudCB0eXBlIG9m
IHRoZSBvYmplY3QNCiAgICAgICAgICogQHJldHVybiBOb25lDQogICAgICAgICAqLw0KICAgICBp
bmxpbmUgdm9pZCBTZXRGaWxlVHlwZShjb25zdCBURGVzQyYgYUZpbGVUeXBlKSB7aUZpbGVUeXBl
LlNldChhRmlsZVR5cGUpO30NCkBAIC01MDUsMzMgKzQ5MiwzMyBAQCBjbGFzcyBDQnJDdGxPYmpl
Y3RJbmZvIDogcHVibGljIENCYXNlDQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5lIFRCb29s
IEFwcFN1cHBvcnRlZCgpIHtyZXR1cm4gaUFwcFN1cHBvcnRlZDt9DQogICAgICAgICAvKioNCi0g
ICAgICAgICogVGVsbHMgaWYgdGhlcmUgaXMgYSBuZXRzY2FwZSBwbHVnaW4gZm9yIHRoaXMgb2Jq
ZWN0IA0KKyAgICAgICAgKiBUZWxscyBpZiB0aGVyZSBpcyBhIG5ldHNjYXBlIHBsdWdpbiBmb3Ig
dGhpcyBvYmplY3QNCiAgICAgICAgICogQHNpbmNlIDMuMA0KICAgICAgICAgKiBAcGFyYW0gTm9u
ZQ0KICAgICAgICAgKiBAcmV0dXJuIEVUcnVlIGlmIHRoZXJlIGlzIGEgbmV0c2NhcGUgcGx1Z2lu
IGZvciB0aGlzIG9iamVjdA0KLSAgICAgICAgKiBFRmFsc2UgaWYgdGhlcmUgaXMgbm90IGEgbmV0
c2NhcGUgcGx1Z2luIGZvciB0aGlzIG9iamVjdC4gICAgICAgDQorICAgICAgICAqIEVGYWxzZSBp
ZiB0aGVyZSBpcyBub3QgYSBuZXRzY2FwZSBwbHVnaW4gZm9yIHRoaXMgb2JqZWN0Lg0KICAgICAg
ICAgKi8NCiAgICAgICAgIGlubGluZSBUQm9vbCBQbHVnaW5TdXBwb3J0ZWQoKSB7cmV0dXJuIGlQ
bHVnaW5TdXBwb3J0ZWQ7fQ0KICAgICAgICAgLyoqDQogICAgICAgICAqIEdldHMgdGhlIHNpemUg
b2YgdGhlIG9iamVjdA0KICAgICAgICAgKiBAc2luY2UgMy4wDQogICAgICAgICAqIEBwYXJhbSBO
b25lDQotICAgICAgICAqIEByZXR1cm4gU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhl
IHNpemUgb2YgdGhlIG9iamVjdCANCisgICAgICAgICogQHJldHVybiBTeW1iaWFuIGRlc2NyaXB0
b3IgY29udGFpbmluZyB0aGUgc2l6ZSBvZiB0aGUgb2JqZWN0DQogICAgICAgICAqLw0KICAgICAg
ICAgaW5saW5lIGNvbnN0IFREZXNDJiBTaXplKCkgY29uc3Qge3JldHVybiBpU2l6ZTt9DQogICAg
ICAgICAvKioNCiAgICAgICAgICogR2V0cyB0aGUgbmFtZSBvZiB0aGUgdmlld2VyIGFwcCBvciBu
ZXRzY2FwZSBwbHVnaW4gdGhhdCBzdXBwb3J0cyB0aGlzIG9iamVjdA0KICAgICAgICAgKiBAc2lu
Y2UgMy4wDQogICAgICAgICAqIEBwYXJhbSBOb25lDQotICAgICAgICAqIEByZXR1cm4gU3ltYmlh
biBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgDQorICAgICAgICAqIEByZXR1cm4g
U3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YNCiAgICAgICAgICogdGhl
IHZpZXdlciBhcHAgb3IgbmV0c2NhcGUgcGx1Z2luIHRoYXQgc3VwcG9ydHMgdGhpcyBvYmplY3Qu
DQogICAgICAgICAqLw0KICAgICBpbmxpbmUgY29uc3QgVERlc0MmIEFwcE5hbWUoKSBjb25zdCB7
cmV0dXJuIGlBcHBOYW1lO30NCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBHZXRzIHRoZSBjb250
ZW50IHR5cGUgb2YgdGhlIG9iamVjdCANCisgICAgICAgICogR2V0cyB0aGUgY29udGVudCB0eXBl
IG9mIHRoZSBvYmplY3QNCiAgICAgICAgICogQHNpbmNlIDMuMA0KICAgICAgICAgKiBAcGFyYW0g
Tm9uZQ0KLSAgICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVzY3JpcHRvciBob2xkaW5nIGNvbnRl
bnQgdHlwZSBvZiB0aGUgb2JqZWN0IA0KKyAgICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVzY3Jp
cHRvciBob2xkaW5nIGNvbnRlbnQgdHlwZSBvZiB0aGUgb2JqZWN0DQogICAgICAgICAqLw0KICAg
ICBpbmxpbmUgY29uc3QgVERlc0MmIEZpbGVUeXBlKCkgY29uc3Qge3JldHVybiBpRmlsZVR5cGU7
fQ0KICAgcHJpdmF0ZToNCkBAIC01NjcsOSArNTU0LDkgQEAgY2xhc3MgVEJyQ3RsSW1hZ2VDYXJy
aWVyDQogICAgICAgICAqIEBwYXJhbSBhVXJsIFRoZSB1cmwgb2YgdGhlIGltYWdlDQogICAgICAg
ICAqIEBwYXJhbSBhQWx0VGV4dCBUaGUgYWx0IHRleHQgb2YgdGhlIGltYWdlDQogICAgICAgICAq
IEBwYXJhbSBhSW1hZ2VUeXBlIFRoZSB0eXBlIG9mIHRoZSBpbWFnZQ0KLSAgICAgICAgKi8gICAg
ICAgDQorICAgICAgICAqLw0KICAgICAgICAgVEJyQ3RsSW1hZ2VDYXJyaWVyKGNvbnN0IFREZXND
OCYgYVJhd0RhdGEsIGNvbnN0IFREZXNDJiBhVXJsLA0KLSAgICAgICAgICAgIGNvbnN0IFREZXND
JiBhQWx0VGV4dCwgVEJyQ3RsSW1hZ2VUeXBlIGFJbWFnZVR5cGUsIGNvbnN0IFREZXNDJiBhQ29u
dGVudFR5cGUgKSA6IA0KKyAgICAgICAgICAgIGNvbnN0IFREZXNDJiBhQWx0VGV4dCwgVEJyQ3Rs
SW1hZ2VUeXBlIGFJbWFnZVR5cGUsIGNvbnN0IFREZXNDJiBhQ29udGVudFR5cGUgKSA6DQogICAg
ICAgICAgICAgaVJhd0RhdGEoIGFSYXdEYXRhICksDQogICAgICAgICAgICAgaVVybCggYVVybCAp
LA0KICAgICAgICAgICAgIGlBbHRUZXh0KCBhQWx0VGV4dCApLA0KQEAgLTU4OCwxNCArNTc1LDE0
IEBAIGNsYXNzIFRCckN0bEltYWdlQ2Fycmllcg0KICAgICAgICAgKiBQcm92aWRlcyB0aGUgdXJs
IG9mIHRoZSBpbWFnZQ0KICAgICAgICAgKiBAc2luY2UgMy4wDQogICAgICAgICAqIEBwYXJhbSBO
b25lDQotICAgICAgICAqIEByZXR1cm4gU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdXJs
IG9mIHRoZSBpbWFnZSANCisgICAgICAgICogQHJldHVybiBTeW1iaWFuIGRlc2NyaXB0b3IgY29u
dGFpbmluZyB1cmwgb2YgdGhlIGltYWdlDQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5lIGNv
bnN0IFREZXNDJiBVcmwoKSBjb25zdCB7cmV0dXJuIGlVcmw7fQ0KICAgICAgICAgLyoqDQogICAg
ICAgICAqIFByb3ZpZGVzIHRoZSBhbHQgdGV4dCBvZiB0aGUgaW1hZ2UNCiAgICAgICAgICogQHNp
bmNlIDMuMA0KICAgICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAgICAgICAgKiBAcmV0dXJuIFN5bWJp
YW4gZGVzY3JpcHRvciBjb250YWluaW5nIGFsdCB0ZXh0IG9mIHRoZSBpbWFnZSANCisgICAgICAg
ICogQHJldHVybiBTeW1iaWFuIGRlc2NyaXB0b3IgY29udGFpbmluZyBhbHQgdGV4dCBvZiB0aGUg
aW1hZ2UNCiAgICAgICAgICovDQogICAgICAgICBpbmxpbmUgY29uc3QgVERlc0MmIEFsdFRleHQo
KSBjb25zdCB7cmV0dXJuIGlBbHRUZXh0O30NCiAgICAgICAgIC8qKg0KQEAgLTYwOSwxMCArNTk2
LDEwIEBAIGNsYXNzIFRCckN0bEltYWdlQ2Fycmllcg0KICAgICAgICAgKiBQcm92aWRlcyB0aGUg
Y29udGVudCB0eXBlIG9mIHRoZSBpbWFnZQ0KICAgICAgICAgKiBAc2luY2UgMy4xDQogICAgICAg
ICAqIEBwYXJhbSBOb25lDQotICAgICAgICAqIEByZXR1cm4gU3ltYmlhbiBkZXNjcmlwdG9yIGNv
bnRhaW5pbmcgY29udGVudCB0eXBlIG9mIHRoZSBpbWFnZSANCisgICAgICAgICogQHJldHVybiBT
eW1iaWFuIGRlc2NyaXB0b3IgY29udGFpbmluZyBjb250ZW50IHR5cGUgb2YgdGhlIGltYWdlDQog
ICAgICAgICAqLw0KICAgICAgICAgaW5saW5lIGNvbnN0IFREZXNDJiBDb250ZW50VHlwZSgpIGNv
bnN0IHtyZXR1cm4gaUNvbnRlbnRUeXBlO30NCi0gICAgcHJpdmF0ZTogICAgIA0KKyAgICBwcml2
YXRlOg0KICAgICAgICAgVFB0ckM4IGlSYXdEYXRhOw0KICAgICAgICAgVFB0ckMgaVVybDsNCiAg
ICAgICAgIFRQdHJDIGlBbHRUZXh0Ow0KQEAgLTYyMSw2ICs2MDgsNiBAQCBjbGFzcyBUQnJDdGxJ
bWFnZUNhcnJpZXINCiAgICAgfTsNCiANCiANCi0jZW5kaWYgICAgICAvLyBCUkNUTERJQUxPR1NQ
Uk9WSURFUl9IICAgDQotICAgICAgICAgICAgDQorI2VuZGlmICAgICAgLy8gQlJDVExESUFMT0dT
UFJPVklERVJfSA0KKw0KIC8vIEVuZCBvZiBGaWxlDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250
cm9sL2luYy9CckN0bEludGVyZmFjZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJD
b250cm9sL2luYy9CckN0bEludGVyZmFjZS5oCShyZXZpc2lvbiAyMDk1MSkNCisrKyBXZWJLaXQv
QnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkNCkBAIC03
MSwxMCArNzEsOCBAQCBjbGFzcyBUQnJDdGxXbWxTZXJ2aWNlT3B0aW9uOw0KIGNsYXNzIFRCckN0
bFN1YnNjcmliZVRvOw0KIGNsYXNzIE1CckN0bFN0YXRlQ2hhbmdlT2JzZXJ2ZXI7DQogY2xhc3Mg
TUJyQ3RsQ29tbWFuZE9ic2VydmVyOw0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogY2xh
c3MgTVdpZGdldENhbGxiYWNrOw0KIGNsYXNzIE1XaWRnZXRFeHRlbnNpb247DQotI2VuZGlmIC8v
UkRfQlJPV1NFUl9XSURHRVRTDQogY2xhc3MgQ0JyQ3RsSW50ZXJmYWNlOw0KIGNsYXNzIENQbHVn
aW5JbmZvOw0KIGNsYXNzIFRCckN0bEltYWdlQ2FycmllcjsNCkBAIC01OTksNyArNTk3LDYgQEAg
Y2xhc3MgQ0JyQ3RsSW50ZXJmYWNlIDogcHVibGljIENDb2VDb250cg0KICAgICAgICAgKi8NCiAg
ICAgICAgIElNUE9SVF9DIHZpcnR1YWwgdm9pZCBSZW1vdmVDb21tYW5kT2JzZXJ2ZXIoTUJyQ3Rs
Q29tbWFuZE9ic2VydmVyKiBhQnJDdGxDb21tYW5kT2JzZXJ2ZXIpID0gMDsNCiANCi0jaWZkZWYg
IFJEX0JST1dTRVJfV0lER0VUUw0KICAgICAgICAgLyoqDQogICAgICAgICAqIFVucmVnaXN0ZXIg
YSBjbGllbnQgY29tbWFuZCBpbnRlcmZhY2UgZm9yIHRoZSBicm93c2VyIGVuZ2luZQ0KICAgICAg
ICAgKiBAc2luY2UgMy4xDQpAQCAtNjA3LDEyICs2MDQsMTEgQEAgY2xhc3MgQ0JyQ3RsSW50ZXJm
YWNlIDogcHVibGljIENDb2VDb250cg0KICAgICAgICAgKiBAcmV0dXJuIHZvaWQNCiAgICAgICAg
ICovDQogICAgICAgICBJTVBPUlRfQyB2aXJ0dWFsIE1XaWRnZXRFeHRlbnNpb24qIENyZWF0ZVdp
ZGdldEV4dGVuc2lvbkwoTVdpZGdldENhbGxiYWNrJiBhV2lkZ2V0Q2FsbGJhY2spID0gMDsNCi0j
ZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBH
ZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvY3VzZWQgaW1hZ2UuIFRoZSBmdW5jdGlvbiBsZWF2
ZXMgaWYgdGhlIGZvY3VzIGlzIG5vdCBvbiBhbiBpbWFnZQ0KICAgICAgICAgKiBAc2luY2UgMy4y
DQotICAgICAgICAqIEBwYXJhbSANCisgICAgICAgICogQHBhcmFtDQogICAgICAgICAqIEByZXR1
cm4gVGhlIHJlcXVlc3RlZCBpbmZvcm1hdGlvbg0KICAgICAgICAgKi8NCiAgICAgICAgIElNUE9S
VF9DIHZpcnR1YWwgVEJyQ3RsSW1hZ2VDYXJyaWVyKiBGb2N1c2VkSW1hZ2VMQygpID0gMDsNCkBA
IC04ODgsNyArODg0LDcgQEAgY2xhc3MgTUJyQ3RsQ29tbWFuZE9ic2VydmVyDQogICAgICAgICB2
aXJ0dWFsIHZvaWQgSGFuZGxlQ29tbWFuZEwoVEJyQ3RsRGVmczo6VEJyQ3RsQ2xpZW50Q29tbWFu
ZHMgYUNvbW1hbmQsIGNvbnN0IENBcnJheUZpeDxUUHRyQz4mIGFBdHRyaWJ1dGVzTmFtZXMsDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENBcnJheUZpeDxUUHRy
Qz4mIGFBdHRyaWJ1dGVWYWx1ZXMpID0gMDsNCiAgICAgfTsNCi0jaWZkZWYgIFJEX0JST1dTRVJf
V0lER0VUUw0KKw0KIC8vIENMQVNTIERFQ0xBUkFUSU9ODQogLyoqDQogKiAgVGhpcyBjbGFzcyBw
cm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgdGhlIGJyb3dzZXIgZW5naW5lIHRvIGludGVyYWN0IHdp
dGggdGhlIHdpZGdldCBob3N0IGFwcGxpY2F0aW9uDQpAQCAtODk4LDEwICs4OTQsMjIgQEAgY2xh
c3MgTUJyQ3RsQ29tbWFuZE9ic2VydmVyDQogKi8NCiBjbGFzcyBNV2lkZ2V0Q2FsbGJhY2sNCiAg
ICAgew0KLSAgICBwdWJsaWM6IC8vIE5ldyBmdW5jdGlvbnMNCisgICAgcHVibGljOg0KKyAgICAg
ICAgLyoqDQorICAgICAgICAqIE5hdmlnYXRlcyB0aHJvdWdoIHlvdXIgZmlsZSBzeXN0ZW0gYW5k
IHNlbGVjdHMgYSBmaWxlIG9mIHNwZWNpZmljIG1pbWUgdHlwZTsNCisgICAgICAgICogYW5hbG9n
b3VzIHRvIHRoZSBCcm93c2UgY29tbWFuZCBpbiBXaW5kb3dzLg0KKyAgICAgICAgKiBAc2luY2Ug
My4yDQorICAgICAgICAqIEBwYXJhbSBhU2VsZWN0ZWRGaWxlTmFtZSBUaGUgc2VsZWN0ZWQgZmls
ZSBuYW1lLg0KKyAgICAgICAgKiBAcGFyYW0gYU1pbWVUeXBlIFRoZSBhY2NlcHRlZCBtaW1lIHR5
cGUuDQorICAgICAgICAqIEByZXR1cm4gRVRydWUgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgYSBmaWxl
DQorICAgICAgICAqIEVGYWxzZSBpZiB0aGUgdXNlciBjYW5jZWxsZWQgdGhlIHRyYW5zYWN0aW9u
IGFuZCBkaWQgbm90IHNlbGVjdCBhIGZpbGUuDQorICAgICAgICAqIEBhdHRpb250aW9uIFJldHVy
bmVkIG9uIGNsZWFudXAgc3RhY2suIEJyb3dzZXIgY29udHJvbCB3aWxsIGZyZWUgdGhlIGJ1ZmZl
ci4NCisgICAgICAgICovDQorICAgICAgICB2aXJ0dWFsIFRCb29sIERpYWxvZ01pbWVGaWxlU2Vs
ZWN0TEMoSEJ1ZkMqJiBhU2VsZWN0ZWRGaWxlTmFtZSwNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBURGVzQyYgYU1pbWVUeXBlKSA9IDA7DQogDQotICAgICAgICAvL1RP
IEJFIElNUExFTUVOVEVEDQogICAgIH07DQorDQogLy8gQ0xBU1MgREVDTEFSQVRJT04NCiAvKioN
CiAqICBUaGlzIGNsYXNzIHByb3ZpZGVzIGFuIGV4dGVuc2lvbiBtZWNoYW5pc20gZm9yIHRoZSB3
aWRnZXQgaG9zdCBhcHAgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgYnJvd3NlciBlbmdpbmUNCkBAIC05
MzAsNyArOTM4LDYgQEAgY2xhc3MgTVdpZGdldEV4dGVuc2lvbg0KICAgICAgICAgKi8NCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBTZXRQYXJhbUwoVEJyQ3RsRGVmczo6VEJyQ3RsV2lkZ2V0UGFyYW1z
IGFQYXJhbSwgVFVpbnQgYVZhbHVlKSA9IDA7DQogICAgIH07DQotI2VuZGlmIC8vUkRfQlJPV1NF
Ul9XSURHRVRTDQogI2VuZGlmICAgICAgLy8gQlJDVExJTlRFUkZBQ0VfSA0KIA0KIC8vIEVuZCBv
ZiBGaWxlDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvbnRyb2wvc3JjL0JyQ3RsLmNwcAkocmV2aXNpb24g
MjA5NTEpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHAJKHdvcmtpbmcg
Y29weSkNCkBAIC00MDcsNyArNDA3LDcgQEAgRVhQT1JUX0MgQ0JyQ3RsOjp+Q0JyQ3RsKCkNCiAN
CiAgICAgLy9EZWxldGUgdGhlIFdlYmtpdENvbnRyb2wNCiAgICAgZGVsZXRlIGlXZWJLaXRDb250
cm9sOw0KLSAgICANCisNCiAgICAgZGVsZXRlIGlTZWxmQ29udGVudFR5cGVzOw0KICAgICBpTG9h
ZEV2ZW50T2JzZXJ2ZXJzQXJyYXkuUmVzZXQoKTsNCiAgICAgaVdtbFNlcnZpY2VPcHRpb24uUmVz
ZXRBbmREZXN0cm95KCk7DQpAQCAtODgzLDcgKzg4Myw3IEBAIEVYUE9SVF9DIHZvaWQgQ0JyQ3Rs
OjpIYW5kbGVDb21tYW5kTChUSW4NCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIGlX
ZWJLaXRDb250cm9sLT5XZWJLaXRWaWV3KCkuTG9hZEZvY3VzZWRJbWFnZUwoKTsNCiAgICAgICAg
ICAgICBicmVhazsNCi0gICAgICAgICAgICB9ICAgICAgICAgICAgDQorICAgICAgICAgICAgfQ0K
ICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICB7DQogICAgICAgICAgICAgaWYgKCBpV21s
RW5naW5lSW50ZXJmYWNlICYmDQpAQCAtMjUxNSw3ICsyNTE1LDcgQEAgdm9pZCBDQnJDdGw6Okhh
bmRsZVJlc291cmNlQ2hhbmdlKCBUSW50IA0KICAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCiAg
ICAgfQ0KLSNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQorDQogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCiAvLyBDQnJDdGw6OkNyZWF0ZVdpZGdldEV4dGVuc2lvbg0KIC8vDQpAQCAtMjUyMywx
MCArMjUyMywxMiBAQCB2b2lkIENCckN0bDo6SGFuZGxlUmVzb3VyY2VDaGFuZ2UoIFRJbnQgDQog
Ly8NCiBFWFBPUlRfQyBNV2lkZ2V0RXh0ZW5zaW9uKiBDQnJDdGw6OkNyZWF0ZVdpZGdldEV4dGVu
c2lvbkwoTVdpZGdldENhbGxiYWNrJiBhV2lkZ2V0Q2FsbGJhY2spDQogICAgIHsNCisjaWZkZWYg
IFJEX0JST1dTRVJfV0lER0VUUw0KICAgICByZXR1cm4gaVdlYktpdENvbnRyb2wtPkNyZWF0ZVdp
ZGdldEV4dGVuc2lvbkwoYVdpZGdldENhbGxiYWNrKTsNCisjZWxzZQ0KKyAgICByZXR1cm4gTlVM
TDsNCisjZW5kaWYNCiAgICAgfQ0KLQ0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0K
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ0JyQ3RsOjpGb2N1c2VkSW1hZ2VMQw0KSW5k
ZXg6IFdlYktpdC9Ccm93c2VyQ29yZS9Gb3JtY29udHJvbHMvaW5jL0ZDb250cm9sRmlsZUlucHV0
U2tpbi5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb3JlL0Zvcm1jb250cm9scy9p
bmMvRkNvbnRyb2xGaWxlSW5wdXRTa2luLmgJKHJldmlzaW9uIDIwOTUxKQ0KKysrIFdlYktpdC9C
cm93c2VyQ29yZS9Gb3JtY29udHJvbHMvaW5jL0ZDb250cm9sRmlsZUlucHV0U2tpbi5oCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtOCwxMSArOCwxMSBAQA0KICoNCiAqICAgIENvcHlyaWdodCAoYykgMjAw
NiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotKiAgDQor
Kg0KICogICAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAqICAgICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQogKiAgICAgIGFyZSBtZXQ6
DQotKiAgDQorKg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KICogICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0DQpAQCAtMjIsNyArMjIsNyBAQA0KICogICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
dGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQogKiAgICAgICAgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLg0KLSogIA0KKyoNCiAqICAgICAgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KICogICAg
ICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVA0KICogICAgICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCkBAIC0zNSw3ICszNSw3IEBADQogKiAg
ICAgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFDQogKiAgICAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCiAqICAgICAgREFNQUdFLg0KLSogIA0KKyoN
CiAqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFu
dHMuDQogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAqLw0KQEAgLTkyLDcgKzkyLDcgQEAgY2xh
c3MgVEZpbGVEaWFsb2dXcmFwcGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBI
QnVmQyomIGFTZWxlY3RlZEZpbGVOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyKiBhRGlhbG9nUHJvdmlkZXIpOw0KICAgICAgICAgLyoq
DQotICAgICAgICAqIE5hdmlnYXRlcyB0aHJvdWdoIHlvdXIgZmlsZSBzeXN0ZW0gYW5kIHNlbGVj
dHMgYSBmaWxlIG9mIHNwZWNpZmljIG1pbWUgdHlwZTsgDQorICAgICAgICAqIE5hdmlnYXRlcyB0
aHJvdWdoIHlvdXIgZmlsZSBzeXN0ZW0gYW5kIHNlbGVjdHMgYSBmaWxlIG9mIHNwZWNpZmljIG1p
bWUgdHlwZTsNCiAgICAgICAgICogQHNpbmNlIDMuMg0KICAgICAgICAgKiBAcGFyYW0gYVNlbGVj
dGVkRmlsZU5hbWUgVGhlIHNlbGVjdGVkIGZpbGUgbmFtZS4NCiAgICAgICAgICogQHBhcmFtIGFN
aW1lVHlwZSBUaGUgYWNjZXB0ZWQgbWltZSB0eXBlLg0KQEAgLTEwMiw3ICsxMDIsNyBAQCBjbGFz
cyBURmlsZURpYWxvZ1dyYXBwZXINCiAgICAgICAgICovDQogICAgICAgICBUQm9vbCBEaWFsb2dN
aW1lRmlsZVNlbGVjdExDKEhCdWZDKiYgYVNlbGVjdGVkRmlsZU5hbWUsDQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBURGVzQyYgYU1pbWVUeXBlLA0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJyQ3RsRGlhbG9nc1Byb3Zp
ZGVyKiBhRGlhbG9nUHJvdmlkZXIpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTVdpZGdldENhbGxiYWNrKiBhV2lkZ2V0Q2FsbGJhY2spOw0KIA0KICAgICAgICAg
LyoqDQogICAgICAgICAqIHNldHMgdGhlIGNhbGxlciBmbGFnIHRvIGRlbGV0ZWQuDQpJbmRleDog
V2ViS2l0L0Jyb3dzZXJDb3JlL0Zvcm1jb250cm9scy9zcmMvRkNvbnRyb2xGaWxlSW5wdXRTa2lu
LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29yZS9Gb3JtY29udHJvbHMvc3Jj
L0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHAJKHJldmlzaW9uIDIwOTUxKQ0KKysrIFdlYktpdC9C
cm93c2VyQ29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHAJKHdv
cmtpbmcgY29weSkNCkBAIC04LDExICs4LDExIEBADQogKg0KICogICAgQ29weXJpZ2h0IChjKSAy
MDA2LCBOb2tpYSBDb3Jwb3JhdGlvbg0KICogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0qICAN
CisqDQogKiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dA0KICogICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCiAqICAgYXJlIG1ldDoNCi0qICAN
CisqDQogKiAgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQogKiAgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQN
CkBAIC0yMiw3ICsyMiw3IEBADQogKiAgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgTm9r
aWEgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCiAqICAgICAgICBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQNCiAq
ICAgICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uDQotKiAgDQorKg0KICogICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTDQogKiAgICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UDQog
KiAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUg0KQEAgLTM1LDcgKzM1LDcgQEANCiAqICAgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUNCiAqICAg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSA0KICogICBEQU1BR0UuDQotKiAgDQorKg0KICogICAgUGxlYXNlIHNlZSBmaWxlIHBh
dGVudGxpY2Vuc2UudHh0IGZvciBmdXJ0aGVyIGdyYW50cy4NCiAqID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KICovDQpAQCAtNjMsNiArNjMsOSBAQA0KICNpbmNsdWRlICJXZWJLaXRWaWV3LmgiDQog
I2luY2x1ZGUgIldlYktpdENvbnRyb2wuaCINCiAjaW5jbHVkZSAiV2ViS2l0QnJpZGdlLmgiDQor
I2lmZGVmIFJEX0JST1dTRVJfV0lER0VUUw0KKyNpbmNsdWRlICJXaWRnZXRFeHRlbnNpb24uaCIN
CisjZW5kaWYNCiANCiANCiB2b2lkIEJyQ3RsUGFuaWMoVEludCk7DQpAQCAtODcsOSArOTAsOSBA
QCBUQm9vbCBURmlsZURpYWxvZ1dyYXBwZXI6OkRpYWxvZ0ZpbGVTZWxlDQogDQogVEJvb2wgVEZp
bGVEaWFsb2dXcmFwcGVyOjpEaWFsb2dNaW1lRmlsZVNlbGVjdExDKCBIQnVmQyomIGFTZWxlY3Rl
ZEZpbGVOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgY29uc3QgVERlc0MmIGFNaW1lVHlwZSwN
Ci0gICAgICAgICAgICAgICAgICAgIE1CckN0bERpYWxvZ3NQcm92aWRlciogYURpYWxvZ1Byb3Zp
ZGVyKQ0KKyAgICAgICAgICAgICAgICAgICAgTVdpZGdldENhbGxiYWNrKiBhV2lkZ2V0Q2FsbGJh
Y2spDQogICB7DQotICByZXR1cm4gYURpYWxvZ1Byb3ZpZGVyLT5EaWFsb2dNaW1lRmlsZVNlbGVj
dExDKCBhU2VsZWN0ZWRGaWxlTmFtZSwgYU1pbWVUeXBlKTsNCisgIHJldHVybiBhV2lkZ2V0Q2Fs
bGJhY2stPkRpYWxvZ01pbWVGaWxlU2VsZWN0TEMoIGFTZWxlY3RlZEZpbGVOYW1lLCBhTWltZVR5
cGUpOw0KICAgfQ0KIA0KIA0KQEAgLTIzNiwxOCArMjM5LDE4IEBAIHZvaWQgQ0Zvcm1GaWxlSW5w
dXRTa2luOjpTZXRPdXRsaW5lV2lkdGgNCiAgIH0NCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KLS8vIENGb3JtRmlsZUlucHV0U2tpbjo6U2V0QWNjZXB0ZWRNaW1lVHlwZSwgc2V0cyB0aGUg
YWNjZXB0ZWQgbWltZSB0eXBlIA0KKy8vIENGb3JtRmlsZUlucHV0U2tpbjo6U2V0QWNjZXB0ZWRN
aW1lVHlwZSwgc2V0cyB0aGUgYWNjZXB0ZWQgbWltZSB0eXBlDQogLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZmlsZSBzZWxlY3Rpb24NCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KIHZvaWQgQ0Zvcm1GaWxlSW5wdXRTa2luOjpTZXRBY2NlcHRlZE1pbWVU
eXBlKCBjb25zdCBURGVzQyYgYU1pbWVUeXBlICkNCiAgICAgew0KICAgICBkZWxldGUgaUFjY2Vw
dGVkTWltZVR5cGU7DQogICAgIGlBY2NlcHRlZE1pbWVUeXBlID0gTlVMTDsNCi0gICAgDQorDQog
ICAgIFRSQVBfSUdOT1JFKGlBY2NlcHRlZE1pbWVUeXBlID0gYU1pbWVUeXBlLkFsbG9jTCgpKTsN
Ci0gICAgDQorDQogICAgIH0NCi0gICAgICAgIA0KKw0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQogLy8gQ0Zvcm1GaWxlSW5wdXRTa2luOjpTZXRSZWN0LCBzZXRzIHRoZSBjby1vcmRpbmF0ZXMg
Zm9yIHRoZSBjb250cm9sDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkBAIC0zNzcsOCArMzgw
LDggQEAgdm9pZCBDRm9ybUZpbGVJbnB1dFNraW46OkFjdGl2YXRlTCgpDQogICBpRGlhbG9nV3Jh
cHBlciA9IGRpYWxvZ1dyYXBwZXI7DQogDQogICAgIHdlYmtpdEZyYW1lLT5XZWJLaXRWaWV3KCku
U2V0RGlhbG9nTGF1bmNoZWQoRVRydWUpOw0KLSAgICANCi0gICAgDQorDQorDQogI2lmZGVmICBS
RF9CUk9XU0VSX1dJREdFVFMNCiAgICAgLy8gSWYgV2lkZ2V0IG1vZGUgYW5kIEFjY2VwdGVkIE1p
bWUgVHlwZSBoYXMgYmVlbiBzZXQNCiAgICAgaWYgKHdlYktpdENvbnRyb2wtPldpZGdldEV4dGVu
c2lvbigpICYmDQpAQCAtMzg3LDggKzM5MCw4IEBAIHZvaWQgQ0Zvcm1GaWxlSW5wdXRTa2luOjpB
Y3RpdmF0ZUwoKQ0KICAgICAgIC8vIExhdW5jaCB0aGUgZGlhbG9nIHRoYXQgd2lsbCB1c2UgTWlt
ZSBUeXBlIGZpbHRlci4NCiAgICAgICAgIHNlbGVjdGVkID0gaURpYWxvZ1dyYXBwZXItPkRpYWxv
Z01pbWVGaWxlU2VsZWN0TEMoIGJ1ZiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKmlBY2NlcHRlZE1pbWVUeXBlLA0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dQcm92aWRl
cik7DQotICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJndlYktpdENvbnRyb2wtPldpZGdldEV4dGVuc2lvbigpLT5XaWRnZXRD
YWxsYmFjaygpKTsNCisNCiAgICAgICAgIH0NCiAgICAgLy8gSWYgYSByZWNlbnQgcGF0aCBleGlz
dHMsIHVzZSB0aGF0IGFzIHRoZSBzdGFydGluZyBwb2ludC4NCiAgICAgZWxzZSBpZiAoIHB0ck1v
c3RSZWNlbnRQYXRoLkxlbmd0aCgpICkNCkBAIC00NzYsNCArNDc5LDUgQEAgdm9pZCBDRm9ybUZp
bGVJbnB1dFNraW46OlNldEZvbnQgKCBDRm9udA0KICAgICB7DQogICAgIGlGb250ID0gYUZvbnQ7
DQogICAgIH0NCisNCiANCkluZGV4OiBXZWJLaXQvQnJvd3NlclZpZXcvaW5jL1dpZGdldEV4dGVu
c2lvbi5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XaWRnZXRFeHRl
bnNpb24uaAkocmV2aXNpb24gMjA5NTEpDQorKysgV2ViS2l0L0Jyb3dzZXJWaWV3L2luYy9XaWRn
ZXRFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQ0KQEAgLTI2Myw2ICsyNjMsMTMgQEAgY2xhc3Mg
Q1dpZGdldEV4dGVuc2lvbjogcHVibGljIENCYXNlLCBwdQ0KICAgICAgICAgTVdpZGdldEVuZ2lu
ZUJyaWRnZSYgV2lkZ2V0RW5naW5lQnJpZGdlKCkgY29uc3QgeyByZXR1cm4gKmlXaWRnZXRFbmdp
bmVCcmlkZ2U7IH0NCiANCiAgICAgICAgIC8qKg0KKyAgICAgICAgKiBNZXRob2QgV2lkZ2V0Q2Fs
bGJhY2sNCisgICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcmV0dXJuIHdpZGdldCBl
bmdpbmUgYnJpZGdlDQorICAgICAgICAqLw0KKyAgICAgICAgTVdpZGdldENhbGxiYWNrJiBXaWRn
ZXRDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuICppV2lkZ2V0Q2FsbGJhY2s7IH0NCisNCisgICAg
ICAgIC8qKg0KICAgICAgICAgKiBNZXRob2QgTmF2aWdhdGlvbkVuYWJsZWQNCiAgICAgICAgICog
QHNpbmNlIDMuMg0KICAgICAgICAgKiBAcmV0dXJuIGJvb2wNCkluZGV4OiBXZWJLaXQvZ3JvdXAv
Zm9ybWNvbnRyb2xzLm1tcGkNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3JvdXAvZm9ybWNvbnRy
b2xzLm1tcGkJKHJldmlzaW9uIDIwOTUxKQ0KKysrIFdlYktpdC9ncm91cC9mb3JtY29udHJvbHMu
bW1waQkod29ya2luZyBjb3B5KQ0KQEAgLTYzLDYgKzYzLDkgQEAgVVNFUklOQ0xVREUgICAgIC4u
XEJyb3dzZXJDb3JlXE1pc2NcSW5jDQogVVNFUklOQ0xVREUgICAgIC4uXFJlc291cmNlTG9hZGVy
XEluYw0KIFVTRVJJTkNMVURFICAgICAuLlxCcm93c2VyQ29udHJvbFxpbmMNCiBVU0VSSU5DTFVE
RSAgICAgLi5cQnJvd3NlclZpZXdcaW5jDQorI2lmZGVmIFJEX0JST1dTRVJfV0lER0VUUw0KK1VT
RVJJTkNMVURFICAgICAuLlwuLlwuLlxXaWRnZXRFbmdpbmVcaW5jDQorI2VuZGlmDQogI2lmbmRl
ZiBfX0JST1dTRVJfU0RLDQogVVNFUklOQ0xVREUgICAgIC4uXC4uXC4uXFBhZ2VTY2FsZXJcaW5j
DQogI2VuZGlmDQpJbmRleDogV2ViS2l0L2dyb3VwL0JXSU5TQ1cvV2ViS2l0XzMwVS5kZWYNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvZ3JvdXAvQldJTlNDVy9XZWJLaXRfMzBVLmRlZgkocmV2aXNp
b24gMjA5NTEpDQorKysgV2ViS2l0L2dyb3VwL0JXSU5TQ1cvV2ViS2l0XzMwVS5kZWYJKHdvcmtp
bmcgY29weSkNCkBAIC00Miw0ICs0Miw2IEBAIEVYUE9SVFMNCiAgICAgP0FkZENvbW1hbmRPYnNl
cnZlckxAQ0JyQ3RsQEBVQUVYUEFWTUJyQ3RsQ29tbWFuZE9ic2VydmVyQEBAWiBAIDQxIE5PTkFN
RSA7IHZvaWQgQ0JyQ3RsOjpBZGRDb21tYW5kT2JzZXJ2ZXJMKGNsYXNzIE1CckN0bENvbW1hbmRP
YnNlcnZlciAqKQ0KICAgICA/UmVtb3ZlQ29tbWFuZE9ic2VydmVyQENCckN0bEBAVUFFWFBBVk1C
ckN0bENvbW1hbmRPYnNlcnZlckBAQFogQCA0MiBOT05BTUUgOyB2b2lkIENCckN0bDo6UmVtb3Zl
Q29tbWFuZE9ic2VydmVyKGNsYXNzIE1CckN0bENvbW1hbmRPYnNlcnZlciAqKQ0KICAgICA/Rm9j
dXNlZEltYWdlTENAQ0JyQ3RsQEBVQUVQQVZUQnJDdGxJbWFnZUNhcnJpZXJAQFhaIEAgNDMgTk9O
QU1FIDsgY2xhc3MgVEJyQ3RsSW1hZ2VDYXJyaWVyICogQ0JyQ3RsOjpGb2N1c2VkSW1hZ2VMQyh2
b2lkKQ0KKyAgICA/Q3JlYXRlV2lkZ2V0RXh0ZW5zaW9uTEBDQnJDdGxAQFVBRVBBVk1XaWRnZXRF
eHRlbnNpb25AQEFBVk1XaWRnZXRDYWxsYmFja0BAQFogQCA0NCBOT05BTUUgOyBjbGFzcyBNV2lk
Z2V0RXh0ZW5zaW9uICogQ0JyQ3RsOjpDcmVhdGVXaWRnZXRFeHRlbnNpb25MKGNsYXNzIE1XaWRn
ZXRDYWxsYmFjayAmKQ0KKw0KIA0KSW5kZXg6IFdlYktpdC9ncm91cC9FQUJJL2Jyb3dzZXJlbmdp
bmVVLmRlZg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9ncm91cC9FQUJJL2Jyb3dzZXJlbmdpbmVV
LmRlZgkocmV2aXNpb24gMjA5NTEpDQorKysgV2ViS2l0L2dyb3VwL0VBQkkvYnJvd3NlcmVuZ2lu
ZVUuZGVmCSh3b3JraW5nIGNvcHkpDQpAQCAtNDYsNCArNDYsNiBAQCBFWFBPUlRTDQogICAgIF9a
TjZDQnJDdGwxOUFkZENvbW1hbmRPYnNlcnZlckxFUDIxTUJyQ3RsQ29tbWFuZE9ic2VydmVyIEAg
NDUgTk9OQU1FDQogICAgIF9aTjZDQnJDdGwyMVJlbW92ZUNvbW1hbmRPYnNlcnZlckVQMjFNQnJD
dGxDb21tYW5kT2JzZXJ2ZXIgQCA0NiBOT05BTUUNCiAgICAgX1pONkNCckN0bDE0Rm9jdXNlZElt
YWdlTENFdiBAIDQ3IE5PTkFNRQ0KKyAgICBfWk42Q0JyQ3RsMjJDcmVhdGVXaWRnZXRFeHRlbnNp
b25MRVIxNU1XaWRnZXRDYWxsYmFjayBAIDQ4IE5PTkFNRQ0KKw0KIA0K
</data>
<flag name="review"
          id="5698"
          type_id="1"
          status="-"
          setter="yongjun.zhang"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14110</attachid>
            <date>2007-04-20 08:54:58 -0700</date>
            <delta_ts>2007-04-23 06:53:52 -0700</delta_ts>
            <desc>fixed change.log</desc>
            <filename>bc.patch</filename>
            <type>text/plain</type>
            <size>40471</size>
            <attacher name="Steven Winship">steven.winship</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDk1MSkNCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDI4IEBADQord2luc2hpcCwgcmV2aWV3ZWQgYnkgWW9uZ2p1bg0KKyBERVNDOiBt
b3ZlIERpYWxvZ01pbWVGaWxlU2VsZWN0TEMgZnJvbSBEaWFsb2dQcm92aWRlciBBUEkgdG8gTVdp
ZGdldENhbGxCYWNrIA0KKyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzQwNg0KKw0KKyAgICAgICAgKiBCcm93c2VyQ29udHJvbC9pbmMvQnJDdGwuaDoNCisgICAgICAg
ICogQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsRGVmcy5oOg0KKyAgICAgICAgKFRCckN0bERlZnM6
Oik6DQorICAgICAgICAqIEJyb3dzZXJDb250cm9sL2luYy9CckN0bERpYWxvZ3NQcm92aWRlci5o
Og0KKyAgICAgICAgKFRCckN0bFNlbGVjdE9wdGlvbkRhdGE6OlRCckN0bFNlbGVjdE9wdGlvbkRh
dGEpOg0KKyAgICAgICAgKFRCckN0bEltYWdlQ2Fycmllcjo6VEJyQ3RsSW1hZ2VDYXJyaWVyKToN
CisgICAgICAgICogQnJvd3NlckNvbnRyb2wvaW5jL0JyQ3RsSW50ZXJmYWNlLmg6DQorICAgICAg
ICAqIEJyb3dzZXJDb250cm9sL3NyYy9CckN0bC5jcHA6DQorICAgICAgICAoQ0JyQ3RsOjp+Q0Jy
Q3RsKToNCisgICAgICAgIChDQnJDdGw6OkhhbmRsZUNvbW1hbmRMKToNCisgICAgICAgIChDQnJD
dGw6OkNyZWF0ZVdpZGdldEV4dGVuc2lvbkwpOg0KKyAgICAgICAgKiBCcm93c2VyQ29yZS9Gb3Jt
Y29udHJvbHMvaW5jL0ZDb250cm9sRmlsZUlucHV0U2tpbi5oOg0KKyAgICAgICAgKiBCcm93c2Vy
Q29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250cm9sRmlsZUlucHV0U2tpbi5jcHA6DQorICAgICAg
ICAoVEZpbGVEaWFsb2dXcmFwcGVyOjpEaWFsb2dNaW1lRmlsZVNlbGVjdExDKToNCisgICAgICAg
IChDRm9ybUZpbGVJbnB1dFNraW46OlNldEFjY2VwdGVkTWltZVR5cGUpOg0KKyAgICAgICAgKENG
b3JtRmlsZUlucHV0U2tpbjo6QWN0aXZhdGVMKToNCisgICAgICAgICogQnJvd3NlclZpZXcvaW5j
L1dpZGdldEV4dGVuc2lvbi5oOg0KKyAgICAgICAgKiBncm91cC9CV0lOU0NXL1dlYktpdF8zMFUu
ZGVmOg0KKyAgICAgICAgKiBncm91cC9FQUJJL2Jyb3dzZXJlbmdpbmVVLmRlZjoNCisgICAgICAg
ICogZ3JvdXAvZm9ybWNvbnRyb2xzLm1tcGk6DQorDQogMjAwNy0wNC0xNiAgc3BhZG1hICANCiAN
CiAgICAgICAgIFJldmlld2VkIGJ5IFphbGFuDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJDb250cm9s
L2luYy9CckN0bC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9C
ckN0bC5oCShyZXZpc2lvbiAyMDk1MSkNCisrKyBXZWJLaXQvQnJvd3NlckNvbnRyb2wvaW5jL0Jy
Q3RsLmgJKHdvcmtpbmcgY29weSkNCkBAIC02NTAsMTQgKzY1MCwxMiBAQCBjbGFzcyBDQnJDdGwg
OiBwdWJsaWMgQ0JyQ3RsSW50ZXJmYWNlLCBwDQogICAgICAgICAqLw0KICAgICAgICAgSU1QT1JU
X0MgVEJyQ3RsRGVmczo6VEJyQ3RsRmluZFJlc3BvbnNlIEZpbmRLZXl3b3JkQWdhaW4oIFRCb29s
IGFGb3dhcmREaXJlY3Rpb24gKTsNCiANCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KICAg
ICAgICAgLyoqDQogICAgICAgICAqIENyZWF0ZXMgdGhlIHdpZGdldCBleHRlbnNpb24gb2JqZWN0
DQogICAgICAgICAqIEBzaW5jZSAzLjINCiAgICAgICAgICogQHJldHVybiBNV2lkZ2V0RXh0ZW5z
aW9uDQogICAgICAgICAqLw0KICAgICAgICAgSU1QT1JUX0MgTVdpZGdldEV4dGVuc2lvbiogQ3Jl
YXRlV2lkZ2V0RXh0ZW5zaW9uTChNV2lkZ2V0Q2FsbGJhY2smIGFXaWRnZXRDYWxsYmFjaykgOw0K
LSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIA0KICAgICAgICAgLyoqDQogICAgICAgICAq
IEdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZm9jdXNlZCBpbWFnZS4gVGhlIGZ1bmN0aW9uIGxl
YXZlcyBpZiB0aGUgZm9jdXMgaXMgbm90IG9uIGFuIGltYWdlDQpJbmRleDogV2ViS2l0L0Jyb3dz
ZXJDb250cm9sL2luYy9CckN0bERlZnMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2Vy
Q29udHJvbC9pbmMvQnJDdGxEZWZzLmgJKHJldmlzaW9uIDIwOTUxKQ0KKysrIFdlYktpdC9Ccm93
c2VyQ29udHJvbC9pbmMvQnJDdGxEZWZzLmgJKHdvcmtpbmcgY29weSkNCkBAIC03MjIsNyArNzIy
LDcgQEAgY2xhc3MgVEJyQ3RsRGVmcw0KICAgICAgICAgRUNsaWVudENvbW1hbmRTdWJzY3JpYmVU
b0ZlZWRzLA0KICAgICAgICAgRUNsaWVudENvbW1hbmRTaG93Q29udGV4dE1lbnUNCiAgICAgICAg
IH07DQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCisNCiAgICAgLyoqDQogICAgICogVGhl
IHdpZGdldCBwYXJhbXMuDQogICAgICovDQpAQCAtNzMyLDcgKzczMiw2IEBAIGNsYXNzIFRCckN0
bERlZnMNCiAgICAgICAgIEVXaWRnZXRCdW5kbGVJZCwNCiAgICAgICAgIEVXaWRnZXRCYXNlUGF0
aA0KICAgICAgICAgfTsNCi0jZW5kaWYgLy9SRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgfTsNCiAN
CiAjZW5kaWYgICAgICAvLyBCUkNUTERFRlNfSA0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJv
bC9pbmMvQnJDdGxEaWFsb2dzUHJvdmlkZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93
c2VyQ29udHJvbC9pbmMvQnJDdGxEaWFsb2dzUHJvdmlkZXIuaAkocmV2aXNpb24gMjA5NTEpDQor
KysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bERpYWxvZ3NQcm92aWRlci5oCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtOCwxMSArOCwxMSBAQA0KICoNCiAqICAgIENvcHlyaWdodCAoYykgMjAw
NiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotKiAgDQor
Kg0KICogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQNCiAqICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQogKiAgIGFyZSBtZXQ6DQotKiAgDQor
Kg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KICogICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQpA
QCAtMjIsNyArMjIsNyBAQA0KICogICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIE5va2lh
IENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQogKiAgICAgICAgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkDQogKiAg
ICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLg0KLSogIA0KKyoNCiAqICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0KICogICAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KICog
ICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1INCkBAIC0zNSw3ICszNSw3IEBADQogKiAgIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFDQogKiAgIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0gNCiAqICAgREFNQUdFLg0KLSogIA0KKyoNCiAqICAgIFBsZWFzZSBzZWUgZmlsZSBwYXRl
bnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQogKiA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCiAqLw0KQEAgLTU3LDE1ICs1NywxNSBAQCBlbnVtIFRCckN0bFNlbGVjdE9wdGlvblR5cGUN
CiAgICAgRVNlbGVjdFR5cGVTaW5nbGUsICAgIC8vLzwgU2luZ2xlIHNlbGVjdCAtIERpc3BsYXkg
YSByYWRpbyBidXR0b24NCiAgICAgRVNlbGVjdFR5cGVOb25lLCAgICAgIC8vLzwgU2luZ2xlIHNl
bGVjdCAtIERvIG5vdCBkaXNwbGF5IGFueSBidXR0b24NCiAgICAgLyoqDQotICAgICogTm8gYnV0
dG9ucyAoc2luZ2xlIHNlbGVjdGlvbiBvbmx5KSANCi0gICAgKiBPSyBzb2Z0a2V5IGlzIGF2YWls
YWJsZSANCisgICAgKiBObyBidXR0b25zIChzaW5nbGUgc2VsZWN0aW9uIG9ubHkpDQorICAgICog
T0sgc29mdGtleSBpcyBhdmFpbGFibGUNCiAgICAgKiBDYW5jZWwgYnV0dG9uIGlzIG5vdCBhdmFp
bGFibGUNCiAgICAgKi8NCi0gICAgRVNlbGVjdFR5cGVPa09ubHkgICAgIA0KKyAgICBFU2VsZWN0
VHlwZU9rT25seQ0KICAgICB9Ow0KIA0KIC8qKg0KLSogRGVmaW5lcyB0aGUgdHlwZSBvZiBpbWFn
ZSBpZiBpdCBjYW5ub3QgYmUgcmVjb2duaXplZCBieSB0aGUgDQorKiBEZWZpbmVzIHRoZSB0eXBl
IG9mIGltYWdlIGlmIGl0IGNhbm5vdCBiZSByZWNvZ25pemVkIGJ5IHRoZQ0KICogU3ltYmlhbiBp
bWFnZSBjb252ZXJzaW9uIGxpYnJhcnkuDQogKi8NCiANCkBAIC04MywxNiArODMsMTYgQEAgY2xh
c3MgQ0JyQ3RsT2JqZWN0SW5mbzsNCiBjbGFzcyBUQnJDdGxJbWFnZUNhcnJpZXI7DQogDQogLyoq
DQotKiBUaGUgTUJyRGlhbG9nc1Byb3ZpZGVyIGNsYXNzIHByb3ZpZGVzIGZ1bmN0aW9ucyBpbXBs
ZW1lbnRlZCBieSANCi0qIHRoZSBCcm93c2VyIENvbnRyb2wgdG8gZGlzcGxheSBkaWFsb2dzLCBz
dWNoIGFzIGVycm9yIG5vdGlmaWNhdGlvbnMsIA0KLSogYXV0aGVudGljYXRpb24gcmVxdWVzdHMs
IGFuZCBzZWxlY3Rpb24gbGlzdHMuIA0KKyogVGhlIE1CckRpYWxvZ3NQcm92aWRlciBjbGFzcyBw
cm92aWRlcyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgYnkNCisqIHRoZSBCcm93c2VyIENvbnRyb2wg
dG8gZGlzcGxheSBkaWFsb2dzLCBzdWNoIGFzIGVycm9yIG5vdGlmaWNhdGlvbnMsDQorKiBhdXRo
ZW50aWNhdGlvbiByZXF1ZXN0cywgYW5kIHNlbGVjdGlvbiBsaXN0cy4NCiAqDQogKiBVc2FnZToN
CiAqDQogKiBAY29kZQ0KICogICNpbmNsdWRlIDxCckN0bERpYWxvZ3NQcm92aWRlci5oPg0KICoN
Ci0qICANCisqDQogKiBAc2VlIFM2MCBQbGF0Zm9ybTogQnJvd3NlciBDb250cm9sIEFQSSBEZXZl
bG9wZXIncyBHdWlkZSBWZXJzaW9uIDIuMA0KICogQGxpYiBCcm93c2VyRW5naW5lLmxpYg0KICog
QGZpbGUgQnJDdGxEaWFsb2dzUHJvdmlkZXIuaA0KQEAgLTEwMSw5ICsxMDEsOSBAQCBjbGFzcyBU
QnJDdGxJbWFnZUNhcnJpZXI7DQogY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgIHsN
CiAgICAgcHVibGljOiAvLyBOZXcgZnVuY3Rpb25zDQotICAgICAgICANCisNCiAgICAgICAgIC8q
Kg0KLSAgICAgICAgKiBOb3RpZmllcyB0aGUgdXNlciBvZiBhbiBlcnJvciBlbmNvdW50ZXJlZCBk
dXJpbmcgYSBkb3dubG9hZC4gDQorICAgICAgICAqIE5vdGlmaWVzIHRoZSB1c2VyIG9mIGFuIGVy
cm9yIGVuY291bnRlcmVkIGR1cmluZyBhIGRvd25sb2FkLg0KICAgICAgICAgKiBTb21lIGV4YW1w
bGVzIGFyZTogaW5zdWZmaWNpZW50IG1lbW9yeSwgdW5yZWNvZ25pemVkIFVSTCwgYW5kIEROUyBu
b3QgZm91bmQuDQogICAgICAgICAqIEBzaW5jZSAyLjgNCiAgICAgICAgICogQHBhcmFtIGFFcnJD
b2RlIFRoZSBlcnJvciB0aGF0IG9jY3VyZWQNCkBAIC0xMTIsNyArMTEyLDcgQEAgY2xhc3MgTUJy
Q3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICB2aXJ0dWFsIHZvaWQgRGlhbG9nTm90aWZ5RXJy
b3JMKFRJbnQgYUVyckNvZGUpID0gMDsNCiANCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBOb3Rp
ZmllcyB0aGUgdXNlciBvZiBhbiBlcnJvciBmcm9tIHRoZSBIVFRQIHNlcnZlciANCisgICAgICAg
ICogTm90aWZpZXMgdGhlIHVzZXIgb2YgYW4gZXJyb3IgZnJvbSB0aGUgSFRUUCBzZXJ2ZXINCiAg
ICAgICAgICogZHVyaW5nIGEgZG93bmxvYWQuIFNvbWUgZXhhbXBsZXMgYXJlOiBmaWxlIG5vdCBm
b3VuZCwgcmVkaXJlY3QgZXJyb3IuDQogICAgICAgICAqIEBzaW5jZSAyLjgNCiAgICAgICAgICog
QHBhcmFtIGFFcnJDb2RlIFRoZSBlcnJvciB0aGF0IG9jY3VyZWQNCkBAIC0xMjIsNyArMTIyLDcg
QEAgY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICB2aXJ0dWFsIHZvaWQgRGlh
bG9nTm90aWZ5SHR0cEVycm9yTChUSW50IGFFcnJDb2RlLCBjb25zdCBURGVzQyYgYVVyaSkgPSAw
Ow0KIA0KICAgICAgICAgLyoqDQotICAgICAgICAqIE5hdmlnYXRlcyB0aHJvdWdoIHlvdXIgZmls
ZSBzeXN0ZW0gYW5kIHNlbGVjdHMgYSBmaWxlOyANCisgICAgICAgICogTmF2aWdhdGVzIHRocm91
Z2ggeW91ciBmaWxlIHN5c3RlbSBhbmQgc2VsZWN0cyBhIGZpbGU7DQogICAgICAgICAqIGFuYWxv
Z291cyB0byB0aGUgQnJvd3NlIGNvbW1hbmQgaW4gV2luZG93cy4NCiAgICAgICAgICogQHNpbmNl
IDIuOA0KICAgICAgICAgKiBAcGFyYW0gYVN0YXJ0UGF0aCBUaGUgaW5pdGlhbCBkaXNwbGF5ZWQg
ZGlyZWN0b3J5DQpAQCAtMTQzLDIyICsxNDMsMjIgQEAgY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3Zp
ZGVyDQogICAgICAgICAqIEBwYXJhbSBhQnJDdGxTZWxlY3RPcHRpb25UeXBlIFRoZSB0eXBlIG9m
IHRoZSBsaXN0IGJveC4NCiAgICAgICAgICogVmFsdWVzOiBPbmUgb2YgdGhlIGZvbGxvd2luZzoN
CiAgICAgICAgICogQ2hlY2sgYm94ZXMgKG11bHRpcGxlIHNlbGVjdGlvbnMgYWxsb3dlZCkNCi0g
ICAgICAgICogUmFkaW8gYnV0dG9ucyAoc2luZ2xlIHNlbGVjdGlvbiBvbmx5KS4gRm9yIGV4YW1w
bGUsIGhpZ2hsaWdodCBhIFVSTCBsaXN0ZWQgDQorICAgICAgICAqIFJhZGlvIGJ1dHRvbnMgKHNp
bmdsZSBzZWxlY3Rpb24gb25seSkuIEZvciBleGFtcGxlLCBoaWdobGlnaHQgYSBVUkwgbGlzdGVk
DQogICAgICAgICAqICAgaW4gdGhlIHNlc3Npb24gSGlzdG9yeS4NCiAgICAgICAgICogICBObyBi
dXR0b25zIChzaW5nbGUgc2VsZWN0aW9uIG9ubHkpDQogICAgICAgICAqIE5vIGJ1dHRvbnMgKHNp
bmdsZSBzZWxlY3Rpb24gb25seSksIE9LIHNvZnRrZXkgYXZhaWxhYmxlDQotICAgICAgICAqIEZv
ciBleGFtcGxlLCBpZiB5b3UgYXJlIGFib3V0IHRvIGRvd25sb2FkIGEgcGx1Zy1pbiwgeW91IGNh
biBjaG9vc2UgDQotICAgICAgICAqIHRvIGRpc3BsYXkgdGhlIGNvbnRlbnQgaW4gdGhlIFdlYiBw
YWdlIG9yIGluIGEgdmlld2VyIGFwcGxpY2F0aW9uLiANCisgICAgICAgICogRm9yIGV4YW1wbGUs
IGlmIHlvdSBhcmUgYWJvdXQgdG8gZG93bmxvYWQgYSBwbHVnLWluLCB5b3UgY2FuIGNob29zZQ0K
KyAgICAgICAgKiB0byBkaXNwbGF5IHRoZSBjb250ZW50IGluIHRoZSBXZWIgcGFnZSBvciBpbiBh
IHZpZXdlciBhcHBsaWNhdGlvbi4NCiAgICAgICAgICogQHBhcmFtIGFPcHRpb25zIEEgbGlzdCBv
ZiBvcHRpb25zIHRvIGRpc3BsYXkNCiAgICAgICAgICogQHJldHVybiBFRmFsc2UgaWYgdGhlIHVz
ZXIgY2FuY2VsZWQgdGhlIGRpYWxvZyBzZWxlY3Rpb24NCiAgICAgICAgICogRVRydWUgaWYgdGhl
IHVzZXIgc2VsZWN0ZWQgYW4gb3B0aW9uLg0KICAgICAgICAgKi8NCi0gICAgICAgIHZpcnR1YWwg
VEJvb2wgRGlhbG9nU2VsZWN0T3B0aW9uTChjb25zdCBURGVzQyYgYVRpdGxlLCANCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQnJDdGxTZWxlY3RPcHRpb25UeXBl
IGFCckN0bFNlbGVjdE9wdGlvblR5cGUsIA0KKyAgICAgICAgdmlydHVhbCBUQm9vbCBEaWFsb2dT
ZWxlY3RPcHRpb25MKGNvbnN0IFREZXNDJiBhVGl0bGUsDQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVEJyQ3RsU2VsZWN0T3B0aW9uVHlwZSBhQnJDdGxTZWxlY3RP
cHRpb25UeXBlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENB
cnJheUZpeDxUQnJDdGxTZWxlY3RPcHRpb25EYXRhPiYgYU9wdGlvbnMpID0gMDsNCiANCiAgICAg
ICAgIC8qKg0KLSAgICAgICAgKiBVc2VyIEF1dGhlbnRpY2F0aW9uIGRpYWxvZy4gDQorICAgICAg
ICAqIFVzZXIgQXV0aGVudGljYXRpb24gZGlhbG9nLg0KICAgICAgICAgKiBAc2luY2UgMi44DQog
ICAgICAgICAqIEBwYXJhbSBhVXJsIFRoZSB1cmwgcmVxdWlyaW5nIGF1dGhlbnRpY2F0aW9uDQog
ICAgICAgICAqIEBwYXJhbSBhUmVhbG0gVGhlIHJlYWxtIHJlcXVpcmluZyBhdXRoZW50aWNhdGlv
bg0KQEAgLTE2NiwyMiArMTY2LDIyIEBAIGNsYXNzIE1CckN0bERpYWxvZ3NQcm92aWRlcg0KICAg
ICAgICAgKiBAcGFyYW0gYVJldHVybmVkVXNlck5hbWUgVGhlIHVzZXIgbmFtZSBlbnRlcmVkIGJ5
IHRoZSB1c2VyDQogICAgICAgICAqIEBwYXJhbSBhUmV0dXJuZWRQYXNzd2QgVGhlIHBhc3N3b3Jk
IGVudGVyZWQgYnkgdGhlIHVzZXINCiAgICAgICAgICogQHBhcmFtIGFCYXNpY0F1dGhlbnRpY2F0
aW9uIEVUcnVlIGlmIGJhc2ljIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkLg0KLSAgICAgICAg
KiBFRmFsc2UgaWYgYW5vdGhlciB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkOyBm
b3IgZXhhbXBsZSwgRGlnZXN0LiANCisgICAgICAgICogRUZhbHNlIGlmIGFub3RoZXIgdHlwZSBv
ZiBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZDsgZm9yIGV4YW1wbGUsIERpZ2VzdC4NCiAgICAg
ICAgICogRGVmYXVsdDogRUZhbHNlDQogICAgICAgICAqIEByZXR1cm4gRUZhbHNlIGlmIHRoZSB1
c2VyIGNhbmNlbGxlZCB0aGUgc2VsZWN0aW9uDQogICAgICAgICAqIEVUcnVlIGlmIHRoZSB1c2Vy
IHNlbGVjdGVkIGFuIG9wdGlvbi4NCiAgICAgICAgIEAgYXR0aW9udGlvbiBVc2VyIG5hbWUgYW5k
IHBhc3N3b3JkIGFyZSByZXR1cm5lZCBvbiBjbGVhbnVwIHN0YWNrLg0KICAgICAgICAgKi8NCi0g
ICAgICAgIHZpcnR1YWwgVEJvb2wgRGlhbG9nVXNlckF1dGhlbnRpY2F0aW9uTEMoY29uc3QgVERl
c0MmIGFVcmwsIA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBURGVzQyYgYVJlYWxtLCANCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVERlc0MmIGFEZWZhdWx0VXNlck5hbWUsIA0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQnVmQyomIGFS
ZXR1cm5lZFVzZXJOYW1lLCANCisgICAgICAgIHZpcnR1YWwgVEJvb2wgRGlhbG9nVXNlckF1dGhl
bnRpY2F0aW9uTEMoY29uc3QgVERlc0MmIGFVcmwsDQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFREZXNDJiBhUmVhbG0sDQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFREZXNDJiBhRGVm
YXVsdFVzZXJOYW1lLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBIQnVmQyomIGFSZXR1cm5lZFVzZXJOYW1lLA0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQnVmQyomIGFSZXR1cm5lZFBhc3N3ZCwNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEJvb2wgYUJh
c2ljQXV0aGVudGljYXRpb24gPSBFRmFsc2UpID0gMDsNCiANCiAgICAgICAgIC8qKg0KLSAgICAg
ICAgKiBEaXNwbGF5cyBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIuIA0KLSAgICAgICAgKiBGb3IgZXhh
bXBsZSwgdGhlIG1lc3NhZ2UgbWF5IGluZm9ybSB0aGUgdXNlciANCisgICAgICAgICogRGlzcGxh
eXMgYSBtZXNzYWdlIHRvIHRoZSB1c2VyLg0KKyAgICAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIG1l
c3NhZ2UgbWF5IGluZm9ybSB0aGUgdXNlcg0KICAgICAgICAgKiBhYm91dCBhbiBlcnJvciBlbmNv
dW50ZXJlZCB3aGlsZSBwcm9jZXNzaW5nIGEgcmVxdWVzdC4NCiAgICAgICAgICogQHNpbmNlIDIu
OA0KICAgICAgICAgKiBAcGFyYW0gYU1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gZGlzcGxheQ0KQEAg
LTE4OSw3ICsxODksNyBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAgICAgICog
QGF0dGVudGlvbiBTb2Z0a2V5cyBhcmUgbm90IHN1cHBvcnRlZC4NCiAgICAgICAgICogVGhlIG1l
c3NhZ2UgZGlzYXBwZWFycyBhZnRlciBhIHRpbWUgb3V0Lg0KICAgICAgICAgKi8NCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBEaWFsb2dOb3RlTChjb25zdCBURGVzQyYgYU1lc3NhZ2UpID0gMDsgDQor
ICAgICAgICB2aXJ0dWFsIHZvaWQgRGlhbG9nTm90ZUwoY29uc3QgVERlc0MmIGFNZXNzYWdlKSA9
IDA7DQogDQogICAgICAgICAvKioNCiAgICAgICAgICogRGlzcGxheSBhIG5vdGUgdG8gdGhlIHVz
ZXIgd2l0aCBvayBzb2Z0a2V5IG9ubHkNCkBAIC0yMDAsNyArMjAwLDcgQEAgY2xhc3MgTUJyQ3Rs
RGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICAqIEBhdHRlbnRpb24gVGhlIE9LIHNvZnRrZXkgaXMg
c3VwcG9ydGVkLg0KICAgICAgICAgKiBUaGUgbWVzc2FnZSBkaXNwbGF5cyB1bnRpbCB0aGUgdXNl
ciBwcmVzc2VzIE9LLg0KICAgICAgICAgKi8NCi0gICAgICAgIHZpcnR1YWwgdm9pZCBEaWFsb2dB
bGVydEwoY29uc3QgVERlc0MmIGFUaXRsZSwgY29uc3QgVERlc0MmIGFNZXNzYWdlKSA9IDA7IA0K
KyAgICAgICAgdmlydHVhbCB2b2lkIERpYWxvZ0FsZXJ0TChjb25zdCBURGVzQyYgYVRpdGxlLCBj
b25zdCBURGVzQyYgYU1lc3NhZ2UpID0gMDsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBE
aXNwbGF5IGNvbmZpcm1hdGlvbiBtZXNzYWdlIHRvIHRoZSB1c2VyLg0KQEAgLTIyNCw3ICsyMjQs
NyBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAgICAgICogQHBhcmFtIGFUaXRs
ZSBUaGUgdGl0bGUsIGNvdWxkIGJlIGVtcHR5DQogICAgICAgICAqIEBwYXJhbSBhTWVzc2FnZSBU
aGUgbWVzc2FnZSB0byBkaXNwbGF5DQogICAgICAgICAqIEBwYXJhbSBhRGVmYXVsdElucHV0IFRo
ZSBkZWZhdWx0IGlucHV0IGlmIGF2YWlsYWJsZQ0KLSAgICAgICAgKiBAcGFyYW0gYVJldHVybmVk
SW5wdXQgVGhlIGlucHV0IGVudGVyZWQgYnkgdGhlIHVzZXIuIA0KKyAgICAgICAgKiBAcGFyYW0g
YVJldHVybmVkSW5wdXQgVGhlIGlucHV0IGVudGVyZWQgYnkgdGhlIHVzZXIuDQogICAgICAgICAq
IEByZXR1cm4gRUZhbHNlIGlmIHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgc2VsZWN0aW9uDQogICAg
ICAgICAqIEVUcnVlIGlmIHRoZSB1c2VyIHNlbGVjdGVkIGFuIG9wdGlvbi4NCiAgICAgICAgICog
QGF0dGVudGlvbiBSZXR1cm5lZCBvbiB0aGUgY2xlYW51cCBzdGFjay4NCkBAIC0yMzUsNyArMjM1
LDcgQEAgY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEhCdWZDKiYgYVJldHVybmVkSW5wdXQpID0gMDsNCiANCiAgICAgICAg
IC8qKg0KLSAgICAgICAgKiBEaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgTmV0c2NhcGUg
cGx1Zy1pbiBvYmplY3QgYW5kIA0KKyAgICAgICAgKiBEaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91
dCB0aGUgTmV0c2NhcGUgcGx1Zy1pbiBvYmplY3QgYW5kDQogICAgICAgICAqIHJlcXVlc3RzIGNv
bmZpcm1hdGlvbiBiZWZvcmUgZG93bmxvYWRpbmcgdGhlIG9iamVjdC4NCiAgICAgICAgICogQHNp
bmNlIDIuOA0KICAgICAgICAgKiBAcGFyYW0gYUJyQ3RsT2JqZWN0SW5mbyBJbmZvcm1hdGlvbiBh
Ym91dCB0aGUgb2JqZWN0IHRvIGJlIGRvd25sb2FkZWQuDQpAQCAtMjQzLDkgKzI0Myw5IEBAIGNs
YXNzIE1CckN0bERpYWxvZ3NQcm92aWRlcg0KICAgICAgICAgKiBDb250ZW50IHR5cGUNCiAgICAg
ICAgICogU2l6ZQ0KICAgICAgICAgKiBGbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgYSB2aWV3ZXIg
YXBwbGljYXRpb24gZXhpc3RzIGZvciB0aGlzIGNvbnRlbnQNCi0gICAgICAgICogRmxhZyB0byBp
bmRpY2F0ZSB3aGV0aGVyIGEgTmV0c2NhcGUgcGx1Zy1pbiBleGlzdHMgdGhhdCBzdXBwb3J0cyB0
aGlzIGNvbnRlbnQgDQorICAgICAgICAqIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBhIE5ldHNj
YXBlIHBsdWctaW4gZXhpc3RzIHRoYXQgc3VwcG9ydHMgdGhpcyBjb250ZW50DQogICAgICAgICAq
IE5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIG9yIE5ldHNjYXBlIHBsdWctaW4gd2l0aCB3aGljaCB0
aGUgY29udGVudCBjYW4NCi0gICAgICAgICogYmUgdmlld2VkIG9uIHRoZSBtb2JpbGUgcGhvbmUg
DQorICAgICAgICAqIGJlIHZpZXdlZCBvbiB0aGUgbW9iaWxlIHBob25lDQogICAgICAgICAqIEBy
ZXR1cm4gRUZhbHNlIGlmIHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgc2VsZWN0aW9uDQogICAgICAg
ICAqIEVUcnVlIGlmIHRoZSB1c2VyIHNlbGVjdGVkIGFuIG9wdGlvbi4NCiAgICAgICAgICovDQpA
QCAtMjU0LDE0ICsyNTQsMTQgQEAgY2xhc3MgTUJyQ3RsRGlhbG9nc1Byb3ZpZGVyDQogICAgICAg
ICAvKioNCiAgICAgICAgICogRGlzcGxheSB0aGUgaW1hZ2VzIHRoYXQgYXBwZWFyIGluIHRoZSBj
dXJyZW50IHBhZ2UNCiAgICAgICAgICogQHNpbmNlIDIuOA0KLSAgICAgICAgKiBAcGFyYW0gYVBh
Z2VJbWFnZXMgQXJyYXkgZGVzY3JpYmluZyB0aGUgaW1hZ2VzIHRoYXQgYXBwZWFyIGluIHRoZSBj
dXJyZW50IHBhZ2UuIA0KKyAgICAgICAgKiBAcGFyYW0gYVBhZ2VJbWFnZXMgQXJyYXkgZGVzY3Jp
YmluZyB0aGUgaW1hZ2VzIHRoYXQgYXBwZWFyIGluIHRoZSBjdXJyZW50IHBhZ2UuDQogICAgICAg
ICAqIFRoZSBhcnJheSBjb250YWlucyB0aGUgZm9sbG93aW5nIGVsZW1lbnRzIGZvciBlYWNoIGlt
YWdlOg0KICAgICAgICAgKiBJbWFnZSBkYXRhDQogICAgICAgICAqIFVSTCBvZiB0aGUgaW1hZ2UN
CiAgICAgICAgICogVGl0bGUgZm9yIHRoZSBpbWFnZQ0KICAgICAgICAgKiBJbWFnZSB0eXBlDQot
ICAgICAgICAqIElmIHRoZSBpbWFnZSB0eXBlIGlzIFdCTVAgb3IgT1RBLCBpdCBtdXN0IGJlIHNw
ZWNpZmllZC4gDQotICAgICAgICAqIFN5bWJpYW4gY2FuIGRldGVjdCBhbnkgb3RoZXIgaW1hZ2Ug
dHlwZS4gDQorICAgICAgICAqIElmIHRoZSBpbWFnZSB0eXBlIGlzIFdCTVAgb3IgT1RBLCBpdCBt
dXN0IGJlIHNwZWNpZmllZC4NCisgICAgICAgICogU3ltYmlhbiBjYW4gZGV0ZWN0IGFueSBvdGhl
ciBpbWFnZSB0eXBlLg0KICAgICAgICAgKiBAcmV0dXJuIHZvaWQNCiAgICAgICAgICovDQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgRGlhbG9nRGlzcGxheVBhZ2VJbWFnZXNMKENBcnJheUZpeEZsYXQ8
VEJyQ3RsSW1hZ2VDYXJyaWVyPiYgYVBhZ2VJbWFnZXMpID0gMDsNCkBAIC0yNzIsMzIgKzI3Miwx
OSBAQCBjbGFzcyBNQnJDdGxEaWFsb2dzUHJvdmlkZXINCiAgICAgICAgICogQHJldHVybiB2b2lk
DQogICAgICAgICAqLw0KICAgICAgICAgdmlydHVhbCB2b2lkIENhbmNlbEFsbCgpID0gMDsNCi0g
ICAgICAgIA0KKw0KICAgICAgICAgLyoqDQogICAgICAgICAqIERpc3BsYXlzIGEgZGlhbG9nIGZv
ciBzZWFyY2hpbmcgb24gdGhlIHBhZ2UuDQogICAgICAgICAqIEBzaW5jZSAzLjANCiAgICAgICAg
ICogQHJldHVybiB2b2lkDQogICAgICAgICAqLw0KLSAgICAgICB2aXJ0dWFsIHZvaWQgRGlhbG9n
RmluZEwoKSA9IDA7IA0KLSAgICAgICANCi0gICAgICAgIC8qKg0KLSAgICAgICAgKiBOYXZpZ2F0
ZXMgdGhyb3VnaCB5b3VyIGZpbGUgc3lzdGVtIGFuZCBzZWxlY3RzIGEgZmlsZSBvZiBzcGVjaWZp
YyBtaW1lIHR5cGU7IA0KLSAgICAgICAgKiBhbmFsb2dvdXMgdG8gdGhlIEJyb3dzZSBjb21tYW5k
IGluIFdpbmRvd3MuDQotICAgICAgICAqIEBzaW5jZSAzLjINCi0gICAgICAgICogQHBhcmFtIGFT
ZWxlY3RlZEZpbGVOYW1lIFRoZSBzZWxlY3RlZCBmaWxlIG5hbWUuDQotICAgICAgICAqIEBwYXJh
bSBhTWltZVR5cGUgVGhlIGFjY2VwdGVkIG1pbWUgdHlwZS4NCi0gICAgICAgICogQHJldHVybiBF
VHJ1ZSBpZiB0aGUgdXNlciBzZWxlY3RlZCBhIGZpbGUNCi0gICAgICAgICogRUZhbHNlIGlmIHRo
ZSB1c2VyIGNhbmNlbGxlZCB0aGUgdHJhbnNhY3Rpb24gYW5kIGRpZCBub3Qgc2VsZWN0IGEgZmls
ZS4NCi0gICAgICAgICogQGF0dGlvbnRpb24gUmV0dXJuZWQgb24gY2xlYW51cCBzdGFjay4gQnJv
d3NlciBjb250cm9sIHdpbGwgZnJlZSB0aGUgYnVmZmVyLg0KLSAgICAgICAgKi8NCi0gICAgICAg
IHZpcnR1YWwgVEJvb2wgRGlhbG9nTWltZUZpbGVTZWxlY3RMQyhIQnVmQyomIGFTZWxlY3RlZEZp
bGVOYW1lLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VERlc0MmIGFNaW1lVHlwZSkgPSAwOw0KLSAgICAgICANCisgICAgICAgdmlydHVhbCB2b2lkIERp
YWxvZ0ZpbmRMKCkgPSAwOw0KKw0KICAgICB9Ow0KIA0KIA0KIC8qKg0KLSogVGhlIFRCckN0bFNl
bGVjdE9wdGlvbkRhdGEgY2xhc3MgcmVwcmVzZW50cyBhIGxpc3Qgb2YgZWxlbWVudHMgDQorKiBU
aGUgVEJyQ3RsU2VsZWN0T3B0aW9uRGF0YSBjbGFzcyByZXByZXNlbnRzIGEgbGlzdCBvZiBlbGVt
ZW50cw0KICogdG8gZGlzcGxheSBpbiB0aGUgbGlzdCBib3guIFRoaXMgY2xhc3MgaXMgdXNlZCBm
b3IgdGhlIExpc3QgU2VsZWN0aW9uIERpYWxvZy4NCiAqIEBjb2RlDQogKiAgI2luY2x1ZGUgPEJy
Q3RsRGlhbG9nc1Byb3ZpZGVyLmg+DQpAQCAtMzE1LDcgKzMwMiw3IEBAIGNsYXNzIFRCckN0bFNl
bGVjdE9wdGlvbkRhdGENCiAgICAgICAgICogQHNpbmNlIDIuOA0KICAgICAgICAgKi8NCiAgICAg
ICAgIGlubGluZSBUQnJDdGxTZWxlY3RPcHRpb25EYXRhKCkNCi0gICAgICAgICAgICAgICAgeyAg
IA0KKyAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIGlUZXh0LlNldChOVUxMLCAw
KTsNCiAgICAgICAgICAgICAgICAgaUlzU2VsZWN0ZWQgPSBFRmFsc2U7DQogICAgICAgICAgICAg
ICAgIGlJc09wdEdyb3VwID0gRUZhbHNlOw0KQEAgLTMzMSw3MSArMzE4LDcxIEBAIGNsYXNzIFRC
ckN0bFNlbGVjdE9wdGlvbkRhdGENCiAgICAgICAgICogQHBhcmFtIGFIYXNPblBpY2sgSWYgaGFz
IG9uUGljaywgVGhlIGRpYWxvZyBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgZWxlbWVudCBpcyBzZWxl
Y3RlZA0KICAgICAgICAgKiBAcmV0dXJuIFRickN0bFNlbGVjdE9wdGlvbkRhdGEgb2JqZWN0DQog
ICAgICAgICAqLw0KLSAgICAgICAgaW5saW5lIFRCckN0bFNlbGVjdE9wdGlvbkRhdGEoIGNvbnN0
IFREZXNDJiBhVGV4dCwgDQorICAgICAgICBpbmxpbmUgVEJyQ3RsU2VsZWN0T3B0aW9uRGF0YSgg
Y29uc3QgVERlc0MmIGFUZXh0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBUQm9vbCBhSXNTZWxlY3RlZCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVEJvb2wgYUlzT3B0R3JvdXAsIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUQm9vbCBhSXNPcHRHcm91cCwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVEJvb2wgYUhhc09uUGljayApDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlUZXh0LlNl
dChhVGV4dCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaUlzU2VsZWN0ZWQgPSBhSXNTZWxlY3RlZDsNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpSXNPcHRHcm91
cCA9IGFJc09wdEdyb3VwOw0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlIYXNPblBpY2sgPSBhSGFzT25QaWNrOyANCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpSGFz
T25QaWNrID0gYUhhc09uUGljazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAvKioNCiAgICAgICAgICogR2V0
cyB0aGUgZGlzcGxheSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmllZCBvcHRpb24uDQog
ICAgICAgICAqIEBzaW5jZSAyLjgNCi0gICAgICAgICogQHJldHVybiBBIHJlZmVyZW5jZSB0byBh
IFN5bWJpYW4gVERlc0Mgb2JqZWN0IHRoYXQgDQotICAgICAgICAqIGNvbnRhaW5zIHRoZSB0ZXh0
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9wdGlvbi4gDQorICAgICAgICAqIEByZXR1cm4gQSByZWZl
cmVuY2UgdG8gYSBTeW1iaWFuIFREZXNDIG9iamVjdCB0aGF0DQorICAgICAgICAqIGNvbnRhaW5z
IHRoZSB0ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9wdGlvbi4NCiAgICAgICAgICovDQogICAg
ICAgICBpbmxpbmUgY29uc3QgVERlc0MmIFRleHQoKSBjb25zdCB7cmV0dXJuIGlUZXh0O30NCiAg
ICAgICAgIC8qKg0KLSAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYW4gb3B0aW9u
IGlzIHNlbGVjdGVkLiANCisgICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFuIG9w
dGlvbiBpcyBzZWxlY3RlZC4NCiAgICAgICAgICogQHNpbmNlIDIuOA0KICAgICAgICAgKiBAcmV0
dXJuIEVUcnVlIGlmIHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQNCiAgICAgICAgICogRUZhbHNlIGlm
IHRoZSBvcHRpb24gaXMgbm90IHNlbGVjdGVkDQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5l
IFRCb29sIElzU2VsZWN0ZWQoKSBjb25zdCB7cmV0dXJuIGlJc1NlbGVjdGVkO30NCiAgICAgICAg
IC8qKg0KLSAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBvcHRpb24gZ3JvdXAgbWVtYmVy
IA0KLSAgICAgICAgKiB2YXJpYWJsZSBpcyBhIGdyb3VwIHRpdGxlIG9yIGEgc2VsZWN0YWJsZSBv
cHRpb24uIA0KKyAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBvcHRpb24gZ3JvdXAgbWVt
YmVyDQorICAgICAgICAqIHZhcmlhYmxlIGlzIGEgZ3JvdXAgdGl0bGUgb3IgYSBzZWxlY3RhYmxl
IG9wdGlvbi4NCiAgICAgICAgICogQHNpbmNlIDIuOA0KICAgICAgICAgKiBAcmV0dXJuIEVUcnVl
IGlmIHRoZSBsaXN0ZWQgaXRlbSBpcyB0aGUgdGl0bGUgb2YgYW4gb3B0aW9uIGdyb3VwDQotICAg
ICAgICAqIEVGYWxzZSBpZiB0aGUgbGlzdGVkIGl0ZW0gaXMgb25lIG9mIHRoZSBvcHRpb25zIGZy
b20gd2hpY2ggdG8gc2VsZWN0IA0KKyAgICAgICAgKiBFRmFsc2UgaWYgdGhlIGxpc3RlZCBpdGVt
IGlzIG9uZSBvZiB0aGUgb3B0aW9ucyBmcm9tIHdoaWNoIHRvIHNlbGVjdA0KICAgICAgICAgKi8N
CiAgICAgICAgIGlubGluZSBUQm9vbCBJc09wdEdyb3VwKCkgY29uc3Qge3JldHVybiBpSXNPcHRH
cm91cDt9DQogICAgICAgICAvKioNCi0gICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90
IHRoZSBkaWFsb2cgY2xvc2VzIHdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkLiANCisgICAgICAg
ICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBkaWFsb2cgY2xvc2VzIHdoZW4gYW4gb3B0
aW9uIGlzIHNlbGVjdGVkLg0KICAgICAgICAgKiBAc2luY2UgMi44DQotICAgICAgICAqIEByZXR1
cm4gRVRydWUgaWYgdGhlIGRpYWxvZyBjbG9zZXMgd2hlbiB0aGUgZWxlbWVudCBpcyBzZWxlY3Rl
ZC4gDQorICAgICAgICAqIEByZXR1cm4gRVRydWUgaWYgdGhlIGRpYWxvZyBjbG9zZXMgd2hlbiB0
aGUgZWxlbWVudCBpcyBzZWxlY3RlZC4NCiAgICAgICAgICogVGhpcyBpcyBrbm93biBhcyBoYXZp
bmcgT25QaWNrIGNhcGFiaWxpdHkuDQogICAgICAgICAqIEVGYWxzZSBpZiB0aGUgZGlhbG9nIGRv
ZXMgbm90IGNsb3NlIHdoZW4gdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQNCiAgICAgICAgICovDQog
ICAgICAgICBpbmxpbmUgVEJvb2wgSGFzT25QaWNrKCkgY29uc3Qge3JldHVybiBpSGFzT25QaWNr
O30NCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBTZXRzIHRoZSB0ZXh0IG9mIHRoZSBvcHRpb24g
b2JqZWN0LiANCisgICAgICAgICogU2V0cyB0aGUgdGV4dCBvZiB0aGUgb3B0aW9uIG9iamVjdC4N
CiAgICAgICAgICogQHNpbmNlIDIuOA0KLSAgICAgICAgKiBAcGFyYW0gYVRleHQgQSByZWZlcmVu
Y2UgdG8gYSBURGVzQyBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgDQorICAgICAgICAqIEBwYXJh
bSBhVGV4dCBBIHJlZmVyZW5jZSB0byBhIFREZXNDIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZQ0K
ICAgICAgICAgKiB0ZXh0IHRvIGFzc29jaWF0ZSB3aXRoIGEgcGFydGljdWxhciBvcHRpb24uDQog
ICAgICAgICAqIEByZXR1cm4gTm9uZQ0KICAgICAgICAgKi8NCiANCiAgICAgICAgIGlubGluZSB2
b2lkIFNldFRleHQoIFREZXNDJiBhVGV4dCApICAgICAgICAgICAgIHsgaVRleHQuU2V0KCBhVGV4
dCApOyB9DQogICAgICAgICAvKioNCi0gICAgICAgICogU2V0cyB0aGUgc2VsZWN0aW9uIHN0YXRl
IG9mIGFuIG9wdGlvbi4gDQorICAgICAgICAqIFNldHMgdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBh
biBvcHRpb24uDQogICAgICAgICAqIEBzaW5jZSAyLjgNCiAgICAgICAgICogQHBhcmFtIGFJc1Nl
bGVjdGVkIFRoZSBzdGF0ZSBvZiB0aGUgSXNTZWxlY3RlZCBtZW1iZXIgdmFyaWFibGUuDQogICAg
ICAgICAqIFZhbHVlOg0KICAgICAgICAgKiBFVHJ1ZSBpZiB0aGUgb3B0aW9uIGlzIHNlbGVjdGVk
DQogICAgICAgICAqIEVGYWxzZSBpZiB0aGUgb3B0aW9uIGlzIG5vdCBzZWxlY3RlZA0KLSAgICAg
ICAgKiBAcmV0dXJuIE5vbmUgDQorICAgICAgICAqIEByZXR1cm4gTm9uZQ0KICAgICAgICAgKi8N
CiAgICAgICAgIGlubGluZSB2b2lkIFNldElzU2VsZWN0ZWQoIFRCb29sIGFJc1NlbGVjdGVkICkg
IHsgaUlzU2VsZWN0ZWQgPSBhSXNTZWxlY3RlZDsgfQ0KICAgICAgICAgLyoqDQotICAgICAgICAq
IFNldHMgdGhlIHN0YXRlIG9mIHRoZSBvcHRpb24gZ3JvdXAgbWVtYmVyIHZhcmlhYmxlLiANCi0g
ICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIgYW4gb3B0aW9uIGdyb3VwIG1lbWJlciB2YXJpYWJs
ZSBpcyBhIGdyb3VwIHRpdGxlIA0KKyAgICAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgb3B0
aW9uIGdyb3VwIG1lbWJlciB2YXJpYWJsZS4NCisgICAgICAgICogSW5kaWNhdGVzIHdoZXRoZXIg
YW4gb3B0aW9uIGdyb3VwIG1lbWJlciB2YXJpYWJsZSBpcyBhIGdyb3VwIHRpdGxlDQogICAgICAg
ICAqIG9yIGEgc2VsZWN0YWJsZSBvcHRpb24uDQogICAgICAgICAqIEBzaW5jZSAyLjgNCi0gICAg
ICAgICogQHBhcmFtIGFJc09wdEdyb3VwIFRoZSBzdGF0ZSBvZiB0aGUgb3B0aW9uIGdyb3VwLiAN
CisgICAgICAgICogQHBhcmFtIGFJc09wdEdyb3VwIFRoZSBzdGF0ZSBvZiB0aGUgb3B0aW9uIGdy
b3VwLg0KICAgICAgICAgKiBWYWx1ZToNCiAgICAgICAgICogRVRydWUgaWYgdGhlIGxpc3RlZCBp
dGVtIGlzIHRoZSB0aXRsZSBvZiBhbiBvcHRpb24gZ3JvdXAuDQogICAgICAgICAqIEVGYWxzZSBp
ZiB0aGUgbGlzdGVkIGl0ZW0gaXMgb25lIG9mIHRoZSBvcHRpb25zIGZyb20gd2hpY2ggdG8gc2Vs
ZWN0Lg0KQEAgLTQwMywxMSArMzkwLDExIEBAIGNsYXNzIFRCckN0bFNlbGVjdE9wdGlvbkRhdGEN
CiAgICAgICAgICovDQogICAgICAgICBpbmxpbmUgdm9pZCBTZXRJc09wdEdyb3VwKCBUQm9vbCBh
SXNPcHRHcm91cCApICB7IGlJc09wdEdyb3VwID0gYUlzT3B0R3JvdXA7IH0NCiAgICAgICAgIC8q
Kg0KLSAgICAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgaGFzT25QaWNrIG1lbWJlciB2YXJp
YWJsZS4gDQorICAgICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBoYXNPblBpY2sgbWVtYmVy
IHZhcmlhYmxlLg0KICAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdGhlIGRpYWxv
ZyBjbG9zZXMgd2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQuDQogICAgICAgICAqIEBzaW5jZSAy
LjgNCi0gICAgICAgICogQHBhcmFtIGFIYXNPblBpY2sgDQotICAgICAgICAqIEVUcnVlIGlmIHRo
ZSBkaWFsb2cgY2xvc2VzIHdoZW4gdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQuIFRoaXMgDQorICAg
ICAgICAqIEBwYXJhbSBhSGFzT25QaWNrDQorICAgICAgICAqIEVUcnVlIGlmIHRoZSBkaWFsb2cg
Y2xvc2VzIHdoZW4gdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQuIFRoaXMNCiAgICAgICAgICogaXMg
a25vd24gYXMgaGF2aW5nIE9uUGljayBjYXBhYmlsaXR5Lg0KICAgICAgICAgKiBFRmFsc2UgaWYg
dGhlIGRpYWxvZyBkb2VzIG5vdCBjbG9zZSB3aGVuIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkDQog
ICAgICAgICAqIEByZXR1cm4gTm9uZQ0KQEAgLTQyMiw3ICs0MDksNyBAQCBjbGFzcyBUQnJDdGxT
ZWxlY3RPcHRpb25EYXRhDQogICAgICAgICAvLyBGbGFnIGlmIGFuIGVsZW1lbnQgb3Igb3ByaW9u
IGdyb3VwIHRpdGxlDQogICAgICAgICBUQm9vbCBpSXNPcHRHcm91cDsNCiAgICAgICAgIC8vIEZs
YWcgaWYgdGhlIGVsZW1lbnQgaGFzIG9uUGljaw0KLSAgICAgICAgVEJvb2wgaUhhc09uUGljazsg
DQorICAgICAgICBUQm9vbCBpSGFzT25QaWNrOw0KICAgICB9Ow0KIA0KIC8qKg0KQEAgLTQ0Myw3
ICs0MzAsNyBAQCBjbGFzcyBDQnJDdGxPYmplY3RJbmZvIDogcHVibGljIENCYXNlDQogICAgICAg
ICAqIEBzaW5jZSAyLjgNCiAgICAgICAgICovDQogICAgICAgICBDQnJDdGxPYmplY3RJbmZvKCk7
DQotICAgIA0KKw0KICAgICAgICAgLyoqDQogICAgICAgICAqIENvbnN0cnVjdG9yDQogICAgICAg
ICAqIEBzaW5jZSAzLjANCkBAIC00NjcsNyArNDU0LDcgQEAgY2xhc3MgQ0JyQ3RsT2JqZWN0SW5m
byA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKi8NCiAgICAgICAgIGlubGluZSB2b2lkIFNldEFw
cFN1cHBvcnRlZChUQm9vbCBhQXBwU3VwcG9ydGVkKSB7aUFwcFN1cHBvcnRlZCA9IGFBcHBTdXBw
b3J0ZWQ7fQ0KICAgICAgICAgLyoqDQotICAgICAgICAqIFNldHMgdGhlIGZsYWcgaWYgdGhlcmUg
aXMgYSBuZXRzY2FwZSBwbHVnaW4gZm9yIHRoaXMgb2JqZWN0IA0KKyAgICAgICAgKiBTZXRzIHRo
ZSBmbGFnIGlmIHRoZXJlIGlzIGEgbmV0c2NhcGUgcGx1Z2luIGZvciB0aGlzIG9iamVjdA0KICAg
ICAgICAgKiBAc2luY2UgMy4wDQogICAgICAgICAqIEBwYXJhbSBhUGx1Z2luU3VwcG9ydGVkIEVU
cnVlIGlmIHRoZXJlIGlzIGEgbmV0c2NhcGUgcGx1Z2luIGZvciB0aGlzIG9iamVjdA0KICAgICAg
ICAgKiBFRmFsc2UgaWYgdGhlcmUgaXMgbm90IGEgbmV0c2NhcGUgcGx1Z2luIGZvciB0aGlzIG9i
amVjdC4NCkBAIC00ODQsMTUgKzQ3MSwxNSBAQCBjbGFzcyBDQnJDdGxPYmplY3RJbmZvIDogcHVi
bGljIENCYXNlDQogICAgICAgICAvKioNCiAgICAgICAgICogU2V0cyB0aGUgbmFtZSBvZiB0aGUg
dmlld2VyIGFwcCBvciBuZXRzY2FwZSBwbHVnaW4gdGhhdCBzdXBwb3J0cyB0aGlzIG9iamVjdA0K
ICAgICAgICAgKiBAc2luY2UgMy4wDQotICAgICAgICAqIEBwYXJhbSBhQXBwTmFtZSAgU3ltYmlh
biBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgDQorICAgICAgICAqIEBwYXJhbSBh
QXBwTmFtZSAgU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YNCiAgICAg
ICAgICogdGhlIHZpZXdlciBhcHAgb3IgbmV0c2NhcGUgcGx1Z2luIHRoYXQgc3VwcG9ydHMgdGhp
cyBvYmplY3QuDQogICAgICAgICAqIEByZXR1cm4gTm9uZQ0KICAgICAgICAgKi8NCiAgICAgaW5s
aW5lIHZvaWQgU2V0QXBwTmFtZShjb25zdCBURGVzQyYgYUFwcE5hbWUpIHtpQXBwTmFtZS5TZXQo
YUFwcE5hbWUpO30NCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBTZXRzIHRoZSBjb250ZW50IHR5
cGUgb2YgdGhlIG9iamVjdCANCisgICAgICAgICogU2V0cyB0aGUgY29udGVudCB0eXBlIG9mIHRo
ZSBvYmplY3QNCiAgICAgICAgICogQHNpbmNlIDMuMA0KLSAgICAgICAgKiBAcGFyYW0gYUZpbGVU
eXBlIFN5bWJpYW4gZGVzY3JpcHRvciBob2xkaW5nIGNvbnRlbnQgdHlwZSBvZiB0aGUgb2JqZWN0
IA0KKyAgICAgICAgKiBAcGFyYW0gYUZpbGVUeXBlIFN5bWJpYW4gZGVzY3JpcHRvciBob2xkaW5n
IGNvbnRlbnQgdHlwZSBvZiB0aGUgb2JqZWN0DQogICAgICAgICAqIEByZXR1cm4gTm9uZQ0KICAg
ICAgICAgKi8NCiAgICAgaW5saW5lIHZvaWQgU2V0RmlsZVR5cGUoY29uc3QgVERlc0MmIGFGaWxl
VHlwZSkge2lGaWxlVHlwZS5TZXQoYUZpbGVUeXBlKTt9DQpAQCAtNTA1LDMzICs0OTIsMzMgQEAg
Y2xhc3MgQ0JyQ3RsT2JqZWN0SW5mbyA6IHB1YmxpYyBDQmFzZQ0KICAgICAgICAgKi8NCiAgICAg
ICAgIGlubGluZSBUQm9vbCBBcHBTdXBwb3J0ZWQoKSB7cmV0dXJuIGlBcHBTdXBwb3J0ZWQ7fQ0K
ICAgICAgICAgLyoqDQotICAgICAgICAqIFRlbGxzIGlmIHRoZXJlIGlzIGEgbmV0c2NhcGUgcGx1
Z2luIGZvciB0aGlzIG9iamVjdCANCisgICAgICAgICogVGVsbHMgaWYgdGhlcmUgaXMgYSBuZXRz
Y2FwZSBwbHVnaW4gZm9yIHRoaXMgb2JqZWN0DQogICAgICAgICAqIEBzaW5jZSAzLjANCiAgICAg
ICAgICogQHBhcmFtIE5vbmUNCiAgICAgICAgICogQHJldHVybiBFVHJ1ZSBpZiB0aGVyZSBpcyBh
IG5ldHNjYXBlIHBsdWdpbiBmb3IgdGhpcyBvYmplY3QNCi0gICAgICAgICogRUZhbHNlIGlmIHRo
ZXJlIGlzIG5vdCBhIG5ldHNjYXBlIHBsdWdpbiBmb3IgdGhpcyBvYmplY3QuICAgICAgIA0KKyAg
ICAgICAgKiBFRmFsc2UgaWYgdGhlcmUgaXMgbm90IGEgbmV0c2NhcGUgcGx1Z2luIGZvciB0aGlz
IG9iamVjdC4NCiAgICAgICAgICovDQogICAgICAgICBpbmxpbmUgVEJvb2wgUGx1Z2luU3VwcG9y
dGVkKCkge3JldHVybiBpUGx1Z2luU3VwcG9ydGVkO30NCiAgICAgICAgIC8qKg0KICAgICAgICAg
KiBHZXRzIHRoZSBzaXplIG9mIHRoZSBvYmplY3QNCiAgICAgICAgICogQHNpbmNlIDMuMA0KICAg
ICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAgICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVzY3JpcHRv
ciBjb250YWluaW5nIHRoZSBzaXplIG9mIHRoZSBvYmplY3QgDQorICAgICAgICAqIEByZXR1cm4g
U3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdGhlIHNpemUgb2YgdGhlIG9iamVjdA0KICAg
ICAgICAgKi8NCiAgICAgICAgIGlubGluZSBjb25zdCBURGVzQyYgU2l6ZSgpIGNvbnN0IHtyZXR1
cm4gaVNpemU7fQ0KICAgICAgICAgLyoqDQogICAgICAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhl
IHZpZXdlciBhcHAgb3IgbmV0c2NhcGUgcGx1Z2luIHRoYXQgc3VwcG9ydHMgdGhpcyBvYmplY3QN
CiAgICAgICAgICogQHNpbmNlIDMuMA0KICAgICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAgICAgICAg
KiBAcmV0dXJuIFN5bWJpYW4gZGVzY3JpcHRvciBjb250YWluaW5nIHRoZSBuYW1lIG9mIA0KKyAg
ICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVzY3JpcHRvciBjb250YWluaW5nIHRoZSBuYW1lIG9m
DQogICAgICAgICAqIHRoZSB2aWV3ZXIgYXBwIG9yIG5ldHNjYXBlIHBsdWdpbiB0aGF0IHN1cHBv
cnRzIHRoaXMgb2JqZWN0Lg0KICAgICAgICAgKi8NCiAgICAgaW5saW5lIGNvbnN0IFREZXNDJiBB
cHBOYW1lKCkgY29uc3Qge3JldHVybiBpQXBwTmFtZTt9DQogICAgICAgICAvKioNCi0gICAgICAg
ICogR2V0cyB0aGUgY29udGVudCB0eXBlIG9mIHRoZSBvYmplY3QgDQorICAgICAgICAqIEdldHMg
dGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgb2JqZWN0DQogICAgICAgICAqIEBzaW5jZSAzLjANCiAg
ICAgICAgICogQHBhcmFtIE5vbmUNCi0gICAgICAgICogQHJldHVybiBTeW1iaWFuIGRlc2NyaXB0
b3IgaG9sZGluZyBjb250ZW50IHR5cGUgb2YgdGhlIG9iamVjdCANCisgICAgICAgICogQHJldHVy
biBTeW1iaWFuIGRlc2NyaXB0b3IgaG9sZGluZyBjb250ZW50IHR5cGUgb2YgdGhlIG9iamVjdA0K
ICAgICAgICAgKi8NCiAgICAgaW5saW5lIGNvbnN0IFREZXNDJiBGaWxlVHlwZSgpIGNvbnN0IHty
ZXR1cm4gaUZpbGVUeXBlO30NCiAgIHByaXZhdGU6DQpAQCAtNTY3LDkgKzU1NCw5IEBAIGNsYXNz
IFRCckN0bEltYWdlQ2Fycmllcg0KICAgICAgICAgKiBAcGFyYW0gYVVybCBUaGUgdXJsIG9mIHRo
ZSBpbWFnZQ0KICAgICAgICAgKiBAcGFyYW0gYUFsdFRleHQgVGhlIGFsdCB0ZXh0IG9mIHRoZSBp
bWFnZQ0KICAgICAgICAgKiBAcGFyYW0gYUltYWdlVHlwZSBUaGUgdHlwZSBvZiB0aGUgaW1hZ2UN
Ci0gICAgICAgICovICAgICAgIA0KKyAgICAgICAgKi8NCiAgICAgICAgIFRCckN0bEltYWdlQ2Fy
cmllcihjb25zdCBURGVzQzgmIGFSYXdEYXRhLCBjb25zdCBURGVzQyYgYVVybCwNCi0gICAgICAg
ICAgICBjb25zdCBURGVzQyYgYUFsdFRleHQsIFRCckN0bEltYWdlVHlwZSBhSW1hZ2VUeXBlLCBj
b25zdCBURGVzQyYgYUNvbnRlbnRUeXBlICkgOiANCisgICAgICAgICAgICBjb25zdCBURGVzQyYg
YUFsdFRleHQsIFRCckN0bEltYWdlVHlwZSBhSW1hZ2VUeXBlLCBjb25zdCBURGVzQyYgYUNvbnRl
bnRUeXBlICkgOg0KICAgICAgICAgICAgIGlSYXdEYXRhKCBhUmF3RGF0YSApLA0KICAgICAgICAg
ICAgIGlVcmwoIGFVcmwgKSwNCiAgICAgICAgICAgICBpQWx0VGV4dCggYUFsdFRleHQgKSwNCkBA
IC01ODgsMTQgKzU3NSwxNCBAQCBjbGFzcyBUQnJDdGxJbWFnZUNhcnJpZXINCiAgICAgICAgICog
UHJvdmlkZXMgdGhlIHVybCBvZiB0aGUgaW1hZ2UNCiAgICAgICAgICogQHNpbmNlIDMuMA0KICAg
ICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAgICAgICAgKiBAcmV0dXJuIFN5bWJpYW4gZGVzY3JpcHRv
ciBjb250YWluaW5nIHVybCBvZiB0aGUgaW1hZ2UgDQorICAgICAgICAqIEByZXR1cm4gU3ltYmlh
biBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgdXJsIG9mIHRoZSBpbWFnZQ0KICAgICAgICAgKi8NCiAg
ICAgICAgIGlubGluZSBjb25zdCBURGVzQyYgVXJsKCkgY29uc3Qge3JldHVybiBpVXJsO30NCiAg
ICAgICAgIC8qKg0KICAgICAgICAgKiBQcm92aWRlcyB0aGUgYWx0IHRleHQgb2YgdGhlIGltYWdl
DQogICAgICAgICAqIEBzaW5jZSAzLjANCiAgICAgICAgICogQHBhcmFtIE5vbmUNCi0gICAgICAg
ICogQHJldHVybiBTeW1iaWFuIGRlc2NyaXB0b3IgY29udGFpbmluZyBhbHQgdGV4dCBvZiB0aGUg
aW1hZ2UgDQorICAgICAgICAqIEByZXR1cm4gU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcg
YWx0IHRleHQgb2YgdGhlIGltYWdlDQogICAgICAgICAqLw0KICAgICAgICAgaW5saW5lIGNvbnN0
IFREZXNDJiBBbHRUZXh0KCkgY29uc3Qge3JldHVybiBpQWx0VGV4dDt9DQogICAgICAgICAvKioN
CkBAIC02MDksMTAgKzU5NiwxMCBAQCBjbGFzcyBUQnJDdGxJbWFnZUNhcnJpZXINCiAgICAgICAg
ICogUHJvdmlkZXMgdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgaW1hZ2UNCiAgICAgICAgICogQHNp
bmNlIDMuMQ0KICAgICAgICAgKiBAcGFyYW0gTm9uZQ0KLSAgICAgICAgKiBAcmV0dXJuIFN5bWJp
YW4gZGVzY3JpcHRvciBjb250YWluaW5nIGNvbnRlbnQgdHlwZSBvZiB0aGUgaW1hZ2UgDQorICAg
ICAgICAqIEByZXR1cm4gU3ltYmlhbiBkZXNjcmlwdG9yIGNvbnRhaW5pbmcgY29udGVudCB0eXBl
IG9mIHRoZSBpbWFnZQ0KICAgICAgICAgKi8NCiAgICAgICAgIGlubGluZSBjb25zdCBURGVzQyYg
Q29udGVudFR5cGUoKSBjb25zdCB7cmV0dXJuIGlDb250ZW50VHlwZTt9DQotICAgIHByaXZhdGU6
ICAgICANCisgICAgcHJpdmF0ZToNCiAgICAgICAgIFRQdHJDOCBpUmF3RGF0YTsNCiAgICAgICAg
IFRQdHJDIGlVcmw7DQogICAgICAgICBUUHRyQyBpQWx0VGV4dDsNCkBAIC02MjEsNiArNjA4LDYg
QEAgY2xhc3MgVEJyQ3RsSW1hZ2VDYXJyaWVyDQogICAgIH07DQogDQogDQotI2VuZGlmICAgICAg
Ly8gQlJDVExESUFMT0dTUFJPVklERVJfSCAgIA0KLSAgICAgICAgICAgIA0KKyNlbmRpZiAgICAg
IC8vIEJSQ1RMRElBTE9HU1BST1ZJREVSX0gNCisNCiAvLyBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdl
YktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxJbnRlcmZhY2UuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9Ccm93c2VyQ29udHJvbC9pbmMvQnJDdGxJbnRlcmZhY2UuaAkocmV2aXNpb24gMjA5
NTEpDQorKysgV2ViS2l0L0Jyb3dzZXJDb250cm9sL2luYy9CckN0bEludGVyZmFjZS5oCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtNzEsMTAgKzcxLDggQEAgY2xhc3MgVEJyQ3RsV21sU2VydmljZU9wdGlv
bjsNCiBjbGFzcyBUQnJDdGxTdWJzY3JpYmVUbzsNCiBjbGFzcyBNQnJDdGxTdGF0ZUNoYW5nZU9i
c2VydmVyOw0KIGNsYXNzIE1CckN0bENvbW1hbmRPYnNlcnZlcjsNCi0jaWZkZWYgIFJEX0JST1dT
RVJfV0lER0VUUw0KIGNsYXNzIE1XaWRnZXRDYWxsYmFjazsNCiBjbGFzcyBNV2lkZ2V0RXh0ZW5z
aW9uOw0KLSNlbmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KIGNsYXNzIENCckN0bEludGVyZmFj
ZTsNCiBjbGFzcyBDUGx1Z2luSW5mbzsNCiBjbGFzcyBUQnJDdGxJbWFnZUNhcnJpZXI7DQpAQCAt
NTk5LDcgKzU5Nyw2IEBAIGNsYXNzIENCckN0bEludGVyZmFjZSA6IHB1YmxpYyBDQ29lQ29udHIN
CiAgICAgICAgICovDQogICAgICAgICBJTVBPUlRfQyB2aXJ0dWFsIHZvaWQgUmVtb3ZlQ29tbWFu
ZE9ic2VydmVyKE1CckN0bENvbW1hbmRPYnNlcnZlciogYUJyQ3RsQ29tbWFuZE9ic2VydmVyKSA9
IDA7DQogDQotI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgICAgIC8qKg0KICAgICAg
ICAgKiBVbnJlZ2lzdGVyIGEgY2xpZW50IGNvbW1hbmQgaW50ZXJmYWNlIGZvciB0aGUgYnJvd3Nl
ciBlbmdpbmUNCiAgICAgICAgICogQHNpbmNlIDMuMQ0KQEAgLTYwNywxMiArNjA0LDExIEBAIGNs
YXNzIENCckN0bEludGVyZmFjZSA6IHB1YmxpYyBDQ29lQ29udHINCiAgICAgICAgICogQHJldHVy
biB2b2lkDQogICAgICAgICAqLw0KICAgICAgICAgSU1QT1JUX0MgdmlydHVhbCBNV2lkZ2V0RXh0
ZW5zaW9uKiBDcmVhdGVXaWRnZXRFeHRlbnNpb25MKE1XaWRnZXRDYWxsYmFjayYgYVdpZGdldENh
bGxiYWNrKSA9IDA7DQotI2VuZGlmIC8vUkRfQlJPV1NFUl9XSURHRVRTDQogDQogICAgICAgICAv
KioNCiAgICAgICAgICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBmb2N1c2VkIGltYWdlLiBU
aGUgZnVuY3Rpb24gbGVhdmVzIGlmIHRoZSBmb2N1cyBpcyBub3Qgb24gYW4gaW1hZ2UNCiAgICAg
ICAgICogQHNpbmNlIDMuMg0KLSAgICAgICAgKiBAcGFyYW0gDQorICAgICAgICAqIEBwYXJhbQ0K
ICAgICAgICAgKiBAcmV0dXJuIFRoZSByZXF1ZXN0ZWQgaW5mb3JtYXRpb24NCiAgICAgICAgICov
DQogICAgICAgICBJTVBPUlRfQyB2aXJ0dWFsIFRCckN0bEltYWdlQ2FycmllciogRm9jdXNlZElt
YWdlTEMoKSA9IDA7DQpAQCAtODg4LDcgKzg4NCw3IEBAIGNsYXNzIE1CckN0bENvbW1hbmRPYnNl
cnZlcg0KICAgICAgICAgdmlydHVhbCB2b2lkIEhhbmRsZUNvbW1hbmRMKFRCckN0bERlZnM6OlRC
ckN0bENsaWVudENvbW1hbmRzIGFDb21tYW5kLCBjb25zdCBDQXJyYXlGaXg8VFB0ckM+JiBhQXR0
cmlidXRlc05hbWVzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBDQXJyYXlGaXg8VFB0ckM+JiBhQXR0cmlidXRlVmFsdWVzKSA9IDA7DQogICAgIH07DQotI2lm
ZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCisNCiAvLyBDTEFTUyBERUNMQVJBVElPTg0KIC8qKg0K
ICogIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHRoZSBicm93c2VyIGVuZ2lu
ZSB0byBpbnRlcmFjdCB3aXRoIHRoZSB3aWRnZXQgaG9zdCBhcHBsaWNhdGlvbg0KQEAgLTg5OCwx
MCArODk0LDIyIEBAIGNsYXNzIE1CckN0bENvbW1hbmRPYnNlcnZlcg0KICovDQogY2xhc3MgTVdp
ZGdldENhbGxiYWNrDQogICAgIHsNCi0gICAgcHVibGljOiAvLyBOZXcgZnVuY3Rpb25zDQorICAg
IHB1YmxpYzoNCisgICAgICAgIC8qKg0KKyAgICAgICAgKiBOYXZpZ2F0ZXMgdGhyb3VnaCB5b3Vy
IGZpbGUgc3lzdGVtIGFuZCBzZWxlY3RzIGEgZmlsZSBvZiBzcGVjaWZpYyBtaW1lIHR5cGU7DQor
ICAgICAgICAqIGFuYWxvZ291cyB0byB0aGUgQnJvd3NlIGNvbW1hbmQgaW4gV2luZG93cy4NCisg
ICAgICAgICogQHNpbmNlIDMuMg0KKyAgICAgICAgKiBAcGFyYW0gYVNlbGVjdGVkRmlsZU5hbWUg
VGhlIHNlbGVjdGVkIGZpbGUgbmFtZS4NCisgICAgICAgICogQHBhcmFtIGFNaW1lVHlwZSBUaGUg
YWNjZXB0ZWQgbWltZSB0eXBlLg0KKyAgICAgICAgKiBAcmV0dXJuIEVUcnVlIGlmIHRoZSB1c2Vy
IHNlbGVjdGVkIGEgZmlsZQ0KKyAgICAgICAgKiBFRmFsc2UgaWYgdGhlIHVzZXIgY2FuY2VsbGVk
IHRoZSB0cmFuc2FjdGlvbiBhbmQgZGlkIG5vdCBzZWxlY3QgYSBmaWxlLg0KKyAgICAgICAgKiBA
YXR0aW9udGlvbiBSZXR1cm5lZCBvbiBjbGVhbnVwIHN0YWNrLiBCcm93c2VyIGNvbnRyb2wgd2ls
bCBmcmVlIHRoZSBidWZmZXIuDQorICAgICAgICAqLw0KKyAgICAgICAgdmlydHVhbCBUQm9vbCBE
aWFsb2dNaW1lRmlsZVNlbGVjdExDKEhCdWZDKiYgYVNlbGVjdGVkRmlsZU5hbWUsDQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVERlc0MmIGFNaW1lVHlwZSkgPSAwOw0K
IA0KLSAgICAgICAgLy9UTyBCRSBJTVBMRU1FTlRFRA0KICAgICB9Ow0KKw0KIC8vIENMQVNTIERF
Q0xBUkFUSU9ODQogLyoqDQogKiAgVGhpcyBjbGFzcyBwcm92aWRlcyBhbiBleHRlbnNpb24gbWVj
aGFuaXNtIGZvciB0aGUgd2lkZ2V0IGhvc3QgYXBwIHRvIGludGVyYWN0IHdpdGggdGhlIGJyb3dz
ZXIgZW5naW5lDQpAQCAtOTMwLDcgKzkzOCw2IEBAIGNsYXNzIE1XaWRnZXRFeHRlbnNpb24NCiAg
ICAgICAgICovDQogICAgICAgICB2aXJ0dWFsIHZvaWQgU2V0UGFyYW1MKFRCckN0bERlZnM6OlRC
ckN0bFdpZGdldFBhcmFtcyBhUGFyYW0sIFRVaW50IGFWYWx1ZSkgPSAwOw0KICAgICB9Ow0KLSNl
bmRpZiAvL1JEX0JST1dTRVJfV0lER0VUUw0KICNlbmRpZiAgICAgIC8vIEJSQ1RMSU5URVJGQUNF
X0gNCiANCiAvLyBFbmQgb2YgRmlsZQ0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMv
QnJDdGwuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0Jyb3dzZXJDb250cm9sL3NyYy9CckN0
bC5jcHAJKHJldmlzaW9uIDIwOTUxKQ0KKysrIFdlYktpdC9Ccm93c2VyQ29udHJvbC9zcmMvQnJD
dGwuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDA3LDcgKzQwNyw3IEBAIEVYUE9SVF9DIENCckN0
bDo6fkNCckN0bCgpDQogDQogICAgIC8vRGVsZXRlIHRoZSBXZWJraXRDb250cm9sDQogICAgIGRl
bGV0ZSBpV2ViS2l0Q29udHJvbDsNCi0gICAgDQorDQogICAgIGRlbGV0ZSBpU2VsZkNvbnRlbnRU
eXBlczsNCiAgICAgaUxvYWRFdmVudE9ic2VydmVyc0FycmF5LlJlc2V0KCk7DQogICAgIGlXbWxT
ZXJ2aWNlT3B0aW9uLlJlc2V0QW5kRGVzdHJveSgpOw0KQEAgLTg4Myw3ICs4ODMsNyBAQCBFWFBP
UlRfQyB2b2lkIENCckN0bDo6SGFuZGxlQ29tbWFuZEwoVEluDQogICAgICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgICBpV2ViS2l0Q29udHJvbC0+V2ViS2l0VmlldygpLkxvYWRGb2N1c2VkSW1h
Z2VMKCk7DQogICAgICAgICAgICAgYnJlYWs7DQotICAgICAgICAgICAgfSAgICAgICAgICAgIA0K
KyAgICAgICAgICAgIH0NCiAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgew0KICAgICAg
ICAgICAgIGlmICggaVdtbEVuZ2luZUludGVyZmFjZSAmJg0KQEAgLTI1MTUsNyArMjUxNSw3IEBA
IHZvaWQgQ0JyQ3RsOjpIYW5kbGVSZXNvdXJjZUNoYW5nZSggVEludCANCiAgICAgICAgICAgICB9
DQogICAgICAgICB9DQogICAgIH0NCi0jaWZkZWYgIFJEX0JST1dTRVJfV0lER0VUUw0KKw0KIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8gQ0JyQ3RsOjpDcmVhdGVXaWRnZXRFeHRlbnNpb24N
CiAvLw0KQEAgLTI1MjMsMTAgKzI1MjMsMTIgQEAgdm9pZCBDQnJDdGw6OkhhbmRsZVJlc291cmNl
Q2hhbmdlKCBUSW50IA0KIC8vDQogRVhQT1JUX0MgTVdpZGdldEV4dGVuc2lvbiogQ0JyQ3RsOjpD
cmVhdGVXaWRnZXRFeHRlbnNpb25MKE1XaWRnZXRDYWxsYmFjayYgYVdpZGdldENhbGxiYWNrKQ0K
ICAgICB7DQorI2lmZGVmICBSRF9CUk9XU0VSX1dJREdFVFMNCiAgICAgcmV0dXJuIGlXZWJLaXRD
b250cm9sLT5DcmVhdGVXaWRnZXRFeHRlbnNpb25MKGFXaWRnZXRDYWxsYmFjayk7DQorI2Vsc2UN
CisgICAgcmV0dXJuIE5VTEw7DQorI2VuZGlmDQogICAgIH0NCi0NCi0jZW5kaWYgLy9SRF9CUk9X
U0VSX1dJREdFVFMNCiANCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENCckN0bDo6Rm9j
dXNlZEltYWdlTEMNCkluZGV4OiBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL2luYy9G
Q29udHJvbEZpbGVJbnB1dFNraW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyQ29y
ZS9Gb3JtY29udHJvbHMvaW5jL0ZDb250cm9sRmlsZUlucHV0U2tpbi5oCShyZXZpc2lvbiAyMDk1
MSkNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL2luYy9GQ29udHJvbEZpbGVJ
bnB1dFNraW4uaAkod29ya2luZyBjb3B5KQ0KQEAgLTgsMTEgKzgsMTEgQEANCiAqDQogKiAgICBD
b3B5cmlnaHQgKGMpIDIwMDYsIE5va2lhIENvcnBvcmF0aW9uDQogKiAgICBBbGwgcmlnaHRzIHJl
c2VydmVkLg0KLSogIA0KKyoNCiAqICAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQogKiAgICAgIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0K
ICogICAgICBhcmUgbWV0Og0KLSogIA0KKyoNCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4NCiAqICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KQEAgLTIyLDcgKzIyLDcgQEANCiAqICAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIHRoZSBOb2tpYSBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0
cw0KICogICAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCi0qICANCisqDQogKiAgICAgIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMNCiAqICAgICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCiAqICAgICAgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SDQpAQCAtMzUs
NyArMzUsNyBAQA0KICogICAgICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRQ0KICogICAgICBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIDQogKiAgICAgIERB
TUFHRS4NCi0qICANCisqDQogKiAgICBQbGVhc2Ugc2VlIGZpbGUgcGF0ZW50bGljZW5zZS50eHQg
Zm9yIGZ1cnRoZXIgZ3JhbnRzLg0KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogKi8NCkBAIC05
Miw3ICs5Miw3IEBAIGNsYXNzIFRGaWxlRGlhbG9nV3JhcHBlcg0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSEJ1ZkMqJiBhU2VsZWN0ZWRGaWxlTmFtZSwNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE1CckN0bERpYWxvZ3NQcm92aWRlciogYURpYWxvZ1Byb3ZpZGVy
KTsNCiAgICAgICAgIC8qKg0KLSAgICAgICAgKiBOYXZpZ2F0ZXMgdGhyb3VnaCB5b3VyIGZpbGUg
c3lzdGVtIGFuZCBzZWxlY3RzIGEgZmlsZSBvZiBzcGVjaWZpYyBtaW1lIHR5cGU7IA0KKyAgICAg
ICAgKiBOYXZpZ2F0ZXMgdGhyb3VnaCB5b3VyIGZpbGUgc3lzdGVtIGFuZCBzZWxlY3RzIGEgZmls
ZSBvZiBzcGVjaWZpYyBtaW1lIHR5cGU7DQogICAgICAgICAqIEBzaW5jZSAzLjINCiAgICAgICAg
ICogQHBhcmFtIGFTZWxlY3RlZEZpbGVOYW1lIFRoZSBzZWxlY3RlZCBmaWxlIG5hbWUuDQogICAg
ICAgICAqIEBwYXJhbSBhTWltZVR5cGUgVGhlIGFjY2VwdGVkIG1pbWUgdHlwZS4NCkBAIC0xMDIs
NyArMTAyLDcgQEAgY2xhc3MgVEZpbGVEaWFsb2dXcmFwcGVyDQogICAgICAgICAqLw0KICAgICAg
ICAgVEJvb2wgRGlhbG9nTWltZUZpbGVTZWxlY3RMQyhIQnVmQyomIGFTZWxlY3RlZEZpbGVOYW1l
LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVERlc0Mm
IGFNaW1lVHlwZSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1C
ckN0bERpYWxvZ3NQcm92aWRlciogYURpYWxvZ1Byb3ZpZGVyKTsNCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1XaWRnZXRDYWxsYmFjayogYVdpZGdldENhbGxiYWNr
KTsNCiANCiAgICAgICAgIC8qKg0KICAgICAgICAgKiBzZXRzIHRoZSBjYWxsZXIgZmxhZyB0byBk
ZWxldGVkLg0KSW5kZXg6IFdlYktpdC9Ccm93c2VyQ29yZS9Gb3JtY29udHJvbHMvc3JjL0ZDb250
cm9sRmlsZUlucHV0U2tpbi5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQnJvd3NlckNvcmUv
Rm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJbnB1dFNraW4uY3BwCShyZXZpc2lvbiAyMDk1
MSkNCisrKyBXZWJLaXQvQnJvd3NlckNvcmUvRm9ybWNvbnRyb2xzL3NyYy9GQ29udHJvbEZpbGVJ
bnB1dFNraW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtOCwxMSArOCwxMSBAQA0KICoNCiAqICAg
IENvcHlyaWdodCAoYykgMjAwNiwgTm9raWEgQ29ycG9yYXRpb24NCiAqICAgIEFsbCByaWdodHMg
cmVzZXJ2ZWQuDQotKiAgDQorKg0KICogICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAqICAgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQogKiAg
IGFyZSBtZXQ6DQotKiAgDQorKg0KICogICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KICog
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0DQpAQCAtMjIsNyArMjIsNyBAQA0KICogICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgdGhlIE5va2lhIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQogKiAg
ICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkDQogKiAgICAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLg0KLSogIA0KKyoNCiAqICAgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUw0K
ICogICAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVA0KICogICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCkBAIC0zNSw3ICszNSw3IEBADQogKiAg
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFDQogKiAgIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gNCiAqICAgREFNQUdFLg0KLSogIA0KKyoNCiAqICAgIFBs
ZWFzZSBzZWUgZmlsZSBwYXRlbnRsaWNlbnNlLnR4dCBmb3IgZnVydGhlciBncmFudHMuDQogKiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCiAqLw0KQEAgLTYzLDYgKzYzLDkgQEANCiAjaW5jbHVkZSAi
V2ViS2l0Vmlldy5oIg0KICNpbmNsdWRlICJXZWJLaXRDb250cm9sLmgiDQogI2luY2x1ZGUgIldl
YktpdEJyaWRnZS5oIg0KKyNpZmRlZiBSRF9CUk9XU0VSX1dJREdFVFMNCisjaW5jbHVkZSAiV2lk
Z2V0RXh0ZW5zaW9uLmgiDQorI2VuZGlmDQogDQogDQogdm9pZCBCckN0bFBhbmljKFRJbnQpOw0K
QEAgLTg3LDkgKzkwLDkgQEAgVEJvb2wgVEZpbGVEaWFsb2dXcmFwcGVyOjpEaWFsb2dGaWxlU2Vs
ZQ0KIA0KIFRCb29sIFRGaWxlRGlhbG9nV3JhcHBlcjo6RGlhbG9nTWltZUZpbGVTZWxlY3RMQygg
SEJ1ZkMqJiBhU2VsZWN0ZWRGaWxlTmFtZSwNCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRE
ZXNDJiBhTWltZVR5cGUsDQotICAgICAgICAgICAgICAgICAgICBNQnJDdGxEaWFsb2dzUHJvdmlk
ZXIqIGFEaWFsb2dQcm92aWRlcikNCisgICAgICAgICAgICAgICAgICAgIE1XaWRnZXRDYWxsYmFj
ayogYVdpZGdldENhbGxiYWNrKQ0KICAgew0KLSAgcmV0dXJuIGFEaWFsb2dQcm92aWRlci0+RGlh
bG9nTWltZUZpbGVTZWxlY3RMQyggYVNlbGVjdGVkRmlsZU5hbWUsIGFNaW1lVHlwZSk7DQorICBy
ZXR1cm4gYVdpZGdldENhbGxiYWNrLT5EaWFsb2dNaW1lRmlsZVNlbGVjdExDKCBhU2VsZWN0ZWRG
aWxlTmFtZSwgYU1pbWVUeXBlKTsNCiAgIH0NCiANCiANCkBAIC0yMzYsMTggKzIzOSwxOCBAQCB2
b2lkIENGb3JtRmlsZUlucHV0U2tpbjo6U2V0T3V0bGluZVdpZHRoDQogICB9DQogDQogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCi0vLyBDRm9ybUZpbGVJbnB1dFNraW46OlNldEFjY2VwdGVkTWlt
ZVR5cGUsIHNldHMgdGhlIGFjY2VwdGVkIG1pbWUgdHlwZSANCisvLyBDRm9ybUZpbGVJbnB1dFNr
aW46OlNldEFjY2VwdGVkTWltZVR5cGUsIHNldHMgdGhlIGFjY2VwdGVkIG1pbWUgdHlwZQ0KIC8v
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGZpbGUgc2VsZWN0
aW9uDQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiB2b2lkIENGb3JtRmlsZUlucHV0U2tpbjo6
U2V0QWNjZXB0ZWRNaW1lVHlwZSggY29uc3QgVERlc0MmIGFNaW1lVHlwZSApDQogICAgIHsNCiAg
ICAgZGVsZXRlIGlBY2NlcHRlZE1pbWVUeXBlOw0KICAgICBpQWNjZXB0ZWRNaW1lVHlwZSA9IE5V
TEw7DQotICAgIA0KKw0KICAgICBUUkFQX0lHTk9SRShpQWNjZXB0ZWRNaW1lVHlwZSA9IGFNaW1l
VHlwZS5BbGxvY0woKSk7DQotICAgIA0KKw0KICAgICB9DQotICAgICAgICANCisNCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KIC8vIENGb3JtRmlsZUlucHV0U2tpbjo6U2V0UmVjdCwgc2V0cyB0
aGUgY28tb3JkaW5hdGVzIGZvciB0aGUgY29udHJvbA0KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQpAQCAtMzc3LDggKzM4MCw4IEBAIHZvaWQgQ0Zvcm1GaWxlSW5wdXRTa2luOjpBY3RpdmF0ZUwo
KQ0KICAgaURpYWxvZ1dyYXBwZXIgPSBkaWFsb2dXcmFwcGVyOw0KIA0KICAgICB3ZWJraXRGcmFt
ZS0+V2ViS2l0VmlldygpLlNldERpYWxvZ0xhdW5jaGVkKEVUcnVlKTsNCi0gICAgDQotICAgIA0K
Kw0KKw0KICNpZmRlZiAgUkRfQlJPV1NFUl9XSURHRVRTDQogICAgIC8vIElmIFdpZGdldCBtb2Rl
IGFuZCBBY2NlcHRlZCBNaW1lIFR5cGUgaGFzIGJlZW4gc2V0DQogICAgIGlmICh3ZWJLaXRDb250
cm9sLT5XaWRnZXRFeHRlbnNpb24oKSAmJg0KQEAgLTM4Nyw4ICszOTAsOCBAQCB2b2lkIENGb3Jt
RmlsZUlucHV0U2tpbjo6QWN0aXZhdGVMKCkNCiAgICAgICAvLyBMYXVuY2ggdGhlIGRpYWxvZyB0
aGF0IHdpbGwgdXNlIE1pbWUgVHlwZSBmaWx0ZXIuDQogICAgICAgICBzZWxlY3RlZCA9IGlEaWFs
b2dXcmFwcGVyLT5EaWFsb2dNaW1lRmlsZVNlbGVjdExDKCBidWYsDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICppQWNjZXB0ZWRNaW1lVHlw
ZSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlhbG9nUHJvdmlkZXIpOw0KLSAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3ZWJLaXRDb250cm9sLT5XaWRnZXRFeHRl
bnNpb24oKS0+V2lkZ2V0Q2FsbGJhY2soKSk7DQorDQogICAgICAgICB9DQogICAgIC8vIElmIGEg
cmVjZW50IHBhdGggZXhpc3RzLCB1c2UgdGhhdCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQuDQogICAg
IGVsc2UgaWYgKCBwdHJNb3N0UmVjZW50UGF0aC5MZW5ndGgoKSApDQpAQCAtNDc2LDQgKzQ3OSw1
IEBAIHZvaWQgQ0Zvcm1GaWxlSW5wdXRTa2luOjpTZXRGb250ICggQ0ZvbnQNCiAgICAgew0KICAg
ICBpRm9udCA9IGFGb250Ow0KICAgICB9DQorDQogDQpJbmRleDogV2ViS2l0L0Jyb3dzZXJWaWV3
L2luYy9XaWRnZXRFeHRlbnNpb24uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9Ccm93c2VyVmll
dy9pbmMvV2lkZ2V0RXh0ZW5zaW9uLmgJKHJldmlzaW9uIDIwOTUxKQ0KKysrIFdlYktpdC9Ccm93
c2VyVmlldy9pbmMvV2lkZ2V0RXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkNCkBAIC0yNjMsNiAr
MjYzLDEzIEBAIGNsYXNzIENXaWRnZXRFeHRlbnNpb246IHB1YmxpYyBDQmFzZSwgcHUNCiAgICAg
ICAgIE1XaWRnZXRFbmdpbmVCcmlkZ2UmIFdpZGdldEVuZ2luZUJyaWRnZSgpIGNvbnN0IHsgcmV0
dXJuICppV2lkZ2V0RW5naW5lQnJpZGdlOyB9DQogDQogICAgICAgICAvKioNCisgICAgICAgICog
TWV0aG9kIFdpZGdldENhbGxiYWNrDQorICAgICAgICAqIEBzaW5jZSAzLjINCisgICAgICAgICog
QHJldHVybiB3aWRnZXQgZW5naW5lIGJyaWRnZQ0KKyAgICAgICAgKi8NCisgICAgICAgIE1XaWRn
ZXRDYWxsYmFjayYgV2lkZ2V0Q2FsbGJhY2soKSBjb25zdCB7IHJldHVybiAqaVdpZGdldENhbGxi
YWNrOyB9DQorDQorICAgICAgICAvKioNCiAgICAgICAgICogTWV0aG9kIE5hdmlnYXRpb25FbmFi
bGVkDQogICAgICAgICAqIEBzaW5jZSAzLjINCiAgICAgICAgICogQHJldHVybiBib29sDQpJbmRl
eDogV2ViS2l0L2dyb3VwL2Zvcm1jb250cm9scy5tbXBpDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0
L2dyb3VwL2Zvcm1jb250cm9scy5tbXBpCShyZXZpc2lvbiAyMDk1MSkNCisrKyBXZWJLaXQvZ3Jv
dXAvZm9ybWNvbnRyb2xzLm1tcGkJKHdvcmtpbmcgY29weSkNCkBAIC02Myw2ICs2Myw5IEBAIFVT
RVJJTkNMVURFICAgICAuLlxCcm93c2VyQ29yZVxNaXNjXEluYw0KIFVTRVJJTkNMVURFICAgICAu
LlxSZXNvdXJjZUxvYWRlclxJbmMNCiBVU0VSSU5DTFVERSAgICAgLi5cQnJvd3NlckNvbnRyb2xc
aW5jDQogVVNFUklOQ0xVREUgICAgIC4uXEJyb3dzZXJWaWV3XGluYw0KKyNpZmRlZiBSRF9CUk9X
U0VSX1dJREdFVFMNCitVU0VSSU5DTFVERSAgICAgLi5cLi5cLi5cV2lkZ2V0RW5naW5lXGluYw0K
KyNlbmRpZg0KICNpZm5kZWYgX19CUk9XU0VSX1NESw0KIFVTRVJJTkNMVURFICAgICAuLlwuLlwu
LlxQYWdlU2NhbGVyXGluYw0KICNlbmRpZg0KSW5kZXg6IFdlYktpdC9ncm91cC9CV0lOU0NXL1dl
YktpdF8zMFUuZGVmDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L2dyb3VwL0JXSU5TQ1cvV2ViS2l0
XzMwVS5kZWYJKHJldmlzaW9uIDIwOTUxKQ0KKysrIFdlYktpdC9ncm91cC9CV0lOU0NXL1dlYktp
dF8zMFUuZGVmCSh3b3JraW5nIGNvcHkpDQpAQCAtNDIsNCArNDIsNiBAQCBFWFBPUlRTDQogICAg
ID9BZGRDb21tYW5kT2JzZXJ2ZXJMQENCckN0bEBAVUFFWFBBVk1CckN0bENvbW1hbmRPYnNlcnZl
ckBAQFogQCA0MSBOT05BTUUgOyB2b2lkIENCckN0bDo6QWRkQ29tbWFuZE9ic2VydmVyTChjbGFz
cyBNQnJDdGxDb21tYW5kT2JzZXJ2ZXIgKikNCiAgICAgP1JlbW92ZUNvbW1hbmRPYnNlcnZlckBD
QnJDdGxAQFVBRVhQQVZNQnJDdGxDb21tYW5kT2JzZXJ2ZXJAQEBaIEAgNDIgTk9OQU1FIDsgdm9p
ZCBDQnJDdGw6OlJlbW92ZUNvbW1hbmRPYnNlcnZlcihjbGFzcyBNQnJDdGxDb21tYW5kT2JzZXJ2
ZXIgKikNCiAgICAgP0ZvY3VzZWRJbWFnZUxDQENCckN0bEBAVUFFUEFWVEJyQ3RsSW1hZ2VDYXJy
aWVyQEBYWiBAIDQzIE5PTkFNRSA7IGNsYXNzIFRCckN0bEltYWdlQ2FycmllciAqIENCckN0bDo6
Rm9jdXNlZEltYWdlTEModm9pZCkNCisgICAgP0NyZWF0ZVdpZGdldEV4dGVuc2lvbkxAQ0JyQ3Rs
QEBVQUVQQVZNV2lkZ2V0RXh0ZW5zaW9uQEBBQVZNV2lkZ2V0Q2FsbGJhY2tAQEBaIEAgNDQgTk9O
QU1FIDsgY2xhc3MgTVdpZGdldEV4dGVuc2lvbiAqIENCckN0bDo6Q3JlYXRlV2lkZ2V0RXh0ZW5z
aW9uTChjbGFzcyBNV2lkZ2V0Q2FsbGJhY2sgJikNCisNCiANCkluZGV4OiBXZWJLaXQvZ3JvdXAv
RUFCSS9icm93c2VyZW5naW5lVS5kZWYNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvZ3JvdXAvRUFC
SS9icm93c2VyZW5naW5lVS5kZWYJKHJldmlzaW9uIDIwOTUxKQ0KKysrIFdlYktpdC9ncm91cC9F
QUJJL2Jyb3dzZXJlbmdpbmVVLmRlZgkod29ya2luZyBjb3B5KQ0KQEAgLTQ2LDQgKzQ2LDYgQEAg
RVhQT1JUUw0KICAgICBfWk42Q0JyQ3RsMTlBZGRDb21tYW5kT2JzZXJ2ZXJMRVAyMU1CckN0bENv
bW1hbmRPYnNlcnZlciBAIDQ1IE5PTkFNRQ0KICAgICBfWk42Q0JyQ3RsMjFSZW1vdmVDb21tYW5k
T2JzZXJ2ZXJFUDIxTUJyQ3RsQ29tbWFuZE9ic2VydmVyIEAgNDYgTk9OQU1FDQogICAgIF9aTjZD
QnJDdGwxNEZvY3VzZWRJbWFnZUxDRXYgQCA0NyBOT05BTUUNCisgICAgX1pONkNCckN0bDIyQ3Jl
YXRlV2lkZ2V0RXh0ZW5zaW9uTEVSMTVNV2lkZ2V0Q2FsbGJhY2sgQCA0OCBOT05BTUUNCisNCiAN
Cg==
</data>
<flag name="review"
          id="5708"
          type_id="1"
          status="+"
          setter="yongjun.zhang"
    />
          </attachment>
      

    </bug>

</bugzilla>