<?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>98981</bug_id>
          
          <creation_ts>2012-10-10 20:03:27 -0700</creation_ts>
          <short_desc>Add more Objective-C WebKit2 DOM API skeletons.</short_desc>
          <delta_ts>2012-10-11 17:46:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739537</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-10 20:03:27 -0700</bug_when>
    <thetext>Add more Objective-C WebKit2 DOM API skeletons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739544</commentid>
    <comment_count>1</comment_count>
      <attachid>168132</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-10 20:07:50 -0700</bug_when>
    <thetext>Created attachment 168132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739545</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 20:11:21 -0700</bug_when>
    <thetext>Attachment 168132 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:50:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:50:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:38:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:39:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:40:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:41:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739546</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-10 20:13:33 -0700</bug_when>
    <thetext>Committed r131003: &lt;http://trac.webkit.org/changeset/131003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740036</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-11 09:22:30 -0700</bug_when>
    <thetext>Just curious, are you planning to write these all by hand, or do you plan to autogenerate them from the IDL at some point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740474</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-11 17:46:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Just curious, are you planning to write these all by hand, or do you plan to autogenerate them from the IDL at some point?

Not sure yet.  Depends on how they shape up.  That said, I really have no interest in exposing the whole DOM (its huge, and no one uses most of it), only a useful subset.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168132</attachid>
            <date>2012-10-10 20:07:50 -0700</date>
            <delta_ts>2012-10-10 20:09:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98981-20121010200649.patch</filename>
            <type>text/plain</type>
            <size>34810</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwOTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjljNjYxZmUxNzEzMDk2
NmI3OWFjZjk1MTYzYWFlZTMwMDdjMGE1Ni4uODg1MGY1NTUwYTc0NWE1Y2M0Yjg0YzQ0MTQ5MjE4
NGY5ZTM1NjBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTEwLTEwICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIG1vcmUgT2JqZWN0aXZlLUMg
V2ViS2l0MiBET00gQVBJIHNrZWxldG9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk4OTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRkIG5lY2Vzc2Fy
eSBleHBvcnQuCisKIDIwMTItMTAtMTAgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXSzJdIEFjdGl2YXRlIHBsdWdpbnMgd2hlbiB1c2VyIGNsaWNrcyBvbiBzbmFwc2hv
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDQ4YjM0YzNmOTcxYjZlNWE3NmRlZTYzMTM3MDM0N2RhNTYyODFhN2Mu
LjlmNGQ5NDI3OTQzMGI4YThmZDE3MWRhZjg5NjA2Yjk5MmZkN2I1NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsNSArMSw1MyBAQAogMjAxMi0xMC0xMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgog
CisgICAgICAgIEFkZCBtb3JlIE9iamVjdGl2ZS1DIFdlYktpdDIgRE9NIEFQSSBza2VsZXRvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODk4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9u
YWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUu
IFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisg
ICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW06Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1l
bnQubW06CisgICAgICAgIFVwZGF0ZSBndWFyZHMgdG8gYWN0dWFsbHkgZG8gc29tZXRoaW5nLiBf
X0NMQU5HX18gaXMgbmV2ZXIgZGVmaW5lZCwgYnV0IF9fY2xhbmdfXyBpcy4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5t
bToKKyAgICAgICAgLSBBYnN0cmFjdHMgRE9NIG9iamVjdCBjYWNoaW5nIGludG8gdGhlIERPTUNh
Y2hlIGNsYXNzIHdoaWNoIGNhbiBvbmx5IGJlIHVzZWQgYXMgYSBzaW5nbGV0b24uCisgICAgICAg
IC0gQWRkcyBXS0RPTVJhbmdlIGNsYXNzIGV4dGVuc2lvbiB0byBhbGxvdyBtYW5pcHVsYXRpbmcg
aXRzIGludGVybmFsIHBvaW50ZXIgZm9yIGNhY2hpbmcgcHVycG9zZXMuCisgICAgICAgIC0gQWRk
IFdLRE9NUmFuZ2UgY29udmVyc2lvbiBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2RlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NTm9kZS5tbToKKyAgICAgICAgUmVuYW1lIF9u
b2RlIHRvIF9pbXBsIGZvciBjb25zaXN0ZW5jeS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UubW06CisgICAgICAgICgtW1dLRE9NUmFu
Z2UgX2luaXRXaXRoSW1wbDpXZWJDb3JlOjpdKToKKyAgICAgICAgKC1bV0tET01SYW5nZSBpbml0
V2l0aERvY3VtZW50Ol0pOgorICAgICAgICAoLVtXS0RPTVJhbmdlIGRlYWxsb2NdKToKKyAgICAg
ICAgKC1bV0tET01SYW5nZSBzdGFydENvbnRhaW5lcl0pOgorICAgICAgICAoLVtXS0RPTVJhbmdl
IHN0YXJ0T2Zmc2V0XSk6CisgICAgICAgICgtW1dLRE9NUmFuZ2UgZW5kQ29udGFpbmVyXSk6Cisg
ICAgICAgICgtW1dLRE9NUmFuZ2UgZW5kT2Zmc2V0XSk6CisgICAgICAgICgtW1dLRE9NUmFuZ2Ug
dGV4dF0pOgorICAgICAgICBBZGRlZC4gT25seSBvZmZlcnMgYmFzZSByYW5nZSBmdW5jdGlvbmFs
aXR5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9N
VGV4dEl0ZXJhdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NVGV4dEl0ZXJhdG9yLm1tOgorICAgICAgICAoLVtXS0RPTVRleHRJdGVyYXRvciBp
bml0V2l0aFJhbmdlOl0pOgorICAgICAgICAoLVtXS0RPTVRleHRJdGVyYXRvciBhZHZhbmNlXSk6
CisgICAgICAgICgtW1dLRE9NVGV4dEl0ZXJhdG9yIGF0RW5kXSk6CisgICAgICAgICgtW1dLRE9N
VGV4dEl0ZXJhdG9yIGN1cnJlbnRSYW5nZV0pOgorICAgICAgICAoLVtXS0RPTVRleHRJdGVyYXRv
ciBjdXJyZW50VGV4dFBvaW50ZXJdKToKKyAgICAgICAgKC1bV0tET01UZXh0SXRlcmF0b3IgY3Vy
cmVudFRleHRMZW5ndGhdKToKKyAgICAgICAgQWRkZWQuIEFsbW9zdCBpZGVudGljYWwgdG8gV2Vi
VGV4dEl0ZXJhdG9yIEFQSSBpbiBXZWJLaXQuCisKKzIwMTItMTAtMTAgIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KKwogICAgICAgICBGaXggdGhlIEdDQyBNYWMgYnVpbGQuIFdoeSBhcmUg
d2Ugc3RpbGwgYnVpbGRpbmcgd2l0aCBHQ0MgYWdhaW4/CiAKICAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCBiM2U1Zjg2YTJkMDBhMmI3ZTQ3Mzc4NDA1YjE2NzY0OWQ1MGY5OWQ2Li40YWIxODdh
MTdkNDBiODgwYTU4YjY3Y2U5NDJkYTMzOTEyOTI3ZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtNzM0LDYgKzczNCw3IEBAIF9fWk43V2ViQ29yZTVJbWFnZTdzZXREYXRhRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzEyU2hhcmVkQnVmZmVyRUVFYgogX19aTjdXZWJDb3JlNUltYWdlOW51bGxJbWFn
ZUV2CiBfX1pON1dlYkNvcmU1UmFuZ2UxMHNlbGVjdE5vZGVFUE5TXzROb2RlRVJpCiBfX1pON1dl
YkNvcmU1UmFuZ2UxNGlzUG9pbnRJblJhbmdlRVBOU180Tm9kZUVpUmkKK19fWk43V2ViQ29yZTVS
YW5nZTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOERvY3VtZW50RUVFCiBfX1pON1dlYkNv
cmU1UmFuZ2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzhEb2N1bWVudEVFRU5TMl9JTlNf
NE5vZGVFRUVpUzZfaQogX19aTjdXZWJDb3JlNVJhbmdlNnNldEVuZEVOM1dURjEwUGFzc1JlZlB0
cklOU180Tm9kZUVFRWlSaQogX19aTjdXZWJDb3JlNVJhbmdlOHNldFN0YXJ0RU4zV1RGMTBQYXNz
UmVmUHRySU5TXzROb2RlRUVFaVJpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMThlOTc4MTdkMzVmMDNhYmIyYWE5NjM3YTFmYzcw
OTQ4ZDc2ZDkwZi4uMTZiNzMxNDUyM2M0Y2RhMzZjM2ViYWM5ZjU5OGI4OWNjNjk0ZDY2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNDg3LDE0ICs0ODcsMTYgQEAKIAkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJl
Y3Rpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjg3OEI2MTMxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5oICovOyB9Owog
CQlCODc4QjYxNjEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjg3OEI2MTQxMzM0MjhEQzAw
Njg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSAqLzsgfTsKIAkJQkMwMDkyRjgxMTU4MzdBMzAw
RTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFj
LmNwcCAqLzsgfTsKLQkJQkMwMTdEMDcxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRG9jdW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDE3Q0ZG
MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTURvY3VtZW50LmggKi87IH07CisJCUJDMDE3RDA3MTYy
NjBGRjQwMDcwNTRGNSAvKiBXS0RPTURvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAxN0NGRjE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01E
b2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
IAkJQkMwMTdEMDgxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRG9jdW1lbnQubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAxN0QwMDE2MjYwRkY0MDA3
MDU0RjUgLyogV0tET01Eb2N1bWVudC5tbSAqLzsgfTsKLQkJQkMwMTdEMDkxNjI2MEZGNDAwNzA1
NEY1IC8qIFdLRE9NRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMwMTdEMDExNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRWxlbWVudC5oICov
OyB9OworCQlCQzAxN0QwOTE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01FbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAxN0QwMTE2MjYwRkY0
MDA3MDU0RjUgLyogV0tET01FbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHVibGljLCApOyB9OyB9OwogCQlCQzAxN0QwQTE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01FbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMw
MTdEMDIxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NRWxlbWVudC5tbSAqLzsgfTsKIAkJQkMwMTdE
MEIxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAxN0QwMzE2MjYwRkY0MDA3MDU0RjUgLyog
V0tET01JbnRlcm5hbHMuaCAqLzsgfTsKIAkJQkMwMTdEMEMxNjI2MEZGNDAwNzA1NEY1IC8qIFdL
RE9NSW50ZXJuYWxzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwMTdEMDQxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxzLm1tICovOyB9
OwotCQlCQzAxN0QwRDE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01Ob2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAxN0QwNTE2MjYwRkY0MDA3MDU0
RjUgLyogV0tET01Ob2RlLmggKi87IH07CisJCUJDMDE3RDBEMTYyNjBGRjQwMDcwNTRGNSAvKiBX
S0RPTU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMDE3RDA1MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTU5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCUJDMDE3RDBFMTYyNjBGRjQwMDcwNTRG
NSAvKiBXS0RPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzAxN0QwNjE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01Ob2RlLm1tICovOyB9Owor
CQlCQzAxN0QyMDE2MjYzMzA4MDA3MDU0RjUgLyogV0tET01UZXh0SXRlcmF0b3IubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAxN0QxRTE2MjYzMzA4
MDA3MDU0RjUgLyogV0tET01UZXh0SXRlcmF0b3IubW0gKi87IH07CisJCUJDMDE3RDIxMTYyNjMz
MDgwMDcwNTRGNSAvKiBXS0RPTVRleHRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMTdEMUYxNjI2MzMwODAwNzA1NEY1IC8qIFdLRE9N
VGV4dEl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OwogCQlCQzAzMkQ3NTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ2MDEwRjQz
NzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggKi87IH07CiAJCUJDMDMyRDc3MTBGNDM3
OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVBIC8qIFdl
YkNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CiAJCUJDMDMyRDdCMTBGNDM3OEQwMDU4QzE1QSAv
KiBXZWJEcmFnQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzAzMkQ2NjEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oICovOyB9
OwpAQCAtNTk4LDYgKzYwMCw4IEBACiAJCUJDMzNERDY4MTIzODQ2NDYwMDM2MEYzRiAvKiBXZWJO
dW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MzNERDY3MTIzODQ2NDYwMDM2MEYzRiAvKiBXZWJOdW1iZXIuaCAqLzsgfTsKIAkJQkMzM0UwRDEx
MjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNFMENGMTI0MDhFODYwMDM2
MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmggKi87IH07CiAJCUJDMzNFMEQyMTI0
MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNFMEQwMTI0MDhFODYwMDM2
MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLzsgfTsKKwkJQkMzOUM0MzUx
NjI2MzY2RjAwOEJDNjg5IC8qIFdLRE9NUmFuZ2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzM5QzQzMzE2MjYzNjZGMDA4QkM2ODkgLyogV0tET01S
YW5nZS5tbSAqLzsgfTsKKwkJQkMzOUM0MzYxNjI2MzY2RjAwOEJDNjg5IC8qIFdLRE9NUmFuZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzlDNDM0
MTYyNjM2NkYwMDhCQzY4OSAvKiBXS0RPTVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlCQzQwNzVGMzEyNEZGMDI3MDA2OEYyMEEgLyogV0tB
cnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzQwNzVENzEyNEZGMDI3MDA2OEYyMEEgLyogV0tBcnJheS5jcHAgKi87IH07CiAJCUJDNDA3NUY0
MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzVEODEyNEZGMDI3MDA2OEYyMEEgLyogV0tBcnJheS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDNDA3
NUY1MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mby5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzVEOTEyNEZGMDI3MDA2OEYy
MEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uY3BwICovOyB9OwpAQCAtMTU5MSw2ICsxNTk1LDggQEAK
IAkJQkMwMTdEMDQxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tET01JbnRlcm5hbHMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDE3RDA1MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RP
TU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tET01Ob2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDE3RDA2MTYyNjBGRjQwMDcwNTRGNSAvKiBX
S0RPTU5vZGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0RP
TU5vZGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMDE3RDFFMTYyNjMzMDgw
MDcwNTRGNSAvKiBXS0RPTVRleHRJdGVyYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLRE9NVGV4dEl0ZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQzAxN0QxRjE2MjYzMzA4MDA3MDU0RjUgLyogV0tET01UZXh0SXRlcmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tET01UZXh0SXRlcmF0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8q
IFdlYkNocm9tZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJD
aHJvbWVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMzJENjIxMEY0
Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDMDMyRDY2MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJEcmFnQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRyYWdDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDEsNiArMTcwNyw4IEBACiAJCUJDMzNERDY3MTIz
ODQ2NDYwMDM2MEYzRiAvKiBXZWJOdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzNFMENG
MTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzM0UwRDAxMjQwOEU4NjAwMzYwRjNGIC8qIElu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDMzlDNDMzMTYyNjM2NkYwMDhCQzY4OSAvKiBXS0RPTVJhbmdlLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tET01SYW5nZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMzOUM0MzQxNjI2MzY2RjAwOEJDNjg5IC8qIFdL
RE9NUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tET01SYW5nZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzNERTQ2NjE1QTkxNzYzMDA4RDI2RkMg
LyogY29tLmFwcGxlLldlYktpdDIuV2ViUHJvY2Vzc1NlcnZpY2UueHBjICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVuZGxlOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0Mi5XZWJQcm9jZXNzU2Vydmlj
ZS54cGM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUJDM0RFNDY4MTVB
OTE3NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
Rm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Zv
dW5kYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKIAkJQkM0MDc1RDcx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV0tBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
ODc3LDYgKzI4ODUsMTAgQEAKIAkJCQlCQzAxN0QwNDE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01J
bnRlcm5hbHMubW0gKi8sCiAJCQkJQkMwMTdEMDUxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NTm9k
ZS5oICovLAogCQkJCUJDMDE3RDA2MTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTU5vZGUubW0gKi8s
CisJCQkJQkMzOUM0MzQxNjI2MzY2RjAwOEJDNjg5IC8qIFdLRE9NUmFuZ2UuaCAqLywKKwkJCQlC
QzM5QzQzMzE2MjYzNjZGMDA4QkM2ODkgLyogV0tET01SYW5nZS5tbSAqLywKKwkJCQlCQzAxN0Qx
RjE2MjYzMzA4MDA3MDU0RjUgLyogV0tET01UZXh0SXRlcmF0b3IuaCAqLywKKwkJCQlCQzAxN0Qx
RTE2MjYzMzA4MDA3MDU0RjUgLyogV0tET01UZXh0SXRlcmF0b3IubW0gKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IERPTTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MzgxLDYgKzQzOTMs
OCBAQAogCQkJCUJDMDE3RDBCMTYyNjBGRjQwMDcwNTRGNSAvKiBXS0RPTUludGVybmFscy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMEQxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMjkxMjE3MDgxNjFDRTczNjAwNTdENDUxIC8qIFVzZXJDb250
ZW50Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzAxN0QyMTE2MjYzMzA4MDA3MDU0
RjUgLyogV0tET01UZXh0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDMzlDNDM2MTYy
NjM2NkYwMDhCQzY4OSAvKiBXS0RPTVJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTUyNDUsNiAr
NTI1OSw4IEBACiAJCQkJQkMwMTdEMEMxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxz
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMTdEMEUxNjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9N
Tm9kZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5MTIxNzA3MTYxQ0U3MzYwMDU3RDQ1MSAvKiBV
c2VyQ29udGVudENvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzAxN0QyMDE2MjYz
MzA4MDA3MDU0RjUgLyogV0tET01UZXh0SXRlcmF0b3IubW0gaW4gU291cmNlcyAqLywKKwkJCQlC
QzM5QzQzNTE2MjYzNjZGMDA4QkM2ODkgLyogV0tET01SYW5nZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50LmgKaW5kZXggOWJjNTgzMWRlZDE1ZjdjMzg1NDMz
Mzg5OWFhZTUxZDcwZTA2NDIxOC4uYzI0ZDNmMzYxYjY0MWVhMjdlZjBkYzQxYzFlYmQxNzQyOTNk
MTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oCkBAIC0yMyw3ICsyMyw3IEBA
CiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmIGRlZmluZWQo
X19MUDY0X18pICYmIGRlZmluZWQoX19DTEFOR19fKQorI2lmIGRlZmluZWQoX19MUDY0X18pICYm
IGRlZmluZWQoX19jbGFuZ19fKQogCiAjaW1wb3J0IDxXZWJLaXQyL1dLRE9NTm9kZS5oPgogCkBA
IC0zMSw1ICszMSw1IEBAIFdLX0VYUE9SVAogQGludGVyZmFjZSBXS0RPTURvY3VtZW50IDogV0tE
T01Ob2RlCiBAZW5kCiAKLSNlbmRpZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9f
Q0xBTkdfXykKKyNlbmRpZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fY2xhbmdf
XykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQppbmRleCAyN2RmM2QwYmFhNjQz
MTgxNzIzYWIxNzQ5YmQ4OGMxMDdkNTUxZjY3Li5mZGQ3MjJjMWEyNjE1ODYwM2U3ZGI5NDRkZmYx
YWY5ODk4YTExN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQpAQCAtMjUs
NyArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2lmIGRlZmluZWQoX19MUDY0X18p
ICYmIGRlZmluZWQoX19DTEFOR19fKQorI2lmIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQo
X19jbGFuZ19fKQogCiAjaW1wb3J0ICJXS0RPTURvY3VtZW50LmgiCiAKQEAgLTM1LDQgKzM1LDQg
QEAKIEBpbXBsZW1lbnRhdGlvbiBXS0RPTURvY3VtZW50CiBAZW5kCiAKLSNlbmRpZiAvLyBkZWZp
bmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fQ0xBTkdfXykKKyNlbmRpZiAvLyBkZWZpbmVkKF9f
TFA2NF9fKSAmJiBkZWZpbmVkKF9fY2xhbmdfXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQu
aAppbmRleCA3YzdjOGJlOGU0ZjQzYTkzMzUyNGFhOTQ5Mjc4NmQ2MzI4NzRmZWMyLi40YjIxZmEy
YTZmMWZiZDkxNTc2ZmQ4N2VhOTMyNTgzODA1ODc5NTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9N
RWxlbWVudC5oCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotI2lmIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19DTEFOR19f
KQorI2lmIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19jbGFuZ19fKQogCiAjaW1wb3J0
IDxXZWJLaXQyL1dLRE9NTm9kZS5oPgogCkBAIC0zMSw0ICszMSw0IEBAIFdLX0VYUE9SVAogQGlu
dGVyZmFjZSBXS0RPTUVsZW1lbnQgOiBXS0RPTU5vZGUKIEBlbmQKIAotI2VuZGlmIC8vIGRlZmlu
ZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19DTEFOR19fKQorI2VuZGlmIC8vIGRlZmluZWQoX19M
UDY0X18pICYmIGRlZmluZWQoX19jbGFuZ19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQu
bW0KaW5kZXggM2FkZDM5OTE5MDI4MjNiNjI0NTYxYmNlZTIyYjViNDQ5ZjlkYjQxMy4uMWU3MDNj
NGUwMDc0ZTc2ZWNlYjVlZDhiNzdjYzcyOWFhYzk1M2FiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tE
T01FbGVtZW50Lm1tCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogCi0j
aWYgZGVmaW5lZChfX0xQNjRfXykgJiYgZGVmaW5lZChfX0NMQU5HX18pCisjaWYgZGVmaW5lZChf
X0xQNjRfXykgJiYgZGVmaW5lZChfX2NsYW5nX18pCiAKICNpbXBvcnQgIldLRE9NRWxlbWVudC5o
IgogCkBAIC0zNSw0ICszNSw0IEBACiBAaW1wbGVtZW50YXRpb24gV0tET01FbGVtZW50CiBAZW5k
CiAKLSNlbmRpZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fQ0xBTkdfXykKKyNl
bmRpZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fY2xhbmdfXykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RP
TUludGVybmFscy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvbWFjL1dLRE9NSW50ZXJuYWxzLmgKaW5kZXggNTdkNTFhOTU2Nzk4OGZiNDRjZjU3M2Y2NmFj
OGZiOGVhOTViMWVlMS4uYjVlNzFhMjA2NzA2MGE2OGJhYmE4OTJkMWRjYjQ1OTVhZmU2NjQyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLmgKQEAgLTIzLDEwICsyMywxMyBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZiBkZWZpbmVkKF9f
TFA2NF9fKSAmJiBkZWZpbmVkKF9fQ0xBTkdfXykKKyNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBk
ZWZpbmVkKF9fY2xhbmdfXykKIAogI2ltcG9ydCAiV0tET01Ob2RlLmgiCisjaW1wb3J0ICJXS0RP
TVJhbmdlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL05vZGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmFu
Z2UuaD4KKyNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEVsZW1lbnQ7CkBAIC0zOCwxNCArNDEsNTggQEAgY2xhc3MgRG9jdW1lbnQ7CiAKIEBpbnRl
cmZhY2UgV0tET01Ob2RlICgpIHsKIEBwdWJsaWMKLSAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4g
X25vZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IF9pbXBsOwogfQogCi0tIChpZClfaW5p
dFdpdGhOb2RlOihXZWJDb3JlOjpOb2RlKilub2RlOworLSAoaWQpX2luaXRXaXRoSW1wbDooV2Vi
Q29yZTo6Tm9kZSopaW1wbDsKK0BlbmQKKworQGludGVyZmFjZSBXS0RPTVJhbmdlICgpIHsKK0Bw
dWJsaWMKKyAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IF9pbXBsOworfQorCistIChpZClfaW5p
dFdpdGhJbXBsOihXZWJDb3JlOjpSYW5nZSopaW1wbDsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFdlYkNvcmVUeXBlLCB0eXBlbmFtZSBXS0RPTVR5cGU+
CitjbGFzcyBET01DYWNoZSB7CitwdWJsaWM6CisgICAgRE9NQ2FjaGUoKQorICAgIHsKKyAgICB9
CisKKyAgICB2b2lkIGFkZChXZWJDb3JlVHlwZSBjb3JlLCBXS0RPTVR5cGUga2l0KQorICAgIHsK
KyAgICAgICAgbV9tYXAuYWRkKGNvcmUsIGtpdCk7CisgICAgfQorICAgIAorICAgIFdLRE9NVHlw
ZSBnZXQoV2ViQ29yZVR5cGUgY29yZSkKKyAgICB7CisgICAgICAgIHJldHVybiBtX21hcC5nZXQo
Y29yZSk7CisgICAgfQorCisgICAgdm9pZCByZW1vdmUoV2ViQ29yZVR5cGUgY29yZSkKKyAgICB7
CisgICAgICAgIG1fbWFwLnJlbW92ZShjb3JlKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8g
VGhpcyBjbGFzcyBzaG91bGQgb25seSBldmVyIGJlIHVzZWQgYXMgYSBzaW5nbGV0b24uCisgICAg
fkRPTUNhY2hlKCkgPSBkZWxldGU7CisKKyAgICBIYXNoTWFwPFdlYkNvcmVUeXBlLCBXS0RPTVR5
cGU+IG1fbWFwOworfTsKKworLy8gLS0gQ2FjaGVzIC0tCisKK0RPTUNhY2hlPFdlYkNvcmU6Ok5v
ZGUqLCBXS0RPTU5vZGUgKj4mIFdLRE9NTm9kZUNhY2hlKCk7CitET01DYWNoZTxXZWJDb3JlOjpS
YW5nZSosIFdLRE9NUmFuZ2UgKj4mIFdLRE9NUmFuZ2VDYWNoZSgpOworCisvLyAtLSBOb2RlIGFu
ZCBjbGFzc2VzIGRlcml2ZWQgZnJvbSBOb2RlLiAtLQorCiBXZWJDb3JlOjpOb2RlKiB0b1dlYkNv
cmVOb2RlKFdLRE9NTm9kZSAqKTsKIFdLRE9NTm9kZSAqdG9XS0RPTU5vZGUoV2ViQ29yZTo6Tm9k
ZSopOwogCkBAIC01NSwxMCArMTAyLDExIEBAIFdLRE9NRWxlbWVudCAqdG9XS0RPTUVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCopOwogV2ViQ29yZTo6RG9jdW1lbnQqIHRvV2ViQ29yZURvY3VtZW50
KFdLRE9NRG9jdW1lbnQgKik7CiBXS0RPTURvY3VtZW50ICp0b1dLRE9NRG9jdW1lbnQoV2ViQ29y
ZTo6RG9jdW1lbnQqKTsKIAotdm9pZCBXS0RPTU5vZGVDYWNoZUFkZChXZWJDb3JlOjpOb2RlKiwg
V0tET01Ob2RlICopOwotV0tET01Ob2RlICpXS0RPTU5vZGVDYWNoZUdldChXZWJDb3JlOjpOb2Rl
Kik7Ci12b2lkIFdLRE9NTm9kZUNhY2hlUmVtb3ZlKFdlYkNvcmU6Ok5vZGUqKTsKKy8vIC0tIFJh
bmdlLiAtLQorCitXZWJDb3JlOjpSYW5nZSogdG9XZWJDb3JlUmFuZ2UoV0tET01SYW5nZSAqKTsK
K1dLRE9NUmFuZ2UgKnRvV0tET01SYW5nZShXZWJDb3JlOjpSYW5nZSopOwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19D
TEFOR19fKQorI2VuZGlmIC8vIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19jbGFuZ19f
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NSW50ZXJuYWxzLm1tCmluZGV4IDFhN2Q0NmIxOTcxMDNh
MTIwYTU1OWM5ZTY0ZGU2MjEzMTNmZTQ5MTEuLjc2OGRhNDk1ZWU3NjZlMjNmNjVjYmRmZmFmZWRj
MDc3ZmU1NDYzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUludGVybmFscy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01JbnRlcm5hbHMubW0KQEAgLTI1
LDE0ICsyNSwxNCBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2lmIGRlZmluZWQoX19MUDY0
X18pICYmIGRlZmluZWQoX19DTEFOR19fKQorI2lmIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmlu
ZWQoX19jbGFuZ19fKQogCiAjaW1wb3J0ICJXS0RPTUludGVybmFscy5oIgogCiAjaW1wb3J0IDxX
ZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VsZW1lbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTm9kZS5oPgotI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvUmFuZ2UuaD4KIAogLy8gQ2xhc3NlcyB0byBpbnN0YW50aWF0ZS4KICNpbXBvcnQgIldLRE9N
RWxlbWVudC5oIgpAQCAtNDAsMjcgKzQwLDIzIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi10
eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6Tm9kZSosIFdLRE9NTm9kZSo+IFdLRE9NTm9kZUNhY2hl
Owotc3RhdGljIFdLRE9NTm9kZUNhY2hlJiB3a0RPTU5vZGVDYWNoZSgpCisvLyAtLSBDYWNoZXMg
LS0gCisKK0RPTUNhY2hlPFdlYkNvcmU6Ok5vZGUqLCBXS0RPTU5vZGUgKj4mIFdLRE9NTm9kZUNh
Y2hlKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdLRE9NTm9kZUNhY2hlLCBjYWNoZSwg
KCkpOworICAgIHR5cGVkZWYgRE9NQ2FjaGU8V2ViQ29yZTo6Tm9kZSosIFdLRE9NTm9kZSAqPiBD
YWNoZTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENhY2hlLCBjYWNoZSwgKCkpOwogICAgIHJl
dHVybiBjYWNoZTsKIH0KIAotdm9pZCBXS0RPTU5vZGVDYWNoZUFkZChXZWJDb3JlOjpOb2RlKiBp
bXBsLCBXS0RPTU5vZGUgKndyYXBwZXIpCitET01DYWNoZTxXZWJDb3JlOjpSYW5nZSosIFdLRE9N
UmFuZ2UgKj4mIFdLRE9NUmFuZ2VDYWNoZSgpCiB7Ci0gICAgd2tET01Ob2RlQ2FjaGUoKS5hZGQo
aW1wbCwgd3JhcHBlcik7CisgICAgdHlwZWRlZiBET01DYWNoZTxXZWJDb3JlOjpSYW5nZSosIFdL
RE9NUmFuZ2UgKj4gQ2FjaGU7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDYWNoZSwgY2FjaGUs
ICgpKTsKKyAgICByZXR1cm4gY2FjaGU7CiB9CiAKLVdLRE9NTm9kZSAqV0tET01Ob2RlQ2FjaGVH
ZXQoV2ViQ29yZTo6Tm9kZSogaW1wbCkKLXsKLSAgICByZXR1cm4gd2tET01Ob2RlQ2FjaGUoKS5n
ZXQoaW1wbCk7Ci19Ci0KLXZvaWQgV0tET01Ob2RlQ2FjaGVSZW1vdmUoV2ViQ29yZTo6Tm9kZSog
aW1wbCkKLXsKLSAgICB3a0RPTU5vZGVDYWNoZSgpLnJlbW92ZShpbXBsKTsKLX0KKy8vIC0tIE5v
ZGUgYW5kIGNsYXNzZXMgZGVyaXZlZCBmcm9tIE5vZGUuIC0tCiAKIHN0YXRpYyBDbGFzcyBXS0RP
TUNsYXNzKFdlYkNvcmU6Ok5vZGUqIGltcGwpCiB7CkBAIC04OCwxNiArODQsMTYgQEAgc3RhdGlj
IENsYXNzIFdLRE9NQ2xhc3MoV2ViQ29yZTo6Tm9kZSogaW1wbCkKIAogV2ViQ29yZTo6Tm9kZSog
dG9XZWJDb3JlTm9kZShXS0RPTU5vZGUgKndyYXBwZXIpCiB7Ci0gICAgcmV0dXJuIHdyYXBwZXIg
PyB3cmFwcGVyLT5fbm9kZS5nZXQoKSA6IDA7CisgICAgcmV0dXJuIHdyYXBwZXIgPyB3cmFwcGVy
LT5faW1wbC5nZXQoKSA6IDA7CiB9CiAKIFdLRE9NTm9kZSAqdG9XS0RPTU5vZGUoV2ViQ29yZTo6
Tm9kZSogaW1wbCkKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAg
aWYgKFdLRE9NTm9kZSAqd3JhcHBlciA9IFdLRE9NTm9kZUNhY2hlR2V0KGltcGwpKQorICAgIGlm
IChXS0RPTU5vZGUgKndyYXBwZXIgPSBXS0RPTU5vZGVDYWNoZSgpLmdldChpbXBsKSkKICAgICAg
ICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1dG9yZWxlYXNlXTsKLSAgICBXS0RPTU5vZGUg
KndyYXBwZXIgPSBbW1dLRE9NQ2xhc3MoaW1wbCkgYWxsb2NdIF9pbml0V2l0aE5vZGU6aW1wbF07
CisgICAgV0tET01Ob2RlICp3cmFwcGVyID0gW1tXS0RPTUNsYXNzKGltcGwpIGFsbG9jXSBfaW5p
dFdpdGhJbXBsOmltcGxdOwogICAgIGlmICghd3JhcHBlcikKICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICByZXR1cm4gW3dyYXBwZXIgYXV0b3JlbGVhc2VdOwpAQCAtMTA1LDcgKzEwMSw3IEBAIFdL
RE9NTm9kZSAqdG9XS0RPTU5vZGUoV2ViQ29yZTo6Tm9kZSogaW1wbCkKIAogV2ViQ29yZTo6RWxl
bWVudCogdG9XZWJDb3JlRWxlbWVudChXS0RPTUVsZW1lbnQgKndyYXBwZXIpCiB7Ci0gICAgcmV0
dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPih3cmFwcGVy
LT5fbm9kZS5nZXQoKSkgOiAwOworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2Fz
dDxXZWJDb3JlOjpFbGVtZW50Kj4od3JhcHBlci0+X2ltcGwuZ2V0KCkpIDogMDsKIH0KIAogV0tE
T01FbGVtZW50ICp0b1dLRE9NRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBpbXBsKQpAQCAtMTE1
LDcgKzExMSw3IEBAIFdLRE9NRWxlbWVudCAqdG9XS0RPTUVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCogaW1wbCkKIAogV2ViQ29yZTo6RG9jdW1lbnQqIHRvV2ViQ29yZURvY3VtZW50KFdLRE9NRG9j
dW1lbnQgKndyYXBwZXIpCiB7Ci0gICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0
PFdlYkNvcmU6OkRvY3VtZW50Kj4od3JhcHBlci0+X25vZGUuZ2V0KCkpIDogMDsKKyAgICByZXR1
cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RG9jdW1lbnQqPih3cmFwcGVy
LT5faW1wbC5nZXQoKSkgOiAwOwogfQogCiBXS0RPTURvY3VtZW50ICp0b1dLRE9NRG9jdW1lbnQo
V2ViQ29yZTo6RG9jdW1lbnQqIGltcGwpCkBAIC0xMjMsNiArMTE5LDI2IEBAIFdLRE9NRG9jdW1l
bnQgKnRvV0tET01Eb2N1bWVudChXZWJDb3JlOjpEb2N1bWVudCogaW1wbCkKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8V0tET01Eb2N1bWVudCo+KHRvV0tET01Ob2RlKHN0YXRpY19jYXN0PFdlYkNv
cmU6Ok5vZGUqPihpbXBsKSkpOwogfQogCisvLyAtLSBSYW5nZS4gLS0KKworV2ViQ29yZTo6UmFu
Z2UqIHRvV2ViQ29yZVJhbmdlKFdLRE9NUmFuZ2UgKiB3cmFwcGVyKQoreworICAgIHJldHVybiB3
cmFwcGVyID8gd3JhcHBlci0+X2ltcGwuZ2V0KCkgOiAwOworCit9CisKK1dLRE9NUmFuZ2UgKnRv
V0tET01SYW5nZShXZWJDb3JlOjpSYW5nZSogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwpCisgICAg
ICAgIHJldHVybiBuaWw7CisgICAgaWYgKFdLRE9NUmFuZ2UgKndyYXBwZXIgPSBXS0RPTVJhbmdl
Q2FjaGUoKS5nZXQoaW1wbCkpCisgICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRv
cmVsZWFzZV07CisgICAgV0tET01SYW5nZSAqd3JhcHBlciA9IFtbV0tET01SYW5nZSBhbGxvY10g
X2luaXRXaXRoSW1wbDppbXBsXTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVybiBu
aWw7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fQ0xB
TkdfXykKKyNlbmRpZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fY2xhbmdfXykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS0RPTU5vZGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS0RPTU5vZGUuaAppbmRleCA1YzFkYzljMjc1NDIwYTkwZWZlNzVhNjAxZmYy
NjU2MTA3ZTJjN2IxLi44ODc1OTcyNzQ4YTY4YWViOGJlNTU5OTBmZjMyMzA2MDdiMmFkMWE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tET01Ob2RlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLRE9NTm9kZS5oCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmIGRlZmluZWQoX19MUDY0X18pICYmIGRl
ZmluZWQoX19DTEFOR19fKQorI2lmIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19jbGFu
Z19fKQogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktp
dDIvV0tCYXNlLmg+CkBAIC0zNyw0ICszNyw0IEBAIFdLX0VYUE9SVAogCiBAZW5kCiAKLSNlbmRp
ZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fQ0xBTkdfXykKKyNlbmRpZiAvLyBk
ZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fY2xhbmdfXykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01O
b2RlLm1tCmluZGV4IDU4ZDdkZDczNWJhNTk5NmZmYWY5ZWVkNjczMjI2ZGExMTM1Njk3OTYuLmQ5
MWEyYzg5YzA0NDRjNDM1ZDBjODAxMDFmZGY3YjhiNzVkODZiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NTm9kZS5tbQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2lm
IGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19DTEFOR19fKQorI2lmIGRlZmluZWQoX19M
UDY0X18pICYmIGRlZmluZWQoX19jbGFuZ19fKQogCiAjaW1wb3J0ICJXS0RPTU5vZGUuaCIKIApA
QCAtMzMsMjcgKzMzLDI5IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBXS0RPTU5vZGUKIAotLSAoaWQp
X2luaXRXaXRoTm9kZTooV2ViQ29yZTo6Tm9kZSopbm9kZQorLSAoaWQpX2luaXRXaXRoSW1wbDoo
V2ViQ29yZTo6Tm9kZSopaW1wbAogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYg
KCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgV2ViS2l0OjpXS0RPTU5vZGVDYWNo
ZUFkZChub2RlLCBzZWxmKTsKKyAgICBfaW1wbCA9IGltcGw7CisgICAgV2ViS2l0OjpXS0RPTU5v
ZGVDYWNoZSgpLmFkZChpbXBsLCBzZWxmKTsKKwogICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2
b2lkKWRlYWxsb2MKIHsKLSAgICBXZWJLaXQ6OldLRE9NTm9kZUNhY2hlUmVtb3ZlKF9ub2RlLmdl
dCgpKTsKKyAgICBXZWJLaXQ6OldLRE9NTm9kZUNhY2hlKCkucmVtb3ZlKF9pbXBsLmdldCgpKTsK
ICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKIC0gKFdLRE9NRG9jdW1lbnQgKilkb2N1bWVudAog
ewotICAgIHJldHVybiBXZWJLaXQ6OnRvV0tET01Eb2N1bWVudChfbm9kZS0+ZG9jdW1lbnQoKSk7
CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTURvY3VtZW50KF9pbXBsLT5kb2N1bWVudCgpKTsK
IH0KIAogQGVuZAogCi0jZW5kaWYgLy8gZGVmaW5lZChfX0xQNjRfXykgJiYgZGVmaW5lZChfX0NM
QU5HX18pCisjZW5kaWYgLy8gZGVmaW5lZChfX0xQNjRfXykgJiYgZGVmaW5lZChfX2NsYW5nX18p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tET01SYW5nZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Nzk0NWUxZTcyM2NhYzBjZDlj
OGEyMGIzM2M2NmI3MzJkOTk1MzA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaApAQCAtMCwwICsx
LDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19j
bGFuZ19fKQorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPFdl
YktpdDIvV0tCYXNlLmg+CisKK0BjbGFzcyBXS0RPTU5vZGUsIFdLRE9NRG9jdW1lbnQ7CisKK1dL
X0VYUE9SVAorQGludGVyZmFjZSBXS0RPTVJhbmdlIDogTlNPYmplY3QKKworLShpZClpbml0V2l0
aERvY3VtZW50OihXS0RPTURvY3VtZW50ICopZG9jdW1lbnQ7CisKK0Bwcm9wZXJ0eShyZWFkb25s
eSwgcmV0YWluKSBXS0RPTU5vZGUgKnN0YXJ0Q29udGFpbmVyOworQHByb3BlcnR5KHJlYWRvbmx5
KSBOU0ludGVnZXIgc3RhcnRPZmZzZXQ7CitAcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgV0tE
T01Ob2RlICplbmRDb250YWluZXI7CitAcHJvcGVydHkocmVhZG9ubHkpIE5TSW50ZWdlciBlbmRP
ZmZzZXQ7CitAcHJvcGVydHkocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp0ZXh0OworCitAZW5k
CisKKyNlbmRpZiAvLyBkZWZpbmVkKF9fTFA2NF9fKSAmJiBkZWZpbmVkKF9fY2xhbmdfXykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTVJhbmdlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NUmFuZ2UubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5YjE4ODdmNTQxMGFlMDViZjYy
NmE0Mzg1NDIxNzZlM2VmMWM4OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLm1tCkBAIC0wLDAgKzEs
MTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBkZWZpbmVkKF9f
TFA2NF9fKSAmJiBkZWZpbmVkKF9fY2xhbmdfXykKKworI2ltcG9ydCAiV0tET01SYW5nZS5oIgor
CisjaW1wb3J0ICJXS0RPTUludGVybmFscy5oIgorI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5o
PgorCitAaW1wbGVtZW50YXRpb24gV0tET01SYW5nZQorCistIChpZClfaW5pdFdpdGhJbXBsOihX
ZWJDb3JlOjpSYW5nZSopaW1wbAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYg
KCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2ltcGwgPSBpbXBsOworICAgIFdl
YktpdDo6V0tET01SYW5nZUNhY2hlKCkuYWRkKGltcGwsIHNlbGYpOworCisgICAgcmV0dXJuIHNl
bGY7Cit9CisKKy0gKGlkKWluaXRXaXRoRG9jdW1lbnQ6KFdLRE9NRG9jdW1lbnQgKilkb2N1bWVu
dAoreworICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2UgPSBXZWJDb3JlOjpSYW5nZTo6
Y3JlYXRlKFdlYktpdDo6dG9XZWJDb3JlRG9jdW1lbnQoZG9jdW1lbnQpKTsKKyAgICBzZWxmID0g
W3NlbGYgX2luaXRXaXRoSW1wbDpyYW5nZS5nZXQoKV07CisgICAgaWYgKCFzZWxmKQorICAgICAg
ICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYwor
eworICAgIFdlYktpdDo6V0tET01SYW5nZUNhY2hlKCkucmVtb3ZlKF9pbXBsLmdldCgpKTsKKyAg
ICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKFdLRE9NTm9kZSAqKXN0YXJ0Q29udGFpbmVyCit7
CisgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyBhYm91dCB0aGUgZXhjZXB0aW9uLgorICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHJldHVybiBXZWJLaXQ6OnRvV0tET01O
b2RlKF9pbXBsLT5zdGFydENvbnRhaW5lcihlYykpOworfQorCistIChOU0ludGVnZXIpc3RhcnRP
ZmZzZXQKK3sKKyAgICAvLyBGSVhNRTogRG8gc29tZXRoaW5nIGFib3V0IHRoZSBleGNlcHRpb24u
CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgcmV0dXJuIF9pbXBsLT5z
dGFydE9mZnNldChlYyk7Cit9CisKKy0gKFdLRE9NTm9kZSAqKWVuZENvbnRhaW5lcgoreworICAg
IC8vIEZJWE1FOiBEbyBzb21ldGhpbmcgYWJvdXQgdGhlIGV4Y2VwdGlvbi4KKyAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b1dLRE9NTm9kZShf
aW1wbC0+ZW5kQ29udGFpbmVyKGVjKSk7Cit9CisKKy0gKE5TSW50ZWdlcillbmRPZmZzZXQKK3sK
KyAgICAvLyBGSVhNRTogRG8gc29tZXRoaW5nIGFib3V0IHRoZSBleGNlcHRpb24uCisgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgcmV0dXJuIF9pbXBsLT5lbmRPZmZzZXQo
ZWMpOworfQorCistIChOU1N0cmluZyAqKXRleHQKK3sKKyAgICByZXR1cm4gX2ltcGwtPnRleHQo
KTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gZGVmaW5lZChfX0xQNjRfXykgJiYgZGVmaW5lZChf
X2NsYW5nX18pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01UZXh0SXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHRJdGVyYXRvci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBjYTBkN2M4ZDI3NjdkNGYyNDNmNTU1NjIwMTEwNDQyYjM1OTRhOTEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01UZXh0SXRlcmF0b3IuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIGRl
ZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19jbGFuZ19fKQorCisjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KKworQGNsYXNzIFdLRE9NUmFuZ2U7CisKK0BpbnRlcmZhY2UgV0tE
T01UZXh0SXRlcmF0b3IgOiBOU09iamVjdAorCistIChpZClpbml0V2l0aFJhbmdlOihXS0RPTVJh
bmdlICopcmFuZ2U7CisKKy0gKHZvaWQpYWR2YW5jZTsKKworQHByb3BlcnR5IChyZWFkb25seSkg
Qk9PTCBhdEVuZDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIFdLRE9NUmFuZ2UgKmN1cnJlbnRSYW5n
ZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIE5TVUludGVnZXIgY3VycmVudFRleHRMZW5ndGg7CitA
cHJvcGVydHkgKHJlYWRvbmx5KSBjb25zdCB1bmljaGFyICpjdXJyZW50VGV4dFBvaW50ZXI7CisK
K0BlbmQKKworI2VuZGlmIC8vIGRlZmluZWQoX19MUDY0X18pICYmIGRlZmluZWQoX19jbGFuZ19f
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvbWFjL1dLRE9NVGV4dEl0ZXJhdG9yLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dEl0ZXJhdG9yLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBm
OWFlNjE5MTMyNjY4YmFlY2M0MGNhZWFiYTI1MTRlMGE4OGVjN2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01U
ZXh0SXRlcmF0b3IubW0KQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorCisjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgZGVmaW5lZChfX2NsYW5nX18pCisK
KyNpbXBvcnQgIldLRE9NVGV4dEl0ZXJhdG9yLmgiCisKKyNpbXBvcnQgIldLRE9NSW50ZXJuYWxz
LmgiCisjaW1wb3J0ICJXS0RPTVJhbmdlLmgiCisjaW1wb3J0IDxXZWJDb3JlL1RleHRJdGVyYXRv
ci5oPgorI2ltcG9ydCA8d3RmL093blB0ci5oPgorCitAaW50ZXJmYWNlIFdLRE9NVGV4dEl0ZXJh
dG9yICgpIHsKK0BwdWJsaWMKKyAgICBPd25QdHI8V2ViQ29yZTo6VGV4dEl0ZXJhdG9yPiBfdGV4
dEl0ZXJhdG9yOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tET01UZXh0SXRlcmF0b3IK
KworLSAoaWQpaW5pdFdpdGhSYW5nZTooV0tET01SYW5nZSAqKXJhbmdlCit7CisgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAg
ICBfdGV4dEl0ZXJhdG9yID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OlRleHRJdGVyYXRvcihXZWJL
aXQ6OnRvV2ViQ29yZVJhbmdlKHJhbmdlKSkpOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpYWR2YW5jZQoreworICAgIF90ZXh0SXRlcmF0b3ItPmFkdmFuY2UoKTsKK30KKworLSAo
Qk9PTClhdEVuZAoreworICAgIHJldHVybiBfdGV4dEl0ZXJhdG9yLT5hdEVuZCgpOworfQorCist
IChXS0RPTVJhbmdlICopY3VycmVudFJhbmdlCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS0RP
TVJhbmdlKF90ZXh0SXRlcmF0b3ItPnJhbmdlKCkuZ2V0KCkpOworfQorCistIChjb25zdCB1bmlj
aGFyICopY3VycmVudFRleHRQb2ludGVyCit7CisgICAgcmV0dXJuIF90ZXh0SXRlcmF0b3ItPmNo
YXJhY3RlcnMoKTsKK30KKworLSAoTlNVSW50ZWdlciljdXJyZW50VGV4dExlbmd0aAoreworICAg
IHJldHVybiBfdGV4dEl0ZXJhdG9yLT5sZW5ndGgoKTsKK30KKworQGVuZAorCisjZW5kaWYgLy8g
ZGVmaW5lZChfX0xQNjRfXykgJiYgZGVmaW5lZChfX2NsYW5nX18pCg==
</data>
<flag name="review"
          id="181036"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>