<?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>78025</bug_id>
          
          <creation_ts>2012-02-07 13:16:36 -0800</creation_ts>
          <short_desc>Web Inspector: CodeGeneratorInspector.py: properly resolve output types of commands</short_desc>
          <delta_ts>2012-02-10 10:40:19 -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>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>0</everconfirmed>
          <reporter name="Peter Rybin">prybin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>prybin</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>551288</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-02-07 13:16:36 -0800</bug_when>
    <thetext>Resolve command output parameter types in full mode, i.e. not in raw mode like it&apos;s until now.
Generate ad hoc types for output parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551300</commentid>
    <comment_count>1</comment_count>
      <attachid>125911</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-02-07 13:26:10 -0800</bug_when>
    <thetext>Created attachment 125911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554095</commentid>
    <comment_count>2</comment_count>
      <attachid>126518</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-02-10 08:55:03 -0800</bug_when>
    <thetext>Created attachment 126518
old InspectorBackendDispatcher.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554098</commentid>
    <comment_count>3</comment_count>
      <attachid>126519</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-02-10 08:58:15 -0800</bug_when>
    <thetext>Created attachment 126519
new InspectorBackendDispatcher.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554191</commentid>
    <comment_count>4</comment_count>
      <attachid>125911</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 10:40:14 -0800</bug_when>
    <thetext>Comment on attachment 125911
Patch

Clearing flags on attachment: 125911

Committed r107412: &lt;http://trac.webkit.org/changeset/107412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554193</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 10:40:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125911</attachid>
            <date>2012-02-07 13:26:10 -0800</date>
            <delta_ts>2012-02-10 10:40:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78025-20120208012608.patch</filename>
            <type>text/plain</type>
            <size>8569</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2ODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGI3YTI1YWZiMmJkOTEw
MTNkNDc1OWVkZWE0NjNiOTAzMGVmNzY2Zi4uZGI4YjRkYWJhMTVhZGM2YTMyZGQ2ZmMyYmE4MzJm
ZGIxMTVmZTJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTA3ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5OiBwcm9wZXJseSByZXNvbHZlIG91dHB1dCB0eXBl
cyBvZiBjb21tYW5kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzgwMjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDb2RlIGZvciBnZW5lcmF0aW5nIGFkLWhvYyB0eXBlcyBpcyBhZGRlZC4gSXQgd2FzIHJl
dXNlZCBmcm9tIGV2ZW50CisgICAgICAgIGdlbmVyYXRvciBwYXJ0LgorCisgICAgICAgICogaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHk6CisgICAgICAgIChHZW5lcmF0b3IucHJv
Y2Vzc19ldmVudCk6CisgICAgICAgIChHZW5lcmF0b3IucHJvY2Vzc19jb21tYW5kKToKKyAgICAg
ICAgKEdlbmVyYXRvci5yZXNvbHZlX3R5cGVfYW5kX2dlbmVyYXRlX2FkX2hvYyk6CisgICAgICAg
IChHZW5lcmF0b3IucmVzb2x2ZV90eXBlX2FuZF9nZW5lcmF0ZV9hZF9ob2MuQWRIb2NUeXBlQ29u
dGV4dCk6CisgICAgICAgIChHZW5lcmF0b3IucmVzb2x2ZV90eXBlX2FuZF9nZW5lcmF0ZV9hZF9o
b2MuQWRIb2NUeXBlQ29udGV4dC5nZXRfdHlwZV9uYW1lX2ZpeCk6CisgICAgICAgIChHZW5lcmF0
b3IucmVzb2x2ZV90eXBlX2FuZF9nZW5lcmF0ZV9hZF9ob2MuQWRIb2NUeXBlQ29udGV4dC5nZXRf
dHlwZV9uYW1lX2ZpeC5OYW1lRml4KToKKyAgICAgICAgKEdlbmVyYXRvci5yZXNvbHZlX3R5cGVf
YW5kX2dlbmVyYXRlX2FkX2hvYy5BZEhvY1R5cGVDb250ZXh0LmdldF90eXBlX25hbWVfZml4Lk5h
bWVGaXgub3V0cHV0X2NvbW1lbnQpOgorICAgICAgICAoR2VuZXJhdG9yLnJlc29sdmVfdHlwZV9h
bmRfZ2VuZXJhdGVfYWRfaG9jLkFkSG9jVHlwZUNvbnRleHQuYWRkX3R5cGUpOgorICAgICAgICAo
R2VuZXJhdG9yLnJlc29sdmVfdHlwZV9hbmRfZ2VuZXJhdGVfYWRfaG9jLkludGVyZmFjZUZvcndh
cmRMaXN0ZW5lcik6CisgICAgICAgIChHZW5lcmF0b3IucmVzb2x2ZV90eXBlX2FuZF9nZW5lcmF0
ZV9hZF9ob2MuSW50ZXJmYWNlRm9yd2FyZExpc3RlbmVyLmFkZF90eXBlX2RhdGEpOgorICAgICAg
ICAoR2VuZXJhdG9yLnJlc29sdmVfdHlwZV9hbmRfZ2VuZXJhdGVfYWRfaG9jLkludGVyZmFjZVJl
c29sdmVDb250ZXh0KToKKyAgICAgICAgKEdlbmVyYXRvci5yZXNvbHZlX3R5cGVfYW5kX2dlbmVy
YXRlX2FkX2hvYy5JbnRlcmZhY2VHZW5lcmF0ZUNvbnRleHQpOgorICAgICAgICAoR2VuZXJhdG9y
KToKKwogMjAxMi0wMi0wNiAgRXVnZW5lIEdpcmFyZCAgPGdpcmFyZEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgSW5kZXhlZERCIGNyZWF0ZU9iamVjdFN0b3JlIHNob3VsZCB0aHJvdyBpZiBvcHRp
b25zIGFyZyBpcyBpbnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Q29kZUdlbmVyYXRvckluc3BlY3Rvci5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2Rl
R2VuZXJhdG9ySW5zcGVjdG9yLnB5CmluZGV4IDIxMDY0MmJhMWU4YThiY2NjY2RhOGQ2Y2FiNTI4
MGVhYTczYTUxNDQuLjMyMTI1M2Q3NDE4ZDlkYTYzZjY0Yjg0NTVlZDAyZDdhYTdmNGNiN2QgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9y
LnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9y
LnB5CkBAIC0yNTE3LDQ2ICsyNTE3LDcgQEAgY2xhc3MgR2VuZXJhdG9yOgogCiAgICAgICAgICAg
ICAgICAgb3B0aW9uYWwgPSBvcHRpb25hbF9tYXNrIGFuZCBqc29uX29wdGlvbmFsCiAKLSAgICAg
ICAgICAgICAgICBhZF9ob2NfdHlwZV9saXN0ID0gW10KLQotICAgICAgICAgICAgICAgIGNsYXNz
IEFkSG9jVHlwZUNvbnRleHQ6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcl9mdWxsX25h
bWVfcHJlZml4ID0gIjxub3QgeWV0IGRlZmluZWQ+IgotCi0gICAgICAgICAgICAgICAgICAgIEBz
dGF0aWNtZXRob2QKLSAgICAgICAgICAgICAgICAgICAgZGVmIGdldF90eXBlX25hbWVfZml4KCk6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcyBOYW1lRml4OgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzX25hbWUgPSBDYXBpdGFsaXplci5sb3dlcl9jYW1lbF9jYXNlX3Rv
X3VwcGVyKHBhcmFtZXRlcl9uYW1lKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQHN0
YXRpY21ldGhvZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZiBvdXRwdXRfY29tbWVu
dCh3cml0ZXIpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXIubmV3bGlu
ZSgiLy8gTmFtZWQgYWZ0ZXIgcGFyYW1ldGVyIG5hbWUgJyVzJyB3aGlsZSBnZW5lcmF0aW5nIGV2
ZW50ICVzLlxuIiAlIChwYXJhbWV0ZXJfbmFtZSwgZXZlbnRfbmFtZSkpCi0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBOYW1lRml4Ci0KLSAgICAgICAgICAgICAgICAgICAgQHN0YXRp
Y21ldGhvZAotICAgICAgICAgICAgICAgICAgICBkZWYgYWRkX3R5cGUoYmluZGluZyk6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBhZF9ob2NfdHlwZV9saXN0LmFwcGVuZChiaW5kaW5nKQotCi0g
ICAgICAgICAgICAgICAgcGFyYW1fdHlwZV9iaW5kaW5nID0gcmVzb2x2ZV9wYXJhbV90eXBlKGpz
b25fcGFyYW1ldGVyLCBkb21haW5fbmFtZSwgQWRIb2NUeXBlQ29udGV4dCkKLQotICAgICAgICAg
ICAgICAgIGNsYXNzIEV2ZW50Rm9yd2FyZExpc3RlbmVyOgotICAgICAgICAgICAgICAgICAgICBA
c3RhdGljbWV0aG9kCi0gICAgICAgICAgICAgICAgICAgIGRlZiBhZGRfdHlwZV9kYXRhKHR5cGVf
ZGF0YSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgICAgICAgICBj
bGFzcyBFdmVudFJlc29sdmVDb250ZXh0OgotICAgICAgICAgICAgICAgICAgICBmb3J3YXJkX2xp
c3RlbmVyID0gRXZlbnRGb3J3YXJkTGlzdGVuZXIKLQotICAgICAgICAgICAgICAgIGZvciB0eXBl
IGluIGFkX2hvY190eXBlX2xpc3Q6Ci0gICAgICAgICAgICAgICAgICAgIHR5cGUucmVzb2x2ZV9p
bm5lcihFdmVudFJlc29sdmVDb250ZXh0KQotCi0gICAgICAgICAgICAgICAgY2xhc3MgRXZlbnRH
ZW5lcmF0ZUNvbnRleHQ6Ci0gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcl93cml0ZXIgPSAi
bm90IHN1cHBvcnRlZCBpbiBFdmVudEdlbmVyYXRlQ29udGV4dCIKLQotICAgICAgICAgICAgICAg
IGZvciB0eXBlIGluIGFkX2hvY190eXBlX2xpc3Q6Ci0gICAgICAgICAgICAgICAgICAgIGdlbmVy
YXRvciA9IHR5cGUuZ2V0X2NvZGVfZ2VuZXJhdG9yKCkKLSAgICAgICAgICAgICAgICAgICAgaWYg
Z2VuZXJhdG9yOgotICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmdlbmVyYXRlX3R5
cGVfYnVpbGRlcihhZF9ob2NfdHlwZV93cml0ZXIsIEV2ZW50R2VuZXJhdGVDb250ZXh0KQorICAg
ICAgICAgICAgICAgIHBhcmFtX3R5cGVfYmluZGluZyA9IEdlbmVyYXRvci5yZXNvbHZlX3R5cGVf
YW5kX2dlbmVyYXRlX2FkX2hvYyhqc29uX3BhcmFtZXRlciwgZXZlbnRfbmFtZSwgZG9tYWluX25h
bWUsIGFkX2hvY190eXBlX3dyaXRlcikKIAogICAgICAgICAgICAgICAgIGFubm90YXRlZF90eXBl
ID0gZ2V0X2Fubm90YXRlZF90eXBlX3RleHQoY190eXBlLmdldF90ZXh0KCksIHBhcmFtX3R5cGVf
YmluZGluZy5nZXRfaW5fY190eXBlX3RleHQoanNvbl9vcHRpb25hbCkpCiAKQEAgLTI1ODksNiAr
MjU1MCwxMCBAQCBjbGFzcyBHZW5lcmF0b3I6CiAgICAgICAgIEdlbmVyYXRvci5tZXRob2RfaGFu
ZGxlcl9saXN0LmFwcGVuZCgiICAgICAgICAgICAgJkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
SW1wbDo6JXNfJXMsIiAlIChkb21haW5fbmFtZSwganNvbl9jb21tYW5kX25hbWUpKQogICAgICAg
ICBHZW5lcmF0b3IuYmFja2VuZF9tZXRob2RfZGVjbGFyYXRpb25fbGlzdC5hcHBlbmQoIiAgICB2
b2lkICVzXyVzKGxvbmcgY2FsbElkLCBJbnNwZWN0b3JPYmplY3QqIHJlcXVlc3RNZXNzYWdlT2Jq
ZWN0KTsiICUgKGRvbWFpbl9uYW1lLCBqc29uX2NvbW1hbmRfbmFtZSkpCiAKKyAgICAgICAgYWRf
aG9jX3R5cGVfb3V0cHV0ID0gW10KKyAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfYWdlbnRfaW50
ZXJmYWNlX2xpc3QuYXBwZW5kKGFkX2hvY190eXBlX291dHB1dCkKKyAgICAgICAgYWRfaG9jX3R5
cGVfd3JpdGVyID0gV3JpdGVyKGFkX2hvY190eXBlX291dHB1dCwgIiAgICAgICAgIikKKwogICAg
ICAgICBHZW5lcmF0b3IuYmFja2VuZF9hZ2VudF9pbnRlcmZhY2VfbGlzdC5hcHBlbmQoIiAgICAg
ICAgdmlydHVhbCB2b2lkICVzKEVycm9yU3RyaW5nKiIgJSBqc29uX2NvbW1hbmRfbmFtZSkKIAog
ICAgICAgICBtZXRob2RfaW5fY29kZSA9ICIiCkBAIC0yNjUyLDcgKzI2MTcsOSBAQCBjbGFzcyBH
ZW5lcmF0b3I6CiAKICAgICAgICAgICAgICAgICBvcHRpb25hbCA9ICJvcHRpb25hbCIgaW4ganNv
bl9yZXR1cm4gYW5kIGpzb25fcmV0dXJuWyJvcHRpb25hbCJdCiAKLSAgICAgICAgICAgICAgICBy
YXdfdHlwZSA9IHJlc29sdmVfcGFyYW1fcmF3X3R5cGUoanNvbl9yZXR1cm4sIGRvbWFpbl9uYW1l
KQorICAgICAgICAgICAgICAgIHJldHVybl90eXBlX2JpbmRpbmcgPSBHZW5lcmF0b3IucmVzb2x2
ZV90eXBlX2FuZF9nZW5lcmF0ZV9hZF9ob2MoanNvbl9yZXR1cm4sIGpzb25fY29tbWFuZF9uYW1l
LCBkb21haW5fbmFtZSwgYWRfaG9jX3R5cGVfd3JpdGVyKQorCisgICAgICAgICAgICAgICAgcmF3
X3R5cGUgPSByZXR1cm5fdHlwZV9iaW5kaW5nLnJlZHVjZV90b19yYXdfdHlwZSgpCiAgICAgICAg
ICAgICAgICAgc2V0dGVyX3R5cGUgPSByYXdfdHlwZS5nZXRfc2V0dGVyX25hbWUoKQogICAgICAg
ICAgICAgICAgIGluaXRpYWxpemVyID0gcmF3X3R5cGUuZ2V0X2NfaW5pdGlhbGl6ZXIoKQogICAg
ICAgICAgICAgICAgIHZhcl90eXBlID0gcmF3X3R5cGUuZ2V0X2NfcGFyYW1fdHlwZShQYXJhbVR5
cGUuT1VUUFVULCBOb25lKQpAQCAtMjY2OSw3ICsyNjM2LDExIEBAIGNsYXNzIEdlbmVyYXRvcjoK
IAogICAgICAgICAgICAgICAgIG1ldGhvZF9vdXRfY29kZSArPSBjb2RlCiAgICAgICAgICAgICAg
ICAgYWdlbnRfY2FsbF9wYXJhbV9saXN0LmFwcGVuZChwYXJhbSkKLSAgICAgICAgICAgICAgICBH
ZW5lcmF0b3IuYmFja2VuZF9hZ2VudF9pbnRlcmZhY2VfbGlzdC5hcHBlbmQoIiwgJXMlcyBvdXRf
JXMiICUgKHZhcl90eXBlLmdldF90ZXh0KCksIHJhd190eXBlLmdldF9vdXRwdXRfcGFzc19tb2Rl
bCgpLmdldF9wYXJhbWV0ZXJfdHlwZV9zdWZmaXgoKSwganNvbl9yZXR1cm5fbmFtZSkpCisKKyAg
ICAgICAgICAgICAgICBhbm5vdGF0ZWRfdHlwZSA9IGdldF9hbm5vdGF0ZWRfdHlwZV90ZXh0KHZh
cl90eXBlLmdldF90ZXh0KCkgKyByYXdfdHlwZS5nZXRfb3V0cHV0X3Bhc3NfbW9kZWwoKS5nZXRf
cGFyYW1ldGVyX3R5cGVfc3VmZml4KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdHlwZV9iaW5kaW5nLmdldF9pbl9jX3R5
cGVfdGV4dChvcHRpb25hbCkpCisKKyAgICAgICAgICAgICAgICBHZW5lcmF0b3IuYmFja2VuZF9h
Z2VudF9pbnRlcmZhY2VfbGlzdC5hcHBlbmQoIiwgJXMgb3V0XyVzIiAlIChhbm5vdGF0ZWRfdHlw
ZSwganNvbl9yZXR1cm5fbmFtZSkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VfY29va19saXN0
LmFwcGVuZChjb29rKQogCiAgICAgICAgICAgICAgICAgYmFja2VuZF9qc19yZXBseV9wYXJhbV9s
aXN0LmFwcGVuZCgiXCIlc1wiIiAlIGpzb25fcmV0dXJuX25hbWUpCkBAIC0yNjkyLDYgKzI2NjMs
NTIgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAgICBHZW5lcmF0b3IuYmFja2VuZF9hZ2VudF9p
bnRlcmZhY2VfbGlzdC5hcHBlbmQoIikgPSAwO1xuIikKIAogICAgIEBzdGF0aWNtZXRob2QKKyAg
ICBkZWYgcmVzb2x2ZV90eXBlX2FuZF9nZW5lcmF0ZV9hZF9ob2MoanNvbl9wYXJhbSwgbWV0aG9k
X25hbWUsIGRvbWFpbl9uYW1lLCBhZF9ob2NfdHlwZV93cml0ZXIpOgorICAgICAgICBwYXJhbV9u
YW1lID0ganNvbl9wYXJhbVsibmFtZSJdCisgICAgICAgIGFkX2hvY190eXBlX2xpc3QgPSBbXQor
CisgICAgICAgIGNsYXNzIEFkSG9jVHlwZUNvbnRleHQ6CisgICAgICAgICAgICBjb250YWluZXJf
ZnVsbF9uYW1lX3ByZWZpeCA9ICI8bm90IHlldCBkZWZpbmVkPiIKKworICAgICAgICAgICAgQHN0
YXRpY21ldGhvZAorICAgICAgICAgICAgZGVmIGdldF90eXBlX25hbWVfZml4KCk6CisgICAgICAg
ICAgICAgICAgY2xhc3MgTmFtZUZpeDoKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NfbmFtZSA9
IENhcGl0YWxpemVyLmxvd2VyX2NhbWVsX2Nhc2VfdG9fdXBwZXIocGFyYW1fbmFtZSkKKworICAg
ICAgICAgICAgICAgICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgICAgICAgICAgICAgIGRlZiBv
dXRwdXRfY29tbWVudCh3cml0ZXIpOgorICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLm5l
d2xpbmUoIi8vIE5hbWVkIGFmdGVyIHBhcmFtZXRlciAnJXMnIHdoaWxlIGdlbmVyYXRpbmcgY29t
bWFuZC9ldmVudCAlcy5cbiIgJSAocGFyYW1fbmFtZSwgbWV0aG9kX25hbWUpKQorCisgICAgICAg
ICAgICAgICAgcmV0dXJuIE5hbWVGaXgKKworICAgICAgICAgICAgQHN0YXRpY21ldGhvZAorICAg
ICAgICAgICAgZGVmIGFkZF90eXBlKGJpbmRpbmcpOgorICAgICAgICAgICAgICAgIGFkX2hvY190
eXBlX2xpc3QuYXBwZW5kKGJpbmRpbmcpCisKKyAgICAgICAgdHlwZV9iaW5kaW5nID0gcmVzb2x2
ZV9wYXJhbV90eXBlKGpzb25fcGFyYW0sIGRvbWFpbl9uYW1lLCBBZEhvY1R5cGVDb250ZXh0KQor
CisgICAgICAgIGNsYXNzIEludGVyZmFjZUZvcndhcmRMaXN0ZW5lcjoKKyAgICAgICAgICAgIEBz
dGF0aWNtZXRob2QKKyAgICAgICAgICAgIGRlZiBhZGRfdHlwZV9kYXRhKHR5cGVfZGF0YSk6Cisg
ICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGNsYXNzIEludGVyZmFjZVJlc29sdmVDb250
ZXh0OgorICAgICAgICAgICAgZm9yd2FyZF9saXN0ZW5lciA9IEludGVyZmFjZUZvcndhcmRMaXN0
ZW5lcgorCisgICAgICAgIGZvciB0eXBlIGluIGFkX2hvY190eXBlX2xpc3Q6CisgICAgICAgICAg
ICB0eXBlLnJlc29sdmVfaW5uZXIoSW50ZXJmYWNlUmVzb2x2ZUNvbnRleHQpCisKKyAgICAgICAg
Y2xhc3MgSW50ZXJmYWNlR2VuZXJhdGVDb250ZXh0OgorICAgICAgICAgICAgdmFsaWRhdG9yX3dy
aXRlciA9ICJub3Qgc3VwcG9ydGVkIGluIEludGVyZmFjZUdlbmVyYXRlQ29udGV4dCIKKworICAg
ICAgICBmb3IgdHlwZSBpbiBhZF9ob2NfdHlwZV9saXN0OgorICAgICAgICAgICAgZ2VuZXJhdG9y
ID0gdHlwZS5nZXRfY29kZV9nZW5lcmF0b3IoKQorICAgICAgICAgICAgaWYgZ2VuZXJhdG9yOgor
ICAgICAgICAgICAgICAgIGdlbmVyYXRvci5nZW5lcmF0ZV90eXBlX2J1aWxkZXIoYWRfaG9jX3R5
cGVfd3JpdGVyLCBJbnRlcmZhY2VHZW5lcmF0ZUNvbnRleHQpCisKKyAgICAgICAgcmV0dXJuIHR5
cGVfYmluZGluZworCisgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBwcm9jZXNzX3R5cGVzKHR5
cGVfbWFwKToKICAgICAgICAgb3V0cHV0ID0gR2VuZXJhdG9yLnR5cGVfYnVpbGRlcl9mcmFnbWVu
dHMKIApAQCAtMjc4NSw3ICsyODAyLDcgQEAgYmFja2VuZF9qc19maWxlID0gb3BlbihvdXRwdXRf
Y3BwX2Rpcm5hbWUgKyAiL0luc3BlY3RvckJhY2tlbmRTdHViLmpzIiwgInciKQogCiBiYWNrZW5k
X2hfZmlsZS53cml0ZShUZW1wbGF0ZXMuYmFja2VuZF9oLnN1YnN0aXR1dGUoTm9uZSwKICAgICB2
aXJ0dWFsU2V0dGVycz1qb2luKEdlbmVyYXRvci5iYWNrZW5kX3ZpcnR1YWxfc2V0dGVyc19saXN0
LCAiXG4iKSwKLSAgICBhZ2VudEludGVyZmFjZXM9am9pbihHZW5lcmF0b3IuYmFja2VuZF9hZ2Vu
dF9pbnRlcmZhY2VfbGlzdCwgIiIpLAorICAgIGFnZW50SW50ZXJmYWNlcz1qb2luKGZsYXR0ZW5f
bGlzdChHZW5lcmF0b3IuYmFja2VuZF9hZ2VudF9pbnRlcmZhY2VfbGlzdCksICIiKSwKICAgICBt
ZXRob2ROYW1lc0VudW1Db250ZW50PWpvaW4oR2VuZXJhdG9yLm1ldGhvZF9uYW1lX2VudW1fbGlz
dCwgIlxuIikpKQogCiBiYWNrZW5kX2NwcF9maWxlLndyaXRlKFRlbXBsYXRlcy5iYWNrZW5kX2Nw
cC5zdWJzdGl0dXRlKE5vbmUsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>126518</attachid>
            <date>2012-02-10 08:55:03 -0800</date>
            <delta_ts>2012-02-10 08:55:03 -0800</delta_ts>
            <desc>old InspectorBackendDispatcher.h</desc>
            <filename>InspectorBackendDispatcher.h</filename>
            <type>text/plain</type>
            <size>27299</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">Ly8gRmlsZSBpcyBnZW5lcmF0ZWQgYnkgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5l
cmF0b3JJbnNwZWN0b3IucHkKCi8vIENvcHlyaWdodCAoYykgMjAxMSBUaGUgQ2hyb21pdW0gQXV0
aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQovLyBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgojaWZuZGVmIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyX2gKI2Rl
ZmluZSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcl9oCgojaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KI2luY2x1ZGUgIkluc3BlY3RvclR5cGVCdWlsZGVyLmgiCgpuYW1lc3BhY2UgV2Vi
Q29yZSB7CgpjbGFzcyBJbnNwZWN0b3JBZ2VudDsKY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwpjbGFz
cyBJbnNwZWN0b3JBcnJheTsKY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOwoKdHlwZWRl
ZiBTdHJpbmcgRXJyb3JTdHJpbmc7CgpjbGFzcyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjog
cHVibGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IHsKcHVibGljOgog
ICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCk7CiAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcigpIHsgfQoKICAgIGNsYXNzIEluc3Bl
Y3RvckNvbW1hbmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nKikgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JD
b21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiAgICBjbGFzcyBNZW1vcnlDb21tYW5kSGFuZGxl
ciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lkIGdldERPTU5vZGVDb3VudChFcnJv
clN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91dF9kb21Hcm91cHMsIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+JiBvdXRfc3RyaW5ncykgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAg
ICB2aXJ0dWFsIH5NZW1vcnlDb21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiAgICBjbGFzcyBQ
YWdlQ29tbWFuZEhhbmRsZXIgewogICAgcHVibGljOgogICAgICAgIHZpcnR1YWwgdm9pZCBlbmFi
bGUoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JT
dHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxv
YWQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX3NjcmlwdFNvdXJjZSwgU3RyaW5nKiBv
dXRfaWRlbnRpZmllcikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTY3JpcHRUb0V2
YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9pZGVudGlmaWVyKSA9
IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJlbG9hZChFcnJvclN0cmluZyosIGNvbnN0IGJvb2wq
IGluX2lnbm9yZUNhY2hlLCBjb25zdCBTdHJpbmcqIGluX3NjcmlwdFRvRXZhbHVhdGVPbkxvYWQp
ID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGUoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIGluX3VybCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRDb29raWVzKEVycm9y
U3RyaW5nKiwgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgb3V0X2Nvb2tpZXMsIFN0cmluZyogb3V0
X2Nvb2tpZXNTdHJpbmcpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQ29va2llKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9jb29raWVOYW1lLCBjb25zdCBTdHJpbmcmIGlu
X2RvbWFpbikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRSZXNvdXJjZVRyZWUoRXJyb3JT
dHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X2ZyYW1lVHJlZSkgPSAwOwogICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIGluX2ZyYW1lSWQsIGNvbnN0IFN0cmluZyYgaW5fdXJsLCBTdHJpbmcqIG91dF9jb250
ZW50LCBib29sKiBvdXRfYmFzZTY0RW5jb2RlZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBz
ZWFyY2hJblJlc291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9mcmFtZUlkLCBj
b25zdCBTdHJpbmcmIGluX3VybCwgY29uc3QgU3RyaW5nJiBpbl9xdWVyeSwgY29uc3QgYm9vbCog
aW5fY2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogaW5faXNSZWdleCwgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiYgb3V0X3Jlc3VsdCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hJblJl
c291cmNlcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fdGV4dCwgY29uc3QgYm9vbCog
aW5fY2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogaW5faXNSZWdleCwgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiYgb3V0X3Jlc3VsdCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZXREb2N1bWVu
dENvbnRlbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX2ZyYW1lSWQsIGNvbnN0IFN0
cmluZyYgaW5faHRtbCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JlZW5TaXplT3Zl
cnJpZGUoRXJyb3JTdHJpbmcqLCBpbnQgaW5fd2lkdGgsIGludCBpbl9oZWlnaHQpID0gMDsKCiAg
ICBwcm90ZWN0ZWQ6CiAgICAgICAgdmlydHVhbCB+UGFnZUNvbW1hbmRIYW5kbGVyKCkgeyB9CiAg
ICB9OwoKICAgIGNsYXNzIFJ1bnRpbWVDb21tYW5kSGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAg
ICAgdmlydHVhbCB2b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9l
eHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIGluX29iamVjdEdyb3VwLCBjb25zdCBib29sKiBpbl9p
bmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGluX2RvTm90UGF1c2VPbkV4Y2VwdGlv
bnMsIGNvbnN0IFN0cmluZyogaW5fZnJhbWVJZCwgY29uc3QgYm9vbCogaW5fcmV0dXJuQnlWYWx1
ZSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9yZXN1bHQsIGJvb2wqIG91dF93YXNUaHJv
d24pID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIGluX29iamVjdElkLCBjb25zdCBTdHJpbmcmIGluX2Z1bmN0aW9uRGVj
bGFyYXRpb24sIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGluX2FyZ3VtZW50cywgY29u
c3QgYm9vbCogaW5fcmV0dXJuQnlWYWx1ZSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9y
ZXN1bHQsIGJvb2wqIG91dF93YXNUaHJvd24pID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fb2JqZWN0SWQsIGNvbnN0
IGJvb2wqIGluX293blByb3BlcnRpZXMsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91dF9yZXN1
bHQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU9iamVjdChFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgaW5fb2JqZWN0SWQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVs
ZWFzZU9iamVjdEdyb3VwKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9vYmplY3RHcm91
cCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBydW4oRXJyb3JTdHJpbmcqKSA9IDA7CgogICAg
cHJvdGVjdGVkOgogICAgICAgIHZpcnR1YWwgflJ1bnRpbWVDb21tYW5kSGFuZGxlcigpIHsgfQog
ICAgfTsKCiAgICBjbGFzcyBDb25zb2xlQ29tbWFuZEhhbmRsZXIgewogICAgcHVibGljOgogICAg
ICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVh
bCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGNs
ZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNldE1v
bml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBpbl9lbmFibGVkKSA9IDA7CiAg
ICAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgaW5f
bm9kZUlkKSA9IDA7CgogICAgcHJvdGVjdGVkOgogICAgICAgIHZpcnR1YWwgfkNvbnNvbGVDb21t
YW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiAgICBjbGFzcyBOZXR3b3JrQ29tbWFuZEhhbmRsZXIg
ewogICAgcHVibGljOgogICAgICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSA9
IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAg
ICAgdmlydHVhbCB2b2lkIHNldFVzZXJBZ2VudE92ZXJyaWRlKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiBpbl91c2VyQWdlbnQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RXh0cmFI
VFRQSGVhZGVycyhFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBp
bl9oZWFkZXJzKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGdldFJlc3BvbnNlQm9keShFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fcmVxdWVzdElkLCBTdHJpbmcqIG91dF9ib2R5LCBi
b29sKiBvdXRfYmFzZTY0RW5jb2RlZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBjYW5DbGVh
ckJyb3dzZXJDYWNoZShFcnJvclN0cmluZyosIGJvb2wqIG91dF9yZXN1bHQpID0gMDsKICAgICAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJCcm93c2VyQ2FjaGUoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAg
ICAgdmlydHVhbCB2b2lkIGNhbkNsZWFyQnJvd3NlckNvb2tpZXMoRXJyb3JTdHJpbmcqLCBib29s
KiBvdXRfcmVzdWx0KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFyQnJvd3NlckNvb2tp
ZXMoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNldENhY2hlRGlzYWJs
ZWQoRXJyb3JTdHJpbmcqLCBib29sIGluX2NhY2hlRGlzYWJsZWQpID0gMDsKCiAgICBwcm90ZWN0
ZWQ6CiAgICAgICAgdmlydHVhbCB+TmV0d29ya0NvbW1hbmRIYW5kbGVyKCkgeyB9CiAgICB9OwoK
I2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICBjbGFzcyBEYXRhYmFzZUNvbW1hbmRIYW5kbGVy
IHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKikgPSAwOwogICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZVRhYmxlTmFtZXMoRXJyb3JTdHJpbmcqLCBpbnQg
aW5fZGF0YWJhc2VJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgb3V0X3RhYmxlTmFtZXMpID0g
MDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNRTChFcnJvclN0cmluZyosIGludCBpbl9k
YXRhYmFzZUlkLCBjb25zdCBTdHJpbmcmIGluX3F1ZXJ5LCBib29sKiBvdXRfc3VjY2VzcywgaW50
KiBvdXRfdHJhbnNhY3Rpb25JZCkgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0dWFs
IH5EYXRhYmFzZUNvbW1hbmRIYW5kbGVyKCkgeyB9CiAgICB9OwoKI2VuZGlmIC8vIEVOQUJMRShT
UUxfREFUQUJBU0UpCiNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgIGNsYXNzIEluZGV4
ZWREQkNvbW1hbmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGF0YWJhc2VOYW1lc0Zv
ckZyYW1lKEVycm9yU3RyaW5nKiwgaW50IGluX3JlcXVlc3RJZCwgY29uc3QgU3RyaW5nJiBpbl9m
cmFtZUlkKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REYXRhYmFzZShFcnJvclN0
cmluZyosIGludCBpbl9yZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYgaW5fZnJhbWVJZCwgY29uc3Qg
U3RyaW5nJiBpbl9kYXRhYmFzZU5hbWUpID0gMDsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgdmly
dHVhbCB+SW5kZXhlZERCQ29tbWFuZEhhbmRsZXIoKSB7IH0KICAgIH07CgojZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAgICBjbGFzcyBET01TdG9yYWdlQ29tbWFuZEhhbmRsZXIg
ewogICAgcHVibGljOgogICAgICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSA9
IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAg
ICAgdmlydHVhbCB2b2lkIGdldERPTVN0b3JhZ2VFbnRyaWVzKEVycm9yU3RyaW5nKiwgaW50IGlu
X3N0b3JhZ2VJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgb3V0X2VudHJpZXMpID0gMDsKICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBpbnQgaW5f
c3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGluX2tleSwgY29uc3QgU3RyaW5nJiBpbl92YWx1ZSwg
Ym9vbCogb3V0X3N1Y2Nlc3MpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRE9NU3Rv
cmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBpbnQgaW5fc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGlu
X2tleSwgYm9vbCogb3V0X3N1Y2Nlc3MpID0gMDsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgdmly
dHVhbCB+RE9NU3RvcmFnZUNvbW1hbmRIYW5kbGVyKCkgeyB9CiAgICB9OwoKICAgIGNsYXNzIEFw
cGxpY2F0aW9uQ2FjaGVDb21tYW5kSGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVh
bCB2b2lkIGdldEZyYW1lc1dpdGhNYW5pZmVzdHMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+JiBvdXRfZnJhbWVJZHMpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxl
KEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRNYW5pZmVzdEZvckZy
YW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9mcmFtZUlkLCBTdHJpbmcqIG91dF9t
YW5pZmVzdFVSTCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hl
Rm9yRnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX2ZyYW1lSWQsIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+JiBvdXRfYXBwbGljYXRpb25DYWNoZSkgPSAwOwoKICAgIHByb3RlY3Rl
ZDoKICAgICAgICB2aXJ0dWFsIH5BcHBsaWNhdGlvbkNhY2hlQ29tbWFuZEhhbmRsZXIoKSB7IH0K
ICAgIH07CgojaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgY2xhc3MgRmlsZVN5c3RlbUNvbW1h
bmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9y
U3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKikg
PSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtQ29tbWFuZEhh
bmRsZXIoKSB7IH0KICAgIH07CgojZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgY2xh
c3MgRE9NQ29tbWFuZEhhbmRsZXIgewogICAgcHVibGljOgogICAgICAgIHZpcnR1YWwgdm9pZCBn
ZXREb2N1bWVudChFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRfcm9v
dCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hpbGROb2RlcyhFcnJvclN0cmlu
ZyosIGludCBpbl9ub2RlSWQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcXVlcnlTZWxlY3Rv
cihFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIGNvbnN0IFN0cmluZyYgaW5fc2VsZWN0b3Is
IGludCogb3V0X25vZGVJZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBxdWVyeVNlbGVjdG9y
QWxsKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgY29uc3QgU3RyaW5nJiBpbl9zZWxlY3Rv
ciwgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgb3V0X25vZGVJZHMpID0gMDsKICAgICAgICB2aXJ0
dWFsIHZvaWQgc2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlkLCBjb25zdCBT
dHJpbmcmIGluX25hbWUsIGludCogb3V0X25vZGVJZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXROb2RlVmFsdWUoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlkLCBjb25zdCBTdHJpbmcm
IGluX3ZhbHVlKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5vZGUoRXJyb3JTdHJp
bmcqLCBpbnQgaW5fbm9kZUlkKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNldEF0dHJpYnV0
ZVZhbHVlKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgY29uc3QgU3RyaW5nJiBpbl9uYW1l
LCBjb25zdCBTdHJpbmcmIGluX3ZhbHVlKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNldEF0
dHJpYnV0ZXNBc1RleHQoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlkLCBjb25zdCBTdHJpbmcm
IGluX3RleHQsIGNvbnN0IFN0cmluZyogaW5fbmFtZSkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVBdHRyaWJ1dGUoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlkLCBjb25zdCBTdHJp
bmcmIGluX25hbWUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXZlbnRMaXN0ZW5lcnNG
b3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5
PiYgb3V0X2xpc3RlbmVycykgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPdXRlckhUTUwo
RXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlkLCBTdHJpbmcqIG91dF9vdXRlckhUTUwpID0gMDsK
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nKiwgaW50IGluX25v
ZGVJZCwgY29uc3QgU3RyaW5nJiBpbl9vdXRlckhUTUwpID0gMDsKICAgICAgICB2aXJ0dWFsIHZv
aWQgcGVyZm9ybVNlYXJjaChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fcXVlcnksIFN0
cmluZyogb3V0X3NlYXJjaElkLCBpbnQqIG91dF9yZXN1bHRDb3VudCkgPSAwOwogICAgICAgIHZp
cnR1YWwgdm9pZCBnZXRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBp
bl9zZWFyY2hJZCwgaW50IGluX2Zyb21JbmRleCwgaW50IGluX3RvSW5kZXgsIFJlZlB0cjxJbnNw
ZWN0b3JBcnJheT4mIG91dF9ub2RlSWRzKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGRpc2Nh
cmRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9zZWFyY2hJZCkg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Tm9kZShFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgaW5fb2JqZWN0SWQsIGludCogb3V0X25vZGVJZCkgPSAwOwogICAgICAgIHZpcnR1
YWwgdm9pZCBzZXRJbnNwZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcqLCBib29sIGluX2VuYWJs
ZWQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBpbl9oaWdobGlnaHRDb25maWcpID0g
MDsKICAgICAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0UmVjdChFcnJvclN0cmluZyosIGludCBp
bl94LCBpbnQgaW5feSwgaW50IGluX3dpZHRoLCBpbnQgaW5faGVpZ2h0LCBjb25zdCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiogaW5fY29sb3IsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KiBpbl9vdXRsaW5lQ29sb3IpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0Tm9k
ZShFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+JiBpbl9oaWdobGlnaHRDb25maWcpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhp
Z2hsaWdodChFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0
RnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX2ZyYW1lSWQsIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+KiBpbl9jb250ZW50Q29sb3IsIGNvbnN0IFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+KiBpbl9jb250ZW50T3V0bGluZUNvbG9yKSA9IDA7CiAgICAgICAgdmlydHVhbCB2
b2lkIHB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
aW5fcGF0aCwgaW50KiBvdXRfbm9kZUlkKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJlc29s
dmVOb2RlKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgY29uc3QgU3RyaW5nKiBpbl9vYmpl
Y3RHcm91cCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9vYmplY3QpID0gMDsKICAgICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQs
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91dF9hdHRyaWJ1dGVzKSA9IDA7CiAgICAgICAgdmly
dHVhbCB2b2lkIG1vdmVUbyhFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIGludCBpbl90YXJn
ZXROb2RlSWQsIGNvbnN0IGludCogaW5faW5zZXJ0QmVmb3JlTm9kZUlkLCBpbnQqIG91dF9ub2Rl
SWQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VG91Y2hFbXVsYXRpb25FbmFibGVkKEVy
cm9yU3RyaW5nKiwgYm9vbCBpbl9lbmFibGVkKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHVu
ZG8oRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIG1hcmtVbmRvYWJsZVN0
YXRlKEVycm9yU3RyaW5nKikgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0dWFsIH5E
T01Db21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiAgICBjbGFzcyBDU1NDb21tYW5kSGFuZGxl
ciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyop
ID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopID0gMDsKICAg
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcqLCBp
bnQgaW5fbm9kZUlkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBpbl9mb3JjZWRQc2V1
ZG9DbGFzc2VzLCBjb25zdCBib29sKiBpbl9pbmNsdWRlUHNldWRvLCBjb25zdCBib29sKiBpbl9p
bmNsdWRlSW5oZXJpdGVkLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfbWF0Y2hlZENTU1J1
bGVzLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfcHNldWRvRWxlbWVudHMsIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4mIG91dF9pbmhlcml0ZWQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0SW5saW5lU3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRfaW5saW5lU3R5bGUsIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+JiBvdXRfYXR0cmlidXRlc1N0eWxlKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGdldENv
bXB1dGVkU3R5bGVGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgY29uc3QgUmVm
UHRyPEluc3BlY3RvckFycmF5PiogaW5fZm9yY2VkUHNldWRvQ2xhc3NlcywgUmVmUHRyPEluc3Bl
Y3RvckFycmF5PiYgb3V0X2NvbXB1dGVkU3R5bGUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0QWxsU3R5bGVTaGVldHMoRXJyb3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBv
dXRfaGVhZGVycykgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRTdHlsZVNoZWV0KEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9zdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+JiBvdXRfc3R5bGVTaGVldCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRTdHls
ZVNoZWV0VGV4dChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fc3R5bGVTaGVldElkLCBT
dHJpbmcqIG91dF90ZXh0KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlU2hlZXRU
ZXh0KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9zdHlsZVNoZWV0SWQsIGNvbnN0IFN0
cmluZyYgaW5fdGV4dCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eVRleHQo
RXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgaW5fc3R5bGVJZCwg
aW50IGluX3Byb3BlcnR5SW5kZXgsIGNvbnN0IFN0cmluZyYgaW5fdGV4dCwgYm9vbCBpbl9vdmVy
d3JpdGUsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRfc3R5bGUpID0gMDsKICAgICAgICB2
aXJ0dWFsIHZvaWQgdG9nZ2xlUHJvcGVydHkoRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiYgaW5fc3R5bGVJZCwgaW50IGluX3Byb3BlcnR5SW5kZXgsIGJvb2wgaW5f
ZGlzYWJsZSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9zdHlsZSkgPSAwOwogICAgICAg
IHZpcnR1YWwgdm9pZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiYgaW5fcnVsZUlkLCBjb25zdCBTdHJpbmcmIGluX3NlbGVjdG9yLCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X3J1bGUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZv
aWQgYWRkUnVsZShFcnJvclN0cmluZyosIGludCBpbl9jb250ZXh0Tm9kZUlkLCBjb25zdCBTdHJp
bmcmIGluX3NlbGVjdG9yLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X3J1bGUpID0gMDsK
ICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmlu
ZyosIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91dF9jc3NQcm9wZXJ0aWVzKSA9IDA7CiAgICAg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0U2VsZWN0b3JQcm9maWxlcihFcnJvclN0cmluZyopID0gMDsK
ICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcFNlbGVjdG9yUHJvZmlsZXIoRXJyb3JTdHJpbmcqLCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X3Byb2ZpbGUpID0gMDsKCiAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgdmlydHVhbCB+Q1NTQ29tbWFuZEhhbmRsZXIoKSB7IH0KICAgIH07CgogICAgY2xh
c3MgVGltZWxpbmVDb21tYW5kSGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2
b2lkIHN0YXJ0KEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBpbl9tYXhDYWxsU3RhY2tEZXB0aCkg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzdG9wKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAg
IHZpcnR1YWwgdm9pZCBzZXRJbmNsdWRlTWVtb3J5RGV0YWlscyhFcnJvclN0cmluZyosIGJvb2wg
aW5fZW5hYmxlZCkgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0dWFsIH5UaW1lbGlu
ZUNvbW1hbmRIYW5kbGVyKCkgeyB9CiAgICB9OwoKI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQogICAgY2xhc3MgRGVidWdnZXJDb21tYW5kSGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAg
ICAgdmlydHVhbCB2b2lkIGNhdXNlc1JlY29tcGlsYXRpb24oRXJyb3JTdHJpbmcqLCBib29sKiBv
dXRfcmVzdWx0KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHN1cHBvcnRzTmF0aXZlQnJlYWtw
b2ludHMoRXJyb3JTdHJpbmcqLCBib29sKiBvdXRfcmVzdWx0KSA9IDA7CiAgICAgICAgdmlydHVh
bCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZGlz
YWJsZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtwb2lu
dHNBY3RpdmUoRXJyb3JTdHJpbmcqLCBib29sIGluX2FjdGl2ZSkgPSAwOwogICAgICAgIHZpcnR1
YWwgdm9pZCBzZXRCcmVha3BvaW50QnlVcmwoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nKiBpbl91cmwsIGNvbnN0IFN0cmluZyogaW5fdXJsUmVnZXgsIGNvbnN0
IGludCogaW5fY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcqIGluX2NvbmRpdGlvbiwgU3RyaW5n
KiBvdXRfYnJlYWtwb2ludElkLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfbG9jYXRpb25z
KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNldEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBj
b25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgaW5fbG9jYXRpb24sIGNvbnN0IFN0cmluZyog
aW5fY29uZGl0aW9uLCBTdHJpbmcqIG91dF9icmVha3BvaW50SWQsIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+JiBvdXRfYWN0dWFsTG9jYXRpb24pID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlQnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fYnJlYWtwb2ludElk
KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlVG9Mb2NhdGlvbihFcnJvclN0cmlu
ZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBpbl9sb2NhdGlvbikgPSAwOwogICAg
ICAgIHZpcnR1YWwgdm9pZCBzdGVwT3ZlcihFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0
dWFsIHZvaWQgc3RlcEludG8oRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lk
IHN0ZXBPdXQoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHBhdXNlKEVy
cm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoRXJyb3JTdHJpbmcq
KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNlYXJjaEluQ29udGVudChFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgaW5fc2NyaXB0SWQsIGNvbnN0IFN0cmluZyYgaW5fcXVlcnksIGNvbnN0
IGJvb2wqIGluX2Nhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGluX2lzUmVnZXgsIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4mIG91dF9yZXN1bHQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fu
U2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgYm9vbCogb3V0X3Jlc3VsdCkgPSAwOwogICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JpcHRTb3VyY2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIGluX3NjcmlwdElkLCBjb25zdCBTdHJpbmcmIGluX3NjcmlwdFNvdXJjZSwgY29uc3QgYm9v
bCogaW5fcHJldmlldywgUmVmUHRyPEluc3BlY3RvckFycmF5PiYgb3V0X2NhbGxGcmFtZXMsIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRfcmVzdWx0KSA9IDA7CiAgICAgICAgdmlydHVhbCB2
b2lkIGdldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fc2NyaXB0
SWQsIFN0cmluZyogb3V0X3NjcmlwdFNvdXJjZSkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBn
ZXRGdW5jdGlvbkRldGFpbHMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX2Z1bmN0aW9u
SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRfZGV0YWlscykgPSAwOwogICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRQYXVzZU9uRXhjZXB0aW9ucyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmlu
ZyYgaW5fc3RhdGUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFt
ZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmlu
ZyYgaW5fZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBpbl9vYmplY3RHcm91cCwgY29uc3QgYm9v
bCogaW5faW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25zdCBib29sKiBpbl9yZXR1cm5CeVZhbHVl
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X3Jlc3VsdCwgYm9vbCogb3V0X3dhc1Rocm93
bikgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0dWFsIH5EZWJ1Z2dlckNvbW1hbmRI
YW5kbGVyKCkgeyB9CiAgICB9OwoKI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQojaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICBjbGFzcyBET01EZWJ1Z2dlckNv
bW1hbmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RE9NQnJl
YWtwb2ludChFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIGNvbnN0IFN0cmluZyYgaW5fdHlw
ZSkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVET01CcmVha3BvaW50KEVycm9yU3Ry
aW5nKiwgaW50IGluX25vZGVJZCwgY29uc3QgU3RyaW5nJiBpbl90eXBlKSA9IDA7CiAgICAgICAg
dmlydHVhbCB2b2lkIHNldEV2ZW50TGlzdGVuZXJCcmVha3BvaW50KEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBpbl9ldmVudE5hbWUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
RXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX2V2
ZW50TmFtZSkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnN0cnVtZW50YXRpb25CcmVh
a3BvaW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9ldmVudE5hbWUpID0gMDsKICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW5zdHJ1bWVudGF0aW9uQnJlYWtwb2ludChFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYgaW5fZXZlbnROYW1lKSA9IDA7CiAgICAgICAgdmlydHVhbCB2
b2lkIHNldFhIUkJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX3VybCkg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVYSFJCcmVha3BvaW50KEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBpbl91cmwpID0gMDsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgdmly
dHVhbCB+RE9NRGVidWdnZXJDb21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiNlbmRpZiAvLyBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQogICAgY2xhc3MgUHJvZmlsZXJDb21tYW5kSGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAgICAg
dmlydHVhbCB2b2lkIGNhdXNlc1JlY29tcGlsYXRpb24oRXJyb3JTdHJpbmcqLCBib29sKiBvdXRf
cmVzdWx0KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGlzU2FtcGxpbmcoRXJyb3JTdHJpbmcq
LCBib29sKiBvdXRfcmVzdWx0KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGhhc0hlYXBQcm9m
aWxlcihFcnJvclN0cmluZyosIGJvb2wqIG91dF9yZXN1bHQpID0gMDsKICAgICAgICB2aXJ0dWFs
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBkaXNh
YmxlKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydChFcnJvclN0
cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcChFcnJvclN0cmluZyopID0gMDsK
ICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZmlsZUhlYWRlcnMoRXJyb3JTdHJpbmcqLCBSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfaGVhZGVycykgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRQcm9maWxlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl90eXBlLCBpbnQgaW5f
dWlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X3Byb2ZpbGUpID0gMDsKICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlUHJvZmlsZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5f
dHlwZSwgaW50IGluX3VpZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhclByb2ZpbGVz
KEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90
KEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0R2FyYmFnZShF
cnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T2JqZWN0QnlIZWFwT2Jq
ZWN0SWQoRXJyb3JTdHJpbmcqLCBpbnQgaW5fb2JqZWN0SWQsIGNvbnN0IFN0cmluZyogaW5fb2Jq
ZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRfcmVzdWx0KSA9IDA7CgogICAg
cHJvdGVjdGVkOgogICAgICAgIHZpcnR1YWwgflByb2ZpbGVyQ29tbWFuZEhhbmRsZXIoKSB7IH0K
ICAgIH07CgojZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiNpZiBFTkFCTEUo
V09SS0VSUykKICAgIGNsYXNzIFdvcmtlckNvbW1hbmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0V29ya2VySW5zcGVjdGlvbkVuYWJsZWQoRXJyb3JTdHJpbmcq
LCBib29sIGluX3ZhbHVlKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9X
b3JrZXIoRXJyb3JTdHJpbmcqLCBpbnQgaW5fd29ya2VySWQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+JiBpbl9tZXNzYWdlKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3RU
b1dvcmtlcihFcnJvclN0cmluZyosIGludCBpbl93b3JrZXJJZCkgPSAwOwogICAgICAgIHZpcnR1
YWwgdm9pZCBkaXNjb25uZWN0RnJvbVdvcmtlcihFcnJvclN0cmluZyosIGludCBpbl93b3JrZXJJ
ZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZXRBdXRvY29ubmVjdFRvV29ya2VycyhFcnJv
clN0cmluZyosIGJvb2wgaW5fdmFsdWUpID0gMDsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgdmly
dHVhbCB+V29ya2VyQ29tbWFuZEhhbmRsZXIoKSB7IH0KICAgIH07CgojZW5kaWYgLy8gRU5BQkxF
KFdPUktFUlMpCgogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQoQXBwbGljYXRpb25DYWNo
ZUNvbW1hbmRIYW5kbGVyKiBhcHBsaWNhdGlvbkNhY2hlQWdlbnQpID0gMDsKICAgIHZpcnR1YWwg
dm9pZCByZWdpc3RlckFnZW50KENTU0NvbW1hbmRIYW5kbGVyKiBjc3NBZ2VudCkgPSAwOwogICAg
dmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQoQ29uc29sZUNvbW1hbmRIYW5kbGVyKiBjb25zb2xl
QWdlbnQpID0gMDsKICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckFnZW50KERPTUNvbW1hbmRIYW5k
bGVyKiBkb21BZ2VudCkgPSAwOwojaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCgogICAg
dmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQoRE9NRGVidWdnZXJDb21tYW5kSGFuZGxlciogZG9t
RGVidWdnZXJBZ2VudCkgPSAwOwojZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
CgogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQoRE9NU3RvcmFnZUNvbW1hbmRIYW5kbGVy
KiBkb21TdG9yYWdlQWdlbnQpID0gMDsKI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCgogICAgdmly
dHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQoRGF0YWJhc2VDb21tYW5kSGFuZGxlciogZGF0YWJhc2VB
Z2VudCkgPSAwOwojZW5kaWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKCiNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKCiAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJBZ2VudChEZWJ1Z2dl
ckNvbW1hbmRIYW5kbGVyKiBkZWJ1Z2dlckFnZW50KSA9IDA7CiNlbmRpZiAvLyBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKCiNpZiBFTkFCTEUoRklMRV9TWVNURU0pCgogICAgdmlydHVhbCB2
b2lkIHJlZ2lzdGVyQWdlbnQoRmlsZVN5c3RlbUNvbW1hbmRIYW5kbGVyKiBmaWxlU3lzdGVtQWdl
bnQpID0gMDsKI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKCiNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKCiAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJBZ2VudChJbmRleGVkREJDb21t
YW5kSGFuZGxlciogaW5kZXhlZERCQWdlbnQpID0gMDsKI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQoKICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckFnZW50KEluc3BlY3RvckNvbW1h
bmRIYW5kbGVyKiBpbnNwZWN0b3JBZ2VudCkgPSAwOwogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
QWdlbnQoTWVtb3J5Q29tbWFuZEhhbmRsZXIqIG1lbW9yeUFnZW50KSA9IDA7CiAgICB2aXJ0dWFs
IHZvaWQgcmVnaXN0ZXJBZ2VudChOZXR3b3JrQ29tbWFuZEhhbmRsZXIqIG5ldHdvcmtBZ2VudCkg
PSAwOwogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQoUGFnZUNvbW1hbmRIYW5kbGVyKiBw
YWdlQWdlbnQpID0gMDsKI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQoKICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlckFnZW50KFByb2ZpbGVyQ29tbWFuZEhhbmRsZXIqIHByb2ZpbGVyQWdl
bnQpID0gMDsKI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQoKICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlckFnZW50KFJ1bnRpbWVDb21tYW5kSGFuZGxlciogcnVudGltZUFnZW50
KSA9IDA7CiAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJBZ2VudChUaW1lbGluZUNvbW1hbmRIYW5k
bGVyKiB0aW1lbGluZUFnZW50KSA9IDA7CiNpZiBFTkFCTEUoV09SS0VSUykKCiAgICB2aXJ0dWFs
IHZvaWQgcmVnaXN0ZXJBZ2VudChXb3JrZXJDb21tYW5kSGFuZGxlciogd29ya2VyQWdlbnQpID0g
MDsKI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQoKCiAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9u
dGVuZCgpID0gMDsKCiAgICBlbnVtIENvbW1vbkVycm9yQ29kZSB7CiAgICAgICAgUGFyc2VFcnJv
ciA9IDAsCiAgICAgICAgSW52YWxpZFJlcXVlc3QsCiAgICAgICAgTWV0aG9kTm90Rm91bmQsCiAg
ICAgICAgSW52YWxpZFBhcmFtcywKICAgICAgICBJbnRlcm5hbEVycm9yLAogICAgICAgIFNlcnZl
ckVycm9yLAogICAgICAgIExhc3RFbnRyeSwKICAgIH07CgogICAgdm9pZCByZXBvcnRQcm90b2Nv
bEVycm9yKGNvbnN0IGxvbmcqIGNvbnN0IGNhbGxJZCwgQ29tbW9uRXJyb3JDb2RlLCBjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSkgY29uc3Q7CiAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UHJvdG9j
b2xFcnJvcihjb25zdCBsb25nKiBjb25zdCBjYWxsSWQsIENvbW1vbkVycm9yQ29kZSwgY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGRhdGEpIGNv
bnN0ID0gMDsKICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
ID0gMDsKICAgIHN0YXRpYyBib29sIGdldENvbW1hbmROYW1lKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgU3RyaW5nKiByZXN1bHQpOwoKICAgIGVudW0gTWV0aG9kTmFtZXMgewogICAgICAgIGtJbnNw
ZWN0b3JfZW5hYmxlQ21kLAogICAgICAgIGtJbnNwZWN0b3JfZGlzYWJsZUNtZCwKICAgICAgICBr
TWVtb3J5X2dldERPTU5vZGVDb3VudENtZCwKICAgICAgICBrUGFnZV9lbmFibGVDbWQsCiAgICAg
ICAga1BhZ2VfZGlzYWJsZUNtZCwKICAgICAgICBrUGFnZV9hZGRTY3JpcHRUb0V2YWx1YXRlT25M
b2FkQ21kLAogICAgICAgIGtQYWdlX3JlbW92ZVNjcmlwdFRvRXZhbHVhdGVPbkxvYWRDbWQsCiAg
ICAgICAga1BhZ2VfcmVsb2FkQ21kLAogICAgICAgIGtQYWdlX25hdmlnYXRlQ21kLAogICAgICAg
IGtQYWdlX2dldENvb2tpZXNDbWQsCiAgICAgICAga1BhZ2VfZGVsZXRlQ29va2llQ21kLAogICAg
ICAgIGtQYWdlX2dldFJlc291cmNlVHJlZUNtZCwKICAgICAgICBrUGFnZV9nZXRSZXNvdXJjZUNv
bnRlbnRDbWQsCiAgICAgICAga1BhZ2Vfc2VhcmNoSW5SZXNvdXJjZUNtZCwKICAgICAgICBrUGFn
ZV9zZWFyY2hJblJlc291cmNlc0NtZCwKICAgICAgICBrUGFnZV9zZXREb2N1bWVudENvbnRlbnRD
bWQsCiAgICAgICAga1BhZ2Vfc2V0U2NyZWVuU2l6ZU92ZXJyaWRlQ21kLAogICAgICAgIGtSdW50
aW1lX2V2YWx1YXRlQ21kLAogICAgICAgIGtSdW50aW1lX2NhbGxGdW5jdGlvbk9uQ21kLAogICAg
ICAgIGtSdW50aW1lX2dldFByb3BlcnRpZXNDbWQsCiAgICAgICAga1J1bnRpbWVfcmVsZWFzZU9i
amVjdENtZCwKICAgICAgICBrUnVudGltZV9yZWxlYXNlT2JqZWN0R3JvdXBDbWQsCiAgICAgICAg
a1J1bnRpbWVfcnVuQ21kLAogICAgICAgIGtDb25zb2xlX2VuYWJsZUNtZCwKICAgICAgICBrQ29u
c29sZV9kaXNhYmxlQ21kLAogICAgICAgIGtDb25zb2xlX2NsZWFyTWVzc2FnZXNDbWQsCiAgICAg
ICAga0NvbnNvbGVfc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWRDbWQsCiAgICAgICAga0NvbnNvbGVf
YWRkSW5zcGVjdGVkTm9kZUNtZCwKICAgICAgICBrTmV0d29ya19lbmFibGVDbWQsCiAgICAgICAg
a05ldHdvcmtfZGlzYWJsZUNtZCwKICAgICAgICBrTmV0d29ya19zZXRVc2VyQWdlbnRPdmVycmlk
ZUNtZCwKICAgICAgICBrTmV0d29ya19zZXRFeHRyYUhUVFBIZWFkZXJzQ21kLAogICAgICAgIGtO
ZXR3b3JrX2dldFJlc3BvbnNlQm9keUNtZCwKICAgICAgICBrTmV0d29ya19jYW5DbGVhckJyb3dz
ZXJDYWNoZUNtZCwKICAgICAgICBrTmV0d29ya19jbGVhckJyb3dzZXJDYWNoZUNtZCwKICAgICAg
ICBrTmV0d29ya19jYW5DbGVhckJyb3dzZXJDb29raWVzQ21kLAogICAgICAgIGtOZXR3b3JrX2Ns
ZWFyQnJvd3NlckNvb2tpZXNDbWQsCiAgICAgICAga05ldHdvcmtfc2V0Q2FjaGVEaXNhYmxlZENt
ZCwKI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCgogICAgICAgIGtEYXRhYmFzZV9lbmFibGVDbWQs
CiAgICAgICAga0RhdGFiYXNlX2Rpc2FibGVDbWQsCiAgICAgICAga0RhdGFiYXNlX2dldERhdGFi
YXNlVGFibGVOYW1lc0NtZCwKICAgICAgICBrRGF0YWJhc2VfZXhlY3V0ZVNRTENtZCwKI2VuZGlm
IC8vIEVOQUJMRShTUUxfREFUQUJBU0UpCgojaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCgog
ICAgICAgIGtJbmRleGVkREJfZW5hYmxlQ21kLAogICAgICAgIGtJbmRleGVkREJfZGlzYWJsZUNt
ZCwKICAgICAgICBrSW5kZXhlZERCX3JlcXVlc3REYXRhYmFzZU5hbWVzRm9yRnJhbWVDbWQsCiAg
ICAgICAga0luZGV4ZWREQl9yZXF1ZXN0RGF0YWJhc2VDbWQsCiNlbmRpZiAvLyBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKCiAgICAgICAga0RPTVN0b3JhZ2VfZW5hYmxlQ21kLAogICAgICAgIGtE
T01TdG9yYWdlX2Rpc2FibGVDbWQsCiAgICAgICAga0RPTVN0b3JhZ2VfZ2V0RE9NU3RvcmFnZUVu
dHJpZXNDbWQsCiAgICAgICAga0RPTVN0b3JhZ2Vfc2V0RE9NU3RvcmFnZUl0ZW1DbWQsCiAgICAg
ICAga0RPTVN0b3JhZ2VfcmVtb3ZlRE9NU3RvcmFnZUl0ZW1DbWQsCiAgICAgICAga0FwcGxpY2F0
aW9uQ2FjaGVfZ2V0RnJhbWVzV2l0aE1hbmlmZXN0c0NtZCwKICAgICAgICBrQXBwbGljYXRpb25D
YWNoZV9lbmFibGVDbWQsCiAgICAgICAga0FwcGxpY2F0aW9uQ2FjaGVfZ2V0TWFuaWZlc3RGb3JG
cmFtZUNtZCwKICAgICAgICBrQXBwbGljYXRpb25DYWNoZV9nZXRBcHBsaWNhdGlvbkNhY2hlRm9y
RnJhbWVDbWQsCiNpZiBFTkFCTEUoRklMRV9TWVNURU0pCgogICAgICAgIGtGaWxlU3lzdGVtX2Vu
YWJsZUNtZCwKICAgICAgICBrRmlsZVN5c3RlbV9kaXNhYmxlQ21kLAojZW5kaWYgLy8gRU5BQkxF
KEZJTEVfU1lTVEVNKQoKICAgICAgICBrRE9NX2dldERvY3VtZW50Q21kLAogICAgICAgIGtET01f
cmVxdWVzdENoaWxkTm9kZXNDbWQsCiAgICAgICAga0RPTV9xdWVyeVNlbGVjdG9yQ21kLAogICAg
ICAgIGtET01fcXVlcnlTZWxlY3RvckFsbENtZCwKICAgICAgICBrRE9NX3NldE5vZGVOYW1lQ21k
LAogICAgICAgIGtET01fc2V0Tm9kZVZhbHVlQ21kLAogICAgICAgIGtET01fcmVtb3ZlTm9kZUNt
ZCwKICAgICAgICBrRE9NX3NldEF0dHJpYnV0ZVZhbHVlQ21kLAogICAgICAgIGtET01fc2V0QXR0
cmlidXRlc0FzVGV4dENtZCwKICAgICAgICBrRE9NX3JlbW92ZUF0dHJpYnV0ZUNtZCwKICAgICAg
ICBrRE9NX2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZUNtZCwKICAgICAgICBrRE9NX2dldE91dGVy
SFRNTENtZCwKICAgICAgICBrRE9NX3NldE91dGVySFRNTENtZCwKICAgICAgICBrRE9NX3BlcmZv
cm1TZWFyY2hDbWQsCiAgICAgICAga0RPTV9nZXRTZWFyY2hSZXN1bHRzQ21kLAogICAgICAgIGtE
T01fZGlzY2FyZFNlYXJjaFJlc3VsdHNDbWQsCiAgICAgICAga0RPTV9yZXF1ZXN0Tm9kZUNtZCwK
ICAgICAgICBrRE9NX3NldEluc3BlY3RNb2RlRW5hYmxlZENtZCwKICAgICAgICBrRE9NX2hpZ2hs
aWdodFJlY3RDbWQsCiAgICAgICAga0RPTV9oaWdobGlnaHROb2RlQ21kLAogICAgICAgIGtET01f
aGlkZUhpZ2hsaWdodENtZCwKICAgICAgICBrRE9NX2hpZ2hsaWdodEZyYW1lQ21kLAogICAgICAg
IGtET01fcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kQ21kLAogICAgICAgIGtET01fcmVzb2x2ZU5v
ZGVDbWQsCiAgICAgICAga0RPTV9nZXRBdHRyaWJ1dGVzQ21kLAogICAgICAgIGtET01fbW92ZVRv
Q21kLAogICAgICAgIGtET01fc2V0VG91Y2hFbXVsYXRpb25FbmFibGVkQ21kLAogICAgICAgIGtE
T01fdW5kb0NtZCwKICAgICAgICBrRE9NX21hcmtVbmRvYWJsZVN0YXRlQ21kLAogICAgICAgIGtD
U1NfZW5hYmxlQ21kLAogICAgICAgIGtDU1NfZGlzYWJsZUNtZCwKICAgICAgICBrQ1NTX2dldE1h
dGNoZWRTdHlsZXNGb3JOb2RlQ21kLAogICAgICAgIGtDU1NfZ2V0SW5saW5lU3R5bGVzRm9yTm9k
ZUNtZCwKICAgICAgICBrQ1NTX2dldENvbXB1dGVkU3R5bGVGb3JOb2RlQ21kLAogICAgICAgIGtD
U1NfZ2V0QWxsU3R5bGVTaGVldHNDbWQsCiAgICAgICAga0NTU19nZXRTdHlsZVNoZWV0Q21kLAog
ICAgICAgIGtDU1NfZ2V0U3R5bGVTaGVldFRleHRDbWQsCiAgICAgICAga0NTU19zZXRTdHlsZVNo
ZWV0VGV4dENtZCwKICAgICAgICBrQ1NTX3NldFByb3BlcnR5VGV4dENtZCwKICAgICAgICBrQ1NT
X3RvZ2dsZVByb3BlcnR5Q21kLAogICAgICAgIGtDU1Nfc2V0UnVsZVNlbGVjdG9yQ21kLAogICAg
ICAgIGtDU1NfYWRkUnVsZUNtZCwKICAgICAgICBrQ1NTX2dldFN1cHBvcnRlZENTU1Byb3BlcnRp
ZXNDbWQsCiAgICAgICAga0NTU19zdGFydFNlbGVjdG9yUHJvZmlsZXJDbWQsCiAgICAgICAga0NT
U19zdG9wU2VsZWN0b3JQcm9maWxlckNtZCwKICAgICAgICBrVGltZWxpbmVfc3RhcnRDbWQsCiAg
ICAgICAga1RpbWVsaW5lX3N0b3BDbWQsCiAgICAgICAga1RpbWVsaW5lX3NldEluY2x1ZGVNZW1v
cnlEZXRhaWxzQ21kLAojaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCgogICAgICAgIGtE
ZWJ1Z2dlcl9jYXVzZXNSZWNvbXBpbGF0aW9uQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9zdXBwb3J0
c05hdGl2ZUJyZWFrcG9pbnRzQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9lbmFibGVDbWQsCiAgICAg
ICAga0RlYnVnZ2VyX2Rpc2FibGVDbWQsCiAgICAgICAga0RlYnVnZ2VyX3NldEJyZWFrcG9pbnRz
QWN0aXZlQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9zZXRCcmVha3BvaW50QnlVcmxDbWQsCiAgICAg
ICAga0RlYnVnZ2VyX3NldEJyZWFrcG9pbnRDbWQsCiAgICAgICAga0RlYnVnZ2VyX3JlbW92ZUJy
ZWFrcG9pbnRDbWQsCiAgICAgICAga0RlYnVnZ2VyX2NvbnRpbnVlVG9Mb2NhdGlvbkNtZCwKICAg
ICAgICBrRGVidWdnZXJfc3RlcE92ZXJDbWQsCiAgICAgICAga0RlYnVnZ2VyX3N0ZXBJbnRvQ21k
LAogICAgICAgIGtEZWJ1Z2dlcl9zdGVwT3V0Q21kLAogICAgICAgIGtEZWJ1Z2dlcl9wYXVzZUNt
ZCwKICAgICAgICBrRGVidWdnZXJfcmVzdW1lQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9zZWFyY2hJ
bkNvbnRlbnRDbWQsCiAgICAgICAga0RlYnVnZ2VyX2NhblNldFNjcmlwdFNvdXJjZUNtZCwKICAg
ICAgICBrRGVidWdnZXJfc2V0U2NyaXB0U291cmNlQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9nZXRT
Y3JpcHRTb3VyY2VDbWQsCiAgICAgICAga0RlYnVnZ2VyX2dldEZ1bmN0aW9uRGV0YWlsc0NtZCwK
ICAgICAgICBrRGVidWdnZXJfc2V0UGF1c2VPbkV4Y2VwdGlvbnNDbWQsCiAgICAgICAga0RlYnVn
Z2VyX2V2YWx1YXRlT25DYWxsRnJhbWVDbWQsCiNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikKCiNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKCiAgICAgICAga0RPTURl
YnVnZ2VyX3NldERPTUJyZWFrcG9pbnRDbWQsCiAgICAgICAga0RPTURlYnVnZ2VyX3JlbW92ZURP
TUJyZWFrcG9pbnRDbWQsCiAgICAgICAga0RPTURlYnVnZ2VyX3NldEV2ZW50TGlzdGVuZXJCcmVh
a3BvaW50Q21kLAogICAgICAgIGtET01EZWJ1Z2dlcl9yZW1vdmVFdmVudExpc3RlbmVyQnJlYWtw
b2ludENtZCwKICAgICAgICBrRE9NRGVidWdnZXJfc2V0SW5zdHJ1bWVudGF0aW9uQnJlYWtwb2lu
dENtZCwKICAgICAgICBrRE9NRGVidWdnZXJfcmVtb3ZlSW5zdHJ1bWVudGF0aW9uQnJlYWtwb2lu
dENtZCwKICAgICAgICBrRE9NRGVidWdnZXJfc2V0WEhSQnJlYWtwb2ludENtZCwKICAgICAgICBr
RE9NRGVidWdnZXJfcmVtb3ZlWEhSQnJlYWtwb2ludENtZCwKI2VuZGlmIC8vIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKQoKI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQoKICAgICAg
ICBrUHJvZmlsZXJfY2F1c2VzUmVjb21waWxhdGlvbkNtZCwKICAgICAgICBrUHJvZmlsZXJfaXNT
YW1wbGluZ0NtZCwKICAgICAgICBrUHJvZmlsZXJfaGFzSGVhcFByb2ZpbGVyQ21kLAogICAgICAg
IGtQcm9maWxlcl9lbmFibGVDbWQsCiAgICAgICAga1Byb2ZpbGVyX2Rpc2FibGVDbWQsCiAgICAg
ICAga1Byb2ZpbGVyX3N0YXJ0Q21kLAogICAgICAgIGtQcm9maWxlcl9zdG9wQ21kLAogICAgICAg
IGtQcm9maWxlcl9nZXRQcm9maWxlSGVhZGVyc0NtZCwKICAgICAgICBrUHJvZmlsZXJfZ2V0UHJv
ZmlsZUNtZCwKICAgICAgICBrUHJvZmlsZXJfcmVtb3ZlUHJvZmlsZUNtZCwKICAgICAgICBrUHJv
ZmlsZXJfY2xlYXJQcm9maWxlc0NtZCwKICAgICAgICBrUHJvZmlsZXJfdGFrZUhlYXBTbmFwc2hv
dENtZCwKICAgICAgICBrUHJvZmlsZXJfY29sbGVjdEdhcmJhZ2VDbWQsCiAgICAgICAga1Byb2Zp
bGVyX2dldE9iamVjdEJ5SGVhcE9iamVjdElkQ21kLAojZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCgojaWYgRU5BQkxFKFdPUktFUlMpCgogICAgICAgIGtXb3JrZXJfc2V0V29y
a2VySW5zcGVjdGlvbkVuYWJsZWRDbWQsCiAgICAgICAga1dvcmtlcl9zZW5kTWVzc2FnZVRvV29y
a2VyQ21kLAogICAgICAgIGtXb3JrZXJfY29ubmVjdFRvV29ya2VyQ21kLAogICAgICAgIGtXb3Jr
ZXJfZGlzY29ubmVjdEZyb21Xb3JrZXJDbWQsCiAgICAgICAga1dvcmtlcl9zZXRBdXRvY29ubmVj
dFRvV29ya2Vyc0NtZCwKI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQoKICAgIH07CgogICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbW1hbmROYW1lc1tdOwp9OwoKfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQojZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJfaCkKCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>126519</attachid>
            <date>2012-02-10 08:58:15 -0800</date>
            <delta_ts>2012-02-10 08:58:15 -0800</delta_ts>
            <desc>new InspectorBackendDispatcher.h</desc>
            <filename>InspectorBackendDispatcher.h</filename>
            <type>text/plain</type>
            <size>30239</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">Ly8gRmlsZSBpcyBnZW5lcmF0ZWQgYnkgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5l
cmF0b3JJbnNwZWN0b3IucHkKCi8vIENvcHlyaWdodCAoYykgMjAxMSBUaGUgQ2hyb21pdW0gQXV0
aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQovLyBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlLgojaWZuZGVmIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyX2gKI2Rl
ZmluZSBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcl9oCgojaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KI2luY2x1ZGUgIkluc3BlY3RvclR5cGVCdWlsZGVyLmgiCgpuYW1lc3BhY2UgV2Vi
Q29yZSB7CgpjbGFzcyBJbnNwZWN0b3JBZ2VudDsKY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwpjbGFz
cyBJbnNwZWN0b3JBcnJheTsKY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOwoKdHlwZWRl
ZiBTdHJpbmcgRXJyb3JTdHJpbmc7CgpjbGFzcyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjog
cHVibGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IHsKcHVibGljOgog
ICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IGNyZWF0ZShJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCk7CiAgICB2
aXJ0dWFsIH5JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcigpIHsgfQoKICAgIGNsYXNzIEluc3Bl
Y3RvckNvbW1hbmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9y
U3RyaW5nKikgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JD
b21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiAgICBjbGFzcyBNZW1vcnlDb21tYW5kSGFuZGxl
ciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lkIGdldERPTU5vZGVDb3VudChFcnJv
clN0cmluZyosIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6Ok1l
bW9yeTo6RE9NR3JvdXAgPiA+Ki8gUmVmUHRyPEluc3BlY3RvckFycmF5PiYgb3V0X2RvbUdyb3Vw
cywgLypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpNZW1vcnk6OlN0cmluZ1N0YXRpc3RpY3M+Ki8g
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9zdHJpbmdzKSA9IDA7CgogICAgcHJvdGVjdGVk
OgogICAgICAgIHZpcnR1YWwgfk1lbW9yeUNvbW1hbmRIYW5kbGVyKCkgeyB9CiAgICB9OwoKICAg
IGNsYXNzIFBhZ2VDb21tYW5kSGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2
b2lkIGVuYWJsZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJs
ZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkU2NyaXB0VG9FdmFs
dWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fc2NyaXB0U291cmNlLCAv
KmNvbnN0IFR5cGVCdWlsZGVyOjpQYWdlOjpTY3JpcHRJZGVudGlmaWVyJiovIFN0cmluZyogb3V0
X2lkZW50aWZpZXIpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlU2NyaXB0VG9FdmFs
dWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5faWRlbnRpZmllcikgPSAw
OwogICAgICAgIHZpcnR1YWwgdm9pZCByZWxvYWQoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBp
bl9pZ25vcmVDYWNoZSwgY29uc3QgU3RyaW5nKiBpbl9zY3JpcHRUb0V2YWx1YXRlT25Mb2FkKSA9
IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBpbl91cmwpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q29va2llcyhFcnJvclN0
cmluZyosIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6
OkNvb2tpZSA+ID4qLyBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfY29va2llcywgLypjb25z
dCBTdHJpbmcmKi8gU3RyaW5nKiBvdXRfY29va2llc1N0cmluZykgPSAwOwogICAgICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX2Nvb2tp
ZU5hbWUsIGNvbnN0IFN0cmluZyYgaW5fZG9tYWluKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lk
IGdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyosIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
UGFnZTo6RnJhbWVSZXNvdXJjZVRyZWU+Ki8gUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9m
cmFtZVRyZWUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVzb3VyY2VDb250ZW50KEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9mcmFtZUlkLCBjb25zdCBTdHJpbmcmIGluX3Vy
bCwgLypjb25zdCBTdHJpbmcmKi8gU3RyaW5nKiBvdXRfY29udGVudCwgLypib29sKi8gYm9vbCog
b3V0X2Jhc2U2NEVuY29kZWQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoSW5SZXNv
dXJjZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fZnJhbWVJZCwgY29uc3QgU3RyaW5n
JiBpbl91cmwsIGNvbnN0IFN0cmluZyYgaW5fcXVlcnksIGNvbnN0IGJvb2wqIGluX2Nhc2VTZW5z
aXRpdmUsIGNvbnN0IGJvb2wqIGluX2lzUmVnZXgsIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaE1hdGNoID4gPiovIFJlZlB0cjxJbnNwZWN0
b3JBcnJheT4mIG91dF9yZXN1bHQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoSW5S
ZXNvdXJjZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX3RleHQsIGNvbnN0IGJvb2wq
IGluX2Nhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGluX2lzUmVnZXgsIC8qUGFzc1JlZlB0cjxU
eXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlBhZ2U6OlNlYXJjaFJlc3VsdCA+ID4qLyBS
ZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfcmVzdWx0KSA9IDA7CiAgICAgICAgdmlydHVhbCB2
b2lkIHNldERvY3VtZW50Q29udGVudChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fZnJh
bWVJZCwgY29uc3QgU3RyaW5nJiBpbl9odG1sKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNl
dFNjcmVlblNpemVPdmVycmlkZShFcnJvclN0cmluZyosIGludCBpbl93aWR0aCwgaW50IGluX2hl
aWdodCkgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0dWFsIH5QYWdlQ29tbWFuZEhh
bmRsZXIoKSB7IH0KICAgIH07CgogICAgY2xhc3MgUnVudGltZUNvbW1hbmRIYW5kbGVyIHsKICAg
IHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIGluX2V4cHJlc3Npb24sIGNvbnN0IFN0cmluZyogaW5fb2JqZWN0R3JvdXAsIGNv
bnN0IGJvb2wqIGluX2luY2x1ZGVDb21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogaW5fZG9Ob3RQ
YXVzZU9uRXhjZXB0aW9ucywgY29uc3QgU3RyaW5nKiBpbl9mcmFtZUlkLCBjb25zdCBib29sKiBp
bl9yZXR1cm5CeVZhbHVlLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90
ZU9iamVjdD4qLyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X3Jlc3VsdCwgLypjb25zdCBi
b29sKiBjb25zdCovIGJvb2wqIG91dF93YXNUaHJvd24pID0gMDsKICAgICAgICB2aXJ0dWFsIHZv
aWQgY2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX29iamVjdElk
LCBjb25zdCBTdHJpbmcmIGluX2Z1bmN0aW9uRGVjbGFyYXRpb24sIGNvbnN0IFJlZlB0cjxJbnNw
ZWN0b3JBcnJheT4qIGluX2FyZ3VtZW50cywgY29uc3QgYm9vbCogaW5fcmV0dXJuQnlWYWx1ZSwg
LypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+Ki8gUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4mIG91dF9yZXN1bHQsIC8qY29uc3QgYm9vbCogY29uc3QqLyBib29s
KiBvdXRfd2FzVGhyb3duKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnRpZXMo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX29iamVjdElkLCBjb25zdCBib29sKiBpbl9v
d25Qcm9wZXJ0aWVzLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVy
OjpSdW50aW1lOjpQcm9wZXJ0eURlc2NyaXB0b3IgPiA+Ki8gUmVmUHRyPEluc3BlY3RvckFycmF5
PiYgb3V0X3Jlc3VsdCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlT2JqZWN0KEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9vYmplY3RJZCkgPSAwOwogICAgICAgIHZpcnR1
YWwgdm9pZCByZWxlYXNlT2JqZWN0R3JvdXAoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGlu
X29iamVjdEdyb3VwKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyop
ID0gMDsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgdmlydHVhbCB+UnVudGltZUNvbW1hbmRIYW5k
bGVyKCkgeyB9CiAgICB9OwoKICAgIGNsYXNzIENvbnNvbGVDb21tYW5kSGFuZGxlciB7CiAgICBw
dWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopID0gMDsKICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcqLCBib29sIGluX2VuYWJs
ZWQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkSW5zcGVjdGVkTm9kZShFcnJvclN0cmlu
ZyosIGludCBpbl9ub2RlSWQpID0gMDsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgdmlydHVhbCB+
Q29uc29sZUNvbW1hbmRIYW5kbGVyKCkgeyB9CiAgICB9OwoKICAgIGNsYXNzIE5ldHdvcmtDb21t
YW5kSGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJv
clN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyop
ID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VXNlckFnZW50T3ZlcnJpZGUoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIGluX3VzZXJBZ2VudCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRFeHRyYUhUVFBIZWFkZXJzKEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4mIGluX2hlYWRlcnMpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVzcG9u
c2VCb2R5KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9yZXF1ZXN0SWQsIC8qY29uc3Qg
U3RyaW5nJiovIFN0cmluZyogb3V0X2JvZHksIC8qYm9vbCovIGJvb2wqIG91dF9iYXNlNjRFbmNv
ZGVkKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGNhbkNsZWFyQnJvd3NlckNhY2hlKEVycm9y
U3RyaW5nKiwgLypib29sKi8gYm9vbCogb3V0X3Jlc3VsdCkgPSAwOwogICAgICAgIHZpcnR1YWwg
dm9pZCBjbGVhckJyb3dzZXJDYWNoZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFs
IHZvaWQgY2FuQ2xlYXJCcm93c2VyQ29va2llcyhFcnJvclN0cmluZyosIC8qYm9vbCovIGJvb2wq
IG91dF9yZXN1bHQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJCcm93c2VyQ29va2ll
cyhFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FjaGVEaXNhYmxl
ZChFcnJvclN0cmluZyosIGJvb2wgaW5fY2FjaGVEaXNhYmxlZCkgPSAwOwoKICAgIHByb3RlY3Rl
ZDoKICAgICAgICB2aXJ0dWFsIH5OZXR3b3JrQ29tbWFuZEhhbmRsZXIoKSB7IH0KICAgIH07Cgoj
aWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICAgIGNsYXNzIERhdGFiYXNlQ29tbWFuZEhhbmRsZXIg
ewogICAgcHVibGljOgogICAgICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSA9
IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAg
ICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlVGFibGVOYW1lcyhFcnJvclN0cmluZyosIGludCBp
bl9kYXRhYmFzZUlkLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZyA+ID4q
LyBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfdGFibGVOYW1lcykgPSAwOwogICAgICAgIHZp
cnR1YWwgdm9pZCBleGVjdXRlU1FMKEVycm9yU3RyaW5nKiwgaW50IGluX2RhdGFiYXNlSWQsIGNv
bnN0IFN0cmluZyYgaW5fcXVlcnksIC8qYm9vbCovIGJvb2wqIG91dF9zdWNjZXNzLCAvKmludCov
IGludCogb3V0X3RyYW5zYWN0aW9uSWQpID0gMDsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgdmly
dHVhbCB+RGF0YWJhc2VDb21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiNlbmRpZiAvLyBFTkFC
TEUoU1FMX0RBVEFCQVNFKQojaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICBjbGFzcyBJ
bmRleGVkREJDb21tYW5kSGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lk
IGVuYWJsZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShF
cnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERhdGFiYXNlTmFt
ZXNGb3JGcmFtZShFcnJvclN0cmluZyosIGludCBpbl9yZXF1ZXN0SWQsIGNvbnN0IFN0cmluZyYg
aW5fZnJhbWVJZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGF0YWJhc2UoRXJy
b3JTdHJpbmcqLCBpbnQgaW5fcmVxdWVzdElkLCBjb25zdCBTdHJpbmcmIGluX2ZyYW1lSWQsIGNv
bnN0IFN0cmluZyYgaW5fZGF0YWJhc2VOYW1lKSA9IDA7CgogICAgcHJvdGVjdGVkOgogICAgICAg
IHZpcnR1YWwgfkluZGV4ZWREQkNvbW1hbmRIYW5kbGVyKCkgeyB9CiAgICB9OwoKI2VuZGlmIC8v
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgY2xhc3MgRE9NU3RvcmFnZUNvbW1hbmRIYW5k
bGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
KikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKikgPSAwOwog
ICAgICAgIHZpcnR1YWwgdm9pZCBnZXRET01TdG9yYWdlRW50cmllcyhFcnJvclN0cmluZyosIGlu
dCBpbl9zdG9yYWdlSWQsIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OkRPTVN0b3JhZ2U6OkVudHJ5ID4gPiovIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91dF9l
bnRyaWVzKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHNldERPTVN0b3JhZ2VJdGVtKEVycm9y
U3RyaW5nKiwgaW50IGluX3N0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBpbl9rZXksIGNvbnN0IFN0
cmluZyYgaW5fdmFsdWUsIC8qYm9vbCovIGJvb2wqIG91dF9zdWNjZXNzKSA9IDA7CiAgICAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZURPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nKiwgaW50IGluX3N0
b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBpbl9rZXksIC8qYm9vbCovIGJvb2wqIG91dF9zdWNjZXNz
KSA9IDA7CgogICAgcHJvdGVjdGVkOgogICAgICAgIHZpcnR1YWwgfkRPTVN0b3JhZ2VDb21tYW5k
SGFuZGxlcigpIHsgfQogICAgfTsKCiAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlQ29tbWFuZEhh
bmRsZXIgewogICAgcHVibGljOgogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRGcmFtZXNXaXRoTWFu
aWZlc3RzKEVycm9yU3RyaW5nKiwgLypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBl
QnVpbGRlcjo6QXBwbGljYXRpb25DYWNoZTo6RnJhbWVXaXRoTWFuaWZlc3QgPiA+Ki8gUmVmUHRy
PEluc3BlY3RvckFycmF5PiYgb3V0X2ZyYW1lSWRzKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lk
IGVuYWJsZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0TWFuaWZl
c3RGb3JGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fZnJhbWVJZCwgLypjb25z
dCBTdHJpbmcmKi8gU3RyaW5nKiBvdXRfbWFuaWZlc3RVUkwpID0gMDsKICAgICAgICB2aXJ0dWFs
IHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZUZvckZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBpbl9mcmFtZUlkLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFwcGxpY2F0aW9uQ2Fj
aGU6OkFwcGxpY2F0aW9uQ2FjaGU+Ki8gUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9hcHBs
aWNhdGlvbkNhY2hlKSA9IDA7CgogICAgcHJvdGVjdGVkOgogICAgICAgIHZpcnR1YWwgfkFwcGxp
Y2F0aW9uQ2FjaGVDb21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCiAgICBjbGFzcyBGaWxlU3lzdGVtQ29tbWFuZEhhbmRsZXIgewogICAgcHVibGljOgog
ICAgICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmly
dHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSA9IDA7CgogICAgcHJvdGVjdGVkOgogICAg
ICAgIHZpcnR1YWwgfkZpbGVTeXN0ZW1Db21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiNlbmRp
ZiAvLyBFTkFCTEUoRklMRV9TWVNURU0pCiAgICBjbGFzcyBET01Db21tYW5kSGFuZGxlciB7CiAg
ICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lkIGdldERvY3VtZW50KEVycm9yU3RyaW5nKiwg
LypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006Ok5vZGU+Ki8gUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mIG91dF9yb290KSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGlsZE5v
ZGVzKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCBxdWVyeVNlbGVjdG9yKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgY29uc3QgU3RyaW5n
JiBpbl9zZWxlY3RvciwgLyppbnQqLyBpbnQqIG91dF9ub2RlSWQpID0gMDsKICAgICAgICB2aXJ0
dWFsIHZvaWQgcXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIGNv
bnN0IFN0cmluZyYgaW5fc2VsZWN0b3IsIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8
aW50ID4gPiovIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91dF9ub2RlSWRzKSA9IDA7CiAgICAg
ICAgdmlydHVhbCB2b2lkIHNldE5vZGVOYW1lKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwg
Y29uc3QgU3RyaW5nJiBpbl9uYW1lLCAvKmludCovIGludCogb3V0X25vZGVJZCkgPSAwOwogICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXROb2RlVmFsdWUoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlk
LCBjb25zdCBTdHJpbmcmIGluX3ZhbHVlKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZU5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlkKSA9IDA7CiAgICAgICAgdmlydHVhbCB2
b2lkIHNldEF0dHJpYnV0ZVZhbHVlKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgY29uc3Qg
U3RyaW5nJiBpbl9uYW1lLCBjb25zdCBTdHJpbmcmIGluX3ZhbHVlKSA9IDA7CiAgICAgICAgdmly
dHVhbCB2b2lkIHNldEF0dHJpYnV0ZXNBc1RleHQoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlk
LCBjb25zdCBTdHJpbmcmIGluX3RleHQsIGNvbnN0IFN0cmluZyogaW5fbmFtZSkgPSAwOwogICAg
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBdHRyaWJ1dGUoRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9k
ZUlkLCBjb25zdCBTdHJpbmcmIGluX25hbWUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgLypQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVy
ID4gPiovIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91dF9saXN0ZW5lcnMpID0gMDsKICAgICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwg
Lypjb25zdCBTdHJpbmcmKi8gU3RyaW5nKiBvdXRfb3V0ZXJIVE1MKSA9IDA7CiAgICAgICAgdmly
dHVhbCB2b2lkIHNldE91dGVySFRNTChFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIGNvbnN0
IFN0cmluZyYgaW5fb3V0ZXJIVE1MKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1T
ZWFyY2goRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX3F1ZXJ5LCAvKmNvbnN0IFN0cmlu
ZyYqLyBTdHJpbmcqIG91dF9zZWFyY2hJZCwgLyppbnQqLyBpbnQqIG91dF9yZXN1bHRDb3VudCkg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJiBpbl9zZWFyY2hJZCwgaW50IGluX2Zyb21JbmRleCwgaW50IGluX3RvSW5k
ZXgsIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8aW50ID4gPiovIFJlZlB0cjxJbnNw
ZWN0b3JBcnJheT4mIG91dF9ub2RlSWRzKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGRpc2Nh
cmRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9zZWFyY2hJZCkg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Tm9kZShFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgaW5fb2JqZWN0SWQsIC8qaW50Ki8gaW50KiBvdXRfbm9kZUlkKSA9IDA7CiAgICAg
ICAgdmlydHVhbCB2b2lkIHNldEluc3BlY3RNb2RlRW5hYmxlZChFcnJvclN0cmluZyosIGJvb2wg
aW5fZW5hYmxlZCwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGluX2hpZ2hsaWdodENv
bmZpZykgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHRSZWN0KEVycm9yU3RyaW5n
KiwgaW50IGluX3gsIGludCBpbl95LCBpbnQgaW5fd2lkdGgsIGludCBpbl9oZWlnaHQsIGNvbnN0
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBpbl9jb2xvciwgY29uc3QgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4qIGluX291dGxpbmVDb2xvcikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBoaWdo
bGlnaHROb2RlKEVycm9yU3RyaW5nKiwgaW50IGluX25vZGVJZCwgY29uc3QgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4mIGluX2hpZ2hsaWdodENvbmZpZykgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBo
aWdobGlnaHRGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fZnJhbWVJZCwgY29u
c3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGluX2NvbnRlbnRDb2xvciwgY29uc3QgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4qIGluX2NvbnRlbnRPdXRsaW5lQ29sb3IpID0gMDsKICAgICAgICB2
aXJ0dWFsIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiBpbl9wYXRoLCAvKmludCovIGludCogb3V0X25vZGVJZCkgPSAwOwogICAgICAgIHZp
cnR1YWwgdm9pZCByZXNvbHZlTm9kZShFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIGNvbnN0
IFN0cmluZyogaW5fb2JqZWN0R3JvdXAsIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGlt
ZTo6UmVtb3RlT2JqZWN0PiovIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRfb2JqZWN0KSA9
IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGdldEF0dHJpYnV0ZXMoRXJyb3JTdHJpbmcqLCBpbnQg
aW5fbm9kZUlkLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZyA+ID4qLyBS
ZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfYXR0cmlidXRlcykgPSAwOwogICAgICAgIHZpcnR1
YWwgdm9pZCBtb3ZlVG8oRXJyb3JTdHJpbmcqLCBpbnQgaW5fbm9kZUlkLCBpbnQgaW5fdGFyZ2V0
Tm9kZUlkLCBjb25zdCBpbnQqIGluX2luc2VydEJlZm9yZU5vZGVJZCwgLyppbnQqLyBpbnQqIG91
dF9ub2RlSWQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VG91Y2hFbXVsYXRpb25FbmFi
bGVkKEVycm9yU3RyaW5nKiwgYm9vbCBpbl9lbmFibGVkKSA9IDA7CiAgICAgICAgdmlydHVhbCB2
b2lkIHVuZG8oRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIG1hcmtVbmRv
YWJsZVN0YXRlKEVycm9yU3RyaW5nKikgPSAwOwoKICAgIHByb3RlY3RlZDoKICAgICAgICB2aXJ0
dWFsIH5ET01Db21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiAgICBjbGFzcyBDU1NDb21tYW5k
SGFuZGxlciB7CiAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0
cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopID0g
MDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUoRXJyb3JTdHJp
bmcqLCBpbnQgaW5fbm9kZUlkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBpbl9mb3Jj
ZWRQc2V1ZG9DbGFzc2VzLCBjb25zdCBib29sKiBpbl9pbmNsdWRlUHNldWRvLCBjb25zdCBib29s
KiBpbl9pbmNsdWRlSW5oZXJpdGVkLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5
cGVCdWlsZGVyOjpDU1M6OkNTU1J1bGUgPiA+Ki8gUmVmUHRyPEluc3BlY3RvckFycmF5PiYgb3V0
X21hdGNoZWRDU1NSdWxlcywgLypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVp
bGRlcjo6Q1NTOjpQc2V1ZG9JZFJ1bGVzID4gPiovIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91
dF9wc2V1ZG9FbGVtZW50cywgLypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVp
bGRlcjo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5ID4gPiovIFJlZlB0cjxJbnNwZWN0b3JBcnJh
eT4mIG91dF9pbmhlcml0ZWQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5saW5lU3R5
bGVzRm9yTm9kZShFcnJvclN0cmluZyosIGludCBpbl9ub2RlSWQsIC8qUGFzc1JlZlB0cjxUeXBl
QnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4qLyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X2lu
bGluZVN0eWxlLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+Ki8gUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9hdHRyaWJ1dGVzU3R5bGUpID0gMDsKICAgICAgICB2
aXJ0dWFsIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZUZvck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgaW5f
bm9kZUlkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBpbl9mb3JjZWRQc2V1ZG9DbGFz
c2VzLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OkNT
U0NvbXB1dGVkU3R5bGVQcm9wZXJ0eSA+ID4qLyBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRf
Y29tcHV0ZWRTdHlsZSkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRBbGxTdHlsZVNoZWV0
cyhFcnJvclN0cmluZyosIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlciA+ID4qLyBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
JiBvdXRfaGVhZGVycykgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBnZXRTdHlsZVNoZWV0KEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9zdHlsZVNoZWV0SWQsIC8qUGFzc1JlZlB0cjxU
eXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZVNoZWV0Qm9keT4qLyBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgb3V0X3N0eWxlU2hlZXQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3R5bGVT
aGVldFRleHQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX3N0eWxlU2hlZXRJZCwgLypj
b25zdCBTdHJpbmcmKi8gU3RyaW5nKiBvdXRfdGV4dCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fc3R5bGVT
aGVldElkLCBjb25zdCBTdHJpbmcmIGluX3RleHQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0UHJvcGVydHlUZXh0KEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4mIGluX3N0eWxlSWQsIGludCBpbl9wcm9wZXJ0eUluZGV4LCBjb25zdCBTdHJpbmcmIGluX3Rl
eHQsIGJvb2wgaW5fb3ZlcndyaXRlLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NT
U3R5bGU+Ki8gUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9zdHlsZSkgPSAwOwogICAgICAg
IHZpcnR1YWwgdm9pZCB0b2dnbGVQcm9wZXJ0eShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+JiBpbl9zdHlsZUlkLCBpbnQgaW5fcHJvcGVydHlJbmRleCwgYm9vbCBp
bl9kaXNhYmxlLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+Ki8gUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9zdHlsZSkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgaW5fcnVsZUlkLCBjb25zdCBTdHJpbmcmIGluX3NlbGVjdG9yLCAvKlBhc3NSZWZQdHI8
VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTUnVsZT4qLyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0
X3J1bGUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkUnVsZShFcnJvclN0cmluZyosIGlu
dCBpbl9jb250ZXh0Tm9kZUlkLCBjb25zdCBTdHJpbmcmIGluX3NlbGVjdG9yLCAvKlBhc3NSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTUnVsZT4qLyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYg
b3V0X3J1bGUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0U3VwcG9ydGVkQ1NTUHJvcGVy
dGllcyhFcnJvclN0cmluZyosIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5n
ID4gPiovIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4mIG91dF9jc3NQcm9wZXJ0aWVzKSA9IDA7CiAg
ICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2VsZWN0b3JQcm9maWxlcihFcnJvclN0cmluZyopID0g
MDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcFNlbGVjdG9yUHJvZmlsZXIoRXJyb3JTdHJpbmcq
LCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6U2VsZWN0b3JQcm9maWxlPiovIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRfcHJvZmlsZSkgPSAwOwoKICAgIHByb3RlY3RlZDoKICAg
ICAgICB2aXJ0dWFsIH5DU1NDb21tYW5kSGFuZGxlcigpIHsgfQogICAgfTsKCiAgICBjbGFzcyBU
aW1lbGluZUNvbW1hbmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQg
c3RhcnQoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGluX21heENhbGxTdGFja0RlcHRoKSA9IDA7
CiAgICAgICAgdmlydHVhbCB2b2lkIHN0b3AoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmly
dHVhbCB2b2lkIHNldEluY2x1ZGVNZW1vcnlEZXRhaWxzKEVycm9yU3RyaW5nKiwgYm9vbCBpbl9l
bmFibGVkKSA9IDA7CgogICAgcHJvdGVjdGVkOgogICAgICAgIHZpcnR1YWwgflRpbWVsaW5lQ29t
bWFuZEhhbmRsZXIoKSB7IH0KICAgIH07CgojaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
CiAgICBjbGFzcyBEZWJ1Z2dlckNvbW1hbmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2
aXJ0dWFsIHZvaWQgY2F1c2VzUmVjb21waWxhdGlvbihFcnJvclN0cmluZyosIC8qYm9vbCovIGJv
b2wqIG91dF9yZXN1bHQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc3VwcG9ydHNOYXRpdmVC
cmVha3BvaW50cyhFcnJvclN0cmluZyosIC8qYm9vbCovIGJvb2wqIG91dF9yZXN1bHQpID0gMDsK
ICAgICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZp
cnR1YWwgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRCcmVha3BvaW50c0FjdGl2ZShFcnJvclN0cmluZyosIGJvb2wgaW5fYWN0aXZlKSA9IDA7
CiAgICAgICAgdmlydHVhbCB2b2lkIHNldEJyZWFrcG9pbnRCeVVybChFcnJvclN0cmluZyosIGlu
dCBpbl9saW5lTnVtYmVyLCBjb25zdCBTdHJpbmcqIGluX3VybCwgY29uc3QgU3RyaW5nKiBpbl91
cmxSZWdleCwgY29uc3QgaW50KiBpbl9jb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyogaW5fY29u
ZGl0aW9uLCAvKmNvbnN0IFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6QnJlYWtwb2ludElkJiovIFN0
cmluZyogb3V0X2JyZWFrcG9pbnRJZCwgLypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6RGVidWdnZXI6OkxvY2F0aW9uID4gPiovIFJlZlB0cjxJbnNwZWN0b3JBcnJh
eT4mIG91dF9sb2NhdGlvbnMpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtwb2lu
dChFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBpbl9sb2NhdGlv
biwgY29uc3QgU3RyaW5nKiBpbl9jb25kaXRpb24sIC8qY29uc3QgVHlwZUJ1aWxkZXI6OkRlYnVn
Z2VyOjpCcmVha3BvaW50SWQmKi8gU3RyaW5nKiBvdXRfYnJlYWtwb2ludElkLCAvKlBhc3NSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpMb2NhdGlvbj4qLyBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgb3V0X2FjdHVhbExvY2F0aW9uKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGluX2JyZWFrcG9pbnRJZCkg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZVRvTG9jYXRpb24oRXJyb3JTdHJpbmcq
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgaW5fbG9jYXRpb24pID0gMDsKICAgICAg
ICB2aXJ0dWFsIHZvaWQgc3RlcE92ZXIoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVh
bCB2b2lkIHN0ZXBJbnRvKEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBz
dGVwT3V0KEVycm9yU3RyaW5nKikgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBwYXVzZShFcnJv
clN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKEVycm9yU3RyaW5nKikg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hJbkNvbnRlbnQoRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmIGluX3NjcmlwdElkLCBjb25zdCBTdHJpbmcmIGluX3F1ZXJ5LCBjb25zdCBi
b29sKiBpbl9jYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBpbl9pc1JlZ2V4LCAvKlBhc3NSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpQYWdlOjpTZWFyY2hNYXRjaCA+ID4q
LyBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+JiBvdXRfcmVzdWx0KSA9IDA7CiAgICAgICAgdmlydHVh
bCB2b2lkIGNhblNldFNjcmlwdFNvdXJjZShFcnJvclN0cmluZyosIC8qYm9vbCovIGJvb2wqIG91
dF9yZXN1bHQpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U2NyaXB0U291cmNlKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9zY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBpbl9zY3Jp
cHRTb3VyY2UsIGNvbnN0IGJvb2wqIGluX3ByZXZpZXcsIC8qUGFzc1JlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpDYWxsRnJhbWUgPiA+Ki8gUmVmUHRyPElu
c3BlY3RvckFycmF5PiYgb3V0X2NhbGxGcmFtZXMsIC8qUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+Ki8gUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIG91dF9yZXN1bHQpID0gMDsKICAgICAgICB2
aXJ0dWFsIHZvaWQgZ2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBp
bl9zY3JpcHRJZCwgLypjb25zdCBTdHJpbmcmKi8gU3RyaW5nKiBvdXRfc2NyaXB0U291cmNlKSA9
IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGdldEZ1bmN0aW9uRGV0YWlscyhFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgaW5fZnVuY3Rpb25JZCwgLypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpE
ZWJ1Z2dlcjo6RnVuY3Rpb25EZXRhaWxzPiovIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBvdXRf
ZGV0YWlscykgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZXRQYXVzZU9uRXhjZXB0aW9ucyhF
cnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fc3RhdGUpID0gMDsKICAgICAgICB2aXJ0dWFs
IHZvaWQgZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5f
Y2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgaW5fZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nKiBp
bl9vYmplY3RHcm91cCwgY29uc3QgYm9vbCogaW5faW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBjb25z
dCBib29sKiBpbl9yZXR1cm5CeVZhbHVlLCAvKlBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRp
bWU6OlJlbW90ZU9iamVjdD4qLyBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgb3V0X3Jlc3VsdCwg
Lypjb25zdCBib29sKiBjb25zdCovIGJvb2wqIG91dF93YXNUaHJvd24pID0gMDsKCiAgICBwcm90
ZWN0ZWQ6CiAgICAgICAgdmlydHVhbCB+RGVidWdnZXJDb21tYW5kSGFuZGxlcigpIHsgfQogICAg
fTsKCiNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKI2lmIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKQogICAgY2xhc3MgRE9NRGVidWdnZXJDb21tYW5kSGFuZGxlciB7CiAg
ICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCB2b2lkIHNldERPTUJyZWFrcG9pbnQoRXJyb3JTdHJp
bmcqLCBpbnQgaW5fbm9kZUlkLCBjb25zdCBTdHJpbmcmIGluX3R5cGUpID0gMDsKICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlRE9NQnJlYWtwb2ludChFcnJvclN0cmluZyosIGludCBpbl9ub2Rl
SWQsIGNvbnN0IFN0cmluZyYgaW5fdHlwZSkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZXRF
dmVudExpc3RlbmVyQnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fZXZl
bnROYW1lKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXJCcmVh
a3BvaW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl9ldmVudE5hbWUpID0gMDsKICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5zdHJ1bWVudGF0aW9uQnJlYWtwb2ludChFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgaW5fZXZlbnROYW1lKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZUluc3RydW1lbnRhdGlvbkJyZWFrcG9pbnQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIGluX2V2ZW50TmFtZSkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBzZXRYSFJCcmVha3Bv
aW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBpbl91cmwpID0gMDsKICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlWEhSQnJlYWtwb2ludChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYg
aW5fdXJsKSA9IDA7CgogICAgcHJvdGVjdGVkOgogICAgICAgIHZpcnR1YWwgfkRPTURlYnVnZ2Vy
Q29tbWFuZEhhbmRsZXIoKSB7IH0KICAgIH07CgojZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCiNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgIGNsYXNzIFByb2Zp
bGVyQ29tbWFuZEhhbmRsZXIgewogICAgcHVibGljOgogICAgICAgIHZpcnR1YWwgdm9pZCBjYXVz
ZXNSZWNvbXBpbGF0aW9uKEVycm9yU3RyaW5nKiwgLypib29sKi8gYm9vbCogb3V0X3Jlc3VsdCkg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBpc1NhbXBsaW5nKEVycm9yU3RyaW5nKiwgLypib29s
Ki8gYm9vbCogb3V0X3Jlc3VsdCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBoYXNIZWFwUHJv
ZmlsZXIoRXJyb3JTdHJpbmcqLCAvKmJvb2wqLyBib29sKiBvdXRfcmVzdWx0KSA9IDA7CiAgICAg
ICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnQoRXJyb3JTdHJpbmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIHN0b3AoRXJyb3JTdHJp
bmcqKSA9IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGdldFByb2ZpbGVIZWFkZXJzKEVycm9yU3Ry
aW5nKiwgLypQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3JPYmplY3QgPiA+
Ki8gUmVmUHRyPEluc3BlY3RvckFycmF5PiYgb3V0X2hlYWRlcnMpID0gMDsKICAgICAgICB2aXJ0
dWFsIHZvaWQgZ2V0UHJvZmlsZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fdHlwZSwg
aW50IGluX3VpZCwgLypQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qLyBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiYgb3V0X3Byb2ZpbGUpID0gMDsKICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
UHJvZmlsZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaW5fdHlwZSwgaW50IGluX3VpZCkg
PSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhclByb2ZpbGVzKEVycm9yU3RyaW5nKikgPSAw
OwogICAgICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKikgPSAw
OwogICAgICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0R2FyYmFnZShFcnJvclN0cmluZyopID0gMDsK
ICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T2JqZWN0QnlIZWFwT2JqZWN0SWQoRXJyb3JTdHJpbmcq
LCBpbnQgaW5fb2JqZWN0SWQsIGNvbnN0IFN0cmluZyogaW5fb2JqZWN0R3JvdXAsIC8qUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiovIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+JiBvdXRfcmVzdWx0KSA9IDA7CgogICAgcHJvdGVjdGVkOgogICAgICAgIHZpcnR1
YWwgflByb2ZpbGVyQ29tbWFuZEhhbmRsZXIoKSB7IH0KICAgIH07CgojZW5kaWYgLy8gRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpCiNpZiBFTkFCTEUoV09SS0VSUykKICAgIGNsYXNzIFdvcmtl
ckNvbW1hbmRIYW5kbGVyIHsKICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0V29y
a2VySW5zcGVjdGlvbkVuYWJsZWQoRXJyb3JTdHJpbmcqLCBib29sIGluX3ZhbHVlKSA9IDA7CiAg
ICAgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9Xb3JrZXIoRXJyb3JTdHJpbmcqLCBpbnQg
aW5fd29ya2VySWQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBpbl9tZXNzYWdlKSA9
IDA7CiAgICAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3RUb1dvcmtlcihFcnJvclN0cmluZyosIGlu
dCBpbl93b3JrZXJJZCkgPSAwOwogICAgICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbVdv
cmtlcihFcnJvclN0cmluZyosIGludCBpbl93b3JrZXJJZCkgPSAwOwogICAgICAgIHZpcnR1YWwg
dm9pZCBzZXRBdXRvY29ubmVjdFRvV29ya2VycyhFcnJvclN0cmluZyosIGJvb2wgaW5fdmFsdWUp
ID0gMDsKCiAgICBwcm90ZWN0ZWQ6CiAgICAgICAgdmlydHVhbCB+V29ya2VyQ29tbWFuZEhhbmRs
ZXIoKSB7IH0KICAgIH07CgojZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMpCgogICAgdmlydHVhbCB2
b2lkIHJlZ2lzdGVyQWdlbnQoQXBwbGljYXRpb25DYWNoZUNvbW1hbmRIYW5kbGVyKiBhcHBsaWNh
dGlvbkNhY2hlQWdlbnQpID0gMDsKICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckFnZW50KENTU0Nv
bW1hbmRIYW5kbGVyKiBjc3NBZ2VudCkgPSAwOwogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdl
bnQoQ29uc29sZUNvbW1hbmRIYW5kbGVyKiBjb25zb2xlQWdlbnQpID0gMDsKICAgIHZpcnR1YWwg
dm9pZCByZWdpc3RlckFnZW50KERPTUNvbW1hbmRIYW5kbGVyKiBkb21BZ2VudCkgPSAwOwojaWYg
RU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCgogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdl
bnQoRE9NRGVidWdnZXJDb21tYW5kSGFuZGxlciogZG9tRGVidWdnZXJBZ2VudCkgPSAwOwojZW5k
aWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCgogICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyQWdlbnQoRE9NU3RvcmFnZUNvbW1hbmRIYW5kbGVyKiBkb21TdG9yYWdlQWdlbnQpID0gMDsK
I2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCgogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQo
RGF0YWJhc2VDb21tYW5kSGFuZGxlciogZGF0YWJhc2VBZ2VudCkgPSAwOwojZW5kaWYgLy8gRU5B
QkxFKFNRTF9EQVRBQkFTRSkKCiNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKCiAgICB2
aXJ0dWFsIHZvaWQgcmVnaXN0ZXJBZ2VudChEZWJ1Z2dlckNvbW1hbmRIYW5kbGVyKiBkZWJ1Z2dl
ckFnZW50KSA9IDA7CiNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKCiNpZiBF
TkFCTEUoRklMRV9TWVNURU0pCgogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQoRmlsZVN5
c3RlbUNvbW1hbmRIYW5kbGVyKiBmaWxlU3lzdGVtQWdlbnQpID0gMDsKI2VuZGlmIC8vIEVOQUJM
RShGSUxFX1NZU1RFTSkKCiNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKCiAgICB2aXJ0dWFs
IHZvaWQgcmVnaXN0ZXJBZ2VudChJbmRleGVkREJDb21tYW5kSGFuZGxlciogaW5kZXhlZERCQWdl
bnQpID0gMDsKI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQoKICAgIHZpcnR1YWwg
dm9pZCByZWdpc3RlckFnZW50KEluc3BlY3RvckNvbW1hbmRIYW5kbGVyKiBpbnNwZWN0b3JBZ2Vu
dCkgPSAwOwogICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQWdlbnQoTWVtb3J5Q29tbWFuZEhhbmRs
ZXIqIG1lbW9yeUFnZW50KSA9IDA7CiAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJBZ2VudChOZXR3
b3JrQ29tbWFuZEhhbmRsZXIqIG5ldHdvcmtBZ2VudCkgPSAwOwogICAgdmlydHVhbCB2b2lkIHJl
Z2lzdGVyQWdlbnQoUGFnZUNvbW1hbmRIYW5kbGVyKiBwYWdlQWdlbnQpID0gMDsKI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQoKICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckFnZW50KFBy
b2ZpbGVyQ29tbWFuZEhhbmRsZXIqIHByb2ZpbGVyQWdlbnQpID0gMDsKI2VuZGlmIC8vIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQoKICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckFnZW50KFJ1
bnRpbWVDb21tYW5kSGFuZGxlciogcnVudGltZUFnZW50KSA9IDA7CiAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJBZ2VudChUaW1lbGluZUNvbW1hbmRIYW5kbGVyKiB0aW1lbGluZUFnZW50KSA9IDA7
CiNpZiBFTkFCTEUoV09SS0VSUykKCiAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJBZ2VudChXb3Jr
ZXJDb21tYW5kSGFuZGxlciogd29ya2VyQWdlbnQpID0gMDsKI2VuZGlmIC8vIEVOQUJMRShXT1JL
RVJTKQoKCiAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpID0gMDsKCiAgICBlbnVtIENv
bW1vbkVycm9yQ29kZSB7CiAgICAgICAgUGFyc2VFcnJvciA9IDAsCiAgICAgICAgSW52YWxpZFJl
cXVlc3QsCiAgICAgICAgTWV0aG9kTm90Rm91bmQsCiAgICAgICAgSW52YWxpZFBhcmFtcywKICAg
ICAgICBJbnRlcm5hbEVycm9yLAogICAgICAgIFNlcnZlckVycm9yLAogICAgICAgIExhc3RFbnRy
eSwKICAgIH07CgogICAgdm9pZCByZXBvcnRQcm90b2NvbEVycm9yKGNvbnN0IGxvbmcqIGNvbnN0
IGNhbGxJZCwgQ29tbW9uRXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgY29u
c3Q7CiAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UHJvdG9jb2xFcnJvcihjb25zdCBsb25nKiBjb25z
dCBjYWxsSWQsIENvbW1vbkVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIFBh
c3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGRhdGEpIGNvbnN0ID0gMDsKICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpID0gMDsKICAgIHN0YXRpYyBib29sIGdl
dENvbW1hbmROYW1lKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU3RyaW5nKiByZXN1bHQpOwoKICAg
IGVudW0gTWV0aG9kTmFtZXMgewogICAgICAgIGtJbnNwZWN0b3JfZW5hYmxlQ21kLAogICAgICAg
IGtJbnNwZWN0b3JfZGlzYWJsZUNtZCwKICAgICAgICBrTWVtb3J5X2dldERPTU5vZGVDb3VudENt
ZCwKICAgICAgICBrUGFnZV9lbmFibGVDbWQsCiAgICAgICAga1BhZ2VfZGlzYWJsZUNtZCwKICAg
ICAgICBrUGFnZV9hZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkQ21kLAogICAgICAgIGtQYWdlX3Jl
bW92ZVNjcmlwdFRvRXZhbHVhdGVPbkxvYWRDbWQsCiAgICAgICAga1BhZ2VfcmVsb2FkQ21kLAog
ICAgICAgIGtQYWdlX25hdmlnYXRlQ21kLAogICAgICAgIGtQYWdlX2dldENvb2tpZXNDbWQsCiAg
ICAgICAga1BhZ2VfZGVsZXRlQ29va2llQ21kLAogICAgICAgIGtQYWdlX2dldFJlc291cmNlVHJl
ZUNtZCwKICAgICAgICBrUGFnZV9nZXRSZXNvdXJjZUNvbnRlbnRDbWQsCiAgICAgICAga1BhZ2Vf
c2VhcmNoSW5SZXNvdXJjZUNtZCwKICAgICAgICBrUGFnZV9zZWFyY2hJblJlc291cmNlc0NtZCwK
ICAgICAgICBrUGFnZV9zZXREb2N1bWVudENvbnRlbnRDbWQsCiAgICAgICAga1BhZ2Vfc2V0U2Ny
ZWVuU2l6ZU92ZXJyaWRlQ21kLAogICAgICAgIGtSdW50aW1lX2V2YWx1YXRlQ21kLAogICAgICAg
IGtSdW50aW1lX2NhbGxGdW5jdGlvbk9uQ21kLAogICAgICAgIGtSdW50aW1lX2dldFByb3BlcnRp
ZXNDbWQsCiAgICAgICAga1J1bnRpbWVfcmVsZWFzZU9iamVjdENtZCwKICAgICAgICBrUnVudGlt
ZV9yZWxlYXNlT2JqZWN0R3JvdXBDbWQsCiAgICAgICAga1J1bnRpbWVfcnVuQ21kLAogICAgICAg
IGtDb25zb2xlX2VuYWJsZUNtZCwKICAgICAgICBrQ29uc29sZV9kaXNhYmxlQ21kLAogICAgICAg
IGtDb25zb2xlX2NsZWFyTWVzc2FnZXNDbWQsCiAgICAgICAga0NvbnNvbGVfc2V0TW9uaXRvcmlu
Z1hIUkVuYWJsZWRDbWQsCiAgICAgICAga0NvbnNvbGVfYWRkSW5zcGVjdGVkTm9kZUNtZCwKICAg
ICAgICBrTmV0d29ya19lbmFibGVDbWQsCiAgICAgICAga05ldHdvcmtfZGlzYWJsZUNtZCwKICAg
ICAgICBrTmV0d29ya19zZXRVc2VyQWdlbnRPdmVycmlkZUNtZCwKICAgICAgICBrTmV0d29ya19z
ZXRFeHRyYUhUVFBIZWFkZXJzQ21kLAogICAgICAgIGtOZXR3b3JrX2dldFJlc3BvbnNlQm9keUNt
ZCwKICAgICAgICBrTmV0d29ya19jYW5DbGVhckJyb3dzZXJDYWNoZUNtZCwKICAgICAgICBrTmV0
d29ya19jbGVhckJyb3dzZXJDYWNoZUNtZCwKICAgICAgICBrTmV0d29ya19jYW5DbGVhckJyb3dz
ZXJDb29raWVzQ21kLAogICAgICAgIGtOZXR3b3JrX2NsZWFyQnJvd3NlckNvb2tpZXNDbWQsCiAg
ICAgICAga05ldHdvcmtfc2V0Q2FjaGVEaXNhYmxlZENtZCwKI2lmIEVOQUJMRShTUUxfREFUQUJB
U0UpCgogICAgICAgIGtEYXRhYmFzZV9lbmFibGVDbWQsCiAgICAgICAga0RhdGFiYXNlX2Rpc2Fi
bGVDbWQsCiAgICAgICAga0RhdGFiYXNlX2dldERhdGFiYXNlVGFibGVOYW1lc0NtZCwKICAgICAg
ICBrRGF0YWJhc2VfZXhlY3V0ZVNRTENtZCwKI2VuZGlmIC8vIEVOQUJMRShTUUxfREFUQUJBU0Up
CgojaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCgogICAgICAgIGtJbmRleGVkREJfZW5hYmxl
Q21kLAogICAgICAgIGtJbmRleGVkREJfZGlzYWJsZUNtZCwKICAgICAgICBrSW5kZXhlZERCX3Jl
cXVlc3REYXRhYmFzZU5hbWVzRm9yRnJhbWVDbWQsCiAgICAgICAga0luZGV4ZWREQl9yZXF1ZXN0
RGF0YWJhc2VDbWQsCiNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKCiAgICAgICAg
a0RPTVN0b3JhZ2VfZW5hYmxlQ21kLAogICAgICAgIGtET01TdG9yYWdlX2Rpc2FibGVDbWQsCiAg
ICAgICAga0RPTVN0b3JhZ2VfZ2V0RE9NU3RvcmFnZUVudHJpZXNDbWQsCiAgICAgICAga0RPTVN0
b3JhZ2Vfc2V0RE9NU3RvcmFnZUl0ZW1DbWQsCiAgICAgICAga0RPTVN0b3JhZ2VfcmVtb3ZlRE9N
U3RvcmFnZUl0ZW1DbWQsCiAgICAgICAga0FwcGxpY2F0aW9uQ2FjaGVfZ2V0RnJhbWVzV2l0aE1h
bmlmZXN0c0NtZCwKICAgICAgICBrQXBwbGljYXRpb25DYWNoZV9lbmFibGVDbWQsCiAgICAgICAg
a0FwcGxpY2F0aW9uQ2FjaGVfZ2V0TWFuaWZlc3RGb3JGcmFtZUNtZCwKICAgICAgICBrQXBwbGlj
YXRpb25DYWNoZV9nZXRBcHBsaWNhdGlvbkNhY2hlRm9yRnJhbWVDbWQsCiNpZiBFTkFCTEUoRklM
RV9TWVNURU0pCgogICAgICAgIGtGaWxlU3lzdGVtX2VuYWJsZUNtZCwKICAgICAgICBrRmlsZVN5
c3RlbV9kaXNhYmxlQ21kLAojZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQoKICAgICAgICBr
RE9NX2dldERvY3VtZW50Q21kLAogICAgICAgIGtET01fcmVxdWVzdENoaWxkTm9kZXNDbWQsCiAg
ICAgICAga0RPTV9xdWVyeVNlbGVjdG9yQ21kLAogICAgICAgIGtET01fcXVlcnlTZWxlY3RvckFs
bENtZCwKICAgICAgICBrRE9NX3NldE5vZGVOYW1lQ21kLAogICAgICAgIGtET01fc2V0Tm9kZVZh
bHVlQ21kLAogICAgICAgIGtET01fcmVtb3ZlTm9kZUNtZCwKICAgICAgICBrRE9NX3NldEF0dHJp
YnV0ZVZhbHVlQ21kLAogICAgICAgIGtET01fc2V0QXR0cmlidXRlc0FzVGV4dENtZCwKICAgICAg
ICBrRE9NX3JlbW92ZUF0dHJpYnV0ZUNtZCwKICAgICAgICBrRE9NX2dldEV2ZW50TGlzdGVuZXJz
Rm9yTm9kZUNtZCwKICAgICAgICBrRE9NX2dldE91dGVySFRNTENtZCwKICAgICAgICBrRE9NX3Nl
dE91dGVySFRNTENtZCwKICAgICAgICBrRE9NX3BlcmZvcm1TZWFyY2hDbWQsCiAgICAgICAga0RP
TV9nZXRTZWFyY2hSZXN1bHRzQ21kLAogICAgICAgIGtET01fZGlzY2FyZFNlYXJjaFJlc3VsdHND
bWQsCiAgICAgICAga0RPTV9yZXF1ZXN0Tm9kZUNtZCwKICAgICAgICBrRE9NX3NldEluc3BlY3RN
b2RlRW5hYmxlZENtZCwKICAgICAgICBrRE9NX2hpZ2hsaWdodFJlY3RDbWQsCiAgICAgICAga0RP
TV9oaWdobGlnaHROb2RlQ21kLAogICAgICAgIGtET01faGlkZUhpZ2hsaWdodENtZCwKICAgICAg
ICBrRE9NX2hpZ2hsaWdodEZyYW1lQ21kLAogICAgICAgIGtET01fcHVzaE5vZGVCeVBhdGhUb0Zy
b250ZW5kQ21kLAogICAgICAgIGtET01fcmVzb2x2ZU5vZGVDbWQsCiAgICAgICAga0RPTV9nZXRB
dHRyaWJ1dGVzQ21kLAogICAgICAgIGtET01fbW92ZVRvQ21kLAogICAgICAgIGtET01fc2V0VG91
Y2hFbXVsYXRpb25FbmFibGVkQ21kLAogICAgICAgIGtET01fdW5kb0NtZCwKICAgICAgICBrRE9N
X21hcmtVbmRvYWJsZVN0YXRlQ21kLAogICAgICAgIGtDU1NfZW5hYmxlQ21kLAogICAgICAgIGtD
U1NfZGlzYWJsZUNtZCwKICAgICAgICBrQ1NTX2dldE1hdGNoZWRTdHlsZXNGb3JOb2RlQ21kLAog
ICAgICAgIGtDU1NfZ2V0SW5saW5lU3R5bGVzRm9yTm9kZUNtZCwKICAgICAgICBrQ1NTX2dldENv
bXB1dGVkU3R5bGVGb3JOb2RlQ21kLAogICAgICAgIGtDU1NfZ2V0QWxsU3R5bGVTaGVldHNDbWQs
CiAgICAgICAga0NTU19nZXRTdHlsZVNoZWV0Q21kLAogICAgICAgIGtDU1NfZ2V0U3R5bGVTaGVl
dFRleHRDbWQsCiAgICAgICAga0NTU19zZXRTdHlsZVNoZWV0VGV4dENtZCwKICAgICAgICBrQ1NT
X3NldFByb3BlcnR5VGV4dENtZCwKICAgICAgICBrQ1NTX3RvZ2dsZVByb3BlcnR5Q21kLAogICAg
ICAgIGtDU1Nfc2V0UnVsZVNlbGVjdG9yQ21kLAogICAgICAgIGtDU1NfYWRkUnVsZUNtZCwKICAg
ICAgICBrQ1NTX2dldFN1cHBvcnRlZENTU1Byb3BlcnRpZXNDbWQsCiAgICAgICAga0NTU19zdGFy
dFNlbGVjdG9yUHJvZmlsZXJDbWQsCiAgICAgICAga0NTU19zdG9wU2VsZWN0b3JQcm9maWxlckNt
ZCwKICAgICAgICBrVGltZWxpbmVfc3RhcnRDbWQsCiAgICAgICAga1RpbWVsaW5lX3N0b3BDbWQs
CiAgICAgICAga1RpbWVsaW5lX3NldEluY2x1ZGVNZW1vcnlEZXRhaWxzQ21kLAojaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpCgogICAgICAgIGtEZWJ1Z2dlcl9jYXVzZXNSZWNvbXBpbGF0
aW9uQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9zdXBwb3J0c05hdGl2ZUJyZWFrcG9pbnRzQ21kLAog
ICAgICAgIGtEZWJ1Z2dlcl9lbmFibGVDbWQsCiAgICAgICAga0RlYnVnZ2VyX2Rpc2FibGVDbWQs
CiAgICAgICAga0RlYnVnZ2VyX3NldEJyZWFrcG9pbnRzQWN0aXZlQ21kLAogICAgICAgIGtEZWJ1
Z2dlcl9zZXRCcmVha3BvaW50QnlVcmxDbWQsCiAgICAgICAga0RlYnVnZ2VyX3NldEJyZWFrcG9p
bnRDbWQsCiAgICAgICAga0RlYnVnZ2VyX3JlbW92ZUJyZWFrcG9pbnRDbWQsCiAgICAgICAga0Rl
YnVnZ2VyX2NvbnRpbnVlVG9Mb2NhdGlvbkNtZCwKICAgICAgICBrRGVidWdnZXJfc3RlcE92ZXJD
bWQsCiAgICAgICAga0RlYnVnZ2VyX3N0ZXBJbnRvQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9zdGVw
T3V0Q21kLAogICAgICAgIGtEZWJ1Z2dlcl9wYXVzZUNtZCwKICAgICAgICBrRGVidWdnZXJfcmVz
dW1lQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9zZWFyY2hJbkNvbnRlbnRDbWQsCiAgICAgICAga0Rl
YnVnZ2VyX2NhblNldFNjcmlwdFNvdXJjZUNtZCwKICAgICAgICBrRGVidWdnZXJfc2V0U2NyaXB0
U291cmNlQ21kLAogICAgICAgIGtEZWJ1Z2dlcl9nZXRTY3JpcHRTb3VyY2VDbWQsCiAgICAgICAg
a0RlYnVnZ2VyX2dldEZ1bmN0aW9uRGV0YWlsc0NtZCwKICAgICAgICBrRGVidWdnZXJfc2V0UGF1
c2VPbkV4Y2VwdGlvbnNDbWQsCiAgICAgICAga0RlYnVnZ2VyX2V2YWx1YXRlT25DYWxsRnJhbWVD
bWQsCiNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKCiNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKCiAgICAgICAga0RPTURlYnVnZ2VyX3NldERPTUJyZWFrcG9pbnRD
bWQsCiAgICAgICAga0RPTURlYnVnZ2VyX3JlbW92ZURPTUJyZWFrcG9pbnRDbWQsCiAgICAgICAg
a0RPTURlYnVnZ2VyX3NldEV2ZW50TGlzdGVuZXJCcmVha3BvaW50Q21kLAogICAgICAgIGtET01E
ZWJ1Z2dlcl9yZW1vdmVFdmVudExpc3RlbmVyQnJlYWtwb2ludENtZCwKICAgICAgICBrRE9NRGVi
dWdnZXJfc2V0SW5zdHJ1bWVudGF0aW9uQnJlYWtwb2ludENtZCwKICAgICAgICBrRE9NRGVidWdn
ZXJfcmVtb3ZlSW5zdHJ1bWVudGF0aW9uQnJlYWtwb2ludENtZCwKICAgICAgICBrRE9NRGVidWdn
ZXJfc2V0WEhSQnJlYWtwb2ludENtZCwKICAgICAgICBrRE9NRGVidWdnZXJfcmVtb3ZlWEhSQnJl
YWtwb2ludENtZCwKI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQoKI2lmIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQoKICAgICAgICBrUHJvZmlsZXJfY2F1c2VzUmVjb21w
aWxhdGlvbkNtZCwKICAgICAgICBrUHJvZmlsZXJfaXNTYW1wbGluZ0NtZCwKICAgICAgICBrUHJv
ZmlsZXJfaGFzSGVhcFByb2ZpbGVyQ21kLAogICAgICAgIGtQcm9maWxlcl9lbmFibGVDbWQsCiAg
ICAgICAga1Byb2ZpbGVyX2Rpc2FibGVDbWQsCiAgICAgICAga1Byb2ZpbGVyX3N0YXJ0Q21kLAog
ICAgICAgIGtQcm9maWxlcl9zdG9wQ21kLAogICAgICAgIGtQcm9maWxlcl9nZXRQcm9maWxlSGVh
ZGVyc0NtZCwKICAgICAgICBrUHJvZmlsZXJfZ2V0UHJvZmlsZUNtZCwKICAgICAgICBrUHJvZmls
ZXJfcmVtb3ZlUHJvZmlsZUNtZCwKICAgICAgICBrUHJvZmlsZXJfY2xlYXJQcm9maWxlc0NtZCwK
ICAgICAgICBrUHJvZmlsZXJfdGFrZUhlYXBTbmFwc2hvdENtZCwKICAgICAgICBrUHJvZmlsZXJf
Y29sbGVjdEdhcmJhZ2VDbWQsCiAgICAgICAga1Byb2ZpbGVyX2dldE9iamVjdEJ5SGVhcE9iamVj
dElkQ21kLAojZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCgojaWYgRU5BQkxF
KFdPUktFUlMpCgogICAgICAgIGtXb3JrZXJfc2V0V29ya2VySW5zcGVjdGlvbkVuYWJsZWRDbWQs
CiAgICAgICAga1dvcmtlcl9zZW5kTWVzc2FnZVRvV29ya2VyQ21kLAogICAgICAgIGtXb3JrZXJf
Y29ubmVjdFRvV29ya2VyQ21kLAogICAgICAgIGtXb3JrZXJfZGlzY29ubmVjdEZyb21Xb3JrZXJD
bWQsCiAgICAgICAga1dvcmtlcl9zZXRBdXRvY29ubmVjdFRvV29ya2Vyc0NtZCwKI2VuZGlmIC8v
IEVOQUJMRShXT1JLRVJTKQoKICAgIH07CgogICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbW1hbmRO
YW1lc1tdOwp9OwoKfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQojZW5kaWYgLy8gIWRlZmluZWQoSW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXJfaCkKCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>