<?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>160741</bug_id>
          
          <creation_ts>2016-08-10 11:33:29 -0700</creation_ts>
          <short_desc>Make SQLTransactionBackend a member of SQLTransaction</short_desc>
          <delta_ts>2016-08-10 11:43:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1219062</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-10 11:33:29 -0700</bug_when>
    <thetext>Make SQLTransactionBackend a member of SQLTransaction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219063</commentid>
    <comment_count>1</comment_count>
      <attachid>285735</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-10 11:34:44 -0700</bug_when>
    <thetext>Created attachment 285735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219069</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-10 11:43:02 -0700</bug_when>
    <thetext>Committed r204338: &lt;http://trac.webkit.org/changeset/204338&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285735</attachid>
            <date>2016-08-10 11:34:44 -0700</date>
            <delta_ts>2016-08-10 11:40:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160741-20160810113308.patch</filename>
            <type>text/plain</type>
            <size>31092</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RiOTBkZjhjMzYyZWZj
Y2JlMzBkMDNjMWMxMTY5MTU1OGYyNzc5MC4uZjk5Yjg0ZDlkYWVhMDkyYmEyZTUxNzAwMjQyNGYx
ZTRiY2JhYTljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE2LTA4LTEwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBTUUxUcmFu
c2FjdGlvbkJhY2tlbmQgYSBtZW1iZXIgb2YgU1FMVHJhbnNhY3Rpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDc0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYW5vdGhlciBzdGVwIHRv
d2FyZHMgbWVyZ2luZyBTUUxUcmFuc2FjdGlvbiBhbmQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kLgor
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhYmFzZTo6cGVyZm9ybUNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpzY2hlZHVsZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpz
Y2hlZHVsZVRyYW5zYWN0aW9uU3RlcCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVu
VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZVRyYW5zYWN0aW9uVGFzazo6RGF0YWJhc2VUcmFuc2FjdGlvblRh
c2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2s6On5EYXRhYmFz
ZVRyYW5zYWN0aW9uVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYW5zYWN0aW9u
VGFzazo6ZG9QZXJmb3JtVGFzayk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhbnNhY3Rpb25UYXNrOjp0
cmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVh
ZC5jcHA6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6U1FMVHJhbnNhY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlvbkNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVy
U3RhdGVtZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmRl
bGl2ZXJRdW90YUluY3JlYXNlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNh
Y3Rpb246OmRlbGl2ZXJTdWNjZXNzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJh
bnNhY3Rpb246OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246
OmNvbXB1dGVOZXh0U3RhdGVBbmRDbGVhbnVwSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U1FMVHJhbnNhY3Rpb246OnNldEJhY2tlbmQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5z
YWN0aW9uOjpiYWNrZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tl
bmQ6OlNRTFRyYW5zYWN0aW9uQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQ6OmRvQ2xlYW51cCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlv
bkJhY2tlbmQ6OmNvbXB1dGVOZXh0U3RhdGVBbmRDbGVhbnVwSWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjphY3F1aXJlTG9jayk6CisgICAgICAgIChX
ZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmxvY2tBY3F1aXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJ1bkN1cnJlbnRT
dGF0ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpoYW5k
bGVDdXJyZW50U3RhdGVtZW50RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpoYW5kbGVUcmFuc2FjdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNR
TFRyYW5zYWN0aW9uQmFja2VuZDo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgIChXZWJD
b3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlcXVlc3RUcmFuc2l0VG9TdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0RGF0YWJhc2VJZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OnByb2Nlc3NQZW5kaW5nVHJhbnNhY3Rp
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OmFjcXVp
cmVMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OnJl
bGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6
OnNodXRkb3duKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IuaDoKKwogMjAxNi0wOC0wOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgU1FMVHJhbnNhY3Rpb25CYWNrZW5kIGNvbnN0cnVj
dGlvbiBpbnNpZGUgU1FMVHJhbnNhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggZWU5YzJkYTRjYmM1NGI3ZWE2MjIwZTc2YTRh
MDM5ZWE2NmU2M2IzYS4uYjc3YzliYTAyNDUxNjM2YmVmMGVmOGYxNzg5ZjFkMWVkNjA5ZDU4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAK
QEAgLTMxNCw3ICszMTQsNyBAQCB2b2lkIERhdGFiYXNlOjpwZXJmb3JtQ2xvc2UoKQogICAgICAg
ICAvLyB0cmFuc2FjdGlvbiBpcyBpbnRlcnJ1cHRlZD8iIGF0IHRoZSB0b3Agb2YgU1FMVHJhbnNh
Y3Rpb25CYWNrZW5kLmNwcC4KICAgICAgICAgd2hpbGUgKCFtX3RyYW5zYWN0aW9uUXVldWUuaXNF
bXB0eSgpKSB7CiAgICAgICAgICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvblF1
ZXVlLnRha2VGaXJzdCgpOwotICAgICAgICAgICAgdHJhbnNhY3Rpb24tPm5vdGlmeURhdGFiYXNl
VGhyZWFkSXNTaHV0dGluZ0Rvd24oKTsKKyAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5iYWNrZW5k
KCkubm90aWZ5RGF0YWJhc2VUaHJlYWRJc1NodXR0aW5nRG93bigpOwogICAgICAgICB9CiAKICAg
ICAgICAgbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkID0gZmFsc2U7CkBAIC01NjEsNyArNTYx
LDcgQEAgYm9vbCBEYXRhYmFzZTo6Z2V0QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKFN0cmlu
ZyAmYWN0dWFsVmVyc2lvbikKIHZvaWQgRGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQog
ewogICAgIEFTU0VSVCghbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleC50cnlMb2NrKCkpOyAv
LyBMb2NrZWQgYnkgY2FsbGVyLgotICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHRy
YW5zYWN0aW9uOworICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb247CiAKICAg
ICBpZiAobV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkICYmICFtX3RyYW5zYWN0aW9uUXVldWUu
aXNFbXB0eSgpKQogICAgICAgICB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25RdWV1ZS50YWtl
Rmlyc3QoKTsKQEAgLTU3NSw3ICs1NzUsNyBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRyYW5z
YWN0aW9uKCkKICAgICAgICAgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTsKIH0KIAot
dm9pZCBEYXRhYmFzZTo6c2NoZWR1bGVUcmFuc2FjdGlvblN0ZXAoU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kJiB0cmFuc2FjdGlvbikKK3ZvaWQgRGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb25TdGVw
KFNRTFRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKICAgICBpZiAoIWRhdGFiYXNlQ29udGV4
dCgpLT5kYXRhYmFzZVRocmVhZCgpKQogICAgICAgICByZXR1cm47CkBAIC03MzYsNyArNzM2LDcg
QEAgdm9pZCBEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjwKICAgICB9CiAKICAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gU1FMVHJhbnNhY3Rpb246OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShjYWxsYmFjayksIFdURk1v
dmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjay5jb3B5UmVmKCksIFdURk1vdmUod3Jh
cHBlciksIHJlYWRPbmx5KTsKLSAgICBtX3RyYW5zYWN0aW9uUXVldWUuYXBwZW5kKCZ0cmFuc2Fj
dGlvbi0+YmFja2VuZCgpKTsKKyAgICBtX3RyYW5zYWN0aW9uUXVldWUuYXBwZW5kKHRyYW5zYWN0
aW9uLnB0cigpKTsKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25JblByb2dyZXNzKQogICAgICAgICBz
Y2hlZHVsZVRyYW5zYWN0aW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlLmgKaW5kZXggNTkwYzZiMzkwMWRlZDEwYTY0Y2M5OWI4NGYxODE2ZjBh
ZmM5ZjEyMC4uZjE0NjQ4NjE2MWJiOWZkNjk0OGZlZWQ4NWM1MmM3MzhlYzRiNzM0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaApAQCAtNjYsNyAr
NjYsNyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbWF4aW11bVNpemUoKSBj
b25zdDsKIAotICAgIHZvaWQgc2NoZWR1bGVUcmFuc2FjdGlvblN0ZXAoU1FMVHJhbnNhY3Rpb25C
YWNrZW5kJik7CisgICAgdm9pZCBzY2hlZHVsZVRyYW5zYWN0aW9uU3RlcChTUUxUcmFuc2FjdGlv
biYpOwogICAgIHZvaWQgaW5Qcm9ncmVzc1RyYW5zYWN0aW9uQ29tcGxldGVkKCk7CiAKICAgICBi
b29sIGhhc1BlbmRpbmdUcmFuc2FjdGlvbigpOwpAQCAtMTY2LDcgKzE2Niw3IEBAIHByaXZhdGU6
CiAKICAgICBSZWZQdHI8RGF0YWJhc2VBdXRob3JpemVyPiBtX2RhdGFiYXNlQXV0aG9yaXplcjsK
IAotICAgIERlcXVlPFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+PiBtX3RyYW5zYWN0aW9u
UXVldWU7CisgICAgRGVxdWU8UmVmUHRyPFNRTFRyYW5zYWN0aW9uPj4gbV90cmFuc2FjdGlvblF1
ZXVlOwogICAgIExvY2sgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3NNdXRleDsKICAgICBib29sIG1f
dHJhbnNhY3Rpb25JblByb2dyZXNzOwogICAgIGJvb2wgbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFi
bGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRhc2suY3BwCmluZGV4IGU1YzQyZGFiYTZiYTQyYzE4M2JmZWE5MjJkY2I0ZjU4ODhhOWQzNWYu
Ljc0MTQ3NGQ3OTE2N2VjZTQ3YjVlMDk3N2Q0OGU0NzI0OTBmN2MzOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKQEAgLTE0
NSw4ICsxNDUsOCBAQCBjb25zdCBjaGFyKiBEYXRhYmFzZUNsb3NlVGFzazo6ZGVidWdUYXNrTmFt
ZSgpIGNvbnN0CiAvLyAqKiogRGF0YWJhc2VUcmFuc2FjdGlvblRhc2sgKioqCiAvLyBTdGFydHMg
YSB0cmFuc2FjdGlvbiB0aGF0IHdpbGwgcmVwb3J0IGl0cyByZXN1bHRzIHZpYSBhIGNhbGxiYWNr
LgogCi1EYXRhYmFzZVRyYW5zYWN0aW9uVGFzazo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2soUmVm
UHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4mJiB0cmFuc2FjdGlvbikKLSAgICA6IERhdGFiYXNl
VGFzaygqdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCksIDApCitEYXRhYmFzZVRyYW5zYWN0aW9uVGFz
azo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2soUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiYmIHRyYW5z
YWN0aW9uKQorICAgIDogRGF0YWJhc2VUYXNrKHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLCAwKQog
ICAgICwgbV90cmFuc2FjdGlvbihXVEZNb3ZlKHRyYW5zYWN0aW9uKSkKICAgICAsIG1fZGlkUGVy
Zm9ybVRhc2soZmFsc2UpCiB7CkBAIC0xNjMsMTIgKzE2MywxMiBAQCBEYXRhYmFzZVRyYW5zYWN0
aW9uVGFzazo6fkRhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKCkKICAgICAvLyB0cmFuc2FjdGlvbiBp
cyBpbnRlcnJ1cHRlZD8iIGF0IHRoZSB0b3Agb2YgU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcC4K
IAogICAgIGlmICghbV9kaWRQZXJmb3JtVGFzaykKLSAgICAgICAgbV90cmFuc2FjdGlvbi0+bm90
aWZ5RGF0YWJhc2VUaHJlYWRJc1NodXR0aW5nRG93bigpOworICAgICAgICBtX3RyYW5zYWN0aW9u
LT5iYWNrZW5kKCkubm90aWZ5RGF0YWJhc2VUaHJlYWRJc1NodXR0aW5nRG93bigpOwogfQogCiB2
b2lkIERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrOjpkb1BlcmZvcm1UYXNrKCkKIHsKLSAgICBtX3Ry
YW5zYWN0aW9uLT5wZXJmb3JtTmV4dFN0ZXAoKTsKKyAgICBtX3RyYW5zYWN0aW9uLT5iYWNrZW5k
KCkucGVyZm9ybU5leHRTdGVwKCk7CiAgICAgbV9kaWRQZXJmb3JtVGFzayA9IHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
YXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5o
CmluZGV4IGU1ZjQ3NWMwYWEwZGRmNzUwMDkwNGQwYmM2NDAzZDkyZmNhODY4NzUuLjliMmY5YzNh
ZmJmOWI0OTc4OTE0NDIyYzk3MmQ3MjczODZhM2UwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaApAQCAtMTIyLDEwICsxMjIsMTAg
QEAgcHJpdmF0ZToKIAogY2xhc3MgRGF0YWJhc2VUcmFuc2FjdGlvblRhc2sgOiBwdWJsaWMgRGF0
YWJhc2VUYXNrIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBEYXRhYmFzZVRyYW5zYWN0aW9uVGFz
ayhSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiYmKTsKKyAgICBleHBsaWNpdCBEYXRhYmFz
ZVRyYW5zYWN0aW9uVGFzayhSZWZQdHI8U1FMVHJhbnNhY3Rpb24+JiYpOwogICAgIHZpcnR1YWwg
fkRhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKCk7CiAKLSAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQq
IHRyYW5zYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbi5nZXQoKTsgfQorICAg
IFNRTFRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rp
b24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGRvUGVyZm9ybVRhc2soKSBvdmVycmlk
ZTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGRlYnVnVGFz
a05hbWUoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gbV90cmFuc2FjdGlvbjsKKyAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IG1f
dHJhbnNhY3Rpb247CiAgICAgYm9vbCBtX2RpZFBlcmZvcm1UYXNrOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcApp
bmRleCAzYTFhZTM3NGNmZDNmNDYxZDgwNGZhNmUzMDlmZDVkZjJlMTQxNWJjLi4wYmNmMDEwMmU5
YzJiYWNjYWJlZjE3ZTM1YjljODZiYmU4ZDM3ZjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUYXNrLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uLmgiCiAjaW5jbHVk
ZSAiU1FMVHJhbnNhY3Rpb25DbGllbnQuaCIKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0F1dG9kcmFpbmVkUG9vbC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRl
eCA0YjEzNmE1ZTk5MTlhZDZmYzZhN2Y4YmNlYjYxYmNhZDVkMzJjYmY2Li40NjRhNWIwOTEyZDBk
ZTRmM2NhYmI3ZDY1OTQ4NjM2YWQzYTQyZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcApAQCAtNjAsOSArNjAsOCBA
QCBTUUxUcmFuc2FjdGlvbjo6U1FMVHJhbnNhY3Rpb24oUmVmPERhdGFiYXNlPiYmIGRhdGFiYXNl
LCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYQogICAgICwgbV9lcnJvckNhbGxiYWNrV3JhcHBlcihX
VEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCiAgICAgLCBtX2V4ZWN1dGVTcWxBbGxvd2VkKGZhbHNlKQogICAgICwgbV9yZWFkT25seShy
ZWFkT25seSkKKyAgICAsIG1fYmFja2VuZChtX2RhdGFiYXNlLnB0cigpLCAqdGhpcywgV1RGTW92
ZSh3cmFwcGVyKSwgcmVhZE9ubHkpCiB7Ci0gICAgLy8gVGhpcyB3aWxsIGVuZCB1cCBhc3NpZ25p
bmcgdG8gbV9mcm9udGVuZC4KLSAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZShtX2Rh
dGFiYXNlLnB0cigpLCB0aGlzLCBXVEZNb3ZlKHdyYXBwZXIpLCByZWFkT25seSk7CiB9CiAKIFNR
TFRyYW5zYWN0aW9uOjp+U1FMVHJhbnNhY3Rpb24oKQpAQCAtODQsMTIgKzgzLDYgQEAgYm9vbCBT
UUxUcmFuc2FjdGlvbjo6aGFzRXJyb3JDYWxsYmFjaygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZXJy
b3JDYWxsYmFja1dyYXBwZXIuaGFzQ2FsbGJhY2soKTsKIH0KIAotdm9pZCBTUUxUcmFuc2FjdGlv
bjo6c2V0QmFja2VuZChTUUxUcmFuc2FjdGlvbkJhY2tlbmQqIGJhY2tlbmQpCi17Ci0gICAgQVNT
RVJUKCFtX2JhY2tlbmQpOwotICAgIG1fYmFja2VuZCA9IGJhY2tlbmQ7Ci19Ci0KIFNRTFRyYW5z
YWN0aW9uOjpTdGF0ZUZ1bmN0aW9uIFNRTFRyYW5zYWN0aW9uOjpzdGF0ZUZ1bmN0aW9uRm9yKFNR
TFRyYW5zYWN0aW9uU3RhdGUgc3RhdGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IFN0YXRlRnVuY3Rp
b24gc3RhdGVGdW5jdGlvbnNbXSA9IHsKQEAgLTE0Miw3ICsxMzUsNyBAQCB2b2lkIFNRTFRyYW5z
YWN0aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjaygpCiAgICAgICAgIHJldHVybiBkZWxp
dmVyVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKCk7CiAgICAgfQogCi0gICAgbV9iYWNrZW5kLT5y
ZXF1ZXN0VHJhbnNpdFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6UnVuU3RhdGVtZW50cyk7
CisgICAgbV9iYWNrZW5kLnJlcXVlc3RUcmFuc2l0VG9TdGF0ZShTUUxUcmFuc2FjdGlvblN0YXRl
OjpSdW5TdGF0ZW1lbnRzKTsKIH0KIAogdm9pZCBTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjaygpCkBAIC0xNTYsNyArMTQ5LDcgQEAgdm9pZCBTUUxUcmFuc2Fj
dGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpCiAgICAgICAgIC8vIEhlbmNl
LCBpdCdzIHRocmVhZCBzYWZlIHRvIGZldGNoIHRoZSBiYWNrZW5kIHRyYW5zYWN0aW9uRXJyb3Ig
d2l0aG91dAogICAgICAgICAvLyBhIGxvY2suCiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVy
cm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV9iYWNrZW5kLT50cmFuc2Fj
dGlvbkVycm9yKCk7CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX2JhY2tlbmQu
dHJhbnNhY3Rpb25FcnJvcigpOwogCiAgICAgICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uRXJyb3Ip
OwogICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChtX3RyYW5zYWN0aW9uRXJyb3Iu
Z2V0KCkpOwpAQCAtMTY3LDcgKzE2MCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJU
cmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKQogICAgIGNsZWFyQ2FsbGJhY2tXcmFwcGVycygpOwog
CiAgICAgLy8gU3BlYyA0LjMuMi4xMDogUm9sbGJhY2sgdGhlIHRyYW5zYWN0aW9uLgotICAgIG1f
YmFja2VuZC0+cmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5zYWN0aW9uU3RhdGU6OkNsZWFu
dXBBZnRlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayk7CisgICAgbV9iYWNrZW5kLnJlcXVlc3RU
cmFuc2l0VG9TdGF0ZShTUUxUcmFuc2FjdGlvblN0YXRlOjpDbGVhbnVwQWZ0ZXJUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2spOwogfQogCiB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyU3RhdGVt
ZW50Q2FsbGJhY2soKQpAQCAtMTc2LDcgKzE2OSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRl
bGl2ZXJTdGF0ZW1lbnRDYWxsYmFjaygpCiAgICAgLy8gT3RoZXJ3aXNlLCBjb250aW51ZSB0byBs
b29wIHRocm91Z2ggdGhlIHN0YXRlbWVudCBxdWV1ZQogICAgIG1fZXhlY3V0ZVNxbEFsbG93ZWQg
PSB0cnVlOwogCi0gICAgU1FMU3RhdGVtZW50KiBjdXJyZW50U3RhdGVtZW50ID0gbV9iYWNrZW5k
LT5jdXJyZW50U3RhdGVtZW50KCk7CisgICAgU1FMU3RhdGVtZW50KiBjdXJyZW50U3RhdGVtZW50
ID0gbV9iYWNrZW5kLmN1cnJlbnRTdGF0ZW1lbnQoKTsKICAgICBBU1NFUlQoY3VycmVudFN0YXRl
bWVudCk7CiAKICAgICBib29sIHJlc3VsdCA9IGN1cnJlbnRTdGF0ZW1lbnQtPnBlcmZvcm1DYWxs
YmFjayh0aGlzKTsKQEAgLTE5MSwyMSArMTg0LDIxIEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRl
bGl2ZXJTdGF0ZW1lbnRDYWxsYmFjaygpCiAKICAgICAgICAgLy8gTm8gZXJyb3IgY2FsbGJhY2ss
IHNvIGZhc3QtZm9yd2FyZCB0bzoKICAgICAgICAgLy8gVHJhbnNhY3Rpb24gU3RlcCAxMSAtIFJv
bGxiYWNrIHRoZSB0cmFuc2FjdGlvbi4KLSAgICAgICAgbV9iYWNrZW5kLT5yZXF1ZXN0VHJhbnNp
dFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6Q2xlYW51cEFmdGVyVHJhbnNhY3Rpb25FcnJv
ckNhbGxiYWNrKTsKKyAgICAgICAgbV9iYWNrZW5kLnJlcXVlc3RUcmFuc2l0VG9TdGF0ZShTUUxU
cmFuc2FjdGlvblN0YXRlOjpDbGVhbnVwQWZ0ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9iYWNrZW5kLT5yZXF1ZXN0VHJhbnNpdFRv
U3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6UnVuU3RhdGVtZW50cyk7CisgICAgbV9iYWNrZW5k
LnJlcXVlc3RUcmFuc2l0VG9TdGF0ZShTUUxUcmFuc2FjdGlvblN0YXRlOjpSdW5TdGF0ZW1lbnRz
KTsKIH0KIAogdm9pZCBTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclF1b3RhSW5jcmVhc2VDYWxsYmFj
aygpCiB7Ci0gICAgQVNTRVJUKG1fYmFja2VuZC0+Y3VycmVudFN0YXRlbWVudCgpKTsKKyAgICBB
U1NFUlQobV9iYWNrZW5kLmN1cnJlbnRTdGF0ZW1lbnQoKSk7CiAKICAgICBib29sIHNob3VsZFJl
dHJ5Q3VycmVudFN0YXRlbWVudCA9IG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uQ2xpZW50KCktPmRp
ZEV4Y2VlZFF1b3RhKCZkYXRhYmFzZSgpKTsKLSAgICBtX2JhY2tlbmQtPnNldFNob3VsZFJldHJ5
Q3VycmVudFN0YXRlbWVudChzaG91bGRSZXRyeUN1cnJlbnRTdGF0ZW1lbnQpOworICAgIG1fYmFj
a2VuZC5zZXRTaG91bGRSZXRyeUN1cnJlbnRTdGF0ZW1lbnQoc2hvdWxkUmV0cnlDdXJyZW50U3Rh
dGVtZW50KTsKIAotICAgIG1fYmFja2VuZC0+cmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5z
YWN0aW9uU3RhdGU6OlJ1blN0YXRlbWVudHMpOworICAgIG1fYmFja2VuZC5yZXF1ZXN0VHJhbnNp
dFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6UnVuU3RhdGVtZW50cyk7CiB9CiAKIHZvaWQg
U1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJTdWNjZXNzQ2FsbGJhY2soKQpAQCAtMjE5LDcgKzIxMiw3
IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJTdWNjZXNzQ2FsbGJhY2soKQogCiAgICAg
Ly8gU2NoZWR1bGUgYSAicG9zdC1zdWNjZXNzIGNhbGxiYWNrIiBzdGVwIHRvIHJldHVybiBjb250
cm9sIHRvIHRoZSBkYXRhYmFzZSB0aHJlYWQgaW4gY2FzZSB0aGVyZQogICAgIC8vIGFyZSBmdXJ0
aGVyIHRyYW5zYWN0aW9ucyBxdWV1ZWQgdXAgZm9yIHRoaXMgRGF0YWJhc2UKLSAgICBtX2JhY2tl
bmQtPnJlcXVlc3RUcmFuc2l0VG9TdGF0ZShTUUxUcmFuc2FjdGlvblN0YXRlOjpDbGVhbnVwQW5k
VGVybWluYXRlKTsKKyAgICBtX2JhY2tlbmQucmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5z
YWN0aW9uU3RhdGU6OkNsZWFudXBBbmRUZXJtaW5hdGUpOwogfQogCiAvLyBUaGlzIHN0YXRlIGZ1
bmN0aW9uIGlzIHVzZWQgYXMgYSBzdHViIGZ1bmN0aW9uIHRvIHBsdWcgdW5pbXBsZW1lbnRlZCBz
dGF0ZXMKQEAgLTI1MCw3ICsyNDMsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpleGVjdXRlU1FM
KGNvbnN0IFN0cmluZyYgc3FsU3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdQogICAgICAg
ICBwZXJtaXNzaW9ucyB8PSBEYXRhYmFzZUF1dGhvcml6ZXI6OlJlYWRPbmx5TWFzazsKIAogICAg
IGF1dG8gc3RhdGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTUUxTdGF0ZW1lbnQ+KG1fZGF0YWJh
c2UsIHNxbFN0YXRlbWVudCwgYXJndW1lbnRzLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShj
YWxsYmFja0Vycm9yKSwgcGVybWlzc2lvbnMpOwotICAgIG1fYmFja2VuZC0+ZXhlY3V0ZVNRTChX
VEZNb3ZlKHN0YXRlbWVudCkpOworICAgIG1fYmFja2VuZC5leGVjdXRlU1FMKFdURk1vdmUoc3Rh
dGVtZW50KSk7CiB9CiAKIHZvaWQgU1FMVHJhbnNhY3Rpb246OmNvbXB1dGVOZXh0U3RhdGVBbmRD
bGVhbnVwSWZOZWVkZWQoKQpAQCAtMjcxLDcgKzI2NCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246
OmNvbXB1dGVOZXh0U3RhdGVBbmRDbGVhbnVwSWZOZWVkZWQoKQogICAgIH0KIAogICAgIGNsZWFy
Q2FsbGJhY2tXcmFwcGVycygpOwotICAgIG1fYmFja2VuZC0+cmVxdWVzdFRyYW5zaXRUb1N0YXRl
KFNRTFRyYW5zYWN0aW9uU3RhdGU6OkNsZWFudXBBbmRUZXJtaW5hdGUpOworICAgIG1fYmFja2Vu
ZC5yZXF1ZXN0VHJhbnNpdFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6Q2xlYW51cEFuZFRl
cm1pbmF0ZSk7CiB9CiAKIHZvaWQgU1FMVHJhbnNhY3Rpb246OmNsZWFyQ2FsbGJhY2tXcmFwcGVy
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uLmgKaW5kZXggYjI1ZThlNDBmMzAxYmQyMWEzNjkwZmM1OWJiNzg5NTY4MjVjYmU4Mi4u
MTVkMTNhNTdhOWU1NTYxNjQwZDc4N2JmNzEzNmZiN2I2NWMxMDg1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaApAQCAtMzEs
NiArMzEsNyBAQAogCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJTUUxDYWxs
YmFja1dyYXBwZXIuaCIKKyNpbmNsdWRlICJTUUxUcmFuc2FjdGlvbkJhY2tlbmQuaCIKICNpbmNs
dWRlICJTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC02NiwxNCArNjcsMTMgQEAgcHVibGljOgogICAg
IHZvaWQgcGVyZm9ybVBlbmRpbmdDYWxsYmFjaygpOwogCiAgICAgRGF0YWJhc2UmIGRhdGFiYXNl
KCkgeyByZXR1cm4gbV9kYXRhYmFzZTsgfQotICAgIFNRTFRyYW5zYWN0aW9uQmFja2VuZCYgYmFj
a2VuZCgpIHsgcmV0dXJuICptX2JhY2tlbmQ7IH0KKyAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQm
IGJhY2tlbmQoKSB7IHJldHVybiBtX2JhY2tlbmQ7IH0KIAogICAgIC8vIEFQSXMgY2FsbGVkIGZy
b20gdGhlIGJhY2tlbmQgcHVibGlzaGVkIHZpYSBTUUxUcmFuc2FjdGlvbjoKICAgICB2b2lkIHJl
cXVlc3RUcmFuc2l0VG9TdGF0ZShTUUxUcmFuc2FjdGlvblN0YXRlKTsKICAgICBib29sIGhhc0Nh
bGxiYWNrKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNTdWNjZXNzQ2FsbGJhY2soKSBjb25zdDsKICAg
ICBib29sIGhhc0Vycm9yQ2FsbGJhY2soKSBjb25zdDsKLSAgICB2b2lkIHNldEJhY2tlbmQoU1FM
VHJhbnNhY3Rpb25CYWNrZW5kKik7CiAKIHByaXZhdGU6CiAgICAgU1FMVHJhbnNhY3Rpb24oUmVm
PERhdGFiYXNlPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4mJiwgUmVmUHRyPFZv
aWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbldyYXBwZXI+JiYsIGJvb2wgcmVhZE9u
bHkpOwpAQCAtOTQsNyArOTQsNiBAQCBwcml2YXRlOgogICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNT
RVJUIHZvaWQgdW5yZWFjaGFibGVTdGF0ZSgpOwogCiAgICAgUmVmPERhdGFiYXNlPiBtX2RhdGFi
YXNlOwotICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IG1fYmFja2VuZDsKICAgICBT
UUxDYWxsYmFja1dyYXBwZXI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4gbV9jYWxsYmFja1dyYXBw
ZXI7CiAgICAgU1FMQ2FsbGJhY2tXcmFwcGVyPFZvaWRDYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJh
Y2tXcmFwcGVyOwogICAgIFNRTENhbGxiYWNrV3JhcHBlcjxTUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2s+IG1fZXJyb3JDYWxsYmFja1dyYXBwZXI7CkBAIC0xMDMsNiArMTAyLDggQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8U1FMRXJyb3I+IG1fdHJhbnNhY3Rpb25FcnJvcjsKIAogICAgIGJvb2wg
bV9yZWFkT25seTsKKworICAgIFNRTFRyYW5zYWN0aW9uQmFja2VuZCBtX2JhY2tlbmQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKaW5kZXggYTg0
YzgzYjE3YTRjMjU0ZmFjYzRkODFjN2NhOGM2YmQxNjBjNTU4Yi4uMGVkNmFhOGZiOWU4NTlmNDBh
NGQ3MGNiYmQzNmJiNDE3YTcyYThlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcApAQCAtMzQz
LDE4ICszNDMsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U1FMVHJhbnNhY3Rp
b25CYWNrZW5kPiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZShEYXRhYmFzZSogZGIsIFJl
ZlB0cjxTUUxUcmFuc2FjdGlvbj4mJiBmcm9udGVuZCwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3Jh
cHBlcj4mJiB3cmFwcGVyLCBib29sIHJlYWRPbmx5KQotewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNRTFRyYW5zYWN0aW9uQmFja2VuZChkYiwgV1RGTW92ZShmcm9udGVuZCksIFdURk1vdmUo
d3JhcHBlciksIHJlYWRPbmx5KSk7Ci19Ci0KLVNRTFRyYW5zYWN0aW9uQmFja2VuZDo6U1FMVHJh
bnNhY3Rpb25CYWNrZW5kKERhdGFiYXNlKiBkYiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiYmIGZy
b250ZW5kLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiYmIHdyYXBwZXIsIGJvb2wgcmVh
ZE9ubHkpCi0gICAgOiBtX2Zyb250ZW5kKFdURk1vdmUoZnJvbnRlbmQpKQorU1FMVHJhbnNhY3Rp
b25CYWNrZW5kOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQoRGF0YWJhc2UqIGRiLCBTUUxUcmFuc2Fj
dGlvbiYgZnJvbnRlbmQsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbldyYXBwZXI+JiYgd3JhcHBlciwg
Ym9vbCByZWFkT25seSkKKyAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpCiAgICAgLCBtX2RhdGFi
YXNlKGRiKQogICAgICwgbV93cmFwcGVyKFdURk1vdmUod3JhcHBlcikpCi0gICAgLCBtX2hhc0Nh
bGxiYWNrKG1fZnJvbnRlbmQtPmhhc0NhbGxiYWNrKCkpCi0gICAgLCBtX2hhc1N1Y2Nlc3NDYWxs
YmFjayhtX2Zyb250ZW5kLT5oYXNTdWNjZXNzQ2FsbGJhY2soKSkKLSAgICAsIG1faGFzRXJyb3JD
YWxsYmFjayhtX2Zyb250ZW5kLT5oYXNFcnJvckNhbGxiYWNrKCkpCisgICAgLCBtX2hhc0NhbGxi
YWNrKG1fZnJvbnRlbmQuaGFzQ2FsbGJhY2soKSkKKyAgICAsIG1faGFzU3VjY2Vzc0NhbGxiYWNr
KG1fZnJvbnRlbmQuaGFzU3VjY2Vzc0NhbGxiYWNrKCkpCisgICAgLCBtX2hhc0Vycm9yQ2FsbGJh
Y2sobV9mcm9udGVuZC5oYXNFcnJvckNhbGxiYWNrKCkpCiAgICAgLCBtX3Nob3VsZFJldHJ5Q3Vy
cmVudFN0YXRlbWVudChmYWxzZSkKICAgICAsIG1fbW9kaWZpZWREYXRhYmFzZShmYWxzZSkKICAg
ICAsIG1fbG9ja0FjcXVpcmVkKGZhbHNlKQpAQCAtMzYyLDcgKzM1Nyw2IEBAIFNRTFRyYW5zYWN0
aW9uQmFja2VuZDo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kKERhdGFiYXNlKiBkYiwgUmVmUHRyPFNR
TFRyYW5zYWN0aW9uCiAgICAgLCBtX2hhc1ZlcnNpb25NaXNtYXRjaChmYWxzZSkKIHsKICAgICBB
U1NFUlQobV9kYXRhYmFzZSk7Ci0gICAgbV9mcm9udGVuZC0+c2V0QmFja2VuZCh0aGlzKTsKICAg
ICBtX3JlcXVlc3RlZFN0YXRlID0gU1FMVHJhbnNhY3Rpb25TdGF0ZTo6QWNxdWlyZUxvY2s7CiB9
CiAKQEAgLTM3MywxMCArMzY3LDYgQEAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjp+U1FMVHJhbnNh
Y3Rpb25CYWNrZW5kKCkKIAogdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmRvQ2xlYW51cCgp
CiB7Ci0gICAgaWYgKCFtX2Zyb250ZW5kKQotICAgICAgICByZXR1cm47Ci0gICAgbV9mcm9udGVu
ZCA9IG51bGxwdHI7IC8vIEJyZWFrIHRoZSByZWZlcmVuY2UgY3ljbGUuIFNlZSBjb21tZW50IGFi
b3V0IHRoZSBsaWZlLWN5Y2xlIGFib3ZlLgotCiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9
PSBkYXRhYmFzZSgpLT5kYXRhYmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKS0+Z2V0VGhy
ZWFkSUQoKSk7CiAKICAgICByZWxlYXNlT3JpZ2luTG9ja0lmTmVlZGVkKCk7CkBAIC0zOTUsNyAr
Mzg1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmRvQ2xlYW51cCgpCiAKICAgICAv
LyBSZWxlYXNlIHRoZSBsb2NrIG9uIHRoaXMgZGF0YWJhc2UKICAgICBpZiAobV9sb2NrQWNxdWly
ZWQpCi0gICAgICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uQ29vcmRpbmF0b3IoKS0+cmVsZWFz
ZUxvY2sodGhpcyk7CisgICAgICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uQ29vcmRpbmF0b3Io
KS0+cmVsZWFzZUxvY2sobV9mcm9udGVuZCk7CiAKICAgICAvLyBEbyBzb21lIGFnZ3Jlc2l2ZSBj
bGVhbiB1cCBoZXJlIGV4Y2VwdCBmb3IgbV9kYXRhYmFzZS4KICAgICAvLwpAQCAtNTAzLDcgKzQ5
Myw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpjb21wdXRlTmV4dFN0YXRlQW5kQ2xl
YW51cElmTmVlZGVkKCkKICAgICAvLyBUZXJtaW5hdGUgdGhlIGZyb250ZW5kIHN0YXRlIG1hY2hp
bmUuIFRoaXMgYWxzbyBnZXRzIHRoZSBmcm9udGVuZCB0bwogICAgIC8vIGNhbGwgY29tcHV0ZU5l
eHRTdGF0ZUFuZENsZWFudXBJZk5lZWRlZCgpIGFuZCBjbGVhciBpdHMgd3JhcHBlcnMKICAgICAv
LyBpZiBuZWVkZWQuCi0gICAgbV9mcm9udGVuZC0+cmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRy
YW5zYWN0aW9uU3RhdGU6OkVuZCk7CisgICAgbV9mcm9udGVuZC5yZXF1ZXN0VHJhbnNpdFRvU3Rh
dGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6RW5kKTsKIAogICAgIC8vIFJlZGlyZWN0IHRvIHRoZSBl
bmQgc3RhdGUgdG8gYWJvcnQsIGNsZWFuIHVwLCBhbmQgZW5kIHRoZSB0cmFuc2FjdGlvbi4KICAg
ICBkb0NsZWFudXAoKTsKQEAgLTUzNyw3ICs1MjcsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFj
a2VuZDo6bm90aWZ5RGF0YWJhc2VUaHJlYWRJc1NodXR0aW5nRG93bigpCiAKIHZvaWQgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjphY3F1aXJlTG9jaygpCiB7Ci0gICAgbV9kYXRhYmFzZS0+dHJhbnNh
Y3Rpb25Db29yZGluYXRvcigpLT5hY3F1aXJlTG9jayh0aGlzKTsKKyAgICBtX2RhdGFiYXNlLT50
cmFuc2FjdGlvbkNvb3JkaW5hdG9yKCktPmFjcXVpcmVMb2NrKG1fZnJvbnRlbmQpOwogfQogCiB2
b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6bG9ja0FjcXVpcmVkKCkKQEAgLTU0Niw3ICs1MzYs
NyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6bG9ja0FjcXVpcmVkKCkKIAogICAgIG1f
cmVxdWVzdGVkU3RhdGUgPSBTUUxUcmFuc2FjdGlvblN0YXRlOjpPcGVuVHJhbnNhY3Rpb25BbmRQ
cmVmbGlnaHQ7CiAgICAgQVNTRVJUKG1fcmVxdWVzdGVkU3RhdGUgIT0gU1FMVHJhbnNhY3Rpb25T
dGF0ZTo6RW5kKTsKLSAgICBtX2RhdGFiYXNlLT5zY2hlZHVsZVRyYW5zYWN0aW9uU3RlcCgqdGhp
cyk7CisgICAgbV9kYXRhYmFzZS0+c2NoZWR1bGVUcmFuc2FjdGlvblN0ZXAobV9mcm9udGVuZCk7
CiB9CiAKIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVm
bGlnaHQoKQpAQCAtNjIxLDcgKzYxMSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpv
cGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQoKQogCiAgICAgLy8gU3BlYyA0LjMuMi40OiBJbnZv
a2UgdGhlIHRyYW5zYWN0aW9uIGNhbGxiYWNrIHdpdGggdGhlIG5ldyBTUUxUcmFuc2FjdGlvbiBv
YmplY3QKICAgICBpZiAobV9oYXNDYWxsYmFjaykgewotICAgICAgICBtX2Zyb250ZW5kLT5yZXF1
ZXN0VHJhbnNpdFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6RGVsaXZlclRyYW5zYWN0aW9u
Q2FsbGJhY2spOworICAgICAgICBtX2Zyb250ZW5kLnJlcXVlc3RUcmFuc2l0VG9TdGF0ZShTUUxU
cmFuc2FjdGlvblN0YXRlOjpEZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjayk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTY5NCw3ICs2ODQsNyBAQCBib29sIFNRTFRyYW5zYWN0aW9uQmFj
a2VuZDo6cnVuQ3VycmVudFN0YXRlbWVudCgpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9j
dXJyZW50U3RhdGVtZW50QmFja2VuZC0+aGFzU3RhdGVtZW50Q2FsbGJhY2soKSkgewotICAgICAg
ICAgICAgbV9mcm9udGVuZC0+cmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5zYWN0aW9uU3Rh
dGU6OkRlbGl2ZXJTdGF0ZW1lbnRDYWxsYmFjayk7CisgICAgICAgICAgICBtX2Zyb250ZW5kLnJl
cXVlc3RUcmFuc2l0VG9TdGF0ZShTUUxUcmFuc2FjdGlvblN0YXRlOjpEZWxpdmVyU3RhdGVtZW50
Q2FsbGJhY2spOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKQEAgLTcw
NCw3ICs2OTQsNyBAQCBib29sIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6cnVuQ3VycmVudFN0YXRl
bWVudCgpCiAgICAgfQogCiAgICAgaWYgKG1fY3VycmVudFN0YXRlbWVudEJhY2tlbmQtPmxhc3RF
eGVjdXRpb25GYWlsZWREdWVUb1F1b3RhKCkpIHsKLSAgICAgICAgbV9mcm9udGVuZC0+cmVxdWVz
dFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5zYWN0aW9uU3RhdGU6OkRlbGl2ZXJRdW90YUluY3JlYXNl
Q2FsbGJhY2spOworICAgICAgICBtX2Zyb250ZW5kLnJlcXVlc3RUcmFuc2l0VG9TdGF0ZShTUUxU
cmFuc2FjdGlvblN0YXRlOjpEZWxpdmVyUXVvdGFJbmNyZWFzZUNhbGxiYWNrKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNzE3LDcgKzcwNyw3IEBAIHZvaWQgU1FMVHJhbnNh
Y3Rpb25CYWNrZW5kOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJyb3IoKQogICAgIC8vIFNwZWMg
NC4zLjIuNi42OiBlcnJvciAtIENhbGwgdGhlIHN0YXRlbWVudCdzIGVycm9yIGNhbGxiYWNrLCBi
dXQgaWYgdGhlcmUgd2FzIG5vIGVycm9yIGNhbGxiYWNrLAogICAgIC8vIG9yIHRoZSB0cmFuc2Fj
dGlvbiB3YXMgcm9sbGVkIGJhY2ssIGp1bXAgdG8gdGhlIHRyYW5zYWN0aW9uIGVycm9yIGNhbGxi
YWNrCiAgICAgaWYgKG1fY3VycmVudFN0YXRlbWVudEJhY2tlbmQtPmhhc1N0YXRlbWVudEVycm9y
Q2FsbGJhY2soKSAmJiAhbV9zcWxpdGVUcmFuc2FjdGlvbi0+d2FzUm9sbGVkQmFja0J5U3FsaXRl
KCkpIHsKLSAgICAgICAgbV9mcm9udGVuZC0+cmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5z
YWN0aW9uU3RhdGU6OkRlbGl2ZXJTdGF0ZW1lbnRDYWxsYmFjayk7CisgICAgICAgIG1fZnJvbnRl
bmQucmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5zYWN0aW9uU3RhdGU6OkRlbGl2ZXJTdGF0
ZW1lbnRDYWxsYmFjayk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTczMiw3ICs3MjIs
NyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6aGFuZGxlVHJhbnNhY3Rpb25FcnJvcigp
CiB7CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb25FcnJvcik7CiAgICAgaWYgKG1faGFzRXJyb3JD
YWxsYmFjaykgewotICAgICAgICBtX2Zyb250ZW5kLT5yZXF1ZXN0VHJhbnNpdFRvU3RhdGUoU1FM
VHJhbnNhY3Rpb25TdGF0ZTo6RGVsaXZlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayk7CisgICAg
ICAgIG1fZnJvbnRlbmQucmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5zYWN0aW9uU3RhdGU6
OkRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC03ODQsNyArNzc0LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnBvc3Rm
bGlnaHRBbmRDb21taXQoKQogICAgICAgICBtX2RhdGFiYXNlLT50cmFuc2FjdGlvbkNsaWVudCgp
LT5kaWRDb21taXRXcml0ZVRyYW5zYWN0aW9uKGRhdGFiYXNlKCkpOwogCiAgICAgLy8gU3BlYyA0
LjMuMi44OiBEZWxpdmVyIHN1Y2Nlc3MgY2FsbGJhY2ssIGlmIHRoZXJlIGlzIG9uZS4KLSAgICBt
X2Zyb250ZW5kLT5yZXF1ZXN0VHJhbnNpdFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6RGVs
aXZlclN1Y2Nlc3NDYWxsYmFjayk7CisgICAgbV9mcm9udGVuZC5yZXF1ZXN0VHJhbnNpdFRvU3Rh
dGUoU1FMVHJhbnNhY3Rpb25TdGF0ZTo6RGVsaXZlclN1Y2Nlc3NDYWxsYmFjayk7CiB9CiAKIHZv
aWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpjbGVhbnVwQW5kVGVybWluYXRlKCkKQEAgLTgzMCw3
ICs4MjAsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6cmVxdWVzdFRyYW5zaXRUb1N0
YXRlKFNRTFRyYW5zYWN0aW9uU3RhdGUgbmV4dFN0YXRlKQogICAgIExPRyhTdG9yYWdlQVBJLCAi
U2NoZWR1bGluZyAlcyBmb3IgdHJhbnNhY3Rpb24gJXBcbiIsIG5hbWVGb3JTUUxUcmFuc2FjdGlv
blN0YXRlKG5leHRTdGF0ZSksIHRoaXMpOwogICAgIG1fcmVxdWVzdGVkU3RhdGUgPSBuZXh0U3Rh
dGU7CiAgICAgQVNTRVJUKG1fcmVxdWVzdGVkU3RhdGUgIT0gU1FMVHJhbnNhY3Rpb25TdGF0ZTo6
RW5kKTsKLSAgICBtX2RhdGFiYXNlLT5zY2hlZHVsZVRyYW5zYWN0aW9uU3RlcCgqdGhpcyk7Cisg
ICAgbV9kYXRhYmFzZS0+c2NoZWR1bGVUcmFuc2FjdGlvblN0ZXAobV9mcm9udGVuZCk7CiB9CiAK
IC8vIFRoaXMgc3RhdGUgZnVuY3Rpb24gaXMgdXNlZCBhcyBhIHN0dWIgZnVuY3Rpb24gdG8gcGx1
ZyB1bmltcGxlbWVudGVkIHN0YXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKaW5kZXggOWNkYzIwODZi
MTlkYjViNzJkMmU4NjgwNGVmZDcyNDUwZDZkMmQwNy4uNzFjMTcyMzU4Yjc0ZGZjNDVkNTI5MzYy
MzMxN2Y4MmE2MDdiZjllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oCkBAIC00NywxMSArNDcsMTAg
QEAgY2xhc3MgU1FMVHJhbnNhY3Rpb247CiBjbGFzcyBTUUxUcmFuc2FjdGlvbldyYXBwZXI7CiBj
bGFzcyBTUUxWYWx1ZTsKIAotY2xhc3MgU1FMVHJhbnNhY3Rpb25CYWNrZW5kIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4sIHB1YmxpYyBTUUxUcmFu
c2FjdGlvblN0YXRlTWFjaGluZTxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHsKK2NsYXNzIFNRTFRy
YW5zYWN0aW9uQmFja2VuZCA6IHB1YmxpYyBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZTxTUUxU
cmFuc2FjdGlvbkJhY2tlbmQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNRTFRyYW5zYWN0
aW9uQmFja2VuZD4gY3JlYXRlKERhdGFiYXNlKiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiYmLCBS
ZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiYmLCBib29sIHJlYWRPbmx5KTsKLQotICAgIHZp
cnR1YWwgflNRTFRyYW5zYWN0aW9uQmFja2VuZCgpOworICAgIFNRTFRyYW5zYWN0aW9uQmFja2Vu
ZChEYXRhYmFzZSosIFNRTFRyYW5zYWN0aW9uJiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBl
cj4mJiwgYm9vbCByZWFkT25seSk7CisgICAgflNRTFRyYW5zYWN0aW9uQmFja2VuZCgpOwogCiAg
ICAgdm9pZCBsb2NrQWNxdWlyZWQoKTsKICAgICB2b2lkIHBlcmZvcm1OZXh0U3RlcCgpOwpAQCAt
NjgsNyArNjcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGVjdXRlU1FMKHN0ZDo6dW5pcXVlX3B0
cjxTUUxTdGF0ZW1lbnQ+KTsKICAgICAKIHByaXZhdGU6Ci0gICAgU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kKERhdGFiYXNlKiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiYmLCBSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25XcmFwcGVyPiYmLCBib29sIHJlYWRPbmx5KTsKIAogICAgIHZvaWQgZG9DbGVhbnVwKCk7
CiAKQEAgLTk2LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFjcXVpcmVPcmlnaW5Mb2Nr
KCk7CiAgICAgdm9pZCByZWxlYXNlT3JpZ2luTG9ja0lmTmVlZGVkKCk7CiAKLSAgICBSZWZQdHI8
U1FMVHJhbnNhY3Rpb24+IG1fZnJvbnRlbmQ7IC8vIEhhcyBhIHJlZmVyZW5jZSBjeWNsZSwgYW5k
IHdpbGwgYnJlYWsgaW4gZG9DbGVhbnVwKCkuCisgICAgU1FMVHJhbnNhY3Rpb24mIG1fZnJvbnRl
bmQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNRTFN0YXRlbWVudD4gbV9jdXJyZW50U3RhdGVtZW50
QmFja2VuZDsKIAogICAgIFJlZlB0cjxEYXRhYmFzZT4gbV9kYXRhYmFzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDg0MzMyOGNmNTIzNjZjZGMxYjgzZTcyYmU2NTI2MGNk
YThiY2ZiZGUuLjViMjdkM2Q5M2YxODJiZWJkM2YyODMzZWUwNjU1NzNiNzFhOGM1MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25D
b29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUg
IlNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCIKIAogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCi0j
aW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgiCisjaW5jbHVkZSAiU1FMVHJhbnNhY3Rp
b24uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00MiwxMSArNDIsOSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBTdHJpbmcgZ2V0RGF0YWJhc2VJZGVudGlmaWVyKFNRTFRy
YW5zYWN0aW9uQmFja2VuZCogdHJhbnNhY3Rpb24pCitzdGF0aWMgU3RyaW5nIGdldERhdGFiYXNl
SWRlbnRpZmllcihTUUxUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0gICAgRGF0YWJhc2Uq
IGRhdGFiYXNlID0gdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCk7Ci0gICAgQVNTRVJUKGRhdGFiYXNl
KTsKLSAgICByZXR1cm4gZGF0YWJhc2UtPnNlY3VyaXR5T3JpZ2luKCktPmRhdGFiYXNlSWRlbnRp
ZmllcigpOworICAgIHJldHVybiB0cmFuc2FjdGlvbi5kYXRhYmFzZSgpLnNlY3VyaXR5T3JpZ2lu
KCktPmRhdGFiYXNlSWRlbnRpZmllcigpOwogfQogCiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
OjpTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yKCkKQEAgLTU5LDIxICs1NywyMSBAQCB2b2lkIFNR
TFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OnByb2Nlc3NQZW5kaW5nVHJhbnNhY3Rpb25zKENvb3Jk
aW5hdGlvbkluZm8mIGluZgogICAgIGlmIChpbmZvLmFjdGl2ZVdyaXRlVHJhbnNhY3Rpb24gfHwg
aW5mby5wZW5kaW5nVHJhbnNhY3Rpb25zLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gZmlyc3RQZW5kaW5nVHJhbnNhY3Rpb24g
PSBpbmZvLnBlbmRpbmdUcmFuc2FjdGlvbnMuZmlyc3QoKTsKLSAgICBpZiAoZmlyc3RQZW5kaW5n
VHJhbnNhY3Rpb24tPmlzUmVhZE9ubHkoKSkgeworICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4g
Zmlyc3RQZW5kaW5nVHJhbnNhY3Rpb24gPSBpbmZvLnBlbmRpbmdUcmFuc2FjdGlvbnMuZmlyc3Qo
KTsKKyAgICBpZiAoZmlyc3RQZW5kaW5nVHJhbnNhY3Rpb24tPmJhY2tlbmQoKS5pc1JlYWRPbmx5
KCkpIHsKICAgICAgICAgZG8gewogICAgICAgICAgICAgZmlyc3RQZW5kaW5nVHJhbnNhY3Rpb24g
PSBpbmZvLnBlbmRpbmdUcmFuc2FjdGlvbnMudGFrZUZpcnN0KCk7CiAgICAgICAgICAgICBpbmZv
LmFjdGl2ZVJlYWRUcmFuc2FjdGlvbnMuYWRkKGZpcnN0UGVuZGluZ1RyYW5zYWN0aW9uKTsKLSAg
ICAgICAgICAgIGZpcnN0UGVuZGluZ1RyYW5zYWN0aW9uLT5sb2NrQWNxdWlyZWQoKTsKLSAgICAg
ICAgfSB3aGlsZSAoIWluZm8ucGVuZGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkgJiYgaW5mby5w
ZW5kaW5nVHJhbnNhY3Rpb25zLmZpcnN0KCktPmlzUmVhZE9ubHkoKSk7CisgICAgICAgICAgICBm
aXJzdFBlbmRpbmdUcmFuc2FjdGlvbi0+YmFja2VuZCgpLmxvY2tBY3F1aXJlZCgpOworICAgICAg
ICB9IHdoaWxlICghaW5mby5wZW5kaW5nVHJhbnNhY3Rpb25zLmlzRW1wdHkoKSAmJiBpbmZvLnBl
bmRpbmdUcmFuc2FjdGlvbnMuZmlyc3QoKS0+YmFja2VuZCgpLmlzUmVhZE9ubHkoKSk7CiAgICAg
fSBlbHNlIGlmIChpbmZvLmFjdGl2ZVJlYWRUcmFuc2FjdGlvbnMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGluZm8ucGVuZGluZ1RyYW5zYWN0aW9ucy5yZW1vdmVGaXJzdCgpOwogICAgICAgICBpbmZv
LmFjdGl2ZVdyaXRlVHJhbnNhY3Rpb24gPSBmaXJzdFBlbmRpbmdUcmFuc2FjdGlvbjsKLSAgICAg
ICAgZmlyc3RQZW5kaW5nVHJhbnNhY3Rpb24tPmxvY2tBY3F1aXJlZCgpOworICAgICAgICBmaXJz
dFBlbmRpbmdUcmFuc2FjdGlvbi0+YmFja2VuZCgpLmxvY2tBY3F1aXJlZCgpOwogICAgIH0KIH0K
IAotdm9pZCBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yOjphY3F1aXJlTG9jayhTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQqIHRyYW5zYWN0aW9uKQordm9pZCBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
OjphY3F1aXJlTG9jayhTUUxUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgQVNTRVJU
KCFtX2lzU2h1dHRpbmdEb3duKTsKIApAQCAtODYsMTEgKzg0LDExIEBAIHZvaWQgU1FMVHJhbnNh
Y3Rpb25Db29yZGluYXRvcjo6YWNxdWlyZUxvY2soU1FMVHJhbnNhY3Rpb25CYWNrZW5kKiB0cmFu
c2FjdGlvbikKICAgICB9CiAKICAgICBDb29yZGluYXRpb25JbmZvJiBpbmZvID0gY29vcmRpbmF0
aW9uSW5mb0l0ZXJhdG9yLT52YWx1ZTsKLSAgICBpbmZvLnBlbmRpbmdUcmFuc2FjdGlvbnMuYXBw
ZW5kKHRyYW5zYWN0aW9uKTsKKyAgICBpbmZvLnBlbmRpbmdUcmFuc2FjdGlvbnMuYXBwZW5kKCZ0
cmFuc2FjdGlvbik7CiAgICAgcHJvY2Vzc1BlbmRpbmdUcmFuc2FjdGlvbnMoaW5mbyk7CiB9CiAK
LXZvaWQgU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvcjo6cmVsZWFzZUxvY2soU1FMVHJhbnNhY3Rp
b25CYWNrZW5kKiB0cmFuc2FjdGlvbikKK3ZvaWQgU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvcjo6
cmVsZWFzZUxvY2soU1FMVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewogICAgIGlmIChtX2lz
U2h1dHRpbmdEb3duKQogICAgICAgICByZXR1cm47CkBAIC0xMDEsMTEgKzk5LDExIEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb25Db29yZGluYXRvcjo6cmVsZWFzZUxvY2soU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kKiB0cmFuc2FjdGlvbikKICAgICBBU1NFUlQoY29vcmRpbmF0aW9uSW5mb0l0ZXJhdG9yICE9
IG1fY29vcmRpbmF0aW9uSW5mb01hcC5lbmQoKSk7CiAgICAgQ29vcmRpbmF0aW9uSW5mbyYgaW5m
byA9IGNvb3JkaW5hdGlvbkluZm9JdGVyYXRvci0+dmFsdWU7CiAKLSAgICBpZiAodHJhbnNhY3Rp
b24tPmlzUmVhZE9ubHkoKSkgewotICAgICAgICBBU1NFUlQoaW5mby5hY3RpdmVSZWFkVHJhbnNh
Y3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uKSk7Ci0gICAgICAgIGluZm8uYWN0aXZlUmVhZFRy
YW5zYWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24pOworICAgIGlmICh0cmFuc2FjdGlvbi5iYWNr
ZW5kKCkuaXNSZWFkT25seSgpKSB7CisgICAgICAgIEFTU0VSVChpbmZvLmFjdGl2ZVJlYWRUcmFu
c2FjdGlvbnMuY29udGFpbnMoJnRyYW5zYWN0aW9uKSk7CisgICAgICAgIGluZm8uYWN0aXZlUmVh
ZFRyYW5zYWN0aW9ucy5yZW1vdmUoJnRyYW5zYWN0aW9uKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBBU1NFUlQoaW5mby5hY3RpdmVXcml0ZVRyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uKTsKKyAg
ICAgICAgQVNTRVJUKGluZm8uYWN0aXZlV3JpdGVUcmFuc2FjdGlvbiA9PSAmdHJhbnNhY3Rpb24p
OwogICAgICAgICBpbmZvLmFjdGl2ZVdyaXRlVHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0K
IApAQCAtMTI0LDE2ICsxMjIsMTYgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yOjpz
aHV0ZG93bigpCiAgICAgICAgIC8vIFRyYW5zYWN0aW9uIHBoYXNlIDQgY2xlYW51cC4gU2VlIGNv
bW1lbnQgb24gIldoYXQgaGFwcGVucyBpZiBhCiAgICAgICAgIC8vIHRyYW5zYWN0aW9uIGlzIGlu
dGVycnVwdGVkPyIgYXQgdGhlIHRvcCBvZiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwLgogICAg
ICAgICBpZiAoaW5mby5hY3RpdmVXcml0ZVRyYW5zYWN0aW9uKQotICAgICAgICAgICAgaW5mby5h
Y3RpdmVXcml0ZVRyYW5zYWN0aW9uLT5ub3RpZnlEYXRhYmFzZVRocmVhZElzU2h1dHRpbmdEb3du
KCk7CisgICAgICAgICAgICBpbmZvLmFjdGl2ZVdyaXRlVHJhbnNhY3Rpb24tPmJhY2tlbmQoKS5u
b3RpZnlEYXRhYmFzZVRocmVhZElzU2h1dHRpbmdEb3duKCk7CiAgICAgICAgIGZvciAoYXV0byYg
dHJhbnNhY3Rpb24gOiBpbmZvLmFjdGl2ZVJlYWRUcmFuc2FjdGlvbnMpCi0gICAgICAgICAgICB0
cmFuc2FjdGlvbi0+bm90aWZ5RGF0YWJhc2VUaHJlYWRJc1NodXR0aW5nRG93bigpOworICAgICAg
ICAgICAgdHJhbnNhY3Rpb24tPmJhY2tlbmQoKS5ub3RpZnlEYXRhYmFzZVRocmVhZElzU2h1dHRp
bmdEb3duKCk7CiAKICAgICAgICAgLy8gQ2xlYW4gdXAgdHJhbnNhY3Rpb25zIHRoYXQgaGF2ZSBO
T1QgcmVhY2hlZCAibG9ja0FjcXVpcmVkIjoKICAgICAgICAgLy8gVHJhbnNhY3Rpb24gcGhhc2Ug
MyBjbGVhbnVwLiBTZWUgY29tbWVudCBvbiAiV2hhdCBoYXBwZW5zIGlmIGEKICAgICAgICAgLy8g
dHJhbnNhY3Rpb24gaXMgaW50ZXJydXB0ZWQ/IiBhdCB0aGUgdG9wIG9mIFNRTFRyYW5zYWN0aW9u
QmFja2VuZC5jcHAuCiAgICAgICAgIHdoaWxlICghaW5mby5wZW5kaW5nVHJhbnNhY3Rpb25zLmlz
RW1wdHkoKSkgewotICAgICAgICAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gdHJh
bnNhY3Rpb24gPSBpbmZvLnBlbmRpbmdUcmFuc2FjdGlvbnMuZmlyc3QoKTsKLSAgICAgICAgICAg
IHRyYW5zYWN0aW9uLT5ub3RpZnlEYXRhYmFzZVRocmVhZElzU2h1dHRpbmdEb3duKCk7CisgICAg
ICAgICAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uID0gaW5mby5wZW5kaW5n
VHJhbnNhY3Rpb25zLmZpcnN0KCk7CisgICAgICAgICAgICB0cmFuc2FjdGlvbi0+YmFja2VuZCgp
Lm5vdGlmeURhdGFiYXNlVGhyZWFkSXNTaHV0dGluZ0Rvd24oKTsKICAgICAgICAgfQogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaAppbmRleCA0YTdhZTI2MDIzNzkwMjFmOWFkY2Nh
MGYwNjI5YjY0YzFlMjNlNzBkLi5jZjQ0ZWNlZTNmOTg4NzE2ODcxOGIzZWY4OGUxNGYyZGNmMWMx
MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaApAQCAtNDAsMjEgKzQwLDIxIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOworY2xh
c3MgU1FMVHJhbnNhY3Rpb247CiAKIGNsYXNzIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3Igewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBTUUxUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yKCk7Ci0gICAgdm9pZCBhY3F1aXJlTG9jayhTUUxUcmFuc2FjdGlvbkJhY2tlbmQqKTsKLSAg
ICB2b2lkIHJlbGVhc2VMb2NrKFNRTFRyYW5zYWN0aW9uQmFja2VuZCopOworICAgIHZvaWQgYWNx
dWlyZUxvY2soU1FMVHJhbnNhY3Rpb24mKTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFNRTFRyYW5z
YWN0aW9uJik7CiAgICAgdm9pZCBzaHV0ZG93bigpOwogcHJpdmF0ZToKLSAgICB0eXBlZGVmIERl
cXVlPFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+PiBUcmFuc2FjdGlvbnNRdWV1ZTsKKyAg
ICB0eXBlZGVmIERlcXVlPFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4+IFRyYW5zYWN0aW9uc1F1ZXVl
OwogICAgIHN0cnVjdCBDb29yZGluYXRpb25JbmZvIHsKICAgICAgICAgVHJhbnNhY3Rpb25zUXVl
dWUgcGVuZGluZ1RyYW5zYWN0aW9uczsKLSAgICAgICAgSGFzaFNldDxSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25CYWNrZW5kPj4gYWN0aXZlUmVhZFRyYW5zYWN0aW9uczsKLSAgICAgICAgUmVmUHRyPFNR
TFRyYW5zYWN0aW9uQmFja2VuZD4gYWN0aXZlV3JpdGVUcmFuc2FjdGlvbjsKKyAgICAgICAgSGFz
aFNldDxSZWZQdHI8U1FMVHJhbnNhY3Rpb24+PiBhY3RpdmVSZWFkVHJhbnNhY3Rpb25zOworICAg
ICAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IGFjdGl2ZVdyaXRlVHJhbnNhY3Rpb247CiAgICAg
fTsKICAgICAvLyBNYXBzIGRhdGFiYXNlIG5hbWVzIHRvIGluZm9ybWF0aW9uIGFib3V0IHBlbmRp
bmcgdHJhbnNhY3Rpb25zCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQ29vcmRpbmF0aW9u
SW5mbz4gQ29vcmRpbmF0aW9uSW5mb01hcDsK
</data>
<flag name="review"
          id="309344"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>