<?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>22352</bug_id>
          
          <creation_ts>2008-11-19 00:22:15 -0800</creation_ts>
          <short_desc>Annotate opcodes with their length</short_desc>
          <delta_ts>2008-12-09 11:19:49 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Judit Jász">jasy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>zwarich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>99284</commentid>
    <comment_count>0</comment_count>
    <who name="Judit Jász">jasy</who>
    <bug_when>2008-11-19 00:22:15 -0800</bug_when>
    <thetext>Annotating each opcode with length can be convenient in many cases instead of the using of hard&amp;#8211;coded constants. The file Opcode.h would be a suitable place to assign the lengths of the byte code instructions to the opcodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99289</commentid>
    <comment_count>1</comment_count>
      <attachid>25261</attachid>
    <who name="Judit Jász">jasy</who>
    <bug_when>2008-11-19 00:42:57 -0800</bug_when>
    <thetext>Created attachment 25261
Proposed patch

This solution was requested in the Bug #20764.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101852</commentid>
    <comment_count>2</comment_count>
      <attachid>25261</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-12-08 12:47:17 -0800</bug_when>
    <thetext>Comment on attachment 25261
Proposed patch

This is a really great idea. I only see two issues. First, you use an enum to store the lengths. It would make a lot more sense to use const ints instead. It would also make more sense to use OPCODE_SIZE instead of GET_OPCODE_SIZE, since there is no lookup and the value is resolved at compile time. I am r-&apos;ing this, but I really like the change and it is something we definitely need.

If you don&apos;t want to update this patch to ToT WebKit due to all the conflicts, you can tell me that you want me to do it. Or you can just do the bytecode interpreter and I can do the JIT, since the JIT code is changing a lot every day now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101867</commentid>
    <comment_count>3</comment_count>
      <attachid>25855</attachid>
    <who name="Judit Jász">jasy</who>
    <bug_when>2008-12-08 15:14:47 -0800</bug_when>
    <thetext>Created attachment 25855
requested patch

Does this patch contain the requested things or have I misunderstood something? Because this was not so big task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101892</commentid>
    <comment_count>4</comment_count>
      <attachid>25855</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-12-08 16:43:42 -0800</bug_when>
    <thetext>Comment on attachment 25855
requested patch

+ 

You introduced some trailing whitespace at the top of Opcode.cpp.

+    #define OPCODE_ID_SIZES(id, size) const int opcode_size_##id = size;

I prefer the style ##id_length to opcode_length_##id.

Other than that, r=me. I will apply these changes and land it tonight. Thanks for doing this cleanup. There are still other uses of hardcoded opcode lengths in the code that you didn&apos;t catch, but I will make a separate bug for those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101993</commentid>
    <comment_count>5</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-12-09 11:19:49 -0800</bug_when>
    <thetext>Landed in r39141, with the minor change of replacing SIZE with LENGTH after a suggestion by Geoff.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25261</attachid>
            <date>2008-11-19 00:42:57 -0800</date>
            <delta_ts>2008-12-08 15:14:47 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>opcode_length_patch</filename>
            <type>text/plain</type>
            <size>54349</size>
            <attacher name="Judit Jász">jasy</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM4NTkwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDgtMTEtMTggIEp1ZGl0IEph
c3ogIDxqYXN5QGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBCdWcgMjIzNTI6IEFubm90YXRpbmcgdGhlIG9wY29kZXMgd2l0
aCB0aGVpciBsZW5ndGhzLiAKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjM1Mj4KKyAgICAgICAgCisgICAgICAgIFRoZSBGT1JfRUFDSF9PUENPREVf
SUQgbWFjcm8gaW4gdGhlIE9wY29kZS5oIGlzIGF1Z21lbnRlZCB3aXRoIHRoZSBsZW5ndGhzIG9m
IHRoZSBpbnN0cnVjdGlvbnMuCisgICAgICAgIE9uZSBwbGFjZSB3aGVyZSB3ZSBjYW4gdXNlIHRo
ZXNlIHZhbHVlcyBpcyB0aGUgSklULiAgCisKKyAgICAgICAgKiBieXRlY29kZS9PcGNvZGUuY3Bw
OgorICAgICAgICAoSlNDOjopOgorICAgICAgICAqIGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAg
ICAoSlNDOjopOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAg
ICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklU
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAg
ICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcyk6CisKIDIwMDgtMTEtMTggIENh
bWVyb24gWndhcmljaCAgPHp3YXJpY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE1hY2llaiBTdGFjaG93aWFrIGFuZCBHZW9mZiBHYXJlbi4KSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL09wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvT3Bjb2RlLmNwcAkocmV2aXNpb24gMzg1NzEpCisrKyBKYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PcGNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogI2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpIHx8IEVOQUJMRShDT0RFQkxPQ0tfU0FN
UExJTkcpIHx8IEVOQUJMRShPUENPREVfU1RBVFMpCiAKIGNvbnN0IGNoYXIqIGNvbnN0IG9wY29k
ZU5hbWVzW10gPSB7Ci0jZGVmaW5lIE9QQ09ERV9OQU1FX0VOVFJZKG9wY29kZSkgI29wY29kZSwK
KyNkZWZpbmUgT1BDT0RFX05BTUVfRU5UUlkob3Bjb2RlLCBzaXplKSAjb3Bjb2RlLAogICAgIEZP
Ul9FQUNIX09QQ09ERV9JRChPUENPREVfTkFNRV9FTlRSWSkKICN1bmRlZiBPUENPREVfTkFNRV9F
TlRSWQogfTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCShyZXZpc2lvbiAzODU3MSkK
KysrIEphdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
OCwxMzkgKzM4LDE0NSBAQAogbmFtZXNwYWNlIEpTQyB7CiAKICAgICAjZGVmaW5lIEZPUl9FQUNI
X09QQ09ERV9JRChtYWNybykgXAotICAgICAgICBtYWNybyhvcF9lbnRlcikgXAotICAgICAgICBt
YWNybyhvcF9lbnRlcl93aXRoX2FjdGl2YXRpb24pIFwKLSAgICAgICAgbWFjcm8ob3BfY3JlYXRl
X2FyZ3VtZW50cykgXAotICAgICAgICBtYWNybyhvcF9jb252ZXJ0X3RoaXMpIFwKLSAgICAgICAg
XAotICAgICAgICBtYWNybyhvcF91bmV4cGVjdGVkX2xvYWQpIFwKLSAgICAgICAgbWFjcm8ob3Bf
bmV3X29iamVjdCkgXAotICAgICAgICBtYWNybyhvcF9uZXdfYXJyYXkpIFwKLSAgICAgICAgbWFj
cm8ob3BfbmV3X3JlZ2V4cCkgXAotICAgICAgICBtYWNybyhvcF9tb3YpIFwKLSAgICAgICAgXAot
ICAgICAgICBtYWNybyhvcF9ub3QpIFwKLSAgICAgICAgbWFjcm8ob3BfZXEpIFwKLSAgICAgICAg
bWFjcm8ob3BfZXFfbnVsbCkgXAotICAgICAgICBtYWNybyhvcF9uZXEpIFwKLSAgICAgICAgbWFj
cm8ob3BfbmVxX251bGwpIFwKLSAgICAgICAgbWFjcm8ob3Bfc3RyaWN0ZXEpIFwKLSAgICAgICAg
bWFjcm8ob3BfbnN0cmljdGVxKSBcCi0gICAgICAgIG1hY3JvKG9wX2xlc3MpIFwKLSAgICAgICAg
bWFjcm8ob3BfbGVzc2VxKSBcCi0gICAgICAgIFwKLSAgICAgICAgbWFjcm8ob3BfcHJlX2luYykg
XAotICAgICAgICBtYWNybyhvcF9wcmVfZGVjKSBcCi0gICAgICAgIG1hY3JvKG9wX3Bvc3RfaW5j
KSBcCi0gICAgICAgIG1hY3JvKG9wX3Bvc3RfZGVjKSBcCi0gICAgICAgIG1hY3JvKG9wX3RvX2pz
bnVtYmVyKSBcCi0gICAgICAgIG1hY3JvKG9wX25lZ2F0ZSkgXAotICAgICAgICBtYWNybyhvcF9h
ZGQpIFwKLSAgICAgICAgbWFjcm8ob3BfbXVsKSBcCi0gICAgICAgIG1hY3JvKG9wX2RpdikgXAot
ICAgICAgICBtYWNybyhvcF9tb2QpIFwKLSAgICAgICAgbWFjcm8ob3Bfc3ViKSBcCi0gICAgICAg
IFwKLSAgICAgICAgbWFjcm8ob3BfbHNoaWZ0KSBcCi0gICAgICAgIG1hY3JvKG9wX3JzaGlmdCkg
XAotICAgICAgICBtYWNybyhvcF91cnNoaWZ0KSBcCi0gICAgICAgIG1hY3JvKG9wX2JpdGFuZCkg
XAotICAgICAgICBtYWNybyhvcF9iaXR4b3IpIFwKLSAgICAgICAgbWFjcm8ob3BfYml0b3IpIFwK
LSAgICAgICAgbWFjcm8ob3BfYml0bm90KSBcCi0gICAgICAgIFwKLSAgICAgICAgbWFjcm8ob3Bf
aW5zdGFuY2VvZikgXAotICAgICAgICBtYWNybyhvcF90eXBlb2YpIFwKLSAgICAgICAgbWFjcm8o
b3BfaXNfdW5kZWZpbmVkKSBcCi0gICAgICAgIG1hY3JvKG9wX2lzX2Jvb2xlYW4pIFwKLSAgICAg
ICAgbWFjcm8ob3BfaXNfbnVtYmVyKSBcCi0gICAgICAgIG1hY3JvKG9wX2lzX3N0cmluZykgXAot
ICAgICAgICBtYWNybyhvcF9pc19vYmplY3QpIFwKLSAgICAgICAgbWFjcm8ob3BfaXNfZnVuY3Rp
b24pIFwKLSAgICAgICAgbWFjcm8ob3BfaW4pIFwKLSAgICAgICAgXAotICAgICAgICBtYWNybyhv
cF9yZXNvbHZlKSBcCi0gICAgICAgIG1hY3JvKG9wX3Jlc29sdmVfc2tpcCkgXAotICAgICAgICBt
YWNybyhvcF9yZXNvbHZlX2dsb2JhbCkgXAotICAgICAgICBtYWNybyhvcF9nZXRfc2NvcGVkX3Zh
cikgXAotICAgICAgICBtYWNybyhvcF9wdXRfc2NvcGVkX3ZhcikgXAotICAgICAgICBtYWNybyhv
cF9nZXRfZ2xvYmFsX3ZhcikgXAotICAgICAgICBtYWNybyhvcF9wdXRfZ2xvYmFsX3ZhcikgXAot
ICAgICAgICBtYWNybyhvcF9yZXNvbHZlX2Jhc2UpIFwKLSAgICAgICAgbWFjcm8ob3BfcmVzb2x2
ZV93aXRoX2Jhc2UpIFwKLSAgICAgICAgbWFjcm8ob3BfcmVzb2x2ZV9mdW5jKSBcCi0gICAgICAg
IG1hY3JvKG9wX2dldF9ieV9pZCkgXAotICAgICAgICBtYWNybyhvcF9nZXRfYnlfaWRfc2VsZikg
XAotICAgICAgICBtYWNybyhvcF9nZXRfYnlfaWRfcHJvdG8pIFwKLSAgICAgICAgbWFjcm8ob3Bf
Z2V0X2J5X2lkX2NoYWluKSBcCi0gICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9nZW5lcmljKSBc
Ci0gICAgICAgIG1hY3JvKG9wX2dldF9hcnJheV9sZW5ndGgpIFwKLSAgICAgICAgbWFjcm8ob3Bf
Z2V0X3N0cmluZ19sZW5ndGgpIFwKLSAgICAgICAgbWFjcm8ob3BfcHV0X2J5X2lkKSBcCi0gICAg
ICAgIG1hY3JvKG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uKSBcCi0gICAgICAgIG1hY3JvKG9wX3B1
dF9ieV9pZF9yZXBsYWNlKSBcCi0gICAgICAgIG1hY3JvKG9wX3B1dF9ieV9pZF9nZW5lcmljKSBc
Ci0gICAgICAgIG1hY3JvKG9wX2RlbF9ieV9pZCkgXAotICAgICAgICBtYWNybyhvcF9nZXRfYnlf
dmFsKSBcCi0gICAgICAgIG1hY3JvKG9wX3B1dF9ieV92YWwpIFwKLSAgICAgICAgbWFjcm8ob3Bf
ZGVsX2J5X3ZhbCkgXAotICAgICAgICBtYWNybyhvcF9wdXRfYnlfaW5kZXgpIFwKLSAgICAgICAg
bWFjcm8ob3BfcHV0X2dldHRlcikgXAotICAgICAgICBtYWNybyhvcF9wdXRfc2V0dGVyKSBcCi0g
ICAgICAgIFwKLSAgICAgICAgbWFjcm8ob3Bfam1wKSBcCi0gICAgICAgIG1hY3JvKG9wX2p0cnVl
KSBcCi0gICAgICAgIG1hY3JvKG9wX2pmYWxzZSkgXAotICAgICAgICBtYWNybyhvcF9qZXFfbnVs
bCkgXAotICAgICAgICBtYWNybyhvcF9qbmVxX251bGwpIFwKLSAgICAgICAgbWFjcm8ob3Bfam5s
ZXNzKSBcCi0gICAgICAgIG1hY3JvKG9wX2ptcF9zY29wZXMpIFwKLSAgICAgICAgbWFjcm8ob3Bf
bG9vcCkgXAotICAgICAgICBtYWNybyhvcF9sb29wX2lmX3RydWUpIFwKLSAgICAgICAgbWFjcm8o
b3BfbG9vcF9pZl9sZXNzKSBcCi0gICAgICAgIG1hY3JvKG9wX2xvb3BfaWZfbGVzc2VxKSBcCi0g
ICAgICAgIG1hY3JvKG9wX3N3aXRjaF9pbW0pIFwKLSAgICAgICAgbWFjcm8ob3Bfc3dpdGNoX2No
YXIpIFwKLSAgICAgICAgbWFjcm8ob3Bfc3dpdGNoX3N0cmluZykgXAotICAgICAgICBcCi0gICAg
ICAgIG1hY3JvKG9wX25ld19mdW5jKSBcCi0gICAgICAgIG1hY3JvKG9wX25ld19mdW5jX2V4cCkg
XAotICAgICAgICBtYWNybyhvcF9jYWxsKSBcCi0gICAgICAgIG1hY3JvKG9wX2NhbGxfZXZhbCkg
XAotICAgICAgICBtYWNybyhvcF90ZWFyX29mZl9hY3RpdmF0aW9uKSBcCi0gICAgICAgIG1hY3Jv
KG9wX3RlYXJfb2ZmX2FyZ3VtZW50cykgXAotICAgICAgICBtYWNybyhvcF9yZXQpIFwKLSAgICAg
ICAgXAotICAgICAgICBtYWNybyhvcF9jb25zdHJ1Y3QpIFwKLSAgICAgICAgbWFjcm8ob3BfY29u
c3RydWN0X3ZlcmlmeSkgXAotICAgICAgICBcCi0gICAgICAgIG1hY3JvKG9wX2dldF9wbmFtZXMp
IFwKLSAgICAgICAgbWFjcm8ob3BfbmV4dF9wbmFtZSkgXAotICAgICAgICBcCi0gICAgICAgIG1h
Y3JvKG9wX3B1c2hfc2NvcGUpIFwKLSAgICAgICAgbWFjcm8ob3BfcG9wX3Njb3BlKSBcCi0gICAg
ICAgIG1hY3JvKG9wX3B1c2hfbmV3X3Njb3BlKSBcCi0gICAgICAgIFwKLSAgICAgICAgbWFjcm8o
b3BfY2F0Y2gpIFwKLSAgICAgICAgbWFjcm8ob3BfdGhyb3cpIFwKLSAgICAgICAgbWFjcm8ob3Bf
bmV3X2Vycm9yKSBcCi0gICAgICAgIFwKLSAgICAgICAgbWFjcm8ob3BfanNyKSBcCi0gICAgICAg
IG1hY3JvKG9wX3NyZXQpIFwKLSAgICAgICAgXAotICAgICAgICBtYWNybyhvcF9kZWJ1ZykgXAot
ICAgICAgICBtYWNybyhvcF9wcm9maWxlX3dpbGxfY2FsbCkgXAotICAgICAgICBtYWNybyhvcF9w
cm9maWxlX2RpZF9jYWxsKSBcCisgICAgICAgIG1hY3JvKG9wX2VudGVyLCAxKSBcCisgICAgICAg
IG1hY3JvKG9wX2VudGVyX3dpdGhfYWN0aXZhdGlvbiwgMikgXAorICAgICAgICBtYWNybyhvcF9j
cmVhdGVfYXJndW1lbnRzLCAxKSBcCisgICAgICAgIG1hY3JvKG9wX2NvbnZlcnRfdGhpcywgMikg
XAorICAgICAgICBcCisgICAgICAgIG1hY3JvKG9wX3VuZXhwZWN0ZWRfbG9hZCwgMykgXAorICAg
ICAgICBtYWNybyhvcF9uZXdfb2JqZWN0LCAyKSBcCisgICAgICAgIG1hY3JvKG9wX25ld19hcnJh
eSwgNCkgXAorICAgICAgICBtYWNybyhvcF9uZXdfcmVnZXhwLCAzKSBcCisgICAgICAgIG1hY3Jv
KG9wX21vdiwgMykgXAorICAgICAgICBcCisgICAgICAgIG1hY3JvKG9wX25vdCwgMykgXAorICAg
ICAgICBtYWNybyhvcF9lcSwgNCkgXAorICAgICAgICBtYWNybyhvcF9lcV9udWxsLCAzKSBcCisg
ICAgICAgIG1hY3JvKG9wX25lcSwgNCkgXAorICAgICAgICBtYWNybyhvcF9uZXFfbnVsbCwgMykg
XAorICAgICAgICBtYWNybyhvcF9zdHJpY3RlcSwgNCkgXAorICAgICAgICBtYWNybyhvcF9uc3Ry
aWN0ZXEsIDQpIFwKKyAgICAgICAgbWFjcm8ob3BfbGVzcywgNCkgXAorICAgICAgICBtYWNybyhv
cF9sZXNzZXEsIDQpIFwKKyAgICAgICAgXAorICAgICAgICBtYWNybyhvcF9wcmVfaW5jLCAyKSBc
CisgICAgICAgIG1hY3JvKG9wX3ByZV9kZWMsIDIpIFwKKyAgICAgICAgbWFjcm8ob3BfcG9zdF9p
bmMsIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfcG9zdF9kZWMsIDMpIFwKKyAgICAgICAgbWFjcm8o
b3BfdG9fanNudW1iZXIsIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfbmVnYXRlLCA0KSBcCisgICAg
ICAgIG1hY3JvKG9wX2FkZCwgNSkgXAorICAgICAgICBtYWNybyhvcF9tdWwsIDUpIFwKKyAgICAg
ICAgbWFjcm8ob3BfZGl2LCA0KSBcCisgICAgICAgIG1hY3JvKG9wX21vZCwgNCkgXAorICAgICAg
ICBtYWNybyhvcF9zdWIsIDUpIFwKKyAgICAgICAgXAorICAgICAgICBtYWNybyhvcF9sc2hpZnQs
IDQpIFwKKyAgICAgICAgbWFjcm8ob3BfcnNoaWZ0LCA0KSBcCisgICAgICAgIG1hY3JvKG9wX3Vy
c2hpZnQsIDQpIFwKKyAgICAgICAgbWFjcm8ob3BfYml0YW5kLCA1KSBcCisgICAgICAgIG1hY3Jv
KG9wX2JpdHhvciwgNSkgXAorICAgICAgICBtYWNybyhvcF9iaXRvciwgNSkgXAorICAgICAgICBt
YWNybyhvcF9iaXRub3QsIDMpIFwKKyAgICAgICAgXAorICAgICAgICBtYWNybyhvcF9pbnN0YW5j
ZW9mLCA1KSBcCisgICAgICAgIG1hY3JvKG9wX3R5cGVvZiwgMykgXAorICAgICAgICBtYWNybyhv
cF9pc191bmRlZmluZWQsIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfaXNfYm9vbGVhbiwgMykgXAor
ICAgICAgICBtYWNybyhvcF9pc19udW1iZXIsIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfaXNfc3Ry
aW5nLCAzKSBcCisgICAgICAgIG1hY3JvKG9wX2lzX29iamVjdCwgMykgXAorICAgICAgICBtYWNy
byhvcF9pc19mdW5jdGlvbiwgMykgXAorICAgICAgICBtYWNybyhvcF9pbiwgNCkgXAorICAgICAg
ICBcCisgICAgICAgIG1hY3JvKG9wX3Jlc29sdmUsIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfcmVz
b2x2ZV9za2lwLCA0KSBcCisgICAgICAgIG1hY3JvKG9wX3Jlc29sdmVfZ2xvYmFsLCA2KSBcCisg
ICAgICAgIG1hY3JvKG9wX2dldF9zY29wZWRfdmFyLCA0KSBcCisgICAgICAgIG1hY3JvKG9wX3B1
dF9zY29wZWRfdmFyLCA0KSBcCisgICAgICAgIG1hY3JvKG9wX2dldF9nbG9iYWxfdmFyLCA0KSBc
CisgICAgICAgIG1hY3JvKG9wX3B1dF9nbG9iYWxfdmFyLCA0KSBcCisgICAgICAgIG1hY3JvKG9w
X3Jlc29sdmVfYmFzZSwgMykgXAorICAgICAgICBtYWNybyhvcF9yZXNvbHZlX3dpdGhfYmFzZSwg
NCkgXAorICAgICAgICBtYWNybyhvcF9yZXNvbHZlX2Z1bmMsIDQpIFwKKyAgICAgICAgbWFjcm8o
b3BfZ2V0X2J5X2lkLCA4KSBcCisgICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9zZWxmLCA4KSBc
CisgICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9wcm90bywgOCkgXAorICAgICAgICBtYWNybyhv
cF9nZXRfYnlfaWRfY2hhaW4sIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfZ2V0X2J5X2lkX2dlbmVy
aWMsIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfZ2V0X2FycmF5X2xlbmd0aCwgOCkgXAorICAgICAg
ICBtYWNybyhvcF9nZXRfc3RyaW5nX2xlbmd0aCwgOCkgXAorICAgICAgICBtYWNybyhvcF9wdXRf
YnlfaWQsIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfcHV0X2J5X2lkX3RyYW5zaXRpb24sIDgpIFwK
KyAgICAgICAgbWFjcm8ob3BfcHV0X2J5X2lkX3JlcGxhY2UsIDgpIFwKKyAgICAgICAgbWFjcm8o
b3BfcHV0X2J5X2lkX2dlbmVyaWMsIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfZGVsX2J5X2lkLCA0
KSBcCisgICAgICAgIG1hY3JvKG9wX2dldF9ieV92YWwsIDQpIFwKKyAgICAgICAgbWFjcm8ob3Bf
cHV0X2J5X3ZhbCwgNCkgXAorICAgICAgICBtYWNybyhvcF9kZWxfYnlfdmFsLCA0KSBcCisgICAg
ICAgIG1hY3JvKG9wX3B1dF9ieV9pbmRleCwgNCkgXAorICAgICAgICBtYWNybyhvcF9wdXRfZ2V0
dGVyLCA0KSBcCisgICAgICAgIG1hY3JvKG9wX3B1dF9zZXR0ZXIsIDQpIFwKKyAgICAgICAgXAor
ICAgICAgICBtYWNybyhvcF9qbXAsIDIpIFwKKyAgICAgICAgbWFjcm8ob3BfanRydWUsIDMpIFwK
KyAgICAgICAgbWFjcm8ob3BfamZhbHNlLCAzKSBcCisgICAgICAgIG1hY3JvKG9wX2plcV9udWxs
LCAzKSBcCisgICAgICAgIG1hY3JvKG9wX2puZXFfbnVsbCwgMykgXAorICAgICAgICBtYWNybyhv
cF9qbmxlc3MsIDQpIFwKKyAgICAgICAgbWFjcm8ob3Bfam1wX3Njb3BlcywgMykgXAorICAgICAg
ICBtYWNybyhvcF9sb29wLCAyKSBcCisgICAgICAgIG1hY3JvKG9wX2xvb3BfaWZfdHJ1ZSwgMykg
XAorICAgICAgICBtYWNybyhvcF9sb29wX2lmX2xlc3MsIDQpIFwKKyAgICAgICAgbWFjcm8ob3Bf
bG9vcF9pZl9sZXNzZXEsIDQpIFwKKyAgICAgICAgbWFjcm8ob3Bfc3dpdGNoX2ltbSwgNCkgXAor
ICAgICAgICBtYWNybyhvcF9zd2l0Y2hfY2hhciwgNCkgXAorICAgICAgICBtYWNybyhvcF9zd2l0
Y2hfc3RyaW5nLCA0KSBcCisgICAgICAgIFwKKyAgICAgICAgbWFjcm8ob3BfbmV3X2Z1bmMsIDMp
IFwKKyAgICAgICAgbWFjcm8ob3BfbmV3X2Z1bmNfZXhwLCAzKSBcCisgICAgICAgIG1hY3JvKG9w
X2NhbGwsIDUpIFwKKyAgICAgICAgbWFjcm8ob3BfY2FsbF9ldmFsLCA1KSBcCisgICAgICAgIG1h
Y3JvKG9wX3RlYXJfb2ZmX2FjdGl2YXRpb24sIDIpIFwKKyAgICAgICAgbWFjcm8ob3BfdGVhcl9v
ZmZfYXJndW1lbnRzLCAxKSBcCisgICAgICAgIG1hY3JvKG9wX3JldCwgMikgXAorICAgICAgICBc
CisgICAgICAgIG1hY3JvKG9wX2NvbnN0cnVjdCwgNykgXAorICAgICAgICBtYWNybyhvcF9jb25z
dHJ1Y3RfdmVyaWZ5LCAzKSBcCisgICAgICAgIFwKKyAgICAgICAgbWFjcm8ob3BfZ2V0X3BuYW1l
cywgMykgXAorICAgICAgICBtYWNybyhvcF9uZXh0X3BuYW1lLCA0KSBcCisgICAgICAgIFwKKyAg
ICAgICAgbWFjcm8ob3BfcHVzaF9zY29wZSwgMikgXAorICAgICAgICBtYWNybyhvcF9wb3Bfc2Nv
cGUsIDEpIFwKKyAgICAgICAgbWFjcm8ob3BfcHVzaF9uZXdfc2NvcGUsIDQpIFwKKyAgICAgICAg
XAorICAgICAgICBtYWNybyhvcF9jYXRjaCwgMikgXAorICAgICAgICBtYWNybyhvcF90aHJvdywg
MikgXAorICAgICAgICBtYWNybyhvcF9uZXdfZXJyb3IsIDQpIFwKKyAgICAgICAgXAorICAgICAg
ICBtYWNybyhvcF9qc3IsIDMpIFwKKyAgICAgICAgbWFjcm8ob3Bfc3JldCwgMikgXAorICAgICAg
ICBcCisgICAgICAgIG1hY3JvKG9wX2RlYnVnLCA0KSBcCisgICAgICAgIG1hY3JvKG9wX3Byb2Zp
bGVfd2lsbF9jYWxsLCAyKSBcCisgICAgICAgIG1hY3JvKG9wX3Byb2ZpbGVfZGlkX2NhbGwsIDIp
IFwKICAgICAgICAgXAotICAgICAgICBtYWNybyhvcF9lbmQpIC8vIGVuZCBtdXN0IGJlIHRoZSBs
YXN0IG9wY29kZSBpbiB0aGUgbGlzdAorICAgICAgICBtYWNybyhvcF9lbmQsIDIpIC8vIGVuZCBt
dXN0IGJlIHRoZSBsYXN0IG9wY29kZSBpbiB0aGUgbGlzdAogCi0gICAgI2RlZmluZSBPUENPREVf
SURfRU5VTShvcGNvZGUpIG9wY29kZSwKKyAgICAjZGVmaW5lIE9QQ09ERV9JRF9FTlVNKG9wY29k
ZSwgc2l6ZSkgb3Bjb2RlLAogICAgICAgICB0eXBlZGVmIGVudW0geyBGT1JfRUFDSF9PUENPREVf
SUQoT1BDT0RFX0lEX0VOVU0pIH0gT3Bjb2RlSUQ7CiAgICAgI3VuZGVmIE9QQ09ERV9JRF9FTlVN
CiAKKyAgICAjZGVmaW5lIE9QQ09ERV9JRF9TSVpFKG9wY29kZSwgc2l6ZSkgT1BfU0laRV8jI29w
Y29kZT1zaXplLAorICAgICAgICB0eXBlZGVmIGVudW0geyBGT1JfRUFDSF9PUENPREVfSUQoT1BD
T0RFX0lEX1NJWkUpIH0gT3Bjb2RlU2l6ZTsKKyAgICAjdW5kZWYgT1BDT0RFX0lEX1NJWkUKKyAg
ICAKKyAgICAjZGVmaW5lIEdFVF9PUENPREVfU0laRShvcGNvZGUpIE9QX1NJWkVfIyNvcGNvZGUg
CisgICAgCiAgICAgY29uc3QgaW50IG51bU9wY29kZUlEcyA9IG9wX2VuZCArIDE7CiAKLSAgICAj
ZGVmaW5lIFZFUklGWV9PUENPREVfSUQoaWQpIENPTVBJTEVfQVNTRVJUKGlkIDw9IG9wX2VuZCwg
QVNTRVJUX1RIQVRfSlNfT1BDT0RFX0lEU19BUkVfVkFMSUQpOworICAgICNkZWZpbmUgVkVSSUZZ
X09QQ09ERV9JRChpZCwgb3ApIENPTVBJTEVfQVNTRVJUKGlkIDw9IG9wX2VuZCwgQVNTRVJUX1RI
QVRfSlNfT1BDT0RFX0lEU19BUkVfVkFMSUQpOwogICAgICAgICBGT1JfRUFDSF9PUENPREVfSUQo
VkVSSUZZX09QQ09ERV9JRCk7CiAgICAgI3VuZGVmIFZFUklGWV9PUENPREVfSUQKIApJbmRleDog
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMzg1
NzEpCisrKyBKYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE0NTQsMTEgKzE0NTQsMTEgQEAgSlNWYWx1ZSogSW50ZXJwcmV0ZXI6OnBy
aXZhdGVFeGVjdXRlKEV4ZQogICAgIC8vIGhlcmUgYmVjYXVzZSBvdXIgbGFiZWxzIGFyZSBvbmx5
IGluIHNjb3BlIGluc2lkZSB0aGlzIGZ1bmN0aW9uLgogICAgIGlmIChmbGFnID09IEluaXRpYWxp
emVBbmRSZXR1cm4pIHsKICAgICAgICAgI2lmIEhBVkUoQ09NUFVURURfR09UTykKLSAgICAgICAg
ICAgICNkZWZpbmUgQUREX0JZVEVDT0RFKGlkKSBtX29wY29kZVRhYmxlW2lkXSA9ICYmaWQ7Cisg
ICAgICAgICAgICAjZGVmaW5lIEFERF9CWVRFQ09ERShpZCwgc2l6ZSkgbV9vcGNvZGVUYWJsZVtp
ZF0gPSAmJmlkOwogICAgICAgICAgICAgICAgIEZPUl9FQUNIX09QQ09ERV9JRChBRERfQllURUNP
REUpOwogICAgICAgICAgICAgI3VuZGVmIEFERF9CWVRFQ09ERQogCi0gICAgICAgICAgICAjZGVm
aW5lIEFERF9PUENPREVfSUQoaWQpIG1fb3Bjb2RlSURUYWJsZS5hZGQoJiZpZCwgaWQpOworICAg
ICAgICAgICAgI2RlZmluZSBBRERfT1BDT0RFX0lEKGlkLCBzaXplKSBtX29wY29kZUlEVGFibGUu
YWRkKCYmaWQsIGlkKTsKICAgICAgICAgICAgICAgICBGT1JfRUFDSF9PUENPREVfSUQoQUREX09Q
Q09ERV9JRCk7CiAgICAgICAgICAgICAjdW5kZWYgQUREX09QQ09ERV9JRAogICAgICAgICAgICAg
QVNTRVJUKG1fb3Bjb2RlSURUYWJsZS5zaXplKCkgPT0gbnVtT3Bjb2RlSURzKTsKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCShyZXZpc2lvbiAzODU3MSkKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTEzLDcgKzExMTMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihzcmMsIFg4Njo6ZWF4LCBpKTsKICAgICAgICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAg
ICBpICs9IDM7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9tb3YpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9hZGQ6IHsKQEAgLTEx
NDUsNyArMTE0NSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGkgKz0gNTsKKyAgICAg
ICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2FkZCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2VuZDogewpAQCAtMTE1NCwxMyArMTE1NCwxMyBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsIFg4Njo6ZWF4LCBp
KTsKICAgICAgICAgICAgIF9fIHB1c2hsX20oUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyAqIHN0YXRp
Y19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSksIFg4Njo6ZWRpKTsKICAgICAgICAgICAgIF9f
IHJldCgpOwotICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RF
X1NJWkUob3BfZW5kKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3Bfam1wOiB7CiAgICAgICAgICAgICB1bnNpZ25lZCB0YXJnZXQgPSBpbnN0cnVjdGlvbltp
ICsgMV0udS5vcGVyYW5kOwogICAgICAgICAgICAgbV9qbXBUYWJsZS5hcHBlbmQoSm1wVGFibGUo
X18gZW1pdFVubGlua2VkSm1wKCksIGkgKyAxICsgdGFyZ2V0KSk7Ci0gICAgICAgICAgICBpICs9
IDI7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9qbXApOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wcmVfaW5jOiB7CkBAIC0xMTcw
LDcgKzExNzAsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAg
ICAgICBfXyBhZGRsX2k4cihnZXREZVRhZ2dlZENvbnN0YW50SW1tZWRpYXRlKEpTSW1tZWRpYXRl
OjpvbmVJbW1lZGlhdGUoKSksIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIG1fc2xvd0Nhc2VzLmFw
cGVuZChTbG93Q2FzZUVudHJ5KF9fIGVtaXRVbmxpbmtlZEpvKCksIGkpKTsKICAgICAgICAgICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoc3JjRHN0KTsKLSAgICAgICAgICAgIGkgKz0gMjsKKyAg
ICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3ByZV9pbmMpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wOiB7CkBAIC0xMTc4LDcgKzEx
NzgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAKICAgICAgICAgICAg
IHVuc2lnbmVkIHRhcmdldCA9IGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQ7CiAgICAgICAg
ICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShfXyBlbWl0VW5saW5rZWRKbXAoKSwgaSAr
IDEgKyB0YXJnZXQpKTsKLSAgICAgICAgICAgIGkgKz0gMjsKKyAgICAgICAgICAgIGkgKz0gR0VU
X09QQ09ERV9TSVpFKG9wX2xvb3ApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBvcF9sb29wX2lmX2xlc3M6IHsKQEAgLTExOTgsNyArMTE5OCw3IEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgICAgICBfXyBjbXBsX3Jy
KFg4Njo6ZWR4LCBYODY6OmVheCk7CiAgICAgICAgICAgICAgICAgbV9qbXBUYWJsZS5hcHBlbmQo
Sm1wVGFibGUoX18gZW1pdFVubGlua2VkSmwoKSwgaSArIDMgKyB0YXJnZXQpKTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9T
SVpFKG9wX2xvb3BfaWZfbGVzcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX2xvb3BfaWZfbGVzc2VxOiB7CkBAIC0xMjE4LDEzICsxMjE4LDEzIEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgICAgICBfXyBjbXBs
X3JyKFg4Njo6ZWR4LCBYODY6OmVheCk7CiAgICAgICAgICAgICAgICAgbV9qbXBUYWJsZS5hcHBl
bmQoSm1wVGFibGUoX18gZW1pdFVubGlua2VkSmxlKCksIGkgKyAzICsgdGFyZ2V0KSk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IEdFVF9PUENP
REVfU0laRShvcF9sb29wX2lmX2xlc3NlcSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX25ld19vYmplY3Q6IHsKICAgICAgICAgICAgIGVtaXRDVElDYWxs
KGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZXdfb2JqZWN0KTsKICAg
ICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3Bl
cmFuZCk7Ci0gICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVf
U0laRShvcF9uZXdfb2JqZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CkBAIC0xMjU0LDcgKzEyNTQsNyBAQCB2b2lkIEpJVDo6
cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBfXyBtb3ZsX3JtKFg4Njo6ZWR4
LCByZXBhdGNoR2V0QnlJZERlZmF1bHRPZmZzZXQsIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIEFT
U0VSVChYODZBc3NlbWJsZXI6OmdldERpZmZlcmVuY2VCZXR3ZWVuTGFiZWxzKGhvdFBhdGhCZWdp
biwgX18gbGFiZWwoKSkgPT0gcmVwYXRjaE9mZnNldFB1dEJ5SWRQcm9wZXJ0eU1hcE9mZnNldCk7
CiAKLSAgICAgICAgICAgIGkgKz0gODsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpF
KG9wX3B1dF9ieV9pZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX2dldF9ieV9pZDogewpAQCAtMTI4NCw3ICsxMjg0LDcgQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgQVNTRVJUKFg4NkFzc2VtYmxlcjo6Z2V0
RGlmZmVyZW5jZUJldHdlZW5MYWJlbHMoaG90UGF0aEJlZ2luLCBfXyBsYWJlbCgpKSA9PSByZXBh
dGNoT2Zmc2V0R2V0QnlJZFByb3BlcnR5TWFwT2Zmc2V0KTsKICAgICAgICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7CiAKLSAgICAgICAg
ICAgIGkgKz0gODsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2dldF9ieV9p
ZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2luc3Rh
bmNlb2Y6IHsKQEAgLTEzNDUsNyArMTM0NSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1h
aW5QYXNzKCkKIAogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlv
bltpICsgMV0udS5vcGVyYW5kKTsKIAotICAgICAgICAgICAgaSArPSA1OworICAgICAgICAgICAg
aSArPSBHRVRfT1BDT0RFX1NJWkUob3BfaW5zdGFuY2VvZik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2RlbF9ieV9pZDogewpAQCAtMTM1NCw3ICsxMzU0
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1p
dFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGlkZW50KSwgNCk7
CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVy
OjpjdGlfb3BfZGVsX2J5X2lkKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
aW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAg
ICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9kZWxfYnlfaWQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9tdWw6IHsKQEAgLTEzODUsNyArMTM4
NSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgIGNvbXBpbGVCaW5hcnlBcml0aE9wKG9wX211bCwgaW5zdHJ1
Y3Rpb25baSArIDFdLnUub3BlcmFuZCwgaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgaW5z
dHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgT3BlcmFuZFR5cGVzOjpmcm9tSW50KGluc3RydWN0
aW9uW2kgKyA0XS51Lm9wZXJhbmQpLCBpKTsKIAotICAgICAgICAgICAgaSArPSA1OworICAgICAg
ICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfbXVsKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X2Z1bmM6IHsKQEAgLTEzOTMsMTQgKzEzOTMs
MTQgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1p
dFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGZ1bmMpLCAwKTsK
ICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6
OmN0aV9vcF9uZXdfZnVuYyk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGlu
c3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAg
ICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfbmV3X2Z1bmMpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jYWxsOgogICAgICAgICBjYXNlIG9wX2Nh
bGxfZXZhbDoKICAgICAgICAgY2FzZSBvcF9jb25zdHJ1Y3Q6IHsKICAgICAgICAgICAgIGNvbXBp
bGVPcENhbGwob3Bjb2RlSUQsIGluc3RydWN0aW9uICsgaSwgaSwgY2FsbExpbmtJbmZvSW5kZXgr
Kyk7Ci0gICAgICAgICAgICBpICs9IChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyA3IDogNSk7
CisgICAgICAgICAgICBpICs9IChvcGNvZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBHRVRfT1BDT0RF
X1NJWkUob3BfY29uc3RydWN0KSA6IEdFVF9PUENPREVfU0laRShvcF9jYWxsKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9nbG9iYWxfdmFyOiB7
CkBAIC0xNDA4LDcgKzE0MDgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygp
CiAgICAgICAgICAgICBfXyBtb3ZsX2kzMnIoYXNJbnRlZ2VyKGdsb2JhbE9iamVjdCksIFg4Njo6
ZWF4KTsKICAgICAgICAgICAgIGVtaXRHZXRWYXJpYWJsZU9iamVjdFJlZ2lzdGVyKFg4Njo6ZWF4
LCBpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCBYODY6OmVheCk7CiAgICAgICAgICAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAg
ICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfZ2V0
X2dsb2JhbF92YXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9wdXRfZ2xvYmFsX3ZhcjogewpAQCAtMTQxNiw3ICsxNDE2LDcgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgSlNWYXJpYWJsZU9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNWYXJpYWJsZU9iamVjdCo+KGluc3RydWN0aW9uW2kg
KyAxXS51LmpzQ2VsbCk7CiAgICAgICAgICAgICBfXyBtb3ZsX2kzMnIoYXNJbnRlZ2VyKGdsb2Jh
bE9iamVjdCksIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWYXJpYWJsZU9iamVjdFJl
Z2lzdGVyKFg4Njo6ZWR4LCBYODY6OmVheCwgaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCk7
Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShv
cF9wdXRfZ2xvYmFsX3Zhcik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX2dldF9zY29wZWRfdmFyOiB7CkBAIC0xNDI5LDcgKzE0MjksNyBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBfXyBtb3ZsX21yKEZJRUxE
X09GRlNFVChTY29wZUNoYWluTm9kZSwgb2JqZWN0KSwgWDg2OjplYXgsIFg4Njo6ZWF4KTsKICAg
ICAgICAgICAgIGVtaXRHZXRWYXJpYWJsZU9iamVjdFJlZ2lzdGVyKFg4Njo6ZWF4LCBpbnN0cnVj
dGlvbltpICsgMl0udS5vcGVyYW5kLCBYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAg
aSArPSA0OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfZ2V0X3Njb3BlZF92
YXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRf
c2NvcGVkX3ZhcjogewpAQCAtMTQ0MiwxOCArMTQ0MiwxOCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVNYWluUGFzcygpCiAKICAgICAgICAgICAgIF9fIG1vdmxfbXIoRklFTERfT0ZGU0VUKFNj
b3BlQ2hhaW5Ob2RlLCBvYmplY3QpLCBYODY6OmVkeCwgWDg2OjplZHgpOwogICAgICAgICAgICAg
ZW1pdFB1dFZhcmlhYmxlT2JqZWN0UmVnaXN0ZXIoWDg2OjplYXgsIFg4Njo6ZWR4LCBpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAg
IGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3B1dF9zY29wZWRfdmFyKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGVhcl9vZmZfYWN0aXZhdGlvbjogewog
ICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25b
aSArIDFdLnUub3BlcmFuZCwgMCwgWDg2OjplY3gpOwogICAgICAgICAgICAgZW1pdENUSUNhbGwo
aW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3RlYXJfb2ZmX2FjdGl2YXRp
b24pOwotICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJ
WkUob3BfdGVhcl9vZmZfYWN0aXZhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX3RlYXJfb2ZmX2FyZ3VtZW50czogewogICAgICAgICAgICAgZW1p
dENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3RlYXJfb2Zm
X2FyZ3VtZW50cyk7Ci0gICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICBpICs9IEdFVF9P
UENPREVfU0laRShvcF90ZWFyX29mZl9hcmd1bWVudHMpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9yZXQ6IHsKQEAgLTE0NzQsNyArMTQ3NCw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIF9fIHB1c2hsX3Io
WDg2OjplZHgpOwogICAgICAgICAgICAgX18gcmV0KCk7CiAKLSAgICAgICAgICAgIGkgKz0gMjsK
KyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3JldCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25ld19hcnJheTogewpAQCAtMTQ4Myw3
ICsxNDgzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAg
ICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQp
OwogICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRl
cjo6Y3RpX29wX25ld19hcnJheSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVy
KGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSA0OworICAg
ICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfbmV3X2FycmF5KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZTogewpAQCAtMTQ5MSw3
ICsxNDkxLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAg
ICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGlkZW50
KSwgMCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVy
cHJldGVyOjpjdGlfb3BfcmVzb2x2ZSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAzOwor
ICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfcmVzb2x2ZSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NvbnN0cnVjdF92ZXJpZnk6IHsK
QEAgLTE1MDgsNyArMTUwOCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkK
ICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUu
b3BlcmFuZCk7CiAgICAgICAgICAgICBfXyBsaW5rKGlzT2JqZWN0LCBfXyBsYWJlbCgpKTsKIAot
ICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3Bf
Y29uc3RydWN0X3ZlcmlmeSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX2dldF9ieV92YWw6IHsKQEAgLTE1MjgsNyArMTUyOCw3IEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIC8vIEdldCB0aGUgdmFsdWUgZnJv
bSB0aGUgdmVjdG9yCiAgICAgICAgICAgICBfXyBtb3ZsX21yKEZJRUxEX09GRlNFVChBcnJheVN0
b3JhZ2UsIG1fdmVjdG9yWzBdKSwgWDg2OjplY3gsIFg4Njo6ZWR4LCBzaXplb2YoSlNWYWx1ZSop
LCBYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0
aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAg
aSArPSBHRVRfT1BDT0RFX1NJWkUob3BfZ2V0X2J5X3ZhbCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Jlc29sdmVfZnVuYzogewpAQCAtMTUzNywxMiAr
MTUzNywxMiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAg
ICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfcmVz
b2x2ZV9mdW5jKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rp
b25baSArIDJdLnUub3BlcmFuZCwgWDg2OjplZHgpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1
YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkg
Kz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3Jlc29sdmVfZnVuYyk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N1Yjogewog
ICAgICAgICAgICAgY29tcGlsZUJpbmFyeUFyaXRoT3Aob3Bfc3ViLCBpbnN0cnVjdGlvbltpICsg
MV0udS5vcGVyYW5kLCBpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kLCBpbnN0cnVjdGlvbltp
ICsgM10udS5vcGVyYW5kLCBPcGVyYW5kVHlwZXM6OmZyb21JbnQoaW5zdHJ1Y3Rpb25baSArIDRd
LnUub3BlcmFuZCksIGkpOwotICAgICAgICAgICAgaSArPSA1OworICAgICAgICAgICAgaSArPSBH
RVRfT1BDT0RFX1NJWkUob3Bfc3ViKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbDogewpAQCAtMTU3MSw3ICsxNTcxLDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgX18gbGluayhpbkZhc3RW
ZWN0b3IsIF9fIGxhYmVsKCkpOwogICAgICAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihp
bnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCBYODY6OmVheCwgaSk7CiAgICAgICAgICAgICBf
XyBtb3ZsX3JtKFg4Njo6ZWF4LCBGSUVMRF9PRkZTRVQoQXJyYXlTdG9yYWdlLCBtX3ZlY3Rvclsw
XSksIFg4Njo6ZWN4LCBYODY6OmVkeCwgc2l6ZW9mKEpTVmFsdWUqKSk7Ci0gICAgICAgICAgICBp
ICs9IDQ7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9wdXRfYnlfdmFsKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIENUSV9DT01QSUxFX0JJTkFS
WV9PUChvcF9sZXNzZXEpCkBAIC0xNTkyLDcgKzE1OTIsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xvd0Nhc2VF
bnRyeShfXyBlbWl0VW5saW5rZWRKbmUoKSwgaSkpOwogCiAgICAgICAgICAgICBfXyBsaW5rKGlz
WmVybywgX18gbGFiZWwoKSk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9
IEdFVF9PUENPREVfU0laRShvcF9sb29wX2lmX3RydWUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH07CiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV9iYXNlOiB7CkBAIC0xNjAwLDcgKzE2
MDAsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBl
bWl0UHV0Q1RJQXJnQ29uc3RhbnQocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4oaWRlbnQpLCAw
KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0
ZXI6OmN0aV9vcF9yZXNvbHZlX2Jhc2UpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gMzsK
KyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3Jlc29sdmVfYmFzZSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25lZ2F0ZTogewpAQCAt
MTY1MCw3ICsxNjUwLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAg
ICAgICAgICAgICAgIF9fIGxpbmsod2FzQ2VsbCwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBfXyBsaW5rKGltbWVkaWF0ZU5lZ2F0ZVN1Y2Nlc3MsIF9fIGxhYmVsKCkp
OwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUo
b3BfbmVnYXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfcmVzb2x2ZV9za2lwOiB7CkBAIC0xNjU5LDcgKzE2NTksNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQoaW5z
dHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCArIG1fY29kZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNo
YWluLCA0KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50
ZXJwcmV0ZXI6OmN0aV9vcF9yZXNvbHZlX3NraXApOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1
YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkg
Kz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3Jlc29sdmVfc2tpcCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Jlc29sdmVf
Z2xvYmFsOiB7CkBAIC0xNjkwLDcgKzE2OTAsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcygpCiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIElu
dGVycHJldGVyOjpjdGlfb3BfcmVzb2x2ZV9nbG9iYWwpOwogICAgICAgICAgICAgZW1pdFB1dFZp
cnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKICAgICAgICAgICAg
IF9fIGxpbmsoZW5kLCBfXyBsYWJlbCgpKTsKLSAgICAgICAgICAgIGkgKz0gNjsKKyAgICAgICAg
ICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3Jlc29sdmVfZ2xvYmFsKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIENUSV9DT01QSUxFX0JJTkFSWV9PUChvcF9kaXYp
CkBAIC0xNzAxLDcgKzE3MDEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygp
CiAgICAgICAgICAgICBfXyBzdWJsX2k4cihnZXREZVRhZ2dlZENvbnN0YW50SW1tZWRpYXRlKEpT
SW1tZWRpYXRlOjpvbmVJbW1lZGlhdGUoKSksIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIG1fc2xv
d0Nhc2VzLmFwcGVuZChTbG93Q2FzZUVudHJ5KF9fIGVtaXRVbmxpbmtlZEpvKCksIGkpKTsKICAg
ICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoc3JjRHN0KTsKLSAgICAgICAgICAgIGkg
Kz0gMjsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3ByZV9kZWMpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbmxlc3M6IHsKQEAg
LTE3MTksNyArMTcxOSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAg
ICAgICAgICAgICAgICBfXyBjbXBsX3JyKFg4Njo6ZWR4LCBYODY6OmVheCk7CiAgICAgICAgICAg
ICAgICAgbV9qbXBUYWJsZS5hcHBlbmQoSm1wVGFibGUoX18gZW1pdFVubGlua2VkSmdlKCksIGkg
KyAzICsgdGFyZ2V0KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAg
ICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9qbmxlc3MpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9ub3Q6IHsKQEAgLTE3MjksNyArMTcyOSw3
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIG1fc2xv
d0Nhc2VzLmFwcGVuZChTbG93Q2FzZUVudHJ5KF9fIGVtaXRVbmxpbmtlZEpuZSgpLCBpKSk7CiAg
ICAgICAgICAgICBfXyB4b3JsX2k4cigoSlNJbW1lZGlhdGU6OkZ1bGxUYWdUeXBlQm9vbCB8IEpT
SW1tZWRpYXRlOjpFeHRlbmRlZFBheWxvYWRCaXRCb29sVmFsdWUpLCBYODY6OmVheCk7CiAgICAg
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJh
bmQpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJ
WkUob3Bfbm90KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfamZhbHNlOiB7CkBAIC0xNzQ3LDcgKzE3NDcsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVNYWluUGFzcygpCiAgICAgICAgICAgICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xvd0Nhc2VFbnRy
eShfXyBlbWl0VW5saW5rZWRKbmUoKSwgaSkpOwogCiAgICAgICAgICAgICBfXyBsaW5rKGlzTm9u
WmVybywgX18gbGFiZWwoKSk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9
IEdFVF9PUENPREVfU0laRShvcF9qZmFsc2UpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH07CiAgICAgICAgIGNhc2Ugb3BfamVxX251bGw6IHsKQEAgLTE3NzcsNyArMTc3Nyw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIF9fIGNtcGxfaTMy
cigwLCBYODY6OmVheCk7CiAgICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShf
XyBlbWl0VW5saW5rZWRKbnooKSwgaSArIDIgKyB0YXJnZXQpKTsgICAgICAgICAgICAKIAotICAg
ICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfamVx
X251bGwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH07CiAgICAgICAgIGNhc2Ugb3Bf
am5lcV9udWxsOiB7CkBAIC0xODA3LDcgKzE4MDcsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVNYWluUGFzcygpCiAgICAgICAgICAgICBfXyBjbXBsX2kzMnIoMCwgWDg2OjplYXgpOwogICAg
ICAgICAgICAgbV9qbXBUYWJsZS5hcHBlbmQoSm1wVGFibGUoX18gZW1pdFVubGlua2VkSm56KCks
IGkgKyAyICsgdGFyZ2V0KSk7ICAgICAgICAgICAgCiAKLSAgICAgICAgICAgIGkgKz0gMzsKKyAg
ICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2puZXFfbnVsbCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Bvc3RfaW5jOiB7CkBAIC0xODE5
LDE0ICsxODE5LDE0IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAg
ICAgICAgIG1fc2xvd0Nhc2VzLmFwcGVuZChTbG93Q2FzZUVudHJ5KF9fIGVtaXRVbmxpbmtlZEpv
KCksIGkpKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoc3JjRHN0LCBYODY6
OmVkeCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kg
KyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBH
RVRfT1BDT0RFX1NJWkUob3BfcG9zdF9pbmMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF91bmV4cGVjdGVkX2xvYWQ6IHsKICAgICAgICAgICAgIEpTVmFs
dWUqIHYgPSBtX2NvZGVCbG9jay0+dW5leHBlY3RlZENvbnN0YW50c1tpbnN0cnVjdGlvbltpICsg
Ml0udS5vcGVyYW5kXTsKICAgICAgICAgICAgIF9fIG1vdmxfaTMycihhc0ludGVnZXIodiksIFg4
Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25b
aSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9
IEdFVF9PUENPREVfU0laRShvcF91bmV4cGVjdGVkX2xvYWQpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qc3I6IHsKQEAgLTE4MzcsMTIgKzE4MzcsMTIg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgbV9qbXBU
YWJsZS5hcHBlbmQoSm1wVGFibGUoX18gZW1pdFVubGlua2VkSm1wKCksIGkgKyAyICsgdGFyZ2V0
KSk7CiAgICAgICAgICAgICBKbXBEc3Qgc3JldFRhcmdldCA9IF9fIGxhYmVsKCk7CiAgICAgICAg
ICAgICBtX2pzclNpdGVzLmFwcGVuZChKU1JJbmZvKGFkZHJQb3NpdGlvbiwgc3JldFRhcmdldCkp
OwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUo
b3BfanNyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
c3JldDogewogICAgICAgICAgICAgX18gam1wX20oc2l6ZW9mKFJlZ2lzdGVyKSAqIGluc3RydWN0
aW9uW2kgKyAxXS51Lm9wZXJhbmQsIFg4Njo6ZWRpKTsKLSAgICAgICAgICAgIGkgKz0gMjsKKyAg
ICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3NyZXQpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lcTogewpAQCAtMTg1Myw3ICsxODUzLDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgX18gbW92
emJsX3JyKFg4Njo6ZWF4LCBYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0VGFnQXNCb29sSW1t
ZWRpYXRlKFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5z
dHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAg
ICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9lcSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIG9wX2xzaGlmdDogewpAQCAtMTg2NSw3ICsxODY1LDcgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgX18gc2hsbF9D
THIoWDg2OjplYXgpOwogICAgICAgICAgICAgZW1pdEZhc3RBcml0aEludFRvSW1tT3JTbG93Q2Fz
ZShYODY6OmVheCwgaSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3Ry
dWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAg
ICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfbHNoaWZ0KTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfYml0YW5kOiB7CkBAIC0xODg4LDcgKzE4ODgsNyBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICAgICAgZW1p
dEp1bXBTbG93Q2FzZUlmTm90SW1tTnVtKFg4Njo6ZWF4LCBpKTsKICAgICAgICAgICAgICAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ICs9IDU7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9iaXRhbmQpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9yc2hpZnQ6IHsKQEAg
LTE4OTksNyArMTg5OSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAg
ICAgICAgICAgIF9fIHNhcmxfQ0xyKFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRGYXN0QXJp
dGhQb3RlbnRpYWxseVJlVGFnSW1tZWRpYXRlKFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAg
ICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9yc2hpZnQp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9iaXRub3Q6
IHsKQEAgLTE5MDcsNyArMTkwNyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNz
KCkKICAgICAgICAgICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbU51bShYODY6OmVheCwgaSk7
CiAgICAgICAgICAgICBfXyB4b3JsX2k4cih+SlNJbW1lZGlhdGU6OlRhZ0JpdFR5cGVJbnRlZ2Vy
LCBYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0
aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAg
aSArPSBHRVRfT1BDT0RFX1NJWkUob3BfYml0bm90KTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX2Jhc2U6IHsKQEAgLTE5MTYsNyAr
MTkxNiw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAg
IGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9yZXNv
bHZlX3dpdGhfYmFzZSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3Ry
dWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQsIFg4Njo6ZWR4KTsKICAgICAgICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAg
ICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9yZXNvbHZlX3dp
dGhfYmFzZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9w
X25ld19mdW5jX2V4cDogewpAQCAtMTkyNCw3ICsxOTI0LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGZ1bmMpLCAwKTsKICAgICAgICAgICAgIGVtaXRDVElDYWxs
KGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZXdfZnVuY19leHApOwog
ICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5v
cGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09E
RV9TSVpFKG9wX25ld19mdW5jX2V4cCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX21vZDogewpAQCAtMTkzOCw3ICsxOTM4LDcgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdEZhc3RBcml0aFJlVGFnSW1t
ZWRpYXRlKFg4Njo6ZWR4KTsKICAgICAgICAgICAgIF9fIG1vdmxfcnIoWDg2OjplZHgsIFg4Njo6
ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSAr
IDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IEdF
VF9PUENPREVfU0laRShvcF9tb2QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBvcF9qdHJ1ZTogewpAQCAtMTk1Niw3ICsxOTU2LDcgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNs
b3dDYXNlRW50cnkoX18gZW1pdFVubGlua2VkSm5lKCksIGkpKTsKIAogICAgICAgICAgICAgX18g
bGluayhpc1plcm8sIF9fIGxhYmVsKCkpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAg
ICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfanRydWUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgQ1RJX0NPTVBJTEVfQklOQVJZX09QKG9wX2xlc3MpCkBAIC0xOTcx
LDcgKzE5NzEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAKICAgICAg
ICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFu
ZCk7CiAKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9T
SVpFKG9wX25lcSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX3Bvc3RfZGVjOiB7CkBAIC0xOTgzLDcgKzE5ODMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xvd0Nhc2VF
bnRyeShfXyBlbWl0VW5saW5rZWRKbygpLCBpKSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVh
bFJlZ2lzdGVyKHNyY0RzdCwgWDg2OjplZHgpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxS
ZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0g
MzsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3Bvc3RfZGVjKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIENUSV9DT01QSUxFX0JJTkFSWV9PUChv
cF91cnNoaWZ0KQpAQCAtMTk5Myw3ICsxOTkzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxl
TWFpblBhc3MoKQogICAgICAgICAgICAgX18geG9ybF9ycihYODY6OmVkeCwgWDg2OjplYXgpOwog
ICAgICAgICAgICAgZW1pdEZhc3RBcml0aFJlVGFnSW1tZWRpYXRlKFg4Njo6ZWF4KTsKICAgICAg
ICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFu
ZCk7Ci0gICAgICAgICAgICBpICs9IDU7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0la
RShvcF9iaXR4b3IpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9uZXdfcmVnZXhwOiB7CkBAIC0yMDAxLDcgKzIwMDEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQocmVp
bnRlcnByZXRfY2FzdDx1bnNpZ25lZD4ocmVnRXhwKSwgMCk7CiAgICAgICAgICAgICBlbWl0Q1RJ
Q2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfbmV3X3JlZ2V4cCk7
CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51
Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBHRVRfT1BD
T0RFX1NJWkUob3BfbmV3X3JlZ2V4cCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2JpdG9yOiB7CkBAIC0yMDA5LDcgKzIwMDksNyBAQCB2b2lkIEpJVDo6
cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0SnVtcFNsb3dDYXNlSWZO
b3RJbW1OdW1zKFg4Njo6ZWF4LCBYODY6OmVkeCwgaSk7CiAgICAgICAgICAgICBfXyBvcmxfcnIo
WDg2OjplZHgsIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
aW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDU7CisgICAg
ICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9iaXRvcik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Rocm93OiB7CkBAIC0yMDIwLDE0ICsyMDIw
LDE0IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIF9f
IHBvcGxfcihYODY6OmVkaSk7CiAgICAgICAgICAgICBfXyBwb3BsX3IoWDg2Ojplc2kpOwogICAg
ICAgICAgICAgX18gcmV0KCk7Ci0gICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICBpICs9
IEdFVF9PUENPREVfU0laRShvcF90aHJvdyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX2dldF9wbmFtZXM6IHsKICAgICAgICAgICAgIGVtaXRQdXRDVElB
cmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQsIDAsIFg4
Njo6ZWN4KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50
ZXJwcmV0ZXI6OmN0aV9vcF9nZXRfcG5hbWVzKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9
IDM7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9nZXRfcG5hbWVzKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV4dF9wbmFtZTog
ewpAQCAtMjAzOSwxOCArMjAzOSwxOCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cygpCiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAx
XS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgbV9qbXBUYWJsZS5hcHBlbmQoSm1wVGFibGUoX18g
ZW1pdFVubGlua2VkSm1wKCksIGkgKyAzICsgdGFyZ2V0KSk7CiAgICAgICAgICAgICBfXyBsaW5r
KGVuZE9mSXRlciwgX18gbGFiZWwoKSk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAg
ICBpICs9IEdFVF9PUENPREVfU0laRShvcF9uZXh0X3BuYW1lKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHVzaF9zY29wZTogewogICAgICAgICAgICAg
ZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3Bl
cmFuZCwgMCwgWDg2OjplY3gpOwogICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24g
KyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1c2hfc2NvcGUpOwotICAgICAgICAgICAgaSAr
PSAyOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfcHVzaF9zY29wZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3BvcF9zY29wZTog
ewogICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRl
cjo6Y3RpX29wX3BvcF9zY29wZSk7Ci0gICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICBp
ICs9IEdFVF9PUENPREVfU0laRShvcF9wb3Bfc2NvcGUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgQ1RJX0NPTVBJTEVfVU5BUllfT1Aob3BfdHlwZW9mKQpAQCAtMjA2
MiwxMiArMjA2MiwxMiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAg
ICAgIENUSV9DT01QSUxFX1VOQVJZX09QKG9wX2lzX2Z1bmN0aW9uKQogICAgICAgICBjYXNlIG9w
X3N0cmljdGVxOiB7CiAgICAgICAgICAgICBjb21waWxlT3BTdHJpY3RFcShpbnN0cnVjdGlvbiAr
IGksIGksIE9wU3RyaWN0RXEpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSAr
PSBHRVRfT1BDT0RFX1NJWkUob3Bfc3RyaWN0ZXEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF9uc3RyaWN0ZXE6IHsKICAgICAgICAgICAgIGNvbXBpbGVP
cFN0cmljdEVxKGluc3RydWN0aW9uICsgaSwgaSwgT3BOU3RyaWN0RXEpOwotICAgICAgICAgICAg
aSArPSA0OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfbnN0cmljdGVxKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdG9fanNudW1i
ZXI6IHsKQEAgLTIwODcsNyArMjA4Nyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKCkKICAgICAgICAgICAgIF9fIGxpbmsod2FzSW1tZWRpYXRlLCBfXyBsYWJlbCgpKTsKIAog
ICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5v
cGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09E
RV9TSVpFKG9wX3RvX2pzbnVtYmVyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfaW46IHsKQEAgLTIwOTUsNyArMjA5NSw3IEBAIHZvaWQgSklUOjpwcml2
YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVh
bFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQsIFg4Njo6ZWN4KTsKICAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0
aV9vcF9pbik7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9u
W2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSAr
PSBHRVRfT1BDT0RFX1NJWkUob3BfaW4pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9wdXNoX25ld19zY29wZTogewpAQCAtMjEwNCwxMyArMjEwNCwxMyBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0UHV0
Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCA0
LCBYODY6OmVjeCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGks
IEludGVycHJldGVyOjpjdGlfb3BfcHVzaF9uZXdfc2NvcGUpOwogICAgICAgICAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAg
ICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3B1c2hfbmV3
X3Njb3BlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
Y2F0Y2g6IHsKICAgICAgICAgICAgIGVtaXRHZXRDVElQYXJhbShDVElfQVJHU19jYWxsRnJhbWUs
IFg4Njo6ZWRpKTsgLy8gZWRpIDo9IHIKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDI7Cisg
ICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9jYXRjaCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2ptcF9zY29wZXM6IHsKQEAgLTIxMTks
NyArMjExOSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAg
ICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9q
bXBfc2NvcGVzKTsKICAgICAgICAgICAgIHVuc2lnbmVkIHRhcmdldCA9IGluc3RydWN0aW9uW2kg
KyAyXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShf
XyBlbWl0VW5saW5rZWRKbXAoKSwgaSArIDIgKyB0YXJnZXQpKTsKLSAgICAgICAgICAgIGkgKz0g
MzsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2ptcF9zY29wZXMpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRfYnlfaW5kZXg6
IHsKQEAgLTIxMjcsNyArMjEyNyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNz
KCkKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChpbnN0cnVjdGlvbltpICsgMl0u
dS5vcGVyYW5kLCA0KTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lz
dGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDgsIFg4Njo6ZWN4KTsKICAgICAgICAg
ICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9w
dXRfYnlfaW5kZXgpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBHRVRf
T1BDT0RFX1NJWkUob3BfcHV0X2J5X2luZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbTogewpAQCAtMjE0NCw3ICsyMTQ0LDcgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENU
SUFyZ0NvbnN0YW50KHRhYmxlSW5kZXgsIDQpOwogICAgICAgICAgICAgZW1pdENUSUNhbGwoaW5z
dHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3N3aXRjaF9pbW0pOwogICAgICAg
ICAgICAgX18gam1wX3IoWDg2OjplYXgpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAg
ICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3Bfc3dpdGNoX2ltbSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N3aXRjaF9jaGFyOiB7CkBAIC0yMTYxLDcg
KzIxNjEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAg
ICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQodGFibGVJbmRleCwgNCk7CiAgICAgICAgICAgICBlbWl0
Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3Bfc3dpdGNoX2No
YXIpOwogICAgICAgICAgICAgX18gam1wX3IoWDg2OjplYXgpOwotICAgICAgICAgICAgaSArPSA0
OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3Bfc3dpdGNoX2NoYXIpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9zd2l0Y2hfc3RyaW5n
OiB7CkBAIC0yMTc3LDcgKzIxNzcsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQodGFibGVJbmRleCwgNCk7CiAg
ICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpj
dGlfb3Bfc3dpdGNoX3N0cmluZyk7CiAgICAgICAgICAgICBfXyBqbXBfcihYODY6OmVheCk7Ci0g
ICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9z
d2l0Y2hfc3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfZGVsX2J5X3ZhbDogewpAQCAtMjE4NSw3ICsyMTg1LDcgQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFs
UmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgNCwgWDg2OjplY3gpOwogICAg
ICAgICAgICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3Rp
X29wX2RlbF9ieV92YWwpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0
cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAg
ICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2RlbF9ieV92YWwpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyOiB7CkBAIC0yMTk0LDcg
KzIxOTQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAg
ICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4oaWRlbnQp
LCA0KTsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3Ry
dWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDgsIFg4Njo6ZWN4KTsKICAgICAgICAgICAgIGVtaXRD
VElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wdXRfZ2V0dGVy
KTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpF
KG9wX3B1dF9nZXR0ZXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9wdXRfc2V0dGVyOiB7CkBAIC0yMjAzLDcgKzIyMDMsNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQo
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4oaWRlbnQpLCA0KTsKICAgICAgICAgICAgIGVtaXRQ
dXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQs
IDgsIFg4Njo6ZWN4KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwg
aSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wdXRfc2V0dGVyKTsKLSAgICAgICAgICAgIGkgKz0gNDsK
KyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3B1dF9zZXR0ZXIpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uZXdfZXJyb3I6IHsKQEAg
LTIyMTMsNyArMjIxMyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAg
ICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChtX2NvZGVCbG9jay0+bGluZU51bWJlckZv
clZQQygmaW5zdHJ1Y3Rpb25baV0pLCA4KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3Ry
dWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZXdfZXJyb3IpOwogICAgICAgICAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsK
LSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9w
X25ld19lcnJvcik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX2RlYnVnOiB7CkBAIC0yMjIxLDcgKzIyMjEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQoaW5zdHJ1Y3Rp
b25baSArIDJdLnUub3BlcmFuZCwgNCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3Rh
bnQoaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgOCk7CiAgICAgICAgICAgICBlbWl0Q1RJ
Q2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfZGVidWcpOwotICAg
ICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfZGVi
dWcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lcV9u
dWxsOiB7CkBAIC0yMjUxLDcgKzIyNTEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWlu
UGFzcygpCiAgICAgICAgICAgICBlbWl0VGFnQXNCb29sSW1tZWRpYXRlKFg4Njo6ZWF4KTsKICAg
ICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKIAotICAgICAgICAgICAgaSAr
PSAzOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfZXFfbnVsbCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25lcV9udWxsOiB7CkBA
IC0yMjgxLDcgKzIyODEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAg
ICAgICAgICAgICBlbWl0VGFnQXNCb29sSW1tZWRpYXRlKFg4Njo6ZWF4KTsKICAgICAgICAgICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKIAotICAgICAgICAgICAgaSArPSAzOworICAg
ICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfbmVxX251bGwpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lbnRlcjogewpAQCAtMjI5Miw3ICsy
MjkyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAg
Zm9yIChzaXplX3QgaiA9IDA7IGogPCBjb3VudDsgKytqKQogICAgICAgICAgICAgICAgIGVtaXRJ
bml0UmVnaXN0ZXIoaik7CiAKLSAgICAgICAgICAgIGkrPSAxOworICAgICAgICAgICAgaSArPSBH
RVRfT1BDT0RFX1NJWkUob3BfZW50ZXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9lbnRlcl93aXRoX2FjdGl2YXRpb246IHsKQEAgLTIzMDYsMTIgKzIz
MDYsMTIgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAg
ZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1c2hf
YWN0aXZhdGlvbik7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0
aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogCi0gICAgICAgICAgICBpKz0gMjsKKyAgICAgICAgICAg
IGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2VudGVyX3dpdGhfYWN0aXZhdGlvbik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NyZWF0ZV9hcmd1bWVudHM6
IHsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgKG1fY29kZUJs
b2NrLT5udW1QYXJhbWV0ZXJzID09IDEpID8gSW50ZXJwcmV0ZXI6OmN0aV9vcF9jcmVhdGVfYXJn
dW1lbnRzX25vX3BhcmFtcyA6IEludGVycHJldGVyOjpjdGlfb3BfY3JlYXRlX2FyZ3VtZW50cyk7
Ci0gICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShv
cF9jcmVhdGVfYXJndW1lbnRzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfY29udmVydF90aGlzOiB7CkBAIC0yMzIyLDcgKzIzMjIsNyBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBfXyB0ZXN0bF9pMzJtKE5l
ZWRzVGhpc0NvbnZlcnNpb24sIEZJRUxEX09GRlNFVChTdHJ1Y3R1cmUsIG1fdHlwZUluZm8ubV9m
bGFncyksIFg4Njo6ZWR4KTsKICAgICAgICAgICAgIG1fc2xvd0Nhc2VzLmFwcGVuZChTbG93Q2Fz
ZUVudHJ5KF9fIGVtaXRVbmxpbmtlZEpueigpLCBpKSk7CiAKLSAgICAgICAgICAgIGkgKz0gMjsK
KyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2NvbnZlcnRfdGhpcyk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Byb2ZpbGVfd2lsbF9j
YWxsOiB7CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWlu
UGFzcygpCiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVy
cHJldGVyOjpjdGlfb3BfcHJvZmlsZV93aWxsX2NhbGwpOwogICAgICAgICAgICAgX18gbGluayhu
b1Byb2ZpbGVyLCBfXyBsYWJlbCgpKTsKIAotICAgICAgICAgICAgaSArPSAyOworICAgICAgICAg
ICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wcm9maWxlX2RpZF9jYWxsOiB7
CkBAIC0yMzQ0LDcgKzIzNDQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygp
CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVy
OjpjdGlfb3BfcHJvZmlsZV9kaWRfY2FsbCk7CiAgICAgICAgICAgICBfXyBsaW5rKG5vUHJvZmls
ZXIsIF9fIGxhYmVsKCkpOwogCi0gICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICBpICs9
IEdFVF9PUENPREVfU0laRShvcF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKQEAgLTIzODAs
NyArMjM4MCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUxpbmtQYXNzKCkKICAgICAgICAg
ZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDNdLnUub3Bl
cmFuZCwgNCwgWDg2OjplY3gpOyBcCiAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsg
aSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV8jI25hbWUpOyBcCiAgICAgICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7IFwKLSAgICAgICAgaSArPSA0
OyBcCisgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG5hbWUpOyBcCiAgICAgICAgIGJyZWFr
OyBcCiAgICAgfQogCkBAIC0yMzkyLDcgKzIzOTIsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVMaW5rUGFzcygpCiAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGlu
c3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQsIFg4Njo6ZWN4KTsgXAogICAgICAgICBlbWl0
Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfIyNuYW1lKTsgXAog
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJh
bmQpOyBcCi0gICAgICAgIGkgKz0gNDsgXAorICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShu
YW1lKTsgXAogICAgICAgICBicmVhazsgXAogICAgIH0KICAgICAKQEAgLTI0MTgsNyArMjQxOCw3
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0
UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0
aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9jb252ZXJ0X3RoaXMpOwogICAgICAgICAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsK
LSAgICAgICAgICAgIGkgKz0gMjsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9w
X2NvbnZlcnRfdGhpcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX2FkZDogewpAQCAtMjQ1MSw3ICsyNDUxLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGkgKz0gNTsKKyAgICAgICAgICAgIGkgKz0g
R0VUX09QQ09ERV9TSVpFKG9wX2FkZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKQEAgLTI0ODMsMTIgKzI0ODMsMTIgQEAgdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIF9fIG1vdmxfcnIo
WDg2OjplY3gsIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
aW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCwgWDg2OjplYXgpOwogCi0gICAgICAgICAgICBp
ICs9IDQ7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9nZXRfYnlfdmFsKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfc3ViOiB7CiAg
ICAgICAgICAgICBjb21waWxlQmluYXJ5QXJpdGhPcFNsb3dDYXNlKGluc3RydWN0aW9uICsgaSwg
b3Bfc3ViLCBpdGVyLCBpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kLCBpbnN0cnVjdGlvbltp
ICsgMl0udS5vcGVyYW5kLCBpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCBPcGVyYW5kVHlw
ZXM6OmZyb21JbnQoaW5zdHJ1Y3Rpb25baSArIDRdLnUub3BlcmFuZCksIGkpOwotICAgICAgICAg
ICAgaSArPSA1OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3Bfc3ViKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmVnYXRlOiB7CkBA
IC0yNTA0LDcgKzI1MDQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQog
ICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25b
aSArIDJdLnUub3BlcmFuZCwgMCwgWDg2OjplY3gpOwogICAgICAgICAgICAgZW1pdENUSUNhbGwo
aW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25lZ2F0ZSk7CiAgICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQp
OwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUo
b3BfbmVnYXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfcnNoaWZ0OiB7CkBAIC0yNTE0LDcgKzI1MTQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVjeCwgNCk7CiAg
ICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpj
dGlfb3BfcnNoaWZ0KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1
Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAg
ICBpICs9IEdFVF9PUENPREVfU0laRShvcF9yc2hpZnQpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sc2hpZnQ6IHsKQEAgLTI1MjgsNyArMjUyOCw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0UHV0
Q1RJQXJnKFg4Njo6ZWN4LCA0KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9u
ICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9sc2hpZnQpOwogICAgICAgICAgICAgZW1pdFB1
dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAg
ICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2xzaGlmdCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZf
bGVzczogewpAQCAtMjU1Miw3ICsyNTUyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xv
d0Nhc2VzKCkKICAgICAgICAgICAgICAgICBfXyB0ZXN0bF9ycihYODY6OmVheCwgWDg2OjplYXgp
OwogICAgICAgICAgICAgICAgIF9fIGxpbmsoX18gZW1pdFVubGlua2VkSm5lKCksIG1fbGFiZWxz
W2kgKyAzICsgdGFyZ2V0XSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpICs9IDQ7Cisg
ICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9sb29wX2lmX2xlc3MpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRfYnlfaWQ6IHsKQEAg
LTI1NzEsNyArMjU3MSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAg
ICAgICAgICAgICBtX3Byb3BlcnR5QWNjZXNzQ29tcGlsYXRpb25JbmZvW3Byb3BlcnR5QWNjZXNz
SW5zdHJ1Y3Rpb25JbmRleF0uY2FsbFJldHVybkxvY2F0aW9uID0gY2FsbDsKICAgICAgICAgICAg
ICsrcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbkluZGV4OwogCi0gICAgICAgICAgICBpICs9IDg7
CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9wdXRfYnlfaWQpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6IHsKQEAg
LTI2MDAsNyArMjYwMCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAg
ICAgICAgICAgICBtX3Byb3BlcnR5QWNjZXNzQ29tcGlsYXRpb25JbmZvW3Byb3BlcnR5QWNjZXNz
SW5zdHJ1Y3Rpb25JbmRleF0uY2FsbFJldHVybkxvY2F0aW9uID0gY2FsbDsKICAgICAgICAgICAg
ICsrcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbkluZGV4OwogCi0gICAgICAgICAgICBpICs9IDg7
CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9nZXRfYnlfaWQpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lmX2xlc3NlcTog
ewpAQCAtMjYyNCw3ICsyNjI0LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2Vz
KCkKICAgICAgICAgICAgICAgICBfXyB0ZXN0bF9ycihYODY6OmVheCwgWDg2OjplYXgpOwogICAg
ICAgICAgICAgICAgIF9fIGxpbmsoX18gZW1pdFVubGlua2VkSm5lKCksIG1fbGFiZWxzW2kgKyAz
ICsgdGFyZ2V0XSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAg
ICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9sb29wX2lmX2xlc3NlcSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3ByZV9pbmM6IHsKQEAgLTI2MzYs
NyArMjYzNiw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAg
ICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4LCAwKTsKICAgICAgICAgICAgIGVtaXRDVElDYWxs
KGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wcmVfaW5jKTsKICAgICAg
ICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoc3JjRHN0KTsKLSAgICAgICAgICAgIGkgKz0g
MjsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX3ByZV9pbmMpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRfYnlfdmFsOiB7CkBA
IC0yNjYyLDcgKzI2NjIsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQog
ICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVjeCwgOCk7CiAgICAgICAgICAgICBlbWl0
Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfcHV0X2J5X3Zh
bF9hcnJheSk7CiAKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09Q
Q09ERV9TSVpFKG9wX3B1dF9ieV92YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9sb29wX2lmX3RydWU6IHsKQEAgLTI2NzQsNyArMjY3NCw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBfXyB0ZXN0bF9y
cihYODY6OmVheCwgWDg2OjplYXgpOwogICAgICAgICAgICAgdW5zaWduZWQgdGFyZ2V0ID0gaW5z
dHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIF9fIGxpbmsoX18gZW1pdFVu
bGlua2VkSm5lKCksIG1fbGFiZWxzW2kgKyAyICsgdGFyZ2V0XSk7Ci0gICAgICAgICAgICBpICs9
IDM7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9sb29wX2lmX3RydWUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wcmVfZGVjOiB7
CkBAIC0yNjg2LDcgKzI2ODYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMo
KQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVheCwgMCk7CiAgICAgICAgICAgICBl
bWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfcHJlX2Rl
Yyk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHNyY0RzdCk7Ci0gICAgICAg
ICAgICBpICs9IDI7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9wcmVfZGVj
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfam5sZXNz
OiB7CkBAIC0yNzA4LDcgKzI3MDgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2Fz
ZXMoKQogICAgICAgICAgICAgICAgIF9fIHRlc3RsX3JyKFg4Njo6ZWF4LCBYODY6OmVheCk7CiAg
ICAgICAgICAgICAgICAgX18gbGluayhfXyBlbWl0VW5saW5rZWRKZSgpLCBtX2xhYmVsc1tpICsg
MyArIHRhcmdldF0pOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaSArPSA0OworICAgICAg
ICAgICAgaSArPSBHRVRfT1BDT0RFX1NJWkUob3Bfam5sZXNzKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfbm90OiB7CkBAIC0yNzE3LDcgKzI3MTcsNyBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgZW1pdFB1
dENUSUFyZyhYODY6OmVheCwgMCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlv
biArIGksIGksIEludGVycHJldGVyOjpjdGlfb3Bfbm90KTsKICAgICAgICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAg
ICBpICs9IDM7CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9ub3QpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qZmFsc2U6IHsKQEAg
LTI3MjcsNyArMjcyNyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAg
ICAgICAgICAgICBfXyB0ZXN0bF9ycihYODY6OmVheCwgWDg2OjplYXgpOwogICAgICAgICAgICAg
dW5zaWduZWQgdGFyZ2V0ID0gaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZDsKICAgICAgICAg
ICAgIF9fIGxpbmsoX18gZW1pdFVubGlua2VkSmUoKSwgbV9sYWJlbHNbaSArIDIgKyB0YXJnZXRd
KTsgLy8gaW52ZXJ0ZWQhCi0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IEdF
VF9PUENPREVfU0laRShvcF9qZmFsc2UpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9wb3N0X2luYzogewpAQCAtMjczOCw3ICsyNzM4LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGlu
c3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wb3N0X2luYyk7CiAgICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHNyY0RzdCwgWDg2OjplZHgpOwogICAgICAgICAg
ICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsK
LSAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9w
X3Bvc3RfaW5jKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfYml0bm90OiB7CkBAIC0yNzQ2LDcgKzI3NDYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVheCwgMCk7CiAg
ICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVjdGlvbiArIGksIGksIEludGVycHJldGVyOjpj
dGlfb3BfYml0bm90KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1
Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAg
ICBpICs9IEdFVF9PUENPREVfU0laRShvcF9iaXRub3QpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9iaXRhbmQ6IHsKQEAgLTI3NzIsNyArMjc3Miw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICAgICAgZW1p
dENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2JpdGFuZCk7
CiAgICAgICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaSArPSA1OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJ
WkUob3BfYml0YW5kKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfanRydWU6IHsKQEAgLTI3ODIsNyArMjc4Miw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29t
cGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBfXyB0ZXN0bF9ycihYODY6OmVheCwgWDg2Ojpl
YXgpOwogICAgICAgICAgICAgdW5zaWduZWQgdGFyZ2V0ID0gaW5zdHJ1Y3Rpb25baSArIDJdLnUu
b3BlcmFuZDsKICAgICAgICAgICAgIF9fIGxpbmsoX18gZW1pdFVubGlua2VkSm5lKCksIG1fbGFi
ZWxzW2kgKyAyICsgdGFyZ2V0XSk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBp
ICs9IEdFVF9PUENPREVfU0laRShvcF9qdHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX3Bvc3RfZGVjOiB7CkBAIC0yNzkzLDcgKzI3OTMsNyBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgZW1pdENUSUNh
bGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3Bvc3RfZGVjKTsKICAg
ICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoc3JjRHN0LCBYODY6OmVkeCk7CiAgICAg
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJh
bmQpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RFX1NJ
WkUob3BfcG9zdF9kZWMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9iaXR4b3I6IHsKQEAgLTI4MDIsNyArMjgwMiw3IEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWR4LCA0
KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0
ZXI6OmN0aV9vcF9iaXR4b3IpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihp
bnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNTsKKyAgICAg
ICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2JpdHhvcik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2JpdG9yOiB7CkBAIC0yODExLDcgKzI4MTEs
NyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgZW1p
dFB1dENUSUFyZyhYODY6OmVkeCwgNCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpbnN0cnVj
dGlvbiArIGksIGksIEludGVycHJldGVyOjpjdGlfb3BfYml0b3IpOwogICAgICAgICAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAg
ICAgICAgIGkgKz0gNTsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX2JpdG9y
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZXE6IHsK
QEAgLTI4MjAsNyArMjgyMCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygp
CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWR4LCA0KTsKICAgICAgICAgICAgIGVt
aXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9lcSk7CiAg
ICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9w
ZXJhbmQpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBHRVRfT1BDT0RF
X1NJWkUob3BfZXEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9uZXE6IHsKQEAgLTI4MjksNyArMjgyOSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWR4LCA0KTsKICAg
ICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0ZXI6OmN0
aV9vcF9uZXEpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlv
bltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkg
Kz0gR0VUX09QQ09ERV9TSVpFKG9wX25lcSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBDVElfQ09NUElMRV9CSU5BUllfT1BfU0xPV19DQVNFX0RPVUJMRV9FTlRSWShv
cF9zdHJpY3RlcSk7CkBAIC0yODQzLDcgKzI4NDMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVTbG93Q2FzZXMoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0
ZXIoaW5zdHJ1Y3Rpb25baSArIDRdLnUub3BlcmFuZCwgOCwgWDg2OjplY3gpOwogICAgICAgICAg
ICAgZW1pdENUSUNhbGwoaW5zdHJ1Y3Rpb24gKyBpLCBpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2lu
c3RhbmNlb2YpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlv
bltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNTsKKyAgICAgICAgICAgIGkg
Kz0gR0VUX09QQ09ERV9TSVpFKG9wX2luc3RhbmNlb2YpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9tb2Q6IHsKQEAgLTI4NTgsNyArMjg1OCw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJ
QXJnKFg4Njo6ZWN4LCA0KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsg
aSwgaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9tb2QpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1
YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkg
Kz0gNDsKKyAgICAgICAgICAgIGkgKz0gR0VUX09QQ09ERV9TSVpFKG9wX21vZCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX211bDogewpAQCAtMjg4Niw3
ICsyODg2LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAg
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiAgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICBjb21waWxlQmluYXJ5QXJpdGhPcFNsb3dDYXNlKGluc3RydWN0aW9u
ICsgaSwgb3BfbXVsLCBpdGVyLCBkc3QsIHNyYzEsIHNyYzIsIE9wZXJhbmRUeXBlczo6ZnJvbUlu
dChpbnN0cnVjdGlvbltpICsgNF0udS5vcGVyYW5kKSwgaSk7Ci0gICAgICAgICAgICBpICs9IDU7
CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF9tdWwpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KIApAQCAtMjk4MSw3ICsyOTgxLDcgQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlU2xvd0Nhc2VzKCkKICNlbmRpZgogICAgICAgICAgICAgKytjYWxsTGlua0luZm9J
bmRleDsKIAotICAgICAgICAgICAgaSArPSAob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gNyA6
IDUpOworICAgICAgICAgICAgaSArPSAob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gR0VUX09Q
Q09ERV9TSVpFKG9wX2NvbnN0cnVjdCkgOiBHRVRfT1BDT0RFX1NJWkUob3BfY2FsbCkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF90b19qc251bWJlcjog
ewpAQCAtMjk5Myw3ICsyOTkzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2Vz
KCkKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGluc3RydWN0aW9uICsgaSwgaSwgSW50ZXJwcmV0
ZXI6OmN0aV9vcF90b19qc251bWJlcik7CiAKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7
CisgICAgICAgICAgICBpICs9IEdFVF9PUENPREVfU0laRShvcF90b19qc251bWJlcik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogCg==
</data>
<flag name="review"
          id="11680"
          type_id="1"
          status="-"
          setter="zwarich"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25855</attachid>
            <date>2008-12-08 15:14:47 -0800</date>
            <delta_ts>2008-12-08 16:43:42 -0800</delta_ts>
            <desc>requested patch</desc>
            <filename>opcode_lengths_2.patch</filename>
            <type>text/plain</type>
            <size>52139</size>
            <attacher name="Judit Jász">jasy</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5MTAzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDgtMTItMDggIEp1ZGl0IEph
c3ogIDxqYXN5QGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEJ1ZyAyMjM1MjogQW5ub3RhdGluZyB0aGUgb3Bj
b2RlcyB3aXRoIHRoZWlyIGxlbmd0aHMuCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNTI+IAorIAorICAgICAgICAqIGJ5dGVjb2RlL09wY29kZS5j
cHA6CisgICAgICAgIChKU0M6Oik6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAg
ICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnBy
ZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlNDOjpKSVQ6OnBy
aXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKwogMjAwOC0xMi0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENhbWVyb24gWndhcmljaC4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmNwcAkocmV2aXNpb24gMzkwOTkpCisrKyBKYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMSArMzMs
MTEgQEAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBKU0MgewotCisgCiAjaWYg
RU5BQkxFKE9QQ09ERV9TQU1QTElORykgfHwgRU5BQkxFKENPREVCTE9DS19TQU1QTElORykgfHwg
RU5BQkxFKE9QQ09ERV9TVEFUUykKIAogY29uc3QgY2hhciogY29uc3Qgb3Bjb2RlTmFtZXNbXSA9
IHsKLSNkZWZpbmUgT1BDT0RFX05BTUVfRU5UUlkob3Bjb2RlKSAjb3Bjb2RlLAorI2RlZmluZSBP
UENPREVfTkFNRV9FTlRSWShvcGNvZGUsIHNpemUpICNvcGNvZGUsCiAgICAgRk9SX0VBQ0hfT1BD
T0RFX0lEKE9QQ09ERV9OQU1FX0VOVFJZKQogI3VuZGVmIE9QQ09ERV9OQU1FX0VOVFJZCiB9OwpJ
bmRleDogSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgJKHJldmlzaW9uIDM5MDk5KQorKysgSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE0MSArMzgs
MTQ3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogICAgICNkZWZpbmUgRk9SX0VBQ0hfT1BDT0RFX0lE
KG1hY3JvKSBcCi0gICAgICAgIG1hY3JvKG9wX2VudGVyKSBcCi0gICAgICAgIG1hY3JvKG9wX2Vu
dGVyX3dpdGhfYWN0aXZhdGlvbikgXAotICAgICAgICBtYWNybyhvcF9jcmVhdGVfYXJndW1lbnRz
KSBcCi0gICAgICAgIG1hY3JvKG9wX2NvbnZlcnRfdGhpcykgXAotICAgICAgICBcCi0gICAgICAg
IG1hY3JvKG9wX3VuZXhwZWN0ZWRfbG9hZCkgXAotICAgICAgICBtYWNybyhvcF9uZXdfb2JqZWN0
KSBcCi0gICAgICAgIG1hY3JvKG9wX25ld19hcnJheSkgXAotICAgICAgICBtYWNybyhvcF9uZXdf
cmVnZXhwKSBcCi0gICAgICAgIG1hY3JvKG9wX21vdikgXAotICAgICAgICBcCi0gICAgICAgIG1h
Y3JvKG9wX25vdCkgXAotICAgICAgICBtYWNybyhvcF9lcSkgXAotICAgICAgICBtYWNybyhvcF9l
cV9udWxsKSBcCi0gICAgICAgIG1hY3JvKG9wX25lcSkgXAotICAgICAgICBtYWNybyhvcF9uZXFf
bnVsbCkgXAotICAgICAgICBtYWNybyhvcF9zdHJpY3RlcSkgXAotICAgICAgICBtYWNybyhvcF9u
c3RyaWN0ZXEpIFwKLSAgICAgICAgbWFjcm8ob3BfbGVzcykgXAotICAgICAgICBtYWNybyhvcF9s
ZXNzZXEpIFwKLSAgICAgICAgXAotICAgICAgICBtYWNybyhvcF9wcmVfaW5jKSBcCi0gICAgICAg
IG1hY3JvKG9wX3ByZV9kZWMpIFwKLSAgICAgICAgbWFjcm8ob3BfcG9zdF9pbmMpIFwKLSAgICAg
ICAgbWFjcm8ob3BfcG9zdF9kZWMpIFwKLSAgICAgICAgbWFjcm8ob3BfdG9fanNudW1iZXIpIFwK
LSAgICAgICAgbWFjcm8ob3BfbmVnYXRlKSBcCi0gICAgICAgIG1hY3JvKG9wX2FkZCkgXAotICAg
ICAgICBtYWNybyhvcF9tdWwpIFwKLSAgICAgICAgbWFjcm8ob3BfZGl2KSBcCi0gICAgICAgIG1h
Y3JvKG9wX21vZCkgXAotICAgICAgICBtYWNybyhvcF9zdWIpIFwKLSAgICAgICAgXAotICAgICAg
ICBtYWNybyhvcF9sc2hpZnQpIFwKLSAgICAgICAgbWFjcm8ob3BfcnNoaWZ0KSBcCi0gICAgICAg
IG1hY3JvKG9wX3Vyc2hpZnQpIFwKLSAgICAgICAgbWFjcm8ob3BfYml0YW5kKSBcCi0gICAgICAg
IG1hY3JvKG9wX2JpdHhvcikgXAotICAgICAgICBtYWNybyhvcF9iaXRvcikgXAotICAgICAgICBt
YWNybyhvcF9iaXRub3QpIFwKLSAgICAgICAgXAotICAgICAgICBtYWNybyhvcF9pbnN0YW5jZW9m
KSBcCi0gICAgICAgIG1hY3JvKG9wX3R5cGVvZikgXAotICAgICAgICBtYWNybyhvcF9pc191bmRl
ZmluZWQpIFwKLSAgICAgICAgbWFjcm8ob3BfaXNfYm9vbGVhbikgXAotICAgICAgICBtYWNybyhv
cF9pc19udW1iZXIpIFwKLSAgICAgICAgbWFjcm8ob3BfaXNfc3RyaW5nKSBcCi0gICAgICAgIG1h
Y3JvKG9wX2lzX29iamVjdCkgXAotICAgICAgICBtYWNybyhvcF9pc19mdW5jdGlvbikgXAotICAg
ICAgICBtYWNybyhvcF9pbikgXAotICAgICAgICBcCi0gICAgICAgIG1hY3JvKG9wX3Jlc29sdmUp
IFwKLSAgICAgICAgbWFjcm8ob3BfcmVzb2x2ZV9za2lwKSBcCi0gICAgICAgIG1hY3JvKG9wX3Jl
c29sdmVfZ2xvYmFsKSBcCi0gICAgICAgIG1hY3JvKG9wX2dldF9zY29wZWRfdmFyKSBcCi0gICAg
ICAgIG1hY3JvKG9wX3B1dF9zY29wZWRfdmFyKSBcCi0gICAgICAgIG1hY3JvKG9wX2dldF9nbG9i
YWxfdmFyKSBcCi0gICAgICAgIG1hY3JvKG9wX3B1dF9nbG9iYWxfdmFyKSBcCi0gICAgICAgIG1h
Y3JvKG9wX3Jlc29sdmVfYmFzZSkgXAotICAgICAgICBtYWNybyhvcF9yZXNvbHZlX3dpdGhfYmFz
ZSkgXAotICAgICAgICBtYWNybyhvcF9yZXNvbHZlX2Z1bmMpIFwKLSAgICAgICAgbWFjcm8ob3Bf
Z2V0X2J5X2lkKSBcCi0gICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9zZWxmKSBcCi0gICAgICAg
IG1hY3JvKG9wX2dldF9ieV9pZF9zZWxmX2xpc3QpIFwKLSAgICAgICAgbWFjcm8ob3BfZ2V0X2J5
X2lkX3Byb3RvKSBcCi0gICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9wcm90b19saXN0KSBcCi0g
ICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9jaGFpbikgXAotICAgICAgICBtYWNybyhvcF9nZXRf
YnlfaWRfZ2VuZXJpYykgXAotICAgICAgICBtYWNybyhvcF9nZXRfYXJyYXlfbGVuZ3RoKSBcCi0g
ICAgICAgIG1hY3JvKG9wX2dldF9zdHJpbmdfbGVuZ3RoKSBcCi0gICAgICAgIG1hY3JvKG9wX3B1
dF9ieV9pZCkgXAotICAgICAgICBtYWNybyhvcF9wdXRfYnlfaWRfdHJhbnNpdGlvbikgXAotICAg
ICAgICBtYWNybyhvcF9wdXRfYnlfaWRfcmVwbGFjZSkgXAotICAgICAgICBtYWNybyhvcF9wdXRf
YnlfaWRfZ2VuZXJpYykgXAotICAgICAgICBtYWNybyhvcF9kZWxfYnlfaWQpIFwKLSAgICAgICAg
bWFjcm8ob3BfZ2V0X2J5X3ZhbCkgXAotICAgICAgICBtYWNybyhvcF9wdXRfYnlfdmFsKSBcCi0g
ICAgICAgIG1hY3JvKG9wX2RlbF9ieV92YWwpIFwKLSAgICAgICAgbWFjcm8ob3BfcHV0X2J5X2lu
ZGV4KSBcCi0gICAgICAgIG1hY3JvKG9wX3B1dF9nZXR0ZXIpIFwKLSAgICAgICAgbWFjcm8ob3Bf
cHV0X3NldHRlcikgXAotICAgICAgICBcCi0gICAgICAgIG1hY3JvKG9wX2ptcCkgXAotICAgICAg
ICBtYWNybyhvcF9qdHJ1ZSkgXAotICAgICAgICBtYWNybyhvcF9qZmFsc2UpIFwKLSAgICAgICAg
bWFjcm8ob3BfamVxX251bGwpIFwKLSAgICAgICAgbWFjcm8ob3Bfam5lcV9udWxsKSBcCi0gICAg
ICAgIG1hY3JvKG9wX2pubGVzcykgXAotICAgICAgICBtYWNybyhvcF9qbXBfc2NvcGVzKSBcCi0g
ICAgICAgIG1hY3JvKG9wX2xvb3ApIFwKLSAgICAgICAgbWFjcm8ob3BfbG9vcF9pZl90cnVlKSBc
Ci0gICAgICAgIG1hY3JvKG9wX2xvb3BfaWZfbGVzcykgXAotICAgICAgICBtYWNybyhvcF9sb29w
X2lmX2xlc3NlcSkgXAotICAgICAgICBtYWNybyhvcF9zd2l0Y2hfaW1tKSBcCi0gICAgICAgIG1h
Y3JvKG9wX3N3aXRjaF9jaGFyKSBcCi0gICAgICAgIG1hY3JvKG9wX3N3aXRjaF9zdHJpbmcpIFwK
LSAgICAgICAgXAotICAgICAgICBtYWNybyhvcF9uZXdfZnVuYykgXAotICAgICAgICBtYWNybyhv
cF9uZXdfZnVuY19leHApIFwKLSAgICAgICAgbWFjcm8ob3BfY2FsbCkgXAotICAgICAgICBtYWNy
byhvcF9jYWxsX2V2YWwpIFwKLSAgICAgICAgbWFjcm8ob3BfdGVhcl9vZmZfYWN0aXZhdGlvbikg
XAotICAgICAgICBtYWNybyhvcF90ZWFyX29mZl9hcmd1bWVudHMpIFwKLSAgICAgICAgbWFjcm8o
b3BfcmV0KSBcCi0gICAgICAgIFwKLSAgICAgICAgbWFjcm8ob3BfY29uc3RydWN0KSBcCi0gICAg
ICAgIG1hY3JvKG9wX2NvbnN0cnVjdF92ZXJpZnkpIFwKLSAgICAgICAgXAotICAgICAgICBtYWNy
byhvcF9nZXRfcG5hbWVzKSBcCi0gICAgICAgIG1hY3JvKG9wX25leHRfcG5hbWUpIFwKLSAgICAg
ICAgXAotICAgICAgICBtYWNybyhvcF9wdXNoX3Njb3BlKSBcCi0gICAgICAgIG1hY3JvKG9wX3Bv
cF9zY29wZSkgXAotICAgICAgICBtYWNybyhvcF9wdXNoX25ld19zY29wZSkgXAotICAgICAgICBc
Ci0gICAgICAgIG1hY3JvKG9wX2NhdGNoKSBcCi0gICAgICAgIG1hY3JvKG9wX3Rocm93KSBcCi0g
ICAgICAgIG1hY3JvKG9wX25ld19lcnJvcikgXAotICAgICAgICBcCi0gICAgICAgIG1hY3JvKG9w
X2pzcikgXAotICAgICAgICBtYWNybyhvcF9zcmV0KSBcCi0gICAgICAgIFwKLSAgICAgICAgbWFj
cm8ob3BfZGVidWcpIFwKLSAgICAgICAgbWFjcm8ob3BfcHJvZmlsZV93aWxsX2NhbGwpIFwKLSAg
ICAgICAgbWFjcm8ob3BfcHJvZmlsZV9kaWRfY2FsbCkgXAorICAgICAgICBtYWNybyhvcF9lbnRl
ciwgMSkgXAorICAgICAgICBtYWNybyhvcF9lbnRlcl93aXRoX2FjdGl2YXRpb24sIDIpIFwKKyAg
ICAgICAgbWFjcm8ob3BfY3JlYXRlX2FyZ3VtZW50cywgMSkgXAorICAgICAgICBtYWNybyhvcF9j
b252ZXJ0X3RoaXMsIDIpIFwKKyAgICAgICAgXAorICAgICAgICBtYWNybyhvcF91bmV4cGVjdGVk
X2xvYWQsIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfbmV3X29iamVjdCwgMikgXAorICAgICAgICBt
YWNybyhvcF9uZXdfYXJyYXksIDQpIFwKKyAgICAgICAgbWFjcm8ob3BfbmV3X3JlZ2V4cCwgMykg
XAorICAgICAgICBtYWNybyhvcF9tb3YsIDMpIFwKKyAgICAgICAgXAorICAgICAgICBtYWNybyhv
cF9ub3QsIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfZXEsIDQpIFwKKyAgICAgICAgbWFjcm8ob3Bf
ZXFfbnVsbCwgMykgXAorICAgICAgICBtYWNybyhvcF9uZXEsIDQpIFwKKyAgICAgICAgbWFjcm8o
b3BfbmVxX251bGwsIDMpIFwKKyAgICAgICAgbWFjcm8ob3Bfc3RyaWN0ZXEsIDQpIFwKKyAgICAg
ICAgbWFjcm8ob3BfbnN0cmljdGVxLCA0KSBcCisgICAgICAgIG1hY3JvKG9wX2xlc3MsIDQpIFwK
KyAgICAgICAgbWFjcm8ob3BfbGVzc2VxLCA0KSBcCisgICAgICAgIFwKKyAgICAgICAgbWFjcm8o
b3BfcHJlX2luYywgMikgXAorICAgICAgICBtYWNybyhvcF9wcmVfZGVjLCAyKSBcCisgICAgICAg
IG1hY3JvKG9wX3Bvc3RfaW5jLCAzKSBcCisgICAgICAgIG1hY3JvKG9wX3Bvc3RfZGVjLCAzKSBc
CisgICAgICAgIG1hY3JvKG9wX3RvX2pzbnVtYmVyLCAzKSBcCisgICAgICAgIG1hY3JvKG9wX25l
Z2F0ZSwgMykgXAorICAgICAgICBtYWNybyhvcF9hZGQsIDUpIFwKKyAgICAgICAgbWFjcm8ob3Bf
bXVsLCA1KSBcCisgICAgICAgIG1hY3JvKG9wX2RpdiwgNCkgXAorICAgICAgICBtYWNybyhvcF9t
b2QsIDQpIFwKKyAgICAgICAgbWFjcm8ob3Bfc3ViLCA1KSBcCisgICAgICAgIFwKKyAgICAgICAg
bWFjcm8ob3BfbHNoaWZ0LCA0KSBcCisgICAgICAgIG1hY3JvKG9wX3JzaGlmdCwgNCkgXAorICAg
ICAgICBtYWNybyhvcF91cnNoaWZ0LCA0KSBcCisgICAgICAgIG1hY3JvKG9wX2JpdGFuZCwgNSkg
XAorICAgICAgICBtYWNybyhvcF9iaXR4b3IsIDUpIFwKKyAgICAgICAgbWFjcm8ob3BfYml0b3Is
IDUpIFwKKyAgICAgICAgbWFjcm8ob3BfYml0bm90LCAzKSBcCisgICAgICAgIFwKKyAgICAgICAg
bWFjcm8ob3BfaW5zdGFuY2VvZiwgNSkgXAorICAgICAgICBtYWNybyhvcF90eXBlb2YsIDMpIFwK
KyAgICAgICAgbWFjcm8ob3BfaXNfdW5kZWZpbmVkLCAzKSBcCisgICAgICAgIG1hY3JvKG9wX2lz
X2Jvb2xlYW4sIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfaXNfbnVtYmVyLCAzKSBcCisgICAgICAg
IG1hY3JvKG9wX2lzX3N0cmluZywgMykgXAorICAgICAgICBtYWNybyhvcF9pc19vYmplY3QsIDMp
IFwKKyAgICAgICAgbWFjcm8ob3BfaXNfZnVuY3Rpb24sIDMpIFwKKyAgICAgICAgbWFjcm8ob3Bf
aW4sIDQpIFwKKyAgICAgICAgXAorICAgICAgICBtYWNybyhvcF9yZXNvbHZlLCAzKSBcCisgICAg
ICAgIG1hY3JvKG9wX3Jlc29sdmVfc2tpcCwgNCkgXAorICAgICAgICBtYWNybyhvcF9yZXNvbHZl
X2dsb2JhbCwgNikgXAorICAgICAgICBtYWNybyhvcF9nZXRfc2NvcGVkX3ZhciwgNCkgXAorICAg
ICAgICBtYWNybyhvcF9wdXRfc2NvcGVkX3ZhciwgNCkgXAorICAgICAgICBtYWNybyhvcF9nZXRf
Z2xvYmFsX3ZhciwgNCkgXAorICAgICAgICBtYWNybyhvcF9wdXRfZ2xvYmFsX3ZhciwgNCkgXAor
ICAgICAgICBtYWNybyhvcF9yZXNvbHZlX2Jhc2UsIDMpIFwKKyAgICAgICAgbWFjcm8ob3BfcmVz
b2x2ZV93aXRoX2Jhc2UsIDQpIFwKKyAgICAgICAgbWFjcm8ob3BfcmVzb2x2ZV9mdW5jLCA0KSBc
CisgICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZCwgOCkgXAorICAgICAgICBtYWNybyhvcF9nZXRf
YnlfaWRfc2VsZiwgOCkgXAorICAgICAgICBtYWNybyhvcF9nZXRfYnlfaWRfc2VsZl9saXN0LCA4
KSBcCisgICAgICAgIG1hY3JvKG9wX2dldF9ieV9pZF9wcm90bywgOCkgXAorICAgICAgICBtYWNy
byhvcF9nZXRfYnlfaWRfcHJvdG9fbGlzdCwgOCkgXAorICAgICAgICBtYWNybyhvcF9nZXRfYnlf
aWRfY2hhaW4sIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfZ2V0X2J5X2lkX2dlbmVyaWMsIDgpIFwK
KyAgICAgICAgbWFjcm8ob3BfZ2V0X2FycmF5X2xlbmd0aCwgOCkgXAorICAgICAgICBtYWNybyhv
cF9nZXRfc3RyaW5nX2xlbmd0aCwgOCkgXAorICAgICAgICBtYWNybyhvcF9wdXRfYnlfaWQsIDgp
IFwKKyAgICAgICAgbWFjcm8ob3BfcHV0X2J5X2lkX3RyYW5zaXRpb24sIDgpIFwKKyAgICAgICAg
bWFjcm8ob3BfcHV0X2J5X2lkX3JlcGxhY2UsIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfcHV0X2J5
X2lkX2dlbmVyaWMsIDgpIFwKKyAgICAgICAgbWFjcm8ob3BfZGVsX2J5X2lkLCA0KSBcCisgICAg
ICAgIG1hY3JvKG9wX2dldF9ieV92YWwsIDQpIFwKKyAgICAgICAgbWFjcm8ob3BfcHV0X2J5X3Zh
bCwgNCkgXAorICAgICAgICBtYWNybyhvcF9kZWxfYnlfdmFsLCA0KSBcCisgICAgICAgIG1hY3Jv
KG9wX3B1dF9ieV9pbmRleCwgNCkgXAorICAgICAgICBtYWNybyhvcF9wdXRfZ2V0dGVyLCA0KSBc
CisgICAgICAgIG1hY3JvKG9wX3B1dF9zZXR0ZXIsIDQpIFwKKyAgICAgICAgXAorICAgICAgICBt
YWNybyhvcF9qbXAsIDIpIFwKKyAgICAgICAgbWFjcm8ob3BfanRydWUsIDMpIFwKKyAgICAgICAg
bWFjcm8ob3BfamZhbHNlLCAzKSBcCisgICAgICAgIG1hY3JvKG9wX2plcV9udWxsLCAzKSBcCisg
ICAgICAgIG1hY3JvKG9wX2puZXFfbnVsbCwgMykgXAorICAgICAgICBtYWNybyhvcF9qbmxlc3Ms
IDQpIFwKKyAgICAgICAgbWFjcm8ob3Bfam1wX3Njb3BlcywgMykgXAorICAgICAgICBtYWNybyhv
cF9sb29wLCAyKSBcCisgICAgICAgIG1hY3JvKG9wX2xvb3BfaWZfdHJ1ZSwgMykgXAorICAgICAg
ICBtYWNybyhvcF9sb29wX2lmX2xlc3MsIDQpIFwKKyAgICAgICAgbWFjcm8ob3BfbG9vcF9pZl9s
ZXNzZXEsIDQpIFwKKyAgICAgICAgbWFjcm8ob3Bfc3dpdGNoX2ltbSwgNCkgXAorICAgICAgICBt
YWNybyhvcF9zd2l0Y2hfY2hhciwgNCkgXAorICAgICAgICBtYWNybyhvcF9zd2l0Y2hfc3RyaW5n
LCA0KSBcCisgICAgICAgIFwKKyAgICAgICAgbWFjcm8ob3BfbmV3X2Z1bmMsIDMpIFwKKyAgICAg
ICAgbWFjcm8ob3BfbmV3X2Z1bmNfZXhwLCAzKSBcCisgICAgICAgIG1hY3JvKG9wX2NhbGwsIDUp
IFwKKyAgICAgICAgbWFjcm8ob3BfY2FsbF9ldmFsLCA1KSBcCisgICAgICAgIG1hY3JvKG9wX3Rl
YXJfb2ZmX2FjdGl2YXRpb24sIDIpIFwKKyAgICAgICAgbWFjcm8ob3BfdGVhcl9vZmZfYXJndW1l
bnRzLCAxKSBcCisgICAgICAgIG1hY3JvKG9wX3JldCwgMikgXAorICAgICAgICBcCisgICAgICAg
IG1hY3JvKG9wX2NvbnN0cnVjdCwgNykgXAorICAgICAgICBtYWNybyhvcF9jb25zdHJ1Y3RfdmVy
aWZ5LCAzKSBcCisgICAgICAgIFwKKyAgICAgICAgbWFjcm8ob3BfZ2V0X3BuYW1lcywgMykgXAor
ICAgICAgICBtYWNybyhvcF9uZXh0X3BuYW1lLCA0KSBcCisgICAgICAgIFwKKyAgICAgICAgbWFj
cm8ob3BfcHVzaF9zY29wZSwgMikgXAorICAgICAgICBtYWNybyhvcF9wb3Bfc2NvcGUsIDEpIFwK
KyAgICAgICAgbWFjcm8ob3BfcHVzaF9uZXdfc2NvcGUsIDQpIFwKKyAgICAgICAgXAorICAgICAg
ICBtYWNybyhvcF9jYXRjaCwgMikgXAorICAgICAgICBtYWNybyhvcF90aHJvdywgMikgXAorICAg
ICAgICBtYWNybyhvcF9uZXdfZXJyb3IsIDQpIFwKKyAgICAgICAgXAorICAgICAgICBtYWNybyhv
cF9qc3IsIDMpIFwKKyAgICAgICAgbWFjcm8ob3Bfc3JldCwgMikgXAorICAgICAgICBcCisgICAg
ICAgIG1hY3JvKG9wX2RlYnVnLCA0KSBcCisgICAgICAgIG1hY3JvKG9wX3Byb2ZpbGVfd2lsbF9j
YWxsLCAyKSBcCisgICAgICAgIG1hY3JvKG9wX3Byb2ZpbGVfZGlkX2NhbGwsIDIpIFwKICAgICAg
ICAgXAotICAgICAgICBtYWNybyhvcF9lbmQpIC8vIGVuZCBtdXN0IGJlIHRoZSBsYXN0IG9wY29k
ZSBpbiB0aGUgbGlzdAorICAgICAgICBtYWNybyhvcF9lbmQsIDIpIC8vIGVuZCBtdXN0IGJlIHRo
ZSBsYXN0IG9wY29kZSBpbiB0aGUgbGlzdAogCi0gICAgI2RlZmluZSBPUENPREVfSURfRU5VTShv
cGNvZGUpIG9wY29kZSwKKyAgICAjZGVmaW5lIE9QQ09ERV9JRF9FTlVNKG9wY29kZSwgc2l6ZSkg
b3Bjb2RlLAogICAgICAgICB0eXBlZGVmIGVudW0geyBGT1JfRUFDSF9PUENPREVfSUQoT1BDT0RF
X0lEX0VOVU0pIH0gT3Bjb2RlSUQ7CiAgICAgI3VuZGVmIE9QQ09ERV9JRF9FTlVNCiAKICAgICBj
b25zdCBpbnQgbnVtT3Bjb2RlSURzID0gb3BfZW5kICsgMTsKIAotICAgICNkZWZpbmUgVkVSSUZZ
X09QQ09ERV9JRChpZCkgQ09NUElMRV9BU1NFUlQoaWQgPD0gb3BfZW5kLCBBU1NFUlRfVEhBVF9K
U19PUENPREVfSURTX0FSRV9WQUxJRCk7CisgICAgI2RlZmluZSBPUENPREVfSURfU0laRVMoaWQs
IHNpemUpIGNvbnN0IGludCBvcGNvZGVfc2l6ZV8jI2lkID0gc2l6ZTsKKyAgICAgICAgIEZPUl9F
QUNIX09QQ09ERV9JRChPUENPREVfSURfU0laRVMpOworICAgICN1bmRlZiBPUENPREVfSURfU0la
RVMKKyAgICAKKyAgICAjZGVmaW5lIE9QQ09ERV9TSVpFKG9wY29kZSkgb3Bjb2RlX3NpemVfIyNv
cGNvZGUKKworICAgICNkZWZpbmUgVkVSSUZZX09QQ09ERV9JRChpZCwgc2l6ZSkgQ09NUElMRV9B
U1NFUlQoaWQgPD0gb3BfZW5kLCBBU1NFUlRfVEhBVF9KU19PUENPREVfSURTX0FSRV9WQUxJRCk7
CiAgICAgICAgIEZPUl9FQUNIX09QQ09ERV9JRChWRVJJRllfT1BDT0RFX0lEKTsKICAgICAjdW5k
ZWYgVkVSSUZZX09QQ09ERV9JRAogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAzOTA5OSkKKysrIEphdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2MSwxMSArMTQ2MSwx
MSBAQCBKU1ZhbHVlKiBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlCiAgICAgLy8gaGVy
ZSBiZWNhdXNlIG91ciBsYWJlbHMgYXJlIG9ubHkgaW4gc2NvcGUgaW5zaWRlIHRoaXMgZnVuY3Rp
b24uCiAgICAgaWYgKGZsYWcgPT0gSW5pdGlhbGl6ZUFuZFJldHVybikgewogICAgICAgICAjaWYg
SEFWRShDT01QVVRFRF9HT1RPKQotICAgICAgICAgICAgI2RlZmluZSBBRERfQllURUNPREUoaWQp
IG1fb3Bjb2RlVGFibGVbaWRdID0gJiZpZDsKKyAgICAgICAgICAgICNkZWZpbmUgQUREX0JZVEVD
T0RFKGlkLCBzaXplKSBtX29wY29kZVRhYmxlW2lkXSA9ICYmaWQ7CiAgICAgICAgICAgICAgICAg
Rk9SX0VBQ0hfT1BDT0RFX0lEKEFERF9CWVRFQ09ERSk7CiAgICAgICAgICAgICAjdW5kZWYgQURE
X0JZVEVDT0RFCiAKLSAgICAgICAgICAgICNkZWZpbmUgQUREX09QQ09ERV9JRChpZCkgbV9vcGNv
ZGVJRFRhYmxlLmFkZCgmJmlkLCBpZCk7CisgICAgICAgICAgICAjZGVmaW5lIEFERF9PUENPREVf
SUQoaWQsIHNpemUpIG1fb3Bjb2RlSURUYWJsZS5hZGQoJiZpZCwgaWQpOwogICAgICAgICAgICAg
ICAgIEZPUl9FQUNIX09QQ09ERV9JRChBRERfT1BDT0RFX0lEKTsKICAgICAgICAgICAgICN1bmRl
ZiBBRERfT1BDT0RFX0lECiAgICAgICAgICAgICBBU1NFUlQobV9vcGNvZGVJRFRhYmxlLnNpemUo
KSA9PSBudW1PcGNvZGVJRHMpOwpJbmRleDogSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHJldmlzaW9uIDM5MDk5KQor
KysgSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NSw3ICsy
ODUsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIGNhc2Ug
b3BfbW92OiB7CiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9u
W2kgKyAyXS51Lm9wZXJhbmQsIFg4Njo6ZWF4LCBpKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBp
ICs9IDM7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX21vdik7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2FkZDogewpAQCAtMzE1LDcgKzMx
NSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGkgKz0gNTsKKyAgICAgICAgICAgIGkg
Kz0gT1BDT0RFX1NJWkUob3BfYWRkKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfZW5kOiB7CkBAIC0zMjQsMTMgKzMyNCwxMyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsIFg4Njo6ZWF4LCBpKTsKICAgICAgICAgICAg
IF9fIHB1c2hsX20oUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQyAqIHN0YXRpY19jYXN0PGludD4oc2l6
ZW9mKFJlZ2lzdGVyKSksIFg4Njo6ZWRpKTsKICAgICAgICAgICAgIF9fIHJldCgpOwotICAgICAg
ICAgICAgaSArPSAyOworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9lbmQpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbXA6IHsKICAgICAg
ICAgICAgIHVuc2lnbmVkIHRhcmdldCA9IGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShqdW1wKCksIGkgKyAxICsgdGFy
Z2V0KSk7Ci0gICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpF
KG9wX2ptcCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9w
X3ByZV9pbmM6IHsKQEAgLTMzOSw3ICszMzksNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcygpCiAgICAgICAgICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1OdW0oWDg2Ojpl
YXgsIGkpOwogICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNsb3dDYXNlRW50cnkoam9B
ZGQzMihJbW0zMihnZXREZVRhZ2dlZENvbnN0YW50SW1tZWRpYXRlKEpTSW1tZWRpYXRlOjpvbmVJ
bW1lZGlhdGUoKSkpLCBYODY6OmVheCksIGkpKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFs
UmVnaXN0ZXIoc3JjRHN0KTsKLSAgICAgICAgICAgIGkgKz0gMjsKKyAgICAgICAgICAgIGkgKz0g
T1BDT0RFX1NJWkUob3BfcHJlX2luYyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2xvb3A6IHsKQEAgLTM0Nyw3ICszNDcsNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAKICAgICAgICAgICAgIHVuc2lnbmVkIHRhcmdldCA9IGlu
c3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVu
ZChKbXBUYWJsZShqdW1wKCksIGkgKyAxICsgdGFyZ2V0KSk7Ci0gICAgICAgICAgICBpICs9IDI7
CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX2xvb3ApOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lmX2xlc3M6IHsKQEAgLTM2NSw3
ICszNjUsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAg
ICAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tTnVtKFg4Njo6ZWR4LCBpKTsKICAgICAgICAg
ICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShqbDMyKFg4Njo6ZWF4LCBYODY6OmVk
eCksIGkgKyAzICsgdGFyZ2V0KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpICs9IDQ7
CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX2xvb3BfaWZfbGVzcyk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZfbGVzc2VxOiB7
CkBAIC0zODMsMjMgKzM4MywyMyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygp
CiAgICAgICAgICAgICAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tTnVtKFg4Njo6ZWR4LCBp
KTsKICAgICAgICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShqbGUzMihYODY6
OmVheCwgWDg2OjplZHgpLCBpICsgMyArIHRhcmdldCkpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9sb29wX2lmX2xl
c3NlcSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25l
d19vYmplY3Q6IHsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlf
b3BfbmV3X29iamVjdCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3Ry
dWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAyOworICAgICAgICAg
ICAgaSArPSBPUENPREVfU0laRShvcF9uZXdfb2JqZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CiAgICAgICAgICAgICBjb21w
aWxlUHV0QnlJZEhvdFBhdGgoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCwgJihtX2NvZGVC
bG9jay0+aWRlbnRpZmllcihpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kKSksIGluc3RydWN0
aW9uW2kgKyAzXS51Lm9wZXJhbmQsIGksIHByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25JbmRleCsr
KTsKLSAgICAgICAgICAgIGkgKz0gODsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3Bf
cHV0X2J5X2lkKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfZ2V0X2J5X2lkOiB7CiAgICAgICAgICAgICBjb21waWxlR2V0QnlJZEhvdFBhdGgoaW5zdHJ1
Y3Rpb25baSArIDFdLnUub3BlcmFuZCwgaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgJiht
X2NvZGVCbG9jay0+aWRlbnRpZmllcihpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kKSksIGks
IHByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25JbmRleCsrKTsKLSAgICAgICAgICAgIGkgKz0gODsK
KyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfZ2V0X2J5X2lkKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewpAQCAtNDU4
LDcgKzQ1OCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKIAogICAgICAg
ICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5k
KTsKIAotICAgICAgICAgICAgaSArPSA1OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShv
cF9pbnN0YW5jZW9mKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfZGVsX2J5X2lkOiB7CkBAIC00NjcsNyArNDY3LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGlkZW50KSwgNCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2Fs
bChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2RlbF9ieV9pZCk7CiAgICAgICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAg
ICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9kZWxfYnlfaWQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9tdWw6IHsKQEAg
LTQ5Niw3ICs0OTYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAg
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBjb21waWxlQmluYXJ5QXJpdGhPcChvcF9t
dWwsIGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsIGluc3RydWN0aW9uW2kgKyAyXS51Lm9w
ZXJhbmQsIGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIE9wZXJhbmRUeXBlczo6ZnJvbUlu
dChpbnN0cnVjdGlvbltpICsgNF0udS5vcGVyYW5kKSwgaSk7CiAKLSAgICAgICAgICAgIGkgKz0g
NTsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfbXVsKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X2Z1bmM6IHsKQEAgLTUwNCwxNCAr
NTA0LDE0IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAg
IGVtaXRQdXRDVElBcmdDb25zdGFudChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkPihmdW5jKSwg
MCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25ld19m
dW5jKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSAr
IDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9Q
Q09ERV9TSVpFKG9wX25ld19mdW5jKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfY2FsbDoKICAgICAgICAgY2FzZSBvcF9jYWxsX2V2YWw6CiAgICAgICAg
IGNhc2Ugb3BfY29uc3RydWN0OiB7CiAgICAgICAgICAgICBjb21waWxlT3BDYWxsKG9wY29kZUlE
LCBpbnN0cnVjdGlvbiArIGksIGksIGNhbGxMaW5rSW5mb0luZGV4KyspOwotICAgICAgICAgICAg
aSArPSAob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gNyA6IDUpOworICAgICAgICAgICAgaSAr
PSAob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gT1BDT0RFX1NJWkUob3BfY29uc3RydWN0KSA6
IE9QQ09ERV9TSVpFKG9wX2NhbGxfZXZhbCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9nZXRfZ2xvYmFsX3ZhcjogewpAQCAtNTE5LDcgKzUxOSw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIG1vdmUoZ2xv
YmFsT2JqZWN0LCBYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0R2V0VmFyaWFibGVPYmplY3RS
ZWdpc3RlcihYODY6OmVheCwgaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgWDg2OjplYXgp
OwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0u
dS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RF
X1NJWkUob3BfZ2V0X2dsb2JhbF92YXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9wdXRfZ2xvYmFsX3ZhcjogewpAQCAtNTI3LDcgKzUyNyw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIEpTVmFyaWFibGVP
YmplY3QqIGdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpTVmFyaWFibGVPYmplY3QqPihpbnN0
cnVjdGlvbltpICsgMV0udS5qc0NlbGwpOwogICAgICAgICAgICAgbW92ZShnbG9iYWxPYmplY3Qs
IFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWYXJpYWJsZU9iamVjdFJlZ2lzdGVyKFg4
Njo6ZWR4LCBYODY6OmVheCwgaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCk7Ci0gICAgICAg
ICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3B1dF9nbG9iYWxf
dmFyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0
X3Njb3BlZF92YXI6IHsKQEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVNYWluUGFzcygpCiAgICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoWDg2OjplYXgsIEZJRUxE
X09GRlNFVChTY29wZUNoYWluTm9kZSwgb2JqZWN0KSksIFg4Njo6ZWF4KTsKICAgICAgICAgICAg
IGVtaXRHZXRWYXJpYWJsZU9iamVjdFJlZ2lzdGVyKFg4Njo6ZWF4LCBpbnN0cnVjdGlvbltpICsg
Ml0udS5vcGVyYW5kLCBYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSA0Owor
ICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9nZXRfc2NvcGVkX3Zhcik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1dF9zY29wZWRfdmFyOiB7
CkBAIC01NTMsMTggKzU1MywxOCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygp
CiAKICAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhYODY6OmVkeCwgRklFTERfT0ZGU0VUKFNj
b3BlQ2hhaW5Ob2RlLCBvYmplY3QpKSwgWDg2OjplZHgpOwogICAgICAgICAgICAgZW1pdFB1dFZh
cmlhYmxlT2JqZWN0UmVnaXN0ZXIoWDg2OjplYXgsIFg4Njo6ZWR4LCBpbnN0cnVjdGlvbltpICsg
MV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BD
T0RFX1NJWkUob3BfcHV0X3Njb3BlZF92YXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF90ZWFyX29mZl9hY3RpdmF0aW9uOiB7CiAgICAgICAgICAgICBl
bWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVy
YW5kLCAwLCBYODY6OmVjeCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRl
cjo6Y3RpX29wX3RlYXJfb2ZmX2FjdGl2YXRpb24pOwotICAgICAgICAgICAgaSArPSAyOworICAg
ICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF90ZWFyX29mZl9hY3RpdmF0aW9uKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGVhcl9vZmZfYXJndW1l
bnRzOiB7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3Rl
YXJfb2ZmX2FyZ3VtZW50cyk7Ci0gICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICBpICs9
IE9QQ09ERV9TSVpFKG9wX3RlYXJfb2ZmX2FyZ3VtZW50cyk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3JldDogewpAQCAtNTg1LDcgKzU4NSw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIF9fIHB1c2hsX3Io
WDg2OjplZHgpOwogICAgICAgICAgICAgX18gcmV0KCk7CiAKLSAgICAgICAgICAgIGkgKz0gMjsK
KyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfcmV0KTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X2FycmF5OiB7CkBAIC01OTQsNyArNTk0
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1p
dFB1dENUSUFyZ0NvbnN0YW50KGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQpOwogICAg
ICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZXdfYXJyYXkpOwog
ICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5v
cGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJ
WkUob3BfbmV3X2FycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2Ugb3BfcmVzb2x2ZTogewpAQCAtNjAyLDcgKzYwMiw3IEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudChyZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkPihpZGVudCksIDApOwogICAgICAgICAgICAgZW1pdENUSUNh
bGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9yZXNvbHZlKTsKICAgICAgICAgICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAg
ICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3Jlc29sdmUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jb25zdHJ1Y3RfdmVy
aWZ5OiB7CkBAIC02MTgsNyArNjE4LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBh
c3MoKQogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsg
MV0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIF9fIGxpbmsoaXNPYmplY3QsIF9fIGxhYmVsKCkp
OwogCi0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9w
X2NvbnN0cnVjdF92ZXJpZnkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9nZXRfYnlfdmFsOiB7CkBAIC02MzcsNyArNjM3LDcgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgLy8gR2V0IHRoZSB2YWx1ZSBmcm9t
IHRoZSB2ZWN0b3IKICAgICAgICAgICAgIF9fIG1vdmxfbXIoRklFTERfT0ZGU0VUKEFycmF5U3Rv
cmFnZSwgbV92ZWN0b3JbMF0pLCBYODY6OmVjeCwgWDg2OjplZHgsIHNpemVvZihKU1ZhbHVlKiks
IFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rp
b25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBp
ICs9IE9QQ09ERV9TSVpFKG9wX2dldF9ieV92YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF9yZXNvbHZlX2Z1bmM6IHsKQEAgLTY0NiwxMiArNjQ2LDEy
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGVtaXRD
VElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcmVzb2x2ZV9mdW5jKTsKICAgICAgICAgICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgWDg2
OjplZHgpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltp
ICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0g
T1BDT0RFX1NJWkUob3BfcmVzb2x2ZV9mdW5jKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3Bfc3ViOiB7CiAgICAgICAgICAgICBjb21waWxlQmluYXJ5QXJp
dGhPcChvcF9zdWIsIGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsIGluc3RydWN0aW9uW2kg
KyAyXS51Lm9wZXJhbmQsIGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIE9wZXJhbmRUeXBl
czo6ZnJvbUludChpbnN0cnVjdGlvbltpICsgNF0udS5vcGVyYW5kKSwgaSk7Ci0gICAgICAgICAg
ICBpICs9IDU7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3N1Yik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1dF9ieV92YWw6IHsKQEAg
LTY3OSw3ICs2NzksNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAg
ICAgICAgICBfXyBsaW5rKGluRmFzdFZlY3RvciwgX18gbGFiZWwoKSk7CiAgICAgICAgICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIFg4Njo6
ZWF4LCBpKTsKICAgICAgICAgICAgIF9fIG1vdmxfcm0oWDg2OjplYXgsIEZJRUxEX09GRlNFVChB
cnJheVN0b3JhZ2UsIG1fdmVjdG9yWzBdKSwgWDg2OjplY3gsIFg4Njo6ZWR4LCBzaXplb2YoSlNW
YWx1ZSopKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJ
WkUob3BfcHV0X2J5X3ZhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBDVElfQ09NUElMRV9CSU5BUllfT1Aob3BfbGVzc2VxKQpAQCAtNzAwLDcgKzcwMCw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIG1fc2xvd0Nhc2Vz
LmFwcGVuZChTbG93Q2FzZUVudHJ5KF9fIGpuZSgpLCBpKSk7CiAKICAgICAgICAgICAgIF9fIGxp
bmsoaXNaZXJvLCBfXyBsYWJlbCgpKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAg
IGkgKz0gT1BDT0RFX1NJWkUob3BfbG9vcF9pZl90cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9OwogICAgICAgICBjYXNlIG9wX3Jlc29sdmVfYmFzZTogewpAQCAtNzA4LDE0ICs3
MDgsMTQgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAg
ZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGlkZW50KSwg
MCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3Jlc29s
dmVfYmFzZSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9u
W2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSAr
PU9QQ09ERV9TSVpFKG9wX3Jlc29sdmVfYmFzZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX25lZ2F0ZTogewogICAgICAgICAgICAgZW1pdFB1dENUSUFy
Z0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCwgMCwgWDg2
OjplY3gpOwogICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9u
ZWdhdGUpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltp
ICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGkgKz0g
T1BDT0RFX1NJWkUob3BfbmVnYXRlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV9za2lwOiB7CkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0Nv
bnN0YW50KGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQgKyBtX2NvZGVCbG9jay0+bmVlZHNG
dWxsU2NvcGVDaGFpbigpLCA0KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJl
dGVyOjpjdGlfb3BfcmVzb2x2ZV9za2lwKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDQ7
CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3Jlc29sdmVfc2tpcCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Jlc29sdmVfZ2xvYmFsOiB7
CkBAIC03NTUsNyArNzU1LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQog
ICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9yZXNvbHZlX2ds
b2JhbCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kg
KyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAgICAgX18gbGluayhlbmQsIF9fIGxhYmVsKCkpOwot
ICAgICAgICAgICAgaSArPSA2OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9yZXNv
bHZlX2dsb2JhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBDVElf
Q09NUElMRV9CSU5BUllfT1Aob3BfZGl2KQpAQCAtNzY2LDcgKzc2Niw3IEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIF9fIHN1YmxfaThyKGdldERlVGFn
Z2VkQ29uc3RhbnRJbW1lZGlhdGUoSlNJbW1lZGlhdGU6Om9uZUltbWVkaWF0ZSgpKSwgWDg2Ojpl
YXgpOwogICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNsb3dDYXNlRW50cnkoX18gam8o
KSwgaSkpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihzcmNEc3QpOwotICAg
ICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9wcmVfZGVj
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfam5sZXNz
OiB7CkBAIC03ODQsNyArNzg0LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3Mo
KQogICAgICAgICAgICAgICAgIF9fIGNtcGxfcnIoWDg2OjplZHgsIFg4Njo6ZWF4KTsKICAgICAg
ICAgICAgICAgICBtX2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShfXyBqZ2UoKSwgaSArIDMgKyB0
YXJnZXQpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAg
IGkgKz0gT1BDT0RFX1NJWkUob3Bfam5sZXNzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3Bfbm90OiB7CkBAIC03OTQsNyArNzk0LDcgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5k
KFNsb3dDYXNlRW50cnkoX18gam5lKCksIGkpKTsKICAgICAgICAgICAgIF9fIHhvcmxfaThyKChK
U0ltbWVkaWF0ZTo6RnVsbFRhZ1R5cGVCb29sIHwgSlNJbW1lZGlhdGU6OkV4dGVuZGVkUGF5bG9h
ZEJpdEJvb2xWYWx1ZSksIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7
CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX25vdCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2pmYWxzZTogewpAQCAtODEyLDcgKzgxMiw3
IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIG1fc2xv
d0Nhc2VzLmFwcGVuZChTbG93Q2FzZUVudHJ5KF9fIGpuZSgpLCBpKSk7CiAKICAgICAgICAgICAg
IF9fIGxpbmsoaXNOb25aZXJvLCBfXyBsYWJlbCgpKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAg
ICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfamZhbHNlKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9OwogICAgICAgICBjYXNlIG9wX2plcV9udWxsOiB7CkBAIC04NDEsNyArODQx
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgX18g
Y21wbF9pMzJyKDAsIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIG1fam1wVGFibGUuYXBwZW5kKEpt
cFRhYmxlKF9fIGpueigpLCBpICsgMiArIHRhcmdldCkpOyAgICAgICAgICAgIAogCi0gICAgICAg
ICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX2plcV9udWxsKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9OwogICAgICAgICBjYXNlIG9wX2puZXFfbnVs
bDogewpAQCAtODcwLDcgKzg3MCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNz
KCkKICAgICAgICAgICAgIF9fIGNtcGxfaTMycigwLCBYODY6OmVheCk7CiAgICAgICAgICAgICBt
X2ptcFRhYmxlLmFwcGVuZChKbXBUYWJsZShfXyBqbnooKSwgaSArIDIgKyB0YXJnZXQpKTsgICAg
ICAgICAgICAKIAotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBPUENPREVf
U0laRShvcF9qbmVxX251bGwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9wb3N0X2luYzogewpAQCAtODgyLDE0ICs4ODIsMTQgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgbV9zbG93Q2FzZXMuYXBwZW5kKFNs
b3dDYXNlRW50cnkoX18gam8oKSwgaSkpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3RlcihzcmNEc3QsIFg4Njo6ZWR4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7Cisg
ICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3Bvc3RfaW5jKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdW5leHBlY3RlZF9sb2FkOiB7CiAgICAg
ICAgICAgICBKU1ZhbHVlKiB2ID0gbV9jb2RlQmxvY2stPnVuZXhwZWN0ZWRDb25zdGFudChpbnN0
cnVjdGlvbltpICsgMl0udS5vcGVyYW5kKTsKICAgICAgICAgICAgIF9fIG1vdmxfaTMycihhc0lu
dGVnZXIodiksIFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
aW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAg
ICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3VuZXhwZWN0ZWRfbG9hZCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2pzcjogewpAQCAtOTAwLDEyICs5
MDAsMTIgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAg
bV9qbXBUYWJsZS5hcHBlbmQoSm1wVGFibGUoX18gam1wKCksIGkgKyAyICsgdGFyZ2V0KSk7CiAg
ICAgICAgICAgICBKbXBEc3Qgc3JldFRhcmdldCA9IF9fIGxhYmVsKCk7CiAgICAgICAgICAgICBt
X2pzclNpdGVzLmFwcGVuZChKU1JJbmZvKGFkZHJQb3NpdGlvbiwgc3JldFRhcmdldCkpOwotICAg
ICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9qc3IpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9zcmV0OiB7CiAg
ICAgICAgICAgICBfXyBqbXBfbShzaXplb2YoUmVnaXN0ZXIpICogaW5zdHJ1Y3Rpb25baSArIDFd
LnUub3BlcmFuZCwgWDg2OjplZGkpOwotICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAg
aSArPSBPUENPREVfU0laRShvcF9zcmV0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfZXE6IHsKQEAgLTkxNiw3ICs5MTYsNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBfXyBtb3Z6YmxfcnIoWDg2OjplYXgs
IFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRUYWdBc0Jvb2xJbW1lZGlhdGUoWDg2OjplYXgp
OwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0u
dS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RF
X1NJWkUob3BfZXEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9sc2hpZnQ6IHsKQEAgLTkyOCw3ICs5MjgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBp
bGVNYWluUGFzcygpCiAgICAgICAgICAgICBfXyBzaGxsX0NMcihYODY6OmVheCk7CiAgICAgICAg
ICAgICBlbWl0RmFzdEFyaXRoSW50VG9JbW1PclNsb3dDYXNlKFg4Njo6ZWF4LCBpKTsKICAgICAg
ICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFu
ZCk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9w
X2xzaGlmdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9w
X2JpdGFuZDogewpAQCAtOTUxLDcgKzk1MSw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1h
aW5QYXNzKCkKICAgICAgICAgICAgICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RJbW1OdW0oWDg2
OjplYXgsIGkpOwogICAgICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGkgKz0gNTsKKyAgICAgICAgICAgIGkgKz0gT1BD
T0RFX1NJWkUob3BfYml0YW5kKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfcnNoaWZ0OiB7CkBAIC05NzEsNyArOTcxLDcgQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgZW1pdEZhc3RB
cml0aFBvdGVudGlhbGx5UmVUYWdJbW1lZGlhdGUoWDg2OjplYXgpOwogICAgICAgICAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAg
ICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfcnNoaWZ0KTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfYml0bm90OiB7
CkBAIC05NzksNyArOTc5LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQog
ICAgICAgICAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tTnVtKFg4Njo6ZWF4LCBpKTsKICAg
ICAgICAgICAgIF9fIHhvcmxfaThyKH5KU0ltbWVkaWF0ZTo6VGFnQml0VHlwZUludGVnZXIsIFg4
Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25b
aSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9
IE9QQ09ERV9TSVpFKG9wX2JpdG5vdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX3Jlc29sdmVfd2l0aF9iYXNlOiB7CkBAIC05ODgsNyArOTg4LDcgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdENUSUNh
bGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9yZXNvbHZlX3dpdGhfYmFzZSk7CiAgICAgICAgICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQsIFg4
Njo6ZWR4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25b
aSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9
IE9QQ09ERV9TSVpFKG9wX3Jlc29sdmVfd2l0aF9iYXNlKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X2Z1bmNfZXhwOiB7CkBAIC05OTYsNyArOTk2
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1p
dFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGZ1bmMpLCAwKTsK
ICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfbmV3X2Z1bmNf
ZXhwKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSAr
IDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9Q
Q09ERV9TSVpFKG9wX25ld19mdW5jX2V4cCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX21vZDogewpAQCAtMTAxMCw3ICsxMDEwLDcgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdEZhc3RBcml0aFJlVGFn
SW1tZWRpYXRlKFg4Njo6ZWR4KTsKICAgICAgICAgICAgIF9fIG1vdmxfcnIoWDg2OjplZHgsIFg4
Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25b
aSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9
IE9QQ09ERV9TSVpFKG9wX21vZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX2p0cnVlOiB7CkBAIC0xMDI4LDcgKzEwMjgsNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xv
d0Nhc2VFbnRyeShfXyBqbmUoKSwgaSkpOwogCiAgICAgICAgICAgICBfXyBsaW5rKGlzWmVybywg
X18gbGFiZWwoKSk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9QQ09E
RV9TSVpFKG9wX2p0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IENUSV9DT01QSUxFX0JJTkFSWV9PUChvcF9sZXNzKQpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgdm9p
ZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogCiAgICAgICAgICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogCi0gICAgICAgICAg
ICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX25lcSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Bvc3RfZGVjOiB7CkBAIC0x
MDU1LDcgKzEwNTUsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAg
ICAgICAgICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xvd0Nhc2VFbnRyeShfXyBqbygpLCBpKSk7CiAg
ICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHNyY0RzdCwgWDg2OjplZHgpOwogICAg
ICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVy
YW5kKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUo
b3BfcG9zdF9kZWMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgQ1RJ
X0NPTVBJTEVfQklOQVJZX09QKG9wX3Vyc2hpZnQpCkBAIC0xMDY1LDcgKzEwNjUsNyBAQCB2b2lk
IEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBfXyB4b3JsX3JyKFg4
Njo6ZWR4LCBYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0RmFzdEFyaXRoUmVUYWdJbW1lZGlh
dGUoWDg2OjplYXgpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNTsKKyAgICAgICAgICAg
IGkgKz0gT1BDT0RFX1NJWkUob3BfYml0eG9yKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X3JlZ2V4cDogewpAQCAtMTA3Myw3ICsxMDczLDcgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENU
SUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KHJlZ0V4cCksIDApOwogICAg
ICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uZXdfcmVnZXhwKTsK
ICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUu
b3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9T
SVpFKG9wX25ld19yZWdleHApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9iaXRvcjogewpAQCAtMTA4MSw3ICsxMDgxLDcgQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1t
TnVtcyhYODY6OmVheCwgWDg2OjplZHgsIFg4Njo6ZWN4LCBpKTsKICAgICAgICAgICAgIF9fIG9y
bF9ycihYODY6OmVkeCwgWDg2OjplYXgpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNTsK
KyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfYml0b3IpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF90aHJvdzogewpAQCAtMTA5MiwxNCArMTA5
MiwxNCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBf
XyBwb3BsX3IoWDg2OjplZGkpOwogICAgICAgICAgICAgX18gcG9wbF9yKFg4Njo6ZXNpKTsKICAg
ICAgICAgICAgIF9fIHJldCgpOwotICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgaSAr
PSBPUENPREVfU0laRShvcF90aHJvdyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2dldF9wbmFtZXM6IHsKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdG
cm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAyXS51Lm9wZXJhbmQsIDAsIFg4Njo6
ZWN4KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfZ2V0
X3BuYW1lcyk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9u
W2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSAr
PSBPUENPREVfU0laRShvcF9nZXRfcG5hbWVzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfbmV4dF9wbmFtZTogewpAQCAtMTExMSwxOCArMTExMSwxOCBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwogICAgICAgICAg
ICAgbV9qbXBUYWJsZS5hcHBlbmQoSm1wVGFibGUoX18gam1wKCksIGkgKyAzICsgdGFyZ2V0KSk7
CiAgICAgICAgICAgICBfXyBsaW5rKGVuZE9mSXRlciwgX18gbGFiZWwoKSk7Ci0gICAgICAgICAg
ICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX25leHRfcG5hbWUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXNoX3Njb3Bl
OiB7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3RlcihpbnN0cnVj
dGlvbltpICsgMV0udS5vcGVyYW5kLCAwLCBYODY6OmVjeCk7CiAgICAgICAgICAgICBlbWl0Q1RJ
Q2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1c2hfc2NvcGUpOwotICAgICAgICAgICAgaSAr
PSAyOworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9wdXNoX3Njb3BlKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcG9wX3Njb3BlOiB7CiAg
ICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3BvcF9zY29wZSk7
Ci0gICAgICAgICAgICBpICs9IDE7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3Bv
cF9zY29wZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBDVElfQ09N
UElMRV9VTkFSWV9PUChvcF90eXBlb2YpCkBAIC0xMTM0LDEyICsxMTM0LDEyIEBAIHZvaWQgSklU
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgQ1RJX0NPTVBJTEVfVU5BUllfT1Ao
b3BfaXNfZnVuY3Rpb24pCiAgICAgICAgIGNhc2Ugb3Bfc3RyaWN0ZXE6IHsKICAgICAgICAgICAg
IGNvbXBpbGVPcFN0cmljdEVxKGluc3RydWN0aW9uICsgaSwgaSwgT3BTdHJpY3RFcSk7Ci0gICAg
ICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3N0cmljdGVx
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbnN0cmlj
dGVxOiB7CiAgICAgICAgICAgICBjb21waWxlT3BTdHJpY3RFcShpbnN0cnVjdGlvbiArIGksIGks
IE9wTlN0cmljdEVxKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BD
T0RFX1NJWkUob3BfbnN0cmljdGVxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfdG9fanNudW1iZXI6IHsKQEAgLTExNTksNyArMTE1OSw3IEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIF9fIGxpbmsod2FzSW1t
ZWRpYXRlLCBfXyBsYWJlbCgpKTsKIAogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rl
cihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAg
ICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfdG9fanNudW1iZXIpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pbjogewpAQCAtMTE2Nyw3ICsxMTY3
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1p
dFB1dENUSUFyZ0Zyb21WaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFu
ZCwgNCwgWDg2OjplY3gpOwogICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6
OmN0aV9vcF9pbik7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0
aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAg
aSArPSBPUENPREVfU0laRShvcF9pbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX3B1c2hfbmV3X3Njb3BlOiB7CkBAIC0xMTc2LDEzICsxMTc2LDEzIEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgICAgIGVtaXRQdXRD
VElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDQs
IFg4Njo6ZWN4KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlf
b3BfcHVzaF9uZXdfc2NvcGUpOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihp
bnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAg
ICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfcHVzaF9uZXdfc2NvcGUpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jYXRjaDogewogICAgICAgICAgICAg
ZW1pdEdldENUSVBhcmFtKENUSV9BUkdTX2NhbGxGcmFtZSwgWDg2OjplZGkpOyAvLyBlZGkgOj0g
cgogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0u
dS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gMjsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RF
X1NJWkUob3BfY2F0Y2gpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9qbXBfc2NvcGVzOiB7CkBAIC0xMTkxLDcgKzExOTEsNyBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnBy
ZXRlcjo6Y3RpX29wX2ptcF9zY29wZXMpOwogICAgICAgICAgICAgdW5zaWduZWQgdGFyZ2V0ID0g
aW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIG1fam1wVGFibGUuYXBw
ZW5kKEptcFRhYmxlKF9fIGptcCgpLCBpICsgMiArIHRhcmdldCkpOwotICAgICAgICAgICAgaSAr
PSAzOworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9qbXBfc2NvcGVzKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2luZGV4OiB7
CkBAIC0xMTk5LDcgKzExOTksNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygp
CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQoaW5zdHJ1Y3Rpb25baSArIDJdLnUu
b3BlcmFuZCwgNCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3Rl
cihpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCA4LCBYODY6OmVjeCk7CiAgICAgICAgICAg
ICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1dF9ieV9pbmRleCk7Ci0gICAg
ICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3B1dF9ieV9p
bmRleCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N3
aXRjaF9pbW06IHsKQEAgLTEyMTYsNyArMTIxNiw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZU1haW5QYXNzKCkKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdDb25zdGFudCh0YWJsZUluZGV4
LCA0KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3Bfc3dp
dGNoX2ltbSk7CiAgICAgICAgICAgICBfXyBqbXBfcihYODY6OmVheCk7Ci0gICAgICAgICAgICBp
ICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3N3aXRjaF9pbW0pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9zd2l0Y2hfY2hhcjog
ewpAQCAtMTIzMyw3ICsxMjMzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3Mo
KQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHRhYmxlSW5kZXgsIDQpOwogICAg
ICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9zd2l0Y2hfY2hhcik7
CiAgICAgICAgICAgICBfXyBqbXBfcihYODY6OmVheCk7Ci0gICAgICAgICAgICBpICs9IDQ7Cisg
ICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3N3aXRjaF9jaGFyKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfc3dpdGNoX3N0cmluZzogewpAQCAt
MTI0OSw3ICsxMjQ5LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAg
ICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHRhYmxlSW5kZXgsIDQpOwogICAgICAgICAg
ICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9zd2l0Y2hfc3RyaW5nKTsKICAg
ICAgICAgICAgIF9fIGptcF9yKFg4Njo6ZWF4KTsKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAg
ICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3Bfc3dpdGNoX3N0cmluZyk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2RlbF9ieV92YWw6IHsKQEAgLTEyNTcs
NyArMTI1Nyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAg
ICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAzXS51
Lm9wZXJhbmQsIDQsIFg4Njo6ZWN4KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVy
cHJldGVyOjpjdGlfb3BfZGVsX2J5X3ZhbCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSA0
OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9kZWxfYnlfdmFsKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2dldHRlcjogewpAQCAt
MTI2Niw3ICsxMjY2LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAg
ICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+
KGlkZW50KSwgNCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZpcnR1YWxSZWdpc3Rl
cihpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCA4LCBYODY6OmVjeCk7CiAgICAgICAgICAg
ICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1dF9nZXR0ZXIpOwotICAgICAg
ICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9wdXRfZ2V0dGVy
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X3Nl
dHRlcjogewpAQCAtMTI3NSw3ICsxMjc1LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFp
blBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KHJlaW50ZXJwcmV0X2Nh
c3Q8dW5zaWduZWQ+KGlkZW50KSwgNCk7CiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnRnJvbVZp
cnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgM10udS5vcGVyYW5kLCA4LCBYODY6OmVjeCk7
CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3B1dF9zZXR0
ZXIpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShv
cF9wdXRfc2V0dGVyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfbmV3X2Vycm9yOiB7CkBAIC0xMjg1LDcgKzEyODUsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnQ29uc3RhbnQobV9j
b2RlQmxvY2stPmxpbmVOdW1iZXJGb3JWUEMoJmluc3RydWN0aW9uW2ldKSwgOCk7CiAgICAgICAg
ICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25ld19lcnJvcik7CiAgICAg
ICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJh
bmQpOwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShv
cF9uZXdfZXJyb3IpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9kZWJ1ZzogewpAQCAtMTI5Myw3ICsxMjkzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlTWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0YW50KGluc3RydWN0
aW9uW2kgKyAyXS51Lm9wZXJhbmQsIDQpOwogICAgICAgICAgICAgZW1pdFB1dENUSUFyZ0NvbnN0
YW50KGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQsIDgpOwogICAgICAgICAgICAgZW1pdENU
SUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9kZWJ1Zyk7Ci0gICAgICAgICAgICBpICs9IDQ7
CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX2RlYnVnKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZXFfbnVsbDogewpAQCAtMTMyMiw3ICsx
MzIyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICAgICAg
ZW1pdFRhZ0FzQm9vbEltbWVkaWF0ZShYODY6OmVheCk7CiAgICAgICAgICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGRzdCk7CiAKLSAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGkg
Kz0gT1BDT0RFX1NJWkUob3BfZXFfbnVsbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX25lcV9udWxsOiB7CkBAIC0xMzUxLDcgKzEzNTEsNyBAQCB2b2lk
IEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0VGFnQXNCb29s
SW1tZWRpYXRlKFg4Njo6ZWF4KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
ZHN0KTsKIAotICAgICAgICAgICAgaSArPSAzOworICAgICAgICAgICAgaSArPSBPUENPREVfU0la
RShvcF9uZXFfbnVsbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX2VudGVyOiB7CkBAIC0xMzYyLDcgKzEzNjIsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNv
bXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGNvdW50
OyArK2opCiAgICAgICAgICAgICAgICAgZW1pdEluaXRSZWdpc3RlcihqKTsKIAotICAgICAgICAg
ICAgaSs9IDE7CisgICAgICAgICAgICBpKz0gT1BDT0RFX1NJWkUob3BfZW50ZXIpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lbnRlcl93aXRoX2FjdGl2
YXRpb246IHsKQEAgLTEzNzYsMTIgKzEzNzYsMTIgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxl
TWFpblBhc3MoKQogICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9v
cF9wdXNoX2FjdGl2YXRpb24pOwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihp
bnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKIAotICAgICAgICAgICAgaSs9IDI7CisgICAg
ICAgICAgICBpKz0gT1BDT0RFX1NJWkUob3BfZW50ZXJfd2l0aF9hY3RpdmF0aW9uKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY3JlYXRlX2FyZ3VtZW50
czogewogICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgKG1fY29kZUJsb2NrLT5tX251bVBhcmFt
ZXRlcnMgPT0gMSkgPyBJbnRlcnByZXRlcjo6Y3RpX29wX2NyZWF0ZV9hcmd1bWVudHNfbm9fcGFy
YW1zIDogSW50ZXJwcmV0ZXI6OmN0aV9vcF9jcmVhdGVfYXJndW1lbnRzKTsKLSAgICAgICAgICAg
IGkgKz0gMTsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfY3JlYXRlX2FyZ3VtZW50
cyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NvbnZl
cnRfdGhpczogewpAQCAtMTM5Miw3ICsxMzkyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxl
TWFpblBhc3MoKQogICAgICAgICAgICAgX18gdGVzdGxfaTMybShOZWVkc1RoaXNDb252ZXJzaW9u
LCBGSUVMRF9PRkZTRVQoU3RydWN0dXJlLCBtX3R5cGVJbmZvLm1fZmxhZ3MpLCBYODY6OmVkeCk7
CiAgICAgICAgICAgICBtX3Nsb3dDYXNlcy5hcHBlbmQoU2xvd0Nhc2VFbnRyeShfXyBqbnooKSwg
aSkpOwogCi0gICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpF
KG9wX2NvbnZlcnRfdGhpcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX3Byb2ZpbGVfd2lsbF9jYWxsOiB7CkBAIC0xNDAzLDcgKzE0MDMsNyBAQCB2b2lk
IEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChp
LCBJbnRlcnByZXRlcjo6Y3RpX29wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKICAgICAgICAgICAgIF9f
IGxpbmsobm9Qcm9maWxlciwgX18gbGFiZWwoKSk7CiAKLSAgICAgICAgICAgIGkgKz0gMjsKKyAg
ICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wcm9maWxlX2RpZF9jYWxs
OiB7CkBAIC0xNDE0LDcgKzE0MTQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cygpCiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3Byb2Zp
bGVfZGlkX2NhbGwpOwogICAgICAgICAgICAgX18gbGluayhub1Byb2ZpbGVyLCBfXyBsYWJlbCgp
KTsKIAotICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShv
cF9wcm9maWxlX2RpZF9jYWxsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKQEAgLTE0NzgsNyArMTQ3OCw3IEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJn
KFg4Njo6ZWF4LCAwKTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpj
dGlfb3BfY29udmVydF90aGlzKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
aW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDI7CisgICAg
ICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX2NvbnZlcnRfdGhpcyk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2FkZDogewpAQCAtMTUxMSw3ICsxNTEx
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGkgKz0gNTsKKyAgICAgICAgICAgIGkgKz1PUENPREVfU0laRShvcF9hZGQpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYnlfdmFsOiB7CkBAIC0x
NTQzLDEyICsxNTQzLDEyIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAg
ICAgICAgICAgICBfXyBtb3ZsX3JyKFg4Njo6ZWN4LCBYODY6OmVheCk7CiAgICAgICAgICAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsIFg4Njo6
ZWF4KTsKIAotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0la
RShvcF9nZXRfYnlfdmFsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2Ugb3Bfc3ViOiB7CiAgICAgICAgICAgICBjb21waWxlQmluYXJ5QXJpdGhPcFNsb3dDYXNl
KG9wX3N1YiwgaXRlciwgaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCwgaW5zdHJ1Y3Rpb25b
aSArIDJdLnUub3BlcmFuZCwgaW5zdHJ1Y3Rpb25baSArIDNdLnUub3BlcmFuZCwgT3BlcmFuZFR5
cGVzOjpmcm9tSW50KGluc3RydWN0aW9uW2kgKyA0XS51Lm9wZXJhbmQpLCBpKTsKLSAgICAgICAg
ICAgIGkgKz0gNTsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3Bfc3ViKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcnNoaWZ0OiB7CkBAIC0x
NTY0LDcgKzE1NjQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAg
ICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVheCwgMCk7CiAgICAgICAgICAgICBlbWl0Q1RJ
Q2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3JzaGlmdCk7CiAgICAgICAgICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAg
ICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9yc2hpZnQpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sc2hpZnQ6IHsKQEAg
LTE1NzgsNyArMTU3OCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAg
ICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWN4LCA0KTsKICAgICAgICAgICAgIGVtaXRD
VElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfbHNoaWZ0KTsKICAgICAgICAgICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAg
ICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX2xzaGlmdCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZfbGVz
czogewpAQCAtMTYwMCwxNyArMTYwMCwxNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93
Q2FzZXMoKQogICAgICAgICAgICAgICAgIF9fIHRlc3RsX3JyKFg4Njo6ZWF4LCBYODY6OmVheCk7
CiAgICAgICAgICAgICAgICAgX18gbGluayhfXyBqbmUoKSwgbV9sYWJlbHNbaSArIDMgKyB0YXJn
ZXRdKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkg
Kz0gT1BDT0RFX1NJWkUob3BfbG9vcF9pZl9sZXNzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CiAgICAgICAgICAgICBjb21waWxl
UHV0QnlJZFNsb3dDYXNlKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQsICYobV9jb2RlQmxv
Y2stPmlkZW50aWZpZXIoaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZCkpLCBpbnN0cnVjdGlv
bltpICsgM10udS5vcGVyYW5kLCBpLCBpdGVyLCBwcm9wZXJ0eUFjY2Vzc0luc3RydWN0aW9uSW5k
ZXgrKyk7Ci0gICAgICAgICAgICBpICs9IDg7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpF
KG9wX3B1dF9ieV9pZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX2dldF9ieV9pZDogewogICAgICAgICAgICAgY29tcGlsZUdldEJ5SWRTbG93Q2FzZShp
bnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kLCBpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5k
LCAmKG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGluc3RydWN0aW9uW2kgKyAzXS51Lm9wZXJhbmQp
KSwgaSwgaXRlciwgcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbkluZGV4KyspOwotICAgICAgICAg
ICAgaSArPSA4OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9nZXRfYnlfaWQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lmX2xl
c3NlcTogewpAQCAtMTYzMiw3ICsxNjMyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xv
d0Nhc2VzKCkKICAgICAgICAgICAgICAgICBfXyB0ZXN0bF9ycihYODY6OmVheCwgWDg2OjplYXgp
OwogICAgICAgICAgICAgICAgIF9fIGxpbmsoX18gam5lKCksIG1fbGFiZWxzW2kgKyAzICsgdGFy
Z2V0XSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpICs9IDQ7CisgICAgICAgICAgICBp
ICs9IE9QQ09ERV9TSVpFKG9wX2xvb3BfaWZfbGVzc2VxKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHJlX2luYzogewpAQCAtMTY0NCw3ICsxNjQ0LDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIGVtaXRQ
dXRDVElBcmcoWDg2OjplYXgsIDApOwogICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJw
cmV0ZXI6OmN0aV9vcF9wcmVfaW5jKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoc3JjRHN0KTsKLSAgICAgICAgICAgIGkgKz0gMjsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RF
X1NJWkUob3BfcHJlX2luYyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX3B1dF9ieV92YWw6IHsKQEAgLTE2NzAsNyArMTY3MCw3IEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6
ZWN4LCA4KTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3Bf
cHV0X2J5X3ZhbF9hcnJheSk7CiAKLSAgICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkg
Kz0gT1BDT0RFX1NJWkUob3BfcHV0X2J5X3ZhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZfdHJ1ZTogewpAQCAtMTY4MCw3ICsxNjgwLDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIF9fIHRl
c3RsX3JyKFg4Njo6ZWF4LCBYODY6OmVheCk7CiAgICAgICAgICAgICB1bnNpZ25lZCB0YXJnZXQg
PSBpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kOwogICAgICAgICAgICAgX18gbGluayhfXyBq
bmUoKSwgbV9sYWJlbHNbaSArIDIgKyB0YXJnZXRdKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAg
ICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfbG9vcF9pZl90cnVlKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHJlX2RlYzogewpAQCAtMTY5Miw3
ICsxNjkyLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAg
ICAgIGVtaXRQdXRDVElBcmcoWDg2OjplYXgsIDApOwogICAgICAgICAgICAgZW1pdENUSUNhbGwo
aSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wcmVfZGVjKTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIoc3JjRHN0KTsKLSAgICAgICAgICAgIGkgKz0gMjsKKyAgICAgICAgICAgIGkg
Kz0gT1BDT0RFX1NJWkUob3BfcHJlX2RlYyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX2pubGVzczogewpAQCAtMTcxNCw3ICsxNzE0LDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgICAgICBfXyB0ZXN0bF9y
cihYODY6OmVheCwgWDg2OjplYXgpOwogICAgICAgICAgICAgICAgIF9fIGxpbmsoX18gamUoKSwg
bV9sYWJlbHNbaSArIDMgKyB0YXJnZXRdKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGkg
Kz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3Bfam5sZXNzKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfbm90OiB7CkBAIC0xNzIzLDcg
KzE3MjMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICAg
ICAgZW1pdFB1dENUSUFyZyhYODY6OmVheCwgMCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChp
LCBJbnRlcnByZXRlcjo6Y3RpX29wX25vdCk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSArPSAz
OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9ub3QpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qZmFsc2U6IHsKQEAgLTE3MzMsNyArMTcz
Myw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBf
XyB0ZXN0bF9ycihYODY6OmVheCwgWDg2OjplYXgpOwogICAgICAgICAgICAgdW5zaWduZWQgdGFy
Z2V0ID0gaW5zdHJ1Y3Rpb25baSArIDJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIF9fIGxpbmso
X18gamUoKSwgbV9sYWJlbHNbaSArIDIgKyB0YXJnZXRdKTsgLy8gaW52ZXJ0ZWQhCi0gICAgICAg
ICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX2pmYWxzZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Bvc3RfaW5jOiB7
CkBAIC0xNzQ0LDcgKzE3NDQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMo
KQogICAgICAgICAgICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9wb3N0X2lu
Yyk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHNyY0RzdCwgWDg2OjplZHgp
OwogICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0u
dS5vcGVyYW5kKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RF
X1NJWkUob3BfcG9zdF9pbmMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9iaXRub3Q6IHsKQEAgLTE3NTIsNyArMTc1Miw3IEBAIHZvaWQgSklUOjpwcml2
YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0UHV0Q1RJQXJnKFg4Njo6ZWF4
LCAwKTsKICAgICAgICAgICAgIGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfYml0
bm90KTsKICAgICAgICAgICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSAr
IDFdLnUub3BlcmFuZCk7Ci0gICAgICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9Q
Q09ERV9TSVpFKG9wX2JpdG5vdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX2JpdGFuZDogewpAQCAtMTc3OCw3ICsxNzc4LDcgQEAgdm9pZCBKSVQ6OnBy
aXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJ
bnRlcnByZXRlcjo6Y3RpX29wX2JpdGFuZCk7CiAgICAgICAgICAgICAgICAgZW1pdFB1dFZpcnR1
YWxSZWdpc3Rlcihkc3QpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaSArPSA1OworICAg
ICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9iaXRhbmQpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qdHJ1ZTogewpAQCAtMTc4OCw3ICsxNzg4LDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIF9fIHRl
c3RsX3JyKFg4Njo6ZWF4LCBYODY6OmVheCk7CiAgICAgICAgICAgICB1bnNpZ25lZCB0YXJnZXQg
PSBpbnN0cnVjdGlvbltpICsgMl0udS5vcGVyYW5kOwogICAgICAgICAgICAgX18gbGluayhfXyBq
bmUoKSwgbV9sYWJlbHNbaSArIDIgKyB0YXJnZXRdKTsKLSAgICAgICAgICAgIGkgKz0gMzsKKyAg
ICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfanRydWUpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wb3N0X2RlYzogewpAQCAtMTc5OSw3ICsxNzk5
LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgICAgIGVt
aXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfcG9zdF9kZWMpOwogICAgICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihzcmNEc3QsIFg4Njo6ZWR4KTsKICAgICAgICAgICAgIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAg
ICAgICAgICBpICs9IDM7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX3Bvc3RfZGVj
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfYml0eG9y
OiB7CkBAIC0xODA4LDcgKzE4MDgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2Fz
ZXMoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVkeCwgNCk7CiAgICAgICAgICAg
ICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2JpdHhvcik7CiAgICAgICAgICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwot
ICAgICAgICAgICAgaSArPSA1OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9iaXR4
b3IpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9iaXRv
cjogewpAQCAtMTgxNyw3ICsxODE3LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nh
c2VzKCkKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplZHgsIDQpOwogICAgICAgICAg
ICAgZW1pdENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9iaXRvcik7CiAgICAgICAgICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwot
ICAgICAgICAgICAgaSArPSA1OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9iaXRv
cik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2VxOiB7
CkBAIC0xODI2LDcgKzE4MjYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMo
KQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVkeCwgNCk7CiAgICAgICAgICAgICBl
bWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX2VxKTsKICAgICAgICAgICAgIGVtaXRQ
dXRWaXJ0dWFsUmVnaXN0ZXIoaW5zdHJ1Y3Rpb25baSArIDFdLnUub3BlcmFuZCk7Ci0gICAgICAg
ICAgICBpICs9IDQ7CisgICAgICAgICAgICBpICs9IE9QQ09ERV9TSVpFKG9wX2VxKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmVxOiB7CkBAIC0xODM1
LDcgKzE4MzUsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAg
ICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVkeCwgNCk7CiAgICAgICAgICAgICBlbWl0Q1RJQ2Fs
bChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX25lcSk7CiAgICAgICAgICAgICBlbWl0UHV0VmlydHVh
bFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAgaSAr
PSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9uZXEpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9zdHJpY3RlcTogewpAQCAtMTg0Niw3
ICsxODQ2LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAg
ICAgIGVtaXRQdXRDVElBcmcoWDg2OjplZHgsIDQpOwogICAgICAgICAgICAgZW1pdENUSUNhbGwo
aSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9zdHJpY3RlcSk7CiAgICAgICAgICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQpOwotICAgICAgICAgICAg
aSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9zdHJpY3RlcSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25zdHJpY3RlcTogewpA
QCAtMTg1Nyw3ICsxODU3LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkK
ICAgICAgICAgICAgIGVtaXRQdXRDVElBcmcoWDg2OjplZHgsIDQpOwogICAgICAgICAgICAgZW1p
dENUSUNhbGwoaSwgSW50ZXJwcmV0ZXI6OmN0aV9vcF9uc3RyaWN0ZXEpOwogICAgICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAg
ICAgICAgICAgIGkgKz0gNDsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfbnN0cmlj
dGVxKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaW5z
dGFuY2VvZjogewpAQCAtMTg2OSw3ICsxODY5LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxl
U2xvd0Nhc2VzKCkKICAgICAgICAgICAgIGVtaXRQdXRDVElBcmdGcm9tVmlydHVhbFJlZ2lzdGVy
KGluc3RydWN0aW9uW2kgKyA0XS51Lm9wZXJhbmQsIDgsIFg4Njo6ZWN4KTsKICAgICAgICAgICAg
IGVtaXRDVElDYWxsKGksIEludGVycHJldGVyOjpjdGlfb3BfaW5zdGFuY2VvZik7CiAgICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQp
OwotICAgICAgICAgICAgaSArPSA1OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9p
bnN0YW5jZW9mKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfbW9kOiB7CkBAIC0xODg0LDcgKzE4ODQsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVT
bG93Q2FzZXMoKQogICAgICAgICAgICAgZW1pdFB1dENUSUFyZyhYODY6OmVjeCwgNCk7CiAgICAg
ICAgICAgICBlbWl0Q1RJQ2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX21vZCk7CiAgICAgICAg
ICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGluc3RydWN0aW9uW2kgKyAxXS51Lm9wZXJhbmQp
OwotICAgICAgICAgICAgaSArPSA0OworICAgICAgICAgICAgaSArPSBPUENPREVfU0laRShvcF9t
b2QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9tdWw6
IHsKQEAgLTE5MTIsNyArMTkxMiw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNl
cygpCiAgICAgICAgICAgICAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgY29tcGlsZUJpbmFyeUFyaXRoT3BTbG93Q2Fz
ZShvcF9tdWwsIGl0ZXIsIGRzdCwgc3JjMSwgc3JjMiwgT3BlcmFuZFR5cGVzOjpmcm9tSW50KGlu
c3RydWN0aW9uW2kgKyA0XS51Lm9wZXJhbmQpLCBpKTsKLSAgICAgICAgICAgIGkgKz0gNTsKKyAg
ICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfbXVsKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKQEAgLTE5MjAsNyArMTkyMCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZVNsb3dDYXNlcygpCiAgICAgICAgIGNhc2Ugb3BfY2FsbF9ldmFsOgogICAgICAgICBjYXNlIG9w
X2NvbnN0cnVjdDogewogICAgICAgICAgICAgY29tcGlsZU9wQ2FsbFNsb3dDYXNlKGluc3RydWN0
aW9uICsgaSwgaSwgaXRlciwgY2FsbExpbmtJbmZvSW5kZXgrKywgb3Bjb2RlSUQpOwotICAgICAg
ICAgICAgaSArPSAob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gNyA6IDUpOworICAgICAgICAg
ICAgaSArPSAob3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gT1BDT0RFX1NJWkUob3BfY29uc3Ry
dWN0KSA6IE9QQ09ERV9TSVpFKG9wX2NhbGwpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfdG9fanNudW1iZXI6IHsKQEAgLTE5MzIsNyArMTkzMiw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgICAgICBlbWl0Q1RJ
Q2FsbChpLCBJbnRlcnByZXRlcjo6Y3RpX29wX3RvX2pzbnVtYmVyKTsKIAogICAgICAgICAgICAg
ZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihpbnN0cnVjdGlvbltpICsgMV0udS5vcGVyYW5kKTsKLSAg
ICAgICAgICAgIGkgKz0gMzsKKyAgICAgICAgICAgIGkgKz0gT1BDT0RFX1NJWkUob3BfdG9fanNu
dW1iZXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAo=
</data>
<flag name="review"
          id="12126"
          type_id="1"
          status="+"
          setter="zwarich"
    />
          </attachment>
      

    </bug>

</bugzilla>