<?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>88920</bug_id>
          
          <creation_ts>2012-06-12 14:27:11 -0700</creation_ts>
          <short_desc>Teach CodeGenerator to support for static, readonly, attributes</short_desc>
          <delta_ts>2012-07-26 12:51:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>88919</blocked>
    
    <blocked>92413</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>oliver</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>647335</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-06-12 14:27:11 -0700</bug_when>
    <thetext>Needed to implement Notification.permission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647336</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-06-12 14:27:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/11650330&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671803</commentid>
    <comment_count>2</comment_count>
      <attachid>152885</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-07-17 17:36:16 -0700</bug_when>
    <thetext>Created attachment 152885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671823</commentid>
    <comment_count>3</comment_count>
      <attachid>152892</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-07-17 18:00:49 -0700</bug_when>
    <thetext>Created attachment 152892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671847</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-07-17 18:17:00 -0700</bug_when>
    <thetext>Committed r122912
 http://trac.webkit.org/changeset/122912</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675223</commentid>
    <comment_count>5</comment_count>
      <attachid>152892</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-21 03:24:14 -0700</bug_when>
    <thetext>Comment on attachment 152892
Patch

This patch caused regressions (bug 91924 and bug 91925), which I will fix soon.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152885</attachid>
            <date>2012-07-17 17:36:16 -0700</date>
            <delta_ts>2012-07-17 18:00:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Teach-CodeGenerator-to-support-for-static-readonly-a.patch</filename>
            <type>text/plain</type>
            <size>25095</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBmMGNlYWQwYzdhNzg0Y2IzNWUxMWFlNmZkZDAwNDk3NDJmOGFiN2NmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUdWUs
IDE3IEp1bCAyMDEyIDE3OjMzOjE5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2ggQ29kZUdl
bmVyYXRvciB0byBzdXBwb3J0IGZvciBzdGF0aWMsIHJlYWRvbmx5LAogYXR0cmlidXRlcyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5MjAKClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKVXBkYXRlIHRoZSBwYXJzZXIgdG8gYmUgYWJsZSB0byBhY2NlcHQgdGhl
IHN0YXRpYyBrZXl3b3JkIGZvciBhdHRyaWJ1dGUuIFdlIHdpbGwgdHJlYXQgc3RhdGljIGF0dHJp
YnV0ZXMKbGlrZSBjdXN0b20gc3RhdGljIGZ1bmN0aW9ucy4gVGhleSBjYWxsIHRoZSBpbXBsZW1l
bnRpbmcgY2xhc3MgZGlyZWN0bHksIGFuZCBwYXNzIGluIHRoZSBFeGVjU3RhdGUgYXMgYSBzY3Jp
cHQgY29udGV4dC4KCiogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CihHZXRB
dHRyaWJ1dGVHZXR0ZXJOYW1lKTogRmFjdG9yIG91dCB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBh
dHRyaWJ1dGUgZ2V0dGVyIGZ1bmN0aW9uIG5hbWUuCihHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKTog
RmFjdG9yIG91dCB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBhdHRyaWJ1dGUgc2V0dGVyIGZ1bmN0
aW9uIG5hbWUuCihHZW5lcmF0ZUhlYWRlcik6IERldGVybWluZSB0aGF0IGEgY2xhc3MgaGFzIHJl
YWQtd3JpdGUgcHJvcGVydGllcyBvbmx5IGlmIHRoZXJlIGlzIGEgcmVhZC13cml0ZSBhdHRyaWJ1
dGUgdGhhdAppcyBub3Qgc3RhdGljLgooR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKTogU2tp
cCBzdGF0aWMgYXR0cmlidXRlcyBpbiB0aGUgb2JqZWN0IGhhc2ggdGFibGUuIFRoZXkgd2lsbCBi
ZSBhZGRlZCB0byB0aGUgY29uc3RydWN0b3IKaGFzaCB0YWJsZS4KKEdlbmVyYXRlSW1wbGVtZW50
YXRpb24pOiBMb29rIGZvciBzdGF0aWMgYXR0cmlidXRlcyB0byBhZGQgdG8gdGhlIGNvbnN0cnVj
dG9yIGhhc2ggdGFibGUuIE1ha2UgYSBjYWxsIHRvIHRoZSBzdGF0aWMKZnVuY3Rpb24gaW4gdGhl
IGNsYXNzLgoqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgooUGFyc2VJbnRlcmZhY2Up
OiBVcGRhdGUgdGhlIHByb2Nlc3NpbmcgYmVjYXVzZSBvZiB0aGUgcmVnZXggY2hhbmdlLgoqIGJp
bmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtOiBVcGRhdGUgdGhlIGF0dHJpYnV0ZSByZWdl
eC4KKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogVXBkYXRlIHRlc3Qg
cmVzdWx0cy4KKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6IFVwZGF0ZSB0
ZXN0IHJlc3VsdHMuCiogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGQgdGVz
dCBjYXNlcy4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMjYgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSB8ICAgODggKysrKysrKysrKysrKysrKystLS0KIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtICAgICAgIHwgICAxNCArKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbSAgICB8ICAgIDMgKy0K
IC4uLi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIHwgICAz
MSArKysrKysrCiAuLi4vV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmggICB8ICAgIDYgKysKIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
T2JqLmlkbCAgIHwgICAgNCArCiA3IGZpbGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspLCAx
NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIyYmNhYi4uMDdiMmMzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA3LTE3ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNv
bT4KKworICAgICAgICBUZWFjaCBDb2RlR2VuZXJhdG9yIHRvIHN1cHBvcnQgZm9yIHN0YXRpYywg
cmVhZG9ubHksIGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg4OTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRlIHRoZSBwYXJzZXIgdG8gYmUgYWJsZSB0byBhY2NlcHQgdGhlIHN0
YXRpYyBrZXl3b3JkIGZvciBhdHRyaWJ1dGUuIFdlIHdpbGwgdHJlYXQgc3RhdGljIGF0dHJpYnV0
ZXMKKyAgICAgICAgbGlrZSBjdXN0b20gc3RhdGljIGZ1bmN0aW9ucy4gVGhleSBjYWxsIHRoZSBp
bXBsZW1lbnRpbmcgY2xhc3MgZGlyZWN0bHksIGFuZCBwYXNzIGluIHRoZSBFeGVjU3RhdGUgYXMg
YSBzY3JpcHQgY29udGV4dC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgorICAgICAgICAoR2V0QXR0cmlidXRlR2V0dGVyTmFtZSk6IEZhY3RvciBvdXQg
dGhlIGNvbnN0cnVjdGlvbiBvZiB0aGUgYXR0cmlidXRlIGdldHRlciBmdW5jdGlvbiBuYW1lLgor
ICAgICAgICAoR2V0QXR0cmlidXRlU2V0dGVyTmFtZSk6IEZhY3RvciBvdXQgdGhlIGNvbnN0cnVj
dGlvbiBvZiB0aGUgYXR0cmlidXRlIHNldHRlciBmdW5jdGlvbiBuYW1lLgorICAgICAgICAoR2Vu
ZXJhdGVIZWFkZXIpOiBEZXRlcm1pbmUgdGhhdCBhIGNsYXNzIGhhcyByZWFkLXdyaXRlIHByb3Bl
cnRpZXMgb25seSBpZiB0aGVyZSBpcyBhIHJlYWQtd3JpdGUgYXR0cmlidXRlIHRoYXQKKyAgICAg
ICAgaXMgbm90IHN0YXRpYy4KKyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlc0hhc2hUYWJsZSk6
IFNraXAgc3RhdGljIGF0dHJpYnV0ZXMgaW4gdGhlIG9iamVjdCBoYXNoIHRhYmxlLiBUaGV5IHdp
bGwgYmUgYWRkZWQgdG8gdGhlIGNvbnN0cnVjdG9yCisgICAgICAgIGhhc2ggdGFibGUuCisgICAg
ICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKTogTG9vayBmb3Igc3RhdGljIGF0dHJpYnV0ZXMg
dG8gYWRkIHRvIHRoZSBjb25zdHJ1Y3RvciBoYXNoIHRhYmxlLiBNYWtlIGEgY2FsbCB0byB0aGUg
c3RhdGljCisgICAgICAgIGZ1bmN0aW9uIGluIHRoZSBjbGFzcy4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKFBhcnNlSW50ZXJmYWNlKTogVXBkYXRl
IHRoZSBwcm9jZXNzaW5nIGJlY2F1c2Ugb2YgdGhlIHJlZ2V4IGNoYW5nZS4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbTogVXBkYXRlIHRoZSBhdHRyaWJ1dGUgcmVn
ZXguCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6IFVw
ZGF0ZSB0ZXN0IHJlc3VsdHMuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oOiBVcGRhdGUgdGVzdCByZXN1bHRzLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbDogQWRkIHRlc3QgY2FzZXMuCisKIDIwMTItMDctMTYgIFRvbnkg
Q2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQb3NpdGlvbiBncmlkIGl0ZW1z
IGJ5IHJvdy9jb2x1bW4gaW5kZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMzFjMTY0Yi4uNDk5ODUwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTYzNCw2ICs2MzQsMjQgQEAgc3ViIFNob3VsZEdlbmVyYXRlVG9KU0ltcGxlbWVudGF0aW9uCiAg
ICAgcmV0dXJuIDA7CiB9CiAKK3N1YiBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lCit7CisgICAgbXkg
KCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOworICAgIGlmICgk
YXR0cmlidXRlLT5pc1N0YXRpYykgeworICAgICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAiQ29uc3RydWN0b3IiIC4gJGNvZGVHZW5lcmF0b3ItPldL
X3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICB9CisgICAgcmV0dXJu
ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+
IC9Db25zdHJ1Y3RvciQvID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKK30KKworc3ViIEdldEF0dHJp
YnV0ZVNldHRlck5hbWUKK3sKKyAgICBteSAoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRh
dHRyaWJ1dGUpID0gQF87CisgICAgaWYgKCRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7CisgICAgICAg
IHJldHVybiAic2V0IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjbGFzc05hbWUpIC4g
IkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZSk7CisgICAgfQorICAgIHJldHVybiAic2V0SlMiIC4gJGludGVyZmFjZU5h
bWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5h
bWUpIC4gKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLyA/ICJD
b25zdHJ1Y3RvciIgOiAiIik7Cit9CisKIHN1YiBHZXRGdW5jdGlvbk5hbWUKIHsKICAgICBteSAo
JGNsYXNzTmFtZSwgJGZ1bmN0aW9uKSA9IEBfOwpAQCAtNzg1LDcgKzgwMyw3IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgICMgQ2hlY2sgaWYgd2UgaGF2ZSBhbnkgd3JpdGFibGUgcHJvcGVydGll
cwogICAgIG15ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMDsKICAgICBmb3JlYWNoIChAeyRk
YXRhTm9kZS0+YXR0cmlidXRlc30pIHsKLSAgICAgICAgaWYgKCRfLT50eXBlICF+IC9ecmVhZG9u
bHlcIGF0dHJpYnV0ZSQvKSB7CisgICAgICAgIGlmICgkXy0+dHlwZSAhfiAvXnJlYWRvbmx5XCBh
dHRyaWJ1dGUkLyAmJiAhJF8tPmlzU3RhdGljKSB7CiAgICAgICAgICAgICAkaGFzUmVhZFdyaXRl
UHJvcGVydGllcyA9IDE7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTE3LDEwICsxMTM1LDEwIEBA
IHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRh
dGFOb2RlLT5hdHRyaWJ1dGVzfSkgewogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5n
ID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYgJHtjb25k
aXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAgICAgICAgICAgIG15
ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNm
aXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLyA/ICJDb25zdHJ1Y3RvciIgOiAiIik7CisgICAgICAg
ICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiSlNDOjpKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICB1bmxlc3MgKCRhdHRyaWJ1dGUt
PnR5cGUgPX4gL3JlYWRvbmx5LykgewotICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSAic2V0
SlMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAv
Q29uc3RydWN0b3IkLyA/ICJDb25zdHJ1Y3RvciIgOiAiIik7CisgICAgICAgICAgICAgICAgbXkg
JHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05h
bWUsICRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ2
b2lkICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFs
dWUpO1xuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CkBAIC0xMTg2LDYgKzEyMDQsNyBA
QCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCQkKQogICAgIG15IEBlbnRyaWVzID0g
KCk7CiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVz
fSkgeworICAgICAgICBuZXh0IGlmICgkYXR0cmlidXRlLT5pc1N0YXRpYyk7CiAgICAgICAgIG15
ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICBwdXNoKEBoYXNo
S2V5cywgJG5hbWUpOwogCkBAIC0xMTk2LDEzICsxMjE1LDEzIEBAIHN1YiBHZW5lcmF0ZUF0dHJp
YnV0ZXNIYXNoVGFibGUoJCQpCiAgICAgICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDAp
ID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKICAgICAgICAgcHVzaChAaGFzaFNwZWNp
YWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNl
TmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvID8g
IkNvbnN0cnVjdG9yIiA6ICIiKTsKKyAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdl
dHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgICAg
ICBwdXNoKEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKIAogICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
dHlwZSA9fiAvcmVhZG9ubHkvKSB7CiAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbXkgJHNldHRlciA9ICJzZXRKUyIgLiAk
aW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1
Y3RvciQvID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKKyAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBH
ZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkYXR0cmli
dXRlKTsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOwogICAgICAgICB9
CiAKQEAgLTE0MTMsNiArMTQzMiwzMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChA
eyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgICAgIG5leHQgdW5sZXNzICgkYXR0
cmlidXRlLT5pc1N0YXRpYyk7CisgICAgICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZTsKKyAgICAgICAgICAgIHB1c2goQGhhc2hLZXlzLCAkbmFtZSk7CisKKyAg
ICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOworICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMs
ICJEb250RGVsZXRlIikgdW5sZXNzICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkRlbGV0YWJsZSJ9OworICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJSZWFk
T25seSIpIGlmICRhdHRyaWJ1dGUtPnR5cGUgPX4gL3JlYWRvbmx5LzsKKyAgICAgICAgICAgIG15
ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIw
IjsKKyAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOworCisgICAgICAg
ICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAk
Z2V0dGVyKTsKKworICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnR5cGUgPX4gL3JlYWRvbmx5
LykgeworICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0
ZXJOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKKyAgICAgICAgICAgIGlmICgkY29uZGl0aW9u
YWwpIHsKKyAgICAgICAgICAgICAgICAkY29uZGl0aW9uYWxzeyRuYW1lfSA9ICRjb25kaXRpb25h
bDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0
aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbmV4dCB1bmxlc3Mg
KCRmdW5jdGlvbi0+aXNTdGF0aWMpOwogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPntv
dmVybG9hZEluZGV4fSAmJiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDE7CkBAIC0xNzE0
LDE0ICsxNzYwLDI0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgICAgICAg
ICAgbXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlKTsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgJGNvZGVHZW5l
cmF0b3ItPkFzc2VydE5vdFNlcXVlbmNlVHlwZSgkdHlwZSk7Ci0gICAgICAgICAgICAgICAgbXkg
JGdldEZ1bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLyA/ICJDb25zdHJ1Y3RvciIgOiAiIik7
CisgICAgICAgICAgICAgICAgbXkgJGdldEZ1bmN0aW9uTmFtZSA9IEdldEF0dHJpYnV0ZUdldHRl
ck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICAg
ICAgICAgIG15ICRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldLX2xj
Zmlyc3QoJG5hbWUpOwogCiAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFs
U3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNp
ZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlv
bmFsU3RyaW5nOwogCi0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVl
ICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFBy
b3BlcnR5TmFtZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNW
YWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIik7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgc2xvdEJhc2UiKSBpZiAhJGF0dHJpYnV0
ZS0+aXNTdGF0aWM7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIFByb3Bl
cnR5TmFtZSlcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
CisKKyAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMpIHsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOworICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXNjcmlwdENvbnRleHQp
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICIke2ltcGxDbGFzc05hbWV9
OjokaW1wbEdldHRlckZ1bmN0aW9uTmFtZShzY3JpcHRDb250ZXh0KSIsICIiKSAuICI7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHJlc3Vs
dDtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IGpzQ2FzdDwk
Y2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTtcbiIpOwogCiAgICAgICAgICAgICAgICAg
ICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWNo
ZWRBdHRyaWJ1dGUifSkgewpAQCAtMTgyOCw2ICsxODg0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiByZXN1bHQ7XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAifVxuXG4iKTsKIApAQCAtMTg1Niw3ICsxOTEzLDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgIyBDaGVjayBpZiB3ZSBoYXZlIGFueSB3cml0YWJsZSBh
dHRyaWJ1dGVzCiAgICAgICAgIG15ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMDsKICAgICAg
ICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKLSAg
ICAgICAgICAgICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMSBpZiAkYXR0cmlidXRlLT50eXBl
ICF+IC9ecmVhZG9ubHkvOworICAgICAgICAgICAgJGhhc1JlYWRXcml0ZVByb3BlcnRpZXMgPSAx
IGlmICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS8gJiYgISRhdHRyaWJ1dGUtPmlzU3Rh
dGljOwogICAgICAgICB9CiAKICAgICAgICAgbXkgJGhhc1NldHRlciA9ICRoYXNSZWFkV3JpdGVQ
cm9wZXJ0aWVzCkBAIC0xOTA0LDE0ICsxOTYxLDI0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9u
bHkvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICR0eXBlID0gJGNvZGVH
ZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBteSAkcHV0RnVuY3Rpb25OYW1lID0gInNldEpTIiAuICRpbnRl
cmZhY2VOYW1lIC4gICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRuYW1lKSAuICgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8gPyAiQ29uc3RydWN0b3IiIDog
IiIpOworICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHB1dEZ1bmN0aW9uTmFtZSA9IEdldEF0
dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUp
OwogICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUgPSAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFtZSk7CiAKICAgICAgICAgICAgICAgICAgICAg
ICAgIG15ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5l
cmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlv
bmFsU3RyaW5nfVxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCi0gICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtwdXRGdW5jdGlvbk5h
bWV9KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e3B1dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiIHRoaXNPYmplY3QiKSBpZiAhJGF0
dHJpYnV0ZS0+aXNTdGF0aWM7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiwgSlNWYWx1ZSB2YWx1ZSlcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRh
dHRyaWJ1dGUtPmlzU3RhdGljKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghc2NyaXB0Q29udGV4dClcbiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1
cm47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkbmF0aXZlVmFsdWUgPSBK
U1ZhbHVlVG9OYXRpdmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2ltcGxDbGFzc05h
bWV9OjpzZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShzY3JpcHRDb250ZXh0LCAke25hdGl2ZVZh
bHVlfSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpO1xuIik7CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9ICYmICEkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrU2VjdXJpdHkifSkgewpAQCAt
MjAyNiw2ICsyMDkzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHNldERPTUV4
Y2VwdGlvbihleGVjLCBlYyk7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlv
bmFsU3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExQYXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5w
bQppbmRleCBhZjAyYzY0Li4wNTdjMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbQpAQCAtMzM3LDExICszMzcsMTIgQEAgc3ViIFBhcnNlSW50ZXJm
YWNlCiAgICAgICAgICAgICBpZiAoJGxpbmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7CiAgICAgICAg
ICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0ZVNlbGVj
dG9yLzsKIAotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gKGRlZmluZWQoJDEp
ID8gJDEgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAg
ICAgICAgICAgICBteSAkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIp
ID8gJDIgOiAiICIpOyBjaG9wKCRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMpOworICAgICAg
ICAgICAgICAgIG15ICRpc1N0YXRpYyA9IGRlZmluZWQoJDEpOworICAgICAgICAgICAgICAgIG15
ICRhdHRyaWJ1dGVUeXBlID0gKGRlZmluZWQoJDIpID8gJDIgOiBkaWUoIlBhcnNpbmcgZXJyb3Ih
XG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRXh0
ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDMpID8gJDMgOiAiICIpOyBjaG9wKCRhdHRyaWJ1
dGVFeHRlbmRlZEF0dHJpYnV0ZXMpOwogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURh
dGFUeXBlID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6
XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAo
ZGVmaW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4p
IikpOworICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRhVHlwZSA9IChkZWZpbmVkKCQ0
KSA/ICQ0IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7CisgICAg
ICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFOYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBk
aWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKICAgCiAgICAgICAgICAg
ICAgICAgKCcnID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3IgcmVnZXhwIG1h
dGNoaW5nCiAKQEAgLTM1Myw2ICszNTQsNyBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKIAogICAgICAg
ICAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKICAgICAgICAg
ICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJGF0dHJpYnV0ZVR5cGUpOworICAgICAgICAgICAg
ICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMoJGlzU3RhdGljKTsKICAgICAgICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwogCiAgICAgICAgICAg
ICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJGF0dHJpYnV0ZURhdGFOYW1lKTsK
QEAgLTM2Miw3ICszNjQsNyBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKICAgICAgICAgICAgICAgICBt
eSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmF0dHJpYnV0ZXM7CiAgICAgICAgICAgICAgICAgcHVz
aChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOwogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAg
fCAgfD4gIEF0dHJpYnV0ZTsgVFlQRSBcIiRhdHRyaWJ1dGVUeXBlXCIgREFUQSBOQU1FIFwiJGF0
dHJpYnV0ZURhdGFOYW1lXCIgREFUQSBUWVBFIFwiJGF0dHJpYnV0ZURhdGFUeXBlXCIgR0VUIEVY
Q0VQVElPTj8gXCIkZ2V0dGVyRXhjZXB0aW9uXCIgU0VUIEVYQ0VQVElPTj8gXCIkc2V0dGVyRXhj
ZXB0aW9uXCIiIC4KKyAgICAgICAgICAgICAgICBwcmludCAiICB8ICB8PiAgQXR0cmlidXRlOyBT
VEFUSUM/IFwiJGlzU3RhdGljXCIgVFlQRSBcIiRhdHRyaWJ1dGVUeXBlXCIgREFUQSBOQU1FIFwi
JGF0dHJpYnV0ZURhdGFOYW1lXCIgREFUQSBUWVBFIFwiJGF0dHJpYnV0ZURhdGFUeXBlXCIgR0VU
IEVYQ0VQVElPTj8gXCIkZ2V0dGVyRXhjZXB0aW9uXCIgU0VUIEVYQ0VQVElPTj8gXCIkc2V0dGVy
RXhjZXB0aW9uXCIiIC4KICAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRl
cygiXG4gIHwgICAgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CiAKICAgICAgICAgICAgICAg
ICAkZ2V0dGVyRXhjZXB0aW9uID1+IHMvXHMrLy9nOwpAQCAtMzkxLDcgKzM5Myw3IEBAIHN1YiBQ
YXJzZUludGVyZmFjZQogICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50
eXBlKCRtZXRob2RUeXBlKTsKICAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRtZXRob2RFeHRl
bmRlZEF0dHJpYnV0ZXMpKTsKIAotICAgICAgICAgICAgICAgIHByaW50ICIgIHwgIHwtICBNZXRo
b2Q7IFRZUEUgXCIkbWV0aG9kVHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVYQ0VQVElPTj8g
XCIkbWV0aG9kRXhjZXB0aW9uXCIiIC4KKyAgICAgICAgICAgICAgICBwcmludCAiICB8ICB8LSAg
TWV0aG9kOyBTVEFUSUM/IFwiJGlzU3RhdGljXCIgVFlQRSBcIiRtZXRob2RUeXBlXCIgTkFNRSBc
IiRtZXRob2ROYW1lXCIgRVhDRVBUSU9OPyBcIiRtZXRob2RFeGNlcHRpb25cIiIgLgogICAgICAg
ICAgICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAg
IiwgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVu
bGVzcyAkYmVRdWlldDsKIAogICAgICAgICAgICAgICAgICRtZXRob2RFeGNlcHRpb24gPX4gcy9c
cysvL2c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFN0
cnVjdHVyZS5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJl
LnBtCmluZGV4IDVlMWFiNDUuLjJlM2ZiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCkBAIC01NSw2ICs1NSw3IEBAIHN0cnVjdCggZG9t
RnVuY3Rpb24gPT4gewogIyBVc2VkIHRvIHJlcHJlc2VudCBkb21DbGFzcyBjb250ZW50cyAobmFt
ZSBvZiBhdHRyaWJ1dGUsIHNpZ25hdHVyZSkKIHN0cnVjdCggZG9tQXR0cmlidXRlID0+IHsKICAg
ICB0eXBlID0+ICckJywgICAgICAgICAgICAgICMgQXR0cmlidXRlIHR5cGUgKGluY2x1ZGluZyBu
YW1lc3BhY2UpCisgICAgaXNTdGF0aWMgPT4gJyQnLAogICAgIHNpZ25hdHVyZSA9PiAnJCcsICAg
ICAgICAgIyBBdHRyaWJ1dGUgc2lnbmF0dXJlCiAgICAgZ2V0dGVyRXhjZXB0aW9ucyA9PiAnQCcs
ICAjIFBvc3NpYmx5IHJhaXNlZCBleGNlcHRpb25zLgogICAgIHNldHRlckV4Y2VwdGlvbnMgPT4g
J0AnLCAgIyBQb3NzaWJseSByYWlzZWQgZXhjZXB0aW9ucy4KQEAgLTExMCw2ICsxMTEsNiBAQCBv
dXIgJGludGVyZmFjZVNlbGVjdG9yID0gJyhpbnRlcmZhY2V8ZXhjZXB0aW9uKVxzKigoPzonIC4g
JGV4dGVuZGVkQXR0cmlidXRlU3ludAogb3VyICRpbnRlcmZhY2VNZXRob2RTZWxlY3RvciA9ICdc
cyooKD86JyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcgKT8pKHN0YXRpY1xzKyk/JyAu
ICRzdXBwb3J0ZWRUeXBlcyAuICdccyooJyAuICRpZGxJZE5zIC4gJyopXHMqXChccyooW2EtekEt
WjAtOTpccyw9XFtcXTw+P10qKSc7CiBvdXIgJGludGVyZmFjZVBhcmFtZXRlclNlbGVjdG9yID0g
JyhpbnxvdXQpXHMqKCg/OicgLiAkZXh0ZW5kZWRBdHRyaWJ1dGVTeW50YXggLiAnICk/KScgLiAk
c3VwcG9ydGVkVHlwZXMgLiAkc3VwcG9ydGVkVHlwZVN1ZmZpeCAuICdccyooJyAuICRpZGxJZE5z
IC4gJyopJzsKIAotb3VyICRpbnRlcmZhY2VBdHRyaWJ1dGVTZWxlY3RvciA9ICdccyoocmVhZG9u
bHkgYXR0cmlidXRlfGF0dHJpYnV0ZSlccyooJyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAu
ICcgKT8nIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbFR5cGUgLiAnKiknOworb3Vy
ICRpbnRlcmZhY2VBdHRyaWJ1dGVTZWxlY3RvciA9ICdccyooc3RhdGljXHMrKT8ocmVhZG9ubHkg
YXR0cmlidXRlfGF0dHJpYnV0ZSlccyooJyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcg
KT8nIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbFR5cGUgLiAnKiknOwogCiAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAppbmRleCAyNTVlYjU2Li5lY2IyMTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTY2LDYgKzE2
Niw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRh
YmxlVmFsdWVzW10gPQogICAgIHsgIkNPTlNUX1ZBTFVFXzEzIiwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9iakNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAg
eyAiQ09OU1RfVkFMVUVfMTQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVf
MTQpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJDT05TVF9KQVZBU0NSSVBU
IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3Qp
MCwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJzdGF0aWNSZWFkT25seUludEF0dHIiLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUludEF0dHIpLCAoaW50
cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJzdGF0aWNTdHJpbmdBdHRyIiwgRG9udERl
bGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0
T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNs
YXNzTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0
aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiY2xhc3NNZXRob2RXaXRo
T3B0aW9uYWwiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRo
b2RXaXRoT3B0aW9uYWwpLCAoaW50cHRyX3QpMSwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJjbGFz
c01ldGhvZDIiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRo
b2QyKSwgKGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCkBAIC00MTEsNiArNDEzLDI2IEBAIEpT
VmFsdWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgc2xvdEJhc2UsIFByb3BlcnR5CiB9CiAKIAorSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
clN0YXRpY1JlYWRPbmx5SW50QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIFByb3BlcnR5
TmFtZSkKK3sKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghc2NyaXB0Q29udGV4dCkKKyAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVy
KFRlc3RPYmo6OnN0YXRpY1JlYWRPbmx5SW50QXR0cihzY3JpcHRDb250ZXh0KSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworCitKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3Ry
aW5nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK3sKKyAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOworICAgIGlmICghc2NyaXB0Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIFRlc3RPYmo6
OnN0YXRpY1N0cmluZ0F0dHIoc2NyaXB0Q29udGV4dCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKKwogSlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNDYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC05MTQsNiArOTM2LDE1
IEBAIHZvaWQgSlNUZXN0T2JqOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTCiAgICAgbG9va3VwUHV0PEpTVGVzdE9iaiwgQmFz
ZT4oZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgJkpTVGVzdE9ialRhYmxlLCB0aGlzT2JqZWN0
LCBzbG90KTsKIH0KIAordm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEpTVmFsdWUgdmFsdWUpCit7CisgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKKyAgICBpZiAoIXNjcmlwdENvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICBUZXN0
T2JqOjpzZXRTdGF0aWNTdHJpbmdBdHRyKHNjcmlwdENvbnRleHQsIHVzdHJpbmdUb1N0cmluZyh2
YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUo
ZXhlYykpKTsKK30KKworCiB2b2lkIHNldEpTVGVzdE9ialNob3J0QXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAppbmRleCBjNzRiMjNmLi4xYTk2M2RhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC01OSw2
ICs1OSw5IEBAIHB1YmxpYzoKIAogCiAgICAgLy8gQ3VzdG9tIGF0dHJpYnV0ZXMKKyAgICBzdGF0
aWMgSlNDOjpKU1ZhbHVlIHN0YXRpY1JlYWRPbmx5SW50QXR0cihKU0M6OkV4ZWNTdGF0ZSopOwor
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgc3RhdGljU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSop
OworICAgIHN0YXRpYyB2b2lkIHNldFN0YXRpY1N0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUpOwogICAgIEpTQzo6SlNWYWx1ZSBjdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRl
KikgY29uc3Q7CiAgICAgdm9pZCBzZXRDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlKTsKIApAQCAtMjIwLDYgKzIyMyw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uKEpTQzo6CiBK
U0M6OkpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlJbnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVh
ZE9ubHlTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpKU1Zh
bHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlJbnRBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakNvbnN0cnVjdG9y
U3RhdGljU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpT
VmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpTaG9y
dEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpT
Qzo6SlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDUxM2RmMTAuLjM0MjY1YjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwK
QEAgLTM4LDYgKzM4LDEwIEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgICAgICAgICAgICByZWFkT25seUludEF0dHI7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgcmVhZE9ubHlTdHJpbmdBdHRyOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgIHJlYWRPbmx5VGVzdE9iakF0dHI7CisjaWYg
ZGVmaW5lZChURVNUSU5HX0pTKQorICAgICAgICBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIGxv
bmcgICAgIHN0YXRpY1JlYWRPbmx5SW50QXR0cjsKKyAgICAgICAgc3RhdGljIGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgICBzdGF0aWNTdHJpbmdBdHRyOworI2VuZGlmCiAgICAgICAgIGF0dHJp
YnV0ZSBzaG9ydCAgICAgICAgICAgICAgICAgICAgc2hvcnRBdHRyOwogICAgICAgICBhdHRyaWJ1
dGUgdW5zaWduZWQgc2hvcnQgICAgICAgICAgIHVuc2lnbmVkU2hvcnRBdHRyOwogICAgICAgICBh
dHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAgICAgICAgIGludEF0dHI7Ci0tIAoxLjcuMTAuMiAo
QXBwbGUgR2l0LTMzKQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152892</attachid>
            <date>2012-07-17 18:00:49 -0700</date>
            <delta_ts>2012-07-21 03:24:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Teach-CodeGenerator-to-support-for-static-readonly-a.patch</filename>
            <type>text/plain</type>
            <size>25206</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAwNzM3ZGJjMDM3MTZjMDE3MTFjNDhmYjVkMTRhNWVkNjhiZWQzNjUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUdWUs
IDE3IEp1bCAyMDEyIDE3OjQ5OjI3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gVGVhY2ggQ29kZUdl
bmVyYXRvciB0byBzdXBwb3J0IGZvciBzdGF0aWMsIHJlYWRvbmx5LAogYXR0cmlidXRlcyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg5MjAKIDxyZGFyOi8vcHJvYmxl
bS8xMTY1MDMzMD4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVXBkYXRlIHRoZSBwYXJz
ZXIgdG8gYmUgYWJsZSB0byBhY2NlcHQgdGhlIHN0YXRpYyBrZXl3b3JkIGZvciBhdHRyaWJ1dGUu
IFdlIHdpbGwgdHJlYXQgc3RhdGljIGF0dHJpYnV0ZXMKbGlrZSBjdXN0b20gc3RhdGljIGZ1bmN0
aW9ucy4gVGhleSBjYWxsIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MgZGlyZWN0bHksIGFuZCBwYXNz
IGluIHRoZSBFeGVjU3RhdGUgYXMgYSBzY3JpcHQgY29udGV4dC4KCiogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG06CihHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKTogRmFjdG9yIG91
dCB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBhdHRyaWJ1dGUgZ2V0dGVyIGZ1bmN0aW9uIG5hbWUu
CihHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKTogRmFjdG9yIG91dCB0aGUgY29uc3RydWN0aW9uIG9m
IHRoZSBhdHRyaWJ1dGUgc2V0dGVyIGZ1bmN0aW9uIG5hbWUuCihHZW5lcmF0ZUhlYWRlcik6IERl
dGVybWluZSB0aGF0IGEgY2xhc3MgaGFzIHJlYWQtd3JpdGUgcHJvcGVydGllcyBvbmx5IGlmIHRo
ZXJlIGlzIGEgcmVhZC13cml0ZSBhdHRyaWJ1dGUgdGhhdAppcyBub3Qgc3RhdGljLgooR2VuZXJh
dGVBdHRyaWJ1dGVzSGFzaFRhYmxlKTogU2tpcCBzdGF0aWMgYXR0cmlidXRlcyBpbiB0aGUgb2Jq
ZWN0IGhhc2ggdGFibGUuIFRoZXkgd2lsbCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0b3IKaGFz
aCB0YWJsZS4KKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBMb29rIGZvciBzdGF0aWMgYXR0cmli
dXRlcyB0byBhZGQgdG8gdGhlIGNvbnN0cnVjdG9yIGhhc2ggdGFibGUuIE1ha2UgYSBjYWxsIHRv
IHRoZSBzdGF0aWMKZnVuY3Rpb24gaW4gdGhlIGNsYXNzLgoqIGJpbmRpbmdzL3NjcmlwdHMvSURM
UGFyc2VyLnBtOgooUGFyc2VJbnRlcmZhY2UpOiBVcGRhdGUgdGhlIHByb2Nlc3NpbmcgYmVjYXVz
ZSBvZiB0aGUgcmVnZXggY2hhbmdlLgoqIGJpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBt
OiBVcGRhdGUgdGhlIGF0dHJpYnV0ZSByZWdleC4KKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcDogVXBkYXRlIHRlc3QgcmVzdWx0cy4KKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmg6IFVwZGF0ZSB0ZXN0IHJlc3VsdHMuCiogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGQgdGVzdCBjYXNlcy4KLS0tCiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKysrKysrCiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSB8ICAgODggKysrKysr
KysrKysrKysrKystLS0KIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2Vy
LnBtICAgICAgIHwgICAxNCArKy0tCiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TFN0cnVjdHVyZS5wbSAgICB8ICAgIDMgKy0KIC4uLi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwIHwgICAzMSArKysrKysrCiAuLi4vV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggICB8ICAgIDYgKysKIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCAgIHwgICAgNCArCiA3IGZpbGVzIGNo
YW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTE2ZTRmZS4uYmY0MTFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA3LTE3
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBUZWFjaCBDb2RlR2VuZXJh
dG9yIHRvIHN1cHBvcnQgZm9yIHN0YXRpYywgcmVhZG9ubHksIGF0dHJpYnV0ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4OTIwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMTY1MDMzMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIHBhcnNlciB0byBiZSBhYmxlIHRvIGFjY2VwdCB0
aGUgc3RhdGljIGtleXdvcmQgZm9yIGF0dHJpYnV0ZS4gV2Ugd2lsbCB0cmVhdCBzdGF0aWMgYXR0
cmlidXRlcworICAgICAgICBsaWtlIGN1c3RvbSBzdGF0aWMgZnVuY3Rpb25zLiBUaGV5IGNhbGwg
dGhlIGltcGxlbWVudGluZyBjbGFzcyBkaXJlY3RseSwgYW5kIHBhc3MgaW4gdGhlIEV4ZWNTdGF0
ZSBhcyBhIHNjcmlwdCBjb250ZXh0LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKTogRmFjdG9y
IG91dCB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBhdHRyaWJ1dGUgZ2V0dGVyIGZ1bmN0aW9uIG5h
bWUuCisgICAgICAgIChHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKTogRmFjdG9yIG91dCB0aGUgY29u
c3RydWN0aW9uIG9mIHRoZSBhdHRyaWJ1dGUgc2V0dGVyIGZ1bmN0aW9uIG5hbWUuCisgICAgICAg
IChHZW5lcmF0ZUhlYWRlcik6IERldGVybWluZSB0aGF0IGEgY2xhc3MgaGFzIHJlYWQtd3JpdGUg
cHJvcGVydGllcyBvbmx5IGlmIHRoZXJlIGlzIGEgcmVhZC13cml0ZSBhdHRyaWJ1dGUgdGhhdAor
ICAgICAgICBpcyBub3Qgc3RhdGljLgorICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRh
YmxlKTogU2tpcCBzdGF0aWMgYXR0cmlidXRlcyBpbiB0aGUgb2JqZWN0IGhhc2ggdGFibGUuIFRo
ZXkgd2lsbCBiZSBhZGRlZCB0byB0aGUgY29uc3RydWN0b3IKKyAgICAgICAgaGFzaCB0YWJsZS4K
KyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBMb29rIGZvciBzdGF0aWMgYXR0cmli
dXRlcyB0byBhZGQgdG8gdGhlIGNvbnN0cnVjdG9yIGhhc2ggdGFibGUuIE1ha2UgYSBjYWxsIHRv
IHRoZSBzdGF0aWMKKyAgICAgICAgZnVuY3Rpb24gaW4gdGhlIGNsYXNzLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAoUGFyc2VJbnRlcmZhY2UpOiBV
cGRhdGUgdGhlIHByb2Nlc3NpbmcgYmVjYXVzZSBvZiB0aGUgcmVnZXggY2hhbmdlLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtOiBVcGRhdGUgdGhlIGF0dHJpYnV0
ZSByZWdleC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cDogVXBkYXRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmg6IFVwZGF0ZSB0ZXN0IHJlc3VsdHMuCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOiBBZGQgdGVzdCBjYXNlcy4KKwogMjAxMi0wNy0xNyAg
QWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERC
OiBjcmVhdGVJbmRleCBzaG91bGQgdGhyb3cgSU5WQUxJRF9BQ0NFU1NfRVJSIGluc3RlYWQgb2Yg
Tk9UX1NVUFBPUlRFRF9FUlIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMzFjMTY0Yi4uNDk5ODUwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTYz
NCw2ICs2MzQsMjQgQEAgc3ViIFNob3VsZEdlbmVyYXRlVG9KU0ltcGxlbWVudGF0aW9uCiAgICAg
cmV0dXJuIDA7CiB9CiAKK3N1YiBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lCit7CisgICAgbXkgKCRp
bnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOworICAgIGlmICgkYXR0
cmlidXRlLT5pc1N0YXRpYykgeworICAgICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xj
Zmlyc3QoJGNsYXNzTmFtZSkgLiAiQ29uc3RydWN0b3IiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3Vj
Zmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICB9CisgICAgcmV0dXJuICJq
cyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9D
b25zdHJ1Y3RvciQvID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKK30KKworc3ViIEdldEF0dHJpYnV0
ZVNldHRlck5hbWUKK3sKKyAgICBteSAoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRy
aWJ1dGUpID0gQF87CisgICAgaWYgKCRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7CisgICAgICAgIHJl
dHVybiAic2V0IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNv
bnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZSk7CisgICAgfQorICAgIHJldHVybiAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUp
IC4gKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLyA/ICJDb25z
dHJ1Y3RvciIgOiAiIik7Cit9CisKIHN1YiBHZXRGdW5jdGlvbk5hbWUKIHsKICAgICBteSAoJGNs
YXNzTmFtZSwgJGZ1bmN0aW9uKSA9IEBfOwpAQCAtNzg1LDcgKzgwMyw3IEBAIHN1YiBHZW5lcmF0
ZUhlYWRlcgogICAgICMgQ2hlY2sgaWYgd2UgaGF2ZSBhbnkgd3JpdGFibGUgcHJvcGVydGllcwog
ICAgIG15ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMDsKICAgICBmb3JlYWNoIChAeyRkYXRh
Tm9kZS0+YXR0cmlidXRlc30pIHsKLSAgICAgICAgaWYgKCRfLT50eXBlICF+IC9ecmVhZG9ubHlc
IGF0dHJpYnV0ZSQvKSB7CisgICAgICAgIGlmICgkXy0+dHlwZSAhfiAvXnJlYWRvbmx5XCBhdHRy
aWJ1dGUkLyAmJiAhJF8tPmlzU3RhdGljKSB7CiAgICAgICAgICAgICAkaGFzUmVhZFdyaXRlUHJv
cGVydGllcyA9IDE7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTE3LDEwICsxMTM1LDEwIEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFO
b2RlLT5hdHRyaWJ1dGVzfSkgewogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0g
JGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYgJHtjb25kaXRp
b25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAgICAgICAgICAgIG15ICRn
ZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
dHlwZSA9fiAvQ29uc3RydWN0b3IkLyA/ICJDb25zdHJ1Y3RvciIgOiAiIik7CisgICAgICAgICAg
ICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNs
YXNzTmFtZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
SlNDOjpKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICB1bmxlc3MgKCRhdHRyaWJ1dGUtPnR5
cGUgPX4gL3JlYWRvbmx5LykgewotICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSAic2V0SlMi
IC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPm5hbWUpIC4gKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29u
c3RydWN0b3IkLyA/ICJDb25zdHJ1Y3RvciIgOiAiIik7CisgICAgICAgICAgICAgICAgbXkgJHNl
dHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUs
ICRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ2b2lk
ICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUp
O1xuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
I2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CkBAIC0xMTg2LDYgKzEyMDQsNyBAQCBz
dWIgR2VuZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCQkKQogICAgIG15IEBlbnRyaWVzID0gKCk7
CiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkg
eworICAgICAgICBuZXh0IGlmICgkYXR0cmlidXRlLT5pc1N0YXRpYyk7CiAgICAgICAgIG15ICRu
YW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICBwdXNoKEBoYXNoS2V5
cywgJG5hbWUpOwogCkBAIC0xMTk2LDEzICsxMjE1LDEzIEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0
ZXNIYXNoVGFibGUoJCQpCiAgICAgICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8g
am9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxz
LCAkc3BlY2lhbCk7CiAKLSAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFt
ZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFt
ZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvID8gIkNv
bnN0cnVjdG9yIiA6ICIiKTsKKyAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRl
ck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICBw
dXNoKEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKIAogICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+dHlw
ZSA9fiAvcmVhZG9ubHkvKSB7CiAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIpOwog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbXkgJHNldHRlciA9ICJzZXRKUyIgLiAkaW50
ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3Rv
ciQvID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKKyAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRB
dHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRl
KTsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOwogICAgICAgICB9CiAK
QEAgLTE0MTMsNiArMTQzMiwzMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRk
YXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgICAgIG5leHQgdW5sZXNzICgkYXR0cmli
dXRlLT5pc1N0YXRpYyk7CisgICAgICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZTsKKyAgICAgICAgICAgIHB1c2goQGhhc2hLZXlzLCAkbmFtZSk7CisKKyAgICAg
ICAgICAgIG15IEBzcGVjaWFscyA9ICgpOworICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJE
b250RGVsZXRlIikgdW5sZXNzICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRlbGV0YWJsZSJ9OworICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJSZWFkT25s
eSIpIGlmICRhdHRyaWJ1dGUtPnR5cGUgPX4gL3JlYWRvbmx5LzsKKyAgICAgICAgICAgIG15ICRz
cGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsK
KyAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOworCisgICAgICAgICAg
ICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNs
YXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAkZ2V0
dGVyKTsKKworICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnR5cGUgPX4gL3JlYWRvbmx5Lykg
eworICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJO
YW1lKCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKKyAgICAgICAgICAgIGlmICgkY29uZGl0aW9uYWwp
IHsKKyAgICAgICAgICAgICAgICAkY29uZGl0aW9uYWxzeyRuYW1lfSA9ICRjb25kaXRpb25hbDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9u
IChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbmV4dCB1bmxlc3MgKCRm
dW5jdGlvbi0+aXNTdGF0aWMpOwogICAgICAgICAgICAgbmV4dCBpZiAkZnVuY3Rpb24tPntvdmVy
bG9hZEluZGV4fSAmJiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDE7CkBAIC0xNzE0LDE0
ICsxNzYwLDI0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAg
bXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgICAgICAgICAg
bXkgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT50eXBlKTsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgJGNvZGVHZW5lcmF0
b3ItPkFzc2VydE5vdFNlcXVlbmNlVHlwZSgkdHlwZSk7Ci0gICAgICAgICAgICAgICAgbXkgJGdl
dEZ1bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICAkY29kZUdlbmVyYXRvci0+
V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLyA/ICJDb25zdHJ1Y3RvciIgOiAiIik7Cisg
ICAgICAgICAgICAgICAgbXkgJGdldEZ1bmN0aW9uTmFtZSA9IEdldEF0dHJpYnV0ZUdldHRlck5h
bWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICAgICAg
ICAgIG15ICRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmly
c3QoJG5hbWUpOwogCiAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3Ry
aW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAk
e2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFs
U3RyaW5nOwogCi0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlICR7
Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3Bl
cnR5TmFtZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1
ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIik7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgc2xvdEJhc2UiKSBpZiAhJGF0dHJpYnV0ZS0+
aXNTdGF0aWM7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIFByb3BlcnR5
TmFtZSlcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisK
KyAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+aXNTdGF0aWMpIHsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXNjcmlwdENvbnRleHQpXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICIke2ltcGxDbGFzc05hbWV9Ojok
aW1wbEdldHRlckZ1bmN0aW9uTmFtZShzY3JpcHRDb250ZXh0KSIsICIiKSAuICI7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHJlc3VsdDtc
biIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogY2FzdGVkVGhpcyA9IGpzQ2FzdDwkY2xh
c3NOYW1lKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTtcbiIpOwogCiAgICAgICAgICAgICAgICAgICAg
IGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWNoZWRB
dHRyaWJ1dGUifSkgewpAQCAtMTgyOCw2ICsxODg0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiByZXN1bHQ7XG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAifVxuXG4iKTsKIApAQCAtMTg1Niw3ICsxOTEzLDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgIyBDaGVjayBpZiB3ZSBoYXZlIGFueSB3cml0YWJsZSBhdHRy
aWJ1dGVzCiAgICAgICAgIG15ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMDsKICAgICAgICAg
Zm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKLSAgICAg
ICAgICAgICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzID0gMSBpZiAkYXR0cmlidXRlLT50eXBlICF+
IC9ecmVhZG9ubHkvOworICAgICAgICAgICAgJGhhc1JlYWRXcml0ZVByb3BlcnRpZXMgPSAxIGlm
ICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS8gJiYgISRhdHRyaWJ1dGUtPmlzU3RhdGlj
OwogICAgICAgICB9CiAKICAgICAgICAgbXkgJGhhc1NldHRlciA9ICRoYXNSZWFkV3JpdGVQcm9w
ZXJ0aWVzCkBAIC0xOTA0LDE0ICsxOTYxLDI0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkv
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICR0eXBlID0gJGNvZGVHZW5l
cmF0b3ItPlN0cmlwTW9kdWxlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBteSAkcHV0RnVuY3Rpb25OYW1lID0gInNldEpTIiAuICRpbnRlcmZh
Y2VOYW1lIC4gICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRuYW1lKSAuICgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8gPyAiQ29uc3RydWN0b3IiIDogIiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHB1dEZ1bmN0aW9uTmFtZSA9IEdldEF0dHJp
YnV0ZVNldHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkY29k
ZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFtZSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAg
IG15ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0
ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFs
U3RyaW5nfVxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCi0gICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtwdXRGdW5jdGlvbk5hbWV9
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke3B1
dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiIHRoaXNPYmplY3QiKSBpZiAhJGF0dHJp
YnV0ZS0+aXNTdGF0aWM7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiwgSlNWYWx1ZSB2YWx1ZSlcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRhdHRy
aWJ1dGUtPmlzU3RhdGljKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghc2NyaXB0Q29udGV4dClcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkbmF0aXZlVmFsdWUgPSBKU1Zh
bHVlVG9OYXRpdmUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAidmFsdWUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2ltcGxDbGFzc05hbWV9
OjpzZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShzY3JpcHRDb250ZXh0LCAke25hdGl2ZVZhbHVl
fSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMp
O1xuIik7CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrU2VjdXJpdHkifSkgewpAQCAtMjAy
Niw2ICsyMDkzLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBlYyk7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9Owog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFs
U3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpp
bmRleCBhZjAyYzY0Li4wNTdjMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETFBhcnNlci5wbQpAQCAtMzM3LDExICszMzcsMTIgQEAgc3ViIFBhcnNlSW50ZXJmYWNl
CiAgICAgICAgICAgICBpZiAoJGxpbmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7CiAgICAgICAgICAg
ICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0ZVNlbGVjdG9y
LzsKIAotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gKGRlZmluZWQoJDEpID8g
JDEgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAg
ICAgICAgICBteSAkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8g
JDIgOiAiICIpOyBjaG9wKCRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMpOworICAgICAgICAg
ICAgICAgIG15ICRpc1N0YXRpYyA9IGRlZmluZWQoJDEpOworICAgICAgICAgICAgICAgIG15ICRh
dHRyaWJ1dGVUeXBlID0gKGRlZmluZWQoJDIpID8gJDIgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5T
b3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRXh0ZW5k
ZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDMpID8gJDMgOiAiICIpOyBjaG9wKCRhdHRyaWJ1dGVF
eHRlbmRlZEF0dHJpYnV0ZXMpOwogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFU
eXBlID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4k
bGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVm
aW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikp
OworICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRhVHlwZSA9IChkZWZpbmVkKCQ0KSA/
ICQ0IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7CisgICAgICAg
ICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFOYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUo
IlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKICAgCiAgICAgICAgICAgICAg
ICAgKCcnID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3IgcmVnZXhwIG1hdGNo
aW5nCiAKQEAgLTM1Myw2ICszNTQsNyBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKIAogICAgICAgICAg
ICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKICAgICAgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJGF0dHJpYnV0ZVR5cGUpOworICAgICAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMoJGlzU3RhdGljKTsKICAgICAgICAgICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwogCiAgICAgICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJGF0dHJpYnV0ZURhdGFOYW1lKTsKQEAg
LTM2Miw3ICszNjQsNyBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKICAgICAgICAgICAgICAgICBteSAk
YXJyYXlSZWYgPSAkZGF0YU5vZGUtPmF0dHJpYnV0ZXM7CiAgICAgICAgICAgICAgICAgcHVzaChA
JGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOwogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAg
fD4gIEF0dHJpYnV0ZTsgVFlQRSBcIiRhdHRyaWJ1dGVUeXBlXCIgREFUQSBOQU1FIFwiJGF0dHJp
YnV0ZURhdGFOYW1lXCIgREFUQSBUWVBFIFwiJGF0dHJpYnV0ZURhdGFUeXBlXCIgR0VUIEVYQ0VQ
VElPTj8gXCIkZ2V0dGVyRXhjZXB0aW9uXCIgU0VUIEVYQ0VQVElPTj8gXCIkc2V0dGVyRXhjZXB0
aW9uXCIiIC4KKyAgICAgICAgICAgICAgICBwcmludCAiICB8ICB8PiAgQXR0cmlidXRlOyBTVEFU
SUM/IFwiJGlzU3RhdGljXCIgVFlQRSBcIiRhdHRyaWJ1dGVUeXBlXCIgREFUQSBOQU1FIFwiJGF0
dHJpYnV0ZURhdGFOYW1lXCIgREFUQSBUWVBFIFwiJGF0dHJpYnV0ZURhdGFUeXBlXCIgR0VUIEVY
Q0VQVElPTj8gXCIkZ2V0dGVyRXhjZXB0aW9uXCIgU0VUIEVYQ0VQVElPTj8gXCIkc2V0dGVyRXhj
ZXB0aW9uXCIiIC4KICAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygi
XG4gIHwgICAgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CiAKICAgICAgICAgICAgICAgICAk
Z2V0dGVyRXhjZXB0aW9uID1+IHMvXHMrLy9nOwpAQCAtMzkxLDcgKzM5Myw3IEBAIHN1YiBQYXJz
ZUludGVyZmFjZQogICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBl
KCRtZXRob2RUeXBlKTsKICAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRtZXRob2RFeHRlbmRl
ZEF0dHJpYnV0ZXMpKTsKIAotICAgICAgICAgICAgICAgIHByaW50ICIgIHwgIHwtICBNZXRob2Q7
IFRZUEUgXCIkbWV0aG9kVHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVYQ0VQVElPTj8gXCIk
bWV0aG9kRXhjZXB0aW9uXCIiIC4KKyAgICAgICAgICAgICAgICBwcmludCAiICB8ICB8LSAgTWV0
aG9kOyBTVEFUSUM/IFwiJGlzU3RhdGljXCIgVFlQRSBcIiRtZXRob2RUeXBlXCIgTkFNRSBcIiRt
ZXRob2ROYW1lXCIgRVhDRVBUSU9OPyBcIiRtZXRob2RFeGNlcHRpb25cIiIgLgogICAgICAgICAg
ICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgIiwg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVz
cyAkYmVRdWlldDsKIAogICAgICAgICAgICAgICAgICRtZXRob2RFeGNlcHRpb24gPX4gcy9ccysv
L2c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVj
dHVyZS5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBt
CmluZGV4IDVlMWFiNDUuLjJlM2ZiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCkBAIC01NSw2ICs1NSw3IEBAIHN0cnVjdCggZG9tRnVu
Y3Rpb24gPT4gewogIyBVc2VkIHRvIHJlcHJlc2VudCBkb21DbGFzcyBjb250ZW50cyAobmFtZSBv
ZiBhdHRyaWJ1dGUsIHNpZ25hdHVyZSkKIHN0cnVjdCggZG9tQXR0cmlidXRlID0+IHsKICAgICB0
eXBlID0+ICckJywgICAgICAgICAgICAgICMgQXR0cmlidXRlIHR5cGUgKGluY2x1ZGluZyBuYW1l
c3BhY2UpCisgICAgaXNTdGF0aWMgPT4gJyQnLAogICAgIHNpZ25hdHVyZSA9PiAnJCcsICAgICAg
ICAgIyBBdHRyaWJ1dGUgc2lnbmF0dXJlCiAgICAgZ2V0dGVyRXhjZXB0aW9ucyA9PiAnQCcsICAj
IFBvc3NpYmx5IHJhaXNlZCBleGNlcHRpb25zLgogICAgIHNldHRlckV4Y2VwdGlvbnMgPT4gJ0An
LCAgIyBQb3NzaWJseSByYWlzZWQgZXhjZXB0aW9ucy4KQEAgLTExMCw2ICsxMTEsNiBAQCBvdXIg
JGludGVyZmFjZVNlbGVjdG9yID0gJyhpbnRlcmZhY2V8ZXhjZXB0aW9uKVxzKigoPzonIC4gJGV4
dGVuZGVkQXR0cmlidXRlU3ludAogb3VyICRpbnRlcmZhY2VNZXRob2RTZWxlY3RvciA9ICdccyoo
KD86JyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcgKT8pKHN0YXRpY1xzKyk/JyAuICRz
dXBwb3J0ZWRUeXBlcyAuICdccyooJyAuICRpZGxJZE5zIC4gJyopXHMqXChccyooW2EtekEtWjAt
OTpccyw9XFtcXTw+P10qKSc7CiBvdXIgJGludGVyZmFjZVBhcmFtZXRlclNlbGVjdG9yID0gJyhp
bnxvdXQpXHMqKCg/OicgLiAkZXh0ZW5kZWRBdHRyaWJ1dGVTeW50YXggLiAnICk/KScgLiAkc3Vw
cG9ydGVkVHlwZXMgLiAkc3VwcG9ydGVkVHlwZVN1ZmZpeCAuICdccyooJyAuICRpZGxJZE5zIC4g
JyopJzsKIAotb3VyICRpbnRlcmZhY2VBdHRyaWJ1dGVTZWxlY3RvciA9ICdccyoocmVhZG9ubHkg
YXR0cmlidXRlfGF0dHJpYnV0ZSlccyooJyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcg
KT8nIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbFR5cGUgLiAnKiknOworb3VyICRp
bnRlcmZhY2VBdHRyaWJ1dGVTZWxlY3RvciA9ICdccyooc3RhdGljXHMrKT8ocmVhZG9ubHkgYXR0
cmlidXRlfGF0dHJpYnV0ZSlccyooJyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcgKT8n
IC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbFR5cGUgLiAnKiknOwogCiAxOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAppbmRleCAyNTVlYjU2Li5lY2IyMTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTY2LDYgKzE2Niw4
IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxl
VmFsdWVzW10gPQogICAgIHsgIkNPTlNUX1ZBTFVFXzEzIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAi
Q09OU1RfVkFMVUVfMTQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfMTQp
LCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJDT05TVF9KQVZBU0NSSVBUIiwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3QpMCwg
Tm9JbnRyaW5zaWMgfSwKKyAgICB7ICJzdGF0aWNSZWFkT25seUludEF0dHIiLCBEb250RGVsZXRl
IHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUludEF0dHIpLCAoaW50cHRy
X3QpMCwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJzdGF0aWNTdHJpbmdBdHRyIiwgRG9udERlbGV0
ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2Jq
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNsYXNz
TWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9k
KSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiY2xhc3NNZXRob2RXaXRoT3B0
aW9uYWwiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RX
aXRoT3B0aW9uYWwpLCAoaW50cHRyX3QpMSwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJjbGFzc01l
dGhvZDIiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2Qy
KSwgKGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCkBAIC00MTEsNiArNDEzLDI2IEBAIEpTVmFs
dWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
c2xvdEJhc2UsIFByb3BlcnR5CiB9CiAKIAorSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0
YXRpY1JlYWRPbmx5SW50QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK3sKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghc2NyaXB0Q29udGV4dCkKKyAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKFRl
c3RPYmo6OnN0YXRpY1JlYWRPbmx5SW50QXR0cihzY3JpcHRDb250ZXh0KSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworCitKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5n
QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK3sKKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOworICAgIGlmICghc2NyaXB0Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nKGV4ZWMsIFRlc3RPYmo6OnN0
YXRpY1N0cmluZ0F0dHIoc2NyaXB0Q29udGV4dCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
KwogSlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNs
b3RCYXNlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganND
YXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC05MTQsNiArOTM2LDE1IEBA
IHZvaWQgSlNUZXN0T2JqOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTCiAgICAgbG9va3VwUHV0PEpTVGVzdE9iaiwgQmFzZT4o
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgJkpTVGVzdE9ialRhYmxlLCB0aGlzT2JqZWN0LCBz
bG90KTsKIH0KIAordm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEpTVmFsdWUgdmFsdWUpCit7CisgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKKyAgICBpZiAoIXNjcmlwdENvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICBUZXN0T2Jq
OjpzZXRTdGF0aWNTdHJpbmdBdHRyKHNjcmlwdENvbnRleHQsIHVzdHJpbmdUb1N0cmluZyh2YWx1
ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
YykpKTsKK30KKworCiB2b2lkIHNldEpTVGVzdE9ialNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaAppbmRleCBjNzRiMjNmLi4xYTk2M2RhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC01OSw2ICs1
OSw5IEBAIHB1YmxpYzoKIAogCiAgICAgLy8gQ3VzdG9tIGF0dHJpYnV0ZXMKKyAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIHN0YXRpY1JlYWRPbmx5SW50QXR0cihKU0M6OkV4ZWNTdGF0ZSopOworICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgc3RhdGljU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSopOwor
ICAgIHN0YXRpYyB2b2lkIHNldFN0YXRpY1N0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTVmFsdWUpOwogICAgIEpTQzo6SlNWYWx1ZSBjdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKikg
Y29uc3Q7CiAgICAgdm9pZCBzZXRDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlKTsKIApAQCAtMjIwLDYgKzIyMyw5IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uKEpTQzo6CiBKU0M6
OkpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlJbnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVhZE9u
bHlTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlJbnRBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkpTVmFsdWUganNUZXN0
T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3Rh
dGljU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFs
dWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6
SlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDUxM2RmMTAuLjM0MjY1YjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAg
LTM4LDYgKzM4LDEwIEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgICAgICAgICAgICByZWFkT25seUludEF0dHI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgcmVhZE9ubHlTdHJpbmdBdHRyOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgIHJlYWRPbmx5VGVzdE9iakF0dHI7CisjaWYgZGVm
aW5lZChURVNUSU5HX0pTKQorICAgICAgICBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcg
ICAgIHN0YXRpY1JlYWRPbmx5SW50QXR0cjsKKyAgICAgICAgc3RhdGljIGF0dHJpYnV0ZSBET01T
dHJpbmcgICAgICAgICBzdGF0aWNTdHJpbmdBdHRyOworI2VuZGlmCiAgICAgICAgIGF0dHJpYnV0
ZSBzaG9ydCAgICAgICAgICAgICAgICAgICAgc2hvcnRBdHRyOwogICAgICAgICBhdHRyaWJ1dGUg
dW5zaWduZWQgc2hvcnQgICAgICAgICAgIHVuc2lnbmVkU2hvcnRBdHRyOwogICAgICAgICBhdHRy
aWJ1dGUgbG9uZyAgICAgICAgICAgICAgICAgICAgIGludEF0dHI7Ci0tIAoxLjcuMTAuMiAoQXBw
bGUgR2l0LTMzKQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>