<?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>45582</bug_id>
          
          <creation_ts>2010-09-10 18:07:38 -0700</creation_ts>
          <short_desc>Move some Dashboard stuff from WebCore to WebKit along with a bit more FrameMac cleanup</short_desc>
          <delta_ts>2010-09-10 18:28:37 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>277579</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-10 18:07:38 -0700</bug_when>
    <thetext>Move some Dashboard stuff from WebCore to WebKit along with a bit more FrameMac cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277580</commentid>
    <comment_count>1</comment_count>
      <attachid>67277</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-10 18:12:50 -0700</bug_when>
    <thetext>Created attachment 67277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277590</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-10 18:28:37 -0700</bug_when>
    <thetext>Committed r67264: &lt;http://trac.webkit.org/changeset/67264&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67277</attachid>
            <date>2010-09-10 18:12:50 -0700</date>
            <delta_ts>2010-09-10 18:24:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45582-20100910181249.patch</filename>
            <type>text/plain</type>
            <size>37136</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzI2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMDktMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUg
c29tZSBEYXNoYm9hcmQgc3R1ZmYgZnJvbSBXZWJDb3JlIHRvIFdlYktpdCBhbG9uZyB3aXRoIGEg
Yml0IG1vcmUgRnJhbWVNYWMgY2xlYW51cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU1ODIKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBVcGRh
dGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZW1v
dmVkIFdlYkRhc2hib2FyZFJlZ2lvbi5oL20uCisgICAgICAgICogcGFnZS9tYWMvV2ViRGFzaGJv
YXJkUmVnaW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9tYWMvV2ViRGFzaGJvYXJkUmVn
aW9uLm06IFJlbW92ZWQuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6IFJlbW92ZWQgdW5uZWVk
ZWQgI2lmLiBSZW1vdmVkIGRhc2hib2FyZFJlZ2lvbnNEaWN0aW9uYXJ5IGZ1bmN0aW9uLCBub3cK
KyAgICAgICAgaGFuZGxlZCBpbiBXZWJLaXQuIFJlbW92ZWQgc2VhcmNoRm9yTlNMYWJlbHNBYm92
ZUNlbGwgZnVuY3Rpb24sIHdoaWNoIGhhZCBiZWNvbWUgZGVhZCBjb2RlLgorICAgICAgICAqIHBh
Z2UvbWFjL0ZyYW1lTWFjLm1tOiBEaXR0by4gQWxzbyB0d2Vha2VkIGEgcGxhY2UgdGhhdCBzYWlk
ICJpbnQgdW5zaWduZWQiLgorCiAyMDEwLTA5LTEwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQXR0ZW1wdGVkIGJ1aWxkIGZpeCBmb3IgUXQgTWluaW1hbC4KSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkocmV2aXNpb24gNjcyNTEpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDQ0LDYgKzEwNDQsNyBAQCBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjdf
TlNTaXplRXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxMWNvbXBsZXRlVVJMRVJLTjNXVEY2U3Ry
aW5nRQogX19aTks3V2ViQ29yZThEb2N1bWVudDEzYXhPYmplY3RDYWNoZUV2CiBfX1pOSzdXZWJD
b3JlOERvY3VtZW50MTRnZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFCitfX1pO
SzdXZWJDb3JlOERvY3VtZW50MTZkYXNoYm9hcmRSZWdpb25zRXYKIF9fWk5LN1dlYkNvcmU4RG9j
dW1lbnQyMGNhY2hlRG9jdW1lbnRFbGVtZW50RXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQzMWRp
c3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmdFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJD
b3JlOERvY3VtZW50NGJvZHlFdgpAQCAtMTE1Niw4ICsxMTU3LDYgQEAgX19aTks3V2ViQ29yZTEx
Q29udGV4dE1lbnUxOXBsYXRmb3JtRGVzYwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREFTSEJPQVJE
X1NVUFBPUlQpCi0ub2JqY19jbGFzc19uYW1lX1dlYkRhc2hib2FyZFJlZ2lvbgotX19aTjdXZWJD
b3JlNUZyYW1lMjZkYXNoYm9hcmRSZWdpb25zRGljdGlvbmFyeUV2CiBfX1pON1dlYkNvcmU4U2V0
dGluZ3M0MXNldFVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlRWIKICNlbmRp
ZgogCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gNjcyNTEpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjY5MCw3ICsyNjkwLDYgQEAKIAkJOTNGMTk5RUMwODI0NUU1
OTAwMUU5QUJDIC8qIFhTTFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZGMjRBMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xTdHlsZVNo
ZWV0LmggKi87IH07CiAJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA2RjI0
QzA2RDE4QTdFMDA0QTZGQTMgLyogWFNMVFByb2Nlc3Nvci5oICovOyB9OwogCQk5M0YxOTlGMDA4
MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFODU1RjdGMDcwMUU4MzUwMDIzOTc2OSAvKiBXZWJDb3Jl
Vmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTkzRjE5OUYxMDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNTBDMkExMDcwMjYyOTAw
MEFGNjQyQyAvKiBXZWJEYXNoYm9hcmRSZWdpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOUEyNjA4MjQ1RTU5MDAxRTlBQkMgLyogQ3Vy
c29yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU4Nzg0RjAwMkRFMzc1OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAqLzsgfTsKIAkJOTNGMTlB
M0MwODI0NUU1OTAwMUU5QUJDIC8qIERlcHJlY2F0ZWRQdHJMaXN0SW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODUxNjAyREUzNzU5MDFF
QTQxMjIgLyogRGVwcmVjYXRlZFB0ckxpc3RJbXBsLmNwcCAqLzsgfTsKIAkJOTNGMTlBNUYwODI0
NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVWaWV3RmFjdG9yeS5tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg1NTUwMkRFMzc1OTAxRUE0MTIyIC8qIFdl
YkNvcmVWaWV3RmFjdG9yeS5tICovOyB9OwpAQCAtMjcxMCw3ICsyNzA5LDYgQEAKIAkJOTNGMTlC
MDQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkYyNEIwNkQxOEE3RTAwNEE2RkEzIC8q
IFhTTFRQcm9jZXNzb3IuY3BwICovOyB9OwogCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyog
WFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3JM
aWJ4c2x0LmNwcCAqLzsgfTsKIAkJOTNGMTlCMDcwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVW
aWV3Lm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRTg1
NjA1MTA3MDFGOTExMDAyMzk3NjkgLyogV2ViQ29yZVZpZXcubSAqLzsgfTsKLQkJOTNGMTlCMDgw
ODI0NUU1OTAwMUU5QUJDIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1MEMyQTUwNzAyNjI5ODAwQUY2NDJDIC8q
IFdlYkRhc2hib2FyZFJlZ2lvbi5tICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICIt
V25vLWNhc3QtcXVhbCI7IH07IH07CiAJCTkzRjE5QjEzMDgyNDVFNTkwMDFFOUFCQyAvKiBBcHBs
aWNhdGlvblNlcnZpY2VzLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzI4NjkzMDI4NDZEQ0QwMTg2MzVDQSAvKiBBcHBsaWNhdGlv
blNlcnZpY2VzLmZyYW1ld29yayAqLzsgfTsKIAkJOTNGMTlCMTQwODI0NUU1OTAwMUU5QUJDIC8q
IENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNUMyODY5NDAyODQ2RENEMDE4NjM1Q0EgLyogQ2FyYm9uLmZyYW1ld29yayAq
LzsgfTsKIAkJOTNGMTlCMTUwODI0NUU1OTAwMUU5QUJDIC8qIENvY29hLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzI4Njk1MDI4
NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi87IH07CkBAIC03MDczLDggKzcwNzEs
NiBAQAogCQk1MTRDNzY2ODBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3RCYXNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjY5MENFOTIzQTEwMDdFRjNDRCAv
KiBSZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxNEM3NjZBMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlQmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlQmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTUwQzJBMTA3MDI2MjkwMDBBRjY0MkMg
LyogV2ViRGFzaGJvYXJkUmVnaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhc2hib2FyZFJlZ2lvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJNTE1MEMyQTUwNzAyNjI5
ODAwQUY2NDJDIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBXZWJEYXNoYm9hcmRSZWdpb24ubTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTUx
NTc4OEMwMTIwNzg1MkMwMEEzN0M0QSAvKiBWaXNpdGVkTGlua1N0cmF0ZWd5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpc2l0ZWRMaW5rU3RyYXRlZ3kuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE1QjAzOTcwQ0QxNjQyQTAwQjdFQTlDIC8qIFNRTFN0YXRl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxTdGF0ZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE1QjAzOTgwQ0QxNjQyQTAwQjdFQTlDIC8q
IFNRTFN0YXRlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
UUxTdGF0ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQxMDgsOCAr
MTQxMDQsNiBAQAogCQkJCUJFOTgzRDk1MDUyQTJFMEEwMDg5MkQ4NSAvKiBXZWJDb3JlS2V5Ym9h
cmRVSU1vZGUuaCAqLywKIAkJCQlGNTg3ODU1NDAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZVZp
ZXdGYWN0b3J5LmggKi8sCiAJCQkJRjU4Nzg1NTUwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVW
aWV3RmFjdG9yeS5tICovLAotCQkJCTUxNTBDMkExMDcwMjYyOTAwMEFGNjQyQyAvKiBXZWJEYXNo
Ym9hcmRSZWdpb24uaCAqLywKLQkJCQk1MTUwQzJBNTA3MDI2Mjk4MDBBRjY0MkMgLyogV2ViRGFz
aGJvYXJkUmVnaW9uLm0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0yMDMzNSw3ICsyMDMyOSw2IEBACiAJCQkJMzdGODE4RkQwRDY1NzYw
NjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNG
MTk5RjAwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlCMzA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZVZpZXdGYWN0b3J5LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk5M0YxOTlGMTA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViRGFzaGJvYXJkUmVn
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzZEQURFRjBBMTk1RkRGMDBFNUNEMTQgLyogV2Vi
Rm9udENhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0QyMEY2RDEwN0Y0MzhCMDBBODAzOTIg
LyogV2ViR0xBY3RpdmVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlDOTEwNDJEMzJG
MDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjA2MjcsNyArMjA2
MjAsNiBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3Qg
PSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhj
b2RlIDIuNCI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVk
Rm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApAQCAt
MjI4NTEsNyArMjI4NDMsNiBAQAogCQkJCTM3RjgxOEZFMEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJD
b3JlVVJMUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUIwNzA4MjQ1RTU5MDAx
RTlBQkMgLyogV2ViQ29yZVZpZXcubSBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QTVGMDgyNDVF
NTkwMDFFOUFCQyAvKiBXZWJDb3JlVmlld0ZhY3RvcnkubSBpbiBTb3VyY2VzICovLAotCQkJCTkz
RjE5QjA4MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJEYXNoYm9hcmRSZWdpb24ubSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNkRBREZBMEExOTYwMkIwMEU1Q0QxNCAvKiBXZWJGb250Q2FjaGUubW0gaW4g
U291cmNlcyAqLywKIAkJCQk0OUM3QjlDODEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xCdWZmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU0RTkxQUUxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBXZWJDb3JlL3BhZ2Uv
RnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkocmV2aXNpb24gNjcy
NTEpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDkgKzEz
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRJblZpZXdTb3VyY2VN
b2RlKGJvb2wgPSB0cnVlKTsKIAogICAgICAgICB2b2lkIGtlZXBBbGl2ZSgpOyAvLyBVc2VkIHRv
IGtlZXAgdGhlIGZyYW1lIGFsaXZlIHdoZW4gcnVubmluZyBhIHNjcmlwdCB0aGF0IG1pZ2h0IGRl
c3Ryb3kgaXQuCi0jaWZuZGVmIE5ERUJVRwogICAgICAgICBzdGF0aWMgdm9pZCBjYW5jZWxBbGxL
ZWVwQWxpdmUoKTsKLSNlbmRpZgogCiAgICAgICAgIHZvaWQgc2V0RG9jdW1lbnQoUGFzc1JlZlB0
cjxEb2N1bWVudD4pOwogCkBAIC0xNzIsMTkgKzE3MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFN0cmluZyBtYXRjaExhYmVsc0FnYWluc3RFbGVtZW50KGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBsYWJlbHMsIEVsZW1lbnQqKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLQotICAgICAg
ICBOU1N0cmluZyogc2VhcmNoRm9yTlNMYWJlbHNBYm92ZUNlbGwoUmVndWxhckV4cHJlc3Npb24q
LCBIVE1MVGFibGVDZWxsRWxlbWVudCosIHNpemVfdCogcmVzdWx0RGlzdGFuY2VGcm9tU3RhcnRP
ZkNlbGwpOwogICAgICAgICBOU1N0cmluZyogc2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudChO
U0FycmF5KiBsYWJlbHMsIEVsZW1lbnQqLCBzaXplX3QqIHJlc3VsdERpc3RhbmNlLCBib29sKiBy
ZXN1bHRJc0luQ2VsbEFib3ZlKTsKICAgICAgICAgTlNTdHJpbmcqIG1hdGNoTGFiZWxzQWdhaW5z
dEVsZW1lbnQoTlNBcnJheSogbGFiZWxzLCBFbGVtZW50Kik7CiAKLSNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCi0gICAgICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGRhc2hib2FyZFJlZ2lv
bnNEaWN0aW9uYXJ5KCk7Ci0jZW5kaWYKLQogICAgICAgICBOU0ltYWdlKiBzZWxlY3Rpb25JbWFn
ZShib29sIGZvcmNlQmxhY2tUZXh0ID0gZmFsc2UpIGNvbnN0OwogICAgICAgICBOU0ltYWdlKiBz
bmFwc2hvdERyYWdJbWFnZShOb2RlKiwgTlNSZWN0KiBpbWFnZVJlY3QsIE5TUmVjdCogZWxlbWVu
dFJlY3QpIGNvbnN0OwogICAgICAgICBOU0ltYWdlKiBpbWFnZUZyb21SZWN0KE5TUmVjdCkgY29u
c3Q7Ci0KICNlbmRpZgogCiAgICAgLy8gPT09PT09PT0KSW5kZXg6IFdlYkNvcmUvcGFnZS9tYWMv
RnJhbWVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL21hYy9GcmFtZU1hYy5tbQko
cmV2aXNpb24gNjcyNTEpCisrKyBXZWJDb3JlL3BhZ2UvbWFjL0ZyYW1lTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01NSwxMCArNTUsNiBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2lt
cG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQotI2ltcG9ydCAiV2ViRGFzaGJvYXJkUmVnaW9uLmgiCi0jZW5kaWYKLSAKIEBpbnRlcmZhY2Ug
TlNWaWV3IChXZWJDb3JlSFRNTERvY3VtZW50VmlldykKIC0gKHZvaWQpZHJhd1NpbmdsZVJlY3Q6
KE5TUmVjdClyZWN0OwogQGVuZApAQCAtMTQwLDQzICsxMzYsNiBAQCBzdGF0aWMgUmVndWxhckV4
cHJlc3Npb24qIHJlZ0V4cEZvckxhYmVsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTlNTdHJp
bmcqIEZyYW1lOjpzZWFyY2hGb3JOU0xhYmVsc0Fib3ZlQ2VsbChSZWd1bGFyRXhwcmVzc2lvbiog
cmVnRXhwLCBIVE1MVGFibGVDZWxsRWxlbWVudCogY2VsbCwgc2l6ZV90KiByZXN1bHREaXN0YW5j
ZUZyb21TdGFydE9mQ2VsbCkKLXsKLSAgICBSZW5kZXJPYmplY3QqIGNlbGxSZW5kZXJlciA9IGNl
bGwtPnJlbmRlcmVyKCk7Ci0KLSAgICBpZiAoY2VsbFJlbmRlcmVyICYmIGNlbGxSZW5kZXJlci0+
aXNUYWJsZUNlbGwoKSkgewotICAgICAgICBSZW5kZXJUYWJsZUNlbGwqIHRhYmxlQ2VsbFJlbmRl
cmVyID0gdG9SZW5kZXJUYWJsZUNlbGwoY2VsbFJlbmRlcmVyKTsKLSAgICAgICAgUmVuZGVyVGFi
bGVDZWxsKiBjZWxsQWJvdmVSZW5kZXJlciA9IHRhYmxlQ2VsbFJlbmRlcmVyLT50YWJsZSgpLT5j
ZWxsQWJvdmUodGFibGVDZWxsUmVuZGVyZXIpOwotCi0gICAgICAgIGlmIChjZWxsQWJvdmVSZW5k
ZXJlcikgewotICAgICAgICAgICAgSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIGFib3ZlQ2VsbCA9Ci0g
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihjZWxsQWJv
dmVSZW5kZXJlci0+bm9kZSgpKTsKLQotICAgICAgICAgICAgaWYgKGFib3ZlQ2VsbCkgewotICAg
ICAgICAgICAgICAgIC8vIHNlYXJjaCB3aXRoaW4gdGhlIGFib3ZlIGNlbGwgd2UgZm91bmQgZm9y
IGEgbWF0Y2gKLSAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoU2VhcmNoZWQgPSAwOyAgICAK
LSAgICAgICAgICAgICAgICBmb3IgKE5vZGUqIG4gPSBhYm92ZUNlbGwtPmZpcnN0Q2hpbGQoKTsg
bjsgbiA9IG4tPnRyYXZlcnNlTmV4dE5vZGUoYWJvdmVDZWxsKSkgewotICAgICAgICAgICAgICAg
ICAgICBpZiAobi0+aXNUZXh0Tm9kZSgpICYmIG4tPnJlbmRlcmVyKCkgJiYgbi0+cmVuZGVyZXIo
KS0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZvciBlYWNoIHRleHQgY2h1bmssIHJ1biB0aGUgcmVnZXhwCi0gICAgICAgICAg
ICAgICAgICAgICAgICBTdHJpbmcgbm9kZVN0cmluZyA9IG4tPm5vZGVWYWx1ZSgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IHJlZ0V4cC0+c2VhcmNoUmV2KG5vZGVTdHJpbmcp
OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA+PSAwKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHJlc3VsdERpc3RhbmNlRnJvbVN0YXJ0T2ZDZWxsKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqcmVzdWx0RGlzdGFuY2VGcm9tU3RhcnRPZkNlbGwg
PSBsZW5ndGhTZWFyY2hlZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9k
ZVN0cmluZy5zdWJzdHJpbmcocG9zLCByZWdFeHAtPm1hdGNoZWRMZW5ndGgoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhTZWFyY2hl
ZCArPSBub2RlU3RyaW5nLmxlbmd0aCgpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIC8vIEFueSBy
ZWFzb24gaW4gcHJhY3RpY2UgdG8gc2VhcmNoIGFsbCBjZWxscyBpbiB0aGF0IGFyZSBhYm92ZSBj
ZWxsPwotICAgIGlmIChyZXN1bHREaXN0YW5jZUZyb21TdGFydE9mQ2VsbCkKLSAgICAgICAgKnJl
c3VsdERpc3RhbmNlRnJvbVN0YXJ0T2ZDZWxsID0gbm90Rm91bmQ7Ci0gICAgcmV0dXJuIG5pbDsK
LX0KLQogTlNTdHJpbmcqIEZyYW1lOjpzZWFyY2hGb3JMYWJlbHNCZWZvcmVFbGVtZW50KE5TQXJy
YXkqIGxhYmVscywgRWxlbWVudCogZWxlbWVudCwgc2l6ZV90KiByZXN1bHREaXN0YW5jZSwgYm9v
bCogcmVzdWx0SXNJbkNlbGxBYm92ZSkKIHsKICAgICBSZWd1bGFyRXhwcmVzc2lvbiogcmVnRXhw
ID0gcmVnRXhwRm9yTGFiZWxzKGxhYmVscyk7CkBAIC0xOTUsNyArMTU0LDcgQEAgTlNTdHJpbmcq
IEZyYW1lOjpzZWFyY2hGb3JMYWJlbHNCZWZvcmVFbAogICAgICAgICAqcmVzdWx0SXNJbkNlbGxB
Ym92ZSA9IGZhbHNlOwogCiAgICAgLy8gd2FsayBiYWNrd2FyZHMgaW4gdGhlIG5vZGUgdHJlZSwg
dW50aWwgYW5vdGhlciBlbGVtZW50LCBvciBmb3JtLCBvciBlbmQgb2YgdHJlZQotICAgIGludCB1
bnNpZ25lZCBsZW5ndGhTZWFyY2hlZCA9IDA7CisgICAgdW5zaWduZWQgbGVuZ3RoU2VhcmNoZWQg
PSAwOwogICAgIE5vZGUqIG47CiAgICAgZm9yIChuID0gZWxlbWVudC0+dHJhdmVyc2VQcmV2aW91
c05vZGUoKTsKICAgICAgICAgIG4gJiYgbGVuZ3RoU2VhcmNoZWQgPCBjaGFyc1NlYXJjaGVkVGhy
ZXNob2xkOwpAQCAtMzk1LDQ0ICszNTQsNiBAQCBEcmFnSW1hZ2VSZWYgRnJhbWU6Om5vZGVJbWFn
ZShOb2RlKiBub2RlCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKLU5TTXV0YWJsZURpY3Rpb25hcnkqIEZyYW1lOjpkYXNoYm9hcmRSZWdpb25z
RGljdGlvbmFyeSgpCi17Ci0gICAgRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCk7Ci0KLSAgICBj
b25zdCBWZWN0b3I8RGFzaGJvYXJkUmVnaW9uVmFsdWU+JiByZWdpb25zID0gZG9jLT5kYXNoYm9h
cmRSZWdpb25zKCk7Ci0gICAgc2l6ZV90IG4gPSByZWdpb25zLnNpemUoKTsKLQotICAgIC8vIENv
bnZlcnQgdGhlIFZlY3RvcjxEYXNoYm9hcmRSZWdpb25WYWx1ZT4gaW50byBhIE5TRGljdGlvbmFy
eSBvZiBXZWJEYXNoYm9hcmRSZWdpb25zCi0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSogd2ViUmVn
aW9ucyA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ2FwYWNpdHk6bl07Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspIHsKLSAgICAgICAgY29uc3QgRGFzaGJv
YXJkUmVnaW9uVmFsdWUmIHJlZ2lvbiA9IHJlZ2lvbnNbaV07Ci0KLSAgICAgICAgaWYgKHJlZ2lv
bi50eXBlID09IFN0eWxlRGFzaGJvYXJkUmVnaW9uOjpOb25lKQotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIAotICAgICAgICBOU1N0cmluZyAqbGFiZWwgPSByZWdpb24ubGFiZWw7Ci0g
ICAgICAgIFdlYkRhc2hib2FyZFJlZ2lvblR5cGUgdHlwZSA9IFdlYkRhc2hib2FyZFJlZ2lvblR5
cGVOb25lOwotICAgICAgICBpZiAocmVnaW9uLnR5cGUgPT0gU3R5bGVEYXNoYm9hcmRSZWdpb246
OkNpcmNsZSkKLSAgICAgICAgICAgIHR5cGUgPSBXZWJEYXNoYm9hcmRSZWdpb25UeXBlQ2lyY2xl
OwotICAgICAgICBlbHNlIGlmIChyZWdpb24udHlwZSA9PSBTdHlsZURhc2hib2FyZFJlZ2lvbjo6
UmVjdGFuZ2xlKQotICAgICAgICAgICAgdHlwZSA9IFdlYkRhc2hib2FyZFJlZ2lvblR5cGVSZWN0
YW5nbGU7Ci0gICAgICAgIE5TTXV0YWJsZUFycmF5ICpyZWdpb25WYWx1ZXMgPSBbd2ViUmVnaW9u
cyBvYmplY3RGb3JLZXk6bGFiZWxdOwotICAgICAgICBpZiAoIXJlZ2lvblZhbHVlcykgewotICAg
ICAgICAgICAgcmVnaW9uVmFsdWVzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhD
YXBhY2l0eToxXTsKLSAgICAgICAgICAgIFt3ZWJSZWdpb25zIHNldE9iamVjdDpyZWdpb25WYWx1
ZXMgZm9yS2V5OmxhYmVsXTsKLSAgICAgICAgICAgIFtyZWdpb25WYWx1ZXMgcmVsZWFzZV07Ci0g
ICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIFdlYkRhc2hib2FyZFJlZ2lvbiAqd2ViUmVnaW9u
ID0gW1tXZWJEYXNoYm9hcmRSZWdpb24gYWxsb2NdIGluaXRXaXRoUmVjdDpyZWdpb24uYm91bmRz
IGNsaXA6cmVnaW9uLmNsaXAgdHlwZTp0eXBlXTsKLSAgICAgICAgW3JlZ2lvblZhbHVlcyBhZGRP
YmplY3Q6d2ViUmVnaW9uXTsKLSAgICAgICAgW3dlYlJlZ2lvbiByZWxlYXNlXTsKLSAgICB9Ci0g
ICAgCi0gICAgcmV0dXJuIHdlYlJlZ2lvbnM7Ci19Ci0jZW5kaWYKLQogRHJhZ0ltYWdlUmVmIEZy
YW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24oKQogewogICAgIGlmICghc2VsZWN0aW9uKCktPmlz
UmFuZ2UoKSkKSW5kZXg6IFdlYkNvcmUvcGFnZS9tYWMvV2ViRGFzaGJvYXJkUmVnaW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL21hYy9XZWJEYXNoYm9hcmRSZWdpb24uaAkocmV2aXNp
b24gNjcyNTEpCisrKyBXZWJDb3JlL3BhZ2UvbWFjL1dlYkRhc2hib2FyZFJlZ2lvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCAxCi0jZW5kaWYKLQotI2lmIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVAotCi10eXBl
ZGVmIGVudW0gewotICAgIFdlYkRhc2hib2FyZFJlZ2lvblR5cGVOb25lLAotICAgIFdlYkRhc2hi
b2FyZFJlZ2lvblR5cGVDaXJjbGUsCi0gICAgV2ViRGFzaGJvYXJkUmVnaW9uVHlwZVJlY3Rhbmds
ZSwKLSAgICBXZWJEYXNoYm9hcmRSZWdpb25UeXBlU2Nyb2xsZXJSZWN0YW5nbGUKLX0gV2ViRGFz
aGJvYXJkUmVnaW9uVHlwZTsKLQotQGludGVyZmFjZSBXZWJEYXNoYm9hcmRSZWdpb24gOiBOU09i
amVjdCA8TlNDb3B5aW5nPgotewotICAgIE5TUmVjdCByZWN0OwotICAgIE5TUmVjdCBjbGlwOwot
ICAgIFdlYkRhc2hib2FyZFJlZ2lvblR5cGUgdHlwZTsKLX0KLS0gaW5pdFdpdGhSZWN0OihOU1Jl
Y3QpcmVjdCBjbGlwOihOU1JlY3QpY2xpcCB0eXBlOihXZWJEYXNoYm9hcmRSZWdpb25UeXBlKXR5
cGU7Ci0tIChOU1JlY3QpZGFzaGJvYXJkUmVnaW9uQ2xpcDsKLS0gKE5TUmVjdClkYXNoYm9hcmRS
ZWdpb25SZWN0OwotLSAoV2ViRGFzaGJvYXJkUmVnaW9uVHlwZSlkYXNoYm9hcmRSZWdpb25UeXBl
OwotQGVuZAotCi0jZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGFnZS9tYWMvV2ViRGFzaGJvYXJkUmVn
aW9uLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL21hYy9XZWJEYXNoYm9hcmRSZWdpb24u
bQkocmV2aXNpb24gNjcyNTEpCisrKyBXZWJDb3JlL3BhZ2UvbWFjL1dlYkRhc2hib2FyZFJlZ2lv
bi5tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJj
b25maWcuaCIKLSNpbXBvcnQgIldlYkRhc2hib2FyZFJlZ2lvbi5oIgotCi0jaW1wb3J0IDx3dGYv
VW51c2VkUGFyYW0uaD4KLQotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLQotQGltcGxl
bWVudGF0aW9uIFdlYkRhc2hib2FyZFJlZ2lvbgotCi0tIGluaXRXaXRoUmVjdDooTlNSZWN0KXIg
Y2xpcDooTlNSZWN0KWMgdHlwZTooV2ViRGFzaGJvYXJkUmVnaW9uVHlwZSl0Ci17Ci0gICAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKLSAgICByZWN0ID0gcjsKLSAgICBjbGlwID0gYzsKLSAgICB0eXBl
ID0gdDsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUg
Kil1bnVzZWRab25lCi17Ci0gICAgVU5VU0VEX1BBUkFNKHVudXNlZFpvbmUpOwotCi0gICAgcmV0
dXJuIFtzZWxmIHJldGFpbl07Ci19Ci0KLS0gKE5TUmVjdClkYXNoYm9hcmRSZWdpb25DbGlwCi17
Ci0gICAgcmV0dXJuIGNsaXA7Ci19Ci0KLS0gKE5TUmVjdClkYXNoYm9hcmRSZWdpb25SZWN0Ci17
Ci0gICAgcmV0dXJuIHJlY3Q7Ci19Ci0KLS0gKFdlYkRhc2hib2FyZFJlZ2lvblR5cGUpZGFzaGJv
YXJkUmVnaW9uVHlwZQotewotICAgIHJldHVybiB0eXBlOwotfQotCi1zdGF0aWMgY29uc3QgY2hh
ciogdHlwZU5hbWUoV2ViRGFzaGJvYXJkUmVnaW9uVHlwZSB0eXBlKQotewotICAgIHN3aXRjaCAo
dHlwZSkgewotICAgICAgICBjYXNlIFdlYkRhc2hib2FyZFJlZ2lvblR5cGVOb25lOgotICAgICAg
ICAgICAgcmV0dXJuICJOb25lIjsKLSAgICAgICAgY2FzZSBXZWJEYXNoYm9hcmRSZWdpb25UeXBl
Q2lyY2xlOgotICAgICAgICAgICAgcmV0dXJuICJDaXJjbGUiOwotICAgICAgICBjYXNlIFdlYkRh
c2hib2FyZFJlZ2lvblR5cGVSZWN0YW5nbGU6Ci0gICAgICAgICAgICByZXR1cm4gIlJlY3Rhbmds
ZSI7Ci0gICAgICAgIGNhc2UgV2ViRGFzaGJvYXJkUmVnaW9uVHlwZVNjcm9sbGVyUmVjdGFuZ2xl
OgotICAgICAgICAgICAgcmV0dXJuICJTY3JvbGxlclJlY3RhbmdsZSI7Ci0gICAgfQotICAgIHJl
dHVybiAiVW5rbm93biI7Ci19Ci0KLS0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KLXsKLSAgICBy
ZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJyZWN0OiVAIGNsaXA6JUAgdHlwZTol
cyIsIE5TU3RyaW5nRnJvbVJlY3QocmVjdCksIE5TU3RyaW5nRnJvbVJlY3QoY2xpcCksIHR5cGVO
YW1lKHR5cGUpXTsKLX0KLQotLy8gRklYTUU6IE92ZXJyaWRpbmcgaXNFcXVhbDogd2l0aG91dCBv
dmVycmlkaW5nIGhhc2ggd2lsbCBjYXVzZSB0cm91YmxlIGlmIHRoaXMgZXZlciBnb2VzIGludG8g
YSBOU1NldCBvciBpcyB0aGUga2V5IGluIGFuIE5TRGljdGlvbmFyeS4KLS0gKEJPT0wpaXNFcXVh
bDooaWQpb3RoZXIKLXsKLSAgICByZXR1cm4gTlNFcXVhbFJlY3RzKHJlY3QsIFtvdGhlciBkYXNo
Ym9hcmRSZWdpb25SZWN0XSkgJiYgTlNFcXVhbFJlY3RzKGNsaXAsIFtvdGhlciBkYXNoYm9hcmRS
ZWdpb25DbGlwXSkgJiYgdHlwZSA9PSBbb3RoZXIgZGFzaGJvYXJkUmVnaW9uVHlwZV07Ci19Ci0K
LUBlbmQKLQotI2VuZGlmCkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3MjYwKQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA5LTEwICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNb3ZlIHNvbWUgRGFzaGJvYXJkIHN0dWZmIGZyb20gV2ViQ29yZSB0byBXZWJLaXQg
YWxvbmcgd2l0aCBhIGJpdCBtb3JlIEZyYW1lTWFjIGNsZWFudXAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTgyCisKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgV2ViRGFzaGJvYXJkUmVnaW9uLmgvbW0g
YW5kCisgICAgICAgIGFsc28gZ2F2ZSB0aGUgaGVhZGVyIHByaXZhdGUgdmlzaWJpbGl0eSBzbyBp
dCB3aWxsIGdldCBpbnN0YWxsZWQgaW4gdGhlCisgICAgICAgIFByaXZhdGVIZWFkZXJzIGRpcmVj
dG9yeS4KKwogMjAxMC0wOS0wMiAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDY3MjUxKQorKysgV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMjEsNiArMzIx
LDggQEAKIAkJOTM5ODExMkMwODI0QkYwMTAwOERGMDM4IC8qIFdlYkNvcmUuZnJhbWV3b3JrIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjczOEM5RUEw
M0ZBRDNERjAzMjFGQkUwIC8qIFdlYkNvcmUuZnJhbWV3b3JrICovOyB9OwogCQk5Mzk4MTEyRTA4
MjRCRjAxMDA4REYwMzggLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRDYyM0REMDUxRTc5MUYwMDJGNDdERCAvKiBs
aWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQk5Mzk4MTEyRjA4MjRCRjAxMDA4REYwMzggLyogU2Vj
dXJpdHkuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODMwRTgxRTAwNTg1M0FDMDAwQUQwODkxIC8qIFNlY3VyaXR5LmZyYW1ld29yayAq
LzsgfTsKKwkJOTNFMkExQTQxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkExQTIx
MjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRTJBMUE1MTIzQjBCM0MwMDlGRTEy
QSAvKiBXZWJEYXNoYm9hcmRSZWdpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTFBMzEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJvYXJk
UmVnaW9uLm1tICovOyB9OwogCQk5M0VCMTc4RDA5Rjg4RDQ2MDA5MUY4RkYgLyogV2ViU3lzdGVt
SW50ZXJmYWNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNFQjE3OEMwOUY4OEQ0NjAwOTFGOEZGIC8qIFdlYlN5c3RlbUludGVyZmFjZS5tbSAqLzsg
fTsKIAkJOTNFQjE3OEYwOUY4OEQ1MTAwOTFGOEZGIC8qIFdlYlN5c3RlbUludGVyZmFjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFQjE3OEUwOUY4
OEQ1MTAwOTFGOEZGIC8qIFdlYlN5c3RlbUludGVyZmFjZS5oICovOyB9OwogCQk5M0ZERTkzMzBE
NzlDQUYzMDA3NEYwMjkgLyogV2ViSGlzdG9yeUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZERTkzMjBENzlDQUYzMDA3NEYwMjkgLyog
V2ViSGlzdG9yeUludGVybmFsLmggKi87IH07CkBAIC02MjcsNiArNjI5LDggQEAKIAkJOTNDNkYx
NDUwNzkyMEI5MzAwMjQ0OUNEIC8qIFdlYkZyYW1lVmlld1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZVZpZXdQcml2YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQk5M0QxRkUxMzA2N0VCMTBCMDA5Q0U2OEEgLyogV2ViTlNPYmplY3RFeHRyYXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOU09iamVj
dEV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJOTNENjIzREQwNTFFNzkxRjAwMkY0N0REIC8qIGxpYmljdWNvcmUuZHlsaWIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYmljdWNvcmUuZHlsaWI7IHBhdGggPSAvdXNyL2xp
Yi9saWJpY3Vjb3JlLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQk5M0Uy
QTFBMjEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJvYXJkUmVnaW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhc2hib2FyZFJlZ2lvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0UyQTFBMzEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJvYXJk
UmVnaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRGFz
aGJvYXJkUmVnaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0VCMTc4QzA5
Rjg4RDQ2MDA5MUY4RkYgLyogV2ViU3lzdGVtSW50ZXJmYWNlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU3lzdGVtSW50ZXJmYWNlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0VCMTc4RTA5Rjg4RDUxMDA5MUY4RkYgLyogV2ViU3lzdGVt
SW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlN5c3RlbUlu
dGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0ZERTkzMjBENzlDQUYz
MDA3NEYwMjkgLyogV2ViSGlzdG9yeUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkhpc3RvcnlJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTE0MiwyNSArMTE0NiwyNyBAQAogCQk5QzdDQUJCQjAxOTBBMzdDMEVDQTE2RUEgLyog
V2ViVmlldyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
NTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXIu
aCAqLywKLQkJCQk1OThBRDkyOTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRp
b25Qcm92aWRlck1vY2tJbnRlcm5hbC5oICovLAotCQkJCTU5OEFEOTI3MTIwMUNGMzIwMEFCQUU0
RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbSAqLywKLQkJCQk1OThBRDky
NTEyMDFDRjI1MDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2suaCAq
LywKLQkJCQk1OThBRDkyMzEyMDFDRjE5MDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25J
bnRlcm5hbC5oICovLAotCQkJCTU5OEFEOTIxMTIwMUNGMTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvbi5tbSAqLywKLQkJCQk1OThBRDkxRjEyMDFDRjA3MDBBQkFFNEUgLyogV2ViRGV2
aWNlT3JpZW50YXRpb24uaCAqLywKIAkJCQlGNTJDQTZCRDAyREY5RDBGMDE4NjM1Q0EgLyogSFRN
TCAqLywKIAkJCQk1MUU5NEMwNzA2QzAyQ0EzMDBBOUIwOUUgLyogUERGICovLAogCQkJCTgzNzM0
MzVBMDYyNEVFMEQwMEYzQjI4OSAvKiBXZWJBcmNoaXZlLmggKi8sCiAJCQkJODM3MzQzNUIwNjI0
RUUwRDAwRjNCMjg5IC8qIFdlYkFyY2hpdmUubW0gKi8sCiAJCQkJOTMzRDY1OTkwMzQxM0ZGMjAw
ODYzNUNFIC8qIFdlYkNsaXBWaWV3LmggKi8sCiAJCQkJOTMzRDY1OUEwMzQxM0ZGMjAwODYzNUNF
IC8qIFdlYkNsaXBWaWV3Lm1tICovLAorCQkJCTkzRTJBMUEyMTIzQjBCM0MwMDlGRTEyQSAvKiBX
ZWJEYXNoYm9hcmRSZWdpb24uaCAqLywKKwkJCQk5M0UyQTFBMzEyM0IwQjNDMDA5RkUxMkEgLyog
V2ViRGFzaGJvYXJkUmVnaW9uLm1tICovLAogCQkJCTM5NDQ2MDcwMDIwRjUwRUQwRUNBMTc2NyAv
KiBXZWJEYXRhU291cmNlLmggKi8sCiAJCQkJMzk0NDYwNzEwMjBGNTBFRDBFQ0ExNzY3IC8qIFdl
YkRhdGFTb3VyY2UubW0gKi8sCiAJCQkJNjU4QTQwOTUwQTE0ODUzQjAwNUU2OTg3IC8qIFdlYkRh
dGFTb3VyY2VJbnRlcm5hbC5oICovLAogCQkJCTM5NDQ2MDcyMDIwRjUwRUQwRUNBMTc2NyAvKiBX
ZWJEYXRhU291cmNlUHJpdmF0ZS5oICovLAogCQkJCUJDNTQyQzQwMEZENzc2NkYwMEQ4QUI1RCAv
KiBXZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5oICovLAogCQkJCUJDNTQyQzQxMEZE
Nzc2NkYwMEQ4QUI1RCAvKiBXZWJEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5tbSAqLywK
KwkJCQk1OThBREE0NTEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlci5oICovLAorCQkJCTU5OEFEOTI5MTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmggKi8sCisJCQkJNTk4QUQ5MjcxMjAxQ0YzMjAw
QUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrLm1tICovLAorCQkJCTU5
OEFEOTI1MTIwMUNGMjUwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9j
ay5oICovLAorCQkJCTU5OEFEOTIzMTIwMUNGMTkwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRh
dGlvbkludGVybmFsLmggKi8sCisJCQkJNTk4QUQ5MjExMjAxQ0YxMDAwQUJBRTRFIC8qIFdlYkRl
dmljZU9yaWVudGF0aW9uLm1tICovLAorCQkJCTU5OEFEOTFGMTIwMUNGMDcwMEFCQUU0RSAvKiBX
ZWJEZXZpY2VPcmllbnRhdGlvbi5oICovLAogCQkJCTM1MDgxREFFMDJCNkQ0RjUwQUNBMkFDQSAv
KiBXZWJEb2N1bWVudC5oICovLAogCQkJCUVEMjFCOTgxMDUyOEY3QUEwMDMyOTlBQyAvKiBXZWJE
b2N1bWVudEludGVybmFsLmggKi8sCiAJCQkJNjVGRkI3RkEwQUQwQjdEMzAwNDhDRDA1IC8qIFdl
YkRvY3VtZW50TG9hZGVyTWFjLmggKi8sCkBAIC0xNjIyLDYgKzE2MjgsNyBAQAogCQkJCTU5OEFE
OTI2MTIwMUNGMjUwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTk4QUQ5MkExMjAxQ0YzQjAwQUJBRTRFIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5
OEFEQTQ2MTIwMjI3NTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5M0UyQTFBNDEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJv
YXJkUmVnaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5ODgsNiArMTk5NSw3IEBACiAJCQkJNTk4
QUQ5MUUxMjAxQ0VDRjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTk4QUQ5MjIxMjAxQ0YxMDAwQUJBRTRFIC8qIFdlYkRldmljZU9y
aWVudGF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTk4QUQ5MjgxMjAxQ0YzMjAwQUJBRTRF
IC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJOTNFMkExQTUxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3MjYwKQorKysgV2ViS2l0L21hYy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOS0xMCAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTW92ZSBzb21lIERhc2hib2FyZCBzdHVmZiBmcm9tIFdlYkNvcmUgdG8g
V2ViS2l0IGFsb25nIHdpdGggYSBiaXQgbW9yZSBGcmFtZU1hYyBjbGVhbnVwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTU4MgorCisgICAgICAgICog
TWlncmF0ZUhlYWRlcnMubWFrZTogUmVtb3ZlZCBXZWJEYXNoYm9hcmRSZWdpb24uaCBmcm9tIHRo
ZSBzZXQgb2YgaGVhZGVyIHRvIGNvcHkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmRhc2hib2FyZFJlZ2lv
bnNDaGFuZ2VkKTogQ2hhbmdlZCB0aGlzIHRvIGNhbGwKKyAgICAgICAgLVtXZWJWaWV3IF9kYXNo
Ym9hcmRSZWdpb25zXSBzbyB3ZSBkb24ndCBoYXZlIHR3byBjb3BpZXMgb2YgdGhhdCBjb2RlLgor
CisgICAgICAgICogV2ViVmlldy9XZWJEYXNoYm9hcmRSZWdpb24uaDogQ29waWVkIGZyb20gV2Vi
Q29yZS9wYWdlL21hYy9XZWJEYXNoYm9hcmRSZWdpb24uaC4KKyAgICAgICAgKiBXZWJWaWV3L1dl
YkRhc2hib2FyZFJlZ2lvbi5tbTogQ29waWVkIGZyb20gV2ViQ29yZS9wYWdlL21hYy9XZWJEYXNo
Ym9hcmRSZWdpb24ubS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV2ViVmlldyBfZGFzaGJvYXJkUmVnaW9uc10pOiBNb3ZlZCB0aGUgY29kZSBmcm9tIEZyYW1l
OjpkYXNoYm9hcmRSZWdpb25zIGhlcmUuCisKIDIwMTAtMDktMTAgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4
OiBXZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21h
Yy9NaWdyYXRlSGVhZGVycy5tYWtlCShyZXZpc2lvbiA2NzI1MSkKKysrIFdlYktpdC9tYWMvTWln
cmF0ZUhlYWRlcnMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTgwLDcgKzE4MCw2IEBAIGFsbCA6
IFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NWFBhdGhFeHByZXNzaW9uLmggXAogICAg
ICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01YUGF0aE5TUmVzb2x2ZXIuaCBcCiAgICAgJChQVUJM
SUNfSEVBREVSU19ESVIpL0RPTVhQYXRoUmVzdWx0LmggXAotICAgICQoUFJJVkFURV9IRUFERVJT
X0RJUikvV2ViRGFzaGJvYXJkUmVnaW9uLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9X
ZWJTY3JpcHRPYmplY3QuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL25wYXBpLmggXAog
ICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ucGZ1bmN0aW9ucy5oIFwKSW5kZXg6IFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCShyZXZpc2lvbiA2NzI1MSkK
KysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC02MTUsMTkgKzYxNSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cG9wdWxh
dGVWaXNpdGVkTGluCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotI2lmIEVO
QUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkYXNoYm9hcmRS
ZWdpb25zQ2hhbmdlZCgpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotCi0g
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcmVnaW9ucyA9IGNvcmUoW21fd2ViVmlldyBtYWluRnJh
bWVdKS0+ZGFzaGJvYXJkUmVnaW9uc0RpY3Rpb25hcnkoKTsKLSAgICBbbV93ZWJWaWV3IF9hZGRT
Y3JvbGxlckRhc2hib2FyZFJlZ2lvbnM6cmVnaW9uc107Ci0KLSAgICBDYWxsVUlEZWxlZ2F0ZSht
X3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRhc2hib2FyZFJlZ2lvbnNDaGFuZ2VkOiksIHJl
Z2lvbnMpOwotCisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmll
dzpkYXNoYm9hcmRSZWdpb25zQ2hhbmdlZDopLCBbbV93ZWJWaWV3IF9kYXNoYm9hcmRSZWdpb25z
XSk7CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KLSNlbmRpZgogCiBGbG9hdFJl
Y3QgV2ViQ2hyb21lQ2xpZW50OjpjdXN0b21IaWdobGlnaHRSZWN0KE5vZGUqIG5vZGUsIGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBsaW5lUmVjdCkKIHsKSW5kZXg6
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJEYXNoYm9hcmRSZWdpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGFzaGJvYXJkUmVnaW9uLmgJKHJldmlzaW9uIDY3MjUxKQko
ZnJvbSBXZWJDb3JlL3BhZ2UvbWFjL1dlYkRhc2hib2FyZFJlZ2lvbi5oOjY3MjUxKQorKysgV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkRhc2hib2FyZFJlZ2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREFT
SEJPQVJEX1NVUFBPUlQpCisjZGVmaW5lIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCAxCisjZW5k
aWYKKworI2lmIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVAorCit0eXBlZGVmIGVudW0geworICAg
IFdlYkRhc2hib2FyZFJlZ2lvblR5cGVOb25lLAorICAgIFdlYkRhc2hib2FyZFJlZ2lvblR5cGVD
aXJjbGUsCisgICAgV2ViRGFzaGJvYXJkUmVnaW9uVHlwZVJlY3RhbmdsZSwKKyAgICBXZWJEYXNo
Ym9hcmRSZWdpb25UeXBlU2Nyb2xsZXJSZWN0YW5nbGUKK30gV2ViRGFzaGJvYXJkUmVnaW9uVHlw
ZTsKKworQGludGVyZmFjZSBXZWJEYXNoYm9hcmRSZWdpb24gOiBOU09iamVjdCA8TlNDb3B5aW5n
PgoreworICAgIE5TUmVjdCByZWN0OworICAgIE5TUmVjdCBjbGlwOworICAgIFdlYkRhc2hib2Fy
ZFJlZ2lvblR5cGUgdHlwZTsKK30KKy0gaW5pdFdpdGhSZWN0OihOU1JlY3QpcmVjdCBjbGlwOihO
U1JlY3QpY2xpcCB0eXBlOihXZWJEYXNoYm9hcmRSZWdpb25UeXBlKXR5cGU7CistIChOU1JlY3Qp
ZGFzaGJvYXJkUmVnaW9uQ2xpcDsKKy0gKE5TUmVjdClkYXNoYm9hcmRSZWdpb25SZWN0OworLSAo
V2ViRGFzaGJvYXJkUmVnaW9uVHlwZSlkYXNoYm9hcmRSZWdpb25UeXBlOworQGVuZAorCisjZW5k
aWYKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJEYXNoYm9hcmRSZWdpb24ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhc2hib2FyZFJlZ2lvbi5tbQkocmV2aXNp
b24gNjcyNTEpCShmcm9tIFdlYkNvcmUvcGFnZS9tYWMvV2ViRGFzaGJvYXJkUmVnaW9uLm06Njcy
NTEpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGFzaGJvYXJkUmVnaW9uLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIldlYkRhc2hib2FyZFJlZ2lvbi5oIgorCisjaW1wb3J0IDx3dGYvVW51c2VkUGFyYW0u
aD4KKworI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKKworQGltcGxlbWVudGF0aW9uIFdl
YkRhc2hib2FyZFJlZ2lvbgorCistIGluaXRXaXRoUmVjdDooTlNSZWN0KXIgY2xpcDooTlNSZWN0
KWMgdHlwZTooV2ViRGFzaGJvYXJkUmVnaW9uVHlwZSl0Cit7CisgICAgc2VsZiA9IFtzdXBlciBp
bml0XTsKKyAgICByZWN0ID0gcjsKKyAgICBjbGlwID0gYzsKKyAgICB0eXBlID0gdDsKKyAgICBy
ZXR1cm4gc2VsZjsKK30KKworLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil1bnVzZWRab25l
Cit7CisgICAgVU5VU0VEX1BBUkFNKHVudXNlZFpvbmUpOworCisgICAgcmV0dXJuIFtzZWxmIHJl
dGFpbl07Cit9CisKKy0gKE5TUmVjdClkYXNoYm9hcmRSZWdpb25DbGlwCit7CisgICAgcmV0dXJu
IGNsaXA7Cit9CisKKy0gKE5TUmVjdClkYXNoYm9hcmRSZWdpb25SZWN0Cit7CisgICAgcmV0dXJu
IHJlY3Q7Cit9CisKKy0gKFdlYkRhc2hib2FyZFJlZ2lvblR5cGUpZGFzaGJvYXJkUmVnaW9uVHlw
ZQoreworICAgIHJldHVybiB0eXBlOworfQorCitzdGF0aWMgY29uc3QgY2hhciogdHlwZU5hbWUo
V2ViRGFzaGJvYXJkUmVnaW9uVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAg
ICAgICBjYXNlIFdlYkRhc2hib2FyZFJlZ2lvblR5cGVOb25lOgorICAgICAgICAgICAgcmV0dXJu
ICJOb25lIjsKKyAgICAgICAgY2FzZSBXZWJEYXNoYm9hcmRSZWdpb25UeXBlQ2lyY2xlOgorICAg
ICAgICAgICAgcmV0dXJuICJDaXJjbGUiOworICAgICAgICBjYXNlIFdlYkRhc2hib2FyZFJlZ2lv
blR5cGVSZWN0YW5nbGU6CisgICAgICAgICAgICByZXR1cm4gIlJlY3RhbmdsZSI7CisgICAgICAg
IGNhc2UgV2ViRGFzaGJvYXJkUmVnaW9uVHlwZVNjcm9sbGVyUmVjdGFuZ2xlOgorICAgICAgICAg
ICAgcmV0dXJuICJTY3JvbGxlclJlY3RhbmdsZSI7CisgICAgfQorICAgIHJldHVybiAiVW5rbm93
biI7Cit9CisKKy0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KK3sKKyAgICByZXR1cm4gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJyZWN0OiVAIGNsaXA6JUAgdHlwZTolcyIsIE5TU3RyaW5n
RnJvbVJlY3QocmVjdCksIE5TU3RyaW5nRnJvbVJlY3QoY2xpcCksIHR5cGVOYW1lKHR5cGUpXTsK
K30KKworLy8gRklYTUU6IE92ZXJyaWRpbmcgaXNFcXVhbDogd2l0aG91dCBvdmVycmlkaW5nIGhh
c2ggd2lsbCBjYXVzZSB0cm91YmxlIGlmIHRoaXMgZXZlciBnb2VzIGludG8gYSBOU1NldCBvciBp
cyB0aGUga2V5IGluIGFuIE5TRGljdGlvbmFyeS4KKy0gKEJPT0wpaXNFcXVhbDooaWQpb3RoZXIK
K3sKKyAgICByZXR1cm4gTlNFcXVhbFJlY3RzKHJlY3QsIFtvdGhlciBkYXNoYm9hcmRSZWdpb25S
ZWN0XSkgJiYgTlNFcXVhbFJlY3RzKGNsaXAsIFtvdGhlciBkYXNoYm9hcmRSZWdpb25DbGlwXSkg
JiYgdHlwZSA9PSBbb3RoZXIgZGFzaGJvYXJkUmVnaW9uVHlwZV07Cit9CisKK0BlbmQKKworI2Vu
ZGlmCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGFzaGJvYXJkUmVnaW9uLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJEYXNoYm9hcmRSZWdpb24ubW0JKHJldmlz
aW9uIDY3MjUxKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhc2hib2FyZFJlZ2lvbi5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAot
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJEYXNoYm9hcmRSZWdpb24uaCIKIAogI2lt
cG9ydCA8d3RmL1VudXNlZFBhcmFtLmg+CkBAIC02NiwxNCArNjUsMTQgQEAgLSAoV2ViRGFzaGJv
YXJkUmVnaW9uVHlwZSlkYXNoYm9hcmRSZWdpbwogc3RhdGljIGNvbnN0IGNoYXIqIHR5cGVOYW1l
KFdlYkRhc2hib2FyZFJlZ2lvblR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICAgICAgY2FzZSBXZWJEYXNoYm9hcmRSZWdpb25UeXBlTm9uZToKLSAgICAgICAgICAgIHJldHVy
biAiTm9uZSI7Ci0gICAgICAgIGNhc2UgV2ViRGFzaGJvYXJkUmVnaW9uVHlwZUNpcmNsZToKLSAg
ICAgICAgICAgIHJldHVybiAiQ2lyY2xlIjsKLSAgICAgICAgY2FzZSBXZWJEYXNoYm9hcmRSZWdp
b25UeXBlUmVjdGFuZ2xlOgotICAgICAgICAgICAgcmV0dXJuICJSZWN0YW5nbGUiOwotICAgICAg
ICBjYXNlIFdlYkRhc2hib2FyZFJlZ2lvblR5cGVTY3JvbGxlclJlY3RhbmdsZToKLSAgICAgICAg
ICAgIHJldHVybiAiU2Nyb2xsZXJSZWN0YW5nbGUiOworICAgIGNhc2UgV2ViRGFzaGJvYXJkUmVn
aW9uVHlwZU5vbmU6CisgICAgICAgIHJldHVybiAiTm9uZSI7CisgICAgY2FzZSBXZWJEYXNoYm9h
cmRSZWdpb25UeXBlQ2lyY2xlOgorICAgICAgICByZXR1cm4gIkNpcmNsZSI7CisgICAgY2FzZSBX
ZWJEYXNoYm9hcmRSZWdpb25UeXBlUmVjdGFuZ2xlOgorICAgICAgICByZXR1cm4gIlJlY3Rhbmds
ZSI7CisgICAgY2FzZSBXZWJEYXNoYm9hcmRSZWdpb25UeXBlU2Nyb2xsZXJSZWN0YW5nbGU6Cisg
ICAgICAgIHJldHVybiAiU2Nyb2xsZXJSZWN0YW5nbGUiOwogICAgIH0KICAgICByZXR1cm4gIlVu
a25vd24iOwogfQpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDY3MjUxKQorKysg
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5MDgsOSAr
MTkwOCwzOCBAQCAtIChOU0RpY3Rpb25hcnkgKilfZGFzaGJvYXJkUmVnaW9ucwogICAgIEZyYW1l
KiBtYWluRnJhbWUgPSBbc2VsZiBfbWFpbkNvcmVGcmFtZV07CiAgICAgaWYgKCFtYWluRnJhbWUp
CiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcmVnaW9ucyA9
IG1haW5GcmFtZS0+ZGFzaGJvYXJkUmVnaW9uc0RpY3Rpb25hcnkoKTsKLSAgICBbc2VsZiBfYWRk
U2Nyb2xsZXJEYXNoYm9hcmRSZWdpb25zOnJlZ2lvbnNdOwotICAgIHJldHVybiByZWdpb25zOwor
CisgICAgY29uc3QgVmVjdG9yPERhc2hib2FyZFJlZ2lvblZhbHVlPiYgcmVnaW9ucyA9IG1haW5G
cmFtZS0+ZG9jdW1lbnQoKS0+ZGFzaGJvYXJkUmVnaW9ucygpOworICAgIHNpemVfdCBzaXplID0g
cmVnaW9ucy5zaXplKCk7CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp3ZWJSZWdpb25zID0g
W05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDYXBhY2l0eTpzaXplXTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBjb25zdCBEYXNoYm9h
cmRSZWdpb25WYWx1ZSYgcmVnaW9uID0gcmVnaW9uc1tpXTsKKworICAgICAgICBpZiAocmVnaW9u
LnR5cGUgPT0gU3R5bGVEYXNoYm9hcmRSZWdpb246Ok5vbmUpCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBOU1N0cmluZyAqbGFiZWwgPSByZWdpb24ubGFiZWw7CisgICAgICAgIFdl
YkRhc2hib2FyZFJlZ2lvblR5cGUgdHlwZSA9IFdlYkRhc2hib2FyZFJlZ2lvblR5cGVOb25lOwor
ICAgICAgICBpZiAocmVnaW9uLnR5cGUgPT0gU3R5bGVEYXNoYm9hcmRSZWdpb246OkNpcmNsZSkK
KyAgICAgICAgICAgIHR5cGUgPSBXZWJEYXNoYm9hcmRSZWdpb25UeXBlQ2lyY2xlOworICAgICAg
ICBlbHNlIGlmIChyZWdpb24udHlwZSA9PSBTdHlsZURhc2hib2FyZFJlZ2lvbjo6UmVjdGFuZ2xl
KQorICAgICAgICAgICAgdHlwZSA9IFdlYkRhc2hib2FyZFJlZ2lvblR5cGVSZWN0YW5nbGU7Cisg
ICAgICAgIE5TTXV0YWJsZUFycmF5ICpyZWdpb25WYWx1ZXMgPSBbd2ViUmVnaW9ucyBvYmplY3RG
b3JLZXk6bGFiZWxdOworICAgICAgICBpZiAoIXJlZ2lvblZhbHVlcykgeworICAgICAgICAgICAg
cmVnaW9uVmFsdWVzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTox
XTsKKyAgICAgICAgICAgIFt3ZWJSZWdpb25zIHNldE9iamVjdDpyZWdpb25WYWx1ZXMgZm9yS2V5
OmxhYmVsXTsKKyAgICAgICAgICAgIFtyZWdpb25WYWx1ZXMgcmVsZWFzZV07CisgICAgICAgIH0K
KworICAgICAgICBXZWJEYXNoYm9hcmRSZWdpb24gKndlYlJlZ2lvbiA9IFtbV2ViRGFzaGJvYXJk
UmVnaW9uIGFsbG9jXSBpbml0V2l0aFJlY3Q6cmVnaW9uLmJvdW5kcyBjbGlwOnJlZ2lvbi5jbGlw
IHR5cGU6dHlwZV07CisgICAgICAgIFtyZWdpb25WYWx1ZXMgYWRkT2JqZWN0OndlYlJlZ2lvbl07
CisgICAgICAgIFt3ZWJSZWdpb24gcmVsZWFzZV07CisgICAgfQorCisgICAgW3NlbGYgX2FkZFNj
cm9sbGVyRGFzaGJvYXJkUmVnaW9uczp3ZWJSZWdpb25zXTsKKworICAgIHJldHVybiB3ZWJSZWdp
b25zOwogfQogCiAtICh2b2lkKV9zZXREYXNoYm9hcmRCZWhhdmlvcjooV2ViRGFzaGJvYXJkQmVo
YXZpb3IpYmVoYXZpb3IgdG86KEJPT0wpZmxhZwo=
</data>
<flag name="review"
          id="56540"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>