<?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>23444</bug_id>
          
          <creation_ts>2009-01-20 18:37:51 -0800</creation_ts>
          <short_desc>Add OptionElement/OptionGroupElement abstraction</short_desc>
          <delta_ts>2009-01-21 08:44:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>staikos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106420</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-20 18:37:51 -0800</bug_when>
    <thetext>Refactor some functionality living in HTMLOptionElement/HTMLOptGroupElement needed by RenderMenuList/RenderListBox, to allow reusing these render classes later on for WMLOption/OptGroupElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106421</commentid>
    <comment_count>1</comment_count>
      <attachid>26881</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-20 18:39:33 -0800</bug_when>
    <thetext>Created attachment 26881
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106422</commentid>
    <comment_count>2</comment_count>
      <attachid>26882</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-20 19:41:18 -0800</bug_when>
    <thetext>Created attachment 26882
Updated patch

No regressions, previous patch had a problem in an editing/pasteboard test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106458</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-21 08:44:48 -0800</bug_when>
    <thetext>Landed in r40085.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26881</attachid>
            <date>2009-01-20 18:39:33 -0800</date>
            <delta_ts>2009-01-20 19:41:18 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>AbstractOptionElement.diff</filename>
            <type>text/plain</type>
            <size>27554</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQwMDc3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMDktMDEt
MjAgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NAorCisgICAg
ICAgIFJlZmFjdG9yIHNvbWUgZnVuY3Rpb25hbGl0eSBmcm9tIEhUTUxPcHRpb24vT3B0R3JvdXBF
bGVtZW50IG5lZWRlZCBieSBSZW5kZXJMaXN0Qm94L1JlbmRlck1lbnVMaXN0CisgICAgICAgIGlu
IHR3byBhYnN0cmFjdCBiYXNlIGNsYXNzZXM6IE9wdGlvbkVsZW1lbnQgJiBPcHRpb25Hcm91cEVs
ZW1lbnQgbGl2aW5nIGluIGRvbS8gLSBqdXN0IGxpa2UgaXQKKyAgICAgICAgaGFzIGJlZW4gZG9u
ZSBiZWZvcmUgZm9yIEZvcm1Db250cm9sRWxlbWVudCBhbmQgUmVuZGVyVGV4dENvbnRyb2wuCisK
KyAgICAgICAgVGhpcyBpcyBuZWVkZWQgdG8gcHJlcGFyZSB0aGUgYWRkdGlvbiBvZiBXTUxPcHRp
b24vT3B0R3JvdXBFbGVtZW50LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS5zY29uczoKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOgorICAgICAgICAq
IGRvbS9PcHRpb25FbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcHRpb25F
bGVtZW50Rm9yRWxlbWVudCk6CisgICAgICAgICogZG9tL09wdGlvbkVsZW1lbnQuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpPcHRpb25FbGVtZW50Ojp+T3B0aW9uRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpPcHRpb25FbGVtZW50OjpPcHRpb25FbGVtZW50KToKKyAgICAgICAgKiBk
b20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcHRp
b25Hcm91cEVsZW1lbnRGb3JFbGVtZW50KToKKyAgICAgICAgKiBkb20vT3B0aW9uR3JvdXBFbGVt
ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uR3JvdXBFbGVtZW50Ojp+T3B0
aW9uR3JvdXBFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbkdyb3VwRWxlbWVudDo6
T3B0aW9uR3JvdXBFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxPcHRpb25FbGVtZW50OjpvcHRpb25UZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxP
cHRpb25FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6dGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6c2VsZWN0ZWQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxpc3RCb3g6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGlzdEJveDo6cGFpbnRJdGVtQmFja2dyb3VuZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0Ojp1cGRhdGVP
cHRpb25zV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNldFRleHRG
cm9tT3B0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjppdGVtVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6aXRlbUlzU2VsZWN0ZWQpOgorCiAy
MDA5LTAxLTIwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
TWFjIGJ1aWxkIGJ1c3RhZ2UgZnJvbSBteSBzZWxlY3Rpb24gY2hhbmdlcy4gIEkgZm9yZ290IHRv
IGltcGxlbWVudCB0aGUgZnVuY3Rpb25zIG9uIFJlbmRlclRoZW1lTWFjCkluZGV4OiBHTlVtYWtl
ZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBHTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNDAwNzcpCisr
KyBHTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNjM4LDYgKzYzOCwxMCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvZG9tL05vZGVXaXRoSW5kZXguaCBcCiAJV2ViQ29y
ZS9kb20vTm90YXRpb24uY3BwIFwKIAlXZWJDb3JlL2RvbS9Ob3RhdGlvbi5oIFwKKwlXZWJDb3Jl
L2RvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwIFwKKwlXZWJDb3JlL2RvbS9PcHRpb25Hcm91cEVs
ZW1lbnQuaCBcCisJV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAgXAorCVdlYkNvcmUvZG9t
L09wdGlvbkVsZW1lbnQuaCBcCiAJV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5jcHAgXAogCVdl
YkNvcmUvZG9tL092ZXJmbG93RXZlbnQuaCBcCiAJV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIFwK
SW5kZXg6IFdlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUucHJvCShyZXZpc2lvbiA0
MDA3NykKKysrIFdlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC02MDAsNiArNjAwLDggQEAg
U09VUkNFUyArPSBcCiAgICAgZG9tL05vZGVGaWx0ZXIuY3BwIFwKICAgICBkb20vTm9kZUl0ZXJh
dG9yLmNwcCBcCiAgICAgZG9tL05vdGF0aW9uLmNwcCBcCisgICAgZG9tL09wdGlvbkdyb3VwRWxl
bWVudC5jcHAgXAorICAgIGRvbS9PcHRpb25FbGVtZW50LmNwcCBcCiAgICAgZG9tL092ZXJmbG93
RXZlbnQuY3BwIFwKICAgICBkb20vUG9zaXRpb24uY3BwIFwKICAgICBkb20vUG9zaXRpb25JdGVy
YXRvci5jcHAgXApJbmRleDogV2ViQ29yZS5zY29ucwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnNj
b25zCShyZXZpc2lvbiA0MDA3NykKKysrIFdlYkNvcmUuc2NvbnMJKHdvcmtpbmcgY29weSkKQEAg
LTExMyw2ICsxMTMsOCBAQCBzb3VyY2VzWydkb20nXSA9IFsKICAgICAnZG9tL05vZGVGaWx0ZXJD
b25kaXRpb24uY3BwJywKICAgICAnZG9tL05vZGVJdGVyYXRvci5jcHAnLAogICAgICdkb20vTm90
YXRpb24uY3BwJywKKyAgICAnZG9tL09wdGlvbkdyb3VwRWxlbWVudC5jcHAnLAorICAgICdkb20v
T3B0aW9uRWxlbWVudC5jcHAnLAogICAgICdkb20vT3ZlcmZsb3dFdmVudC5jcHAnLAogICAgICdk
b20vUG9zaXRpb24uY3BwJywKICAgICAnZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwJywKSW5kZXg6
IFdlYkNvcmVTb3VyY2VzLmJrbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlU291cmNlcy5ia2wJKHJl
dmlzaW9uIDQwMDc3KQorKysgV2ViQ29yZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNvcHkpCkBAIC00
MzAsNiArNDMwLDggQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5lZQog
ICAgICAgICBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKICAgICAgICAgZG9tL05vZGVJdGVy
YXRvci5jcHAKICAgICAgICAgZG9tL05vdGF0aW9uLmNwcAorICAgICAgICBkb20vT3B0aW9uR3Jv
dXBFbGVtZW50LmNwcAorICAgICAgICBkb20vT3B0aW9uRWxlbWVudC5jcHAKICAgICAgICAgZG9t
L092ZXJmbG93RXZlbnQuY3BwCiAgICAgICAgIGRvbS9Qb3NpdGlvbi5jcHAKICAgICAgICAgZG9t
L1Bvc2l0aW9uSXRlcmF0b3IuY3BwCkluZGV4OiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24g
NDAwNzcpCisrKyBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTE2NDYsNiArMTE2NDYsMzggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE9wdGlvbkdyb3VwRWxlbWVudC5jcHAiDQorCQkJCT4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX1BHT3xXaW4zMiIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249InRydWUiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxPcHRpb25Hcm91cEVsZW1lbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxPcHRpb25FbGVtZW50LmNwcCINCisJ
CQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfUEdPfFdp
bjMyIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0idHJ1ZSINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXE9wdGlvbkVsZW1lbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxPdmVyZmxvd0V2ZW50LmNwcCINCiAJ
CQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkluZGV4OiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA0MDA3NykKKysrIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsMTAgQEAKIAkJMDg2NUNDRTYwRURERjUx
QjAwREY5RUMzIC8qIFdNTE5vb3BFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NjVDQ0U0MEVEREY1MUIwMERGOUVDMyAvKiBXTUxOb29w
RWxlbWVudC5jcHAgKi87IH07CiAJCTA4NjVDQ0U3MEVEREY1MUIwMERGOUVDMyAvKiBXTUxOb29w
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg2NUNDRTUwRURERjUxQjAwREY5RUMzIC8qIFdNTE5vb3BFbGVtZW50LmggKi87IH07CiAJCTA4
NzAwQkU3MEYwODZDNTMwMDkxOTQxOSAvKiBJbnB1dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3MDBCRTYwRjA4NkM1MzAwOTE5NDE5
IC8qIElucHV0RWxlbWVudC5jcHAgKi87IH07CisJCTA4NzI4MTU1MEYyNkI5QjYwMEFGQzU5NiAv
KiBPcHRpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NzI4MTUxMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmNwcCAq
LzsgfTsKKwkJMDg3MjgxNTYwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzI4MTUyMEYyNkI5
QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggKi87IH07CisJCTA4NzI4MTU3MEYyNkI5QjYw
MEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3MjgxNTMwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlv
bkdyb3VwRWxlbWVudC5jcHAgKi87IH07CisJCTA4NzI4MTU4MEYyNkI5QjYwMEFGQzU5NiAvKiBP
cHRpb25Hcm91cEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NzI4MTU0MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQu
aCAqLzsgfTsKIAkJMDg3NDRCQUEwRURCN0Q4NjAwNEM5RTYzIC8qIFdNTE9uRXZlbnRFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzQ0
QkE5MEVEQjdEODYwMDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxlbWVudC5jcHAgKi87IH07CiAJCTA4
NzQ0QkFFMEVEQjdEOTIwMDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3NDRCQUQwRURCN0Q5MjAwNEM5
RTYzIC8qIFdNTE9uRXZlbnRFbGVtZW50LmggKi87IH07CiAJCTA4N0ZGQTBGMEVGRjNFRDMwMDlE
QkQ4OCAvKiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3RkZBMEQwRUZGM0VEMzAwOURCRDg4IC8qIFdN
TEluc2VydGVkTGVnZW5kRWxlbWVudC5jcHAgKi87IH07CkBAIC00ODk2LDYgKzQ5MDAsMTAgQEAK
IAkJMDg2NUNDRTQwRURERjUxQjAwREY5RUMzIC8qIFdNTE5vb3BFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTE5vb3BFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg2NUNDRTUwRURERjUxQjAwREY5RUMzIC8qIFdNTE5v
b3BFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdNTE5vb3BFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NzAwQkU2MEYwODZDNTMwMDkx
OTQxOSAvKiBJbnB1dEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5wdXRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg3
MjgxNTEwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT3B0aW9uRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA4NzI4MTUyMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbkVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg3MjgxNTMwRjI2QjlCNjAwQUZDNTk2IC8qIE9w
dGlvbkdyb3VwRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBPcHRpb25Hcm91cEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
ODcyODE1NDBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wdGlvbkdyb3VwRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwODc0NEJBOTBFREI3RDg2MDA0QzlFNjMgLyogV01MT25FdmVu
dEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV01MT25F
dmVudEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODc0NEJBRDBF
REI3RDkyMDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV01MT25FdmVudEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDg3RkZBMEQwRUZGM0VEMzAwOURCRDg4IC8qIFdNTEluc2VydGVkTGVnZW5kRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXTUxJbnNlcnRl
ZExlZ2VuZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyNzYs
NiArMTQyODQsMTAgQEAKIAkJCQlBOEVBN0VCNzBBMTk0NUQwMDBBOEVGNUYgLyogTm90YXRpb24u
Y3BwICovLAogCQkJCUE4RUE3RUI2MEExOTQ1RDAwMEE4RUY1RiAvKiBOb3RhdGlvbi5oICovLAog
CQkJCTkzRUVDMUY0MDlDMjg3NzcwMEM1MTVEMSAvKiBOb3RhdGlvbi5pZGwgKi8sCisJCQkJMDg3
MjgxNTEwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuY3BwICovLAorCQkJCTA4NzI4
MTUyMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggKi8sCisJCQkJMDg3MjgxNTMw
RjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5jcHAgKi8sCisJCQkJMDg3Mjgx
NTQwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5oICovLAogCQkJCTFBMEQ1
NzM0MEE1Qzc3RkUwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50LmNwcCAqLywKIAkJCQkxQTBENTcz
NTBBNUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5oICovLAogCQkJCTFBMEQ1NzM4MEE1
Qzc4MTIwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50LmlkbCAqLywKQEAgLTE1OTQ4LDYgKzE1OTYw
LDggQEAKIAkJCQlBOEVBN0VCRTBBMTk0NUQwMDBBOEVGNUYgLyogTm90YXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFDRjZCREZBMEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNGNkJFMTUwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNO
b2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwODcyODE1NjBGMjZCOUI2
MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg3MjgxNTgw
RjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFBOTI2N0QwRDUzRjA1NzAwNjNFQ0MyIC8qIE9yaWdpblF1b3RhTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFBOTI2N0YwRDUzRjA1NzAwNjNFQ0MyIC8qIE9yaWdpblVzYWdlUmVj
b3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjVERDBFODFCOEREMDBCMjU5NjUgLyogT3V0
bGluZVZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTE3OTY1LDYgKzE3OTc5LDggQEAKIAkJCQlB
OEVBN0VCRjBBMTk0NUQwMDBBOEVGNUYgLyogTm90YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUNGNkJERkIwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNFdmVudExpc3RlbmVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUNGNkJFMTQwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVy
Q29uZGl0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMDg3MjgxNTUwRjI2QjlCNjAwQUZDNTk2
IC8qIE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDg3MjgxNTcwRjI2QjlC
NjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MUE5MjY3QzBENTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luUXVvdGFNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxQTkyNjdFMEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmlnaW5Vc2FnZVJlY29y
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTBENTczNjBBNUM3N0ZFMDA3RURENEMgLyogT3Zl
cmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IGRvbS9PcHRpb25FbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBkb20vT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyBk
b20vT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJPcHRpb25FbGVtZW50LmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorCisvLyBGSVhNRTogQWN0aXZhdGUgY29kZSBvbmNlIFdN
TE9wdGlvbkVsZW1lbnQgaXMgYXZhaWxhYmxlCisjaWYgRU5BQkxFKFdNTCkgJiYgMAorI2luY2x1
ZGUgIldNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXTUxOYW1lcy5oIgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudEZvckVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVu
dCgpICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRpb25UYWcpKQorICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50KTsKKworICAg
IC8vIEZJWE1FOiBBY3RpdmF0ZSBjb2RlIG9uY2UgV01MT3B0aW9uRWxlbWVudCBpcyBhdmFpbGFi
bGUKKyNpZiBFTkFCTEUoV01MKSAmJiAwCisgICAgaWYgKGVsZW1lbnQtPmlzV01MRWxlbWVudCgp
ICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoV01MTmFtZXM6Om9wdGlvblRhZykpCisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxXTUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudCk7CisjZW5kaWYKKwor
ICAgIHJldHVybiAwOworfQorCit9CkluZGV4OiBkb20vT3B0aW9uRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGRvbS9PcHRpb25FbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBkb20vT3B0aW9uRWxl
bWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3
LnRvcmNobW9iaWxlLmNvbS8pCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIE9wdGlvbkVsZW1lbnRfaAorI2RlZmluZSBP
cHRpb25FbGVtZW50X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50Owor
Y2xhc3MgU3RyaW5nOworCitjbGFzcyBPcHRpb25FbGVtZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5PcHRpb25FbGVtZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0ZWQoKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgb3B0aW9uVGV4dCgpIGNvbnN0ID0gMDsKKwor
cHJvdGVjdGVkOgorICAgIE9wdGlvbkVsZW1lbnQoKSB7IH0KK307CisKK09wdGlvbkVsZW1lbnQq
IG9wdGlvbkVsZW1lbnRGb3JFbGVtZW50KEVsZW1lbnQqKTsKKworfQorCisjZW5kaWYKSW5kZXg6
IGRvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9PcHRpb25Hcm91
cEVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQorKysgZG9tL09wdGlvbkdyb3VwRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
VG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2ht
b2JpbGUuY29tLykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPcHRpb25Hcm91
cEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KKworLy8gRklYTUU6IEFjdGl2YXRlIGNvZGUgb25jZSBXTUxPcHRHcm91cEVsZW1l
bnQgaXMgYXZhaWxhYmxlCisjaWYgRU5BQkxFKFdNTCkgJiYgMAorI2luY2x1ZGUgIldNTE9wdEdy
b3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIldNTE5hbWVzLmgiCisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitPcHRpb25Hcm91cEVsZW1lbnQqIG9wdGlvbkdyb3VwRWxlbWVudEZvckVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVu
dCgpICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRncm91cFRhZykpCisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudCk7CisK
KyAgICAvLyBGSVhNRTogQWN0aXZhdGUgY29kZSBvbmNlIFdNTE9wdEdyb3VwRWxlbWVudCBpcyBh
dmFpbGFibGUKKyNpZiBFTkFCTEUoV01MKSAmJiAwCisgICAgaWYgKGVsZW1lbnQtPmlzV01MRWxl
bWVudCgpICYmIGVsZW1lbnQtPmhhc1RhZ05hbWUoV01MTmFtZXM6Om9wdGdyb3VwVGFnKSkKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQpOwor
I2VuZGlmCisKKyAgICByZXR1cm4gMDsKK30KKworfQpJbmRleDogZG9tL09wdGlvbkdyb3VwRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9PcHRpb25Hcm91cEVsZW1lbnQuaAkocmV2aXNpb24g
MCkKKysrIGRvbS9PcHRpb25Hcm91cEVsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBP
cHRpb25Hcm91cEVsZW1lbnRfaAorI2RlZmluZSBPcHRpb25Hcm91cEVsZW1lbnRfaAorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBTdHJpbmc7CisKK2NsYXNz
IE9wdGlvbkdyb3VwRWxlbWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+T3B0aW9uR3JvdXBF
bGVtZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIFN0cmluZyBncm91cExhYmVsVGV4dCgpIGNvbnN0
ID0gMDsKKworcHJvdGVjdGVkOgorICAgIE9wdGlvbkdyb3VwRWxlbWVudCgpIHsgfQorfTsKKwor
T3B0aW9uR3JvdXBFbGVtZW50KiBvcHRpb25Hcm91cEVsZW1lbnRGb3JFbGVtZW50KEVsZW1lbnQq
KTsKKworfQorCisjZW5kaWYKSW5kZXg6IGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCShyZXZpc2lvbiA0MDA3NykKKysr
IGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMiArMjUs
MTMgQEAKICNkZWZpbmUgSFRNTE9wdEdyb3VwRWxlbWVudF9oCiAKICNpbmNsdWRlICJIVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiT3B0aW9uR3JvdXBFbGVtZW50LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50OwogCi1jbGFz
cyBIVE1MT3B0R3JvdXBFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewor
Y2xhc3MgSFRNTE9wdEdyb3VwRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
LCBwdWJsaWMgT3B0aW9uR3JvdXBFbGVtZW50IHsKIHB1YmxpYzoKICAgICBIVE1MT3B0R3JvdXBF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCog
PSAwKTsKIApAQCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGxhYmVsKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBTdHJpbmcmKTsKICAgICAKLSAgICBTdHJpbmcg
Z3JvdXBMYWJlbFRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBncm91cExhYmVsVGV4
dCgpIGNvbnN0OwogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBvd25lclNlbGVjdEVsZW1lbnQoKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxl
bWVudCk7CiAgICAgCkluZGV4OiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAkocmV2aXNpb24gNDAwNzcpCisrKyBodG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcsNyArNzcsNyBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIEhUTUxPcHRpb25FbGVtZW50Ojp0CiAgICAgcmV0dXJuIG9wdGlv
bjsKIH0KIAotU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojp0ZXh0KCkgY29uc3QKK1N0cmluZyBI
VE1MT3B0aW9uRWxlbWVudDo6b3B0aW9uVGV4dCgpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHRleHQ7
CiAKSW5kZXg6IGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hU
TUxPcHRpb25FbGVtZW50LmgJKHJldmlzaW9uIDQwMDc3KQorKysgaHRtbC9IVE1MT3B0aW9uRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAjZGVmaW5lIEhUTUxPcHRp
b25FbGVtZW50X2gKIAogI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJPcHRpb25FbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzEsNyAr
MzIsNyBAQCBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsK
IGNsYXNzIE1hcHBlZEF0dHJpYnV0ZTsKIAotY2xhc3MgSFRNTE9wdGlvbkVsZW1lbnQgOiBwdWJs
aWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCB7CitjbGFzcyBIVE1MT3B0aW9uRWxlbWVudCA6IHB1
YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50LCBwdWJsaWMgT3B0aW9uRWxlbWVudCB7CiAgICAg
ZnJpZW5kIGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50OwogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJN
ZW51TGlzdDsKIApAQCAtNDksNyArNTAsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUoKSBjb25zdDsKIAotICAgIFN0cmluZyB0ZXh0KCkgY29u
c3Q7CisgICAgdmlydHVhbCBTdHJpbmcgb3B0aW9uVGV4dCgpIGNvbnN0OworICAgIFN0cmluZyB0
ZXh0KCkgY29uc3QgeyByZXR1cm4gb3B0aW9uVGV4dCgpOyB9CiAgICAgdm9pZCBzZXRUZXh0KGNv
bnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGludCBpbmRleCgpIGNvbnN0OwpA
QCAtNTgsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsKIAotICAgIGJvb2wgc2VsZWN0ZWQoKSBjb25z
dCB7IHJldHVybiBtX3NlbGVjdGVkOyB9CisgICAgdmlydHVhbCBib29sIHNlbGVjdGVkKCkgY29u
c3QgeyByZXR1cm4gbV9zZWxlY3RlZDsgfQogICAgIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCk7CiAg
ICAgdm9pZCBzZXRTZWxlY3RlZFN0YXRlKGJvb2wpOwogCkluZGV4OiByZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCShy
ZXZpc2lvbiA0MDA3NykKKysrIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBzZWxlY3Qg
ZWxlbWVudCByZW5kZXJlciBpbiBXZWJDb3JlLgogICoKICAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAg
ICAgIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93
d3cudG9yY2htb2JpbGUuY29tLykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDEsMTAgKzQyLDEwIEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTE9wdEdy
b3VwRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaW5jbHVk
ZSAiT3B0aW9uR3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiT3B0aW9uRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgpAQCAtMTAzLDEwICsxMDQsMTAgQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojp1
cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGxp
c3RJdGVtc1tpXTsKICAgICAgICAgICAgIFN0cmluZyB0ZXh0OwogICAgICAgICAgICAgRm9udCBp
dGVtRm9udCA9IHN0eWxlKCktPmZvbnQoKTsKLSAgICAgICAgICAgIGlmIChlbGVtZW50LT5oYXNU
YWdOYW1lKG9wdGlvblRhZykpCi0gICAgICAgICAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PEhU
TUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudCktPm9wdGlvblRleHQoKTsKLSAgICAgICAgICAgIGVs
c2UgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKSB7Ci0gICAgICAgICAgICAg
ICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQqPihlbGVtZW50KS0+Z3Jv
dXBMYWJlbFRleHQoKTsKKyAgICAgICAgICAgIGlmIChPcHRpb25FbGVtZW50KiBvcHRpb25FbGVt
ZW50ID0gb3B0aW9uRWxlbWVudEZvckVsZW1lbnQoZWxlbWVudCkpCisgICAgICAgICAgICAgICAg
dGV4dCA9IG9wdGlvbkVsZW1lbnQtPm9wdGlvblRleHQoKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KE9wdGlvbkdyb3VwRWxlbWVudCogb3B0aW9uR3JvdXBFbGVtZW50ID0gb3B0aW9uR3JvdXBFbGVt
ZW50Rm9yRWxlbWVudChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIHRleHQgPSBvcHRpb25H
cm91cEVsZW1lbnQtPmdyb3VwTGFiZWxUZXh0KCk7CiAgICAgICAgICAgICAgICAgRm9udERlc2Ny
aXB0aW9uIGQgPSBpdGVtRm9udC5mb250RGVzY3JpcHRpb24oKTsKICAgICAgICAgICAgICAgICBk
LnNldFdlaWdodChkLmJvbGRlcldlaWdodCgpKTsKICAgICAgICAgICAgICAgICBpdGVtRm9udCA9
IEZvbnQoZCwgaXRlbUZvbnQubGV0dGVyU3BhY2luZygpLCBpdGVtRm9udC53b3JkU3BhY2luZygp
KTsKQEAgLTI5NSwxMyArMjk2LDE0IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtRm9y
ZWdyb3VuZCgKICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gc3RhdGljX2Nhc3Q8SFRN
TFNlbGVjdEVsZW1lbnQqPihub2RlKCkpOwogICAgIGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+
JiBsaXN0SXRlbXMgPSBzZWxlY3QtPmxpc3RJdGVtcygpOwogICAgIEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gbGlzdEl0ZW1zW2xpc3RJbmRleF07CisgICAgT3B0aW9uRWxlbWVudCogb3B0aW9uRWxl
bWVudCA9IG9wdGlvbkVsZW1lbnRGb3JFbGVtZW50KGVsZW1lbnQpOwogCiAgICAgU3RyaW5nIGl0
ZW1UZXh0OwotICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykpCi0gICAgICAg
IGl0ZW1UZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50KS0+b3B0
aW9uVGV4dCgpOwotICAgIGVsc2UgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcp
KQotICAgICAgICBpdGVtVGV4dCA9IHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQqPihl
bGVtZW50KS0+Z3JvdXBMYWJlbFRleHQoKTsKLSAgICAgICAKKyAgICBpZiAob3B0aW9uRWxlbWVu
dCkKKyAgICAgICAgaXRlbVRleHQgPSBvcHRpb25FbGVtZW50LT5vcHRpb25UZXh0KCk7CisgICAg
ZWxzZSBpZiAoT3B0aW9uR3JvdXBFbGVtZW50KiBvcHRpb25Hcm91cEVsZW1lbnQgPSBvcHRpb25H
cm91cEVsZW1lbnRGb3JFbGVtZW50KGVsZW1lbnQpKQorICAgICAgICBpdGVtVGV4dCA9IG9wdGlv
bkdyb3VwRWxlbWVudC0+Z3JvdXBMYWJlbFRleHQoKTsgICAgICAKKwogICAgIC8vIERldGVybWlu
ZSB3aGVyZSB0aGUgaXRlbSB0ZXh0IHNob3VsZCBiZSBwbGFjZWQKICAgICBJbnRSZWN0IHIgPSBp
dGVtQm91bmRpbmdCb3hSZWN0KHR4LCB0eSwgbGlzdEluZGV4KTsKICAgICByLm1vdmUob3B0aW9u
c1NwYWNpbmdIb3Jpem9udGFsLCBzdHlsZSgpLT5mb250KCkuYXNjZW50KCkpOwpAQCAtMzExLDcg
KzMxMyw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtRm9yZWdyb3VuZCgKICAgICAg
ICAgaXRlbVN0eWxlID0gc3R5bGUoKTsKICAgICAKICAgICBDb2xvciB0ZXh0Q29sb3IgPSBlbGVt
ZW50LT5yZW5kZXJTdHlsZSgpID8gZWxlbWVudC0+cmVuZGVyU3R5bGUoKS0+Y29sb3IoKSA6IHN0
eWxlKCktPmNvbG9yKCk7Ci0gICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSAm
JiBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQpLT5zZWxlY3RlZCgpKSB7
CisgICAgaWYgKG9wdGlvbkVsZW1lbnQgJiYgb3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKSkgewog
ICAgICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2VsZWN0aW9uKCktPmlzRm9jdXNlZEFu
ZEFjdGl2ZSgpICYmIGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgPT0gbm9kZSgpKQogICAgICAg
ICAgICAgdGV4dENvbG9yID0gdGhlbWUoKS0+YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91
bmRDb2xvcigpOwogICAgICAgICAvLyBIb25vciB0aGUgZm9yZWdyb3VuZCBjb2xvciBmb3IgZGlz
YWJsZWQgaXRlbXMKQEAgLTM0Myw5ICszNDUsMTAgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWlu
dEl0ZW1CYWNrZ3JvdW5kKAogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBzdGF0aWNf
Y2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KG5vZGUoKSk7CiAgICAgY29uc3QgVmVjdG9yPEhUTUxF
bGVtZW50Kj4mIGxpc3RJdGVtcyA9IHNlbGVjdC0+bGlzdEl0ZW1zKCk7CiAgICAgSFRNTEVsZW1l
bnQqIGVsZW1lbnQgPSBsaXN0SXRlbXNbbGlzdEluZGV4XTsKKyAgICBPcHRpb25FbGVtZW50KiBv
cHRpb25FbGVtZW50ID0gb3B0aW9uRWxlbWVudEZvckVsZW1lbnQoZWxlbWVudCk7CiAKICAgICBD
b2xvciBiYWNrQ29sb3I7Ci0gICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSAm
JiBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQpLT5zZWxlY3RlZCgpKSB7
CisgICAgaWYgKG9wdGlvbkVsZW1lbnQgJiYgb3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKSkgewog
ICAgICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2VsZWN0aW9uKCktPmlzRm9jdXNlZEFu
ZEFjdGl2ZSgpICYmIGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgPT0gbm9kZSgpKQogICAgICAg
ICAgICAgYmFja0NvbG9yID0gdGhlbWUoKS0+YWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpOwogICAgICAgICBlbHNlCkluZGV4OiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAJKHJldmlzaW9u
IDQwMDc3KQorKysgcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMiw2ICsyLDcgQEAKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBzZWxlY3QgZWxlbWVu
dCByZW5kZXJlciBpbiBXZWJDb3JlLgogICoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAgIDIwMDkgVG9y
Y2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2Jp
bGUuY29tLykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjksOSArMzAsOSBAQAogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRN
TE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5oIgog
I2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlJlbmRlckJSLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU2Nyb2xsYmFyLmgiCkBAIC0xNDEsMTEgKzE0MiwxMyBAQCB2b2lkIFJlbmRlck1lbnVM
aXN0Ojp1cGRhdGVPcHRpb25zV2lkdGgoCiAgICAgaW50IHNpemUgPSBsaXN0SXRlbXMuc2l6ZSgp
OyAgICAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IGxpc3RJdGVtc1tpXTsKLSAgICAgICAgaWYgKGVsZW1lbnQtPmhh
c1RhZ05hbWUob3B0aW9uVGFnKSkgewotICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBzdGF0aWNf
Y2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQpLT5vcHRpb25UZXh0KCk7Ci0gICAgICAg
ICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIG1heE9wdGlvbldpZHRo
ID0gbWF4KG1heE9wdGlvbldpZHRoLCBzdHlsZSgpLT5mb250KCkuZmxvYXRXaWR0aCh0ZXh0KSk7
Ci0gICAgICAgIH0KKyAgICAgICAgT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IG9wdGlv
bkVsZW1lbnRGb3JFbGVtZW50KGVsZW1lbnQpOworICAgICAgICBpZiAoIW9wdGlvbkVsZW1lbnQp
CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IG9wdGlvbkVs
ZW1lbnQtPm9wdGlvblRleHQoKTsKKyAgICAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIG1heE9wdGlvbldpZHRoID0gbWF4KG1heE9wdGlvbldpZHRoLCBzdHlsZSgpLT5mb250
KCkuZmxvYXRXaWR0aCh0ZXh0KSk7CiAgICAgfQogCiAgICAgaW50IHdpZHRoID0gc3RhdGljX2Nh
c3Q8aW50PihjZWlsZihtYXhPcHRpb25XaWR0aCkpOwpAQCAtMTc2LDEyICsxNzksMTQgQEAgdm9p
ZCBSZW5kZXJNZW51TGlzdDo6c2V0VGV4dEZyb21PcHRpb24oaQogICAgIGludCBzaXplID0gbGlz
dEl0ZW1zLnNpemUoKTsKIAogICAgIGludCBpID0gc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChv
cHRpb25JbmRleCk7Ci0gICAgU3RyaW5nIHRleHQgPSAiIjsKLSAgICBpZiAoaSA+PSAwICYmIGkg
PCBzaXplKSB7Ci0gICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gbGlzdEl0ZW1zW2ldOwot
ICAgICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpKQotICAgICAgICAgICAg
dGV4dCA9IHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4obGlzdEl0ZW1zW2ldKS0+b3B0
aW9uVGV4dCgpOwotICAgIH0KKyAgICBpZiAoaSA8IDAgfHwgaSA+PSBzaXplKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gb3B0aW9uRWxlbWVu
dEZvckVsZW1lbnQobGlzdEl0ZW1zW2ldKTsKKyAgICBpZiAoIW9wdGlvbkVsZW1lbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIFN0cmluZyB0ZXh0ID0gb3B0aW9uRWxlbWVudC0+b3B0aW9uVGV4
dCgpOwogICAgIHNldFRleHQodGV4dC5zdHJpcFdoaXRlU3BhY2UoKSk7CiB9CiAKQEAgLTMwMiwx
MCArMzA3LDEwIEBAIFN0cmluZyBSZW5kZXJNZW51TGlzdDo6aXRlbVRleHQodW5zaWduZWQKIHsK
ICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVs
ZW1lbnQqPihub2RlKCkpOwogICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc2VsZWN0LT5saXN0
SXRlbXMoKVtsaXN0SW5kZXhdOwotICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGdyb3Vw
VGFnKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQqPihl
bGVtZW50KS0+Z3JvdXBMYWJlbFRleHQoKTsKLSAgICBlbHNlIGlmIChlbGVtZW50LT5oYXNUYWdO
YW1lKG9wdGlvblRhZykpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxl
bWVudCo+KGVsZW1lbnQpLT5vcHRpb25UZXh0KCk7CisgICAgaWYgKE9wdGlvbkdyb3VwRWxlbWVu
dCogb3B0aW9uR3JvdXBFbGVtZW50ID0gb3B0aW9uR3JvdXBFbGVtZW50Rm9yRWxlbWVudChlbGVt
ZW50KSkKKyAgICAgICAgcmV0dXJuIG9wdGlvbkdyb3VwRWxlbWVudC0+Z3JvdXBMYWJlbFRleHQo
KTsKKyAgICBlbHNlIGlmIChPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gb3B0aW9uRWxl
bWVudEZvckVsZW1lbnQoZWxlbWVudCkpCisgICAgICAgIHJldHVybiBvcHRpb25FbGVtZW50LT5v
cHRpb25UZXh0KCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCkBAIC00MjQsNyArNDI5LDkg
QEAgYm9vbCBSZW5kZXJNZW51TGlzdDo6aXRlbUlzU2VsZWN0ZWQodW5zaQogewogICAgIEhUTUxT
ZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KG5v
ZGUoKSk7CiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzZWxlY3QtPmxpc3RJdGVtcygpW2xp
c3RJbmRleF07Ci0gICAgcmV0dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSYmIHN0
YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudCktPnNlbGVjdGVkKCk7CisgICAg
aWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSBvcHRpb25FbGVtZW50Rm9yRWxlbWVu
dChlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG9wdGlvbkVsZW1lbnQtPnNlbGVjdGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFJlbmRlck1lbnVMaXN0OjpzZXRUZXh0RnJvbUl0
ZW0odW5zaWduZWQgbGlzdEluZGV4KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26882</attachid>
            <date>2009-01-20 19:41:18 -0800</date>
            <delta_ts>2009-01-20 22:40:22 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>AbstractOptionElement.diff</filename>
            <type>text/plain</type>
            <size>27493</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQwMDc4
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDYgQEAKKzIwMDktMDEt
MjAgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NAorCisgICAg
ICAgIFJlZmFjdG9yIHNvbWUgZnVuY3Rpb25hbGl0eSBmcm9tIEhUTUxPcHRpb24vT3B0R3JvdXBF
bGVtZW50IG5lZWRlZCBieSBSZW5kZXJMaXN0Qm94L1JlbmRlck1lbnVMaXN0CisgICAgICAgIGlu
IHR3byBhYnN0cmFjdCBiYXNlIGNsYXNzZXM6IE9wdGlvbkVsZW1lbnQgJiBPcHRpb25Hcm91cEVs
ZW1lbnQgbGl2aW5nIGluIGRvbS8gLSBqdXN0IGxpa2UgaXQKKyAgICAgICAgaGFzIGJlZW4gZG9u
ZSBiZWZvcmUgZm9yIEZvcm1Db250cm9sRWxlbWVudCBhbmQgUmVuZGVyVGV4dENvbnRyb2wuCisK
KyAgICAgICAgVGhpcyBpcyBuZWVkZWQgdG8gcHJlcGFyZSB0aGUgYWRkdGlvbiBvZiBXTUxPcHRp
b24vT3B0R3JvdXBFbGVtZW50LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS5zY29uczoKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOgorICAgICAgICAq
IGRvbS9PcHRpb25FbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcHRpb25F
bGVtZW50Rm9yRWxlbWVudCk6CisgICAgICAgICogZG9tL09wdGlvbkVsZW1lbnQuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpPcHRpb25FbGVtZW50Ojp+T3B0aW9uRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpPcHRpb25FbGVtZW50OjpPcHRpb25FbGVtZW50KToKKyAgICAgICAgKiBk
b20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcHRp
b25Hcm91cEVsZW1lbnRGb3JFbGVtZW50KToKKyAgICAgICAgKiBkb20vT3B0aW9uR3JvdXBFbGVt
ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uR3JvdXBFbGVtZW50Ojp+T3B0
aW9uR3JvdXBFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbkdyb3VwRWxlbWVudDo6
T3B0aW9uR3JvdXBFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxPcHRpb25FbGVtZW50OjpvcHRpb25UZXh0KToKKyAgICAgICAgKiBodG1sL0hUTUxP
cHRpb25FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6c2Vs
ZWN0ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxpc3RCb3g6OnBhaW50SXRlbUZvcmVncm91bmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGlzdEJveDo6cGFpbnRJdGVtQmFja2dyb3VuZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVM
aXN0Ojp1cGRhdGVPcHRpb25zV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxp
c3Q6OnNldFRleHRGcm9tT3B0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0
OjppdGVtVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6aXRlbUlzU2Vs
ZWN0ZWQpOgorCiAyMDA5LTAxLTIwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAog
ICAgICAgICBUaWdodGVuIHVwIHRoZSB0eXBlIG9mIFJlbmRlck9iamVjdCBvd25lZCBieSBSZW5k
ZXJMYXllciB0byBiZSBhIFJlbmRlckJveC4gIFJlbmFtZSBtX29iamVjdCB0bwpJbmRleDogR05V
bWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQwMDc4
KQorKysgR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTYzOCw2ICs2MzgsMTAgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2RvbS9Ob2RlV2l0aEluZGV4LmggXAogCVdl
YkNvcmUvZG9tL05vdGF0aW9uLmNwcCBcCiAJV2ViQ29yZS9kb20vTm90YXRpb24uaCBcCisJV2Vi
Q29yZS9kb20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcCBcCisJV2ViQ29yZS9kb20vT3B0aW9uR3Jv
dXBFbGVtZW50LmggXAorCVdlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuY3BwIFwKKwlXZWJDb3Jl
L2RvbS9PcHRpb25FbGVtZW50LmggXAogCVdlYkNvcmUvZG9tL092ZXJmbG93RXZlbnQuY3BwIFwK
IAlXZWJDb3JlL2RvbS9PdmVyZmxvd0V2ZW50LmggXAogCVdlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cCBcCkluZGV4OiBXZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnBybwkocmV2aXNp
b24gNDAwNzgpCisrKyBXZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNjAwLDYgKzYwMCw4
IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Ob2RlRmlsdGVyLmNwcCBcCiAgICAgZG9tL05vZGVJ
dGVyYXRvci5jcHAgXAogICAgIGRvbS9Ob3RhdGlvbi5jcHAgXAorICAgIGRvbS9PcHRpb25Hcm91
cEVsZW1lbnQuY3BwIFwKKyAgICBkb20vT3B0aW9uRWxlbWVudC5jcHAgXAogICAgIGRvbS9PdmVy
Zmxvd0V2ZW50LmNwcCBcCiAgICAgZG9tL1Bvc2l0aW9uLmNwcCBcCiAgICAgZG9tL1Bvc2l0aW9u
SXRlcmF0b3IuY3BwIFwKSW5kZXg6IFdlYkNvcmUuc2NvbnMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS5zY29ucwkocmV2aXNpb24gNDAwNzgpCisrKyBXZWJDb3JlLnNjb25zCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTMsNiArMTEzLDggQEAgc291cmNlc1snZG9tJ10gPSBbCiAgICAgJ2RvbS9Ob2RlRmls
dGVyQ29uZGl0aW9uLmNwcCcsCiAgICAgJ2RvbS9Ob2RlSXRlcmF0b3IuY3BwJywKICAgICAnZG9t
L05vdGF0aW9uLmNwcCcsCisgICAgJ2RvbS9PcHRpb25Hcm91cEVsZW1lbnQuY3BwJywKKyAgICAn
ZG9tL09wdGlvbkVsZW1lbnQuY3BwJywKICAgICAnZG9tL092ZXJmbG93RXZlbnQuY3BwJywKICAg
ICAnZG9tL1Bvc2l0aW9uLmNwcCcsCiAgICAgJ2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcCcsCklu
ZGV4OiBXZWJDb3JlU291cmNlcy5ia2wKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZVNvdXJjZXMuYmts
CShyZXZpc2lvbiA0MDA3OCkKKysrIFdlYkNvcmVTb3VyY2VzLmJrbAkod29ya2luZyBjb3B5KQpA
QCAtNDMwLDYgKzQzMCw4IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBu
ZWUKICAgICAgICAgZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCiAgICAgICAgIGRvbS9Ob2Rl
SXRlcmF0b3IuY3BwCiAgICAgICAgIGRvbS9Ob3RhdGlvbi5jcHAKKyAgICAgICAgZG9tL09wdGlv
bkdyb3VwRWxlbWVudC5jcHAKKyAgICAgICAgZG9tL09wdGlvbkVsZW1lbnQuY3BwCiAgICAgICAg
IGRvbS9PdmVyZmxvd0V2ZW50LmNwcAogICAgICAgICBkb20vUG9zaXRpb24uY3BwCiAgICAgICAg
IGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcApJbmRleDogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlz
aW9uIDQwMDc4KQorKysgV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTExNjQ2LDYgKzExNjQ2LDM4IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxPcHRpb25Hcm91cEVsZW1lbnQuY3BwIg0KKwkJ
CQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9QR098V2lu
MzIiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSJ0cnVlIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cT3B0aW9uR3JvdXBFbGVtZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cT3B0aW9uRWxlbWVudC5jcHAi
DQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX1BH
T3xXaW4zMiINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249InRydWUiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxPcHRpb25FbGVtZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cT3ZlcmZsb3dFdmVudC5jcHAi
DQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpJbmRleDogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gNDAwNzgpCisrKyBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDEwIEBACiAJCTA4NjVDQ0U2MEVE
REY1MUIwMERGOUVDMyAvKiBXTUxOb29wRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODY1Q0NFNDBFRERGNTFCMDBERjlFQzMgLyogV01M
Tm9vcEVsZW1lbnQuY3BwICovOyB9OwogCQkwODY1Q0NFNzBFRERGNTFCMDBERjlFQzMgLyogV01M
Tm9vcEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4NjVDQ0U1MEVEREY1MUIwMERGOUVDMyAvKiBXTUxOb29wRWxlbWVudC5oICovOyB9Owog
CQkwODcwMEJFNzBGMDg2QzUzMDA5MTk0MTkgLyogSW5wdXRFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzAwQkU2MEYwODZDNTMwMDkx
OTQxOSAvKiBJbnB1dEVsZW1lbnQuY3BwICovOyB9OworCQkwODcyODE1NTBGMjZCOUI2MDBBRkM1
OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwODcyODE1MTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5j
cHAgKi87IH07CisJCTA4NzI4MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODcyODE1MjBG
MjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5oICovOyB9OworCQkwODcyODE1NzBGMjZC
OUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzI4MTUzMEYyNkI5QjYwMEFGQzU5NiAvKiBP
cHRpb25Hcm91cEVsZW1lbnQuY3BwICovOyB9OworCQkwODcyODE1ODBGMjZCOUI2MDBBRkM1OTYg
LyogT3B0aW9uR3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwODcyODE1NDBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVt
ZW50LmggKi87IH07CiAJCTA4NzQ0QkFBMEVEQjdEODYwMDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
ODc0NEJBOTBFREI3RDg2MDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuY3BwICovOyB9Owog
CQkwODc0NEJBRTBFREI3RDkyMDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NzQ0QkFEMEVEQjdEOTIw
MDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxlbWVudC5oICovOyB9OwogCQkwODdGRkEwRjBFRkYzRUQz
MDA5REJEODggLyogV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4N0ZGQTBEMEVGRjNFRDMwMDlEQkQ4OCAv
KiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuY3BwICovOyB9OwpAQCAtNDg5Niw2ICs0OTAwLDEw
IEBACiAJCTA4NjVDQ0U0MEVEREY1MUIwMERGOUVDMyAvKiBXTUxOb29wRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXTUxOb29wRWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NjVDQ0U1MEVEREY1MUIwMERGOUVDMyAvKiBX
TUxOb29wRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxOb29w
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODcwMEJFNjBGMDg2QzUz
MDA5MTk0MTkgLyogSW5wdXRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IElucHV0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA4NzI4MTUxMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9wdGlvbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwODcyODE1MjBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcHRpb25FbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NzI4MTUzMEYyNkI5QjYwMEFGQzU5NiAv
KiBPcHRpb25Hcm91cEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gT3B0aW9uR3JvdXBFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDg3MjgxNTQwRjI2QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkdyb3VwRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcHRpb25Hcm91cEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg3NDRCQTkwRURCN0Q4NjAwNEM5RTYzIC8qIFdNTE9u
RXZlbnRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdN
TE9uRXZlbnRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg3NDRC
QUQwRURCN0Q5MjAwNEM5RTYzIC8qIFdNTE9uRXZlbnRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdNTE9uRXZlbnRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA4N0ZGQTBEMEVGRjNFRDMwMDlEQkQ4OCAvKiBXTUxJbnNlcnRlZExlZ2Vu
ZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV01MSW5z
ZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
Mjc2LDYgKzE0Mjg0LDEwIEBACiAJCQkJQThFQTdFQjcwQTE5NDVEMDAwQThFRjVGIC8qIE5vdGF0
aW9uLmNwcCAqLywKIAkJCQlBOEVBN0VCNjBBMTk0NUQwMDBBOEVGNUYgLyogTm90YXRpb24uaCAq
LywKIAkJCQk5M0VFQzFGNDA5QzI4Nzc3MDBDNTE1RDEgLyogTm90YXRpb24uaWRsICovLAorCQkJ
CTA4NzI4MTUxMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmNwcCAqLywKKwkJCQkw
ODcyODE1MjBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5oICovLAorCQkJCTA4NzI4
MTUzMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQuY3BwICovLAorCQkJCTA4
NzI4MTU0MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQuaCAqLywKIAkJCQkx
QTBENTczNDBBNUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5jcHAgKi8sCiAJCQkJMUEw
RDU3MzUwQTVDNzdGRTAwN0VERDRDIC8qIE92ZXJmbG93RXZlbnQuaCAqLywKIAkJCQkxQTBENTcz
ODBBNUM3ODEyMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5pZGwgKi8sCkBAIC0xNTk0OCw2ICsx
NTk2MCw4IEBACiAJCQkJQThFQTdFQkUwQTE5NDVEMDAwQThFRjVGIC8qIE5vdGF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQ0Y2QkRGQTBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDRjZCRTE1MEU5QkI0NjcwMDI1RTFDRCAvKiBP
YmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg3MjgxNTYwRjI2
QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4NzI4
MTU4MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxQTkyNjdEMEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmlnaW5RdW90YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxQTkyNjdGMEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmlnaW5Vc2Fn
ZVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1REQwRTgxQjhERDAwQjI1OTY1IC8q
IE91dGxpbmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzk2NSw2ICsxNzk3OSw4IEBACiAJ
CQkJQThFQTdFQkYwQTE5NDVEMDAwQThFRjVGIC8qIE5vdGF0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFDRjZCREZCMEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5lci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFDRjZCRTE0MEU5QkI0NjcwMDI1RTFDRCAvKiBPYmpDTm9kZUZp
bHRlckNvbmRpdGlvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCTA4NzI4MTU1MEYyNkI5QjYwMEFG
QzU5NiAvKiBPcHRpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA4NzI4MTU3MEYy
NkI5QjYwMEFGQzU5NiAvKiBPcHRpb25Hcm91cEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFBOTI2N0MwRDUzRjA1NzAwNjNFQ0MyIC8qIE9yaWdpblF1b3RhTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUE5MjY3RTBENTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luVXNhZ2VS
ZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3MzYwQTVDNzdGRTAwN0VERDRDIC8q
IE92ZXJmbG93RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBkb20vT3B0aW9uRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gZG9tL09wdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQor
KysgZG9tL09wdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiT3B0aW9uRWxlbWVudC5oIgorCisjaW5jbHVkZSAiRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCisj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworLy8gRklYTUU6IEFjdGl2YXRlIGNvZGUgb25j
ZSBXTUxPcHRpb25FbGVtZW50IGlzIGF2YWlsYWJsZQorI2lmIEVOQUJMRShXTUwpICYmIDAKKyNp
bmNsdWRlICJXTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiV01MTmFtZXMuaCIKKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK09wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnRG
b3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVs
ZW1lbnQoKSAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0aW9uVGFnKSkKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudCk7CisK
KyAgICAvLyBGSVhNRTogQWN0aXZhdGUgY29kZSBvbmNlIFdNTE9wdGlvbkVsZW1lbnQgaXMgYXZh
aWxhYmxlCisjaWYgRU5BQkxFKFdNTCkgJiYgMAorICAgIGlmIChlbGVtZW50LT5pc1dNTEVsZW1l
bnQoKSAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKFdNTE5hbWVzOjpvcHRpb25UYWcpKQorICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V01MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQpOworI2VuZGlm
CisKKyAgICByZXR1cm4gMDsKK30KKworfQpJbmRleDogZG9tL09wdGlvbkVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBkb20vT3B0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAwKQorKysgZG9tL09wdGlv
bkVsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDov
L3d3dy50b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBPcHRpb25FbGVtZW50X2gKKyNkZWZp
bmUgT3B0aW9uRWxlbWVudF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxlbWVu
dDsKK2NsYXNzIFN0cmluZzsKKworY2xhc3MgT3B0aW9uRWxlbWVudCB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+T3B0aW9uRWxlbWVudCgpIHsgfQorCisgICAgdmlydHVhbCBib29sIHNlbGVjdGVk
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIG9wdGlvblRleHQoKSBjb25zdCA9IDA7
CisKK3Byb3RlY3RlZDoKKyAgICBPcHRpb25FbGVtZW50KCkgeyB9Cit9OworCitPcHRpb25FbGVt
ZW50KiBvcHRpb25FbGVtZW50Rm9yRWxlbWVudChFbGVtZW50Kik7CisKK30KKworI2VuZGlmCklu
ZGV4OiBkb20vT3B0aW9uR3JvdXBFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vT3B0aW9u
R3JvdXBFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIGRvbS9PcHRpb25Hcm91cEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRv
cmNobW9iaWxlLmNvbS8pCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiT3B0aW9u
R3JvdXBFbGVtZW50LmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CisKKy8vIEZJWE1FOiBBY3RpdmF0ZSBjb2RlIG9uY2UgV01MT3B0R3JvdXBF
bGVtZW50IGlzIGF2YWlsYWJsZQorI2lmIEVOQUJMRShXTUwpICYmIDAKKyNpbmNsdWRlICJXTUxP
cHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJXTUxOYW1lcy5oIgorI2VuZGlmCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworT3B0aW9uR3JvdXBFbGVtZW50KiBvcHRpb25Hcm91cEVsZW1lbnRG
b3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVs
ZW1lbnQoKSAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0Z3JvdXBUYWcpKQor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQp
OworCisgICAgLy8gRklYTUU6IEFjdGl2YXRlIGNvZGUgb25jZSBXTUxPcHRHcm91cEVsZW1lbnQg
aXMgYXZhaWxhYmxlCisjaWYgRU5BQkxFKFdNTCkgJiYgMAorICAgIGlmIChlbGVtZW50LT5pc1dN
TEVsZW1lbnQoKSAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKFdNTE5hbWVzOjpvcHRncm91cFRhZykp
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXTUxPcHRHcm91cEVsZW1lbnQqPihlbGVtZW50
KTsKKyNlbmRpZgorCisgICAgcmV0dXJuIDA7Cit9CisKK30KSW5kZXg6IGRvbS9PcHRpb25Hcm91
cEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vT3B0aW9uR3JvdXBFbGVtZW50LmgJKHJldmlz
aW9uIDApCisrKyBkb20vT3B0aW9uR3JvdXBFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5k
ZWYgT3B0aW9uR3JvdXBFbGVtZW50X2gKKyNkZWZpbmUgT3B0aW9uR3JvdXBFbGVtZW50X2gKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50OworY2xhc3MgU3RyaW5nOworCitj
bGFzcyBPcHRpb25Hcm91cEVsZW1lbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfk9wdGlvbkdy
b3VwRWxlbWVudCgpIHsgfQorCisgICAgdmlydHVhbCBTdHJpbmcgZ3JvdXBMYWJlbFRleHQoKSBj
b25zdCA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICBPcHRpb25Hcm91cEVsZW1lbnQoKSB7IH0KK307
CisKK09wdGlvbkdyb3VwRWxlbWVudCogb3B0aW9uR3JvdXBFbGVtZW50Rm9yRWxlbWVudChFbGVt
ZW50Kik7CisKK30KKworI2VuZGlmCkluZGV4OiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAkocmV2aXNpb24gNDAwNzgp
CisrKyBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTIg
KzI1LDEzIEBACiAjZGVmaW5lIEhUTUxPcHRHcm91cEVsZW1lbnRfaAogCiAjaW5jbHVkZSAiSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIk9wdGlvbkdyb3VwRWxlbWVudC5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIAot
Y2xhc3MgSFRNTE9wdEdyb3VwRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
IHsKK2NsYXNzIEhUTUxPcHRHcm91cEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxl
bWVudCwgcHVibGljIE9wdGlvbkdyb3VwRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSFRNTE9wdEdy
b3VwRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1l
bnQqID0gMCk7CiAKQEAgLTUzLDcgKzU0LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBsYWJlbCgp
IGNvbnN0OwogICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgU3RyaW5nJik7CiAgICAgCi0gICAgU3Ry
aW5nIGdyb3VwTGFiZWxUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZ3JvdXBMYWJl
bFRleHQoKSBjb25zdDsKICAgICBIVE1MU2VsZWN0RWxlbWVudCogb3duZXJTZWxlY3RFbGVtZW50
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0Fu
eUVsZW1lbnQpOwogICAgIApJbmRleDogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDQwMDc4KQorKysg
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNywxMSArMjM3
LDExIEBAIFJlbmRlclN0eWxlKiBIVE1MT3B0aW9uRWxlbWVudDo6bm9uUmVuZGUKICAgICByZXR1
cm4gbV9zdHlsZS5nZXQoKTsgCiB9CiAKLVN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6b3B0aW9u
VGV4dCgpCitTdHJpbmcgSFRNTE9wdGlvbkVsZW1lbnQ6Om9wdGlvblRleHQoKSBjb25zdAogewog
ICAgIGlmIChwYXJlbnROb2RlKCkgJiYgcGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKG9wdGdyb3Vw
VGFnKSkKICAgICAgICAgcmV0dXJuICIgICAgIiArIHRleHQoKTsKLSAgICAgICAgCisKICAgICBy
ZXR1cm4gdGV4dCgpOwogfQogCkluZGV4OiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCShyZXZpc2lvbiA0MDA3OCkKKysrIGh0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAog
I2RlZmluZSBIVE1MT3B0aW9uRWxlbWVudF9oCiAKICNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmgiCisjaW5jbHVkZSAiT3B0aW9uRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTMxLDcgKzMyLDcgQEAgY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiBjbGFzcyBI
VE1MRm9ybUVsZW1lbnQ7CiBjbGFzcyBNYXBwZWRBdHRyaWJ1dGU7CiAKLWNsYXNzIEhUTUxPcHRp
b25FbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgeworY2xhc3MgSFRNTE9w
dGlvbkVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCwgcHVibGljIE9wdGlv
bkVsZW1lbnQgewogICAgIGZyaWVuZCBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKICAgICBmcmll
bmQgY2xhc3MgUmVuZGVyTWVudUxpc3Q7CiAKQEAgLTU4LDcgKzU5LDcgQEAgcHVibGljOgogICAg
IFN0cmluZyB2YWx1ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJik7
CiAKLSAgICBib29sIHNlbGVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZDsgfQorICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0ZWQ7IH0KICAg
ICB2b2lkIHNldFNlbGVjdGVkKGJvb2wpOwogICAgIHZvaWQgc2V0U2VsZWN0ZWRTdGF0ZShib29s
KTsKIApAQCAtNzEsOSArNzIsOSBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgbGFiZWwoKSBjb25z
dDsKICAgICB2b2lkIHNldExhYmVsKGNvbnN0IFN0cmluZyYpOwotICAgIAotICAgIFN0cmluZyBv
cHRpb25UZXh0KCk7Ci0gICAgCisKKyAgICB2aXJ0dWFsIFN0cmluZyBvcHRpb25UZXh0KCkgY29u
c3Q7CisKICAgICB2aXJ0dWFsIGJvb2wgZGlzYWJsZWQoKSBjb25zdDsKICAgICAKICAgICB2aXJ0
dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAJKHJl
dmlzaW9uIDQwMDc4KQorKysgcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDYgKzIsNyBAQAogICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIHNlbGVjdCBl
bGVtZW50IHJlbmRlcmVyIGluIFdlYkNvcmUuCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAg
ICAgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3
dy50b3JjaG1vYmlsZS5jb20vKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
MSwxMCArNDIsMTAgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MT3B0R3Jv
dXBFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKKyNpbmNsdWRl
ICJPcHRpb25Hcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJPcHRpb25FbGVtZW50LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCkBAIC0xMDMsMTAgKzEwNCwxMCBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnVw
ZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gbGlz
dEl0ZW1zW2ldOwogICAgICAgICAgICAgU3RyaW5nIHRleHQ7CiAgICAgICAgICAgICBGb250IGl0
ZW1Gb250ID0gc3R5bGUoKS0+Zm9udCgpOwotICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1Rh
Z05hbWUob3B0aW9uVGFnKSkKLSAgICAgICAgICAgICAgICB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRN
TE9wdGlvbkVsZW1lbnQqPihlbGVtZW50KS0+b3B0aW9uVGV4dCgpOwotICAgICAgICAgICAgZWxz
ZSBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShvcHRncm91cFRhZykpIHsKLSAgICAgICAgICAgICAg
ICB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQpLT5ncm91
cExhYmVsVGV4dCgpOworICAgICAgICAgICAgaWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1l
bnQgPSBvcHRpb25FbGVtZW50Rm9yRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgICAgICAgICB0
ZXh0ID0gb3B0aW9uRWxlbWVudC0+b3B0aW9uVGV4dCgpOworICAgICAgICAgICAgZWxzZSBpZiAo
T3B0aW9uR3JvdXBFbGVtZW50KiBvcHRpb25Hcm91cEVsZW1lbnQgPSBvcHRpb25Hcm91cEVsZW1l
bnRGb3JFbGVtZW50KGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgdGV4dCA9IG9wdGlvbkdy
b3VwRWxlbWVudC0+Z3JvdXBMYWJlbFRleHQoKTsKICAgICAgICAgICAgICAgICBGb250RGVzY3Jp
cHRpb24gZCA9IGl0ZW1Gb250LmZvbnREZXNjcmlwdGlvbigpOwogICAgICAgICAgICAgICAgIGQu
c2V0V2VpZ2h0KGQuYm9sZGVyV2VpZ2h0KCkpOwogICAgICAgICAgICAgICAgIGl0ZW1Gb250ID0g
Rm9udChkLCBpdGVtRm9udC5sZXR0ZXJTcGFjaW5nKCksIGl0ZW1Gb250LndvcmRTcGFjaW5nKCkp
OwpAQCAtMjk1LDEzICsyOTYsMTQgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3Jl
Z3JvdW5kKAogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBzdGF0aWNfY2FzdDxIVE1M
U2VsZWN0RWxlbWVudCo+KG5vZGUoKSk7CiAgICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4m
IGxpc3RJdGVtcyA9IHNlbGVjdC0+bGlzdEl0ZW1zKCk7CiAgICAgSFRNTEVsZW1lbnQqIGVsZW1l
bnQgPSBsaXN0SXRlbXNbbGlzdEluZGV4XTsKKyAgICBPcHRpb25FbGVtZW50KiBvcHRpb25FbGVt
ZW50ID0gb3B0aW9uRWxlbWVudEZvckVsZW1lbnQoZWxlbWVudCk7CiAKICAgICBTdHJpbmcgaXRl
bVRleHQ7Ci0gICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSkKLSAgICAgICAg
aXRlbVRleHQgPSBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQpLT5vcHRp
b25UZXh0KCk7Ci0gICAgZWxzZSBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShvcHRncm91cFRhZykp
Ci0gICAgICAgIGl0ZW1UZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVs
ZW1lbnQpLT5ncm91cExhYmVsVGV4dCgpOwotICAgICAgIAorICAgIGlmIChvcHRpb25FbGVtZW50
KQorICAgICAgICBpdGVtVGV4dCA9IG9wdGlvbkVsZW1lbnQtPm9wdGlvblRleHQoKTsKKyAgICBl
bHNlIGlmIChPcHRpb25Hcm91cEVsZW1lbnQqIG9wdGlvbkdyb3VwRWxlbWVudCA9IG9wdGlvbkdy
b3VwRWxlbWVudEZvckVsZW1lbnQoZWxlbWVudCkpCisgICAgICAgIGl0ZW1UZXh0ID0gb3B0aW9u
R3JvdXBFbGVtZW50LT5ncm91cExhYmVsVGV4dCgpOyAgICAgIAorCiAgICAgLy8gRGV0ZXJtaW5l
IHdoZXJlIHRoZSBpdGVtIHRleHQgc2hvdWxkIGJlIHBsYWNlZAogICAgIEludFJlY3QgciA9IGl0
ZW1Cb3VuZGluZ0JveFJlY3QodHgsIHR5LCBsaXN0SW5kZXgpOwogICAgIHIubW92ZShvcHRpb25z
U3BhY2luZ0hvcml6b250YWwsIHN0eWxlKCktPmZvbnQoKS5hc2NlbnQoKSk7CkBAIC0zMTEsNyAr
MzEzLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1Gb3JlZ3JvdW5kKAogICAgICAg
ICBpdGVtU3R5bGUgPSBzdHlsZSgpOwogICAgIAogICAgIENvbG9yIHRleHRDb2xvciA9IGVsZW1l
bnQtPnJlbmRlclN0eWxlKCkgPyBlbGVtZW50LT5yZW5kZXJTdHlsZSgpLT5jb2xvcigpIDogc3R5
bGUoKS0+Y29sb3IoKTsKLSAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpICYm
IHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudCktPnNlbGVjdGVkKCkpIHsK
KyAgICBpZiAob3B0aW9uRWxlbWVudCAmJiBvcHRpb25FbGVtZW50LT5zZWxlY3RlZCgpKSB7CiAg
ICAgICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpLT5zZWxlY3Rpb24oKS0+aXNGb2N1c2VkQW5k
QWN0aXZlKCkgJiYgZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSA9PSBub2RlKCkpCiAgICAgICAg
ICAgICB0ZXh0Q29sb3IgPSB0aGVtZSgpLT5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3Vu
ZENvbG9yKCk7CiAgICAgICAgIC8vIEhvbm9yIHRoZSBmb3JlZ3JvdW5kIGNvbG9yIGZvciBkaXNh
YmxlZCBpdGVtcwpAQCAtMzQzLDkgKzM0NSwxMCBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50
SXRlbUJhY2tncm91bmQoCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHN0YXRpY19j
YXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4obm9kZSgpKTsKICAgICBjb25zdCBWZWN0b3I8SFRNTEVs
ZW1lbnQqPiYgbGlzdEl0ZW1zID0gc2VsZWN0LT5saXN0SXRlbXMoKTsKICAgICBIVE1MRWxlbWVu
dCogZWxlbWVudCA9IGxpc3RJdGVtc1tsaXN0SW5kZXhdOworICAgIE9wdGlvbkVsZW1lbnQqIG9w
dGlvbkVsZW1lbnQgPSBvcHRpb25FbGVtZW50Rm9yRWxlbWVudChlbGVtZW50KTsKIAogICAgIENv
bG9yIGJhY2tDb2xvcjsKLSAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpICYm
IHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudCktPnNlbGVjdGVkKCkpIHsK
KyAgICBpZiAob3B0aW9uRWxlbWVudCAmJiBvcHRpb25FbGVtZW50LT5zZWxlY3RlZCgpKSB7CiAg
ICAgICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpLT5zZWxlY3Rpb24oKS0+aXNGb2N1c2VkQW5k
QWN0aXZlKCkgJiYgZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSA9PSBub2RlKCkpCiAgICAgICAg
ICAgICBiYWNrQ29sb3IgPSB0aGVtZSgpLT5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCk7CiAgICAgICAgIGVsc2UKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24g
NDAwNzgpCisrKyByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDYgKzIsNyBAQAogICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIHNlbGVjdCBlbGVtZW50
IHJlbmRlcmVyIGluIFdlYkNvcmUuCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAgICAgMjAwOSBUb3Jj
aCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmls
ZS5jb20vKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOSw5ICszMCw5IEBACiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1M
T3B0R3JvdXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiT3B0aW9uR3JvdXBFbGVtZW50LmgiCiAj
aW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUmVuZGVyQlIuaCIKICNpbmNsdWRlICJS
ZW5kZXJTY3JvbGxiYXIuaCIKQEAgLTE0MSwxMSArMTQyLDEzIEBAIHZvaWQgUmVuZGVyTWVudUxp
c3Q6OnVwZGF0ZU9wdGlvbnNXaWR0aCgKICAgICBpbnQgc2l6ZSA9IGxpc3RJdGVtcy5zaXplKCk7
ICAgIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgIEhUTUxF
bGVtZW50KiBlbGVtZW50ID0gbGlzdEl0ZW1zW2ldOwotICAgICAgICBpZiAoZWxlbWVudC0+aGFz
VGFnTmFtZShvcHRpb25UYWcpKSB7Ci0gICAgICAgICAgICBTdHJpbmcgdGV4dCA9IHN0YXRpY19j
YXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudCktPm9wdGlvblRleHQoKTsKLSAgICAgICAg
ICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgbWF4T3B0aW9uV2lkdGgg
PSBtYXgobWF4T3B0aW9uV2lkdGgsIHN0eWxlKCktPmZvbnQoKS5mbG9hdFdpZHRoKHRleHQpKTsK
LSAgICAgICAgfQorICAgICAgICBPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gb3B0aW9u
RWxlbWVudEZvckVsZW1lbnQoZWxlbWVudCk7CisgICAgICAgIGlmICghb3B0aW9uRWxlbWVudCkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gb3B0aW9uRWxl
bWVudC0+b3B0aW9uVGV4dCgpOworICAgICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgbWF4T3B0aW9uV2lkdGggPSBtYXgobWF4T3B0aW9uV2lkdGgsIHN0eWxlKCktPmZvbnQo
KS5mbG9hdFdpZHRoKHRleHQpKTsKICAgICB9CiAKICAgICBpbnQgd2lkdGggPSBzdGF0aWNfY2Fz
dDxpbnQ+KGNlaWxmKG1heE9wdGlvbldpZHRoKSk7CkBAIC0xNzgsMTAgKzE4MSwxMCBAQCB2b2lk
IFJlbmRlck1lbnVMaXN0OjpzZXRUZXh0RnJvbU9wdGlvbihpCiAgICAgaW50IGkgPSBzZWxlY3Qt
Pm9wdGlvblRvTGlzdEluZGV4KG9wdGlvbkluZGV4KTsKICAgICBTdHJpbmcgdGV4dCA9ICIiOwog
ICAgIGlmIChpID49IDAgJiYgaSA8IHNpemUpIHsKLSAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1l
bnQgPSBsaXN0SXRlbXNbaV07Ci0gICAgICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlv
blRhZykpCi0gICAgICAgICAgICB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQq
PihsaXN0SXRlbXNbaV0pLT5vcHRpb25UZXh0KCk7CisgICAgICAgIGlmIChPcHRpb25FbGVtZW50
KiBvcHRpb25FbGVtZW50ID0gb3B0aW9uRWxlbWVudEZvckVsZW1lbnQobGlzdEl0ZW1zW2ldKSkK
KyAgICAgICAgICAgIHRleHQgPSBvcHRpb25FbGVtZW50LT5vcHRpb25UZXh0KCk7CiAgICAgfQor
CiAgICAgc2V0VGV4dCh0ZXh0LnN0cmlwV2hpdGVTcGFjZSgpKTsKIH0KIApAQCAtMzAyLDEwICsz
MDUsMTAgQEAgU3RyaW5nIFJlbmRlck1lbnVMaXN0OjppdGVtVGV4dCh1bnNpZ25lZAogewogICAg
IEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVu
dCo+KG5vZGUoKSk7CiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzZWxlY3QtPmxpc3RJdGVt
cygpW2xpc3RJbmRleF07Ci0gICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0Z3JvdXBUYWcp
KQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1l
bnQpLT5ncm91cExhYmVsVGV4dCgpOwotICAgIGVsc2UgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUo
b3B0aW9uVGFnKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50
Kj4oZWxlbWVudCktPm9wdGlvblRleHQoKTsKKyAgICBpZiAoT3B0aW9uR3JvdXBFbGVtZW50KiBv
cHRpb25Hcm91cEVsZW1lbnQgPSBvcHRpb25Hcm91cEVsZW1lbnRGb3JFbGVtZW50KGVsZW1lbnQp
KQorICAgICAgICByZXR1cm4gb3B0aW9uR3JvdXBFbGVtZW50LT5ncm91cExhYmVsVGV4dCgpOwor
ICAgIGVsc2UgaWYgKE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSBvcHRpb25FbGVtZW50
Rm9yRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG9wdGlvbkVsZW1lbnQtPm9wdGlv
blRleHQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKQEAgLTQyNCw3ICs0MjcsOSBAQCBi
b29sIFJlbmRlck1lbnVMaXN0OjppdGVtSXNTZWxlY3RlZCh1bnNpCiB7CiAgICAgSFRNTFNlbGVj
dEVsZW1lbnQqIHNlbGVjdCA9IHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4obm9kZSgp
KTsKICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHNlbGVjdC0+bGlzdEl0ZW1zKClbbGlzdElu
ZGV4XTsKLSAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpJiYgc3RhdGlj
X2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50KS0+c2VsZWN0ZWQoKTsKKyAgICBpZiAo
T3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IG9wdGlvbkVsZW1lbnRGb3JFbGVtZW50KGVs
ZW1lbnQpKQorICAgICAgICByZXR1cm4gb3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNldFRleHRGcm9tSXRlbSh1
bnNpZ25lZCBsaXN0SW5kZXgpCg==
</data>
<flag name="review"
          id="12860"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>