<?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>14319</bug_id>
          
          <creation_ts>2007-06-22 15:47:44 -0700</creation_ts>
          <short_desc>Move the Selection object out of the JS bindings</short_desc>
          <delta_ts>2007-06-27 22:27:54 -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>WebCore JavaScript</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>14192</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>6680</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-22 15:47:44 -0700</bug_when>
    <thetext>Forthcoming patch moves the Selection object out of the JS binding.  I have renamed the class DOMSelection to avoid a name clash, but this is not necessarily a long term solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6683</commentid>
    <comment_count>1</comment_count>
      <attachid>15189</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-22 15:56:31 -0700</bug_when>
    <thetext>Created attachment 15189
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6684</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-06-22 16:25:03 -0700</bug_when>
    <thetext>Assuming disconnectFrame() gets called somewhere, DOMSelection needs to NULL check m_frame in each of its member functions.

+void DOMSelection::disconnectFrame()

I don&apos;t see any callers to this function. That means that, once the frame is destroyed, referencing its DOMSelection will read/write freed memory, right?

I believe this used to be called by Window::disconnectFrame(). Who should call it now?

+        mutable RefPtr&lt;DOMSelection&gt; m_selection;

Should probably call this m_DOMSelection to distinguish form WebCore::Selection.

There seems to be a cross-frame security problem here. Once I have a window&apos;s DOMSelection object, I can read the current selection in the window even if a new document from a new domain is loaded. I can&apos;t tell if your patch introduced this bug or not, but it&apos;s pretty serious.

r- for everything but the rename.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6404</commentid>
    <comment_count>3</comment_count>
      <attachid>15210</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-24 18:19:45 -0700</bug_when>
    <thetext>Created attachment 15210
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6156</commentid>
    <comment_count>4</comment_count>
      <attachid>15210</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-06-26 14:26:21 -0700</bug_when>
    <thetext>Comment on attachment 15210
updated patch

+        return &quot;&quot;;

A different way to do this is to return String(), which gives you the null string. I&apos;m not sure which we want here -- null string or empty string -- though. Empty seems fine.

This patch doesn&apos;t fix the security problem, but, like I said, I don&apos;t think it introduced the problem, either. Can you file a new bug about it?

One solution to the security problem would be to call DOMSelection::disconnectFrame inside Window::clear. Another solution would be to include isSafeScript checks in the JSSelection object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6012</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-27 22:27:54 -0700</bug_when>
    <thetext>Landed in r23842.  I will open another bug for issue Geoff pointed out.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15189</attachid>
            <date>2007-06-22 15:56:31 -0700</date>
            <delta_ts>2007-06-24 18:19:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoSelection.diff</filename>
            <type>text/plain</type>
            <size>43425</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzc0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMDctMDYtMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTkKKyAgICAgICAg
TW92ZSB0aGUgU2VsZWN0aW9uIG9iamVjdCBvdXQgb2YgdGhlIEpTIGJpbmRpbmdzCisKKyAgICAg
ICAgLSBSZW5hbWVzIEpTIE9iamVjdCBTZWxlY3Rpb24gdG8gRE9NU2VsZWN0aW9uIHRvIGF2b2lk
IGEgbmFtZQorICAgICAgICAgIGNvbmZsaWN0LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHA6CisgICAgICAgIChLSlM6OldpbmRvd1By
aXZhdGU6OldpbmRvd1ByaXZhdGUpOgorICAgICAgICAoS0pTOjpXaW5kb3c6Om1hcmspOgorICAg
ICAgICAoS0pTOjpXaW5kb3c6OmNsZWFySGVscGVyT2JqZWN0UHJvcGVydGllcyk6CisgICAgICAg
IChLSlM6OldpbmRvd0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKEtKUzo6V2luZG93
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc193aW5kb3cuaDoK
KyAgICAgICAgKEtKUzo6V2luZG93OjopOgorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0aW9uLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OkRPTVNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmZyYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVNlbGVjdGlvbjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNlbGVjdGlvbjo6YW5jaG9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246
OmJhc2VOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6YW5jaG9yT2Zmc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6YmFzZU9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpET01TZWxlY3Rpb246OmZvY3VzTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OmV4dGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9u
Ojpmb2N1c09mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmV4dGVudE9m
ZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmlzQ29sbGFwc2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OnJhbmdlQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9u
Ojpjb2xsYXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmNvbGxhcHNlVG9F
bmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpjb2xsYXBzZVRvU3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjplbXB0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01TZWxlY3Rpb246OnNldEJhc2VBbmRFeHRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
U2VsZWN0aW9uOjpzZXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246
Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmdldFJhbmdlQXQpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpyZW1vdmVBbGxSYW5nZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjphZGRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OnRvU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL0RPTVNlbGVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVNlbGVjdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Z2V0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93LmlkbDoKKwogMjAwNy0wNi0yMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluLgpJbmRleDogV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQkocmV2aXNpb24gMjM3MzgpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtp
bmcgY29weSkKQEAgLTMyMyw2ICszMjMsNyBAQCBhbGwgOiBcCiAgICAgSlNET01FeGNlcHRpb25D
b25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgSlNET01JbXBsZW1lbnRhdGlvbi5oIFwKICAgICBKU0RP
TVBhcnNlci5oIFwKKyAgICBKU0RPTVNlbGVjdGlvbi5oIFwKICAgICBKU0RPTVdpbmRvdy5oIFwK
ICAgICBKU0RvY3VtZW50LmggXAogICAgIEpTRG9jdW1lbnRGcmFnbWVudC5oIFwKSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMzczOCkK
KysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDU4LDcgKzE0NTgsNiBAQAogCQk5MzMwOUVBNDA5OUVCNzhDMDA1NkU1ODEgLyog
VGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMzMDlFQTEwOTlFQjc4QzAwNTZFNTgxIC8qIFRpbWVyLmNwcCAqLzsgfTsKIAkJOTMzNTRBM0Mw
QjI0RjhDOTAwM0Y2REVBIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzNTRBM0IwQjI0RjhDOTAwM0Y2REVB
IC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuY3BwICovOyB9OwogCQk5MzNBMTQyRTBCN0QxODg2MDBB
NTNGRkQgLyogVGV4dEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzM0ExNDJCMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuY3BwICov
OyB9OwotCQk5MzNBMTQyRjBCN0QxODg2MDBBNTNGRkQgLyogVGV4dEV2ZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzQTE0MkMwQjdEMTg4
NjAwQTUzRkZEIC8qIFRleHRFdmVudC5pZGwgKi87IH07CiAJCTkzM0ExNDMwMEI3RDE4ODYwMEE1
M0ZGRCAvKiBUZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzM0ExNDJEMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuaCAqLzsgfTsK
IAkJOTMzQTE0NzYwQjdEMUJBRjAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5oIGluIENvcHkgR2Vu
ZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzQTE0
NzUwQjdEMUJBRjAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzM0ExNEFBMEI3RDFEMDkwMEE1M0ZGRCAv
KiBET01UZXh0RXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzNBMTRBOTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1tICovOyB9
OwpAQCAtMjM5Miw4ICsyMzkxLDYgQEAKIAkJQjJEODdDOEEwQjEyNEU5NTAwQjBERTFFIC8qIFNW
R1BhaW50U2VydmVyU29saWRDZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMkQ4N0M4NjBCMTI0RTk1MDBCMERFMUUgLyogU1ZHUGFpbnRTZXJ2ZXJT
b2xpZENnLmNwcCAqLzsgfTsKIAkJQjJEREYwNjUwQjQ4MjlGQTAwNjRBNEIxIC8qIFBhdHRlcm5B
dHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMkRERjA2NDBCNDgyOUZBMDA2NEE0QjEgLyogUGF0dGVybkF0dHJpYnV0ZXMuaCAqLzsgfTsK
IAkJQjJEREYwNjcwQjQ4MkEwMzAwNjRBNEIxIC8qIEdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJEREYwNjYwQjQ4MkEw
MzAwNjRBNEIxIC8qIEdyYWRpZW50QXR0cmlidXRlcy5oICovOyB9OwotCQlCMkRFMjgxRDBCNUJG
QTU0MDBDQzI4OUEgLyogU1ZHRWxlbWVudEluc3RhbmNlLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJERTI4MUIwQjVCRkE1NDAwQ0MyODlBIC8q
IFNWR0VsZW1lbnRJbnN0YW5jZS5pZGwgKi87IH07Ci0JCUIyREUyODFFMEI1QkZBNTQwMENDMjg5
QSAvKiBTVkdFbGVtZW50SW5zdGFuY2VMaXN0LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJERTI4MUMwQjVCRkE1NDAwQ0MyODlBIC8qIFNWR0Vs
ZW1lbnRJbnN0YW5jZUxpc3QuaWRsICovOyB9OwogCQlCMkUyN0JENTBCMEYyQTk1MDBGMTdDN0Ig
LyogU1ZHUmVzb3VyY2VGaWx0ZXJDZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyRTI3QkQzMEIwRjJBOTUwMEYxN0M3QiAvKiBTVkdSZXNvdXJjZUZp
bHRlckNnLm1tICovOyB9OwogCQlCMkUyN0JEQTBCMEYyQUM4MDBGMTdDN0IgLyogU1ZHUmVzb3Vy
Y2VGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjJFMjdCRDcwQjBGMkFDODAwRjE3QzdCIC8qIFNWR1Jlc291cmNlRmlsdGVyLmNwcCAqLzsg
fTsKIAkJQjJFMjdCREIwQjBGMkFDODAwRjE3QzdCIC8qIFNWR1Jlc291cmNlRmlsdGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkUyN0JEODBCMEYy
QUM4MDBGMTdDN0IgLyogU1ZHUmVzb3VyY2VGaWx0ZXIuaCAqLzsgfTsKQEAgLTI3MzYsNyArMjcz
Myw2IEBACiAJCUJDMDZFRTA1MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAz
MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkMxMjRF
RTcwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhcklu
Zm8uY3BwICovOyB9OwogCQlCQzEyNEVFODBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRTUwQzI2
NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uaCAqLzsgfTsKLQkJQkMxMjRFRTkwQzI2NDFDRDAwOUUy
MzQ5IC8qIEJhckluZm8uaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzEyNEVFNjBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5pZGwgKi87IH07
CiAJCUJDMTI0RUZGMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhckluZm8uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRkQwQzI2NDQ3QTAwOUUy
MzQ5IC8qIEpTQmFySW5mby5jcHAgKi87IH07CiAJCUJDMTI0RjAwMEMyNjQ0N0EwMDlFMjM0OSAv
KiBKU0JhckluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMTI0RUZFMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhckluZm8uaCAqLzsgfTsKIAkJQkMx
N0Y5NjYwQjY0RUJCODAwNEE2NUNCIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxN0Y5NjUwQjY0
RUJCODAwNEE2NUNCIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwICovOyB9OwpAQCAt
Mjc2MCw2ICsyNzU2LDEwIEBACiAJCUJDMUEzN0JGMDk3QzcxNUYwMDE5RjNEOCAvKiBET01VdGls
aXR5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMx
QTM3QTkwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVV0aWxpdHkubW0gKi87IH07CiAJCUJDMUEzN0Mw
MDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTM3QUEwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMy
MEZCN0YwQzBFOEU2QzAwRDE0NDdGIC8qIEpTQ1NTVmFsdWVDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyMEZCN0UwQzBFOEU2QzAwRDE0
NDdGIC8qIEpTQ1NTVmFsdWVDdXN0b20uY3BwICovOyB9OworCQlCQzIxREY2NTBDMkM0MUY3MDA3
M0I5OTIgLyogRE9NU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMjFERjYyMEMyQzQxRjcwMDczQjk5MiAvKiBET01TZWxlY3Rpb24u
Y3BwICovOyB9OworCQlCQzIxREY2NjBDMkM0MUY3MDA3M0I5OTIgLyogRE9NU2VsZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzIxREY2MzBD
MkM0MUY3MDA3M0I5OTIgLyogRE9NU2VsZWN0aW9uLmggKi87IH07CisJCUJDMjFFMEM3MEMyQzU5
RjcwMDczQjk5MiAvKiBKU0RPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzIxRTBDNTBDMkM1OUY3MDA3M0I5OTIgLyogSlNET01T
ZWxlY3Rpb24uY3BwICovOyB9OworCQlCQzIxRTBDODBDMkM1OUY3MDA3M0I5OTIgLyogSlNET01T
ZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMjFFMEM2MEMyQzU5RjcwMDczQjk5MiAvKiBKU0RPTVNlbGVjdGlvbi5oICovOyB9OwogCQlC
QzMwNUM3OTBDMDc2QkIzMDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMwNUM3NzBDMDc2QkIz
MDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5jcHAgKi87IH07CiAJCUJDMzA1QzdBMEMw
NzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMwNUM3ODBDMDc2QkIzMDBDRDIwRjAgLyog
SlNIVE1MT2JqZWN0RWxlbWVudC5oICovOyB9OwogCQlCQzMwNUNBNDBDMDc4MUJCMDBDRDIwRjAg
LyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMwNUNBMzBDMDc4MUJCMDBDRDIwRjAgLyogSlNIVE1M
T2JqZWN0RWxlbWVudEN1c3RvbS5jcHAgKi87IH07CkBAIC0yODIyLDcgKzI4MjIsNiBAQAogCQlC
Qzk0RDE0RjBDMjc1QzY4MDA2QkM2MTcgLyogSlNIaXN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0RDE0RDBDMjc1QzY4MDA2QkM2MTcgLyog
SlNIaXN0b3J5LmggKi87IH07CiAJCUJDOTREMTUzMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTRE
MTUwMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmNwcCAqLzsgfTsKIAkJQkM5NEQxNTQwQzI3
NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDOTREMTUxMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmggKi87
IH07Ci0JCUJDOTREMTU1MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmlkbCBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NEQxNTIwQzI3NUM4QjAw
NkJDNjE3IC8qIEhpc3RvcnkuaWRsICovOyB9OwogCQlCQzk0RDE1NzBDMjc1Q0FCMDA2QkM2MTcg
LyogR2xvYmFsSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM5NEQxNTYwQzI3NUNBQjAwNkJDNjE3IC8qIEdsb2JhbEhpc3RvcnkuaCAqLzsg
fTsKIAkJQkM5NEQxNTkwQzI3NUNCNjAwNkJDNjE3IC8qIEdsb2JhbEhpc3RvcnlNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0RDE1ODBDMjc1
Q0I2MDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeU1hYy5tbSAqLzsgfTsKIAkJQkM5OEEyN0QwQzBD
OTk1MDAwNEJFQkY3IC8qIEpTU3R5bGVTaGVldEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk4QTI3QzBDMEM5OTUwMDA0QkVCRjcgLyog
SlNTdHlsZVNoZWV0Q3VzdG9tLmNwcCAqLzsgfTsKQEAgLTI5NTAsNyArMjk0OSw2IEBACiAJCUJD
RUIzNzc2MDlCN0JCMEQwMENCMzhCMSAvKiBGb250RmFsbGJhY2tMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VCMzc3NTA5QjdCQjBEMDBDQjM4
QjEgLyogRm9udEZhbGxiYWNrTGlzdC5oICovOyB9OwogCQlCQ0VDMDFCRDBDMjc0REFDMDA5RjRF
QzkgLyogU2NyZWVuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRUMwMUJBMEMyNzREQUMwMDlGNEVDOSAvKiBTY3JlZW4uY3BwICovOyB9OwogCQlC
Q0VDMDFCRTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VDMDFCQjBDMjc0REFDMDA5RjRFQzkgLyogU2Ny
ZWVuLmggKi87IH07Ci0JCUJDRUMwMUJGMEMyNzREQUMwMDlGNEVDOSAvKiBTY3JlZW4uaWRsIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VDMDFCQzBD
Mjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmlkbCAqLzsgfTsKIAkJQkNFQzAxQzIwQzI3NERERDAw
OUY0RUM5IC8qIEpTU2NyZWVuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDRUMwMUMwMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5jcHAgKi87
IH07CiAJCUJDRUMwMUMzMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFQzAxQzEwQzI3NERERDAwOUY0
RUM5IC8qIEpTU2NyZWVuLmggKi87IH07CiAJCUJDRUMwMUQ3MEMyNzRFQjQwMDlGNEVDOSAvKiBQ
bGF0Zm9ybVNjcmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNFQzAxRDYwQzI3NEVCNDAwOUY0RUM5IC8qIFBsYXRmb3JtU2NyZWVuLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYwNzIsNiArNjA3
MCwxMSBAQAogCQlCQzFBMzdBOTA5N0M3MTVGMDAxOUYzRDggLyogRE9NVXRpbGl0eS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01VdGlsaXR5Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFBMzdBQTA5N0M3MTVGMDAxOUYzRDggLyogRE9N
Vmlld3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVZpZXdzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMjBGQjdFMEMwRThFNkMwMEQxNDQ3RiAvKiBK
U0NTU1ZhbHVlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NTU1ZhbHVlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMy
MURGNjIwQzJDNDFGNzAwNzNCOTkyIC8qIERPTVNlbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NU2VsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkMyMURGNjMwQzJDNDFGNzAwNzNCOTkyIC8qIERPTVNlbGVjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU2VsZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMjFFMEM1MEMyQzU5RjcwMDczQjk5MiAvKiBKU0RP
TVNlbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNE
T01TZWxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzIxRTBDNjBD
MkM1OUY3MDA3M0I5OTIgLyogSlNET01TZWxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRE9NU2VsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDMjFFMTQyMEMyQzVBQUMwMDczQjk5MiAvKiBET01TZWxlY3Rpb24uaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBET01TZWxlY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzMwNUM3NzBDMDc2QkIzMDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MT2JqZWN0RWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzA1Qzc4MEMwNzZCQjMw
MENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0hUTUxPYmplY3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMzA1Q0EzMEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE9iamVj
dEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjUwOCw2
ICs2NTExLDggQEAKIAkJMTRERkIzM0YwQTdERjc2MzAwMThGNzY5IC8qIERlcml2ZWQgU291cmNl
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQkMyMUUw
QzUwQzJDNTlGNzAwNzNCOTkyIC8qIEpTRE9NU2VsZWN0aW9uLmNwcCAqLywKKwkJCQlCQzIxRTBD
NjBDMkM1OUY3MDA3M0I5OTIgLyogSlNET01TZWxlY3Rpb24uaCAqLywKIAkJCQk2NURGMzFEODA5
RDFDMTIyMDAwQkUzMjUgLyogSlNBdHRyLmNwcCAqLywKIAkJCQk2NURGMzFEOTA5RDFDMTIzMDAw
QkUzMjUgLyogSlNBdHRyLmggKi8sCiAJCQkJQkMxMjRFRkQwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpT
QmFySW5mby5jcHAgKi8sCkBAIC03MjUyLDYgKzcyNTcsOSBAQAogCQkJCTA2NUFENEYyMEIwQzJF
REEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oICovLAogCQkJCTA2NUFENEYzMEIwQzJF
REEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovLAogCQkJCTA2NUFENEY0
MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCAqLywKKwkJCQlCQzIx
REY2MjBDMkM0MUY3MDA3M0I5OTIgLyogRE9NU2VsZWN0aW9uLmNwcCAqLywKKwkJCQlCQzIxREY2
MzBDMkM0MUY3MDA3M0I5OTIgLyogRE9NU2VsZWN0aW9uLmggKi8sCisJCQkJQkMyMUUxNDIwQzJD
NUFBQzAwNzNCOTkyIC8qIERPTVNlbGVjdGlvbi5pZGwgKi8sCiAJCQkJMTQwM0I5OTYwOUVCMTNB
RjAwNzk3QzdGIC8qIERPTVdpbmRvdy5jcHAgKi8sCiAJCQkJMTQwM0I5OTUwOUVCMTNBRjAwNzk3
QzdGIC8qIERPTVdpbmRvdy5oICovLAogCQkJCTE0MDNCOTBDMDlFQjEyNDUwMDc5N0M3RiAvKiBE
T01XaW5kb3cuaWRsICovLApAQCAtNzI3MiwxMiArNzI4MCwxMiBAQAogCQkJCTY1QTIxNDgzMDk3
QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRyZWUuaCAqLywKIAkJCQk2NUNCRkVGNzA5NzRGNjA3MDAx
REFDMjUgLyogRnJhbWVWaWV3LmNwcCAqLywKIAkJCQk2NUNCRkVGODA5NzRGNjA3MDAxREFDMjUg
LyogRnJhbWVWaWV3LmggKi8sCi0JCQkJMDY2OTNEQjcwQkZCQTJGNDAwMjE2MDcyIC8qIEluc3Bl
Y3RvckNsaWVudC5oICovLAotCQkJCTA2NjkzREI4MEJGQkEyRjQwMDIxNjA3MiAvKiBJbnNwZWN0
b3JDb250cm9sbGVyLmNwcCAqLywKLQkJCQkwNjY5M0RCOTBCRkJBMkY0MDAyMTYwNzIgLyogSW5z
cGVjdG9yQ29udHJvbGxlci5oICovLAogCQkJCUJDOTREMTUwMEMyNzVDOEIwMDZCQzYxNyAvKiBI
aXN0b3J5LmNwcCAqLywKIAkJCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5o
ICovLAogCQkJCUJDOTREMTUyMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmlkbCAqLywKKwkJ
CQkwNjY5M0RCNzBCRkJBMkY0MDAyMTYwNzIgLyogSW5zcGVjdG9yQ2xpZW50LmggKi8sCisJCQkJ
MDY2OTNEQjgwQkZCQTJGNDAwMjE2MDcyIC8qIEluc3BlY3RvckNvbnRyb2xsZXIuY3BwICovLAor
CQkJCTA2NjkzREI5MEJGQkEyRjQwMDIxNjA3MiAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmggKi8s
CiAJCQkJOTNFQjM1NUUwOUUzN0ZENjAwRjQzNzk5IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMuY3BwICovLAogCQkJCTkzNUM0NzYyMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzLmggKi8sCiAJCQkJNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8q
IFBhZ2UuY3BwICovLApAQCAtMTE2MjQsNiArMTE2MzIsOCBAQAogCQkJCUJDOTREMTRGMEMyNzVD
NjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTREMTU0MEMy
NzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0RDE1NzBD
Mjc1Q0FCMDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMy
MURGNjYwQzJDNDFGNzAwNzNCOTkyIC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkMyMUUwQzgwQzJDNTlGNzAwNzNCOTkyIC8qIEpTRE9NU2VsZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTExNzI4LDE4ICsxMTczOCwxMiBAQAogCQkJCUIyRTI3Qzc0MEIwRjJBRTYwMEYx
N0M3QiAvKiBXS1RhYmxlVHJhbnNmZXJGaWx0ZXIuY2lrZXJuZWwgaW4gUmVzb3VyY2VzICovLAog
CQkJCTQ2MTRBMUZFMEIyM0E4RDYwMDQ0NkUxQyAvKiBjb3B5Q3Vyc29yLnBuZyBpbiBSZXNvdXJj
ZXMgKi8sCiAJCQkJNDZCRDE2RTMwQjI3OTQ3MzAwMUYwODM5IC8qIG5vbmVDdXJzb3IucG5nIGlu
IFJlc291cmNlcyAqLywKLQkJCQlCMkRFMjgxRDBCNUJGQTU0MDBDQzI4OUEgLyogU1ZHRWxlbWVu
dEluc3RhbmNlLmlkbCBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJQjJERTI4MUUwQjVCRkE1NDAwQ0My
ODlBIC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRsIGluIFJlc291cmNlcyAqLywKLQkJCQk5
MzNBMTQyRjBCN0QxODg2MDBBNTNGRkQgLyogVGV4dEV2ZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkJNDY0RUEyNzMwQjhBMzUwQjAwQThFNkUzIC8qIGNyb3NzSGFpckN1cnNvci5wbmcgaW4g
UmVzb3VyY2VzICovLAogCQkJCTQ2NEVBMjc0MEI4QTM1MEIwMEE4RTZFMyAvKiBub3RBbGxvd2Vk
Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMDY2OTNGN0IwQkZCQzkxNzAwMjE2MDcy
IC8qIGluc3BlY3RvciBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQkM0OTFCNEYwQzAyM0UyRDAwOUQ2
MzE2IC8qIEhUTUxNYXJxdWVlRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCTFBQjFB
RTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywK
IAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1cnNvci5wbmcgaW4gUmVz
b3VyY2VzICovLAotCQkJCUJDMTI0RUU5MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmlkbCBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJQkNFQzAxQkYwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5p
ZGwgaW4gUmVzb3VyY2VzICovLAotCQkJCUJDOTREMTU1MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0
b3J5LmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xMzA1OCw2ICsxMzA2Miw4IEBACiAJCQkJQkM5
NEQxNEUwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzk0RDE1OTBDMjc1Q0I2MDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeU1hYy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUJDMjFERjY1MEMyQzQxRjcwMDczQjk5MiAvKiBET01TZWxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMyMUUwQzcwQzJDNTlGNzAwNzNCOTkyIC8qIEpTRE9N
U2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9r
anNfd2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5k
b3cuY3BwCShyZXZpc2lvbiAyMzczOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRv
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDYgQEAKICNpbmNsdWRlICJQbGF0Zm9y
bVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsdWdJbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKLSNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgImh0bWxlZGl0
aW5nLmgiCkBAIC04Myw3ICs4Miw2IEBAIGNvbnN0IGRvdWJsZSBjTWluaW11bVRpbWVySW50ZXJ2
YWwgPSAwLjAKIHN0cnVjdCBXaW5kb3dQcml2YXRlIHsKICAgICBXaW5kb3dQcml2YXRlKCkgCiAg
ICAgICAgIDogbG9jKDApCi0gICAgICAgICwgbV9zZWxlY3Rpb24oMCkKICAgICAgICAgLCBtX2V2
dCgwKQogICAgICAgICAsIG1fcmV0dXJuVmFsdWVTbG90KDApCiAgICAgewpAQCAtOTQsNyArOTIs
NiBAQCBzdHJ1Y3QgV2luZG93UHJpdmF0ZSB7CiAgICAgV2luZG93OjpVbnByb3RlY3RlZExpc3Rl
bmVyc01hcCBqc1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lcnM7CiAgICAgV2luZG93OjpVbnByb3Rl
Y3RlZExpc3RlbmVyc01hcCBqc1VucHJvdGVjdGVkSFRNTEV2ZW50TGlzdGVuZXJzOwogICAgIG11
dGFibGUgTG9jYXRpb24qIGxvYzsKLSAgICBtdXRhYmxlIFNlbGVjdGlvbiogbV9zZWxlY3Rpb247
CiAgICAgV2ViQ29yZTo6RXZlbnQgKm1fZXZ0OwogICAgIEpTVmFsdWUgKiptX3JldHVyblZhbHVl
U2xvdDsKICAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBET01XaW5kb3dUaW1lcio+IFRpbWVvdXRz
TWFwOwpAQCAtMjAxLDcgKzE5OCw2IEBAIGNvbnN0IENsYXNzSW5mbyBXaW5kb3c6OmluZm8gPSB7
ICJXaW5kb3cKICAgc2V0VGltZW91dCAgICBXaW5kb3c6OlNldFRpbWVvdXQgICAgICBEb250RGVs
ZXRlfEZ1bmN0aW9uIDIKICAgY2xlYXJUaW1lb3V0ICBXaW5kb3c6OkNsZWFyVGltZW91dCAgICBE
b250RGVsZXRlfEZ1bmN0aW9uIDEKICAgZm9jdXMgICAgICAgICBXaW5kb3c6OkZvY3VzICAgICAg
ICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKLSAgZ2V0U2VsZWN0aW9uICBXaW5kb3c6OkdldFNl
bGVjdGlvbiAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKICAgYmx1ciAgICAgICAgICBXaW5kb3c6
OkJsdXIgICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKICAgY2xvc2UgICAgICAgICBX
aW5kb3c6OkNsb3NlICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKICAgc2V0SW50ZXJ2
YWwgICBXaW5kb3c6OlNldEludGVydmFsICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDIKQEAgLTMx
NiwxMyArMzEyLDYgQEAgTG9jYXRpb24gKldpbmRvdzo6bG9jYXRpb24oKSBjb25zdAogICByZXR1
cm4gZC0+bG9jOwogfQogCi1TZWxlY3Rpb24gKldpbmRvdzo6c2VsZWN0aW9uKCkgY29uc3QKLXsK
LSAgaWYgKCFkLT5tX3NlbGVjdGlvbikKLSAgICBkLT5tX3NlbGVjdGlvbiA9IG5ldyBTZWxlY3Rp
b24obV9mcmFtZSk7Ci0gIHJldHVybiBkLT5tX3NlbGVjdGlvbjsKLX0KLQogYm9vbCBXaW5kb3c6
OmZpbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgY2FzZVNlbnNpdGl2ZSwgYm9vbCBiYWNr
d2FyZHMsIGJvb2wgd3JhcCwgYm9vbCB3aG9sZVdvcmQsIGJvb2wgc2VhcmNoSW5GcmFtZXMsIGJv
b2wgc2hvd0RpYWxvZykgY29uc3QKIHsKICAgICAvLyBGSVhNRSAoMTMwMTYpOiBTdXBwb3J0IHdo
b2xlV29yZCwgc2VhcmNoSW5GcmFtZXMgYW5kIHNob3dEaWFsb2cKQEAgLTMzNSw4ICszMjQsNiBA
QCB2b2lkIFdpbmRvdzo6bWFyaygpCiAgIEpTT2JqZWN0OjptYXJrKCk7CiAgIGlmIChkLT5sb2Mg
JiYgIWQtPmxvYy0+bWFya2VkKCkpCiAgICAgZC0+bG9jLT5tYXJrKCk7Ci0gIGlmIChkLT5tX3Nl
bGVjdGlvbiAmJiAhZC0+bV9zZWxlY3Rpb24tPm1hcmtlZCgpKQotICAgIGQtPm1fc2VsZWN0aW9u
LT5tYXJrKCk7CiB9CiAKIHN0YXRpYyBib29sIGFsbG93UG9wVXAoRXhlY1N0YXRlICpleGVjLCBX
aW5kb3cgKndpbmRvdykKQEAgLTEyNDAsNyArMTIyNyw2IEBAIEpTVW5wcm90ZWN0ZWRFdmVudExp
c3RlbmVyICpXaW5kb3c6OmZpbmQKIHZvaWQgV2luZG93OjpjbGVhckhlbHBlck9iamVjdFByb3Bl
cnRpZXMoKQogewogICBkLT5sb2MgPSAwOwotICBkLT5tX3NlbGVjdGlvbiA9IDA7CiAgIGQtPm1f
ZXZ0ID0gMDsKIH0KIApAQCAtMTYzNywxMCArMTYyMyw2IEBAIEpTVmFsdWUgKldpbmRvd0Z1bmM6
OmNhbGxBc0Z1bmN0aW9uKEV4ZWMKICAgY2FzZSBXaW5kb3c6OkZvY3VzOgogICAgIGZyYW1lLT5m
b2N1c1dpbmRvdygpOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICBjYXNlIFdpbmRvdzo6
R2V0U2VsZWN0aW9uOgotICAgIGlmICghd2luZG93LT5pc1NhZmVTY3JpcHQoZXhlYykpCi0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIHJldHVybiB3aW5kb3ctPnNlbGVjdGlvbigp
OwogICBjYXNlIFdpbmRvdzo6Qmx1cjoKICAgICBmcmFtZS0+dW5mb2N1c1dpbmRvdygpOwogICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTg3Myw4ICsxODU1LDYgQEAgdm9pZCBXaW5kb3c6
OmRpc2Nvbm5lY3RGcmFtZSgpCiAgICAgbV9mcmFtZSA9IDA7CiAgICAgaWYgKGQtPmxvYykKICAg
ICAgICAgZC0+bG9jLT5tX2ZyYW1lID0gMDsKLSAgICBpZiAoZC0+bV9zZWxlY3Rpb24pCi0gICAg
ICAgIGQtPm1fc2VsZWN0aW9uLT5tX2ZyYW1lID0gMDsKIH0KIAogV2luZG93OjpMaXN0ZW5lcnNN
YXAmIFdpbmRvdzo6anNFdmVudExpc3RlbmVycygpCkBAIC0yMTAzLDEzNSArMjA4Myw2IEBAIEpT
VmFsdWUgKkxvY2F0aW9uRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXgKICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiB9CiAKLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU2VsZWN0aW9uIE9iamVjdCAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KLQotY29uc3QgQ2xhc3NJbmZvIFNlbGVjdGlvbjo6aW5mbyA9
IHsgIlNlbGVjdGlvbiIsIDAsICZTZWxlY3Rpb25UYWJsZSwgMCB9OwotLyoKLUBiZWdpbiBTZWxl
Y3Rpb25UYWJsZSAxOQotICBhbmNob3JOb2RlICAgICAgICAgICAgICAgIFNlbGVjdGlvbjo6QW5j
aG9yTm9kZSAgICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgYW5jaG9yT2Zmc2V0
ICAgICAgICAgICAgICBTZWxlY3Rpb246OkFuY2hvck9mZnNldCAgICAgICAgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gIGZvY3VzTm9kZSAgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpGb2N1
c05vZGUgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBmb2N1c09mZnNldCAg
ICAgICAgICAgICAgIFNlbGVjdGlvbjo6Rm9jdXNPZmZzZXQgICAgICAgICAgICAgIERvbnREZWxl
dGV8UmVhZE9ubHkKLSAgYmFzZU5vZGUgICAgICAgICAgICAgICAgICBTZWxlY3Rpb246OkJhc2VO
b2RlICAgICAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGJhc2VPZmZzZXQgICAg
ICAgICAgICAgICAgU2VsZWN0aW9uOjpCYXNlT2Zmc2V0ICAgICAgICAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICBleHRlbnROb2RlICAgICAgICAgICAgICAgIFNlbGVjdGlvbjo6RXh0ZW50
Tm9kZSAgICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgZXh0ZW50T2Zmc2V0ICAg
ICAgICAgICAgICBTZWxlY3Rpb246OkV4dGVudE9mZnNldCAgICAgICAgICAgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci0gIGlzQ29sbGFwc2VkICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpJc0NvbGxh
cHNlZCAgICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICB0eXBlICAgICAgICAgICAg
ICAgICAgICAgIFNlbGVjdGlvbjo6X1R5cGUgICAgICAgICAgICAgICAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKLSAgcmFuZ2VDb3VudCAgICAgICAgICAgICAgICBTZWxlY3Rpb246OlJhbmdlQ291
bnQgICAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIHRvU3RyaW5nICAgICAgICAg
ICAgICAgICAgU2VsZWN0aW9uOjpUb1N0cmluZyAgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxG
dW5jdGlvbiAwCi0gIGNvbGxhcHNlICAgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpDb2xsYXBz
ZSAgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAyCi0gIGNvbGxhcHNlVG9FbmQg
ICAgICAgICAgICAgU2VsZWN0aW9uOjpDb2xsYXBzZVRvRW5kICAgICAgICAgICAgRG9udERlbGV0
ZXxGdW5jdGlvbiAwCi0gIGNvbGxhcHNlVG9TdGFydCAgICAgICAgICAgU2VsZWN0aW9uOjpDb2xs
YXBzZVRvU3RhcnQgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGVtcHR5ICAgICAg
ICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpFbXB0eSAgICAgICAgICAgICAgICAgICAgRG9udERl
bGV0ZXxGdW5jdGlvbiAwCi0gIHNldEJhc2VBbmRFeHRlbnQgICAgICAgICAgU2VsZWN0aW9uOjpT
ZXRCYXNlQW5kRXh0ZW50ICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiA0Ci0gIHNldFBvc2l0
aW9uICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpTZXRQb3NpdGlvbiAgICAgICAgICAgICAgRG9u
dERlbGV0ZXxGdW5jdGlvbiAyCi0gIG1vZGlmeSAgICAgICAgICAgICAgICAgICAgU2VsZWN0aW9u
OjpNb2RpZnkgICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAzCi0gIGdldFJh
bmdlQXQgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpHZXRSYW5nZUF0ICAgICAgICAgICAgICAg
RG9udERlbGV0ZXxGdW5jdGlvbiAxCi0gIHJlbW92ZUFsbFJhbmdlcyAgICAgICAgICAgU2VsZWN0
aW9uOjpSZW1vdmVBbGxSYW5nZXMgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGFk
ZFJhbmdlICAgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpBZGRSYW5nZSAgICAgICAgICAgICAg
ICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi1AZW5kCi0qLwotS0pTX0lNUExFTUVOVF9QUk9UT1RZ
UEVfRlVOQ1RJT04oU2VsZWN0aW9uRnVuYykKLVNlbGVjdGlvbjo6U2VsZWN0aW9uKEZyYW1lICpw
KSA6IG1fZnJhbWUocCkKLXsKLX0KLQotSlNWYWx1ZSAqU2VsZWN0aW9uOjpnZXRWYWx1ZVByb3Bl
cnR5KEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuKSBjb25zdAotewotICAgIFNlbGVjdGlvbkNv
bnRyb2xsZXIqIHMgPSBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAgY29uc3Qg
V2luZG93KiB3aW5kb3cgPSBXaW5kb3c6OnJldHJpZXZlV2luZG93KG1fZnJhbWUpOwotICAgIGlm
ICghd2luZG93KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgCi0gICAg
c3dpdGNoICh0b2tlbikgewotICAgIGNhc2UgQW5jaG9yTm9kZToKLSAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgcy0+YW5jaG9yTm9kZSgpKTsKLSAgICBjYXNlIEJhc2VOb2RlOgotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBzLT5iYXNlTm9kZSgpKTsKLSAgICBjYXNlIEFuY2hvck9mZnNldDoK
LSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHMtPmFuY2hvck9mZnNldCgpKTsKLSAgICBjYXNlIEJh
c2VPZmZzZXQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihzLT5iYXNlT2Zmc2V0KCkpOwotICAg
IGNhc2UgRm9jdXNOb2RlOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBzLT5mb2N1c05vZGUo
KSk7Ci0gICAgY2FzZSBFeHRlbnROb2RlOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBzLT5l
eHRlbnROb2RlKCkpOwotICAgIGNhc2UgRm9jdXNPZmZzZXQ6Ci0gICAgICAgIHJldHVybiBqc051
bWJlcihzLT5mb2N1c09mZnNldCgpKTsKLSAgICBjYXNlIEV4dGVudE9mZnNldDoKLSAgICAgICAg
cmV0dXJuIGpzTnVtYmVyKHMtPmV4dGVudE9mZnNldCgpKTsKLSAgICBjYXNlIElzQ29sbGFwc2Vk
OgotICAgICAgICByZXR1cm4ganNCb29sZWFuKHMtPmlzQ29sbGFwc2VkKCkpOwotICAgIGNhc2Ug
X1R5cGU6Ci0gICAgICAgIHJldHVybiBqc1N0cmluZyhzLT50eXBlKCkpOwotICAgIGNhc2UgUmFu
Z2VDb3VudDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHMtPnJhbmdlQ291bnQoKSk7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUKDApOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICB9Ci19Ci0KLWJvb2wgU2VsZWN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKLXsKLSAgaWYgKCFtX2ZyYW1lKQotICAgICAgcmV0dXJuIGZhbHNlOwotCi0gIHJldHVy
biBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8U2VsZWN0aW9uRnVuYywgU2VsZWN0aW9uLCBKU09iamVj
dD4oZXhlYywgJlNlbGVjdGlvblRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQot
Ci1KU1ZhbHVlICpTZWxlY3Rpb25GdW5jOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMs
IEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKQotewotICAgIGlmICghdGhpc09i
ai0+aW5oZXJpdHMoJlNlbGVjdGlvbjo6aW5mbykpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KGV4ZWMsIFR5cGVFcnJvcik7Ci0gICAgU2VsZWN0aW9uICpzZWxlY3Rpb24gPSBzdGF0aWNfY2Fz
dDxTZWxlY3Rpb24gKj4odGhpc09iaik7Ci0gICAgRnJhbWUgKmZyYW1lID0gc2VsZWN0aW9uLT5m
cmFtZSgpOwotICAgIGlmIChmcmFtZSkgewotICAgICAgICBTZWxlY3Rpb25Db250cm9sbGVyKiBz
ID0gZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgICAgIHN3aXRjaCAoaWQpIHsKLSAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9u
OjpDb2xsYXBzZToKLSAgICAgICAgICAgICAgICBzLT5jb2xsYXBzZSh0b05vZGUoYXJnc1swXSks
IGFyZ3NbMV0tPnRvSW50MzIoZXhlYyksIGVjKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgU2VsZWN0aW9uOjpDb2xsYXBzZVRvRW5kOgotICAgICAgICAgICAgICAg
IHMtPmNvbGxhcHNlVG9FbmQoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IGNhc2UgU2VsZWN0aW9uOjpDb2xsYXBzZVRvU3RhcnQ6Ci0gICAgICAgICAgICAgICAgcy0+Y29s
bGFwc2VUb1N0YXJ0KCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNl
IFNlbGVjdGlvbjo6RW1wdHk6Ci0gICAgICAgICAgICAgICAgcy0+ZW1wdHkoKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9uOjpTZXRCYXNlQW5kRXh0
ZW50OgotICAgICAgICAgICAgICAgIHMtPnNldEJhc2VBbmRFeHRlbnQodG9Ob2RlKGFyZ3NbMF0p
LCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpLCB0b05vZGUoYXJnc1syXSksIGFyZ3NbM10tPnRvSW50
MzIoZXhlYyksIGVjKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
U2VsZWN0aW9uOjpTZXRQb3NpdGlvbjoKLSAgICAgICAgICAgICAgICBzLT5zZXRQb3NpdGlvbih0
b05vZGUoYXJnc1swXSksIGFyZ3NbMV0tPnRvSW50MzIoZXhlYyksIGVjKTsKLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9uOjpNb2RpZnk6Ci0gICAgICAg
ICAgICAgICAgcy0+bW9kaWZ5KGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpLCBhcmdzWzFdLT50b1N0
cmluZyhleGVjKSwgYXJnc1syXS0+dG9TdHJpbmcoZXhlYykpOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgY2FzZSBTZWxlY3Rpb246OkdldFJhbmdlQXQ6IHsKLSAgICAgICAg
ICAgICAgICBKU1ZhbHVlKiB2YWwgPSB0b0pTKGV4ZWMsIHMtPmdldFJhbmdlQXQoYXJnc1swXS0+
dG9JbnQzMihleGVjKSwgZWMpLmdldCgpKTsKLSAgICAgICAgICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOwotICAgICAgICAgICAgICAgIHJldHVybiB2YWw7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBjYXNlIFNlbGVjdGlvbjo6UmVtb3ZlQWxsUmFuZ2VzOgotICAgICAgICAg
ICAgICAgIHMtPnJlbW92ZUFsbFJhbmdlcygpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBTZWxlY3Rpb246OkFkZFJhbmdlOgotICAgICAgICAgICAgICAgIHMtPmFk
ZFJhbmdlKHRvUmFuZ2UoYXJnc1swXSkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgY2FzZSBTZWxlY3Rpb246OlRvU3RyaW5nOgotICAgICAgICAgICAgICAgIHJldHVybiBq
c1N0cmluZyhmcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT50b1N0cmluZygpKTsKLSAgICAg
ICAgfQotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwotICAgIH0KLQotICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwotfQotCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBQYXVzZWRU
aW1lb3V0czo6flBhdXNlZFRpbWVvdXRzKCkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pz
X3dpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5o
CShyZXZpc2lvbiAyMzczOCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNz
IExvY2F0aW9uOwogICAgIGNsYXNzIFBhdXNlZFRpbWVvdXQ7CiAgICAgY2xhc3MgU2NoZWR1bGVk
QWN0aW9uOwotICAgIGNsYXNzIFNlbGVjdGlvbjsKICAgICBjbGFzcyBXaW5kb3c7CiAgICAgY2xh
c3MgV2luZG93RnVuYzsKIApAQCAtMTE1LDcgKzExNCw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAg
IGJvb2wgaXNTYWZlU2NyaXB0KEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGlz
U2FmZVNjcmlwdChjb25zdCBTY3JpcHRJbnRlcnByZXRlciAqb3JpZ2luLCBjb25zdCBTY3JpcHRJ
bnRlcnByZXRlciAqdGFyZ2V0KTsKICAgICBMb2NhdGlvbiAqbG9jYXRpb24oKSBjb25zdDsKLSAg
ICBTZWxlY3Rpb24gKnNlbGVjdGlvbigpIGNvbnN0OwogICAgIGJvb2wgZmluZChjb25zdCBXZWJD
b3JlOjpTdHJpbmcmLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sKSBjb25zdDsK
IAogICAgIC8vIEZpbmRzIGEgd3JhcHBlciBvZiBhIEpTIEV2ZW50TGlzdGVuZXIsIHJldHVybnMg
MCBpZiBubyBleGlzdGluZyBvbmUuCkBAIC0xNTUsNyArMTUzLDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgICAgICAgIFNjcmVlblRvcCwgU2NyZWVuTGVmdCwKICAgICAgICAgICAgU2Nyb2xsVG8s
IFNjcm9sbFgsIFNjcm9sbFksIE1vdmVCeSwgTW92ZVRvLCBSZXNpemVCeSwgUmVzaXplVG8sIFNl
bGYsIFdpbmRvd18sIFRvcCwKICAgICAgICAgICAgSW1hZ2UsIE9wdGlvbiwgQWxlcnQsIENvbmZp
cm0sIFByb21wdCwgT3BlbiwgUHJpbnQsIFNldFRpbWVvdXQsIENsZWFyVGltZW91dCwKLSAgICAg
ICAgICAgRm9jdXMsIEdldFNlbGVjdGlvbiwgQmx1ciwgQ2xvc2UsIFNldEludGVydmFsLCBDbGVh
ckludGVydmFsLCBDYXB0dXJlRXZlbnRzLCAKKyAgICAgICAgICAgRm9jdXMsIEJsdXIsIENsb3Nl
LCBTZXRJbnRlcnZhbCwgQ2xlYXJJbnRlcnZhbCwgQ2FwdHVyZUV2ZW50cywgCiAgICAgICAgICAg
IFJlbGVhc2VFdmVudHMsIEFkZEV2ZW50TGlzdGVuZXIsIFJlbW92ZUV2ZW50TGlzdGVuZXIsCiAg
ICAgICAgICAgIFhNTEh0dHBSZXF1ZXN0LCBYU0xUUHJvY2Vzc29yXywKICAgICAgICAgICAgT25h
Ym9ydCwgT25ibHVyLCBPbmNoYW5nZSwgT25jbGljaywgT25kYmxjbGljaywgT25lcnJvciwgCkBA
IC0yMTgsMjIgKzIxNiw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIFdlYkNvcmU6OkZyYW1lKiBt
X2ZyYW1lOwogICB9OwogCi0gIGNsYXNzIFNlbGVjdGlvbiA6IHB1YmxpYyBET01PYmplY3Qgewot
ICBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUg
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIEpTVmFsdWUgKmdldFZh
bHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwotICAgIGVudW0g
eyBBbmNob3JOb2RlLCBBbmNob3JPZmZzZXQsIEZvY3VzTm9kZSwgRm9jdXNPZmZzZXQsIEJhc2VO
b2RlLCBCYXNlT2Zmc2V0LCBFeHRlbnROb2RlLCBFeHRlbnRPZmZzZXQsIAotICAgICAgICAgICBJ
c0NvbGxhcHNlZCwgX1R5cGUsIFJhbmdlQ291bnQsIENvbGxhcHNlLCBDb2xsYXBzZVRvRW5kLCBD
b2xsYXBzZVRvU3RhcnQsIEVtcHR5LCBUb1N0cmluZywgCi0gICAgICAgICAgIFNldEJhc2VBbmRF
eHRlbnQsIFNldFBvc2l0aW9uLCBNb2RpZnksIEdldFJhbmdlQXQsIFJlbW92ZUFsbFJhbmdlcywg
QWRkUmFuZ2UgfTsKLSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lOyB9Ci0gICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0
IHsgcmV0dXJuICZpbmZvOyB9Ci0gICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwotICBw
cml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBXaW5kb3c7Ci0gICAgU2VsZWN0aW9uKFdlYkNvcmU6
OkZyYW1lKik7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIG1fZnJhbWU7Ci0gIH07Ci0KIH0gLy8gbmFt
ZXNwYWNlCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01TZWxl
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3BwCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RE9NU2VsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlNlbGVjdGlv
bkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJSYW5nZS5oIgorI2luY2x1ZGUgIlN0cmluZy5oIgor
I2luY2x1ZGUgIk5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01TZWxlY3Rpb246
OkRPTVNlbGVjdGlvbihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQoreworfQor
CitGcmFtZSogRE9NU2VsZWN0aW9uOjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJh
bWU7Cit9CisKK3ZvaWQgRE9NU2VsZWN0aW9uOjpkaXNjb25uZWN0RnJhbWUoKQoreworICAgIG1f
ZnJhbWUgPSAwOworfQorCitOb2RlKiBET01TZWxlY3Rpb246OmFuY2hvck5vZGUoKSBjb25zdAor
eworICAgIHJldHVybiBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPmFuY2hvck5vZGUo
KTsKK30KKworTm9kZSogRE9NU2VsZWN0aW9uOjpiYXNlTm9kZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+YmFzZU5vZGUoKTsKK30KKworaW50
IERPTVNlbGVjdGlvbjo6YW5jaG9yT2Zmc2V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFt
ZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5hbmNob3JPZmZzZXQoKTsKK30KKworaW50IERPTVNl
bGVjdGlvbjo6YmFzZU9mZnNldCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVj
dGlvbkNvbnRyb2xsZXIoKS0+YmFzZU9mZnNldCgpOworfQorCitOb2RlKiBET01TZWxlY3Rpb246
OmZvY3VzTm9kZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRy
b2xsZXIoKS0+Zm9jdXNOb2RlKCk7Cit9CisKK05vZGUqIERPTVNlbGVjdGlvbjo6ZXh0ZW50Tm9k
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+
ZXh0ZW50Tm9kZSgpOworfQorCitpbnQgRE9NU2VsZWN0aW9uOjpmb2N1c09mZnNldCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+Zm9jdXNPZmZz
ZXQoKTsKK30KKworaW50IERPTVNlbGVjdGlvbjo6ZXh0ZW50T2Zmc2V0KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9mcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5leHRlbnRPZmZzZXQoKTsK
K30KKworYm9vbCBET01TZWxlY3Rpb246OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9mcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5pc0NvbGxhcHNlZCgpOworfQorCitT
dHJpbmcgRE9NU2VsZWN0aW9uOjp0eXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZS0+
c2VsZWN0aW9uQ29udHJvbGxlcigpLT50eXBlKCk7Cit9CisKK2ludCBET01TZWxlY3Rpb246OnJh
bmdlQ291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9s
bGVyKCktPnJhbmdlQ291bnQoKTsKK30KKwordm9pZCBET01TZWxlY3Rpb246OmNvbGxhcHNlKE5v
ZGUqIG5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIG1fZnJhbWUt
PnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+Y29sbGFwc2Uobm9kZSwgb2Zmc2V0LCBlYyk7Cit9CisK
K3ZvaWQgRE9NU2VsZWN0aW9uOjpjb2xsYXBzZVRvRW5kKCkKK3sKKyAgICBtX2ZyYW1lLT5zZWxl
Y3Rpb25Db250cm9sbGVyKCktPmNvbGxhcHNlVG9FbmQoKTsKK30KKwordm9pZCBET01TZWxlY3Rp
b246OmNvbGxhcHNlVG9TdGFydCgpCit7CisgICAgbV9mcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxl
cigpLT5jb2xsYXBzZVRvU3RhcnQoKTsKK30KKwordm9pZCBET01TZWxlY3Rpb246OmVtcHR5KCkK
K3sKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPmVtcHR5KCk7Cit9CisKK3Zv
aWQgRE9NU2VsZWN0aW9uOjpzZXRCYXNlQW5kRXh0ZW50KE5vZGUqIGJhc2VOb2RlLCBpbnQgYmFz
ZU9mZnNldCwgTm9kZSogZXh0ZW50Tm9kZSwgaW50IGV4dGVudE9mZnNldCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgbV9mcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5zZXRCYXNlQW5k
RXh0ZW50KGJhc2VOb2RlLCBiYXNlT2Zmc2V0LCBleHRlbnROb2RlLCBleHRlbnRPZmZzZXQsIGVj
KTsKK30KKwordm9pZCBET01TZWxlY3Rpb246OnNldFBvc2l0aW9uKE5vZGUqIG5vZGUsIGludCBv
ZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRy
b2xsZXIoKS0+c2V0UG9zaXRpb24obm9kZSwgb2Zmc2V0LCBlYyk7Cit9CisKK3ZvaWQgRE9NU2Vs
ZWN0aW9uOjpzZXRQb3NpdGlvbihOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPnNldFBvc2l0aW9uKG5vZGUsIDAsIGVj
KTsKK30KKwordm9pZCBET01TZWxlY3Rpb246Om1vZGlmeShjb25zdCBTdHJpbmcmIGFsdGVyLCBj
b25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBncmFudWxhcml0eSkKK3sKKyAg
ICBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPm1vZGlmeShhbHRlciwgZGlyZWN0aW9u
LCBncmFudWxhcml0eSk7Cit9CisKK1Bhc3NSZWZQdHI8UmFuZ2U+IERPTVNlbGVjdGlvbjo6Z2V0
UmFuZ2VBdChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBtX2Zy
YW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPmdldFJhbmdlQXQoaW5kZXgsIGVjKTsKK30KKwor
dm9pZCBET01TZWxlY3Rpb246OnJlbW92ZUFsbFJhbmdlcygpCit7CisgICAgbV9mcmFtZS0+c2Vs
ZWN0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVBbGxSYW5nZXMoKTsKK30KKwordm9pZCBET01TZWxl
Y3Rpb246OmFkZFJhbmdlKFJhbmdlKiByYW5nZSkKK3sKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb25D
b250cm9sbGVyKCktPmFkZFJhbmdlKHJhbmdlKTsKK30KKworU3RyaW5nIERPTVNlbGVjdGlvbjo6
dG9TdHJpbmcoKQoreworICAgIHJldHVybiBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCkt
PnRvU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
cGFnZS9ET01TZWxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0
aW9uLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgRE9NU2VsZWN0aW9uX2gKKyNk
ZWZpbmUgRE9NU2VsZWN0aW9uX2gKKworI2luY2x1ZGUgIlNoYXJlZC5oIgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisgICAgY2xhc3MgRnJhbWU7CisgICAgY2xhc3MgUmFuZ2U7CisgICAgY2xhc3Mg
Tm9kZTsKKyAgICBjbGFzcyBTdHJpbmc7CisKKyAgICB0eXBlZGVmIGludCBFeGNlcHRpb25Db2Rl
OworCisgICAgY2xhc3MgRE9NU2VsZWN0aW9uIDogcHVibGljIFNoYXJlZDxET01TZWxlY3Rpb24+
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIERPTVNlbGVjdGlvbihGcmFtZSopOworCisgICAgICAg
IEZyYW1lKiBmcmFtZSgpIGNvbnN0OworICAgICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgpOwor
CisgICAgICAgIE5vZGUqIGFuY2hvck5vZGUoKSBjb25zdDsKKyAgICAgICAgTm9kZSogYmFzZU5v
ZGUoKSBjb25zdDsKKyAgICAgICAgaW50IGFuY2hvck9mZnNldCgpIGNvbnN0OworICAgICAgICBp
bnQgYmFzZU9mZnNldCgpIGNvbnN0OworICAgICAgICBOb2RlKiBmb2N1c05vZGUoKSBjb25zdDsK
KyAgICAgICAgTm9kZSogZXh0ZW50Tm9kZSgpIGNvbnN0OworICAgICAgICBpbnQgZm9jdXNPZmZz
ZXQoKSBjb25zdDsKKyAgICAgICAgaW50IGV4dGVudE9mZnNldCgpIGNvbnN0OworICAgICAgICBi
b29sIGlzQ29sbGFwc2VkKCkgY29uc3Q7CisgICAgICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7Cisg
ICAgICAgIGludCByYW5nZUNvdW50KCkgY29uc3Q7CisKKyAgICAgICAgdm9pZCBjb2xsYXBzZShO
b2RlKiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIGNvbGxhcHNl
VG9FbmQoKTsKKyAgICAgICAgdm9pZCBjb2xsYXBzZVRvU3RhcnQoKTsKKyAgICAgICAgdm9pZCBl
bXB0eSgpOworICAgICAgICB2b2lkIHNldEJhc2VBbmRFeHRlbnQoTm9kZSogYmFzZU5vZGUsIGlu
dCBiYXNlT2Zmc2V0LCBOb2RlKiBleHRlbnROb2RlLCBpbnQgZXh0ZW50T2Zmc2V0LCBFeGNlcHRp
b25Db2RlJik7CisgICAgICAgIHZvaWQgc2V0UG9zaXRpb24oTm9kZSosIGludCBvZmZzZXQsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCBzZXRQb3NpdGlvbihOb2RlKiwgRXhjZXB0aW9u
Q29kZSYpOworICAgICAgICB2b2lkIG1vZGlmeShjb25zdCBTdHJpbmcmIGFsdGVyLCBjb25zdCBT
dHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBncmFudWxhcml0eSk7CisgICAgICAgIFBh
c3NSZWZQdHI8UmFuZ2U+IGdldFJhbmdlQXQoaW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAg
IHZvaWQgcmVtb3ZlQWxsUmFuZ2VzKCk7CisgICAgICAgIHZvaWQgYWRkUmFuZ2UoUmFuZ2UqKTsK
KworICAgICAgICBTdHJpbmcgdG9TdHJpbmcoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIEZy
YW1lKiBtX2ZyYW1lOworICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIERPTVNlbGVjdGlvbl9oCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgRE9NU2VsZWN0aW9u
IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgYW5jaG9yTm9kZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgYW5jaG9yT2Zmc2V0OworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgTm9kZSBmb2N1c05vZGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IGZvY3VzT2Zmc2V0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBiYXNlTm9kZTsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgYmFzZU9mZnNldDsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIE5vZGUgZXh0ZW50Tm9kZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgZXh0ZW50T2Zmc2V0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBpc0NvbGxhcHNlZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyByYW5nZUNvdW50OworCisgICAgICAg
IHZvaWQgY29sbGFwc2UoaW4gTm9kZSBub2RlLCBpbiBsb25nIGluZGV4KQorICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgY29sbGFwc2VUb0VuZCgpOworICAg
ICAgICB2b2lkIGNvbGxhcHNlVG9TdGFydCgpOworICAgICAgICB2b2lkIGVtcHR5KCk7CisgICAg
ICAgIHZvaWQgc2V0QmFzZUFuZEV4dGVudChpbiBOb2RlIGJhc2VOb2RlLCBpbiBsb25nIGJhc2VP
ZmZzZXQsIGluIE5vZGUgZXh0ZW50Tm9kZSwgaW4gbG9uZyBleHRlbnRPZmZzZXQpCisgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRQb3NpdGlvbihpbiBO
b2RlIG5vZGUsIGluIFtPcHRpb25hbF0gbG9uZyBvZmZzZXQpCisgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBtb2RpZnkoaW4gRE9NU3RyaW5nIGFsdGVyLCBp
biBET01TdHJpbmcgZGlyZWN0aW9uLCBpbiBET01TdHJpbmcgZ3JhbnVsYXJpdHkpOworICAgICAg
ICBSYW5nZSBnZXRSYW5nZUF0KGluIGxvbmcgaW5kZXgpCisgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMoKTsKKyAgICAgICAgdm9p
ZCBhZGRSYW5nZShpbiBSYW5nZSByYW5nZSk7CisKKyAgICAgICAgRE9NU3RyaW5nIHRvU3RyaW5n
KCk7CisgICAgfTsKKworfQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDIzNzM4KQorKysg
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJD
U1NSdWxlTGlzdC5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkRPTVNlbGVjdGlv
bi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCkBAIC0xMzMsNiArMTM0LDEzIEBAIEJhckluZm8qIERPTVdpbmRvdzo6dG9v
bGJhcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fdG9vbGJhci5nZXQoKTsKIH0KIAorRE9NU2VsZWN0
aW9uKiBET01XaW5kb3c6OmdldFNlbGVjdGlvbigpCit7CisgICAgaWYgKCFtX3NlbGVjdGlvbikK
KyAgICAgICAgbV9zZWxlY3Rpb24gPSBuZXcgRE9NU2VsZWN0aW9uKG1fZnJhbWUpOworICAgIHJl
dHVybiBtX3NlbGVjdGlvbi5nZXQoKTsKK30KKwogRG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1l
bnQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9u
IDIzNzM4KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBCYXJJbmZvOwogICAg
IGNsYXNzIENTU1J1bGVMaXN0OwogICAgIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CisgICAg
Y2xhc3MgRE9NU2VsZWN0aW9uOwogICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIEVsZW1l
bnQ7CiAgICAgY2xhc3MgRnJhbWU7CkBAIC02MCw2ICs2MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgQmFySW5mbyogc3RhdHVzYmFyKCkgY29uc3Q7CiAgICAgICAgIEJhckluZm8q
IHRvb2xiYXIoKSBjb25zdDsKIAorICAgICAgICBET01TZWxlY3Rpb24qIGdldFNlbGVjdGlvbigp
OworCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0VmlldyBJbnRlcmZhY2UKICAgICAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKQEAgLTczLDYgKzc2LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAgIEZyYW1lKiBtX2ZyYW1lOwogICAg
ICAgICBtdXRhYmxlIFJlZlB0cjxTY3JlZW4+IG1fc2NyZWVuOworICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxET01TZWxlY3Rpb24+IG1fc2VsZWN0aW9uOwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxI
aXN0b3J5PiBtX2hpc3Rvcnk7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEJhckluZm8+IG1fbG9j
YXRpb25iYXI7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEJhckluZm8+IG1fbWVudWJhcjsKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAyMzczOCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBAIG1vZHVsZSB3aW5kb3cgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQmFySW5mbyBzdGF0dXNiYXI7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBCYXJJbmZvIHRvb2xiYXI7CiAKKyAgICAgICAgRE9NU2VsZWN0aW9u
IGdldFNlbGVjdGlvbigpOworCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0VmlldyBJ
bnRlcmZhY2UKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50IGRvY3VtZW50Owog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMzc0NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA3LTA2LTIyICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXBkYXRlIHRlc3RzIGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDMxOQorICAgICAgICBNb3ZlIHRoZSBTZWxlY3Rpb24gb2JqZWN0IG91dCBvZiB0aGUg
SlMgYmluZGluZ3MKKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy90b1N0cmluZy1hbmQtdmFsdWVPZi1v
dmVycmlkZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZXhwZWN0ZWQudHh0OgorCiAyMDA3LTA2LTIyICBCZXRoIERha2luICA8
YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgYW5kIERhcmlu
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMzczOCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEwMzcsNyArMTAzNyw3IEBAIHdpbmRvdy50cnlFdmFsIFtmdW5jdGlvbl0K
IHdpbmRvdy50eXBlT2ZOdWxsQXdhcmUgW2Z1bmN0aW9uXQogd2luZG93LnR5cGVTdHJpbmdOdWxs
QXdhcmUgW2Z1bmN0aW9uXQogd2luZG93LndpbmRvdyBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3dd
Ci13aW5kb3cuZ2V0U2VsZWN0aW9uKCkgW29iamVjdCBTZWxlY3Rpb25dCit3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkgW29iamVjdCBET01TZWxlY3Rpb25dCiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYWRk
UmFuZ2UgW2Z1bmN0aW9uXQogd2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUgW251bGxd
CiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yT2Zmc2V0IFtudW1iZXJdCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLWFuZC12YWx1ZU9m
LW92ZXJyaWRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjM3MzgpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2pzL3RvU3RyaW5nLWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMzI5LDcgKzMyOSw3IEBAIFN0cmluZyhTZWxlY3Rpb24pIDogCiBTdHJpbmco
W1NlbGVjdGlvbl0pIDogCiBTZWxlY3Rpb24udG9TdHJpbmcoKSA6IAogW1NlbGVjdGlvbl0udG9T
dHJpbmcoKSA6IAotVHlwZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNz
aW9uIG9iamVjdC52YWx1ZU9mKSBpcyBub3Qgb2JqZWN0LgorU2VsZWN0aW9uLnZhbHVlT2YoKSA6
IAogW1NlbGVjdGlvbl0udmFsdWVPZigpIDogCiAKIFNlbGVjdGlvbiB3aXRoIG1vZGlmaWVkIHRv
U3RyaW5nIGFuZCB2YWx1ZU9mCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyMzczOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTIyMCw2ICsxMjIw
LDEwIEBAIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmkKIAogQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZy
YW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jv
c3MtZnJhbWUtaWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4x
OjgwMDAvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLmh0bWwuIERvbWFpbnMgbXVzdCBtYXRj
aC4KIAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQg
dG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9y
ZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLmh0bWwuIERvbWFp
bnMgbXVzdCBtYXRjaC4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2Ny
aXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3
aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNz
Lmh0bWwuIERvbWFpbnMgbXVzdCBtYXRjaC4KKwogVGhpcyB0ZXN0IGNoZWNrcyBjcm9zcy1mcmFt
ZSBhY2Nlc3Mgc2VjdXJpdHkgKHJkYXI6Ly9wcm9ibGVtLzUyNTEzMDkpLgogCiAK
</data>
<flag name="review"
          id="6265"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15210</attachid>
            <date>2007-06-24 18:19:45 -0700</date>
            <delta_ts>2007-06-26 14:26:21 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>autoSelection2.diff</filename>
            <type>text/plain</type>
            <size>44664</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzc1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTcgQEAKKzIwMDctMDYtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMTkKKyAgICAgICAg
TW92ZSB0aGUgU2VsZWN0aW9uIG9iamVjdCBvdXQgb2YgdGhlIEpTIGJpbmRpbmdzCisKKyAgICAg
ICAgLSBSZW5hbWVzIEpTIE9iamVjdCBTZWxlY3Rpb24gdG8gRE9NU2VsZWN0aW9uIHRvIGF2b2lk
IGEgbmFtZQorICAgICAgICAgIGNvbmZsaWN0LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHA6CisgICAgICAgIChLSlM6OldpbmRvd1By
aXZhdGU6OldpbmRvd1ByaXZhdGUpOgorICAgICAgICAoS0pTOjpXaW5kb3c6Om1hcmspOgorICAg
ICAgICAoS0pTOjpXaW5kb3c6OmNsZWFySGVscGVyT2JqZWN0UHJvcGVydGllcyk6CisgICAgICAg
IChLSlM6OldpbmRvd0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKEtKUzo6V2luZG93
OjpkaXNjb25uZWN0RnJhbWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc193aW5kb3cuaDoK
KyAgICAgICAgKEtKUzo6V2luZG93OjopOgorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0aW9uLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OkRPTVNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmZyYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVNlbGVjdGlvbjo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNlbGVjdGlvbjo6YW5jaG9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246
OmJhc2VOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6YW5jaG9yT2Zmc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6YmFzZU9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpET01TZWxlY3Rpb246OmZvY3VzTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OmV4dGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9u
Ojpmb2N1c09mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmV4dGVudE9m
ZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmlzQ29sbGFwc2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OnJhbmdlQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9u
Ojpjb2xsYXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmNvbGxhcHNlVG9F
bmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpjb2xsYXBzZVRvU3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjplbXB0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01TZWxlY3Rpb246OnNldEJhc2VBbmRFeHRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
U2VsZWN0aW9uOjpzZXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246
Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmdldFJhbmdlQXQpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpyZW1vdmVBbGxSYW5nZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjphZGRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OnRvU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL0RPTVNlbGVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVNlbGVjdGlvbi5pZGw6IEFkZGVkLgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGlzY29u
bmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Z2V0U2VsZWN0aW9uKToK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmlk
bDoKKwogMjAwNy0wNi0yMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE1pdHouCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyMzc1MykK
KysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMzIzLDYg
KzMyMyw3IEBAIGFsbCA6IFwKICAgICBKU0RPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yLmx1dC5oIFwK
ICAgICBKU0RPTUltcGxlbWVudGF0aW9uLmggXAogICAgIEpTRE9NUGFyc2VyLmggXAorICAgIEpT
RE9NU2VsZWN0aW9uLmggXAogICAgIEpTRE9NV2luZG93LmggXAogICAgIEpTRG9jdW1lbnQuaCBc
CiAgICAgSlNEb2N1bWVudEZyYWdtZW50LmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzNzUzKQorKysgV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0NTgsNyArMTQ1
OCw2IEBACiAJCTkzMzA5RUE0MDk5RUI3OEMwMDU2RTU4MSAvKiBUaW1lci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwOUVBMTA5OUVCNzhDMDA1
NkU1ODEgLyogVGltZXIuY3BwICovOyB9OwogCQk5MzM1NEEzQzBCMjRGOEM5MDAzRjZERUEgLyog
VUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzM1NEEzQjBCMjRGOEM5MDAzRjZERUEgLyogVUlFdmVudFdpdGhLZXlT
dGF0ZS5jcHAgKi87IH07CiAJCTkzM0ExNDJFMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzQTE0
MkIwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5jcHAgKi87IH07Ci0JCTkzM0ExNDJGMEI3
RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNBMTQyQzBCN0QxODg2MDBBNTNGRkQgLyogVGV4dEV2
ZW50LmlkbCAqLzsgfTsKIAkJOTMzQTE0MzAwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzQTE0MkQw
QjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5oICovOyB9OwogCQk5MzNBMTQ3NjBCN0QxQkFG
MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNBMTQ3NTBCN0QxQkFGMDBBNTNGRkQg
LyogRE9NVGV4dEV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTMzQTE0QUEwQjdEMUQwOTAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0ExNEE5MEI3
RDFEMDkwMEE1M0ZGRCAvKiBET01UZXh0RXZlbnQubW0gKi87IH07CkBAIC0yMzkyLDggKzIzOTEs
NiBAQAogCQlCMkQ4N0M4QTBCMTI0RTk1MDBCMERFMUUgLyogU1ZHUGFpbnRTZXJ2ZXJTb2xpZENn
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRDg3
Qzg2MEIxMjRFOTUwMEIwREUxRSAvKiBTVkdQYWludFNlcnZlclNvbGlkQ2cuY3BwICovOyB9Owog
CQlCMkRERjA2NTBCNDgyOUZBMDA2NEE0QjEgLyogUGF0dGVybkF0dHJpYnV0ZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRERGMDY0MEI0ODI5RkEw
MDY0QTRCMSAvKiBQYXR0ZXJuQXR0cmlidXRlcy5oICovOyB9OwogCQlCMkRERjA2NzBCNDgyQTAz
MDA2NEE0QjEgLyogR3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkRERjA2NjBCNDgyQTAzMDA2NEE0QjEgLyogR3JhZGll
bnRBdHRyaWJ1dGVzLmggKi87IH07Ci0JCUIyREUyODFEMEI1QkZBNTQwMENDMjg5QSAvKiBTVkdF
bGVtZW50SW5zdGFuY2UuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMkRFMjgxQjBCNUJGQTU0MDBDQzI4OUEgLyogU1ZHRWxlbWVudEluc3RhbmNl
LmlkbCAqLzsgfTsKLQkJQjJERTI4MUUwQjVCRkE1NDAwQ0MyODlBIC8qIFNWR0VsZW1lbnRJbnN0
YW5jZUxpc3QuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCMkRFMjgxQzBCNUJGQTU0MDBDQzI4OUEgLyogU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5p
ZGwgKi87IH07CiAJCUIyRTI3QkQ1MEIwRjJBOTUwMEYxN0M3QiAvKiBTVkdSZXNvdXJjZUZpbHRl
ckNnLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJF
MjdCRDMwQjBGMkE5NTAwRjE3QzdCIC8qIFNWR1Jlc291cmNlRmlsdGVyQ2cubW0gKi87IH07CiAJ
CUIyRTI3QkRBMEIwRjJBQzgwMEYxN0M3QiAvKiBTVkdSZXNvdXJjZUZpbHRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkUyN0JENzBCMEYyQUM4
MDBGMTdDN0IgLyogU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwICovOyB9OwogCQlCMkUyN0JEQjBCMEYy
QUM4MDBGMTdDN0IgLyogU1ZHUmVzb3VyY2VGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRTI3QkQ4MEIwRjJBQzgwMEYxN0M3QiAvKiBTVkdS
ZXNvdXJjZUZpbHRlci5oICovOyB9OwpAQCAtMjczNiw3ICsyNzMzLDYgQEAKIAkJQkMwNkVFMDUw
QkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkVFMDMwQkZENzFBQTAwODU2RTlEIC8q
IEpTSFRNTFRhYmxlRWxlbWVudC5oICovOyB9OwogCQlCQzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkg
LyogQmFySW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzEyNEVFNDBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5jcHAgKi87IH07CiAJCUJD
MTI0RUU4MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVFNTBDMjY0MUNEMDA5RTIzNDkgLyogQmFy
SW5mby5oICovOyB9OwotCQlCQzEyNEVFOTBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5pZGwg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI0RUU2
MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmlkbCAqLzsgfTsKIAkJQkMxMjRFRkYwQzI2NDQ3
QTAwOUUyMzQ5IC8qIEpTQmFySW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVGRDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJJbmZvLmNw
cCAqLzsgfTsKIAkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFySW5mby5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRkUwQzI2NDQ3
QTAwOUUyMzQ5IC8qIEpTQmFySW5mby5oICovOyB9OwogCQlCQzE3Rjk2NjBCNjRFQkI4MDA0QTY1
Q0IgLyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE3Rjk2NTBCNjRFQkI4MDA0QTY1Q0IgLyogSlNI
VE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAgKi87IH07CkBAIC0yNzYwLDYgKzI3NTYsMTAgQEAK
IAkJQkMxQTM3QkYwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVV0aWxpdHkubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzdBOTA5N0M3MTVGMDAxOUYz
RDggLyogRE9NVXRpbGl0eS5tbSAqLzsgfTsKIAkJQkMxQTM3QzAwOTdDNzE1RjAwMTlGM0Q4IC8q
IERPTVZpZXdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzFBMzdBQTA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3MuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzIwRkI3RjBDMEU4RTZDMDBEMTQ0
N0YgLyogSlNDU1NWYWx1ZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzIwRkI3RTBDMEU4RTZDMDBEMTQ0N0YgLyogSlNDU1NWYWx1ZUN1
c3RvbS5jcHAgKi87IH07CisJCUJDMjFERjY1MEMyQzQxRjcwMDczQjk5MiAvKiBET01TZWxlY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMy
MURGNjIwQzJDNDFGNzAwNzNCOTkyIC8qIERPTVNlbGVjdGlvbi5jcHAgKi87IH07CisJCUJDMjFE
RjY2MEMyQzQxRjcwMDczQjk5MiAvKiBET01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjFERjYzMEMyQzQxRjcwMDczQjk5MiAvKiBE
T01TZWxlY3Rpb24uaCAqLzsgfTsKKwkJQkMyMUUwQzcwQzJDNTlGNzAwNzNCOTkyIC8qIEpTRE9N
U2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMjFFMEM1MEMyQzU5RjcwMDczQjk5MiAvKiBKU0RPTVNlbGVjdGlvbi5jcHAgKi87IH07
CisJCUJDMjFFMEM4MEMyQzU5RjcwMDczQjk5MiAvKiBKU0RPTVNlbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyMUUwQzYwQzJDNTlGNzAw
NzNCOTkyIC8qIEpTRE9NU2VsZWN0aW9uLmggKi87IH07CiAJCUJDMzA1Qzc5MEMwNzZCQjMwMENE
MjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzA1Qzc3MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxP
YmplY3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJQkMzMDVDN0EwQzA3NkJCMzAwQ0QyMEYwIC8qIEpT
SFRNTE9iamVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMzA1Qzc4MEMwNzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50
LmggKi87IH07CiAJCUJDMzA1Q0E0MEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVt
ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMzA1Q0EzMEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9t
LmNwcCAqLzsgfTsKQEAgLTI4MjIsNyArMjgyMiw2IEBACiAJCUJDOTREMTRGMEMyNzVDNjgwMDZC
QzYxNyAvKiBKU0hpc3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDOTREMTREMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuaCAqLzsgfTsK
IAkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NEQxNTAwQzI3NUM4QjAwNkJDNjE3
IC8qIEhpc3RvcnkuY3BwICovOyB9OwogCQlCQzk0RDE1NDBDMjc1QzhCMDA2QkM2MTcgLyogSGlz
dG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5
NEQxNTEwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuaCAqLzsgfTsKLQkJQkM5NEQxNTUwQzI3
NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0RDE1MjBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5p
ZGwgKi87IH07CiAJCUJDOTREMTU3MEMyNzVDQUIwMDZCQzYxNyAvKiBHbG9iYWxIaXN0b3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0RDE1NjBD
Mjc1Q0FCMDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeS5oICovOyB9OwogCQlCQzk0RDE1OTBDMjc1
Q0I2MDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTREMTU4MEMyNzVDQjYwMDZCQzYxNyAvKiBHbG9i
YWxIaXN0b3J5TWFjLm1tICovOyB9OwogCQlCQzk4QTI3RDBDMEM5OTUwMDA0QkVCRjcgLyogSlNT
dHlsZVNoZWV0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDOThBMjdDMEMwQzk5NTAwMDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRDdXN0b20u
Y3BwICovOyB9OwpAQCAtMjk1MCw3ICsyOTQ5LDYgQEAKIAkJQkNFQjM3NzYwOUI3QkIwRDAwQ0Iz
OEIxIC8qIEZvbnRGYWxsYmFja0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRUIzNzc1MDlCN0JCMEQwMENCMzhCMSAvKiBGb250RmFsbGJhY2tM
aXN0LmggKi87IH07CiAJCUJDRUMwMUJEMEMyNzREQUMwMDlGNEVDOSAvKiBTY3JlZW4uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFQzAxQkEwQzI3
NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5jcHAgKi87IH07CiAJCUJDRUMwMUJFMEMyNzREQUMwMDlG
NEVDOSAvKiBTY3JlZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRUMwMUJCMEMyNzREQUMwMDlGNEVDOSAvKiBTY3JlZW4uaCAqLzsgfTsKLQkJQkNF
QzAxQkYwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUMwMUJDMEMyNzREQUMwMDlGNEVDOSAvKiBT
Y3JlZW4uaWRsICovOyB9OwogCQlCQ0VDMDFDMjBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFQzAx
QzAwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmNwcCAqLzsgfTsKIAkJQkNFQzAxQzMwQzI3
NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0VDMDFDMTBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCAq
LzsgfTsKIAkJQkNFQzAxRDcwQzI3NEVCNDAwOUY0RUM5IC8qIFBsYXRmb3JtU2NyZWVuLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VDMDFENjBDMjc0
RUI0MDA5RjRFQzkgLyogUGxhdGZvcm1TY3JlZW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjA3Miw2ICs2MDcwLDExIEBACiAJCUJDMUEzN0E5
MDk3QzcxNUYwMDE5RjNEOCAvKiBET01VdGlsaXR5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTVV0aWxpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMUEzN0FBMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NVmlld3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkMyMEZCN0UwQzBFOEU2QzAwRDE0NDdGIC8qIEpTQ1NTVmFsdWVDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ1NTVmFsdWVDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzIxREY2MjBDMkM0MUY3MDA3M0I5
OTIgLyogRE9NU2VsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBET01TZWxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzIx
REY2MzBDMkM0MUY3MDA3M0I5OTIgLyogRE9NU2VsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01TZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkMyMUUwQzUwQzJDNTlGNzAwNzNCOTkyIC8qIEpTRE9NU2VsZWN0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVNlbGVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMjFFMEM2MEMyQzU5RjcwMDczQjk5MiAvKiBK
U0RPTVNlbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01T
ZWxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMyMUUxNDIwQzJDNUFB
QzAwNzNCOTkyIC8qIERPTVNlbGVjdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERP
TVNlbGVjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzA1Qzc3MEMw
NzZCQjMwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxPYmplY3RFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzMDVDNzgwQzA3NkJCMzAwQ0QyMEYwIC8qIEpTSFRNTE9i
amVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTE9i
amVjdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzMDVDQTMwQzA3
ODFCQjAwQ0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTYyLDYgKzY1NjUsOCBAQAogCQkJCTY1
REYzMUU0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0RPTUltcGxlbWVudGF0aW9uLmggKi8sCiAJCQkJ
MUFDRTUzREQwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCAqLywKIAkJCQkxQUNF
NTNERTBBOEQxODgxMDAyMjk0N0QgLyogSlNET01QYXJzZXIuaCAqLywKKwkJCQlCQzIxRTBDNTBD
MkM1OUY3MDA3M0I5OTIgLyogSlNET01TZWxlY3Rpb24uY3BwICovLAorCQkJCUJDMjFFMEM2MEMy
QzU5RjcwMDczQjk5MiAvKiBKU0RPTVNlbGVjdGlvbi5oICovLAogCQkJCTE0MDNCQTBCMDlFQjE4
QzcwMDc5N0M3RiAvKiBKU0RPTVdpbmRvdy5jcHAgKi8sCiAJCQkJMTQwM0JBMEUwOUVCMThGODAw
Nzk3QzdGIC8qIEpTRE9NV2luZG93LmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAwMEJFMzI1
IC8qIEpTRWxlbWVudC5jcHAgKi8sCkBAIC03MjUyLDYgKzcyNTcsOSBAQAogCQkJCTA2NUFENEYy
MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oICovLAogCQkJCTA2NUFENEYz
MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwICovLAogCQkJCTA2
NUFENEY0MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCAqLywKKwkJ
CQlCQzIxREY2MjBDMkM0MUY3MDA3M0I5OTIgLyogRE9NU2VsZWN0aW9uLmNwcCAqLywKKwkJCQlC
QzIxREY2MzBDMkM0MUY3MDA3M0I5OTIgLyogRE9NU2VsZWN0aW9uLmggKi8sCisJCQkJQkMyMUUx
NDIwQzJDNUFBQzAwNzNCOTkyIC8qIERPTVNlbGVjdGlvbi5pZGwgKi8sCiAJCQkJMTQwM0I5OTYw
OUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5jcHAgKi8sCiAJCQkJMTQwM0I5OTUwOUVCMTNB
RjAwNzk3QzdGIC8qIERPTVdpbmRvdy5oICovLAogCQkJCTE0MDNCOTBDMDlFQjEyNDUwMDc5N0M3
RiAvKiBET01XaW5kb3cuaWRsICovLApAQCAtNzI3MiwxMiArNzI4MCwxMiBAQAogCQkJCTY1QTIx
NDgzMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRyZWUuaCAqLywKIAkJCQk2NUNCRkVGNzA5NzRG
NjA3MDAxREFDMjUgLyogRnJhbWVWaWV3LmNwcCAqLywKIAkJCQk2NUNCRkVGODA5NzRGNjA3MDAx
REFDMjUgLyogRnJhbWVWaWV3LmggKi8sCi0JCQkJMDY2OTNEQjcwQkZCQTJGNDAwMjE2MDcyIC8q
IEluc3BlY3RvckNsaWVudC5oICovLAotCQkJCTA2NjkzREI4MEJGQkEyRjQwMDIxNjA3MiAvKiBJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcCAqLywKLQkJCQkwNjY5M0RCOTBCRkJBMkY0MDAyMTYwNzIg
LyogSW5zcGVjdG9yQ29udHJvbGxlci5oICovLAogCQkJCUJDOTREMTUwMEMyNzVDOEIwMDZCQzYx
NyAvKiBIaXN0b3J5LmNwcCAqLywKIAkJCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcgLyogSGlz
dG9yeS5oICovLAogCQkJCUJDOTREMTUyMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmlkbCAq
LywKKwkJCQkwNjY5M0RCNzBCRkJBMkY0MDAyMTYwNzIgLyogSW5zcGVjdG9yQ2xpZW50LmggKi8s
CisJCQkJMDY2OTNEQjgwQkZCQTJGNDAwMjE2MDcyIC8qIEluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
ICovLAorCQkJCTA2NjkzREI5MEJGQkEyRjQwMDIxNjA3MiAvKiBJbnNwZWN0b3JDb250cm9sbGVy
LmggKi8sCiAJCQkJOTNFQjM1NUUwOUUzN0ZENjAwRjQzNzk5IC8qIE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMuY3BwICovLAogCQkJCTkzNUM0NzYyMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggKi8sCiAJCQkJNjVGRUE4NjgwOTgzM0FERTAwQkVE
NEFCIC8qIFBhZ2UuY3BwICovLApAQCAtMTE2MjQsNiArMTE2MzIsOCBAQAogCQkJCUJDOTREMTRG
MEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTRE
MTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0
RDE1NzBDMjc1Q0FCMDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQkMyMURGNjYwQzJDNDFGNzAwNzNCOTkyIC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQkMyMUUwQzgwQzJDNTlGNzAwNzNCOTkyIC8qIEpTRE9NU2VsZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTExNzI4LDE4ICsxMTczOCwxMiBAQAogCQkJCUIyRTI3Qzc0MEIwRjJB
RTYwMEYxN0M3QiAvKiBXS1RhYmxlVHJhbnNmZXJGaWx0ZXIuY2lrZXJuZWwgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCTQ2MTRBMUZFMEIyM0E4RDYwMDQ0NkUxQyAvKiBjb3B5Q3Vyc29yLnBuZyBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkJNDZCRDE2RTMwQjI3OTQ3MzAwMUYwODM5IC8qIG5vbmVDdXJzb3Iu
cG5nIGluIFJlc291cmNlcyAqLywKLQkJCQlCMkRFMjgxRDBCNUJGQTU0MDBDQzI4OUEgLyogU1ZH
RWxlbWVudEluc3RhbmNlLmlkbCBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJQjJERTI4MUUwQjVCRkE1
NDAwQ0MyODlBIC8qIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRsIGluIFJlc291cmNlcyAqLywK
LQkJCQk5MzNBMTQyRjBCN0QxODg2MDBBNTNGRkQgLyogVGV4dEV2ZW50LmlkbCBpbiBSZXNvdXJj
ZXMgKi8sCiAJCQkJNDY0RUEyNzMwQjhBMzUwQjAwQThFNkUzIC8qIGNyb3NzSGFpckN1cnNvci5w
bmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTQ2NEVBMjc0MEI4QTM1MEIwMEE4RTZFMyAvKiBub3RB
bGxvd2VkQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMDY2OTNGN0IwQkZCQzkxNzAw
MjE2MDcyIC8qIGluc3BlY3RvciBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQkM0OTFCNEYwQzAyM0Uy
RDAwOUQ2MzE2IC8qIEhUTUxNYXJxdWVlRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJ
CTFBQjFBRTdBMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tSW5DdXJzb3IucG5nIGluIFJlc291cmNl
cyAqLywKIAkJCQkxQUIxQUU3QjBDMDUxRkRFMDAxMzlGNEYgLyogem9vbU91dEN1cnNvci5wbmcg
aW4gUmVzb3VyY2VzICovLAotCQkJCUJDMTI0RUU5MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZv
LmlkbCBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJQkNFQzAxQkYwQzI3NERBQzAwOUY0RUM5IC8qIFNj
cmVlbi5pZGwgaW4gUmVzb3VyY2VzICovLAotCQkJCUJDOTREMTU1MEMyNzVDOEIwMDZCQzYxNyAv
KiBIaXN0b3J5LmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xMzA1OCw2ICsxMzA2Miw4IEBACiAJ
CQkJQkM5NEQxNEUwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzk0RDE1OTBDMjc1Q0I2MDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeU1hYy5t
bSBpbiBTb3VyY2VzICovLAorCQkJCUJDMjFERjY1MEMyQzQxRjcwMDczQjk5MiAvKiBET01TZWxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMyMUUwQzcwQzJDNTlGNzAwNzNCOTkyIC8q
IEpTRE9NU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9ranNfd2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tq
c193aW5kb3cuY3BwCShyZXZpc2lvbiAyMzc1MykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pz
X3dpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDYgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsdWdJbkluZm9TdG9yZS5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKLSNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgImh0
bWxlZGl0aW5nLmgiCkBAIC04Myw3ICs4Miw2IEBAIGNvbnN0IGRvdWJsZSBjTWluaW11bVRpbWVy
SW50ZXJ2YWwgPSAwLjAKIHN0cnVjdCBXaW5kb3dQcml2YXRlIHsKICAgICBXaW5kb3dQcml2YXRl
KCkgCiAgICAgICAgIDogbG9jKDApCi0gICAgICAgICwgbV9zZWxlY3Rpb24oMCkKICAgICAgICAg
LCBtX2V2dCgwKQogICAgICAgICAsIG1fcmV0dXJuVmFsdWVTbG90KDApCiAgICAgewpAQCAtOTQs
NyArOTIsNiBAQCBzdHJ1Y3QgV2luZG93UHJpdmF0ZSB7CiAgICAgV2luZG93OjpVbnByb3RlY3Rl
ZExpc3RlbmVyc01hcCBqc1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lcnM7CiAgICAgV2luZG93OjpV
bnByb3RlY3RlZExpc3RlbmVyc01hcCBqc1VucHJvdGVjdGVkSFRNTEV2ZW50TGlzdGVuZXJzOwog
ICAgIG11dGFibGUgTG9jYXRpb24qIGxvYzsKLSAgICBtdXRhYmxlIFNlbGVjdGlvbiogbV9zZWxl
Y3Rpb247CiAgICAgV2ViQ29yZTo6RXZlbnQgKm1fZXZ0OwogICAgIEpTVmFsdWUgKiptX3JldHVy
blZhbHVlU2xvdDsKICAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBET01XaW5kb3dUaW1lcio+IFRp
bWVvdXRzTWFwOwpAQCAtMjAxLDcgKzE5OCw2IEBAIGNvbnN0IENsYXNzSW5mbyBXaW5kb3c6Omlu
Zm8gPSB7ICJXaW5kb3cKICAgc2V0VGltZW91dCAgICBXaW5kb3c6OlNldFRpbWVvdXQgICAgICBE
b250RGVsZXRlfEZ1bmN0aW9uIDIKICAgY2xlYXJUaW1lb3V0ICBXaW5kb3c6OkNsZWFyVGltZW91
dCAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDEKICAgZm9jdXMgICAgICAgICBXaW5kb3c6OkZvY3Vz
ICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKLSAgZ2V0U2VsZWN0aW9uICBXaW5kb3c6
OkdldFNlbGVjdGlvbiAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKICAgYmx1ciAgICAgICAgICBX
aW5kb3c6OkJsdXIgICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKICAgY2xvc2UgICAg
ICAgICBXaW5kb3c6OkNsb3NlICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKICAgc2V0
SW50ZXJ2YWwgICBXaW5kb3c6OlNldEludGVydmFsICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDIK
QEAgLTMxNiwxMyArMzEyLDYgQEAgTG9jYXRpb24gKldpbmRvdzo6bG9jYXRpb24oKSBjb25zdAog
ICByZXR1cm4gZC0+bG9jOwogfQogCi1TZWxlY3Rpb24gKldpbmRvdzo6c2VsZWN0aW9uKCkgY29u
c3QKLXsKLSAgaWYgKCFkLT5tX3NlbGVjdGlvbikKLSAgICBkLT5tX3NlbGVjdGlvbiA9IG5ldyBT
ZWxlY3Rpb24obV9mcmFtZSk7Ci0gIHJldHVybiBkLT5tX3NlbGVjdGlvbjsKLX0KLQogYm9vbCBX
aW5kb3c6OmZpbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgY2FzZVNlbnNpdGl2ZSwgYm9v
bCBiYWNrd2FyZHMsIGJvb2wgd3JhcCwgYm9vbCB3aG9sZVdvcmQsIGJvb2wgc2VhcmNoSW5GcmFt
ZXMsIGJvb2wgc2hvd0RpYWxvZykgY29uc3QKIHsKICAgICAvLyBGSVhNRSAoMTMwMTYpOiBTdXBw
b3J0IHdob2xlV29yZCwgc2VhcmNoSW5GcmFtZXMgYW5kIHNob3dEaWFsb2cKQEAgLTMzNSw4ICsz
MjQsNiBAQCB2b2lkIFdpbmRvdzo6bWFyaygpCiAgIEpTT2JqZWN0OjptYXJrKCk7CiAgIGlmIChk
LT5sb2MgJiYgIWQtPmxvYy0+bWFya2VkKCkpCiAgICAgZC0+bG9jLT5tYXJrKCk7Ci0gIGlmIChk
LT5tX3NlbGVjdGlvbiAmJiAhZC0+bV9zZWxlY3Rpb24tPm1hcmtlZCgpKQotICAgIGQtPm1fc2Vs
ZWN0aW9uLT5tYXJrKCk7CiB9CiAKIHN0YXRpYyBib29sIGFsbG93UG9wVXAoRXhlY1N0YXRlICpl
eGVjLCBXaW5kb3cgKndpbmRvdykKQEAgLTEyNDAsNyArMTIyNyw2IEBAIEpTVW5wcm90ZWN0ZWRF
dmVudExpc3RlbmVyICpXaW5kb3c6OmZpbmQKIHZvaWQgV2luZG93OjpjbGVhckhlbHBlck9iamVj
dFByb3BlcnRpZXMoKQogewogICBkLT5sb2MgPSAwOwotICBkLT5tX3NlbGVjdGlvbiA9IDA7CiAg
IGQtPm1fZXZ0ID0gMDsKIH0KIApAQCAtMTYzNywxMCArMTYyMyw2IEBAIEpTVmFsdWUgKldpbmRv
d0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKEV4ZWMKICAgY2FzZSBXaW5kb3c6OkZvY3VzOgogICAgIGZy
YW1lLT5mb2N1c1dpbmRvdygpOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICBjYXNlIFdp
bmRvdzo6R2V0U2VsZWN0aW9uOgotICAgIGlmICghd2luZG93LT5pc1NhZmVTY3JpcHQoZXhlYykp
Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIHJldHVybiB3aW5kb3ctPnNlbGVj
dGlvbigpOwogICBjYXNlIFdpbmRvdzo6Qmx1cjoKICAgICBmcmFtZS0+dW5mb2N1c1dpbmRvdygp
OwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTg3Myw4ICsxODU1LDYgQEAgdm9pZCBX
aW5kb3c6OmRpc2Nvbm5lY3RGcmFtZSgpCiAgICAgbV9mcmFtZSA9IDA7CiAgICAgaWYgKGQtPmxv
YykKICAgICAgICAgZC0+bG9jLT5tX2ZyYW1lID0gMDsKLSAgICBpZiAoZC0+bV9zZWxlY3Rpb24p
Ci0gICAgICAgIGQtPm1fc2VsZWN0aW9uLT5tX2ZyYW1lID0gMDsKIH0KIAogV2luZG93OjpMaXN0
ZW5lcnNNYXAmIFdpbmRvdzo6anNFdmVudExpc3RlbmVycygpCkBAIC0yMTAzLDEzNSArMjA4Myw2
IEBAIEpTVmFsdWUgKkxvY2F0aW9uRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXgKICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiB9CiAKLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU2VsZWN0aW9uIE9iamVj
dCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotY29uc3QgQ2xhc3NJbmZvIFNlbGVjdGlvbjo6
aW5mbyA9IHsgIlNlbGVjdGlvbiIsIDAsICZTZWxlY3Rpb25UYWJsZSwgMCB9OwotLyoKLUBiZWdp
biBTZWxlY3Rpb25UYWJsZSAxOQotICBhbmNob3JOb2RlICAgICAgICAgICAgICAgIFNlbGVjdGlv
bjo6QW5jaG9yTm9kZSAgICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgYW5jaG9y
T2Zmc2V0ICAgICAgICAgICAgICBTZWxlY3Rpb246OkFuY2hvck9mZnNldCAgICAgICAgICAgICBE
b250RGVsZXRlfFJlYWRPbmx5Ci0gIGZvY3VzTm9kZSAgICAgICAgICAgICAgICAgU2VsZWN0aW9u
OjpGb2N1c05vZGUgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBmb2N1c09m
ZnNldCAgICAgICAgICAgICAgIFNlbGVjdGlvbjo6Rm9jdXNPZmZzZXQgICAgICAgICAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgYmFzZU5vZGUgICAgICAgICAgICAgICAgICBTZWxlY3Rpb246
OkJhc2VOb2RlICAgICAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGJhc2VPZmZz
ZXQgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpCYXNlT2Zmc2V0ICAgICAgICAgICAgICAgRG9u
dERlbGV0ZXxSZWFkT25seQotICBleHRlbnROb2RlICAgICAgICAgICAgICAgIFNlbGVjdGlvbjo6
RXh0ZW50Tm9kZSAgICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgZXh0ZW50T2Zm
c2V0ICAgICAgICAgICAgICBTZWxlY3Rpb246OkV4dGVudE9mZnNldCAgICAgICAgICAgICBEb250
RGVsZXRlfFJlYWRPbmx5Ci0gIGlzQ29sbGFwc2VkICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpJ
c0NvbGxhcHNlZCAgICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICB0eXBlICAgICAg
ICAgICAgICAgICAgICAgIFNlbGVjdGlvbjo6X1R5cGUgICAgICAgICAgICAgICAgICAgIERvbnRE
ZWxldGV8UmVhZE9ubHkKLSAgcmFuZ2VDb3VudCAgICAgICAgICAgICAgICBTZWxlY3Rpb246OlJh
bmdlQ291bnQgICAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIHRvU3RyaW5nICAg
ICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpUb1N0cmluZyAgICAgICAgICAgICAgICAgRG9udERl
bGV0ZXxGdW5jdGlvbiAwCi0gIGNvbGxhcHNlICAgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpD
b2xsYXBzZSAgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAyCi0gIGNvbGxhcHNl
VG9FbmQgICAgICAgICAgICAgU2VsZWN0aW9uOjpDb2xsYXBzZVRvRW5kICAgICAgICAgICAgRG9u
dERlbGV0ZXxGdW5jdGlvbiAwCi0gIGNvbGxhcHNlVG9TdGFydCAgICAgICAgICAgU2VsZWN0aW9u
OjpDb2xsYXBzZVRvU3RhcnQgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGVtcHR5
ICAgICAgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpFbXB0eSAgICAgICAgICAgICAgICAgICAg
RG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIHNldEJhc2VBbmRFeHRlbnQgICAgICAgICAgU2VsZWN0
aW9uOjpTZXRCYXNlQW5kRXh0ZW50ICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiA0Ci0gIHNl
dFBvc2l0aW9uICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpTZXRQb3NpdGlvbiAgICAgICAgICAg
ICAgRG9udERlbGV0ZXxGdW5jdGlvbiAyCi0gIG1vZGlmeSAgICAgICAgICAgICAgICAgICAgU2Vs
ZWN0aW9uOjpNb2RpZnkgICAgICAgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAzCi0g
IGdldFJhbmdlQXQgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpHZXRSYW5nZUF0ICAgICAgICAg
ICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi0gIHJlbW92ZUFsbFJhbmdlcyAgICAgICAgICAg
U2VsZWN0aW9uOjpSZW1vdmVBbGxSYW5nZXMgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAw
Ci0gIGFkZFJhbmdlICAgICAgICAgICAgICAgICAgU2VsZWN0aW9uOjpBZGRSYW5nZSAgICAgICAg
ICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi1AZW5kCi0qLwotS0pTX0lNUExFTUVOVF9Q
Uk9UT1RZUEVfRlVOQ1RJT04oU2VsZWN0aW9uRnVuYykKLVNlbGVjdGlvbjo6U2VsZWN0aW9uKEZy
YW1lICpwKSA6IG1fZnJhbWUocCkKLXsKLX0KLQotSlNWYWx1ZSAqU2VsZWN0aW9uOjpnZXRWYWx1
ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuKSBjb25zdAotewotICAgIFNlbGVj
dGlvbkNvbnRyb2xsZXIqIHMgPSBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCk7Ci0gICAg
Y29uc3QgV2luZG93KiB3aW5kb3cgPSBXaW5kb3c6OnJldHJpZXZlV2luZG93KG1fZnJhbWUpOwot
ICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAg
Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgIGNhc2UgQW5jaG9yTm9kZToKLSAgICAgICAgcmV0
dXJuIHRvSlMoZXhlYywgcy0+YW5jaG9yTm9kZSgpKTsKLSAgICBjYXNlIEJhc2VOb2RlOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBzLT5iYXNlTm9kZSgpKTsKLSAgICBjYXNlIEFuY2hvck9m
ZnNldDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHMtPmFuY2hvck9mZnNldCgpKTsKLSAgICBj
YXNlIEJhc2VPZmZzZXQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihzLT5iYXNlT2Zmc2V0KCkp
OwotICAgIGNhc2UgRm9jdXNOb2RlOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBzLT5mb2N1
c05vZGUoKSk7Ci0gICAgY2FzZSBFeHRlbnROb2RlOgotICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBzLT5leHRlbnROb2RlKCkpOwotICAgIGNhc2UgRm9jdXNPZmZzZXQ6Ci0gICAgICAgIHJldHVy
biBqc051bWJlcihzLT5mb2N1c09mZnNldCgpKTsKLSAgICBjYXNlIEV4dGVudE9mZnNldDoKLSAg
ICAgICAgcmV0dXJuIGpzTnVtYmVyKHMtPmV4dGVudE9mZnNldCgpKTsKLSAgICBjYXNlIElzQ29s
bGFwc2VkOgotICAgICAgICByZXR1cm4ganNCb29sZWFuKHMtPmlzQ29sbGFwc2VkKCkpOwotICAg
IGNhc2UgX1R5cGU6Ci0gICAgICAgIHJldHVybiBqc1N0cmluZyhzLT50eXBlKCkpOwotICAgIGNh
c2UgUmFuZ2VDb3VudDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHMtPnJhbmdlQ291bnQoKSk7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUKDApOwotICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLSAgICB9Ci19Ci0KLWJvb2wgU2VsZWN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKLXsKLSAgaWYgKCFtX2ZyYW1lKQotICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
IHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8U2VsZWN0aW9uRnVuYywgU2VsZWN0aW9uLCBK
U09iamVjdD4oZXhlYywgJlNlbGVjdGlvblRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwotfQotCi1KU1ZhbHVlICpTZWxlY3Rpb25GdW5jOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUg
KmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKQotewotICAgIGlmICgh
dGhpc09iai0+aW5oZXJpdHMoJlNlbGVjdGlvbjo6aW5mbykpCi0gICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7Ci0gICAgU2VsZWN0aW9uICpzZWxlY3Rpb24gPSBzdGF0
aWNfY2FzdDxTZWxlY3Rpb24gKj4odGhpc09iaik7Ci0gICAgRnJhbWUgKmZyYW1lID0gc2VsZWN0
aW9uLT5mcmFtZSgpOwotICAgIGlmIChmcmFtZSkgewotICAgICAgICBTZWxlY3Rpb25Db250cm9s
bGVyKiBzID0gZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKTsKLSAgICAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgICAgIHN3aXRjaCAoaWQpIHsKLSAgICAgICAgICAgIGNhc2UgU2Vs
ZWN0aW9uOjpDb2xsYXBzZToKLSAgICAgICAgICAgICAgICBzLT5jb2xsYXBzZSh0b05vZGUoYXJn
c1swXSksIGFyZ3NbMV0tPnRvSW50MzIoZXhlYyksIGVjKTsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9uOjpDb2xsYXBzZVRvRW5kOgotICAgICAgICAg
ICAgICAgIHMtPmNvbGxhcHNlVG9FbmQoKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgU2VsZWN0aW9uOjpDb2xsYXBzZVRvU3RhcnQ6Ci0gICAgICAgICAgICAgICAg
cy0+Y29sbGFwc2VUb1N0YXJ0KCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlIFNlbGVjdGlvbjo6RW1wdHk6Ci0gICAgICAgICAgICAgICAgcy0+ZW1wdHkoKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9uOjpTZXRCYXNl
QW5kRXh0ZW50OgotICAgICAgICAgICAgICAgIHMtPnNldEJhc2VBbmRFeHRlbnQodG9Ob2RlKGFy
Z3NbMF0pLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpLCB0b05vZGUoYXJnc1syXSksIGFyZ3NbM10t
PnRvSW50MzIoZXhlYyksIGVjKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IGNhc2UgU2VsZWN0aW9uOjpTZXRQb3NpdGlvbjoKLSAgICAgICAgICAgICAgICBzLT5zZXRQb3Np
dGlvbih0b05vZGUoYXJnc1swXSksIGFyZ3NbMV0tPnRvSW50MzIoZXhlYyksIGVjKTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9uOjpNb2RpZnk6Ci0g
ICAgICAgICAgICAgICAgcy0+bW9kaWZ5KGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpLCBhcmdzWzFd
LT50b1N0cmluZyhleGVjKSwgYXJnc1syXS0+dG9TdHJpbmcoZXhlYykpOwotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBTZWxlY3Rpb246OkdldFJhbmdlQXQ6IHsKLSAg
ICAgICAgICAgICAgICBKU1ZhbHVlKiB2YWwgPSB0b0pTKGV4ZWMsIHMtPmdldFJhbmdlQXQoYXJn
c1swXS0+dG9JbnQzMihleGVjKSwgZWMpLmdldCgpKTsKLSAgICAgICAgICAgICAgICBzZXRET01F
eGNlcHRpb24oZXhlYywgZWMpOwotICAgICAgICAgICAgICAgIHJldHVybiB2YWw7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBjYXNlIFNlbGVjdGlvbjo6UmVtb3ZlQWxsUmFuZ2VzOgotICAg
ICAgICAgICAgICAgIHMtPnJlbW92ZUFsbFJhbmdlcygpOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgY2FzZSBTZWxlY3Rpb246OkFkZFJhbmdlOgotICAgICAgICAgICAgICAg
IHMtPmFkZFJhbmdlKHRvUmFuZ2UoYXJnc1swXSkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBTZWxlY3Rpb246OlRvU3RyaW5nOgotICAgICAgICAgICAgICAgIHJl
dHVybiBqc1N0cmluZyhmcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT50b1N0cmluZygpKTsK
LSAgICAgICAgfQotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwotICAgIH0KLQot
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBQ
YXVzZWRUaW1lb3V0czo6flBhdXNlZFRpbWVvdXRzKCkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMva2pzX3dpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dp
bmRvdy5oCShyZXZpc2lvbiAyMzc1MykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRv
dy5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAg
IGNsYXNzIExvY2F0aW9uOwogICAgIGNsYXNzIFBhdXNlZFRpbWVvdXQ7CiAgICAgY2xhc3MgU2No
ZWR1bGVkQWN0aW9uOwotICAgIGNsYXNzIFNlbGVjdGlvbjsKICAgICBjbGFzcyBXaW5kb3c7CiAg
ICAgY2xhc3MgV2luZG93RnVuYzsKIApAQCAtMTE1LDcgKzExNCw2IEBAIG5hbWVzcGFjZSBLSlMg
ewogICAgIGJvb2wgaXNTYWZlU2NyaXB0KEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIHN0YXRpYyBi
b29sIGlzU2FmZVNjcmlwdChjb25zdCBTY3JpcHRJbnRlcnByZXRlciAqb3JpZ2luLCBjb25zdCBT
Y3JpcHRJbnRlcnByZXRlciAqdGFyZ2V0KTsKICAgICBMb2NhdGlvbiAqbG9jYXRpb24oKSBjb25z
dDsKLSAgICBTZWxlY3Rpb24gKnNlbGVjdGlvbigpIGNvbnN0OwogICAgIGJvb2wgZmluZChjb25z
dCBXZWJDb3JlOjpTdHJpbmcmLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sKSBj
b25zdDsKIAogICAgIC8vIEZpbmRzIGEgd3JhcHBlciBvZiBhIEpTIEV2ZW50TGlzdGVuZXIsIHJl
dHVybnMgMCBpZiBubyBleGlzdGluZyBvbmUuCkBAIC0xNTUsNyArMTUzLDcgQEAgbmFtZXNwYWNl
IEtKUyB7CiAgICAgICAgICAgIFNjcmVlblRvcCwgU2NyZWVuTGVmdCwKICAgICAgICAgICAgU2Ny
b2xsVG8sIFNjcm9sbFgsIFNjcm9sbFksIE1vdmVCeSwgTW92ZVRvLCBSZXNpemVCeSwgUmVzaXpl
VG8sIFNlbGYsIFdpbmRvd18sIFRvcCwKICAgICAgICAgICAgSW1hZ2UsIE9wdGlvbiwgQWxlcnQs
IENvbmZpcm0sIFByb21wdCwgT3BlbiwgUHJpbnQsIFNldFRpbWVvdXQsIENsZWFyVGltZW91dCwK
LSAgICAgICAgICAgRm9jdXMsIEdldFNlbGVjdGlvbiwgQmx1ciwgQ2xvc2UsIFNldEludGVydmFs
LCBDbGVhckludGVydmFsLCBDYXB0dXJlRXZlbnRzLCAKKyAgICAgICAgICAgRm9jdXMsIEJsdXIs
IENsb3NlLCBTZXRJbnRlcnZhbCwgQ2xlYXJJbnRlcnZhbCwgQ2FwdHVyZUV2ZW50cywgCiAgICAg
ICAgICAgIFJlbGVhc2VFdmVudHMsIEFkZEV2ZW50TGlzdGVuZXIsIFJlbW92ZUV2ZW50TGlzdGVu
ZXIsCiAgICAgICAgICAgIFhNTEh0dHBSZXF1ZXN0LCBYU0xUUHJvY2Vzc29yXywKICAgICAgICAg
ICAgT25hYm9ydCwgT25ibHVyLCBPbmNoYW5nZSwgT25jbGljaywgT25kYmxjbGljaywgT25lcnJv
ciwgCkBAIC0yMTgsMjIgKzIxNiw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIFdlYkNvcmU6OkZy
YW1lKiBtX2ZyYW1lOwogICB9OwogCi0gIGNsYXNzIFNlbGVjdGlvbiA6IHB1YmxpYyBET01PYmpl
Y3QgewotICBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIEpTVmFsdWUg
KmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwotICAg
IGVudW0geyBBbmNob3JOb2RlLCBBbmNob3JPZmZzZXQsIEZvY3VzTm9kZSwgRm9jdXNPZmZzZXQs
IEJhc2VOb2RlLCBCYXNlT2Zmc2V0LCBFeHRlbnROb2RlLCBFeHRlbnRPZmZzZXQsIAotICAgICAg
ICAgICBJc0NvbGxhcHNlZCwgX1R5cGUsIFJhbmdlQ291bnQsIENvbGxhcHNlLCBDb2xsYXBzZVRv
RW5kLCBDb2xsYXBzZVRvU3RhcnQsIEVtcHR5LCBUb1N0cmluZywgCi0gICAgICAgICAgIFNldEJh
c2VBbmRFeHRlbnQsIFNldFBvc2l0aW9uLCBNb2RpZnksIEdldFJhbmdlQXQsIFJlbW92ZUFsbFJh
bmdlcywgQWRkUmFuZ2UgfTsKLSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lOyB9Ci0gICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygp
IGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9Ci0gICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZv
OwotICBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBXaW5kb3c7Ci0gICAgU2VsZWN0aW9uKFdl
YkNvcmU6OkZyYW1lKik7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIG1fZnJhbWU7Ci0gIH07Ci0KIH0g
Ly8gbmFtZXNwYWNlCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvcGFnZS9E
T01TZWxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24u
Y3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRE9NU2VsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlNl
bGVjdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJSYW5nZS5oIgorI2luY2x1ZGUgIlN0cmlu
Zy5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01TZWxl
Y3Rpb246OkRPTVNlbGVjdGlvbihGcmFtZSogZnJhbWUpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQor
eworfQorCitGcmFtZSogRE9NU2VsZWN0aW9uOjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZnJhbWU7Cit9CisKK3ZvaWQgRE9NU2VsZWN0aW9uOjpkaXNjb25uZWN0RnJhbWUoKQorewor
ICAgIG1fZnJhbWUgPSAwOworfQorCitOb2RlKiBET01TZWxlY3Rpb246OmFuY2hvck5vZGUoKSBj
b25zdAoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+YW5jaG9yTm9kZSgpOworfQorCitOb2Rl
KiBET01TZWxlY3Rpb246OmJhc2VOb2RlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisg
ICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVy
KCktPmJhc2VOb2RlKCk7Cit9CisKK2ludCBET01TZWxlY3Rpb246OmFuY2hvck9mZnNldCgpIGNv
bnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bV9mcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5hbmNob3JPZmZzZXQoKTsKK30KKworaW50
IERPTVNlbGVjdGlvbjo6YmFzZU9mZnNldCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9mcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxl
cigpLT5iYXNlT2Zmc2V0KCk7Cit9CisKK05vZGUqIERPTVNlbGVjdGlvbjo6Zm9jdXNOb2RlKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPmZvY3VzTm9kZSgpOworfQorCitOb2Rl
KiBET01TZWxlY3Rpb246OmV4dGVudE5vZGUoKSBjb25zdAoreworICAgIGlmICghbV9mcmFtZSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xs
ZXIoKS0+ZXh0ZW50Tm9kZSgpOworfQorCitpbnQgRE9NU2VsZWN0aW9uOjpmb2N1c09mZnNldCgp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbV9mcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5mb2N1c09mZnNldCgpOworfQorCitp
bnQgRE9NU2VsZWN0aW9uOjpleHRlbnRPZmZzZXQoKSBjb25zdAoreworICAgIGlmICghbV9mcmFt
ZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRy
b2xsZXIoKS0+ZXh0ZW50T2Zmc2V0KCk7Cit9CisKK2Jvb2wgRE9NU2VsZWN0aW9uOjppc0NvbGxh
cHNlZCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+aXNDb2xsYXBzZWQo
KTsKK30KKworU3RyaW5nIERPTVNlbGVjdGlvbjo6dHlwZSgpIGNvbnN0Cit7CisgICAgaWYgKCFt
X2ZyYW1lKQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlv
bkNvbnRyb2xsZXIoKS0+dHlwZSgpOworfQorCitpbnQgRE9NU2VsZWN0aW9uOjpyYW5nZUNvdW50
KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPnJhbmdlQ291bnQoKTsKK30KKwor
dm9pZCBET01TZWxlY3Rpb246OmNvbGxhcHNlKE5vZGUqIG5vZGUsIGludCBvZmZzZXQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAg
IG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+Y29sbGFwc2Uobm9kZSwgb2Zmc2V0LCBl
Yyk7Cit9CisKK3ZvaWQgRE9NU2VsZWN0aW9uOjpjb2xsYXBzZVRvRW5kKCkKK3sKKyAgICBpZiAo
IW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9s
bGVyKCktPmNvbGxhcHNlVG9FbmQoKTsKK30KKwordm9pZCBET01TZWxlY3Rpb246OmNvbGxhcHNl
VG9TdGFydCgpCit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgbV9m
cmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5jb2xsYXBzZVRvU3RhcnQoKTsKK30KKwordm9p
ZCBET01TZWxlY3Rpb246OmVtcHR5KCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPmVtcHR5KCk7Cit9CisK
K3ZvaWQgRE9NU2VsZWN0aW9uOjpzZXRCYXNlQW5kRXh0ZW50KE5vZGUqIGJhc2VOb2RlLCBpbnQg
YmFzZU9mZnNldCwgTm9kZSogZXh0ZW50Tm9kZSwgaW50IGV4dGVudE9mZnNldCwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgbV9m
cmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5zZXRCYXNlQW5kRXh0ZW50KGJhc2VOb2RlLCBi
YXNlT2Zmc2V0LCBleHRlbnROb2RlLCBleHRlbnRPZmZzZXQsIGVjKTsKK30KKwordm9pZCBET01T
ZWxlY3Rpb246OnNldFBvc2l0aW9uKE5vZGUqIG5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZnJh
bWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+c2V0UG9zaXRpb24obm9kZSwgb2Zmc2V0LCBlYyk7
Cit9CisKK3ZvaWQgRE9NU2VsZWN0aW9uOjpzZXRQb3NpdGlvbihOb2RlKiBub2RlLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2ZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPnNldFBvc2l0aW9uKG5vZGUsIDAsIGVjKTsK
K30KKwordm9pZCBET01TZWxlY3Rpb246Om1vZGlmeShjb25zdCBTdHJpbmcmIGFsdGVyLCBjb25z
dCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBncmFudWxhcml0eSkKK3sKKyAgICBp
ZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb25Db250
cm9sbGVyKCktPm1vZGlmeShhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSk7Cit9CisKK1Bh
c3NSZWZQdHI8UmFuZ2U+IERPTVNlbGVjdGlvbjo6Z2V0UmFuZ2VBdChpbnQgaW5kZXgsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+Z2V0UmFuZ2VBdChpbmRl
eCwgZWMpOworfQorCit2b2lkIERPTVNlbGVjdGlvbjo6cmVtb3ZlQWxsUmFuZ2VzKCkKK3sKKyAg
ICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb25D
b250cm9sbGVyKCktPnJlbW92ZUFsbFJhbmdlcygpOworfQorCit2b2lkIERPTVNlbGVjdGlvbjo6
YWRkUmFuZ2UoUmFuZ2UqIHJhbmdlKQoreworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fZnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+YWRkUmFuZ2UocmFuZ2Up
OworfQorCitTdHJpbmcgRE9NU2VsZWN0aW9uOjp0b1N0cmluZygpCit7CisgICAgaWYgKCFtX2Zy
YW1lKQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNlbGVjdGlvbkNv
bnRyb2xsZXIoKS0+dG9TdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFn
ZS9ET01TZWxlY3Rpb24uaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rp
b24uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4g
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4g
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBET01TZWxl
Y3Rpb25faAorI2RlZmluZSBET01TZWxlY3Rpb25faAorCisjaW5jbHVkZSAiU2hhcmVkLmgiCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFzcyBSYW5nZTsK
KyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsKKworICAgIHR5cGVkZWYgaW50IEV4
Y2VwdGlvbkNvZGU7CisKKyAgICBjbGFzcyBET01TZWxlY3Rpb24gOiBwdWJsaWMgU2hhcmVkPERP
TVNlbGVjdGlvbj4geworICAgIHB1YmxpYzoKKyAgICAgICAgRE9NU2VsZWN0aW9uKEZyYW1lKik7
CisKKyAgICAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CisgICAgICAgIHZvaWQgZGlzY29ubmVj
dEZyYW1lKCk7CisKKyAgICAgICAgTm9kZSogYW5jaG9yTm9kZSgpIGNvbnN0OworICAgICAgICBO
b2RlKiBiYXNlTm9kZSgpIGNvbnN0OworICAgICAgICBpbnQgYW5jaG9yT2Zmc2V0KCkgY29uc3Q7
CisgICAgICAgIGludCBiYXNlT2Zmc2V0KCkgY29uc3Q7CisgICAgICAgIE5vZGUqIGZvY3VzTm9k
ZSgpIGNvbnN0OworICAgICAgICBOb2RlKiBleHRlbnROb2RlKCkgY29uc3Q7CisgICAgICAgIGlu
dCBmb2N1c09mZnNldCgpIGNvbnN0OworICAgICAgICBpbnQgZXh0ZW50T2Zmc2V0KCkgY29uc3Q7
CisgICAgICAgIGJvb2wgaXNDb2xsYXBzZWQoKSBjb25zdDsKKyAgICAgICAgU3RyaW5nIHR5cGUo
KSBjb25zdDsKKyAgICAgICAgaW50IHJhbmdlQ291bnQoKSBjb25zdDsKKworICAgICAgICB2b2lk
IGNvbGxhcHNlKE5vZGUqLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZv
aWQgY29sbGFwc2VUb0VuZCgpOworICAgICAgICB2b2lkIGNvbGxhcHNlVG9TdGFydCgpOworICAg
ICAgICB2b2lkIGVtcHR5KCk7CisgICAgICAgIHZvaWQgc2V0QmFzZUFuZEV4dGVudChOb2RlKiBi
YXNlTm9kZSwgaW50IGJhc2VPZmZzZXQsIE5vZGUqIGV4dGVudE5vZGUsIGludCBleHRlbnRPZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgdm9pZCBzZXRQb3NpdGlvbihOb2RlKiwgaW50
IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB2b2lkIHNldFBvc2l0aW9uKE5vZGUq
LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgbW9kaWZ5KGNvbnN0IFN0cmluZyYgYWx0
ZXIsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIGdyYW51bGFyaXR5KTsK
KyAgICAgICAgUGFzc1JlZlB0cjxSYW5nZT4gZ2V0UmFuZ2VBdChpbnQsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMoKTsKKyAgICAgICAgdm9pZCBhZGRSYW5n
ZShSYW5nZSopOworCisgICAgICAgIFN0cmluZyB0b1N0cmluZygpOworCisgICAgcHJpdmF0ZToK
KyAgICAgICAgRnJhbWUqIG1fZnJhbWU7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRE9NU2VsZWN0aW9uX2gKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01TZWxl
Y3Rpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBE
T01TZWxlY3Rpb24geworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBhbmNob3JOb2Rl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBhbmNob3JPZmZzZXQ7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIGZvY3VzTm9kZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGxvbmcgZm9jdXNPZmZzZXQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2Rl
IGJhc2VOb2RlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBiYXNlT2Zmc2V0Owor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBleHRlbnROb2RlOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyBleHRlbnRPZmZzZXQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGlzQ29sbGFwc2VkOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHR5cGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHJhbmdlQ291bnQ7
CisKKyAgICAgICAgdm9pZCBjb2xsYXBzZShpbiBOb2RlIG5vZGUsIGluIGxvbmcgaW5kZXgpCisg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBjb2xsYXBzZVRv
RW5kKCk7CisgICAgICAgIHZvaWQgY29sbGFwc2VUb1N0YXJ0KCk7CisgICAgICAgIHZvaWQgZW1w
dHkoKTsKKyAgICAgICAgdm9pZCBzZXRCYXNlQW5kRXh0ZW50KGluIE5vZGUgYmFzZU5vZGUsIGlu
IGxvbmcgYmFzZU9mZnNldCwgaW4gTm9kZSBleHRlbnROb2RlLCBpbiBsb25nIGV4dGVudE9mZnNl
dCkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldFBv
c2l0aW9uKGluIE5vZGUgbm9kZSwgaW4gW09wdGlvbmFsXSBsb25nIG9mZnNldCkKKyAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIG1vZGlmeShpbiBET01TdHJp
bmcgYWx0ZXIsIGluIERPTVN0cmluZyBkaXJlY3Rpb24sIGluIERPTVN0cmluZyBncmFudWxhcml0
eSk7CisgICAgICAgIFJhbmdlIGdldFJhbmdlQXQoaW4gbG9uZyBpbmRleCkKKyAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHJlbW92ZUFsbFJhbmdlcygpOwor
ICAgICAgICB2b2lkIGFkZFJhbmdlKGluIFJhbmdlIHJhbmdlKTsKKworICAgICAgICBET01TdHJp
bmcgdG9TdHJpbmcoKTsKKyAgICB9OworCit9CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24g
MjM3NTMpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgog
I2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAi
RE9NU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTYxLDYgKzYyLDggQEAgdm9pZCBET01XaW5kb3c6
OmRpc2Nvbm5lY3RGcmFtZSgpCiAgICAgbV9mcmFtZSA9IDA7CiAgICAgaWYgKG1fc2NyZWVuKQog
ICAgICAgICBtX3NjcmVlbi0+ZGlzY29ubmVjdEZyYW1lKCk7CisgICAgaWYgKG1fc2VsZWN0aW9u
KQorICAgICAgICBtX3NlbGVjdGlvbi0+ZGlzY29ubmVjdEZyYW1lKCk7CiAgICAgaWYgKG1faGlz
dG9yeSkKICAgICAgICAgbV9oaXN0b3J5LT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICBpZiAobV9s
b2NhdGlvbmJhcikKQEAgLTEzMyw2ICsxMzYsMTMgQEAgQmFySW5mbyogRE9NV2luZG93Ojp0b29s
YmFyKCkgY29uc3QKICAgICByZXR1cm4gbV90b29sYmFyLmdldCgpOwogfQogCitET01TZWxlY3Rp
b24qIERPTVdpbmRvdzo6Z2V0U2VsZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fc2VsZWN0aW9uKQor
ICAgICAgICBtX3NlbGVjdGlvbiA9IG5ldyBET01TZWxlY3Rpb24obV9mcmFtZSk7CisgICAgcmV0
dXJuIG1fc2VsZWN0aW9uLmdldCgpOworfQorCiBEb2N1bWVudCogRE9NV2luZG93Ojpkb2N1bWVu
dCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24g
MjM3NTMpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEJhckluZm87CiAgICAg
Y2xhc3MgQ1NTUnVsZUxpc3Q7CiAgICAgY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKKyAgICBj
bGFzcyBET01TZWxlY3Rpb247CiAgICAgY2xhc3MgRG9jdW1lbnQ7CiAgICAgY2xhc3MgRWxlbWVu
dDsKICAgICBjbGFzcyBGcmFtZTsKQEAgLTYwLDYgKzYxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBCYXJJbmZvKiBzdGF0dXNiYXIoKSBjb25zdDsKICAgICAgICAgQmFySW5mbyog
dG9vbGJhcigpIGNvbnN0OwogCisgICAgICAgIERPTVNlbGVjdGlvbiogZ2V0U2VsZWN0aW9uKCk7
CisKICAgICAgICAgLy8gRE9NIExldmVsIDIgQWJzdHJhY3RWaWV3IEludGVyZmFjZQogICAgICAg
ICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIApAQCAtNzMsNiArNzYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgRnJhbWUqIG1fZnJhbWU7CiAgICAg
ICAgIG11dGFibGUgUmVmUHRyPFNjcmVlbj4gbV9zY3JlZW47CisgICAgICAgIG11dGFibGUgUmVm
UHRyPERPTVNlbGVjdGlvbj4gbV9zZWxlY3Rpb247CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEhp
c3Rvcnk+IG1faGlzdG9yeTsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV9sb2Nh
dGlvbmJhcjsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV9tZW51YmFyOwpJbmRl
eDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDIzNzUzKQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBCYXJJbmZvIHN0YXR1c2JhcjsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEJhckluZm8gdG9vbGJhcjsKIAorICAgICAgICBET01TZWxlY3Rpb24g
Z2V0U2VsZWN0aW9uKCk7CisKICAgICAgICAgLy8gRE9NIExldmVsIDIgQWJzdHJhY3RWaWV3IElu
dGVyZmFjZQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgZG9jdW1lbnQ7CiAK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIzNzU1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDctMDYtMjQgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgdGVzdHMgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MzE5CisgICAgICAgIE1vdmUgdGhlIFNlbGVjdGlvbiBvYmplY3Qgb3V0IG9mIHRoZSBK
UyBiaW5kaW5ncworCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL3RvU3RyaW5nLWFuZC12YWx1ZU9mLW92
ZXJyaWRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1leHBlY3RlZC50eHQ6CisKIDIwMDctMDYtMjMgIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNaXR6LgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMzc1MykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEw
MzcsNyArMTAzNyw3IEBAIHdpbmRvdy50cnlFdmFsIFtmdW5jdGlvbl0KIHdpbmRvdy50eXBlT2ZO
dWxsQXdhcmUgW2Z1bmN0aW9uXQogd2luZG93LnR5cGVTdHJpbmdOdWxsQXdhcmUgW2Z1bmN0aW9u
XQogd2luZG93LndpbmRvdyBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3ddCi13aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkgW29iamVjdCBTZWxlY3Rpb25dCit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkgW29iamVj
dCBET01TZWxlY3Rpb25dCiB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UgW2Z1bmN0aW9u
XQogd2luZG93LmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUgW251bGxdCiB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkuYW5jaG9yT2Zmc2V0IFtudW1iZXJdCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3RvU3RyaW5nLWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5nLWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjM3NTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3RvU3RyaW5n
LWFuZC12YWx1ZU9mLW92ZXJyaWRlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzI5
LDcgKzMyOSw3IEBAIFN0cmluZyhTZWxlY3Rpb24pIDogCiBTdHJpbmcoW1NlbGVjdGlvbl0pIDog
CiBTZWxlY3Rpb24udG9TdHJpbmcoKSA6IAogW1NlbGVjdGlvbl0udG9TdHJpbmcoKSA6IAotVHlw
ZUVycm9yOiBWYWx1ZSB1bmRlZmluZWQgKHJlc3VsdCBvZiBleHByZXNzaW9uIG9iamVjdC52YWx1
ZU9mKSBpcyBub3Qgb2JqZWN0LgorU2VsZWN0aW9uLnZhbHVlT2YoKSA6IAogW1NlbGVjdGlvbl0u
dmFsdWVPZigpIDogCiAKIFNlbGVjdGlvbiB3aXRoIG1vZGlmaWVkIHRvU3RyaW5nIGFuZCB2YWx1
ZU9mCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMzc1MykK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTIyMCw2ICsxMjIwLDEwIEBAIENPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBVbnNhZmUgSmF2YVNjcmkKIAogQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1l
Lmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
Y3Jvc3MtZnJhbWUtYWNjZXNzLmh0bWwuIERvbWFpbnMgbXVzdCBtYXRjaC4KIAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1l
IHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mt
ZnJhbWUtaWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLmh0bWwuIERvbWFpbnMgbXVzdCBtYXRjaC4K
KworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZhU2NyaXB0IGF0dGVtcHQgdG8g
YWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLmh0bWwgZnJvbSBmcmFtZSB3aXRoIFVSTCBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLmh0bWwuIERvbWFpbnMg
bXVzdCBtYXRjaC4KKwogVGhpcyB0ZXN0IGNoZWNrcyBjcm9zcy1mcmFtZSBhY2Nlc3Mgc2VjdXJp
dHkgKHJkYXI6Ly9wcm9ibGVtLzUyNTEzMDkpLgogCiAK
</data>
<flag name="review"
          id="6275"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>