<?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>10353</bug_id>
          
          <creation_ts>2006-08-11 14:00:29 -0700</creation_ts>
          <short_desc>XMLSerializer and DOMParser should have real implementations</short_desc>
          <delta_ts>2019-02-06 09:03:35 -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>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>52256</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-08-11 14:00:29 -0700</bug_when>
    <thetext>Currently XMLSerializer and DOMParser are implemented inside of the javascript bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52257</commentid>
    <comment_count>1</comment_count>
      <attachid>9989</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-08-11 14:03:48 -0700</bug_when>
    <thetext>Created attachment 9989
Patch

This changes some of the semantics we have when the wrong number of arguments is passed in. We don&apos;t match Mozilla here anyway (which throws an exception) so I don&apos;t think this change is too bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52431</commentid>
    <comment_count>2</comment_count>
      <attachid>9989</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-08-12 16:14:57 -0700</bug_when>
    <thetext>Comment on attachment 9989
Patch

In DOMParser::parseFromString:

+        return doc;

it would be slightly more efficient if this said return doc.release().

Also, I think it would be cleaner to have am early return if the contentType is no good rather than having the whole function be inside an if statement.

DOMParser.h does not need to include PlatformString.h. Instead it should just forward declare String as it does Document. I think the parameters of parseFromString should be named since it&apos;s not clear from their type alone what they are.

Same for XMLSerializer.h -- it can also forward-declare String, but the parameter does not need a name in that case.

These are all nitpicks, it&apos;s OK to land this as-is.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502998</commentid>
    <comment_count>3</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:35 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9989</attachid>
            <date>2006-08-11 14:03:48 -0700</date>
            <delta_ts>2006-08-12 16:14:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>domparser-xmlserializer-autogen.txt</filename>
            <type>text/plain</type>
            <size>41875</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODMy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDYtMDgt
MTEgIEFuZGVycyBDYXJsc3NvbiAgPGFjYXJsc3NvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5k
YXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM1MworICAgICAgICBYTUxTZXJpYWxpemVyIGFu
ZCBET01QYXJzZXIgc2hvdWxkIGhhdmUgcmVhbCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgCisg
ICAgICAgIE1ha2UgcmVhbCBpbXBsZW1lbnRhdGlvbiBmaWxlcyBmb3IgRE9NUGFyc2VyIGFuZCBY
TUxTZXJpYWxpemVyIGFuZCB3cmFwIHRoZW0KKyAgICAgICAgdXNpbmcgb3VyIGJpbmRpbmdzIGdl
bmVyYXRpb24uCisgICAgICAgIAorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NUGFyc2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTVBhcnNlci5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MU2VyaWFs
aXplci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxTZXJpYWxpemVy
Lmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHA6CisgICAg
ICAgIChLSlM6OldpbmRvdzo6Z2V0VmFsdWVQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3Mv
anMva2pzX3dpbmRvdy5oOgorICAgICAgICAoS0pTOjpXaW5kb3c6Oik6CisgICAgICAgICogcGFn
ZS9ET01XaW5kb3cuaWRsOgorICAgICAgICAqIHhtbC9ET01QYXJzZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVBhcnNlcjo6cGFyc2VGcm9tU3RyaW5nKToKKyAgICAgICAgKiB4
bWwvRE9NUGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIHhtbC9ET01QYXJzZXIuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiB4bWwvWE1MU2VyaWFsaXplci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6WE1MU2VyaWFsaXplcjo6c2VyaWFsaXplVG9TdHJpbmcpOgorICAgICAgICAqIHhtbC9Y
TUxTZXJpYWxpemVyLmg6IEFkZGVkLgorICAgICAgICAqIHhtbC9YTUxTZXJpYWxpemVyLmlkbDog
QWRkZWQuCisKIDIwMDYtMDgtMTIgIE9saXZlciAgPG9qaDE2QHN0dWRlbnQuY2FudGVyYnVyeS5h
Yy5uej4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSB0aW0KSW5kZXg6IERlcml2ZWRTb3Vy
Y2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTU4
MzIpCisrKyBEZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3
IEBAIGFsbCA6IFwKICAgICBKU0NvdW50ZXIuaCBcCiAgICAgSlNDU1NTdHlsZURlY2xhcmF0aW9u
LmggXAogICAgIEpTRE9NSW1wbGVtZW50YXRpb24uaCBcCi0gICAgSlNET01QYXJzZXIubHV0Lmgg
XAorICAgIEpTRE9NUGFyc2VyLmggXAogICAgIEpTRE9NV2luZG93LmggXAogICAgIEpTRG9jdW1l
bnQuaCBcCiAgICAgSlNEb2N1bWVudEZyYWdtZW50LmggXApAQCAtMTQxLDcgKzE0MSw3IEBAIGFs
bCA6IFwKICAgICBKU1hQYXRoUmVzdWx0LmggXAogICAgIEpTV2hlZWxFdmVudC5oIFwKICAgICBK
U1hNTEh0dHBSZXF1ZXN0Lmx1dC5oIFwKLSAgICBKU1hNTFNlcmlhbGl6ZXIubHV0LmggXAorICAg
IEpTWE1MU2VyaWFsaXplci5oIFwKICAgICBKU1hTTFRQcm9jZXNzb3IubHV0LmggXAogICAgIFNW
R0VsZW1lbnRGYWN0b3J5LmNwcCBcCiAgICAgU1ZHTmFtZXMuY3BwIFwKSW5kZXg6IFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE1ODMyKQorKysgV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNiArMTE2LDE0IEBACiAJCTFB
QjdGQzg4MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJlbmNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUI3RkM2NzBBOEI5MkVD
MDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oICovOyB9OwogCQkxQUM2OTRDNzBB
M0IxNjc2MDAzRjUwNDkgLyogUGx1Z2luRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDNjk0QzUwQTNCMTY3NjAwM0Y1MDQ5IC8qIFBs
dWdpbkRvY3VtZW50LmNwcCAqLzsgfTsKIAkJMUFDNjk0QzgwQTNCMTY3NjAwM0Y1MDQ5IC8qIFBs
dWdpbkRvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUM2OTRDNjBBM0IxNjc2MDAzRjUwNDkgLyogUGx1Z2luRG9jdW1lbnQuaCAqLzsgfTsK
KwkJMUFDRTUzREYwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQ0U1M0REMEE4RDE4ODEwMDIy
OTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAgKi87IH07CisJCTFBQ0U1M0UwMEE4RDE4ODEwMDIyOTQ3
RCAvKiBKU0RPTVBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUFDRTUzREUwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmggKi87IH07
CisJCTFBQ0U1M0U3MEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRTUzRTEwQThEMThFNzAwMjI5
NDdEIC8qIERPTVBhcnNlci5jcHAgKi87IH07CisJCTFBQ0U1M0U4MEE4RDE4RTcwMDIyOTQ3RCAv
KiBET01QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBQ0U1M0UyMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaCAqLzsgfTsKKwkJMUFD
RTUzRUEwQThEMThFNzAwMjI5NDdEIC8qIFhNTFNlcmlhbGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRTUzRTQwQThEMThFNzAwMjI5NDdE
IC8qIFhNTFNlcmlhbGl6ZXIuY3BwICovOyB9OworCQkxQUNFNTNFQjBBOEQxOEU3MDAyMjk0N0Qg
LyogWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUFDRTUzRTUwQThEMThFNzAwMjI5NDdEIC8qIFhNTFNlcmlhbGl6ZXIuaCAqLzsg
fTsKKwkJMUFDRTUzRjYwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNFNTNGNDBBOEQx
OTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmNwcCAqLzsgfTsKKwkJMUFDRTUzRjcwQThE
MTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRTUzRjUwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1M
U2VyaWFsaXplci5oICovOyB9OwogCQkxQUUyQUExRTBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1M
QXJlYUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUFFMkFBMEEwQTFDREFCMzAwQjQyQjI1IC8qIEpTSFRNTEFyZWFFbGVtZW50LmNwcCAq
LzsgfTsKIAkJMUFFMkFBMUYwQTFDREFCNDAwQjQyQjI1IC8qIEpTSFRNTEFyZWFFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUUyQUEwQjBB
MUNEQUIzMDBCNDJCMjUgLyogSlNIVE1MQXJlYUVsZW1lbnQuaCAqLzsgfTsKIAkJMUFFMkFBMjAw
QTFDREFCNDAwQjQyQjI1IC8qIEpTSFRNTEJhc2VGb250RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUUyQUEwQzBBMUNEQUIzMDBCNDJC
MjUgLyogSlNIVE1MQmFzZUZvbnRFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTIxOCw5ICsyMjYsNyBA
QAogCQk2NTY1ODBGNDA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgwRUYwOUQxMkIy
MDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaCAqLzsgfTsKIAkJNjU2NTgxNTEwOUQxMzA0
MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MTQ4MDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1
ZUtleXdvcmRzLmggKi87IH07CiAJCTY1NjU4MUIyMDlEMTRFRTYwMDBFNjFENyAvKiBVc2VyQWdl
bnRTdHlsZVNoZWV0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU2NTgxQUUwOUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmgg
Ki87IH07Ci0JCTY1NjU4MUVEMDlEMTUwOEQwMDBFNjFENyAvKiBKU0RPTVBhcnNlci5sdXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MUQ2MDlE
MTUwOEQwMDBFNjFENyAvKiBKU0RPTVBhcnNlci5sdXQuaCAqLzsgfTsKIAkJNjU2NTgxRUUwOUQx
NTA4RDAwMEU2MUQ3IC8qIEpTWE1MSHR0cFJlcXVlc3QubHV0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFENzA5RDE1MDhEMDAwRTYxRDcgLyog
SlNYTUxIdHRwUmVxdWVzdC5sdXQuaCAqLzsgfTsKLQkJNjU2NTgxRUYwOUQxNTA4RDAwMEU2MUQ3
IC8qIEpTWE1MU2VyaWFsaXplci5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1NjU4MUQ4MDlEMTUwOEQwMDBFNjFENyAvKiBKU1hNTFNlcmlhbGl6
ZXIubHV0LmggKi87IH07CiAJCTY1NjU4MUYwMDlEMTUwOEQwMDBFNjFENyAvKiBKU1hTTFRQcm9j
ZXNzb3IubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2NTY1ODFEOTA5RDE1MDhEMDAwRTYxRDcgLyogSlNYU0xUUHJvY2Vzc29yLmx1dC5oICovOyB9
OwogCQk2NTY1ODFGMTA5RDE1MDhEMDAwRTYxRDcgLyoga2pzX2Nzcy5sdXQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NjU4MURBMDlEMTUwOEQwMDBF
NjFENyAvKiBranNfY3NzLmx1dC5oICovOyB9OwogCQk2NTY1ODFGMjA5RDE1MDhEMDAwRTYxRDcg
Lyoga2pzX2RvbS5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDY1NjU4MURCMDlEMTUwOEQwMDBFNjFENyAvKiBranNfZG9tLmx1dC5oICovOyB9OwpA
QCAtNDkwLDEyICs0OTYsOCBAQAogCQk5M0ExRUFBODBBNTYzNTA4MDA2OTYwQTAgLyogSW1hZ2VE
b2N1bWVudE1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBMUVBQTcwQTU2MzUwODAwNjk2MEEwIC8qIEltYWdlRG9jdW1lbnRNYWMuaCAqLzsgfTsK
IAkJOTNCMEZEOEEwQTc1OUJFRDAwODBBRDQ0IC8qIFN0cmluZ0ltcGxNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IwRkQ4ODBBNzU5QkVEMDA4
MEFENDQgLyogU3RyaW5nSW1wbE1hYy5tbSAqLzsgfTsKIAkJOTNCMEZEOEIwQTc1OUJFRDAwODBB
RDQ0IC8qIFN0cmluZ01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQjBGRDg5MEE3NTlCRUQwMDgwQUQ0NCAvKiBTdHJpbmdNYWMubW0gKi87IH07
Ci0JCTkzQjcwRDVCMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTVBhcnNlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0I3MEQzRjA5RUIwQzdDMDA5
RDg0NjggLyogSlNET01QYXJzZXIuY3BwICovOyB9OwotCQk5M0I3MEQ1QzA5RUIwQzdDMDA5RDg0
NjggLyogSlNET01QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQjcwRDQwMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTVBhcnNlci5oICovOyB9
OwogCQk5M0I3MEQ1RDA5RUIwQzdDMDA5RDg0NjggLyogSlNYTUxIdHRwUmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0I3MEQ0MTA5RUIw
QzdDMDA5RDg0NjggLyogSlNYTUxIdHRwUmVxdWVzdC5jcHAgKi87IH07CiAJCTkzQjcwRDVFMDlF
QjBDN0MwMDlEODQ2OCAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0I3MEQ0MjA5RUIwQzdDMDA5RDg0NjggLyogSlNY
TUxIdHRwUmVxdWVzdC5oICovOyB9OwotCQk5M0I3MEQ1RjA5RUIwQzdDMDA5RDg0NjggLyogSlNY
TUxTZXJpYWxpemVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQjcwRDQzMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hNTFNlcmlhbGl6ZXIuY3BwICov
OyB9OwotCQk5M0I3MEQ2MDA5RUIwQzdDMDA5RDg0NjggLyogSlNYTUxTZXJpYWxpemVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0I3MEQ0NDA5RUIw
QzdDMDA5RDg0NjggLyogSlNYTUxTZXJpYWxpemVyLmggKi87IH07CiAJCTkzQjcwRDYxMDlFQjBD
N0MwMDlEODQ2OCAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCNzBENDUwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTWFNM
VFByb2Nlc3Nvci5jcHAgKi87IH07CiAJCTkzQjcwRDYyMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hT
TFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQjcwRDQ2MDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hTTFRQcm9jZXNzb3IuaCAqLzsgfTsK
IAkJOTNCNzBENjMwOUVCMEM3QzAwOUQ4NDY4IC8qIGtqc19iaW5kaW5nLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjcwRDQ3MDlFQjBDN0MwMDlE
ODQ2OCAvKiBranNfYmluZGluZy5jcHAgKi87IH07CkBAIC0xNzM0LDYgKzE3MzYsMTYgQEAKIAkJ
MUFCN0ZDNjcwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhQYXRoVmFyaWFibGVSZWZlcmVuY2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFDNjk0QzUwQTNCMTY3NjAwM0Y1MDQ5IC8q
IFBsdWdpbkRvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQbHVnaW5Eb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzY5
NEM2MEEzQjE2NzYwMDNGNTA0OSAvKiBQbHVnaW5Eb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUFDRTUzREQwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVBhcnNlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBQ0U1M0RFMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RP
TVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01QYXJzZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFDRTUzRTEwQThEMThFNzAwMjI5NDdE
IC8qIERPTVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RE9NUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFDRTUzRTIwQThE
MThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBQ0U1M0Uz
MEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBET01QYXJzZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQUNFNTNFNDBB
OEQxOEU3MDAyMjk0N0QgLyogWE1MU2VyaWFsaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gWE1MU2VyaWFsaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFBQ0U1M0U1MEE4RDE4RTcwMDIyOTQ3RCAvKiBYTUxTZXJpYWxpemVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxTZXJpYWxpemVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBQ0U1M0U2MEE4RDE4RTcwMDIyOTQ3RCAvKiBYTUxTZXJp
YWxpemVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWE1MU2VyaWFsaXplci5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBQ0U1M0Y0MEE4RDE5NDcwMDIyOTQ3RCAvKiBK
U1hNTFNlcmlhbGl6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTWE1MU2VyaWFsaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBQ0U1
M0Y1MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MU2VyaWFsaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQUUyQTlGMDBBMUNEQTU3MDBCNDJCMjUgLyogSFRNTEFyZWFFbGVtZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTEFyZWFFbGVtZW50LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFMkE5RjEwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCYXNl
Rm9udEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MQmFzZUZvbnRFbGVt
ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFMkE5RjIwQTFDREE1NzAw
QjQyQjI1IC8qIEhUTUxCb2R5RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhU
TUxCb2R5RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODgyLDkg
KzE4OTQsNyBAQAogCQk2NTY1ODFBRDA5RDE0RUU2MDAwRTYxRDcgLyogQ29sb3JEYXRhLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBDb2xvckRhdGEuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxQUUwOUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0
eWxlU2hlZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyQWdlbnRT
dHlsZVNoZWV0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFBRjA5RDE0
RUU2MDAwRTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTY1ODFENjA5RDE1MDhEMDAwRTYxRDcgLyog
SlNET01QYXJzZXIubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RP
TVBhcnNlci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2NTgxRDcwOUQx
NTA4RDAwMEU2MUQ3IC8qIEpTWE1MSHR0cFJlcXVlc3QubHV0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0Lmx1dC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk2NTY1ODFEODA5RDE1MDhEMDAwRTYxRDcgLyogSlNYTUxTZXJpYWxpemVy
Lmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYTUxTZXJpYWxpemVy
Lmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODFEOTA5RDE1MDhEMDAw
RTYxRDcgLyogSlNYU0xUUHJvY2Vzc29yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNYU0xUUHJvY2Vzc29yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2NTY1ODFEQTA5RDE1MDhEMDAwRTYxRDcgLyoga2pzX2Nzcy5sdXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGtqc19jc3MubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTY1NjU4MURCMDlEMTUwOEQwMDBFNjFENyAvKiBranNfZG9tLmx1dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0ga2pzX2RvbS5sdXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTcsMTIgKzIyMDcsOCBAQAogCQk5M0IwRkQ4OTBBNzU5
QkVEMDA4MEFENDQgLyogU3RyaW5nTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFN0cmluZ01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNCNjQxRjEwNkUyOEM1QzAwNTVGNjEwIC8qIEZvcm1EYXRhTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9ybURhdGFNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk5M0I2NDFGMjA2RTI4QzVDMDA1NUY2MTAgLyogRm9ybURhdGFNYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybURhdGFNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0J
CTkzQjcwRDNGMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTVBhcnNlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5M0I3MEQ0MDA5RUIwQzdDMDA5RDg0NjggLyogSlNET01QYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUGFyc2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjcwRDQxMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hN
TEh0dHBSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1hNTEh0dHBSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCNzBE
NDIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOTNCNzBENDMwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTWE1MU2VyaWFsaXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYTUxTZXJpYWxpemVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNCNzBENDQwOUVCMEM3QzAwOUQ4
NDY4IC8qIEpTWE1MU2VyaWFsaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNYTUxTZXJpYWxpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjcw
RDQ1MDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWFNMVFByb2Nlc3Nvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQjcwRDQ2MDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hTTFRQcm9j
ZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWFNMVFByb2Nlc3Nv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0I3MEQ0NzA5RUIwQzdDMDA5RDg0
NjggLyoga2pzX2JpbmRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IGtqc19iaW5kaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1Nzcs
NyArMzU4Myw4IEBACiAJCQkJNjVERjMxRTIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRG9jdW1lbnRU
eXBlLmggKi8sCiAJCQkJNjVERjMxRTMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRE9NSW1wbGVtZW50
YXRpb24uY3BwICovLAogCQkJCTY1REYzMUU0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0RPTUltcGxl
bWVudGF0aW9uLmggKi8sCi0JCQkJNjU2NTgxRDYwOUQxNTA4RDAwMEU2MUQ3IC8qIEpTRE9NUGFy
c2VyLmx1dC5oICovLAorCQkJCTFBQ0U1M0REMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNl
ci5jcHAgKi8sCisJCQkJMUFDRTUzREUwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmgg
Ki8sCiAJCQkJMTQwM0JBMEIwOUVCMThDNzAwNzk3QzdGIC8qIEpTRE9NV2luZG93LmNwcCAqLywK
IAkJCQkxNDAzQkEwRTA5RUIxOEY4MDA3OTdDN0YgLyogSlNET01XaW5kb3cuaCAqLywKIAkJCQk2
NURGMzFFNTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmNwcCAqLywKQEAgLTM3MjEsNyAr
MzcyOCw4IEBACiAJCQkJNjVERjMxRjEwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTV2hlZWxFdmVudC5j
cHAgKi8sCiAJCQkJNjVERjMxRjIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTV2hlZWxFdmVudC5oICov
LAogCQkJCTY1NjU4MUQ3MDlEMTUwOEQwMDBFNjFENyAvKiBKU1hNTEh0dHBSZXF1ZXN0Lmx1dC5o
ICovLAotCQkJCTY1NjU4MUQ4MDlEMTUwOEQwMDBFNjFENyAvKiBKU1hNTFNlcmlhbGl6ZXIubHV0
LmggKi8sCisJCQkJMUFDRTUzRjQwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5j
cHAgKi8sCisJCQkJMUFDRTUzRjUwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5o
ICovLAogCQkJCTFBNzYyQzZCMEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmNw
cCAqLywKIAkJCQkxQTc2MkM2QzBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5o
ICovLAogCQkJCTFBNzYyQzZEMEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhwcmVzc2lvbi5j
cHAgKi8sCkBAIC00OTE4LDggKzQ5MjYsNiBAQAogCQkJCTE0REZCMzNGMEE3REY3NjMwMDE4Rjc2
OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJOTNGOEIzMDYwQTMwMEZFQTAwRjYxQUI4IC8q
IENvZGVHZW5lcmF0b3JKUy5wbSAqLywKIAkJCQkxQTlFRjQ1NjBBMUI5NTdEMDAzMzJCNjMgLyog
SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwICovLAotCQkJCTkzQjcwRDNGMDlF
QjBDN0MwMDlEODQ2OCAvKiBKU0RPTVBhcnNlci5jcHAgKi8sCi0JCQkJOTNCNzBENDAwOUVCMEM3
QzAwOUQ4NDY4IC8qIEpTRE9NUGFyc2VyLmggKi8sCiAJCQkJOTM4RTY1RjYwOUYwOTg1RDAwOEE0
OEVDIC8qIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi8sCiAJCQkJOTM4RTY1RjAw
OUYwOTg0MDAwOEE0OEVDIC8qIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oICovLAogCQkJ
CUE4RDA2NUFEMEEyNDQ2Q0QwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAg
Ki8sCkBAIC00OTMwLDggKzQ5MzYsNiBAQAogCQkJCTQ0OEFEMjdBMEE0ODEzNzkwMDIzRDE3OSAv
KiBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJOTNCNzBENDEwOUVC
MEM3QzAwOUQ4NDY4IC8qIEpTWE1MSHR0cFJlcXVlc3QuY3BwICovLAogCQkJCTkzQjcwRDQyMDlF
QjBDN0MwMDlEODQ2OCAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggKi8sCi0JCQkJOTNCNzBENDMwOUVC
MEM3QzAwOUQ4NDY4IC8qIEpTWE1MU2VyaWFsaXplci5jcHAgKi8sCi0JCQkJOTNCNzBENDQwOUVC
MEM3QzAwOUQ4NDY4IC8qIEpTWE1MU2VyaWFsaXplci5oICovLAogCQkJCTkzQjcwRDQ1MDlFQjBD
N0MwMDlEODQ2OCAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwICovLAogCQkJCTkzQjcwRDQ2MDlFQjBD
N0MwMDlEODQ2OCAvKiBKU1hTTFRQcm9jZXNzb3IuaCAqLywKIAkJCQk5M0I3MEQ0NzA5RUIwQzdD
MDA5RDg0NjggLyoga2pzX2JpbmRpbmcuY3BwICovLApAQCAtNTE3OCw2ICs1MTgyLDEyIEBACiAJ
CUUxRjA0MjQzMDk4MzkzODkwMDY2OTRFQSAvKiB4bWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFBQ0U1M0UxMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01Q
YXJzZXIuY3BwICovLAorCQkJCTFBQ0U1M0UyMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIu
aCAqLywKKwkJCQkxQUNFNTNFMzBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmlkbCAqLywK
KwkJCQkxQUNFNTNFNDBBOEQxOEU3MDAyMjk0N0QgLyogWE1MU2VyaWFsaXplci5jcHAgKi8sCisJ
CQkJMUFDRTUzRTUwQThEMThFNzAwMjI5NDdEIC8qIFhNTFNlcmlhbGl6ZXIuaCAqLywKKwkJCQkx
QUNFNTNFNjBBOEQxOEU3MDAyMjk0N0QgLyogWE1MU2VyaWFsaXplci5pZGwgKi8sCiAJCQkJMUFC
N0ZDNDcwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoRXZhbHVhdG9yLmNwcCAqLywKIAkJCQkxQUI3
RkM0ODBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0b3IuaCAqLywKIAkJCQkxQUI3RkM0
OTBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0b3IuaWRsICovLApAQCAtNjA2NSw5ICs2
MDc1LDcgQEAKIAkJCQk2NTY1ODBGNDA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVydHlOYW1l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxNTEwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1Zh
bHVlS2V5d29yZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MUIyMDlEMTRFRTYwMDBFNjFE
NyAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNjU2NTgxRUQw
OUQxNTA4RDAwMEU2MUQ3IC8qIEpTRE9NUGFyc2VyLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NjU2NTgxRUUwOUQxNTA4RDAwMEU2MUQ3IC8qIEpTWE1MSHR0cFJlcXVlc3QubHV0LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk2NTY1ODFFRjA5RDE1MDhEMDAwRTYxRDcgLyogSlNYTUxTZXJpYWxpemVy
Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxRjAwOUQxNTA4RDAwMEU2MUQ3IC8qIEpT
WFNMVFByb2Nlc3Nvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MUYxMDlEMTUwOEQw
MDBFNjFENyAvKiBranNfY3NzLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxRjIwOUQx
NTA4RDAwMEU2MUQ3IC8qIGtqc19kb20ubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTYxMTYsOSAr
NjEyNCw3IEBACiAJCQkJNjU5RERDODMwOUUxOThCQTAwMUJGM0M2IC8qIEpTRG9jdW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMDcwNURBMDlFMEM5QkYwMEIxN0ZFNCAvKiBKU0NvdW50ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMDcwNUVCMDlFMEM5RjYwMEIxN0ZFNCAvKiBKU0NTU1By
aW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5M0I3MEQ1QzA5RUIwQzdDMDA5RDg0
NjggLyogSlNET01QYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjcwRDVFMDlFQjBDN0Mw
MDlEODQ2OCAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQk5M0I3MEQ2
MDA5RUIwQzdDMDA5RDg0NjggLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0I3MEQ2MjA5RUIwQzdDMDA5RDg0NjggLyogSlNYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0I3MEQ2NDA5RUIwQzdDMDA5RDg0NjggLyoga2pzX2JpbmRpbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzQjcwRDY2MDlFQjBDN0MwMDlEODQ2OCAvKiBranNfY3NzLmggaW4g
SGVhZGVycyAqLywKQEAgLTYzOTUsNiArNjQwMSwxMCBAQAogCQkJCTFBQjdGQzg0MEE4QjkyRUMw
MEQ5RDM3QiAvKiBYUGF0aFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjdGQzg2MEE4Qjky
RUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3RkM4ODBB
OEI5MkVDMDBEOUQzN0IgLyogWFBhdGhWYXJpYWJsZVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMUFDRTUzRTAwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkxQUNFNTNFODBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxQUNFNTNFQjBBOEQxOEU3MDAyMjk0N0QgLyogWE1MU2VyaWFsaXplci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUFDRTUzRjcwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2Vy
aWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02OTg5LDkgKzY5OTksNyBAQAogCQkJCTkzMDcw
NUQ4MDlFMEM5QjcwMEIxN0ZFNCAvKiBKU0NvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTMwNzA1RTkwOUUwQzlGMDAwQjE3RkU0IC8qIEpTQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNFQjM1NUYwOUUzN0ZENjAwRjQzNzk5IC8qIE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNCNzBENUIwOUVCMEM3QzAw
OUQ4NDY4IC8qIEpTRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjcwRDVEMDlF
QjBDN0MwMDlEODQ2OCAvKiBKU1hNTEh0dHBSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTkzQjcwRDVGMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hNTFNlcmlhbGl6ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTNCNzBENjEwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTWFNMVFByb2Nlc3Nvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2MzA5RUIwQzdDMDA5RDg0NjggLyoga2pzX2Jp
bmRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENjUwOUVCMEM3QzAwOUQ4NDY4IC8q
IGtqc19jc3MuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC03MjY3LDYgKzcyNzUsMTAgQEAKIAkJCQkx
QUI3RkM4MzBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhVdGlsLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBQjdGQzg1MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBQjdGQzg3MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aFZhcmlhYmxlUmVmZXJl
bmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQ0U1M0RGMEE4RDE4ODEwMDIyOTQ3RCAvKiBK
U0RPTVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUNFNTNFNzBBOEQxOEU3MDAyMjk0
N0QgLyogRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQ0U1M0VBMEE4RDE4RTcw
MDIyOTQ3RCAvKiBYTUxTZXJpYWxpemVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQ0U1M0Y2
MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Cklu
ZGV4OiBiaW5kaW5ncy9qcy9KU0RPTVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3Mv
anMvSlNET01QYXJzZXIuY3BwCShyZXZpc2lvbiAxNTgzMikKKysrIGJpbmRpbmdzL2pzL0pTRE9N
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxMDggKzAsMCBAQAotLy8gLSotIGMtYmFz
aWMtb2Zmc2V0OiAyIC0qLQotLyoKLSAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIGxp
YnJhcmllcwotICogIENvcHlyaWdodCAoQykgMjAwNSBBbmRlcnMgQ2FybHNzb24gKGFuZGVyc2Nh
QG1hYy5jb20pCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMz
MCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkpTRE9NUGFyc2VyLmgiCi0jaW5jbHVkZSAiSlNET01QYXJzZXIubHV0Lmgi
Ci0KLSNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlv
bi5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LyBKU0RPTVBhcnNlciBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0KLS8qIFNvdXJj
ZSBmb3IgRE9NUGFyc2VyUHJvdG9UYWJsZS4KLUBiZWdpbiBET01QYXJzZXJQcm90b1RhYmxlIDEK
LSAgcGFyc2VGcm9tU3RyaW5nIEpTRE9NUGFyc2VyOjpQYXJzZUZyb21TdHJpbmcgRG9udERlbGV0
ZXxGdW5jdGlvbiAyCi1AZW5kCi0qLwotbmFtZXNwYWNlIEtKUyB7Ci0KLUtKU19ERUZJTkVfUFJP
VE9UWVBFKERPTVBhcnNlclByb3RvKQotS0pTX0lNUExFTUVOVF9QUk9UT0ZVTkMoRE9NUGFyc2Vy
UHJvdG9GdW5jKQotS0pTX0lNUExFTUVOVF9QUk9UT1RZUEUoIkRPTVBhcnNlciIsRE9NUGFyc2Vy
UHJvdG8sRE9NUGFyc2VyUHJvdG9GdW5jKQotCi1ET01QYXJzZXJDb25zdHJ1Y3RvckltcDo6RE9N
UGFyc2VyQ29uc3RydWN0b3JJbXAoRXhlY1N0YXRlICpleGVjLCBEb2N1bWVudCAqZCkKLSAgICA6
IGRvYyhkKQotewotICAgIHNldFByb3RvdHlwZShleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+
YnVpbHRpbk9iamVjdFByb3RvdHlwZSgpKTsKLSAgICBwdXREaXJlY3QocHJvdG90eXBlUHJvcGVy
dHlOYW1lLCBET01QYXJzZXJQcm90bzo6c2VsZihleGVjKSwgTm9uZSk7Ci19Ci0KLWJvb2wgRE9N
UGFyc2VyQ29uc3RydWN0b3JJbXA6OmltcGxlbWVudHNDb25zdHJ1Y3QoKSBjb25zdAotewotICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotSlNPYmplY3QgKkRPTVBhcnNlckNvbnN0cnVjdG9ySW1wOjpjb25z
dHJ1Y3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBMaXN0ICYpCi17Ci0gIHJldHVybiBuZXcgSlNE
T01QYXJzZXIoZXhlYywgZG9jLmdldCgpKTsKLX0KLQotY29uc3QgQ2xhc3NJbmZvIEpTRE9NUGFy
c2VyOjppbmZvID0geyAiRE9NUGFyc2VyIiwgMCwgJkRPTVBhcnNlclRhYmxlLCAwIH07Ci0KLS8q
IFNvdXJjZSBmb3IgRE9NUGFyc2VyVGFibGUKLUBiZWdpbiBET01QYXJzZXJUYWJsZSAwCi1AZW5k
Ci0qLwotCi1KU0RPTVBhcnNlcjo6SlNET01QYXJzZXIoRXhlY1N0YXRlICpleGVjLCBEb2N1bWVu
dCAqZCkKLSAgOiBkb2MoZCkKLXsKLSAgc2V0UHJvdG90eXBlKERPTVBhcnNlclByb3RvOjpzZWxm
KGV4ZWMpKTsKLX0KLQotCi1KU1ZhbHVlICpET01QYXJzZXJQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0
aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3Mp
Ci17Ci0gIGlmICghdGhpc09iai0+aW5oZXJpdHMoJkpTRE9NUGFyc2VyOjppbmZvKSkKLSAgICBy
ZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotICAKLSAgSlNET01QYXJzZXIgKnBh
cnNlciA9IHN0YXRpY19jYXN0PEpTRE9NUGFyc2VyICo+KHRoaXNPYmopOwotCi0gIHN3aXRjaCAo
aWQpIHsKLSAgY2FzZSBKU0RPTVBhcnNlcjo6UGFyc2VGcm9tU3RyaW5nOgotICAgIHsKLSAgICAg
ICAgaWYgKGFyZ3Muc2l6ZSgpICE9IDIpCi0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLQotICAgICAgRGVwcmVjYXRlZFN0cmluZyBzdHIgPSBhcmdzWzBdLT50b1N0cmluZyhleGVj
KTsKLSAgICAgIERlcHJlY2F0ZWRTdHJpbmcgY29udGVudFR5cGUgPSBEZXByZWNhdGVkU3RyaW5n
KGFyZ3NbMV0tPnRvU3RyaW5nKGV4ZWMpKS5zdHJpcFdoaXRlU3BhY2UoKTsKLQotICAgICAgaWYg
KERPTUltcGxlbWVudGF0aW9uOjppc1hNTE1JTUVUeXBlKGNvbnRlbnRUeXBlKSkgewotICAgICAg
ICBSZWZQdHI8RG9jdW1lbnQ+IGRvYyA9IHBhcnNlci0+ZG9jLT5pbXBsZW1lbnRhdGlvbigpLT5j
cmVhdGVEb2N1bWVudCgpOwotCi0gICAgICAgIGRvYy0+b3BlbigpOwotICAgICAgICBkb2MtPndy
aXRlKHN0cik7Ci0gICAgICAgIGRvYy0+ZmluaXNoUGFyc2luZygpOwotICAgICAgICBkb2MtPmNs
b3NlKCk7Ci0KLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZG9jLmdldCgpKTsKLSAgICAgIH0K
LSAgICB9Ci0gIH0KLQotICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotfSAvLyBlbmQgbmFt
ZXNwYWNlCi0KLQpJbmRleDogYmluZGluZ3MvanMvSlNET01QYXJzZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBiaW5kaW5ncy9qcy9KU0RPTVBhcnNlci5oCShyZXZpc2lvbiAxNTgzMikKKysrIGJpbmRpbmdz
L2pzL0pTRE9NUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTMgKzAsMCBAQAotLy8gLSot
IGMtYmFzaWMtb2Zmc2V0OiAyIC0qLQotLyoKLSAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg
S0RFIGxpYnJhcmllcwotICogIENvcHlyaWdodCAoQykgMjAwNSBBbmRlcnMgQ2FybHNzb24gKGFu
ZGVyc2NhQG1hYy5jb20pCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJ
bmMuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9z
dG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCi0gKi8KLQotI2lmbmRlZiBET01QQVJTRVJfSAotI2Rl
ZmluZSBET01QQVJTRVJfSF8KLQotI2luY2x1ZGUgImtqc19kb20uaCIKLQotbmFtZXNwYWNlIEtK
UyB7Ci0KLSAgY2xhc3MgRE9NUGFyc2VyQ29uc3RydWN0b3JJbXAgOiBwdWJsaWMgRE9NT2JqZWN0
IHsKLSAgcHVibGljOgotICAgIERPTVBhcnNlckNvbnN0cnVjdG9ySW1wKEV4ZWNTdGF0ZSosIFdl
YkNvcmU6OkRvY3VtZW50Kik7Ci0gICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDb25zdHJ1Y3Qo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIEpTT2JqZWN0KiBjb25zdHJ1Y3QoRXhlY1N0YXRlKiwgY29u
c3QgTGlzdCAmYXJncyk7Ci0gIHByaXZhdGU6Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50
PiBkb2M7Ci0gIH07Ci0KLSAgY2xhc3MgSlNET01QYXJzZXIgOiBwdWJsaWMgRE9NT2JqZWN0IHsK
LSAgcHVibGljOgotICAgIEpTRE9NUGFyc2VyKEV4ZWNTdGF0ZSosIFdlYkNvcmU6OkRvY3VtZW50
Kik7Ci0gICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0
IHsgcmV0dXJuICZpbmZvOyB9Ci0gICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwotICAg
IGVudW0geyBQYXJzZUZyb21TdHJpbmcgfTsKLQotICBwcml2YXRlOgotICAgIFJlZlB0cjxXZWJD
b3JlOjpEb2N1bWVudD4gZG9jOwotICAgIGZyaWVuZCBjbGFzcyBET01QYXJzZXJQcm90b0Z1bmM7
Ci0gIH07Ci0KLX0gLy8gbmFtZXNwYWNlCi0KLSNlbmRpZgpJbmRleDogYmluZGluZ3MvanMvSlNY
TUxTZXJpYWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9KU1hNTFNlcmlhbGl6
ZXIuY3BwCShyZXZpc2lvbiAxNTgzMikKKysrIGJpbmRpbmdzL2pzL0pTWE1MU2VyaWFsaXplci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsOTEgKzAsMCBAQAotLy8gLSotIGMtYmFzaWMtb2Zmc2V0
OiAyIC0qLQotLyoKLSAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIGxpYnJhcmllcwot
ICogIENvcHlyaWdodCAoQykgMjAwMyBBcHBsZSBDb21wdXRlciwgSW5jLgotICoKLSAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlv
biwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEz
MDcgIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1hNTFNlcmlh
bGl6ZXIuaCIKLSNpbmNsdWRlICJKU1hNTFNlcmlhbGl6ZXIubHV0LmgiCi0KLSNpbmNsdWRlICJE
ZXByZWNhdGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRl
ICJranNfZG9tLmgiCi0jaW5jbHVkZSAibWFya3VwLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBLSlM7
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLyogU291cmNlIGZvciBKU1hNTFNlcmlhbGl6ZXJQ
cm90b1RhYmxlLgotQGJlZ2luIEpTWE1MU2VyaWFsaXplclByb3RvVGFibGUgMQotICBzZXJpYWxp
emVUb1N0cmluZyBXZWJDb3JlOjpKU1hNTFNlcmlhbGl6ZXI6OlNlcmlhbGl6ZVRvU3RyaW5nIERv
bnREZWxldGV8RnVuY3Rpb24gMQotQGVuZAotKi8KLQotS0pTX0RFRklORV9QUk9UT1RZUEUoSlNY
TUxTZXJpYWxpemVyUHJvdG8pCi1LSlNfSU1QTEVNRU5UX1BST1RPRlVOQyhKU1hNTFNlcmlhbGl6
ZXJQcm90b0Z1bmMpCi1LSlNfSU1QTEVNRU5UX1BST1RPVFlQRSgiWE1MU2VyaWFsaXplciIsIEpT
WE1MU2VyaWFsaXplclByb3RvLCBKU1hNTFNlcmlhbGl6ZXJQcm90b0Z1bmMpCi0KLUpTWE1MU2Vy
aWFsaXplckNvbnN0cnVjdG9ySW1wOjpKU1hNTFNlcmlhbGl6ZXJDb25zdHJ1Y3RvckltcChFeGVj
U3RhdGUqIGV4ZWMpCi17Ci0gICAgc2V0UHJvdG90eXBlKGV4ZWMtPmxleGljYWxJbnRlcnByZXRl
cigpLT5idWlsdGluT2JqZWN0UHJvdG90eXBlKCkpOwotICAgIHB1dERpcmVjdChwcm90b3R5cGVQ
cm9wZXJ0eU5hbWUsIEpTWE1MU2VyaWFsaXplclByb3RvOjpzZWxmKGV4ZWMpLCBOb25lKTsKLX0K
LQotYm9vbCBKU1hNTFNlcmlhbGl6ZXJDb25zdHJ1Y3RvckltcDo6aW1wbGVtZW50c0NvbnN0cnVj
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLUpTT2JqZWN0KiBKU1hNTFNlcmlh
bGl6ZXJDb25zdHJ1Y3RvckltcDo6Y29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlz
dCYpCi17Ci0gICAgcmV0dXJuIG5ldyBKU1hNTFNlcmlhbGl6ZXIoZXhlYyk7Ci19Ci0KLWNvbnN0
IENsYXNzSW5mbyBKU1hNTFNlcmlhbGl6ZXI6OmluZm8gPSB7ICJYTUxTZXJpYWxpemVyIiwgMCwg
JkpTWE1MU2VyaWFsaXplclRhYmxlLCAwIH07Ci0KLS8qIFNvdXJjZSBmb3IgSlNYTUxTZXJpYWxp
emVyVGFibGUuCi1AYmVnaW4gSlNYTUxTZXJpYWxpemVyVGFibGUgMAotQGVuZAotKi8KLQotSlNY
TUxTZXJpYWxpemVyOjpKU1hNTFNlcmlhbGl6ZXIoRXhlY1N0YXRlKiBleGVjKQotewotICAgIHNl
dFByb3RvdHlwZShKU1hNTFNlcmlhbGl6ZXJQcm90bzo6c2VsZihleGVjKSk7Ci19Ci0KLUpTVmFs
dWUqIEpTWE1MU2VyaWFsaXplclByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgTGlzdCYgYXJncykKLXsKLSAgICBpZiAoIXRo
aXNPYmotPmluaGVyaXRzKCZKU1hNTFNlcmlhbGl6ZXI6OmluZm8pKQotICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotCi0gICAgaWYgKGlkID09IEpTWE1MU2VyaWFs
aXplcjo6U2VyaWFsaXplVG9TdHJpbmcpIHsKLSAgICAgICAgaWYgKGFyZ3Muc2l6ZSgpICE9IDEp
Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgICAgICBpZiAoIWFyZ3Nb
MF0tPnRvT2JqZWN0KGV4ZWMpLT5pbmhlcml0cygmRE9NTm9kZTo6aW5mbykpCi0gICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgICAgICBOb2RlKiBub2RlID0gc3RhdGljX2Nh
c3Q8Tm9kZSo+KHN0YXRpY19jYXN0PERPTU5vZGUqPihhcmdzWzBdLT50b09iamVjdChleGVjKSkt
PmltcGwoKSk7Ci0gICAgICAgIHJldHVybiBqc1N0cmluZ09yTnVsbChjcmVhdGVNYXJrdXAobm9k
ZSkpOwotICAgIH0KLQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi19IC8vIGVuZCBu
YW1lc3BhY2UKSW5kZXg6IGJpbmRpbmdzL2pzL0pTWE1MU2VyaWFsaXplci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGJpbmRpbmdzL2pzL0pTWE1MU2VyaWFsaXplci5oCShyZXZpc2lvbiAxNTgzMikKKysrIGJp
bmRpbmdzL2pzL0pTWE1MU2VyaWFsaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUwICswLDAg
QEAKLS8vIC0qLSBjLWJhc2ljLW9mZnNldDogMiAtKi0KLS8qCi0gKiAgVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBsaWJyYXJpZXMKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUg
MzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKLSAqLwotCi0jaWZuZGVmIEpTWE1MU2Vy
aWFsaXplcl9ICi0jZGVmaW5lIEpTWE1MU2VyaWFsaXplcl9ICi0KLSNpbmNsdWRlICJranNfYmlu
ZGluZy5oIgotCi1uYW1lc3BhY2UgS0pTIHsKLSAgICBjbGFzcyBKU0V2ZW50TGlzdGVuZXI7Ci19
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICBjbGFzcyBKU1hNTFNlcmlhbGl6ZXJDb25zdHJ1
Y3RvckltcCA6IHB1YmxpYyBLSlM6OkRPTU9iamVjdCB7Ci0gIHB1YmxpYzoKLSAgICBKU1hNTFNl
cmlhbGl6ZXJDb25zdHJ1Y3RvckltcChLSlM6OkV4ZWNTdGF0ZSopOwotICAgIHZpcnR1YWwgYm9v
bCBpbXBsZW1lbnRzQ29uc3RydWN0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBLSlM6OkpTT2JqZWN0
KiBjb25zdHJ1Y3QoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6Okxpc3QmIGFyZ3MpOwotICB9
OwotCi0gIGNsYXNzIEpTWE1MU2VyaWFsaXplciA6IHB1YmxpYyBLSlM6OkRPTU9iamVjdCB7Ci0g
IHB1YmxpYzoKLSAgICBKU1hNTFNlcmlhbGl6ZXIoS0pTOjpFeGVjU3RhdGUqKTsKLSAgICB2aXJ0
dWFsIGJvb2wgdG9Cb29sZWFuKEtKUzo6RXhlY1N0YXRlKikgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIHZpcnR1YWwgY29uc3QgS0pTOjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsg
cmV0dXJuICZpbmZvOyB9Ci0gICAgc3RhdGljIGNvbnN0IEtKUzo6Q2xhc3NJbmZvIGluZm87Ci0g
ICAgZW51bSB7IFNlcmlhbGl6ZVRvU3RyaW5nIH07Ci0gIH07Ci0KLX0gLy8gbmFtZXNwYWNlCi0K
LSNlbmRpZgpJbmRleDogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
YmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAJKHJldmlzaW9uIDE1ODMyKQorKysgYmluZGluZ3Mv
anMva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNs
dWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0NTU1J1bGUuaCIKICNpbmNsdWRlICJK
U0NTU1ZhbHVlLmgiCi0jaW5jbHVkZSAiSlNET01QYXJzZXIuaCIKICNpbmNsdWRlICJKU0RPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJKU0hUTUxPcHRpb25FbGVt
ZW50Q29uc3RydWN0b3IuaCIKQEAgLTQyLDcgKzQxLDYgQEAKICNpbmNsdWRlICJKU05vZGVGaWx0
ZXIuaCIKICNpbmNsdWRlICJKU1JhbmdlLmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5o
IgotI2luY2x1ZGUgIkpTWE1MU2VyaWFsaXplci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTI1NSw4ICsyNTMsNiBA
QCBjb25zdCBDbGFzc0luZm8gV2luZG93OjppbmZvID0geyAiV2luZG93CiAgIEltYWdlICAgICAg
ICAgV2luZG93OjpJbWFnZSAgICAgICAgICAgRG9udERlbGV0ZQogICBPcHRpb24gICAgICAgIFdp
bmRvdzo6T3B0aW9uICAgICAgICAgIERvbnREZWxldGUKICAgWE1MSHR0cFJlcXVlc3QgICAgICAg
IFdpbmRvdzo6WE1MSHR0cFJlcXVlc3QgIERvbnREZWxldGUKLSAgWE1MU2VyaWFsaXplciBXaW5k
b3c6OlhNTFNlcmlhbGl6ZXIgICBEb250RGVsZXRlCi0gIERPTVBhcnNlciAgICAgV2luZG93OjpE
T01QYXJzZXJfICAgICAgRG9udERlbGV0ZQogICBYU0xUUHJvY2Vzc29yIFdpbmRvdzo6WFNMVFBy
b2Nlc3Nvcl8gIERvbnREZWxldGUKICAgYWxlcnQgICAgICAgICBXaW5kb3c6OkFsZXJ0ICAgICAg
ICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDEKICAgY29uZmlybSAgICAgICBXaW5kb3c6OkNvbmZp
cm0gICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDEKQEAgLTc5MiwxMCArNzg4LDYgQEAgSlNW
YWx1ZSAqV2luZG93OjpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdAogICAgICAgcmV0dXJuIG5ldyBK
U0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IoZXhlYywgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7
CiAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdDoKICAgICAgIHJldHVybiBuZXcgSlNYTUxIdHRwUmVx
dWVzdENvbnN0cnVjdG9ySW1wKGV4ZWMsIG1fZnJhbWUtPmRvY3VtZW50KCkpOwotICAgIGNhc2Ug
WE1MU2VyaWFsaXplcjoKLSAgICAgIHJldHVybiBuZXcgSlNYTUxTZXJpYWxpemVyQ29uc3RydWN0
b3JJbXAoZXhlYyk7Ci0gICAgY2FzZSBET01QYXJzZXJfOgotICAgICAgcmV0dXJuIG5ldyBET01Q
YXJzZXJDb25zdHJ1Y3RvckltcChleGVjLCBtX2ZyYW1lLT5kb2N1bWVudCgpKTsKICNpZmRlZiBL
SFRNTF9YU0xUCiAgICAgY2FzZSBYU0xUUHJvY2Vzc29yXzoKICAgICAgIHJldHVybiBuZXcgWFNM
VFByb2Nlc3NvckNvbnN0cnVjdG9ySW1wKGV4ZWMpOwpJbmRleDogYmluZGluZ3MvanMva2pzX3dp
bmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL2pzL2tqc193aW5kb3cuaAkocmV2aXNpb24g
MTU4MzIpCisrKyBiaW5kaW5ncy9qcy9ranNfd2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2
NCw3ICsxNjQsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgICAgSW1hZ2UsIE9wdGlvbiwg
QWxlcnQsIENvbmZpcm0sIFByb21wdCwgT3BlbiwgUHJpbnQsIFNldFRpbWVvdXQsIENsZWFyVGlt
ZW91dCwKICAgICAgICAgICAgRm9jdXMsIEdldFNlbGVjdGlvbiwgQmx1ciwgQ2xvc2UsIFNldElu
dGVydmFsLCBDbGVhckludGVydmFsLCBDYXB0dXJlRXZlbnRzLCAKICAgICAgICAgICAgUmVsZWFz
ZUV2ZW50cywgQWRkRXZlbnRMaXN0ZW5lciwgUmVtb3ZlRXZlbnRMaXN0ZW5lciwKLSAgICAgICAg
ICAgWE1MSHR0cFJlcXVlc3QsIFhNTFNlcmlhbGl6ZXIsIERPTVBhcnNlcl8sIFhTTFRQcm9jZXNz
b3JfLAorICAgICAgICAgICBYTUxIdHRwUmVxdWVzdCwgWFNMVFByb2Nlc3Nvcl8sCiAgICAgICAg
ICAgIE9uYWJvcnQsIE9uYmx1ciwgT25jaGFuZ2UsIE9uY2xpY2ssIE9uZGJsY2xpY2ssIE9uZHJh
Z2Ryb3AsIE9uZXJyb3IsIAogICAgICAgICAgICBPbmZvY3VzLCBPbmtleWRvd24sIE9ua2V5cHJl
c3MsIE9ua2V5dXAsIE9ubG9hZCwgT25tb3VzZWRvd24sIE9ubW91c2Vtb3ZlLAogICAgICAgICAg
ICBPbm1vdXNlb3V0LCBPbm1vdXNlb3ZlciwgT25tb3VzZXVwLCBPbldpbmRvd01vdXNlV2hlZWws
IE9ubW92ZSwgT25yZXNldCwgT25yZXNpemUsIE9uc2Nyb2xsLCBPbnNlYXJjaCwKSW5kZXg6IHBh
Z2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlz
aW9uIDE1ODMyKQorKysgcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2
ICs0OCw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgQ1NTVmFsdWVDb25z
dHJ1Y3RvciBDU1NWYWx1ZTsKICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3Ig
RG9jdW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBEb2N1bWVudEZyYWdtZW50Q29uc3RydWN0b3Ig
RG9jdW1lbnRGcmFnbWVudDsKKyAgICAgICAgYXR0cmlidXRlIERPTVBhcnNlckNvbnN0cnVjdG9y
IERPTVBhcnNlcjsKICAgICAgICAgYXR0cmlidXRlIEVsZW1lbnRDb25zdHJ1Y3RvciBFbGVtZW50
OwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRDb25zdHJ1Y3RvciBFdmVudDsKICAgICAgICAgYXR0
cmlidXRlIEhUTUxFbGVtZW50Q29uc3RydWN0b3IgSFRNTEVsZW1lbnQ7CkBAIC02MSw2ICs2Miw4
IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAvLyBXZSBqdXN0IHVzZSBEb2N1bWVudCBmb3Ig
dGhpcy4KICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgWE1MRG9jdW1lbnQ7
CiAgICAgICAgIAorICAgICAgICBhdHRyaWJ1dGUgWE1MU2VyaWFsaXplckNvbnN0cnVjdG9yIFhN
TFNlcmlhbGl6ZXI7CisgICAgICAgIAogI2lmZGVmIFhQQVRIX1NVUFBPUlQKICAgICAgICAgYXR0
cmlidXRlIFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3IgWFBhdGhFdmFsdWF0b3I7CiAgICAgICAg
IGF0dHJpYnV0ZSBYUGF0aFJlc3VsdENvbnN0cnVjdG9yIFhQYXRoUmVzdWx0OwpJbmRleDogeG1s
L0RPTVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geG1sL0RPTVBhcnNlci5jcHAJKHJldmlzaW9u
IDApCisrKyB4bWwvRE9NUGFyc2VyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAor
LyoKKyAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIGxpYnJhcmllcworICogIENvcHly
aWdodCAoQykgMjAwMywgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcg
IFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01QYXJzZXIuaCIK
KworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NUGFy
c2VyOjpwYXJzZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHIsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUpCit7CisgICAgaWYgKERPTUltcGxlbWVudGF0aW9uOjppc1hNTE1JTUVUeXBlKGNv
bnRlbnRUeXBlKSkgeworICAgICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvYyA9IERPTUltcGxlbWVu
dGF0aW9uOjppbnN0YW5jZSgpLT5jcmVhdGVEb2N1bWVudCgpOworICAgICAgICAKKyAgICAgICAg
ZG9jLT5vcGVuKCk7CisgICAgICAgIGRvYy0+d3JpdGUoc3RyKTsKKyAgICAgICAgZG9jLT5maW5p
c2hQYXJzaW5nKCk7CisgICAgICAgIGRvYy0+Y2xvc2UoKTsKKyAgICAgICAgCisgICAgICAgIHJl
dHVybiBkb2M7CisgICAgfQorICAgIAorICAgIHJldHVybiAwOworfQorCit9CkluZGV4OiB4bWwv
RE9NUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0geG1sL0RPTVBhcnNlci5oCShyZXZpc2lvbiAwKQor
KysgeG1sL0RPTVBhcnNlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACisvKgorICog
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCisgKiAgQ29weXJpZ2h0IChD
KSAyMDAzLCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1
OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisg
Ki8KKworI2lmbmRlZiBET01QYXJzZXJfSAorI2RlZmluZSBET01QYXJzZXJfSAorCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTaGFyZWQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIGNsYXNzIERvY3VtZW50OworICAgIAorICAgIGNsYXNzIERPTVBhcnNlciA6
IHB1YmxpYyBTaGFyZWQ8RE9NUGFyc2VyPiB7CisgICAgcHVibGljOgorICAgICAgICBQYXNzUmVm
UHRyPERvY3VtZW50PiBwYXJzZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
Jik7CisgICAgfTsKK30KKworI2VuZGlmIC8vIFhNTFNlcmlhbGl6ZXIuaApJbmRleDogeG1sL0RP
TVBhcnNlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0geG1sL0RPTVBhcnNlci5pZGwJKHJldmlzaW9uIDAp
CisrKyB4bWwvRE9NUGFyc2VyLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwK
KyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKK21vZHVsZSB4cGF0aCB7Cisg
ICAgaW50ZXJmYWNlIFtHZW5lcmF0ZUNvbnN0cnVjdG9yLCBDYW5CZUNvbnN0cnVjdGVkXSBET01Q
YXJzZXIgeworICAgICAgICBEb2N1bWVudCBwYXJzZUZyb21TdHJpbmcoaW4gRE9NU3RyaW5nIHN0
ciwgaW4gRE9NU3RyaW5nIGNvbnRlbnRUeXBlKTsKKyAgICB9OworfQpJbmRleDogeG1sL1hNTFNl
cmlhbGl6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHhtbC9YTUxTZXJpYWxpemVyLmNwcAkocmV2aXNp
b24gMCkKKysrIHhtbC9YTUxTZXJpYWxpemVyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIGxpYnJhcmllcworICog
IENvcHlyaWdodCAoQykgMjAwMywgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRh
dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTEx
LTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYTUxTZXJp
YWxpemVyLmgiCisKKyNpbmNsdWRlICJEZXByZWNhdGVkU3RyaW5nLmgiCisjaW5jbHVkZSAibWFy
a3VwLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIFhNTFNlcmlhbGl6ZXI6OnNl
cmlhbGl6ZVRvU3RyaW5nKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgCisgICAgcmV0dXJuIGNyZWF0ZU1hcmt1cChub2RlKTsKK30K
KworfQpJbmRleDogeG1sL1hNTFNlcmlhbGl6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB4bWwvWE1MU2Vy
aWFsaXplci5oCShyZXZpc2lvbiAwKQorKysgeG1sL1hNTFNlcmlhbGl6ZXIuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RF
IGxpYnJhcmllcworICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiBBcHBsZSBDb21wdXRlciwg
SW5jLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJv
c3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpZm5kZWYgWE1MU2VyaWFsaXplcl9I
CisjZGVmaW5lIFhNTFNlcmlhbGl6ZXJfSAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJTaGFyZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3Mg
Tm9kZTsKKyAgICAKKyAgICBjbGFzcyBYTUxTZXJpYWxpemVyIDogcHVibGljIFNoYXJlZDxYTUxT
ZXJpYWxpemVyPiB7CisgICAgcHVibGljOgorICAgICAgICBTdHJpbmcgc2VyaWFsaXplVG9TdHJp
bmcoTm9kZSopOworICAgIH07Cit9CisKKyNlbmRpZiAvLyBYTUxTZXJpYWxpemVyLmgKSW5kZXg6
IHhtbC9YTUxTZXJpYWxpemVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB4bWwvWE1MU2VyaWFsaXplci5p
ZGwJKHJldmlzaW9uIDApCisrKyB4bWwvWE1MU2VyaWFsaXplci5pZGwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUg
UGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLwor
Cittb2R1bGUgeHBhdGggeworICAgIGludGVyZmFjZSBbR2VuZXJhdGVDb25zdHJ1Y3RvciwgQ2Fu
QmVDb25zdHJ1Y3RlZF0gWE1MU2VyaWFsaXplciB7CisgICAgICAgIERPTVN0cmluZyBzZXJpYWxp
emVUb1N0cmluZyhpbiBOb2RlIG5vZGUpOworICAgIH07Cit9Cg==
</data>
<flag name="review"
          id="3099"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>