<?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>53972</bug_id>
          
          <creation_ts>2011-02-07 19:43:12 -0800</creation_ts>
          <short_desc>Add resource load client for injected bundle and move willSendRequest there</short_desc>
          <delta_ts>2011-02-07 23:07:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>347024</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-02-07 19:43:12 -0800</bug_when>
    <thetext>Add resource load client for injected bundle and move willSendRequest there</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347026</commentid>
    <comment_count>1</comment_count>
      <attachid>81570</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-02-07 19:47:39 -0800</bug_when>
    <thetext>Created attachment 81570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347030</commentid>
    <comment_count>2</comment_count>
      <attachid>81570</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-07 20:01:41 -0800</bug_when>
    <thetext>Comment on attachment 81570
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=81570&amp;action=review

&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.h:36
&gt; +class DOMWrapperWorld;

I don’t see why this is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347141</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-02-07 23:07:51 -0800</bug_when>
    <thetext>Committed r77908: &lt;http://trac.webkit.org/changeset/77908&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81570</attachid>
            <date>2011-02-07 19:47:39 -0800</date>
            <delta_ts>2011-02-07 20:01:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53972-20110207194732.patch</filename>
            <type>text/plain</type>
            <size>39306</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3ODg0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDItMDcgIE1hY2llaiBT
dGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgcmVzb3VyY2UgbG9hZCBjbGllbnQgZm9yIGluamVjdGVk
IGJ1bmRsZSBhbmQgbW92ZSB3aWxsU2VuZFJlcXVlc3QgdGhlcmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzOTcyCisKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbToKKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2V0UGFnZUxv
YWRlckNsaWVudCk6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTZXRSZXNvdXJjZUxvYWRDbGllbnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xp
ZW50OjpkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudDo6d2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlQ29udGVudExlbmd0aEZv
clJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VM
b2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ6OmRpZEZhaWxMb2FkRm9yUmVzb3Vy
Y2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlUmVzb3VyY2VMb2FkQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KToKKyAgICAgICAgKiB3
aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTEtMDItMDcgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNh
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDc3NzgxKQorKysgU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3Miw2ICs0NzIsOCBAQCBsaWJXZWJLaXQyX2xh
X1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVJlc291
cmNlTG9hZENsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA3Nzc4MSkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC02MzgsNiArNjM4LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgXAorICAgIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VV
SUNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVTY3JpcHRXb3JsZC5jcHAgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvcXQvSW5q
ZWN0ZWRCdW5kbGVRdC5jcHAgXApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzc3ODEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTI5NCw2ICsyOTQsOCBAQAogCQk1MUIzMDA1MDEyNTI5RDBFMDAwQjVDQTAgLyogV2ViQmFja0Zv
cndhcmRMaXN0Q0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFCMzAwNEUxMjUyOUQwRTAwMEI1Q0EwIC8qIFdlYkJhY2tGb3J3YXJkTGlzdENGLmNw
cCAqLzsgfTsKIAkJNTFCMzAwNTExMjUyOUQwRTAwMEI1Q0EwIC8qIFdlYlBhZ2VQcm94eUNGLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjMwMDRG
MTI1MjlEMEUwMDBCNUNBMCAvKiBXZWJQYWdlUHJveHlDRi5jcHAgKi87IH07CiAJCTY1MDFCRDFB
MTJGMTI0MzQwMEU5RjI0OCAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxNzEyRjExRDdCMDBCN0REOEEg
LyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwICovOyB9OworCQk2NTQ2QTgyQzEzMDAwMTY0MDAwQ0VC
MUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggaW4gQ29weUZpbGVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDZBODJBMTMwMDAxNjQwMDBD
RUIxQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaCAqLzsgfTsKKwkJ
NjU5QzU1MUUxMzAwMDY0MTAwMjVDMEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9h
ZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2NTQ2QTgyOTEzMDAwMTY0MDAwQ0VCMUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VM
b2FkQ2xpZW50LmNwcCAqLzsgfTsKIAkJNjVCODZGMUUxMkYxMURFMzAwQjdERDhBIC8qIFdLQnVu
ZGxlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NUI4NkYxODEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTZEOEE5MUE2MTFG
MEVGRDEwMEREMDFGRSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkQ4QTkxQTUxMUYwRUZEMTAwREQwMUZF
IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4
MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC03NjAsNiArNzYyLDcgQEAKIAkJCQkxQTUwREI2NjExMEEzRDU3MDAwRDNGRTUg
LyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVzICovLAogCQkJCTFBNjQyMjhCMTJERDAyNDcw
MENBQUUyQyAvKiBEcmF3aW5nQXJlYS5tZXNzYWdlcy5pbiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJ
QjM5NkVBNTYxMkUwRUQyRDAwRjRGRUI3IC8qIGNvbmZpZy5oIGluIENvcHlGaWxlcyAqLywKKwkJ
CQk2NTQ2QTgyQzEzMDAwMTY0MDAwQ0VCMUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VM
b2FkQ2xpZW50LmggaW4gQ29weUZpbGVzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTA1OSw2ICsxMDYyLDggQEAKIAkJNTFC
MzAwNEYxMjUyOUQwRTAwMEI1Q0EwIC8qIFdlYlBhZ2VQcm94eUNGLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlBhZ2VQcm94eUNGLmNwcDsgcGF0aCA9IGNmL1dl
YlBhZ2VQcm94eUNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDcyOTQx
MTZGRjcwQjAwRUU1Mzk2IC8qIFdlYlByb2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lnhj
Y29uZmlnOyBwYXRoID0gV2ViUHJvY2Vzcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNURBRDczRjExMTZGRjkwQzAwRUU1Mzk2IC8qIEJhc2VUYXJnZXQueGNjb25maWcg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZVRhcmdldC54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNjU0NkE4MjkxMzAwMDE2NDAwMENFQjFDIC8qIElu
amVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2NTQ2QTgyQTEzMDAwMTY0MDAwQ0VC
MUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUI4NkYxNzEyRjExRDdCMDBCN0RE
OEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tCdW5kbGVJbnNwZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2NUI4NkYxODEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVJbnNwZWN0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkQ4QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5h
cHBsZS5XZWJQcm9jZXNzLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IGNvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiOyBwYXRoID0gV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0NDQsNiArMjQ0OSw4IEBACiAJCQkJQkMxNEUx
MDgxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCAqLywK
IAkJCQlCQ0E4QzZBNjExRTNCQTVGMDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmNwcCAqLywKIAkJCQlCQ0E4QzZBNzExRTNCQTVGMDA4MTJGQjcgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggKi8sCisJCQkJNjU0NkE4MjkxMzAwMDE2NDAwMENFQjFD
IC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgKi8sCisJCQkJNjU0
NkE4MkExMzAwMDE2NDAwMENFQjFDIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENs
aWVudC5oICovLAogCQkJCUJDQThDNkFEMTFFM0MwODcwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VVSUNsaWVudC5jcHAgKi8sCiAJCQkJQkNBOEM2QUUxMUUzQzA4NzAwODEyRkI3IC8qIElu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggKi8sCiAJCQkJQkMxNERGNzYxMjBCNUI3OTAwODI2
QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwICovLApAQCAtMzYyMCw2ICszNjI3
LDcgQEAKIAkJCQlCQ0E1NkExRDEyRjkwMjhFMDBDNTY2QzcgLyogV2ViR3JhcGhpY3NDb250ZXh0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTU2QTY2MTJGOUM4RjkwMEM1NjZDNyAvKiBXS0dy
YXBoaWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E1NkE2QTEyRjlDOUFEMDBD
NTY2QzcgLyogV0tHcmFwaGljc0NvbnRleHRDRy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2NTlD
NTUxRTEzMDAwNjQxMDAyNUMwQzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gNzc3ODEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NiwxOCArMTc2LDYgQEAgdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZAogICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9J
bXBsKHVzZXJEYXRhVG9QYXNzKSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50Ojp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSog
ZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKLXsKLSAgICBpZiAoIW1fY2xp
ZW50LndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQ
dHI8V2ViVVJMUmVxdWVzdD4gcmV0dXJuZWRSZXF1ZXN0ID0gdG9JbXBsKG1fY2xpZW50LndpbGxT
ZW5kUmVxdWVzdEZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIGlkZW50aWZpZXIs
IHRvQVBJKHJlcXVlc3QpLCB0b0FQSShyZWRpcmVjdFJlc3BvbnNlKSwgbV9jbGllbnQuY2xpZW50
SW5mbykpOwotICAgIGlmIChyZXR1cm5lZFJlcXVlc3QpCi0gICAgICAgIHJlcXVlc3QgPSByZXR1
cm5lZFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgpOwotICAgIGVsc2UKLSAgICAgICAgcmVxdWVz
dCA9IFJlc291cmNlUmVxdWVzdCgpOwotfQotCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJG
cmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3JsZCogd29ybGQpCiB7CiAgICAgaWYgKCFtX2NsaWVu
dC5kaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA3Nzc4MSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDggKzYyLDYgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFt
ZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAgdm9pZCBkaWRSdW5JbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBSZWZQdHI8QVBJT2JqZWN0PiYg
dXNlckRhdGEpOwogCi0gICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXZWJQYWdlKiwg
V2ViRnJhbWUqLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0KICAgICB2b2lkIGRpZENsZWFy
V2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgV2ViQ29yZTo6RE9NV3Jh
cHBlcldvcmxkKik7CiAgICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdl
YlBhZ2UqLCBXZWJGcmFtZSopOwogICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZv
ckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVs
YXksIGRvdWJsZSBkYXRlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVJlc291
cmNlTG9hZENsaWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlUmVz
b3VyY2VMb2FkQ2xpZW50LmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJX
S0J1bmRsZUFQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudDo6
ZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV2ViUGFnZSogcGFnZSwgV2ViRnJhbWUqIGZyYW1l
LCB1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGJvb2wgcGFnZUlzUHJvdmlzaW9uYWxseUxvYWRpbmcpCit7CisgICAgaWYgKCFtX2Ns
aWVudC5kaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9jbGllbnQuZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UodG9BUEkocGFnZSksIHRvQVBJKGZy
YW1lKSwgaWRlbnRpZmllciwgdG9BUEkocmVxdWVzdCksIHBhZ2VJc1Byb3Zpc2lvbmFsbHlMb2Fk
aW5nLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VS
ZXNvdXJjZUxvYWRDbGllbnQ6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdlYlBhZ2UqIHBhZ2Us
IFdlYkZyYW1lKiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQoreworICAg
IGlmICghbV9jbGllbnQud2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxXZWJVUkxSZXF1ZXN0PiByZXR1cm5lZFJlcXVlc3QgPSB0b0ltcGwobV9j
bGllbnQud2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwg
aWRlbnRpZmllciwgdG9BUEkocmVxdWVzdCksIHRvQVBJKHJlZGlyZWN0UmVzcG9uc2UpLCBtX2Ns
aWVudC5jbGllbnRJbmZvKSk7CisgICAgaWYgKHJldHVybmVkUmVxdWVzdCkKKyAgICAgICAgcmVx
dWVzdCA9IHJldHVybmVkUmVxdWVzdC0+cmVzb3VyY2VSZXF1ZXN0KCk7CisgICAgZWxzZQorICAg
ICAgICByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShX
ZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSogZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmICghbV9jbGll
bnQuZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKHRvQVBJKHBhZ2UpLCB0b0FQ
SShmcmFtZSksIGlkZW50aWZpZXIsIHRvQVBJKHJlc3BvbnNlKSwgbV9jbGllbnQuY2xpZW50SW5m
byk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRS
ZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1lKiBm
cmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgY29udGVudExlbmd0aCkKK3sKKyAg
ICBpZiAoIW1fY2xpZW50LmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVz
b3VyY2UodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgaWRlbnRpZmllciwgY29udGVudExlbmd0
aCwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlUmVz
b3VyY2VMb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UoV2ViUGFnZSogcGFnZSwg
V2ViRnJhbWUqIGZyYW1lLCB1aW50NjRfdCBpZGVudGlmaWVyKQoreworICAgIGlmICghbV9jbGll
bnQuZGlkRmluaXNoTG9hZEZvclJlc291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Ns
aWVudC5kaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwg
aWRlbnRpZmllciwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50OjpkaWRGYWlsTG9hZEZvclJlc291cmNlKFdlYlBhZ2Uq
IHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgaWYgKCFtX2NsaWVudC5kaWRGYWlsTG9h
ZEZvclJlc291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5kaWRGYWlsTG9h
ZEZvclJlc291cmNlKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIGlkZW50aWZpZXIsIHRvQVBJ
KGVycm9yKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVJlc291cmNl
TG9hZENsaWVudC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW5qZWN0ZWRC
dW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50X2gKKyNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVQYWdl
UmVzb3VyY2VMb2FkQ2xpZW50X2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUg
IlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgiCisjaW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRE9NV3JhcHBlcldvcmxkOworY2xh
c3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNl
UmVzcG9uc2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUElPYmplY3Q7Citj
bGFzcyBXZWJQYWdlOworY2xhc3MgV2ViRnJhbWU7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlUGFn
ZVJlc291cmNlTG9hZENsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tCdW5kbGVQYWdlUmVzb3Vy
Y2VMb2FkQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNv
dXJjZShXZWJQYWdlKiwgV2ViRnJhbWUqLCB1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIHBhZ2VJc1Byb3Zpc2lvbmFsbHlMb2FkaW5nKTsK
KyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIHVp
bnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUZvclJl
c291cmNlKFdlYlBhZ2UqLCBXZWJGcmFtZSosIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVu
Z3RoRm9yUmVzb3VyY2UoV2ViUGFnZSosIFdlYkZyYW1lKiwgdWludDY0X3QgaWRlbnRpZmllciwg
dWludDY0X3QgY29udGVudExlbmd0aCk7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yUmVzb3Vy
Y2UoV2ViUGFnZSosIFdlYkZyYW1lKiwgdWludDY0X3QgaWRlbnRpZmllcik7CisgICAgdm9pZCBk
aWRGYWlsTG9hZEZvclJlc291cmNlKFdlYlBhZ2UqLCBXZWJGcmFtZSosIHVpbnQ2NF90IGlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xp
ZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAJKHJldmlzaW9uIDc3Nzgx
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxMyArNjUsMjAgQEAgdm9pZCBXS0J1
bmRsZVBhZ2VTZXRGb3JtQ2xpZW50KFdLQnVuZGxlUAogICAgIHRvSW1wbChwYWdlUmVmKS0+aW5p
dGlhbGl6ZUluamVjdGVkQnVuZGxlRm9ybUNsaWVudCh3a0NsaWVudCk7CiB9CiAKLXZvaWQgV0tC
dW5kbGVQYWdlU2V0TG9hZGVyQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQqIHdrQ2xpZW50KQordm9pZCBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9h
ZGVyQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnQqIHdrQ2xpZW50KQogewogICAgIGlmICh3a0NsaWVudCAmJiB3a0NsaWVudC0+dmVyc2lvbikK
ICAgICAgICAgcmV0dXJuOwogICAgIHRvSW1wbChwYWdlUmVmKS0+aW5pdGlhbGl6ZUluamVjdGVk
QnVuZGxlTG9hZGVyQ2xpZW50KHdrQ2xpZW50KTsKIH0KIAordm9pZCBXS0J1bmRsZVBhZ2VTZXRS
ZXNvdXJjZUxvYWRDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZVJl
c291cmNlTG9hZENsaWVudCogd2tDbGllbnQpCit7CisgICAgaWYgKHdrQ2xpZW50ICYmIHdrQ2xp
ZW50LT52ZXJzaW9uKQorICAgICAgICByZXR1cm47CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0
aWFsaXplSW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQod2tDbGllbnQpOworfQorCiB2
b2lkIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1
bmRsZVBhZ2VVSUNsaWVudCogd2tDbGllbnQpCiB7CiAgICAgaWYgKHdrQ2xpZW50ICYmIHdrQ2xp
ZW50LT52ZXJzaW9uKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCShyZXZpc2lvbiA3
Nzc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDkgKzg3LDYgQEAgdHlwZWRlZiB2
b2lkICgqV0tCdW5kbGVQYWdlRGlkQ2xlYXJXaW5kbwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9y
RnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJh
bWUsIFdLVVJMUmVmIHVybCwgZG91YmxlIGRlbGF5LCBkb3VibGUgZGF0ZSwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRIYW5kbGVPbmxvYWRF
dmVudHNGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFt
ZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVmIFdLVVJMUmVxdWVz
dFJlZiAoKldLQnVuZGxlUGFnZVdpbGxTZW5kUmVxdWVzdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCB1aW50NjRfdCByZXNvdXJj
ZUlkZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1VSTFJlc3BvbnNlUmVmIHJl
ZGlyZWN0UmVzcG9uc2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotCi0KIAogc3RydWN0IFdL
QnVuZGxlUGFnZUxvYWRlckNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMTE0
LDEwICsxMTEsMjkgQEAgc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCB7CiAgICAgV0tC
dW5kbGVQYWdlRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOwogICAgIFdLQnVuZGxlUGFn
ZVdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAg
d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOwogICAgIFdLQnVuZGxlUGFnZURpZEhh
bmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgZGlkSGFu
ZGxlT25sb2FkRXZlbnRzRm9yRnJhbWU7Ci0gICAgV0tCdW5kbGVQYWdlV2lsbFNlbmRSZXF1ZXN0
Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsU2VuZFJlcXVlc3RG
b3JGcmFtZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgV0tC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50OwogCisvLyBSZXNvdXJjZSBMb2FkIENsaWVudAordHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2VDYWxsYmFjayko
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCByZXNvdXJjZUlkZW50
aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiwgYm9vbCBwYWdlSXNQcm92aXNpb25hbGx5TG9hZGluZywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIFdLVVJMUmVxdWVzdFJlZiAoKldLQnVu
ZGxlUGFnZVdpbGxTZW5kUmVxdWVzdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiwg
V0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXS1VSTFJlcXVl
c3RSZWYsIFdLVVJMUmVzcG9uc2VSZWYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlUmVzcG9uc2VG
b3JSZXNvdXJjZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVp
bnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgV0tVUkxSZXNwb25zZVJlZiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlQ29udGVu
dExlbmd0aEZvclJlc291cmNlQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFt
ZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdCBjb250ZW50TGVuZ3Ro
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURp
ZEZpbmlzaExvYWRGb3JSZXNvdXJjZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
RnJhbWVSZWYsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRGYWlsTG9hZEZvclJlc291cmNl
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgcmVz
b3VyY2VJZGVudGlmaWVyLCBXS0Vycm9yUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwor
c3RydWN0IFdLQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudCB7CisgICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS0J1bmRsZVBhZ2VEaWRJ
bml0aWF0ZUxvYWRGb3JSZXNvdXJjZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgIGRpZElu
aXRpYXRlTG9hZEZvclJlc291cmNlOworICAgIFdLQnVuZGxlUGFnZVdpbGxTZW5kUmVxdWVzdEZv
ckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFNlbmRSZXF1ZXN0Rm9y
RnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2VDYWxs
YmFjayAgICAgICAgICAgICAgICAgICBkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZTsKKyAg
ICBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlQ2FsbGJhY2sg
ICAgICAgICAgICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2U7CisgICAgV0tC
dW5kbGVQYWdlRGlkRmluaXNoTG9hZEZvclJlc291cmNlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICBkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2U7CisgICAgV0tCdW5kbGVQYWdlRGlkRmFp
bExvYWRGb3JSZXNvdXJjZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGYWls
TG9hZEZvclJlc291cmNlOworfTsKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVJlc291cmNl
TG9hZENsaWVudCBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQ7CisKIC8vIFVJIENsaWVu
dAogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGVDYWxs
YmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90
IGxpbmVOdW1iZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlV2lsbFNldFN0YXR1c2JhclRleHRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpA
QCAtMjA0LDcgKzIyMCw4IEBAIFdLX0VYUE9SVCBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VHZXRUeXBl
SUQKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldENvbnRleHRNZW51Q2xpZW50KFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudCogY2xpZW50KTsK
IFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldEVkaXRvckNsaWVudChXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50KiBjbGllbnQpOwogV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVQYWdlU2V0Rm9ybUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5k
bGVQYWdlRm9ybUNsaWVudCogY2xpZW50KTsKLVdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNl
dExvYWRlckNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50KiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UGFnZUxvYWRlckNs
aWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50KiBjbGll
bnQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UmVzb3VyY2VMb2FkQ2xpZW50KFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQqIGNsaWVu
dCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRVSUNsaWVudChXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVQYWdlVUlDbGllbnQqIGNsaWVudCk7CiAKIFdLX0VYUE9SVCBXS0J1
bmRsZVBhZ2VHcm91cFJlZiBXS0J1bmRsZVBhZ2VHZXRQYWdlR3JvdXAoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHJldmlzaW9u
IDc3NzgxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw2ICsxNTIsOCBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojphc3NpZ25JZGVudGlmCiAgICAgYm9vbCBwYWdlSXNQ
cm92aXNpb25hbGx5TG9hZGluZyA9IGZhbHNlOwogICAgIGlmIChGcmFtZUxvYWRlciogZnJhbWVM
b2FkZXIgPSBsb2FkZXItPmZyYW1lTG9hZGVyKCkpCiAgICAgICAgIHBhZ2VJc1Byb3Zpc2lvbmFs
bHlMb2FkaW5nID0gZnJhbWVMb2FkZXItPnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA9PSBs
b2FkZXI7CisKKyAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVJlc291cmNlTG9hZENsaWVudCgp
LmRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKHdlYlBhZ2UsIG1fZnJhbWUsIGlkZW50aWZpZXIs
IHJlcXVlc3QsIHBhZ2VJc1Byb3Zpc2lvbmFsbHlMb2FkaW5nKTsKICAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKG1fZnJh
bWUtPmZyYW1lSUQoKSwgaWRlbnRpZmllciwgcmVxdWVzdCwgcGFnZUlzUHJvdmlzaW9uYWxseUxv
YWRpbmcpKTsKIH0KIApAQCAtMTYxLDcgKzE2Myw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoV2lsbFMKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkud2lsbFNlbmRSZXF1ZXN0
Rm9yRnJhbWUod2ViUGFnZSwgbV9mcmFtZSwgaWRlbnRpZmllciwgcmVxdWVzdCwgcmVkaXJlY3RS
ZXNwb25zZSk7CisgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQo
KS53aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lLCBpZGVudGlmaWVyLCBy
ZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIAogICAgIGlmIChyZXF1ZXN0LmlzTnVsbCgpKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgc2VuZCBhIG1lc3NhZ2Ugc2F5
aW5nIHdlIGNhbmNlbGxlZCB0aGUgcmVxdWVzdCBmb3IgdGhlIHJlc291cmNlLgpAQCAtMjE3LDYg
KzIxOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmUKICAgICBp
ZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIHdlYlBhZ2UtPmluamVjdGVkQnVu
ZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkuZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2Uod2Vi
UGFnZSwgbV9mcmFtZSwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogICAgIHdlYlBhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UobV9m
cmFtZS0+ZnJhbWVJRCgpLCBpZGVudGlmaWVyLCByZXNwb25zZSkpOwogfQogCkBAIC0yMjYsNiAr
MjI5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZQogICAgIGlm
ICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5k
bGVSZXNvdXJjZUxvYWRDbGllbnQoKS5kaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNl
KHdlYlBhZ2UsIG1fZnJhbWUsIGlkZW50aWZpZXIsIGxlbmd0aFJlY2VpdmVkKTsKICAgICB3ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVDb250ZW50TGVuZ3Ro
Rm9yUmVzb3VyY2UobV9mcmFtZS0+ZnJhbWVJRCgpLCBpZGVudGlmaWVyLCBsZW5ndGhSZWNlaXZl
ZCkpOwogfQogCkBAIC0yMzUsNiArMjM5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGaQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
d2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKS5kaWRGaW5pc2hMb2Fk
Rm9yUmVzb3VyY2Uod2ViUGFnZSwgbV9mcmFtZSwgaWRlbnRpZmllcik7CiAgICAgd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UobV9m
cmFtZS0+ZnJhbWVJRCgpLCBpZGVudGlmaWVyKSk7CiB9CiAKQEAgLTI0NCw2ICsyNDksNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhCiAgICAgaWYgKCF3ZWJQYWdl
KQogICAgICAgICByZXR1cm47CiAKKyAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVJlc291cmNl
TG9hZENsaWVudCgpLmRpZEZhaWxMb2FkRm9yUmVzb3VyY2Uod2ViUGFnZSwgbV9mcmFtZSwgaWRl
bnRpZmllciwgZXJyb3IpOwogICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkRmFpbExvYWRGb3JSZXNvdXJjZShtX2ZyYW1lLT5mcmFtZUlEKCksIGlkZW50aWZpZXIs
IGVycm9yKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDc3NzgxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTUsNiArMjU1LDEx
IEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlTG8KICAgICBtX2xvYWRl
ckNsaWVudC5pbml0aWFsaXplKGNsaWVudCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6
ZUluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KFdLQnVuZGxlUGFnZVJlc291cmNlTG9h
ZENsaWVudCogY2xpZW50KQoreworICAgIG1fcmVzb3VyY2VMb2FkQ2xpZW50LmluaXRpYWxpemUo
Y2xpZW50KTsKK30KKwogdm9pZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVVSUNs
aWVudChXS0J1bmRsZVBhZ2VVSUNsaWVudCogY2xpZW50KQogewogICAgIG1fdWlDbGllbnQuaW5p
dGlhbGl6ZShjbGllbnQpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCShyZXZpc2lvbiA3Nzc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2Fk
Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCIKICNpbmNs
dWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCkBAIC0xNjgsMTIgKzE2
OSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVFZGl0b3JD
bGllbnQoV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Kik7CiAgICAgdm9pZCBpbml0aWFsaXplSW5q
ZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KFdLQnVuZGxlUGFnZUZvcm1DbGllbnQqKTsKICAgICB2b2lk
IGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudChXS0J1bmRsZVBhZ2VMb2FkZXJD
bGllbnQqKTsKKyAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVJlc291cmNlTG9hZENs
aWVudChXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxp
emVJbmplY3RlZEJ1bmRsZVVJQ2xpZW50KFdLQnVuZGxlUGFnZVVJQ2xpZW50Kik7CiAKICAgICBJ
bmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVDb250ZXh0
TWVudUNsaWVudCgpIHsgcmV0dXJuIG1fY29udGV4dE1lbnVDbGllbnQ7IH0KICAgICBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQmIGluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkgeyBy
ZXR1cm4gbV9lZGl0b3JDbGllbnQ7IH0KICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
JiBpbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKSB7IHJldHVybiBtX2Zvcm1DbGllbnQ7IH0KICAg
ICBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQmIGluamVjdGVkQnVuZGxlTG9hZGVyQ2xp
ZW50KCkgeyByZXR1cm4gbV9sb2FkZXJDbGllbnQ7IH0KKyAgICBJbmplY3RlZEJ1bmRsZVBhZ2VS
ZXNvdXJjZUxvYWRDbGllbnQmIGluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkgeyBy
ZXR1cm4gbV9yZXNvdXJjZUxvYWRDbGllbnQ7IH0KICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudCYgaW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpIHsgcmV0dXJuIG1fdWlDbGllbnQ7IH0KIAog
ICAgIGJvb2wgZmluZFN0cmluZ0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBTdHJpbmcmLCBGaW5k
T3B0aW9ucyk7CkBAIC00OTQsNiArNDk3LDcgQEAgcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRs
ZVBhZ2VFZGl0b3JDbGllbnQgbV9lZGl0b3JDbGllbnQ7CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdl
Rm9ybUNsaWVudCBtX2Zvcm1DbGllbnQ7CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50IG1fbG9hZGVyQ2xpZW50OworICAgIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENs
aWVudCBtX3Jlc291cmNlTG9hZENsaWVudDsKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dCBtX3VpQ2xpZW50OwogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZpc2lvbiA3Nzc4MSkKKysrIFNvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTc5MCw2ICsxNzkwLDE0
IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9h
ZENsaWVudC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEluamVjdGVkQnVuZGxlUGFnZVJl
c291cmNlTG9hZENsaWVudC5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxJbmplY3RlZEJ1bmRs
ZVBhZ2VVSUNsaWVudC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkluZGV4OiBUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Nzg4NCkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDExLTAy
LTA3ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHJlc291cmNlIGxvYWQgY2xpZW50
IGZvciBpbmplY3RlZCBidW5kbGUgYW5kIG1vdmUgd2lsbFNlbmRSZXF1ZXN0IHRoZXJlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mzk3MgorCisgICAg
ICAgICogTWluaUJyb3dzZXIvbWFjL1dlYkJ1bmRsZS9XZWJCdW5kbGVNYWluLm06CisgICAgICAg
IChkaWRDcmVhdGVQYWdlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjpkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2Up
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaExvYWRGb3JSZXNv
dXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JS
ZXNvdXJjZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNlbmRSZXF1
ZXN0Rm9yRnJhbWUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlLmg6CisKIDIwMTEtMDItMDMgIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRl
eDogVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dlYkJ1bmRsZS9XZWJCdW5kbGVNYWluLm0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dlYkJ1bmRsZS9XZWJCdW5kbGVNYWluLm0J
KHJldmlzaW9uIDc3Nzg4KQorKysgVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dlYkJ1bmRsZS9XZWJC
dW5kbGVNYWluLm0JKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBkaWRDcmVh
dGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgVwogICAgIG1lbXNldCgmY2xpZW50LCAwLCBzaXpl
b2YoY2xpZW50KSk7CiAgICAgY2xpZW50LmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUgPSBk
aWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lOwogCi0gICAgV0tCdW5kbGVQYWdlU2V0TG9hZGVy
Q2xpZW50KHBhZ2UsICZjbGllbnQpOworICAgIFdLQnVuZGxlUGFnZVNldFBhZ2VMb2FkZXJDbGll
bnQocGFnZSwgJmNsaWVudCk7CiB9CiAKIHZvaWQgd2lsbERlc3Ryb3lQYWdlKFdLQnVuZGxlUmVm
IGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCklu
ZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCShyZXZpc2lvbiA3Nzc5NCkKKysrIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTkyLDkgKzE5MiwyMCBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVj
dGVkQnVuZGxlUGFnZShXCiAgICAgICAgIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUs
CiAgICAgICAgIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSwKICAgICAgICAgZGlk
SGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUsCi0gICAgICAgIHdpbGxTZW5kUmVxdWVzdEZvckZy
YW1lCiAgICAgfTsKLSAgICBXS0J1bmRsZVBhZ2VTZXRMb2FkZXJDbGllbnQobV9wYWdlLCAmbG9h
ZGVyQ2xpZW50KTsKKyAgICBXS0J1bmRsZVBhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fcGFnZSwg
JmxvYWRlckNsaWVudCk7CisKKyAgICBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQgcmVz
b3VyY2VMb2FkQ2xpZW50ID0geworICAgICAgICAwLAorICAgICAgICB0aGlzLAorICAgICAgICBk
aWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSwKKyAgICAgICAgd2lsbFNlbmRSZXF1ZXN0Rm9yRnJh
bWUsCisgICAgICAgIGRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlLAorICAgICAgICBkaWRS
ZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlLAorICAgICAgICBkaWRGaW5pc2hMb2FkRm9y
UmVzb3VyY2UsCisgICAgICAgIGRpZEZhaWxMb2FkRm9yUmVzb3VyY2UKKyAgICB9OworICAgIFdL
QnVuZGxlUGFnZVNldFJlc291cmNlTG9hZENsaWVudChtX3BhZ2UsICZyZXNvdXJjZUxvYWRDbGll
bnQpOwogCiAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnQgdWlDbGllbnQgPSB7CiAgICAgICAgIDAs
CkBAIC0zMjQsMTEgKzMzNSwzNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUnVuSW5z
ZWN1cmVDCiAgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShmcmFtZSk7
CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJj
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgdWludDY0X3Qg
aWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIGJvb2wgcGFnZUxvYWRJc1Byb3Zp
c2lvbmFsLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PEluamVj
dGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkSW5pdGlh
dGVMb2FkRm9yUmVzb3VyY2UocGFnZSwgZnJhbWUsIGlkZW50aWZpZXIsIHJlcXVlc3QsIHBhZ2VM
b2FkSXNQcm92aXNpb25hbCk7Cit9CisKIFdLVVJMUmVxdWVzdFJlZiBJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRs
ZUZyYW1lUmVmIGZyYW1lLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVx
dWVzdCwgV0tVUkxSZXNwb25zZVJlZiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihj
b25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKHBh
Z2UsIGZyYW1lLCBpZGVudGlmaWVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIH0KIAor
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCB1aW50NjRfdCBpZGVu
dGlmaWVyLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQoreworICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9p
ZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UocGFnZSwgZnJh
bWUsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IGxl
bmd0aCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxJbmplY3Rl
ZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVD
b250ZW50TGVuZ3RoRm9yUmVzb3VyY2UocGFnZSwgZnJhbWUsIGlkZW50aWZpZXIsIGxlbmd0aCk7
Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hMb2FkRm9yUmVzb3VyY2Uo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIHVpbnQ2NF90IGlk
ZW50aWZpZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8SW5q
ZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRGaW5p
c2hMb2FkRm9yUmVzb3VyY2UocGFnZSwgZnJhbWUsIGlkZW50aWZpZXIpOworfQorCit2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgV0tFcnJv
clJlZiBlcnJvciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxJ
bmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEZp
bmlzaExvYWRGb3JSZXNvdXJjZShwYWdlLCBmcmFtZSwgaWRlbnRpZmllciwgZXJyb3IpOworfQor
CiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogewogICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNo
YXJlZCgpLmlzVGVzdFJ1bm5pbmcoKSkKQEAgLTU3Niw2ICs2MTIsMTIgQEAgdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OmRpZFJ1bkluc2VjdXJlQwogewogfQogCit2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRs
ZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYsIGJvb2wpCit7
Cit9CisKKy8vIFJlc291cmNlIExvYWQgQ2xpZW50IENhbGxiYWNrcworCiBXS1VSTFJlcXVlc3RS
ZWYgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVz
dCwgV0tVUkxSZXNwb25zZVJlZikKIHsKICAgICBpZiAoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LmlzVGVzdFJ1bm5pbmcoKSAmJiBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENv
bnRyb2xsZXIoKS0+d2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwoKSkKQEAgLTU5MywxMCArNjM1
LDI1IEBAIFdLVVJMUmVxdWVzdFJlZiBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGwKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCi0KICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAordm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFn
ZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QsIFdLVVJMUmVzcG9uc2VSZWYpCit7Cit9
CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJl
c291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QsIHVpbnQ2
NF90KQoreworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoTG9hZEZvclJl
c291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QpCit7Cit9
CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVu
ZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QsIFdLRXJyb3JSZWYpCit7Cit9
CisKIC8vIFVJIENsaWVudCBDYWxsYmFja3MKIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6Ondp
bGxBZGRNZXNzYWdlVG9Db25zb2xlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBt
ZXNzYWdlLCB1aW50MzJfdCBsaW5lTnVtYmVyLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQpJbmRl
eDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5oCShyZXZpc2lvbiA3Nzc4OCkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYzLDcgKzYzLDEzIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkSGFuZGxl
T25sb2FkRXZlbnRzRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBj
b25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZv
ckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVmKiwgY29u
c3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1l
KFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVmKiwgY29uc3Qgdm9p
ZCopOworICAgIHN0YXRpYyB2b2lkIGRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKFdLQnVuZGxl
UGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgV0tVUkxSZXF1
ZXN0UmVmLCBib29sIHBhZ2VMb2FkSXNQcm92aXNpb25hbCwgY29uc3Qgdm9pZCopOwogICAgIHN0
YXRpYyBXS1VSTFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RS
ZWYsIFdLVVJMUmVzcG9uc2VSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVzcG9uc2VSZWYsIGNvbnN0IHZvaWQqKTsK
KyAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlKFdLQnVu
ZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgdWludDY0
X3QgbGVuZ3RoLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZv
clJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRl
bnRpZmllciwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkRm9yUmVz
b3VyY2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlm
aWVyLCBXS0Vycm9yUmVmLCBjb25zdCB2b2lkKik7CisKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVm
KTsKICAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1
bmRsZUZyYW1lUmVmLCBXS0Vycm9yUmVmKTsKQEAgLTc5LDcgKzg1LDE0IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsK
ICAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXS0J1bmRsZUZyYW1l
UmVmKTsKICAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLQnVuZGxlRnJh
bWVSZWYpOworCisgICAgLy8gUmVzb3VyY2UgTG9hZCBDbGllbnQKKyAgICB2b2lkIGRpZEluaXRp
YXRlTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWlu
dDY0X3QgaWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmLCBib29sIHBhZ2VMb2FkSXNQcm92aXNp
b25hbCk7CiAgICAgV0tVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVu
ZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgV0tVUkxS
ZXF1ZXN0UmVmLCBXS1VSTFJlc3BvbnNlUmVmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25z
ZUZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3Qg
aWRlbnRpZmllciwgV0tVUkxSZXNwb25zZVJlZik7CisgICAgdm9pZCBkaWRSZWNlaXZlQ29udGVu
dExlbmd0aEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWlu
dDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbGVuZ3RoKTsKKyAgICB2b2lkIGRpZEZpbmlzaExv
YWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90
IGlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLRXJyb3JSZWYp
OwogCiAgICAgLy8gVUkgQ2xpZW50CiAgICAgc3RhdGljIHZvaWQgd2lsbEFkZE1lc3NhZ2VUb0Nv
bnNvbGUoV0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCB1aW50MzJfdCBsaW5l
TnVtYmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
</data>
<flag name="review"
          id="73178"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>