<?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>43402</bug_id>
          
          <creation_ts>2010-08-02 23:05:25 -0700</creation_ts>
          <short_desc>Web Inspector: Cleanup InspectorBackend before future changes for Remote Debugging protocol..</short_desc>
          <delta_ts>2010-08-03 03:05:01 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>259291</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-02 23:05:25 -0700</bug_when>
    <thetext>%subj%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259293</commentid>
    <comment_count>1</comment_count>
      <attachid>63300</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-02 23:11:45 -0700</bug_when>
    <thetext>Created attachment 63300
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259295</commentid>
    <comment_count>2</comment_count>
      <attachid>63300</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-08-02 23:23:35 -0700</bug_when>
    <thetext>Comment on attachment 63300
[patch] initial version.

WebCore/inspector/CodeGeneratorInspector.pm:260
 +      # &quot;
remove this?

WebCore/inspector/Inspector.idl: 
 +          void saveSessionSettings(in String settings);
maybe call it handler not agent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259340</commentid>
    <comment_count>3</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-03 03:05:01 -0700</bug_when>
    <thetext>Committed r64536
	M	WebCore/ChangeLog
	M	WebCore/inspector/CodeGeneratorInspector.pm
	M	WebCore/inspector/InspectorBackend.h
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/InspectorBackend.cpp
	M	WebCore/inspector/InspectorController.h
r64536 = 854cb9afc8b4da4d06f321267563d776a7f24df1 (refs/remotes/trunk)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63300</attachid>
            <date>2010-08-02 23:11:45 -0700</date>
            <delta_ts>2010-08-02 23:23:35 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>39273</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWE0YmJmOC4uNGIyMjg2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wOC0wMiAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBUcml2aWFsIEluc3BlY3RvckJhY2tl
bmQgZnVuY3Rpb25zIHdlcmUgcmVtb3ZlZC4KKyAgICAgICAgQW5kIG5vdyBpdCBpcyAgIGJpdCBz
aW1wbGVyIHRvIGNoYW5nZSBJbnNwZWN0b3IgQVBJIGJlY2F1c2Ugd2UgaGF2ZQorICAgICAgICBs
ZXNzIG51bWJlciBvZiBhYnN0cmFjdGlvbiBsYXllcnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzQwMgorCisgICAgICAgICogaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucG06CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5p
ZGw6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZDo6Y2xlYXJDb25zb2xlTWVzc2FnZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZDo6cmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kOjppbnNwZWN0b3JGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kOjpyZW1vdGVGcm9udGVuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckJhY2tlbmQ6Omluc3BlY3RvckRPTUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckJhY2tlbmQ6Omluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKwogMjAxMC0wOC0wMiAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3
ZWQuIFJvbGxpbmcgb3V0IHI2NDUyNSBmb3IgYnJlYWtpbmcgY2hyb21pdW0gdGVzdHMuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQppbmRleCA1NDg4ZGJkLi4w
ZTc2ODZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnBtCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0K
QEAgLTE0LDkgKzE0LDMwIEBAICR0eXBlVHJhbnNmb3JteyJJbnNwZWN0b3JDbGllbnQifSA9IHsK
ICAgICAiZm9yd2FyZCIgPT4gIkluc3BlY3RvckNsaWVudCIsCiAgICAgImhlYWRlciIgPT4gIklu
c3BlY3RvckNsaWVudC5oIiwKIH07Ci0kdHlwZVRyYW5zZm9ybXsiSW5zcGVjdG9yQmFja2VuZCJ9
ID0geworJHR5cGVUcmFuc2Zvcm17IkJhY2tlbmQifSA9IHsKICAgICAiZm9yd2FyZCIgPT4gIklu
c3BlY3RvckJhY2tlbmQiLAogICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JCYWNrZW5kLmgiLAor
ICAgICJhZ2VudEFjY2Vzc29yIiA9PiAibV9pbnNwZWN0b3JCYWNrZW5kIiwKK307CiskdHlwZVRy
YW5zZm9ybXsiQ29udHJvbGxlciJ9ID0geworICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yQ29u
dHJvbGxlciIsCisgICAgImhlYWRlciIgPT4gIkluc3BlY3RvckNvbnRyb2xsZXIuaCIsCisgICAg
ImFnZW50QWNjZXNzb3IiID0+ICJtX2luc3BlY3RvckJhY2tlbmQtPmluc3BlY3RvckNvbnRyb2xs
ZXIoKSIsCit9OworJHR5cGVUcmFuc2Zvcm17IkRlYnVnIn0gPSB7CisgICAgImZvcndhcmQiID0+
ICJTY3JpcHREZWJ1Z1NlcnZlciIsCisgICAgImhlYWRlciIgPT4gIlNjcmlwdERlYnVnU2VydmVy
LmgiLAorICAgICJhZ2VudEFjY2Vzc29yIiA9PiAiKCZTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVk
KCkpIiwKK307CiskdHlwZVRyYW5zZm9ybXsiRE9NIn0gPSB7CisgICAgImZvcndhcmQiID0+ICJJ
bnNwZWN0b3JET01BZ2VudCIsCisgICAgImhlYWRlciIgPT4gIkluc3BlY3RvckRPTUFnZW50Lmgi
LAorICAgICJhZ2VudEFjY2Vzc29yIiA9PiAibV9pbnNwZWN0b3JCYWNrZW5kLT5pbnNwZWN0b3JE
T01BZ2VudCgpIiwKK307CiskdHlwZVRyYW5zZm9ybXsiQXBwbGljYXRpb25DYWNoZSJ9ID0gewor
ICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50IiwKKyAgICAi
aGVhZGVyIiA9PiAiSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgiLAorICAgICJhZ2Vu
dEFjY2Vzc29yIiA9PiAibV9pbnNwZWN0b3JCYWNrZW5kLT5pbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQoKSIsCiB9OwogJHR5cGVUcmFuc2Zvcm17IlBhc3NSZWZQdHIifSA9IHsKICAgICAi
Zm9yd2FyZEhlYWRlciIgPT4gInd0Zi9QYXNzUmVmUHRyLmgiLApAQCAtMTY4LDcgKzE4OSw3IEBA
IHN1YiBHZW5lcmF0ZUludGVyZmFjZQogICAgIHB1c2goQGJhY2tlbmRIZWFkLCAicHJpdmF0ZToi
KTsKICAgICAkYmFja2VuZENvbnN0cnVjdG9yID0gam9pbigiXG4iLCBAYmFja2VuZEhlYWQpOwog
ICAgICRiYWNrZW5kRm9vdGVyID0gIiAgICBJbnNwZWN0b3JCYWNrZW5kKiBtX2luc3BlY3RvckJh
Y2tlbmQ7IjsKLSAgICAkYmFja2VuZFR5cGVzeyJJbnNwZWN0b3JCYWNrZW5kIn0gPSAxOworICAg
ICRiYWNrZW5kVHlwZXN7IkJhY2tlbmQifSA9IDE7CiAgICAgJGJhY2tlbmRUeXBlc3siUGFzc1Jl
ZlB0ciJ9ID0gMTsKICAgICAkYmFja2VuZFR5cGVzeyJBcnJheSJ9ID0gMTsKIApAQCAtMjM2LDYg
KzI1Nyw3IEBAIHN0YXRpYyBTdHJpbmcgZm9ybWF0V3JvbmdBcmd1bWVudFR5cGVNZXNzYWdlKHVu
c2lnbmVkIHBvc2l0aW9uLCBjb25zdCBjaGFyKiBuYW1lCiAgICAgcmV0dXJuIFN0cmluZzo6Zm9y
bWF0KFwiRmFpbGVkIHRvIGNvbnZlcnQgcGFyYW1ldGVyICVkICglcykgdG8gJXNcIiwgcG9zaXRp
b24sIG5hbWUsIGV4cGVjdGVkVHlwZSk7CiB9CiBFT0YKKyAgICAjICIKICAgICBwdXNoKEBiYWNr
ZW5kTWV0aG9kc0ltcGwsICRwcml2YXRlRnVuY3Rpb25zKTsKIH0KIApAQCAtMjc2LDcgKzI5OCwx
MSBAQCBzdWIgZ2VuZXJhdGVCYWNrZW5kRnVuY3Rpb24KICAgICAgICAgcHVzaChAZnVuY3Rpb24s
ICIgICAgfSIpOwogICAgICAgICArKyRpOwogICAgIH0KLSAgICBwdXNoKEBmdW5jdGlvbiwgIiAg
ICBtX2luc3BlY3RvckJhY2tlbmQtPiRmdW5jdGlvbk5hbWUoIiAuIGpvaW4oIiwgIiwgbWFwKCRf
LT5uYW1lLCBAYXJnc0ZpbHRlcmVkKSkgLiAiKTsiKTsKKyAgICBteSAkYWdlbnQgPSAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57ImFnZW50In0gfHwgIkJhY2tlbmQi
OworICAgIG15ICRhZ2VudEFjY2Vzc29yID0gJHR5cGVUcmFuc2Zvcm17JGFnZW50fS0+eyJhZ2Vu
dEFjY2Vzc29yIn07CisgICAgJGJhY2tlbmRUeXBlc3skYWdlbnR9ID0gMTsKKyAgICBwdXNoKEBm
dW5jdGlvbiwgIiAgICBpZiAoJGFnZW50QWNjZXNzb3IpIik7CisgICAgcHVzaChAZnVuY3Rpb24s
ICIgICAgICAgICRhZ2VudEFjY2Vzc29yLT4kZnVuY3Rpb25OYW1lKCIgLiBqb2luKCIsICIsIG1h
cCgkXy0+bmFtZSwgQGFyZ3NGaWx0ZXJlZCkpIC4gIik7Iik7CiAgICAgcHVzaChAZnVuY3Rpb24s
ICJ9Iik7CiAgICAgcHVzaChAZnVuY3Rpb24sICIiKTsKICAgICBwdXNoKEBiYWNrZW5kTWV0aG9k
c0ltcGwsIEBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCAxNTViZmNkLi5j
OTJjOGUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTQ1LDExNyArNDUsMTE3IEBAIG1v
ZHVsZSBjb3JlIHsKICAgICAgICAgW25vdGlmeV0gdm9pZCB1cGRhdGVDb25zb2xlTWVzc2FnZUV4
cGlyZWRDb3VudChvdXQgdW5zaWduZWQgbG9uZyBjb3VudCk7CiAgICAgICAgIFtub3RpZnldIHZv
aWQgdXBkYXRlQ29uc29sZU1lc3NhZ2VSZXBlYXRDb3VudChvdXQgdW5zaWduZWQgbG9uZyBjb3Vu
dCk7CiAKLSAgICAgICAgdm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChpbiBTdHJpbmcgcGFuZWxO
YW1lKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgc3RvcmVMYXN0QWN0aXZlUGFu
ZWwoaW4gU3RyaW5nIHBhbmVsTmFtZSk7CiAKLSAgICAgICAgdm9pZCBzYXZlQXBwbGljYXRpb25T
ZXR0aW5ncyhpbiBTdHJpbmcgc2V0dGluZ3MpOwotICAgICAgICB2b2lkIHNhdmVTZXNzaW9uU2V0
dGluZ3MoaW4gU3RyaW5nIHNldHRpbmdzKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZv
aWQgc2F2ZUFwcGxpY2F0aW9uU2V0dGluZ3MoaW4gU3RyaW5nIHNldHRpbmdzKTsKKyAgICAgICAg
W2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgc2F2ZVNlc3Npb25TZXR0aW5ncyhpbiBTdHJpbmcgc2V0
dGluZ3MpOwogCi0gICAgICAgIHZvaWQgZW5hYmxlU2VhcmNoaW5nRm9yTm9kZSgpOwotICAgICAg
ICB2b2lkIGRpc2FibGVTZWFyY2hpbmdGb3JOb2RlKCk7CisgICAgICAgIFthZ2VudD1Db250cm9s
bGVyXSB2b2lkIGVuYWJsZVNlYXJjaGluZ0Zvck5vZGUoKTsKKyAgICAgICAgW2FnZW50PUNvbnRy
b2xsZXJdIHZvaWQgZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGUoKTsKIAotICAgICAgICB2b2lkIGVu
YWJsZU1vbml0b3JpbmdYSFIoKTsKLSAgICAgICAgdm9pZCBkaXNhYmxlTW9uaXRvcmluZ1hIUigp
OworICAgICAgICBbYWdlbnQ9Q29udHJvbGxlcl0gdm9pZCBlbmFibGVNb25pdG9yaW5nWEhSKCk7
CisgICAgICAgIFthZ2VudD1Db250cm9sbGVyXSB2b2lkIGRpc2FibGVNb25pdG9yaW5nWEhSKCk7
CiAKLSAgICAgICAgdm9pZCBlbmFibGVSZXNvdXJjZVRyYWNraW5nKGluIGJvb2xlYW4gYWx3YXlz
KTsKLSAgICAgICAgdm9pZCBkaXNhYmxlUmVzb3VyY2VUcmFja2luZyhpbiBib29sZWFuIGFsd2F5
cyk7Ci0gICAgICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KGluIGxvbmcgY2FsbElkLCBpbiB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwotICAgICAgICB2b2lkIHJlbG9hZFBhZ2UoKTsKKyAg
ICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgZW5hYmxlUmVzb3VyY2VUcmFja2luZyhpbiBi
b29sZWFuIGFsd2F5cyk7CisgICAgICAgIFthZ2VudD1Db250cm9sbGVyXSB2b2lkIGRpc2FibGVS
ZXNvdXJjZVRyYWNraW5nKGluIGJvb2xlYW4gYWx3YXlzKTsKKyAgICAgICAgW2FnZW50PUNvbnRy
b2xsZXJdIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KGluIGxvbmcgY2FsbElkLCBpbiB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpOworICAgICAgICBbYWdlbnQ9Q29udHJvbGxlcl0gdm9pZCByZWxv
YWRQYWdlKCk7CiAKLSAgICAgICAgdm9pZCBzdGFydFRpbWVsaW5lUHJvZmlsZXIoKTsKLSAgICAg
ICAgdm9pZCBzdG9wVGltZWxpbmVQcm9maWxlcigpOworICAgICAgICBbYWdlbnQ9Q29udHJvbGxl
cl0gdm9pZCBzdGFydFRpbWVsaW5lUHJvZmlsZXIoKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xs
ZXJdIHZvaWQgc3RvcFRpbWVsaW5lUHJvZmlsZXIoKTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0pB
VkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCi0gICAgICAg
IHZvaWQgZW5hYmxlRGVidWdnZXIoaW4gYm9vbGVhbiBhbHdheXMpOwotICAgICAgICB2b2lkIGRp
c2FibGVEZWJ1Z2dlcihpbiBib29sZWFuIGFsd2F5cyk7CisgICAgICAgIFthZ2VudD1CYWNrZW5k
XSB2b2lkIGVuYWJsZURlYnVnZ2VyKGluIGJvb2xlYW4gYWx3YXlzKTsKKyAgICAgICAgW2FnZW50
PUNvbnRyb2xsZXJdIHZvaWQgZGlzYWJsZURlYnVnZ2VyKGluIGJvb2xlYW4gYWx3YXlzKTsKIAot
ICAgICAgICB2b2lkIHNldEJyZWFrcG9pbnQoaW4gbG9uZyBjYWxsSWQsIGluIFN0cmluZyBzb3Vy
Y2VJRCwgaW4gdW5zaWduZWQgbG9uZyBsaW5lTnVtYmVyLCBpbiBib29sZWFuIGVuYWJsZWQsIGlu
IFN0cmluZyBjb25kaXRpb24pOwotICAgICAgICB2b2lkIHJlbW92ZUJyZWFrcG9pbnQoaW4gU3Ry
aW5nIHNvdXJjZUlELCBpbiB1bnNpZ25lZCBsb25nIGxpbmVOdW1iZXIpOwotICAgICAgICB2b2lk
IGFjdGl2YXRlQnJlYWtwb2ludHMoKTsKLSAgICAgICAgdm9pZCBkZWFjdGl2YXRlQnJlYWtwb2lu
dHMoKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgc2V0QnJlYWtwb2ludChpbiBs
b25nIGNhbGxJZCwgaW4gU3RyaW5nIHNvdXJjZUlELCBpbiB1bnNpZ25lZCBsb25nIGxpbmVOdW1i
ZXIsIGluIGJvb2xlYW4gZW5hYmxlZCwgaW4gU3RyaW5nIGNvbmRpdGlvbik7CisgICAgICAgIFth
Z2VudD1Db250cm9sbGVyXSB2b2lkIHJlbW92ZUJyZWFrcG9pbnQoaW4gU3RyaW5nIHNvdXJjZUlE
LCBpbiB1bnNpZ25lZCBsb25nIGxpbmVOdW1iZXIpOworICAgICAgICBbYWdlbnQ9RGVidWddIHZv
aWQgYWN0aXZhdGVCcmVha3BvaW50cygpOworICAgICAgICBbYWdlbnQ9RGVidWddIHZvaWQgZGVh
Y3RpdmF0ZUJyZWFrcG9pbnRzKCk7CiAKLSAgICAgICAgdm9pZCBwYXVzZSgpOwotICAgICAgICB2
b2lkIHJlc3VtZSgpOworICAgICAgICBbYWdlbnQ9RGVidWddIHZvaWQgcGF1c2UoKTsKKyAgICAg
ICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgcmVzdW1lKCk7CiAKLSAgICAgICAgdm9pZCBzdGVw
T3ZlclN0YXRlbWVudCgpOwotICAgICAgICB2b2lkIHN0ZXBJbnRvU3RhdGVtZW50KCk7Ci0gICAg
ICAgIHZvaWQgc3RlcE91dE9mRnVuY3Rpb24oKTsKKyAgICAgICAgW2FnZW50PURlYnVnXSB2b2lk
IHN0ZXBPdmVyU3RhdGVtZW50KCk7CisgICAgICAgIFthZ2VudD1EZWJ1Z10gdm9pZCBzdGVwSW50
b1N0YXRlbWVudCgpOworICAgICAgICBbYWdlbnQ9RGVidWddIHZvaWQgc3RlcE91dE9mRnVuY3Rp
b24oKTsKIAotICAgICAgICB2b2lkIHNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoaW4gbG9uZyBw
YXVzZU9uRXhjZXB0aW9uc1N0YXRlKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQg
c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShpbiBsb25nIHBhdXNlT25FeGNlcHRpb25zU3RhdGUp
OwogCi0gICAgICAgIHZvaWQgZWRpdFNjcmlwdFNvdXJjZShpbiBsb25nIGNhbGxJZCwgaW4gU3Ry
aW5nIHNvdXJjZUlELCBpbiBTdHJpbmcgbmV3Q29udGVudCk7Ci0gICAgICAgIHZvaWQgZ2V0U2Ny
aXB0U291cmNlKGluIGxvbmcgY2FsbElkLCBpbiBTdHJpbmcgc291cmNlSUQpOworICAgICAgICBb
YWdlbnQ9Q29udHJvbGxlcl0gdm9pZCBlZGl0U2NyaXB0U291cmNlKGluIGxvbmcgY2FsbElkLCBp
biBTdHJpbmcgc291cmNlSUQsIGluIFN0cmluZyBuZXdDb250ZW50KTsKKyAgICAgICAgW2FnZW50
PUNvbnRyb2xsZXJdIHZvaWQgZ2V0U2NyaXB0U291cmNlKGluIGxvbmcgY2FsbElkLCBpbiBTdHJp
bmcgc291cmNlSUQpOwogCi0gICAgICAgIHZvaWQgZW5hYmxlUHJvZmlsZXIoaW4gYm9vbGVhbiBh
bHdheXMpOwotICAgICAgICB2b2lkIGRpc2FibGVQcm9maWxlcihpbiBib29sZWFuIGFsd2F5cyk7
CisgICAgICAgIFthZ2VudD1Db250cm9sbGVyXSB2b2lkIGVuYWJsZVByb2ZpbGVyKGluIGJvb2xl
YW4gYWx3YXlzKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgZGlzYWJsZVByb2Zp
bGVyKGluIGJvb2xlYW4gYWx3YXlzKTsKIAotICAgICAgICB2b2lkIHN0YXJ0UHJvZmlsaW5nKCk7
Ci0gICAgICAgIHZvaWQgc3RvcFByb2ZpbGluZygpOworICAgICAgICBbYWdlbnQ9Q29udHJvbGxl
cl0gdm9pZCBzdGFydFByb2ZpbGluZygpOworICAgICAgICBbYWdlbnQ9Q29udHJvbGxlcl0gdm9p
ZCBzdG9wUHJvZmlsaW5nKCk7CiAKLSAgICAgICAgdm9pZCBnZXRQcm9maWxlSGVhZGVycyhpbiBs
b25nIGNhbGxJZCk7Ci0gICAgICAgIHZvaWQgZ2V0UHJvZmlsZShpbiBsb25nIGNhbGxJZCwgaW4g
dW5zaWduZWQgbG9uZyB1aWQpOworICAgICAgICBbYWdlbnQ9Q29udHJvbGxlcl0gdm9pZCBnZXRQ
cm9maWxlSGVhZGVycyhpbiBsb25nIGNhbGxJZCk7CisgICAgICAgIFthZ2VudD1Db250cm9sbGVy
XSB2b2lkIGdldFByb2ZpbGUoaW4gbG9uZyBjYWxsSWQsIGluIHVuc2lnbmVkIGxvbmcgdWlkKTsK
IAotICAgICAgICB2b2lkIHJlbW92ZVByb2ZpbGUoaW4gdW5zaWduZWQgbG9uZyB1aWQpOwotICAg
ICAgICB2b2lkIGNsZWFyUHJvZmlsZXMoKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZv
aWQgcmVtb3ZlUHJvZmlsZShpbiB1bnNpZ25lZCBsb25nIHVpZCk7CisgICAgICAgIFthZ2VudD1D
b250cm9sbGVyXSB2b2lkIGNsZWFyUHJvZmlsZXMoKTsKIAotICAgICAgICB2b2lkIHRha2VIZWFw
U25hcHNob3QoKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgdGFrZUhlYXBTbmFw
c2hvdCgpOwogI2VuZGlmCi0gICAgICAgIHZvaWQgc2V0SW5qZWN0ZWRTY3JpcHRTb3VyY2UoaW4g
U3RyaW5nIHNjcmlwdFNvdXJjZSk7Ci0gICAgICAgIHZvaWQgZGlzcGF0Y2hPbkluamVjdGVkU2Ny
aXB0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIGluamVjdGVkU2NyaXB0SWQsIGluIFN0cmluZyBt
ZXRob2ROYW1lLCBpbiBTdHJpbmcgYXJndW1lbnRzLCBpbiBib29sZWFuIGFzeW5jKTsKLQotICAg
ICAgICB2b2lkIGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoaW4gU3RyaW5nIHNjcmlwdFNvdXJj
ZSk7Ci0gICAgICAgIHZvaWQgcmVtb3ZlQWxsU2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQoKTsKLQot
ICAgICAgICB2b2lkIGdldENoaWxkTm9kZXMoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlk
KTsKLSAgICAgICAgW2N1c3RvbVJlc3BvbnNlPWRpZEFwcGx5RG9tQ2hhbmdlXSB2b2lkIHNldEF0
dHJpYnV0ZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBlbGVtZW50SWQsIGluIFN0cmluZyBuYW1l
LCBpbiBTdHJpbmcgdmFsdWUsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwotICAgICAgICBbY3VzdG9t
UmVzcG9uc2U9ZGlkQXBwbHlEb21DaGFuZ2VdIHZvaWQgcmVtb3ZlQXR0cmlidXRlKGluIGxvbmcg
Y2FsbElkLCBpbiBsb25nIGVsZW1lbnRJZCwgaW4gU3RyaW5nIG5hbWUsIG91dCBib29sZWFuIHN1
Y2Nlc3MpOwotICAgICAgICB2b2lkIHNldFRleHROb2RlVmFsdWUoaW4gbG9uZyBjYWxsSWQsIGlu
IGxvbmcgbm9kZUlkLCBpbiBTdHJpbmcgdmFsdWUpOwotICAgICAgICB2b2lkIGdldEV2ZW50TGlz
dGVuZXJzRm9yTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIG91dCBsb25nIG5v
ZGVJZCwgb3V0IEFycmF5IGxpc3RlbmVyc0FycmF5KTsKLSAgICAgICAgdm9pZCBjb3B5Tm9kZShp
biBsb25nIG5vZGVJZCk7Ci0gICAgICAgIHZvaWQgcmVtb3ZlTm9kZShpbiBsb25nIGNhbGxJZCwg
aW4gbG9uZyBub2RlSWQsIG91dCBsb25nIG5vZGVJZCk7Ci0gICAgICAgIHZvaWQgY2hhbmdlVGFn
TmFtZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIGluIFN0cmluZyBuZXdUYWdOYW1l
LCBvdXQgbG9uZyBub2RlSWQpOwotICAgICAgICB2b2lkIGdldE91dGVySFRNTChpbiBsb25nIGNh
bGxJZCwgaW4gbG9uZyBub2RlSWQsIG91dCBTdHJpbmcgb3V0ZXJIVE1MKTsKLSAgICAgICAgdm9p
ZCBzZXRPdXRlckhUTUwoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBpbiBTdHJpbmcg
b3V0ZXJIVE1MLCBvdXQgbG9uZyBub2RlSWQpOwotICAgICAgICB2b2lkIGFkZEluc3BlY3RlZE5v
ZGUoaW4gbG9uZyBub2RlSWQpOwotICAgICAgICB2b2lkIHBlcmZvcm1TZWFyY2goaW4gU3RyaW5n
IHF1ZXJ5LCBpbiBib29sZWFuIHJ1blN5bmNocm9ub3VzbHkpOwotICAgICAgICB2b2lkIHNlYXJj
aENhbmNlbGVkKCk7Ci0gICAgICAgIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGluIGxv
bmcgY2FsbElkLCBpbiBTdHJpbmcgcGF0aCwgb3V0IGxvbmcgbm9kZUlkKTsKLQotICAgICAgICB2
b2lkIGNsZWFyQ29uc29sZU1lc3NhZ2VzKGluIGxvbmcgY2FsbElkKTsKLQotICAgICAgICB2b2lk
IGhpZ2hsaWdodERPTU5vZGUoaW4gbG9uZyBub2RlSWQpOwotICAgICAgICB2b2lkIGhpZGVET01O
b2RlSGlnaGxpZ2h0KCk7Ci0KLSAgICAgICAgdm9pZCBnZXRTdHlsZXMoaW4gbG9uZyBjYWxsSWQs
IGluIGxvbmcgbm9kZUlkLCBpbiBib29sZWFuIGF1dGhPbmx5LCBvdXQgVmFsdWUgc3R5bGVzKTsK
LSAgICAgICAgdm9pZCBnZXRBbGxTdHlsZXMoaW4gbG9uZyBjYWxsSWQsIG91dCBBcnJheSBzdHls
ZXMpOwotICAgICAgICB2b2lkIGdldElubGluZVN0eWxlKGluIGxvbmcgY2FsbElkLCBpbiBsb25n
IG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxlKTsKLSAgICAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxl
KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxlKTsKLSAgICAg
ICAgdm9pZCBnZXRTdHlsZVNoZWV0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlU2hlZXRJ
ZCwgb3V0IFZhbHVlIHN0eWxlU2hlZXQpOwotICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMoaW4g
bG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFsdWUgcmFuZ2VzKTsKLSAg
ICAgICAgdm9pZCBhcHBseVN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlk
LCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBvdXQgYm9vbGVh
biBzdWNjZXNzLCBvdXQgVmFsdWUgc3R5bGUsIG91dCBBcnJheSBjaGFuZ2VkUHJvcGVydGllcyk7
Ci0gICAgICAgIHZvaWQgc2V0U3R5bGVUZXh0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxl
SWQsIGluIFN0cmluZyBzdHlsZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwotICAgICAgICB2
b2lkIHNldFN0eWxlUHJvcGVydHkoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVJZCwgaW4g
U3RyaW5nIG5hbWUsIGluIFN0cmluZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7Ci0gICAg
ICAgIHZvaWQgdG9nZ2xlU3R5bGVFbmFibGVkKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxl
SWQsIGluIFN0cmluZyBwcm9wZXJ0eU5hbWUsIGluIGJvb2xlYW4gZGlzYWJsZWQsIG91dCBWYWx1
ZSBzdHlsZSk7Ci0gICAgICAgIHZvaWQgc2V0UnVsZVNlbGVjdG9yKGluIGxvbmcgY2FsbElkLCBp
biBsb25nIHJ1bGVJZCwgaW4gU3RyaW5nIHNlbGVjdG9yLCBpbiBsb25nIHNlbGVjdGVkTm9kZUlk
LCBvdXQgVmFsdWUgcnVsZSwgb3V0IGJvb2xlYW4gc2VsZWN0b3JBZmZlY3RzTm9kZSk7Ci0gICAg
ICAgIHZvaWQgYWRkUnVsZShpbiBsb25nIGNhbGxJZCwgaW4gU3RyaW5nIHNlbGVjdG9yLCBpbiBs
b25nIHNlbGVjdGVkTm9kZUlkLCBvdXQgVmFsdWUgcnVsZSwgb3V0IGJvb2xlYW4gc2VsZWN0b3JB
ZmZlY3RzTm9kZSk7Ci0KLSAgICAgICAgdm9pZCBnZXRDb29raWVzKGluIGxvbmcgY2FsbElkKTsK
LSAgICAgICAgdm9pZCBkZWxldGVDb29raWUoaW4gU3RyaW5nIGNvb2tpZU5hbWUsIGluIFN0cmlu
ZyBkb21haW4pOworICAgICAgICBbYWdlbnQ9QmFja2VuZF0gdm9pZCBzZXRJbmplY3RlZFNjcmlw
dFNvdXJjZShpbiBTdHJpbmcgc2NyaXB0U291cmNlKTsKKyAgICAgICAgW2FnZW50PUJhY2tlbmRd
IHZvaWQgZGlzcGF0Y2hPbkluamVjdGVkU2NyaXB0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIGlu
amVjdGVkU2NyaXB0SWQsIGluIFN0cmluZyBtZXRob2ROYW1lLCBpbiBTdHJpbmcgYXJndW1lbnRz
LCBpbiBib29sZWFuIGFzeW5jKTsKKworICAgICAgICBbYWdlbnQ9Q29udHJvbGxlcl0gdm9pZCBh
ZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKGluIFN0cmluZyBzY3JpcHRTb3VyY2UpOworICAgICAg
ICBbYWdlbnQ9Q29udHJvbGxlcl0gdm9pZCByZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9uTG9h
ZCgpOworCisgICAgICAgIFthZ2VudD1ET01dIHZvaWQgZ2V0Q2hpbGROb2RlcyhpbiBsb25nIGNh
bGxJZCwgaW4gbG9uZyBub2RlSWQpOworICAgICAgICBbYWdlbnQ9RE9NLCBjdXN0b21SZXNwb25z
ZT1kaWRBcHBseURvbUNoYW5nZV0gdm9pZCBzZXRBdHRyaWJ1dGUoaW4gbG9uZyBjYWxsSWQsIGlu
IGxvbmcgZWxlbWVudElkLCBpbiBTdHJpbmcgbmFtZSwgaW4gU3RyaW5nIHZhbHVlLCBvdXQgYm9v
bGVhbiBzdWNjZXNzKTsKKyAgICAgICAgW2FnZW50PURPTSwgY3VzdG9tUmVzcG9uc2U9ZGlkQXBw
bHlEb21DaGFuZ2VdIHZvaWQgcmVtb3ZlQXR0cmlidXRlKGluIGxvbmcgY2FsbElkLCBpbiBsb25n
IGVsZW1lbnRJZCwgaW4gU3RyaW5nIG5hbWUsIG91dCBib29sZWFuIHN1Y2Nlc3MpOworICAgICAg
ICBbYWdlbnQ9RE9NXSB2b2lkIHNldFRleHROb2RlVmFsdWUoaW4gbG9uZyBjYWxsSWQsIGluIGxv
bmcgbm9kZUlkLCBpbiBTdHJpbmcgdmFsdWUpOworICAgICAgICBbYWdlbnQ9RE9NXSB2b2lkIGdl
dEV2ZW50TGlzdGVuZXJzRm9yTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIG91
dCBsb25nIG5vZGVJZCwgb3V0IEFycmF5IGxpc3RlbmVyc0FycmF5KTsKKyAgICAgICAgW2FnZW50
PURPTV0gdm9pZCBjb3B5Tm9kZShpbiBsb25nIG5vZGVJZCk7CisgICAgICAgIFthZ2VudD1ET01d
IHZvaWQgcmVtb3ZlTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIG91dCBsb25n
IG5vZGVJZCk7CisgICAgICAgIFthZ2VudD1ET01dIHZvaWQgY2hhbmdlVGFnTmFtZShpbiBsb25n
IGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIGluIFN0cmluZyBuZXdUYWdOYW1lLCBvdXQgbG9uZyBu
b2RlSWQpOworICAgICAgICBbYWdlbnQ9RE9NXSB2b2lkIGdldE91dGVySFRNTChpbiBsb25nIGNh
bGxJZCwgaW4gbG9uZyBub2RlSWQsIG91dCBTdHJpbmcgb3V0ZXJIVE1MKTsKKyAgICAgICAgW2Fn
ZW50PURPTV0gdm9pZCBzZXRPdXRlckhUTUwoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlk
LCBpbiBTdHJpbmcgb3V0ZXJIVE1MLCBvdXQgbG9uZyBub2RlSWQpOworICAgICAgICBbYWdlbnQ9
RE9NXSB2b2lkIGFkZEluc3BlY3RlZE5vZGUoaW4gbG9uZyBub2RlSWQpOworICAgICAgICBbYWdl
bnQ9RE9NXSB2b2lkIHBlcmZvcm1TZWFyY2goaW4gU3RyaW5nIHF1ZXJ5LCBpbiBib29sZWFuIHJ1
blN5bmNocm9ub3VzbHkpOworICAgICAgICBbYWdlbnQ9RE9NXSB2b2lkIHNlYXJjaENhbmNlbGVk
KCk7CisgICAgICAgIFthZ2VudD1ET01dIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGlu
IGxvbmcgY2FsbElkLCBpbiBTdHJpbmcgcGF0aCwgb3V0IGxvbmcgbm9kZUlkKTsKKworICAgICAg
ICBbYWdlbnQ9QmFja2VuZF0gdm9pZCBjbGVhckNvbnNvbGVNZXNzYWdlcyhpbiBsb25nIGNhbGxJ
ZCk7CisKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgaGlnaGxpZ2h0RE9NTm9kZShp
biBsb25nIG5vZGVJZCk7CisgICAgICAgIFthZ2VudD1Db250cm9sbGVyXSB2b2lkIGhpZGVET01O
b2RlSGlnaGxpZ2h0KCk7CisKKyAgICAgICAgW2FnZW50PURPTV0gdm9pZCBnZXRTdHlsZXMoaW4g
bG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBpbiBib29sZWFuIGF1dGhPbmx5LCBvdXQgVmFs
dWUgc3R5bGVzKTsKKyAgICAgICAgW2FnZW50PURPTV0gdm9pZCBnZXRBbGxTdHlsZXMoaW4gbG9u
ZyBjYWxsSWQsIG91dCBBcnJheSBzdHlsZXMpOworICAgICAgICBbYWdlbnQ9RE9NXSB2b2lkIGdl
dElubGluZVN0eWxlKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0
eWxlKTsKKyAgICAgICAgW2FnZW50PURPTV0gdm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcg
Y2FsbElkLCBpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxlKTsKKyAgICAgICAgW2FnZW50
PURPTV0gdm9pZCBnZXRTdHlsZVNoZWV0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlU2hl
ZXRJZCwgb3V0IFZhbHVlIHN0eWxlU2hlZXQpOworICAgICAgICBbYWdlbnQ9RE9NXSB2b2lkIGdl
dFJ1bGVSYW5nZXMoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFs
dWUgcmFuZ2VzKTsKKyAgICAgICAgW2FnZW50PURPTV0gdm9pZCBhcHBseVN0eWxlVGV4dChpbiBs
b25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBpbiBTdHJp
bmcgcHJvcGVydHlOYW1lLCBvdXQgYm9vbGVhbiBzdWNjZXNzLCBvdXQgVmFsdWUgc3R5bGUsIG91
dCBBcnJheSBjaGFuZ2VkUHJvcGVydGllcyk7CisgICAgICAgIFthZ2VudD1ET01dIHZvaWQgc2V0
U3R5bGVUZXh0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHls
ZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICBbYWdlbnQ9RE9NXSB2b2lkIHNl
dFN0eWxlUHJvcGVydHkoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5n
IG5hbWUsIGluIFN0cmluZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CisgICAgICAgIFth
Z2VudD1ET01dIHZvaWQgdG9nZ2xlU3R5bGVFbmFibGVkKGluIGxvbmcgY2FsbElkLCBpbiBsb25n
IHN0eWxlSWQsIGluIFN0cmluZyBwcm9wZXJ0eU5hbWUsIGluIGJvb2xlYW4gZGlzYWJsZWQsIG91
dCBWYWx1ZSBzdHlsZSk7CisgICAgICAgIFthZ2VudD1ET01dIHZvaWQgc2V0UnVsZVNlbGVjdG9y
KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHJ1bGVJZCwgaW4gU3RyaW5nIHNlbGVjdG9yLCBpbiBs
b25nIHNlbGVjdGVkTm9kZUlkLCBvdXQgVmFsdWUgcnVsZSwgb3V0IGJvb2xlYW4gc2VsZWN0b3JB
ZmZlY3RzTm9kZSk7CisgICAgICAgIFthZ2VudD1ET01dIHZvaWQgYWRkUnVsZShpbiBsb25nIGNh
bGxJZCwgaW4gU3RyaW5nIHNlbGVjdG9yLCBpbiBsb25nIHNlbGVjdGVkTm9kZUlkLCBvdXQgVmFs
dWUgcnVsZSwgb3V0IGJvb2xlYW4gc2VsZWN0b3JBZmZlY3RzTm9kZSk7CisKKyAgICAgICAgW2Fn
ZW50PUNvbnRyb2xsZXJdIHZvaWQgZ2V0Q29va2llcyhpbiBsb25nIGNhbGxJZCk7CisgICAgICAg
IFthZ2VudD1Db250cm9sbGVyXSB2b2lkIGRlbGV0ZUNvb2tpZShpbiBTdHJpbmcgY29va2llTmFt
ZSwgaW4gU3RyaW5nIGRvbWFpbik7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9PRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpICYmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKLSAgICAgICAg
dm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlcyhpbiBsb25nIGNhbGxJZCk7CisgICAgICAgIFthZ2Vu
dD1BcHBsaWNhdGlvbkNhY2hlXSB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVzKGluIGxvbmcgY2Fs
bElkKTsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgcmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cChp
biBsb25nIGluamVjdGVkU2NyaXB0SWQsIGluIFN0cmluZyBvYmplY3RHcm91cCk7Ci0gICAgICAg
IHZvaWQgZGlkRXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChpbiBsb25nIGNhbGxJZCwgaW4gU3Ry
aW5nIGpzb25SZXN1bHQpOworICAgICAgICBbYWdlbnQ9QmFja2VuZF0gdm9pZCByZWxlYXNlV3Jh
cHBlck9iamVjdEdyb3VwKGluIGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwgaW4gU3RyaW5nIG9iamVj
dEdyb3VwKTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgZGlkRXZhbHVhdGVGb3JU
ZXN0SW5Gcm9udGVuZChpbiBsb25nIGNhbGxJZCwgaW4gU3RyaW5nIGpzb25SZXN1bHQpOwogCiAj
aWYgZGVmaW5lZChFTkFCTEVfREFUQUJBU0UpICYmIEVOQUJMRV9EQVRBQkFTRQotICAgICAgICB2
b2lkIGdldERhdGFiYXNlVGFibGVOYW1lcyhpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBkYXRhYmFz
ZUlkKTsKKyAgICAgICAgW2FnZW50PUJhY2tlbmRdIHZvaWQgZ2V0RGF0YWJhc2VUYWJsZU5hbWVz
KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIGRhdGFiYXNlSWQpOwogI2VuZGlmCiAKICNpZiBkZWZp
bmVkKEVOQUJMRV9ET01fU1RPUkFHRSkgJiYgRU5BQkxFX0RPTV9TVE9SQUdFCi0gICAgICAgIHZv
aWQgZ2V0RE9NU3RvcmFnZUVudHJpZXMoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3RvcmFnZUlk
KTsKLSAgICAgICAgdm9pZCBzZXRET01TdG9yYWdlSXRlbShpbiBsb25nIGNhbGxJZCwgaW4gbG9u
ZyBzdG9yYWdlSWQsIGluIFN0cmluZyBrZXksIGluIFN0cmluZyB2YWx1ZSk7Ci0gICAgICAgIHZv
aWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3RvcmFnZUlk
LCBpbiBTdHJpbmcga2V5KTsKKyAgICAgICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgZ2V0RE9N
U3RvcmFnZUVudHJpZXMoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3RvcmFnZUlkKTsKKyAgICAg
ICAgW2FnZW50PUNvbnRyb2xsZXJdIHZvaWQgc2V0RE9NU3RvcmFnZUl0ZW0oaW4gbG9uZyBjYWxs
SWQsIGluIGxvbmcgc3RvcmFnZUlkLCBpbiBTdHJpbmcga2V5LCBpbiBTdHJpbmcgdmFsdWUpOwor
ICAgICAgICBbYWdlbnQ9Q29udHJvbGxlcl0gdm9pZCByZW1vdmVET01TdG9yYWdlSXRlbShpbiBs
b25nIGNhbGxJZCwgaW4gbG9uZyBzdG9yYWdlSWQsIGluIFN0cmluZyBrZXkpOwogI2VuZGlmCiAg
ICAgfTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKaW5kZXggZjI3Yjgx
Mi4uNTcwMmE3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKQEAgLTM2
LDQxICszNiwxNCBAQAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjZW5kaWYKIAotI2luY2x1ZGUg
IkVsZW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
Ci0jaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRT
Y3JpcHQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKLSNpbmNsdWRlICJJbnNw
ZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgot
I2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1
ZGUgIlBhc3RlYm9hcmQuaCIKICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIgot
I2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCi0jaW5jbHVkZSAiU2NyaXB0QnJlYWtwb2ludC5oIgog
I2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogCi0jaWYgRU5BQkxFKERPTV9TVE9S
QUdFKQotI2luY2x1ZGUgIlN0b3JhZ2UuaCIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCi0jaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIKLSNlbmRpZgotCi0j
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLSNpbmNsdWRlICJJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuaCIKLSNlbmRpZgotCi0jaW5jbHVkZSAibWFya3VwLmgiCi0K
LSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgot
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04NCw4MyAr
NTcsNiBAQCBJbnNwZWN0b3JCYWNrZW5kOjp+SW5zcGVjdG9yQmFja2VuZCgpCiB7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yQmFja2VuZDo6c2F2ZUFwcGxpY2F0aW9uU2V0dGluZ3MoY29uc3QgU3RyaW5n
JiBzZXR0aW5ncykKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICBt
X2luc3BlY3RvckNvbnRyb2xsZXItPnNhdmVBcHBsaWNhdGlvblNldHRpbmdzKHNldHRpbmdzKTsK
LX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpzYXZlU2Vzc2lvblNldHRpbmdzKGNvbnN0IFN0
cmluZyYgc2V0dGluZ3MpCi17Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAg
ICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5zYXZlU2Vzc2lvblNldHRpbmdzKHNldHRpbmdzKTsK
LX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpzdG9yZUxhc3RBY3RpdmVQYW5lbChjb25zdCBT
dHJpbmcmIHBhbmVsTmFtZSkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAg
ICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnN0b3JlTGFzdEFjdGl2ZVBhbmVsKHBhbmVsTmFt
ZSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6ZW5hYmxlU2VhcmNoaW5nRm9yTm9kZSgp
Ci17Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgbV9pbnNwZWN0b3JD
b250cm9sbGVyLT5lbmFibGVTZWFyY2hpbmdGb3JOb2RlKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
QmFja2VuZDo6ZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGUoKQotewotICAgIGlmIChtX2luc3BlY3Rv
ckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlzYWJsZVNlYXJj
aGluZ0Zvck5vZGUoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjplbmFibGVNb25pdG9y
aW5nWEhSKCkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICBtX2lu
c3BlY3RvckNvbnRyb2xsZXItPmVuYWJsZU1vbml0b3JpbmdYSFIoKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JCYWNrZW5kOjpkaXNhYmxlTW9uaXRvcmluZ1hIUigpCi17Ci0gICAgaWYgKG1faW5zcGVj
dG9yQ29udHJvbGxlcikKLSAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaXNhYmxlTW9u
aXRvcmluZ1hIUigpOwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OmVuYWJsZVJlc291cmNl
VHJhY2tpbmcoYm9vbCBhbHdheXMpCi17Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikK
LSAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5lbmFibGVSZXNvdXJjZVRyYWNraW5nKGFs
d2F5cyk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6ZGlzYWJsZVJlc291cmNlVHJhY2tp
bmcoYm9vbCBhbHdheXMpCi17Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAg
ICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaXNhYmxlUmVzb3VyY2VUcmFja2luZyhhbHdheXMp
OwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OmdldFJlc291cmNlQ29udGVudChsb25nIGNh
bGxJZCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQotewotICAgIGlmIChtX2luc3BlY3RvckNv
bnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+Z2V0UmVzb3VyY2VDb250
ZW50KGNhbGxJZCwgaWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6cmVs
b2FkUGFnZSgpCi17Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgbV9p
bnNwZWN0b3JDb250cm9sbGVyLT5yZWxvYWRQYWdlKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFj
a2VuZDo6c3RhcnRUaW1lbGluZVByb2ZpbGVyKCkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250
cm9sbGVyKQotICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnN0YXJ0VGltZWxpbmVQcm9m
aWxlcigpOwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OnN0b3BUaW1lbGluZVByb2ZpbGVy
KCkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICBtX2luc3BlY3Rv
ckNvbnRyb2xsZXItPnN0b3BUaW1lbGluZVByb2ZpbGVyKCk7Ci19CiAKICNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKIApAQCAtMTcwLDEzMSArNjYsNiBAQCB2b2lkIEluc3BlY3RvckJh
Y2tlbmQ6OmVuYWJsZURlYnVnZ2VyKGJvb2wgYWx3YXlzKQogICAgICAgICBtX2luc3BlY3RvckNv
bnRyb2xsZXItPmVuYWJsZURlYnVnZ2VyRnJvbUZyb250ZW5kKGFsd2F5cyk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yQmFja2VuZDo6ZGlzYWJsZURlYnVnZ2VyKGJvb2wgYWx3YXlzKQotewotICAgIGlm
IChtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+
ZGlzYWJsZURlYnVnZ2VyKGFsd2F5cyk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6c2V0
QnJlYWtwb2ludChsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWduZWQg
bGluZU51bWJlciwgYm9vbCBlbmFibGVkLCBjb25zdCBTdHJpbmcmIGNvbmRpdGlvbikKLXsKLSAg
ICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xs
ZXItPnNldEJyZWFrcG9pbnQoY2FsbElkLCBzb3VyY2VJRCwgbGluZU51bWJlciwgZW5hYmxlZCwg
Y29uZGl0aW9uKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpyZW1vdmVCcmVha3BvaW50
KGNvbnN0IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCi17Ci0gICAgaWYg
KG1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5y
ZW1vdmVCcmVha3BvaW50KHNvdXJjZUlELCBsaW5lTnVtYmVyKTsKLX0KLQotdm9pZCBJbnNwZWN0
b3JCYWNrZW5kOjphY3RpdmF0ZUJyZWFrcG9pbnRzKCkKLXsKLSAgICBTY3JpcHREZWJ1Z1NlcnZl
cjo6c2hhcmVkKCkuYWN0aXZhdGVCcmVha3BvaW50cygpOwotfQotCi12b2lkIEluc3BlY3RvckJh
Y2tlbmQ6OmRlYWN0aXZhdGVCcmVha3BvaW50cygpCi17Ci0gICAgU2NyaXB0RGVidWdTZXJ2ZXI6
OnNoYXJlZCgpLmRlYWN0aXZhdGVCcmVha3BvaW50cygpOwotfQotCi12b2lkIEluc3BlY3RvckJh
Y2tlbmQ6OnBhdXNlKCkKLXsKLSAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucGF1c2Uo
KTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpyZXN1bWUoKQotewotICAgIGlmIChtX2lu
c3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVzdW1l
KCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6c3RlcE92ZXJTdGF0ZW1lbnQoKQotewot
ICAgIFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5zdGVwT3ZlclN0YXRlbWVudCgpOwotfQot
Ci12b2lkIEluc3BlY3RvckJhY2tlbmQ6OnN0ZXBJbnRvU3RhdGVtZW50KCkKLXsKLSAgICBTY3Jp
cHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkuc3RlcEludG9TdGF0ZW1lbnQoKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JCYWNrZW5kOjpzdGVwT3V0T2ZGdW5jdGlvbigpCi17Ci0gICAgU2NyaXB0RGVidWdT
ZXJ2ZXI6OnNoYXJlZCgpLnN0ZXBPdXRPZkZ1bmN0aW9uKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
QmFja2VuZDo6c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShsb25nIHBhdXNlU3RhdGUpCi17Ci0g
ICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgbV9pbnNwZWN0b3JDb250cm9s
bGVyLT5zZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKHBhdXNlU3RhdGUpOwotfQotCi12b2lkIElu
c3BlY3RvckJhY2tlbmQ6OmVkaXRTY3JpcHRTb3VyY2UobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlSUQsIGNvbnN0IFN0cmluZyYgbmV3Q29udGVudCkKLXsKLSAgICBpZiAobV9pbnNw
ZWN0b3JDb250cm9sbGVyKQotICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmVkaXRTY3Jp
cHRTb3VyY2UoY2FsbElkLCBzb3VyY2VJRCwgbmV3Q29udGVudCk7Ci19Ci0KLXZvaWQgSW5zcGVj
dG9yQmFja2VuZDo6Z2V0U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNv
dXJjZUlEKQotewotICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5z
cGVjdG9yQ29udHJvbGxlci0+Z2V0U2NyaXB0U291cmNlKGNhbGxJZCwgc291cmNlSUQpOwotfQot
Ci12b2lkIEluc3BlY3RvckJhY2tlbmQ6OmVuYWJsZVByb2ZpbGVyKGJvb2wgYWx3YXlzKQotewot
ICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJv
bGxlci0+ZW5hYmxlUHJvZmlsZXIoYWx3YXlzKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5k
OjpkaXNhYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMpCi17Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29u
dHJvbGxlcikKLSAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kaXNhYmxlUHJvZmlsZXIo
YWx3YXlzKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpzdGFydFByb2ZpbGluZygpCi17
Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgbV9pbnNwZWN0b3JDb250
cm9sbGVyLT5zdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsKLX0KLQotdm9pZCBJbnNwZWN0
b3JCYWNrZW5kOjpzdG9wUHJvZmlsaW5nKCkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9s
bGVyKQotICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnN0b3BVc2VySW5pdGlhdGVkUHJv
ZmlsaW5nKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6Z2V0UHJvZmlsZUhlYWRlcnMo
bG9uZyBjYWxsSWQpCi17Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAg
bV9pbnNwZWN0b3JDb250cm9sbGVyLT5nZXRQcm9maWxlSGVhZGVycyhjYWxsSWQpOwotfQotCi12
b2lkIEluc3BlY3RvckJhY2tlbmQ6OmdldFByb2ZpbGUobG9uZyBjYWxsSWQsIHVuc2lnbmVkIHVp
ZCkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICBtX2luc3BlY3Rv
ckNvbnRyb2xsZXItPmdldFByb2ZpbGUoY2FsbElkLCB1aWQpOwotfQotCi12b2lkIEluc3BlY3Rv
ckJhY2tlbmQ6OnJlbW92ZVByb2ZpbGUodW5zaWduZWQgdWlkKQotewotICAgIGlmIChtX2luc3Bl
Y3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVtb3ZlUHJv
ZmlsZSh1aWQpOwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OmNsZWFyUHJvZmlsZXMoKQot
ewotICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29u
dHJvbGxlci0+Y2xlYXJQcm9maWxlcygpOwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OnRh
a2VIZWFwU25hcHNob3QoKQotewotICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAg
ICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+dGFrZUhlYXBTbmFwc2hvdCgpOwotfQogI2VuZGlm
CiAKIHZvaWQgSW5zcGVjdG9yQmFja2VuZDo6c2V0SW5qZWN0ZWRTY3JpcHRTb3VyY2UoY29uc3Qg
U3RyaW5nJiBzb3VyY2UpCkBAIC0zMjksMjE2ICsxMDAsMTcgQEAgdm9pZCBJbnNwZWN0b3JCYWNr
ZW5kOjpkaXNwYXRjaE9uSW5qZWN0ZWRTY3JpcHQobG9uZyBjYWxsSWQsIGxvbmcgaW5qZWN0ZWRT
Y3JpcHQKICAgICBmcm9udGVuZC0+ZGlkRGlzcGF0Y2hPbkluamVjdGVkU2NyaXB0KGNhbGxJZCwg
cmVzdWx0LmdldCgpLCBoYWRFeGNlcHRpb24pOwogfQogCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6
OmdldENoaWxkTm9kZXMobG9uZyBjYWxsSWQsIGxvbmcgbm9kZUlkKQotewotICAgIGlmIChJbnNw
ZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAgICAgICBk
b21BZ2VudC0+Z2V0Q2hpbGROb2RlcyhjYWxsSWQsIG5vZGVJZCk7Ci19Ci0KLXZvaWQgSW5zcGVj
dG9yQmFja2VuZDo6c2V0QXR0cmlidXRlKGxvbmcgY2FsbElkLCBsb25nIGVsZW1lbnRJZCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIGlmIChJbnNwZWN0
b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAgICAgICBkb21B
Z2VudC0+c2V0QXR0cmlidXRlKGNhbGxJZCwgZWxlbWVudElkLCBuYW1lLCB2YWx1ZSk7Ci19Ci0K
LXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6cmVtb3ZlQXR0cmlidXRlKGxvbmcgY2FsbElkLCBsb25n
IGVsZW1lbnRJZCwgY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIGlmIChJbnNwZWN0b3JET01B
Z2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAgICAgICBkb21BZ2VudC0+
cmVtb3ZlQXR0cmlidXRlKGNhbGxJZCwgZWxlbWVudElkLCBuYW1lKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JCYWNrZW5kOjpzZXRUZXh0Tm9kZVZhbHVlKGxvbmcgY2FsbElkLCBsb25nIG5vZGVJZCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFn
ZW50ID0gaW5zcGVjdG9yRE9NQWdlbnQoKSkKLSAgICAgICAgZG9tQWdlbnQtPnNldFRleHROb2Rl
VmFsdWUoY2FsbElkLCBub2RlSWQsIHZhbHVlKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5k
OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUobG9uZyBjYWxsSWQsIGxvbmcgbm9kZUlkKQotewot
ICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgp
KQotICAgICAgICBkb21BZ2VudC0+Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKGNhbGxJZCwgbm9k
ZUlkKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpjb3B5Tm9kZShsb25nIG5vZGVJZCkK
LXsKLSAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yRE9NQWdl
bnQoKSkKLSAgICAgICAgZG9tQWdlbnQtPmNvcHlOb2RlKG5vZGVJZCk7Ci19Ci0KLXZvaWQgSW5z
cGVjdG9yQmFja2VuZDo6cmVtb3ZlTm9kZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpCi17Ci0g
ICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3BlY3RvckRPTUFnZW50KCkp
Ci0gICAgICAgIGRvbUFnZW50LT5yZW1vdmVOb2RlKGNhbGxJZCwgbm9kZUlkKTsKLX0KLQotdm9p
ZCBJbnNwZWN0b3JCYWNrZW5kOjpjaGFuZ2VUYWdOYW1lKGxvbmcgY2FsbElkLCBsb25nIG5vZGVJ
ZCwgY29uc3QgU3RyaW5nJiB0YWdOYW1lKQotewotICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCog
ZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAgICAgICBkb21BZ2VudC0+Y2hhbmdl
VGFnTmFtZShjYWxsSWQsIG5vZGVJZCwgdGFnTmFtZSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFj
a2VuZDo6Z2V0T3V0ZXJIVE1MKGxvbmcgY2FsbElkLCBsb25nIG5vZGVJZCkKLXsKLSAgICBpZiAo
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yRE9NQWdlbnQoKSkKLSAgICAg
ICAgZG9tQWdlbnQtPmdldE91dGVySFRNTChjYWxsSWQsIG5vZGVJZCk7Ci19Ci0KLXZvaWQgSW5z
cGVjdG9yQmFja2VuZDo6c2V0T3V0ZXJIVE1MKGxvbmcgY2FsbElkLCBsb25nIG5vZGVJZCwgY29u
c3QgU3RyaW5nJiBvdXRlckhUTUwpCi17Ci0gICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21B
Z2VudCA9IGluc3BlY3RvckRPTUFnZW50KCkpCi0gICAgICAgIGRvbUFnZW50LT5zZXRPdXRlckhU
TUwoY2FsbElkLCBub2RlSWQsIG91dGVySFRNTCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2Vu
ZDo6YWRkSW5zcGVjdGVkTm9kZShsb25nIG5vZGVJZCkKLXsKLSAgICBpZiAoSW5zcGVjdG9yRE9N
QWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yRE9NQWdlbnQoKSkKLSAgICAgICAgZG9tQWdlbnQt
PmFkZEluc3BlY3RlZE5vZGUobm9kZUlkKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpw
ZXJmb3JtU2VhcmNoKGNvbnN0IFN0cmluZyYgcXVlcnksIGJvb2wgcnVuU3luY2hyb25vdXNseSkK
LXsKLSAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yRE9NQWdl
bnQoKSkKLSAgICAgICAgZG9tQWdlbnQtPnBlcmZvcm1TZWFyY2gocXVlcnksIHJ1blN5bmNocm9u
b3VzbHkpOwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OnNlYXJjaENhbmNlbGVkKCkKLXsK
LSAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yRE9NQWdlbnQo
KSkKLSAgICAgICAgZG9tQWdlbnQtPnNlYXJjaENhbmNlbGVkKCk7Ci19Ci0KLXZvaWQgSW5zcGVj
dG9yQmFja2VuZDo6cHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGxvbmcgY2FsbElkLCBjb25zdCBT
dHJpbmcmIHBhdGgpCi17Ci0gICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGlu
c3BlY3RvckRPTUFnZW50KCkpCi0gICAgICAgIGRvbUFnZW50LT5wdXNoTm9kZUJ5UGF0aFRvRnJv
bnRlbmQoY2FsbElkLCBwYXRoKTsKLX0KLQogdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpjbGVhckNv
bnNvbGVNZXNzYWdlcyhsb25nIGNhbGxJZCkKIHsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9s
bGVyKSB7Ci0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+Y2xlYXJDb25zb2xlTWVzc2Fn
ZXMoKTsKLSAgICAgICAgaWYgKFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCA9IHJl
bW90ZUZyb250ZW5kKCkpCi0gICAgICAgICAgICBmcm9udGVuZC0+ZGlkQ2xlYXJDb25zb2xlTWVz
c2FnZXMoY2FsbElkKTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6Z2V0U3R5
bGVzKGxvbmcgY2FsbElkLCBsb25nIG5vZGVJZCwgYm9vbCBhdXRob3JPbmx5KQotewotICAgIGlm
IChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAg
ICAgICBkb21BZ2VudC0+Z2V0U3R5bGVzKGNhbGxJZCwgbm9kZUlkLCBhdXRob3JPbmx5KTsKLX0K
LQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpnZXRBbGxTdHlsZXMobG9uZyBjYWxsSWQpCi17Ci0g
ICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3BlY3RvckRPTUFnZW50KCkp
Ci0gICAgICAgIGRvbUFnZW50LT5nZXRBbGxTdHlsZXMoY2FsbElkKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JCYWNrZW5kOjpnZXRJbmxpbmVTdHlsZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpCi17
Ci0gICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3BlY3RvckRPTUFnZW50
KCkpCi0gICAgICAgIGRvbUFnZW50LT5nZXRJbmxpbmVTdHlsZShjYWxsSWQsIG5vZGVJZCk7Ci19
Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6Z2V0Q29tcHV0ZWRTdHlsZShsb25nIGNhbGxJZCwg
bG9uZyBub2RlSWQpCi17Ci0gICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGlu
c3BlY3RvckRPTUFnZW50KCkpCi0gICAgICAgIGRvbUFnZW50LT5nZXRDb21wdXRlZFN0eWxlKGNh
bGxJZCwgbm9kZUlkKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpnZXRTdHlsZVNoZWV0
KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZXRJZCkKLXsKLSAgICBpZiAoSW5zcGVjdG9yRE9N
QWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yRE9NQWdlbnQoKSkKLSAgICAgICAgZG9tQWdlbnQt
PmdldFN0eWxlU2hlZXQoY2FsbElkLCBzdHlsZVNoZWV0SWQpOwotfQotCi12b2lkIEluc3BlY3Rv
ckJhY2tlbmQ6OmdldFJ1bGVSYW5nZXMobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVTaGVldElkKQot
ewotICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2Vu
dCgpKQotICAgICAgICBkb21BZ2VudC0+Z2V0UnVsZVJhbmdlcyhjYWxsSWQsIHN0eWxlU2hlZXRJ
ZCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6YXBwbHlTdHlsZVRleHQobG9uZyBjYWxs
SWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYg
cHJvcGVydHlOYW1lKQotewotICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBp
bnNwZWN0b3JET01BZ2VudCgpKQotICAgICAgICBkb21BZ2VudC0+YXBwbHlTdHlsZVRleHQoY2Fs
bElkLCBzdHlsZUlkLCBzdHlsZVRleHQsIHByb3BlcnR5TmFtZSk7Ci19Ci0KLXZvaWQgSW5zcGVj
dG9yQmFja2VuZDo6c2V0U3R5bGVUZXh0KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0
IFN0cmluZyYgY3NzVGV4dCkKLXsKLSAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50
ID0gaW5zcGVjdG9yRE9NQWdlbnQoKSkKLSAgICAgICAgZG9tQWdlbnQtPnNldFN0eWxlVGV4dChj
YWxsSWQsIHN0eWxlSWQsIGNzc1RleHQpOwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OnNl
dFN0eWxlUHJvcGVydHkobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCog
ZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAgICAgICBkb21BZ2VudC0+c2V0U3R5
bGVQcm9wZXJ0eShjYWxsSWQsIHN0eWxlSWQsIG5hbWUsIHZhbHVlKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JCYWNrZW5kOjp0b2dnbGVTdHlsZUVuYWJsZWQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJ
ZCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGJvb2wgZGlzYWJsZWQpCi17Ci0gICAgaWYg
KEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3BlY3RvckRPTUFnZW50KCkpCi0gICAg
ICAgIGRvbUFnZW50LT50b2dnbGVTdHlsZUVuYWJsZWQoY2FsbElkLCBzdHlsZUlkLCBwcm9wZXJ0
eU5hbWUsIGRpc2FibGVkKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpzZXRSdWxlU2Vs
ZWN0b3IobG9uZyBjYWxsSWQsIGxvbmcgcnVsZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBs
b25nIHNlbGVjdGVkTm9kZUlkKQotewotICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdl
bnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAgICAgICBkb21BZ2VudC0+c2V0UnVsZVNlbGVj
dG9yKGNhbGxJZCwgcnVsZUlkLCBzZWxlY3Rvciwgc2VsZWN0ZWROb2RlSWQpOwotfQotCi12b2lk
IEluc3BlY3RvckJhY2tlbmQ6OmFkZFJ1bGUobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc2Vs
ZWN0b3IsIGxvbmcgc2VsZWN0ZWROb2RlSWQpCi17Ci0gICAgaWYgKEluc3BlY3RvckRPTUFnZW50
KiBkb21BZ2VudCA9IGluc3BlY3RvckRPTUFnZW50KCkpCi0gICAgICAgIGRvbUFnZW50LT5hZGRS
dWxlKGNhbGxJZCwgc2VsZWN0b3IsIHNlbGVjdGVkTm9kZUlkKTsKLX0KLQotdm9pZCBJbnNwZWN0
b3JCYWNrZW5kOjpoaWdobGlnaHRET01Ob2RlKGxvbmcgbm9kZUlkKQotewotICAgIGlmIChtX2lu
c3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aGlnaGxp
Z2h0RE9NTm9kZShub2RlSWQpOwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OmhpZGVET01O
b2RlSGlnaGxpZ2h0KCkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAg
ICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7Ci19Ci0KLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotdm9pZCBJbnNwZWN0b3JCYWNrZW5k
OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCkKLXsKLSAgICBpZiAoSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50KiBhZ2VudCA9IGluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudCgpKQotICAgICAgICBhZ2VudC0+Z2V0QXBwbGljYXRpb25DYWNoZXMoY2FsbElkKTsKLX0K
LSNlbmRpZgotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OmdldENvb2tpZXMobG9uZyBjYWxsSWQp
Ci17Ci0gICAgaWYgKCFtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLSAg
ICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmdldENvb2tpZXMoY2FsbElkKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JCYWNrZW5kOjpkZWxldGVDb29raWUoY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBj
b25zdCBTdHJpbmcmIGRvbWFpbikKLXsKLSAgICBpZiAoIW1faW5zcGVjdG9yQ29udHJvbGxlcikK
LSAgICAgICAgcmV0dXJuOwotICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGVsZXRlQ29va2ll
KGNvb2tpZU5hbWUsIGRvbWFpbik7CisgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5jbGVhckNv
bnNvbGVNZXNzYWdlcygpOworICAgIGlmIChSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQgPSByZW1vdGVGcm9udGVuZCgpKQorICAgICAgICBmcm9udGVuZC0+ZGlkQ2xlYXJDb25zb2xl
TWVzc2FnZXMoY2FsbElkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpyZWxlYXNlV3Jh
cHBlck9iamVjdEdyb3VwKGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBvYmpl
Y3RHcm91cCkKIHsKLSAgICBpZiAoIW1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgcmV0
dXJuOwotICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPnJl
bGVhc2VXcmFwcGVyT2JqZWN0R3JvdXAoaW5qZWN0ZWRTY3JpcHRJZCwgb2JqZWN0R3JvdXApOwot
fQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OmRpZEV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQo
bG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYganNvblJlc3VsdCkKLXsKICAgICBpZiAobV9pbnNw
ZWN0b3JDb250cm9sbGVyKQotICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmRpZEV2YWx1
YXRlRm9yVGVzdEluRnJvbnRlbmQoY2FsbElkLCBqc29uUmVzdWx0KTsKKyAgICAgICAgbV9pbnNw
ZWN0b3JDb250cm9sbGVyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+cmVsZWFzZVdyYXBwZXJPYmpl
Y3RHcm91cChpbmplY3RlZFNjcmlwdElkLCBvYmplY3RHcm91cCk7CiB9CiAKICNpZiBFTkFCTEUo
REFUQUJBU0UpCkBAIC01NTgsNjggKzEzMCwxNiBAQCB2b2lkIEluc3BlY3RvckJhY2tlbmQ6Omdl
dERhdGFiYXNlVGFibGVOYW1lcyhsb25nIGNhbGxJZCwgbG9uZyBkYXRhYmFzZUlkKQogfQogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6Omdl
dERPTVN0b3JhZ2VFbnRyaWVzKGxvbmcgY2FsbElkLCBsb25nIHN0b3JhZ2VJZCkKLXsKLSAgICBp
ZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXIt
PmdldERPTVN0b3JhZ2VFbnRyaWVzKGNhbGxJZCwgc3RvcmFnZUlkKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JCYWNrZW5kOjpzZXRET01TdG9yYWdlSXRlbShsb25nIGNhbGxJZCwgbG9uZyBzdG9yYWdl
SWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIGlmICht
X2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+c2V0
RE9NU3RvcmFnZUl0ZW0oY2FsbElkLCBzdG9yYWdlSWQsIGtleSwgdmFsdWUpOwotfQotCi12b2lk
IEluc3BlY3RvckJhY2tlbmQ6OnJlbW92ZURPTVN0b3JhZ2VJdGVtKGxvbmcgY2FsbElkLCBsb25n
IHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXkpCi17Ci0gICAgaWYgKG1faW5zcGVjdG9yQ29u
dHJvbGxlcikKLSAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5yZW1vdmVET01TdG9yYWdl
SXRlbShjYWxsSWQsIHN0b3JhZ2VJZCwga2V5KTsKLX0KLSNlbmRpZgotCi1JbnNwZWN0b3JET01B
Z2VudCogSW5zcGVjdG9yQmFja2VuZDo6aW5zcGVjdG9yRE9NQWdlbnQoKQotewotICAgIGlmICgh
bV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbV9p
bnNwZWN0b3JDb250cm9sbGVyLT5kb21BZ2VudCgpOwotfQotCi0jaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKLUluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCogSW5zcGVj
dG9yQmFja2VuZDo6aW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkKLXsKLSAgICBpZiAo
IW1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1f
aW5zcGVjdG9yQ29udHJvbGxlci0+YXBwbGljYXRpb25DYWNoZUFnZW50KCk7Ci19Ci0jZW5kaWYK
LQogSW5zcGVjdG9yRnJvbnRlbmQqIEluc3BlY3RvckJhY2tlbmQ6Omluc3BlY3RvckZyb250ZW5k
KCkKIHsKLSAgICBpZiAoIW1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuIDA7
CiAgICAgcmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci0+bV9mcm9udGVuZC5nZXQoKTsKIH0K
IAogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQqIEluc3BlY3RvckJhY2tlbmQ6OnJlbW90ZUZyb250
ZW5kKCkKIHsKLSAgICBpZiAoIW1faW5zcGVjdG9yQ29udHJvbGxlcikKLSAgICAgICAgcmV0dXJu
IDA7CiAgICAgcmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci0+bV9yZW1vdGVGcm9udGVuZC5n
ZXQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjphZGRTY3JpcHRUb0V2YWx1YXRlT25M
b2FkKGNvbnN0IFN0cmluZyYgc291cmNlKQotewotICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xs
ZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+YWRkU2NyaXB0VG9FdmFsdWF0ZU9u
TG9hZChzb3VyY2UpOwotfQotCi12b2lkIEluc3BlY3RvckJhY2tlbmQ6OnJlbW92ZUFsbFNjcmlw
dHNUb0V2YWx1YXRlT25Mb2FkKCkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQot
ICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRl
T25Mb2FkKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKaW5kZXggMTZkNTNj
MC4uMWFiZTE1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaApAQCAtMzcsMTQg
KzM3LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2FjaGVkUmVzb3VyY2U7
Ci1jbGFzcyBEYXRhYmFzZTsKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDsK
IGNsYXNzIEluc3BlY3RvckRPTUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7Ci1jbGFz
cyBOb2RlOwogY2xhc3MgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQ7Ci1jbGFzcyBTdG9yYWdlOwog
CiBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kIDogcHVibGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yQmFj
a2VuZD4KIHsKQEAgLTU3LDEzMSArNTMsMzEgQEAgcHVibGljOgogICAgIH5JbnNwZWN0b3JCYWNr
ZW5kKCk7CiAKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKCkg
eyByZXR1cm4gbV9pbnNwZWN0b3JDb250cm9sbGVyOyB9CisgICAgSW5zcGVjdG9yRE9NQWdlbnQq
IGluc3BlY3RvckRPTUFnZW50KCkgeyByZXR1cm4gbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kb21B
Z2VudCgpOyB9CisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICBJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQqIGluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dCgpIHsgcmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci0+YXBwbGljYXRpb25DYWNoZUFnZW50
KCk7IH0KKyNlbmRpZgogICAgIHZvaWQgZGlzY29ubmVjdENvbnRyb2xsZXIoKSB7IG1faW5zcGVj
dG9yQ29udHJvbGxlciA9IDA7IH0KIAotICAgIHZvaWQgc2F2ZUFwcGxpY2F0aW9uU2V0dGluZ3Mo
Y29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzYXZlU2Vzc2lvblNldHRpbmdzKGNvbnN0IFN0cmlu
ZyYpOwotCi0gICAgdm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChjb25zdCBTdHJpbmcmIHBhbmVs
TmFtZSk7Ci0KLSAgICB2b2lkIGVuYWJsZVNlYXJjaGluZ0Zvck5vZGUoKTsKLSAgICB2b2lkIGRp
c2FibGVTZWFyY2hpbmdGb3JOb2RlKCk7Ci0KLSAgICB2b2lkIGVuYWJsZU1vbml0b3JpbmdYSFIo
KTsKLSAgICB2b2lkIGRpc2FibGVNb25pdG9yaW5nWEhSKCk7Ci0KLSAgICB2b2lkIGVuYWJsZVJl
c291cmNlVHJhY2tpbmcoYm9vbCBhbHdheXMpOwotICAgIHZvaWQgZGlzYWJsZVJlc291cmNlVHJh
Y2tpbmcoYm9vbCBhbHdheXMpOwotICAgIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KGxvbmcgY2Fs
bElkLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVsb2FkUGFnZSgpOwot
Ci0gICAgdm9pZCBzdGFydFRpbWVsaW5lUHJvZmlsZXIoKTsKLSAgICB2b2lkIHN0b3BUaW1lbGlu
ZVByb2ZpbGVyKCk7Ci0KICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICB2b2lk
IGVuYWJsZURlYnVnZ2VyKGJvb2wgYWx3YXlzKTsKLSAgICB2b2lkIGRpc2FibGVEZWJ1Z2dlcihi
b29sIGFsd2F5cyk7Ci0KLSAgICB2b2lkIHNldEJyZWFrcG9pbnQobG9uZyBjYWxsSWQsIGNvbnN0
IFN0cmluZyYgc291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGJvb2wgZW5hYmxlZCwgY29u
c3QgU3RyaW5nJiBjb25kaXRpb24pOwotICAgIHZvaWQgcmVtb3ZlQnJlYWtwb2ludChjb25zdCBT
dHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKLSAgICB2b2lkIGFjdGl2YXRl
QnJlYWtwb2ludHMoKTsKLSAgICB2b2lkIGRlYWN0aXZhdGVCcmVha3BvaW50cygpOwotCi0gICAg
dm9pZCBwYXVzZSgpOwotICAgIHZvaWQgcmVzdW1lKCk7Ci0KLSAgICB2b2lkIHN0ZXBPdmVyU3Rh
dGVtZW50KCk7Ci0gICAgdm9pZCBzdGVwSW50b1N0YXRlbWVudCgpOwotICAgIHZvaWQgc3RlcE91
dE9mRnVuY3Rpb24oKTsKLQotICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShsb25n
IHBhdXNlU3RhdGUpOwotCi0gICAgdm9pZCBlZGl0U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBj
b25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQpOwotICAgIHZv
aWQgZ2V0U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKTsK
LQotICAgIHZvaWQgZW5hYmxlUHJvZmlsZXIoYm9vbCBhbHdheXMpOwotICAgIHZvaWQgZGlzYWJs
ZVByb2ZpbGVyKGJvb2wgYWx3YXlzKTsKLQotICAgIHZvaWQgc3RhcnRQcm9maWxpbmcoKTsKLSAg
ICB2b2lkIHN0b3BQcm9maWxpbmcoKTsKLQotICAgIHZvaWQgZ2V0UHJvZmlsZUhlYWRlcnMobG9u
ZyBjYWxsSWQpOwotICAgIHZvaWQgZ2V0UHJvZmlsZShsb25nIGNhbGxJZCwgdW5zaWduZWQgdWlk
KTsKLQotICAgIHZvaWQgcmVtb3ZlUHJvZmlsZSh1bnNpZ25lZCB1aWQpOwotICAgIHZvaWQgY2xl
YXJQcm9maWxlcygpOwotCi0gICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KCk7CiAjZW5kaWYKIAog
ICAgIHZvaWQgc2V0SW5qZWN0ZWRTY3JpcHRTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UpOwog
ICAgIHZvaWQgZGlzcGF0Y2hPbkluamVjdGVkU2NyaXB0KGxvbmcgY2FsbElkLCBsb25nIGluamVj
dGVkU2NyaXB0SWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgY29uc3QgU3RyaW5nJiBhcmd1
bWVudHMsIGJvb2wgYXN5bmMpOwotICAgIHZvaWQgYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChj
b25zdCBTdHJpbmcmIHNvdXJjZSk7Ci0gICAgdm9pZCByZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZCgpOwotCi0gICAgdm9pZCBnZXRDaGlsZE5vZGVzKGxvbmcgY2FsbElkLCBsb25nIG5v
ZGVJZCk7Ci0gICAgdm9pZCBzZXRBdHRyaWJ1dGUobG9uZyBjYWxsSWQsIGxvbmcgZWxlbWVudElk
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAgIHZvaWQgcmVt
b3ZlQXR0cmlidXRlKGxvbmcgY2FsbElkLCBsb25nIGVsZW1lbnRJZCwgY29uc3QgU3RyaW5nJiBu
YW1lKTsKLSAgICB2b2lkIHNldFRleHROb2RlVmFsdWUobG9uZyBjYWxsSWQsIGxvbmcgbm9kZUlk
LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAgICB2b2lkIGdldEV2ZW50TGlzdGVuZXJzRm9yTm9k
ZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpOwotICAgIHZvaWQgY29weU5vZGUobG9uZyBub2Rl
SWQpOwotICAgIHZvaWQgcmVtb3ZlTm9kZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpOwotICAg
IHZvaWQgY2hhbmdlVGFnTmFtZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQsIGNvbnN0IFN0cmlu
ZyYgdGFnTmFtZSk7Ci0gICAgdm9pZCBnZXRPdXRlckhUTUwobG9uZyBjYWxsSWQsIGxvbmcgbm9k
ZUlkKTsKLSAgICB2b2lkIHNldE91dGVySFRNTChsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQsIGNv
bnN0IFN0cmluZyYgb3V0ZXJIVE1MKTsKLSAgICB2b2lkIGFkZEluc3BlY3RlZE5vZGUobG9uZyBu
b2RlSWQpOwotICAgIHZvaWQgcGVyZm9ybVNlYXJjaChjb25zdCBTdHJpbmcmIHF1ZXJ5LCBib29s
IHJ1blN5bmNocm9ub3VzbHkpOwotICAgIHZvaWQgc2VhcmNoQ2FuY2VsZWQoKTsKLSAgICB2b2lk
IHB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBwYXRo
KTsKLQogICAgIHZvaWQgY2xlYXJDb25zb2xlTWVzc2FnZXMobG9uZyBjYWxsSWQpOwogCi0gICAg
dm9pZCBnZXRTdHlsZXMobG9uZyBjYWxsSWQsIGxvbmcgbm9kZUlkLCBib29sIGF1dGhPbmx5KTsK
LSAgICB2b2lkIGdldEFsbFN0eWxlcyhsb25nIGNhbGxJZCk7Ci0gICAgdm9pZCBnZXRJbmxpbmVT
dHlsZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpOwotICAgIHZvaWQgZ2V0Q29tcHV0ZWRTdHls
ZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpOwotICAgIHZvaWQgZ2V0U3R5bGVTaGVldChsb25n
IGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpOwotICAgIHZvaWQgZ2V0UnVsZVJhbmdlcyhsb25n
IGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpOwotICAgIHZvaWQgYXBwbHlTdHlsZVRleHQobG9u
ZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0
cmluZyYgcHJvcGVydHlOYW1lKTsKLSAgICB2b2lkIHNldFN0eWxlVGV4dChsb25nIGNhbGxJZCwg
bG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIGNzc1RleHQpOwotICAgIHZvaWQgc2V0U3R5bGVQ
cm9wZXJ0eShsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpOwotICAgIHZvaWQgdG9nZ2xlU3R5bGVFbmFibGVkKGxvbmcgY2Fs
bElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBib29sIGRpc2Fi
bGVkKTsKLSAgICB2b2lkIHNldFJ1bGVTZWxlY3Rvcihsb25nIGNhbGxJZCwgbG9uZyBydWxlSWQs
IGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIGxvbmcgc2VsZWN0ZWROb2RlSWQpOwotICAgIHZvaWQg
YWRkUnVsZShsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgbG9uZyBzZWxlY3Rl
ZE5vZGVJZCk7Ci0KLSAgICB2b2lkIGhpZ2hsaWdodERPTU5vZGUobG9uZyBub2RlSWQpOwotICAg
IHZvaWQgaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKLQotICAgIHZvaWQgZ2V0Q29va2llcyhsb25n
IGNhbGxJZCk7Ci0gICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgU3RyaW5nJiBjb29raWVOYW1l
LCBjb25zdCBTdHJpbmcmIGRvbWFpbik7Ci0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQotICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZXMobG9uZyBjYWxsSWQpOwotI2Vu
ZGlmCi0KICAgICAvLyBHZW5lcmljIGNvZGUgY2FsbGVkIGZyb20gY3VzdG9tIGltcGxlbWVudGF0
aW9ucy4KICAgICB2b2lkIHJlbGVhc2VXcmFwcGVyT2JqZWN0R3JvdXAobG9uZyBpbmplY3RlZFNj
cmlwdElkLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKTsKLSAgICB2b2lkIGRpZEV2YWx1YXRl
Rm9yVGVzdEluRnJvbnRlbmQobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYganNvblJlc3VsdCk7
CiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgdm9pZCBnZXREYXRhYmFzZVRhYmxlTmFtZXMo
bG9uZyBjYWxsSWQsIGxvbmcgZGF0YWJhc2VJZCk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShET01f
U1RPUkFHRSkKLSAgICB2b2lkIGdldERPTVN0b3JhZ2VFbnRyaWVzKGxvbmcgY2FsbElkLCBsb25n
IHN0b3JhZ2VJZCk7Ci0gICAgdm9pZCBzZXRET01TdG9yYWdlSXRlbShsb25nIGNhbGxJZCwgbG9u
ZyBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAg
ICB2b2lkIHJlbW92ZURPTVN0b3JhZ2VJdGVtKGxvbmcgY2FsbElkLCBsb25nIHN0b3JhZ2VJZCwg
Y29uc3QgU3RyaW5nJiBrZXkpOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yQmFj
a2VuZChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKTsKLSAgICBJbnNw
ZWN0b3JET01BZ2VudCogaW5zcGVjdG9yRE9NQWdlbnQoKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQotICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCogaW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCk7Ci0jZW5kaWYKICAgICBJbnNwZWN0b3JGcm9u
dGVuZCogaW5zcGVjdG9yRnJvbnRlbmQoKTsKICAgICBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCog
cmVtb3RlRnJvbnRlbmQoKTsKLSAgICBOb2RlKiBub2RlRm9ySWQobG9uZyBub2RlSWQpOwogCiAg
ICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0b3JDb250cm9sbGVyOwogfTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCAxNzZkZDExLi5jMDQxZjRhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0yOTEsNiArMjkxLDcg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBmcm9udGVuZFNldHRpbmdzU2V0
dGluZ05hbWUoKTsKIAogICAgIGZyaWVuZCBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kOworICAgIGZy
aWVuZCBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsKICAgICBmcmllbmQgY2xhc3Mg
SW5qZWN0ZWRTY3JpcHRIb3N0OwogCiAgICAgdm9pZCBwb3B1bGF0ZVNjcmlwdE9iamVjdHMoKTsK
</data>
<flag name="review"
          id="51621"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>