<?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>125872</bug_id>
          
          <creation_ts>2013-12-17 14:05:24 -0800</creation_ts>
          <short_desc>DatabaseProcess: Pipe through object store IDs and transaction mode for &quot;openTransaction&quot;</short_desc>
          <delta_ts>2013-12-17 16:09:50 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>960665</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-12-17 14:05:24 -0800</bug_when>
    <thetext>DatabaseProcess: Pipe through object store IDs and transaction mode for &quot;openTransaction&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960667</commentid>
    <comment_count>1</comment_count>
      <attachid>219452</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-12-17 14:10:27 -0800</bug_when>
    <thetext>Created attachment 219452
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960681</commentid>
    <comment_count>2</comment_count>
      <attachid>219452</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-17 15:00:38 -0800</bug_when>
    <thetext>Comment on attachment 219452
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=219452&amp;action=review

&gt; Source/WebCore/Modules/indexeddb/IndexedDB.h:41
&gt;  enum TransactionMode {
&gt; +    TransactionModeMinimum = 0,
&gt;      TransactionReadOnly = 0,
&gt;      TransactionReadWrite = 1,
&gt; -    TransactionVersionChange = 2
&gt; +    TransactionVersionChange = 2,
&gt; +    TransactionModeMaximum = 2,
&gt;  };

I&apos;d use an enum class now:

enum class TransactionMode {
    ReadOnly = 0,
    ReadWrite = 1
    VersionChange = 2,
};
const unsigned maximumTransactionMode = 2;

(not sure why the minimum can&apos;t just be assumed 0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960703</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-12-17 16:09:50 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/160732</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219452</attachid>
            <date>2013-12-17 14:10:27 -0800</date>
            <delta_ts>2013-12-17 15:00:38 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>26766</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MTliNmNkLi4wNGY5ODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTMtMTItMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIERhdGFiYXNlUHJvY2VzczogUGlwZSB0aHJvdWdoIG9iamVjdCBzdG9yZSBJRHMgYW5kIHRy
YW5zYWN0aW9uIG1vZGUgZm9yICJvcGVuVHJhbnNhY3Rpb24iCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU4NzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWRE
Qi5oOiBBZGQgbWluL21heCB0byB0aGVzZSBlbnVtcyBmb3IgZWFzaWVyIElQQyBlbmNvZGluZyBp
biBXZWJLaXQyLgorCiAyMDEzLTEyLTE3ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUu
Y29tPgogCiAgICAgICAgIFtDU1NSZWdpb25zXSBJbmNvcnJlY3QgcmVwYWludCBvZiBmaXhlZCBl
bGVtZW50IHdpdGggdHJhbnNmb3JtZWQgcGFyZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JbmRleGVkREIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0luZGV4ZWREQi5oCmluZGV4IGNiN2U4ZmMuLmYyMWI1ZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oCkBAIC0zMywyMSArMzMsMjcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIEluZGV4ZWREQiB7CiAKIGVudW0gVHJh
bnNhY3Rpb25Nb2RlIHsKKyAgICBUcmFuc2FjdGlvbk1vZGVNaW5pbXVtID0gMCwKICAgICBUcmFu
c2FjdGlvblJlYWRPbmx5ID0gMCwKICAgICBUcmFuc2FjdGlvblJlYWRXcml0ZSA9IDEsCi0gICAg
VHJhbnNhY3Rpb25WZXJzaW9uQ2hhbmdlID0gMgorICAgIFRyYW5zYWN0aW9uVmVyc2lvbkNoYW5n
ZSA9IDIsCisgICAgVHJhbnNhY3Rpb25Nb2RlTWF4aW11bSA9IDIsCiB9OwogCiBlbnVtIEN1cnNv
ckRpcmVjdGlvbiB7CisgICAgQ3Vyc3RvckRpcmVjdGlvbk1pbmltdW0gPSAwLAogICAgIEN1cnNv
ck5leHQgPSAwLAogICAgIEN1cnNvck5leHROb0R1cGxpY2F0ZSA9IDEsCiAgICAgQ3Vyc29yUHJl
diA9IDIsCiAgICAgQ3Vyc29yUHJldk5vRHVwbGljYXRlID0gMywKKyAgICBDdXJzb3JEaXJlY3Rp
b25NYXhpbXVtID0gMywKIH07CiAKIGVudW0gQ3Vyc29yVHlwZSB7CisgICAgQ3Vyc29yVHlwZU1p
bmltdW0gPSAwLAogICAgIEN1cnNvcktleUFuZFZhbHVlID0gMCwKLSAgICBDdXJzb3JLZXlPbmx5
CisgICAgQ3Vyc29yS2V5T25seSA9IDEsCisgICAgQ3Vyc29yVHlwZU1heGltdW0gPSAxLAogfTsK
IAogZW51bSBWZXJzaW9uTnVsbG5lc3MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGIxMDg4OTQuLmE3MzFkOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxMy0xMi0xNyAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YWJhc2VQcm9jZXNzOiBQaXBlIHRocm91
Z2ggb2JqZWN0IHN0b3JlIElEcyBhbmQgdHJhbnNhY3Rpb24gbW9kZSBmb3IgIm9wZW5UcmFuc2Fj
dGlvbiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NTg3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBp
cGUgdGhyb3VnaCB0aGUgb2JqZWN0U3RvcmVJRHMgYW5kIG1vZGU6CisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6b3BlblRyYW5zYWN0
aW9uKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vz
c0lEQkNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0Rh
dGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKKyAgICAgICAgUmV3b3Jr
IHBvc3RUcmFuc2FjdGlvbk9wZXJhdGlvbiB0byB0YWtlIGEgcHJlLW1hZGUgQXN5bmNUYXNrIHRv
IGFsbG93IGZvciBkaWZmZXJlbnQKKyAgICAgICAgdHJhbnNhY3Rpb24gb3BlcmF0aW9uIGZ1bmN0
aW9uIHNpZ25hdHVyZXM6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpv
cGVuVHJhbnNhY3Rpb24pOiBQaXBlIHRocm91Z2ggdGhlIG9iamVjdFN0b3JlSURzIGFuZCBtb2Rl
OgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpyZXNldFRyYW5zYWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnJvbGxiYWNrVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cG9zdFRyYW5zYWN0aW9uT3Bl
cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6Om9wZW5CYWNraW5n
U3RvcmVUcmFuc2FjdGlvbik6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9V
bmlxdWVJREJEYXRhYmFzZS5oOgorCisgICAgICAgIFBpcGUgdGhyb3VnaCB0aGUgb2JqZWN0U3Rv
cmVJRHMgYW5kIG1vZGU6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9J
bmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmVz
dGFibGlzaFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oOgorCisgICAgICAg
ICogUGxhdGZvcm0vTG9nZ2luZy5oOiBBZGQgYW4gSURCIGxvZ2dpbmcgY2hhbm5lbC4KKworICAg
ICAgICAqIFNoYXJlZC9Bc3luY1Rhc2suaDoKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlQXN5bmNU
YXNrKTogQWRkIGEgMy1hcmd1bWVudCB2YXJpYW50LgorCisgICAgICAgICogU2hhcmVkL1dlYkNy
b3NzVGhyZWFkQ29waWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y29weSk6IEFkZCBhIFZl
Y3RvcjxpbnQ2NF90PiBjb3BpZXIuCisgICAgICAgICogU2hhcmVkL1dlYkNyb3NzVGhyZWFkQ29w
aWVyLmg6CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgdGhyb3VnaG91dCBjdXJyZW50bHkgaW1wbGVt
ZW50ZWQgbWV0aG9kczoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZl
ckNvbm5lY3Rpb246OmdldE9yRXN0YWJsaXNoSURCRGF0YWJhc2VNZXRhZGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZEdldE9yRXN0YWJsaXNoSURCRGF0
YWJhc2VNZXRhZGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246
Om9wZW5UcmFuc2FjdGlvbik6IFBpcGUgdGhyb3VnaCB0aGUgb2JqZWN0U3RvcmVJRHMgYW5kIG1v
ZGUuCisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZE9wZW5UcmFu
c2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OmJlZ2lu
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpk
aWRCZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVj
dGlvbjo6Y29tbWl0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXJD
b25uZWN0aW9uOjpkaWRDb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QlNlcnZlckNvbm5lY3Rpb246OnJlc2V0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZXNldFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6cm9sbGJhY2tUcmFuc2FjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZFJvbGxiYWNrVHJhbnNhY3Rp
b24pOgorCiAyMDEzLTEyLTE3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBBZGQgcHJvcGVydGllcyByZWxhdGVkIHRvIHRoZSB1c2VyIGFnZW50IHN0
cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5jcHAKaW5k
ZXggMDhiMjRhZC4uZWMxYjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb24uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViSURCU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJEYXRhYmFzZU1ldGFkYXRhLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9JbmRleGVkREIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTczLDEy
ICs3NCwxOCBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmdldE9yRXN0YWJs
aXNoSURCRGF0YWJhc2VNZXRhZGF0YSh1aW50NjRfdCByZQogICAgIH0pOwogfQogCi12b2lkIERh
dGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246Om9wZW5UcmFuc2FjdGlvbih1aW50NjRfdCByZXF1
ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCkKK3ZvaWQgRGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbjo6b3BlblRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50
NjRfdCB0cmFuc2FjdGlvbklELCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSURz
LCBpbnQ2NF90IGludE1vZGUpCiB7CiAgICAgQVNTRVJUKG1fdW5pcXVlSURCRGF0YWJhc2UpOwog
CisgICAgaWYgKGludE1vZGUgPCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZU1pbmltdW0gfHwg
aW50TW9kZSA+IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlTWF4aW11bSkgeworICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRPcGVuVHJhbnNhY3Rpb24o
cmVxdWVzdElELCBmYWxzZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSW5kZXhl
ZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSA9IHN0YXRpY19jYXN0PEluZGV4ZWREQjo6VHJhbnNh
Y3Rpb25Nb2RlPihpbnRNb2RlKTsKICAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVj
dGlvbj4gY29ubmVjdGlvbih0aGlzKTsKLSAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5vcGVuVHJh
bnNhY3Rpb24oSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyKCp0aGlzLCB0cmFuc2FjdGlvbklEKSwg
W2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0oYm9vbCBzdWNjZXNzKSB7CisgICAgbV91bmlxdWVJREJE
YXRhYmFzZS0+b3BlblRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uSWRlbnRpZmllcigqdGhpcywg
dHJhbnNhY3Rpb25JRCksIG9iamVjdFN0b3JlSURzLCBtb2RlLCBbY29ubmVjdGlvbiwgcmVxdWVz
dElEXShib29sIHN1Y2Nlc3MpIHsKICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6RGlkT3BlblRyYW5zYWN0aW9uKHJlcXVlc3RJRCwgc3Vj
Y2VzcykpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5l
Y3Rpb24uaAppbmRleCA1NjIyOTZkLi40ZWNiMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNl
UHJvY2Vzc0lEQkNvbm5lY3Rpb24uaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIC8v
IE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmln
aW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1lT3JpZ2luKTsKICAgICB2b2lk
IGdldE9yRXN0YWJsaXNoSURCRGF0YWJhc2VNZXRhZGF0YSh1aW50NjRfdCByZXF1ZXN0SUQpOwot
ICAgIHZvaWQgb3BlblRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFu
c2FjdGlvbklELCBpbnQ2NF90IHRyYW5zYWN0aW9uTW9kZSk7CisgICAgdm9pZCBvcGVuVHJhbnNh
Y3Rpb24odWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJRHMsIGludDY0X3QgdHJhbnNhY3Rpb25Nb2RlKTsK
ICAgICB2b2lkIGJlZ2luVHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRy
YW5zYWN0aW9uSUQpOwogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVz
dElELCBpbnQ2NF90IHRyYW5zYWN0aW9uSUQpOwogICAgIHZvaWQgcmVzZXRUcmFuc2FjdGlvbih1
aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXgg
Y2JlMzk1NS4uZjk3OTQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBAQCBtZXNzYWdlcyAt
PiBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICAgICBFc3Rh
Ymxpc2hDb25uZWN0aW9uKFN0cmluZyBkYXRhYmFzZU5hbWUsIFdlYktpdDo6U2VjdXJpdHlPcmln
aW5EYXRhIG9wZW5pbmdPcmlnaW4sIFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhIG1haW5GcmFt
ZU9yaWdpbikKICAgICBHZXRPckVzdGFibGlzaElEQkRhdGFiYXNlTWV0YWRhdGEodWludDY0X3Qg
cmVxdWVzdElEKQogCi0gICAgT3BlblRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50
NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IHRyYW5zYWN0aW9uTW9kZSkKKyAgICBPcGVuVHJh
bnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIFZlY3Rv
cjxpbnQ2NF90PiBvYmplY3RTdG9yZUlEcywgaW50NjRfdCB0cmFuc2FjdGlvbk1vZGUpCiAgICAg
QmVnaW5UcmFuc2FjdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25J
RCkKICAgICBDb21taXRUcmFuc2FjdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJh
bnNhY3Rpb25JRCkKICAgICBSZXNldFRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50
NjRfdCB0cmFuc2FjdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCAyMjU3
ZGI4Li4yZWQ3YTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMTk2LDMyICsx
OTYsMzIgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkT3BlbkJhY2tpbmdTdG9yZUFuZFJl
YWRNZXRhZGF0YShjb25zdCBJREJEYXRhYmFzZU1ldGEKICAgICB9CiB9CiAKLXZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6Om9wZW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZp
ZXImIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sKT4gc3VjY2Vzc0NhbGxiYWNr
KQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5z
YWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmpl
Y3RTdG9yZUlEcywgV2ViQ29yZTo6SW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSwgc3Rk
OjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgcG9zdFRyYW5z
YWN0aW9uT3BlcmF0aW9uKCZVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uLCBpZGVudGlmaWVyLCBzdWNjZXNzQ2FsbGJhY2spOworICAgIHBvc3RUcmFuc2FjdGlv
bk9wZXJhdGlvbihpZGVudGlmaWVyLCBjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJE
YXRhYmFzZTo6b3BlbkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLCBpZGVudGlmaWVyLCBvYmplY3RT
dG9yZUlEcywgbW9kZSksIHN1Y2Nlc3NDYWxsYmFjayk7CiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiBp
ZGVudGlmaWVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxsYmFjaykKIHsK
LSAgICBwb3N0VHJhbnNhY3Rpb25PcGVyYXRpb24oJlVuaXF1ZUlEQkRhdGFiYXNlOjpiZWdpbkJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uLCBpZGVudGlmaWVyLCBzdWNjZXNzQ2FsbGJhY2spOworICAg
IHBvc3RUcmFuc2FjdGlvbk9wZXJhdGlvbihpZGVudGlmaWVyLCBjcmVhdGVBc3luY1Rhc2soKnRo
aXMsICZVbmlxdWVJREJEYXRhYmFzZTo6YmVnaW5CYWNraW5nU3RvcmVUcmFuc2FjdGlvbiwgaWRl
bnRpZmllciksIHN1Y2Nlc3NDYWxsYmFjayk7CiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRp
Zmllciwgc3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAg
cG9zdFRyYW5zYWN0aW9uT3BlcmF0aW9uKCZVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0QmFja2lu
Z1N0b3JlVHJhbnNhY3Rpb24sIGlkZW50aWZpZXIsIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgcG9z
dFRyYW5zYWN0aW9uT3BlcmF0aW9uKGlkZW50aWZpZXIsIGNyZWF0ZUFzeW5jVGFzaygqdGhpcywg
JlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRCYWNraW5nU3RvcmVUcmFuc2FjdGlvbiwgaWRlbnRp
ZmllciksIHN1Y2Nlc3NDYWxsYmFjayk7CiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJl
c2V0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiBpZGVudGlmaWVy
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxsYmFjaykKIHsKLSAgICBwb3N0
VHJhbnNhY3Rpb25PcGVyYXRpb24oJlVuaXF1ZUlEQkRhdGFiYXNlOjpyZXNldEJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uLCBpZGVudGlmaWVyLCBzdWNjZXNzQ2FsbGJhY2spOworICAgIHBvc3RUcmFu
c2FjdGlvbk9wZXJhdGlvbihpZGVudGlmaWVyLCBjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlx
dWVJREJEYXRhYmFzZTo6cmVzZXRCYWNraW5nU3RvcmVUcmFuc2FjdGlvbiwgaWRlbnRpZmllciks
IHN1Y2Nlc3NDYWxsYmFjayk7CiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJvbGxiYWNr
VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiBpZGVudGlmaWVyLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxsYmFjaykKIHsKLSAgICBwb3N0VHJh
bnNhY3Rpb25PcGVyYXRpb24oJlVuaXF1ZUlEQkRhdGFiYXNlOjpyb2xsYmFja0JhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uLCBpZGVudGlmaWVyLCBzdWNjZXNzQ2FsbGJhY2spOworICAgIHBvc3RUcmFu
c2FjdGlvbk9wZXJhdGlvbihpZGVudGlmaWVyLCBjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlx
dWVJREJEYXRhYmFzZTo6cm9sbGJhY2tCYWNraW5nU3RvcmVUcmFuc2FjdGlvbiwgaWRlbnRpZmll
ciksIHN1Y2Nlc3NDYWxsYmFjayk7CiB9CiAKLXZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3RU
cmFuc2FjdGlvbk9wZXJhdGlvbihUcmFuc2FjdGlvbk9wZXJhdGlvbkZ1bmN0aW9uIGZ1bmN0aW9u
LCBjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rp
b248dm9pZChib29sKT4gc3VjY2Vzc0NhbGxiYWNrKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
cG9zdFRyYW5zYWN0aW9uT3BlcmF0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYg
aWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gdGFzaywgc3RkOjpmdW5jdGlv
bjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKIApAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3RU
cmFuc2FjdGlvbk9wZXJhdGlvbihUcmFuc2FjdGlvbk9wZXJhdGlvbkZ1bmN0aW9uIGZ1CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUFzeW5jVGFz
aygqdGhpcywgZnVuY3Rpb24sIGlkZW50aWZpZXIpKTsKKyAgICBwb3N0RGF0YWJhc2VUYXNrKHN0
ZDo6bW92ZSh0YXNrKSk7CiAKICAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiByZXF1ZXN0ID0gQXN5
bmNSZXF1ZXN0SW1wbDxib29sPjo6Y3JlYXRlKFtzdWNjZXNzQ2FsbGJhY2tdKGJvb2wgc3VjY2Vz
cykgewogICAgICAgICBzdWNjZXNzQ2FsbGJhY2soc3VjY2Vzcyk7CkBAIC0yNTgsMTIgKzI1OCwx
MiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRDb21wbGV0ZVRyYW5zYWN0aW9uT3BlcmF0
aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbgogICAgIHJlcXVlc3QtPmNvbXBsZXRlUmVxdWVz
dChzdWNjZXNzKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllcikK
K3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5CYWNraW5nU3RvcmVUcmFuc2FjdGlvbihjb25z
dCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgb2JqZWN0U3RvcmVJRHMsIFdlYkNvcmU6OkluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2Rl
IG1vZGUpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fYmFj
a2luZ1N0b3JlKTsKIAotICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0b3JlLT5lc3RhYmxp
c2hUcmFuc2FjdGlvbihpZGVudGlmaWVyKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdT
dG9yZS0+ZXN0YWJsaXNoVHJhbnNhY3Rpb24oaWRlbnRpZmllciwgb2JqZWN0U3RvcmVJRHMsIG1v
ZGUpOwogCiAgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywgJlVu
aXF1ZUlEQkRhdGFiYXNlOjpkaWRDb21wbGV0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uLCBpZGVudGlm
aWVyLCBzdWNjZXNzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggMzMzZGEyMy4u
YWE4Y2ZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMzAsNiArMzAsNyBAQAogCiAj
aW5jbHVkZSAiSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVW5pcXVlSURC
RGF0YWJhc2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KICNp
bmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CkBAIC02Niw3ICs2Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0T3JF
c3RhYmxpc2hJREJEYXRhYmFzZU1ldGFkYXRhKHN0ZDo6ZnVuY3Rpb248dm9pZChib29sLCBjb25z
dCBXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhJik+IGNvbXBsZXRpb25DYWxsYmFjayk7CiAK
LSAgICB2b2lkIG9wZW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXIm
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgdm9pZCBv
cGVuVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgY29uc3QgVmVj
dG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlEcywgV2ViQ29yZTo6SW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGUsIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sKT4gc3VjY2Vzc0NhbGxiYWNrKTsKICAg
ICB2b2lkIGJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwg
c3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spOwogICAgIHZvaWQgY29t
bWl0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgc3RkOjpmdW5j
dGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spOwogICAgIHZvaWQgcmVzZXRUcmFuc2Fj
dGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
Ym9vbCk+IHN1Y2Nlc3NDYWxsYmFjayk7CkBAIC05NywxNCArOTgsMTMgQEAgcHJpdmF0ZToKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBvcmlnaW4gY2FuIHVzZSB0aGUgc2FtZSBkYXRhYmFz
ZXMgYXMgdGhlIGdpdmVuIG9yaWdpbi4KICAgICBib29sIGNhblNoYXJlRGF0YWJhc2VzKGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0Owog
Ci0gICAgdHlwZWRlZiB2b2lkIChVbmlxdWVJREJEYXRhYmFzZTo6KlRyYW5zYWN0aW9uT3BlcmF0
aW9uRnVuY3Rpb24pKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYpOwotICAgIHZvaWQg
cG9zdFRyYW5zYWN0aW9uT3BlcmF0aW9uKFRyYW5zYWN0aW9uT3BlcmF0aW9uRnVuY3Rpb24sIGNv
bnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sKT4g
c3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIHBvc3RUcmFuc2FjdGlvbk9wZXJhdGlvbihjb25z
dCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImLCBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiwg
c3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spOwogICAgIAogICAgIC8v
IFRvIGJlIGNhbGxlZCBmcm9tIHRoZSBkYXRhYmFzZSB3b3JrcXVldWUgdGhyZWFkIG9ubHkKICAg
ICB2b2lkIHBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKCk7CiAgICAgdm9pZCBwb3N0TWFpblRocmVh
ZFRhc2soc3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4pOwogICAgIHZvaWQgb3BlbkJhY2tpbmdT
dG9yZUFuZFJlYWRNZXRhZGF0YShjb25zdCBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXImLCBj
b25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KTsKLSAgICB2b2lkIG9wZW5CYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImKTsKKyAgICB2b2lk
IG9wZW5CYWNraW5nU3RvcmVUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZp
ZXImLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSURzLCBXZWJDb3JlOjpJbmRl
eGVkREI6OlRyYW5zYWN0aW9uTW9kZSk7CiAgICAgdm9pZCBiZWdpbkJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYpOwogICAgIHZvaWQgY29tbWl0
QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJik7
CiAgICAgdm9pZCByZXNldEJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0
aW9uSWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZS5oCmluZGV4IGM5YjA3MjIuLjkyOTdlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKSAmJiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKIAorI2luY2x1ZGUg
PFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhPiBnZXRPckVzdGFi
bGlzaE1ldGFkYXRhKCkgPSAwOwogCi0gICAgdmlydHVhbCBib29sIGVzdGFibGlzaFRyYW5zYWN0
aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgZXN0YWJsaXNoVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlEcywgV2ViQ29yZTo6SW5kZXhlZERC
OjpUcmFuc2FjdGlvbk1vZGUpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYmVnaW5UcmFuc2FjdGlv
bihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImKSA9IDA7CiAgICAgdmlydHVhbCBib29s
IGNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYpID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgcmVzZXRUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklk
ZW50aWZpZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9Vbmlx
dWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKaW5kZXggNWFmZGUzNy4uNzJkODNm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9z
cWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcApAQCAtMTkzLDEwICsxOTMsMTAgQEAgc3RkOjp1bmlx
dWVfcHRyPElEQkRhdGFiYXNlTWV0YWRhdGE+IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlOjpnZXRPckUKICAgICByZXR1cm4gbWV0YWRhdGE7CiB9CiAKLWJvb2wgVW5pcXVlSURC
RGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmVzdGFibGlzaFRyYW5zYWN0aW9uKGNvbnN0IElE
QlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllcikKK2Jvb2wgVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGU6OmVzdGFibGlzaFRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5z
YWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgV2Vi
Q29yZTo6SW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUpCiB7CiAgICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7Ci0gICAgCisKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25zLmFkZChpZGVudGlmaWVy
LCBTUUxpdGVJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKGlkZW50aWZpZXIpKS5pc05ld0VudHJ5KSB7
CiAgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byBlc3RhYmxpc2ggdHJhbnNhY3Rpb24gaWRl
bnRpZmllciB0aGF0IGFscmVhZHkgZXhpc3RzIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRl
L1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0ZS5oCmluZGV4IDU2MjY0Y2QuLjRlZmQzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNl
QmFja2luZ1N0b3JlU1FMaXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaApA
QCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhPiBnZXRPckVzdGFibGlzaE1ldGFkYXRhKCkgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXN0YWJsaXNoVHJhbnNhY3Rpb24oY29uc3QgSURC
VHJhbnNhY3Rpb25JZGVudGlmaWVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGVzdGFi
bGlzaFRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJRHMsIFdlYkNvcmU6OkluZGV4ZWREQjo6VHJhbnNh
Y3Rpb25Nb2RlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYmVnaW5UcmFuc2FjdGlvbihj
b25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHJlc2V0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNh
Y3Rpb25JZGVudGlmaWVyJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5k
ZXggNTg2ZjIxNi4uMWQwYjM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNTAs
NiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICBNKFN0b3JhZ2VBUEkpIFwKICAgICBN
KFRleHRJbnB1dCkgXAogICAgIE0oVmlldykgXAorICAgIE0oSURCKSBcCiAKICNkZWZpbmUgREVD
TEFSRV9MT0dfQ0hBTk5FTChuYW1lKSBcCiAgICAgZXh0ZXJuIFdURkxvZ0NoYW5uZWwgSk9JTl9M
T0dfQ0hBTk5FTF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jVGFzay5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FzeW5jVGFzay5oCmluZGV4IDVjMjA2NGMuLjM1Nzg3MDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1Rhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQXN5bmNUYXNrLmgKQEAgLTEwMCw2ICsxMDAsMjIgQEAgc3RkOjp1bmlxdWVfcHRyPEFzeW5j
VGFzaz4gY3JlYXRlQXN5bmNUYXNrKAogCiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1l
IFAzLCB0eXBlbmFtZSBNUDM+CitzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNUYXNrPiBjcmVhdGVBc3lu
Y1Rhc2soCisgICAgVCYgY2FsbGVlLAorICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBN
UDMpLAorICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAorICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIy
LAorICAgIGNvbnN0IFAzJiBwYXJhbWV0ZXIzKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPEFzeW5jVGFza0ltcGw8VCwgTVAxLCBNUDIsIE1QMz4+KAorICAgICAgICAmY2FsbGVlLAor
ICAgICAgICBtZXRob2QsCisgICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAxPjo6
Y29weShwYXJhbWV0ZXIxKSwKKyAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDI+
Ojpjb3B5KHBhcmFtZXRlcjIpLAorICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQ
Mz46OmNvcHkocGFyYW1ldGVyMykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEFzeW5jVGFza19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhy
ZWFkQ29waWVyLmNwcAppbmRleCBkNmM5YzdmLi41YzMzYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTQ0LDYgKzQ0LDEzIEBAIElE
QlRyYW5zYWN0aW9uSWRlbnRpZmllciBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNl
LCBJREJUcmFuc2FjdGlvbklkZW50CiAgICAgcmV0dXJuIGlkZW50aWZpZXIuaXNvbGF0ZWRDb3B5
KCk7CiB9CiAKK1ZlY3RvcjxpbnQ2NF90PiBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZh
bHNlLCBWZWN0b3I8aW50NjRfdD4+Ojpjb3B5KGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgdmVjdG9y
KQoreworICAgIFZlY3RvcjxpbnQ2NF90PiByZXN1bHQ7CisgICAgcmVzdWx0LmFwcGVuZFZlY3Rv
cih2ZWN0b3IpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCA5ODdjZGQxLi5iMTIwMzhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuaApAQCAtMjcs
NiArMjcsNyBAQAogI2RlZmluZSBXZWJDcm9zc1RocmVhZENvcGllcl9oCiAKICNpbmNsdWRlIDxX
ZWJDb3JlL0Nyb3NzVGhyZWFkQ29waWVyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKQEAgLTQ1LDYgKzQ2LDEwIEBAIHRlbXBsYXRl
PD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFdlYktpdDo6SURC
VHJhbnNhY3Rpb25JZGVuCiAgICAgc3RhdGljIFdlYktpdDo6SURCVHJhbnNhY3Rpb25JZGVudGlm
aWVyIGNvcHkoY29uc3QgV2ViS2l0OjpJREJUcmFuc2FjdGlvbklkZW50aWZpZXImKTsKIH07CiAK
K3RlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFZl
Y3RvcjxpbnQ2NF90Pj4geworICAgIHN0YXRpYyBWZWN0b3I8aW50NjRfdD4gY29weShjb25zdCBW
ZWN0b3I8aW50NjRfdD4mKTsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNl
cnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDc2NzgyOTkuLjkwNzcyMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJBc3luY1JlcXVlc3QuaCIKICNpbmNsdWRlICJEYXRhYmFzZVByb2Nlc3NJREJDb25u
ZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbkRhdGEuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uLmgiCkBAIC05NSwxMSArOTYsMTUgQEAgdm9pZCBXZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uOjpnZXRPckVzdGFibGlzaElEQkRhdGFiYXNlTWV0YWRhdGEoR2V0SURC
RGF0YWJhc2VNZXQKICAgICBBU1NFUlQoIW1fc2VydmVyUmVxdWVzdHMuY29udGFpbnMocmVxdWVz
dElEKSk7CiAgICAgbV9zZXJ2ZXJSZXF1ZXN0cy5hZGQocmVxdWVzdElELCBzZXJ2ZXJSZXF1ZXN0
LnJlbGVhc2UoKSk7CiAKKyAgICBMT0coSURCLCAiV2ViUHJvY2VzcyBnZXRPckVzdGFibGlzaElE
QkRhdGFiYXNlTWV0YWRhdGEgcmVxdWVzdCBJRCAlbGx1IiwgcmVxdWVzdElEKTsKKwogICAgIHNl
bmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OkdldE9yRXN0YWJsaXNo
SURCRGF0YWJhc2VNZXRhZGF0YShyZXF1ZXN0SUQpKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXJD
b25uZWN0aW9uOjpkaWRHZXRPckVzdGFibGlzaElEQkRhdGFiYXNlTWV0YWRhdGEodWludDY0X3Qg
cmVxdWVzdElELCBib29sIHN1Y2Nlc3MsIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFk
YXRhKQogeworICAgIExPRyhJREIsICJXZWJQcm9jZXNzIGRpZEdldE9yRXN0YWJsaXNoSURCRGF0
YWJhc2VNZXRhZGF0YSByZXF1ZXN0IElEICVsbHUiLCByZXF1ZXN0SUQpOworCiAgICAgUmVmUHRy
PEFzeW5jUmVxdWVzdD4gc2VydmVyUmVxdWVzdCA9IG1fc2VydmVyUmVxdWVzdHMudGFrZShyZXF1
ZXN0SUQpOwogCiAgICAgaWYgKCFzZXJ2ZXJSZXF1ZXN0KQpAQCAtMTEyLDcgKzExNyw3IEBAIHZv
aWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6Y2xvc2UoKQogewogfQogCi12b2lkIFdlYklEQlNl
cnZlckNvbm5lY3Rpb246Om9wZW5UcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIGNv
bnN0IEhhc2hTZXQ8aW50NjRfdD4mLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBtb2RlLCBC
b29sQ2FsbGJhY2tGdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2spCit2b2lkIFdlYklEQlNlcnZlckNv
bm5lY3Rpb246Om9wZW5UcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIGNvbnN0IEhh
c2hTZXQ8aW50NjRfdD4mIG9iamVjdFN0b3JlSURzLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9k
ZSBtb2RlLCBCb29sQ2FsbGJhY2tGdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2spCiB7CiAgICAgUmVm
UHRyPEFzeW5jUmVxdWVzdD4gc2VydmVyUmVxdWVzdCA9IEFzeW5jUmVxdWVzdEltcGw8Ym9vbD46
OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2spOwogCkBAIC0xMjQsMTEgKzEyOSwxNyBAQCB2b2lkIFdl
YklEQlNlcnZlckNvbm5lY3Rpb246Om9wZW5UcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9u
SUQsIGNvbnN0IEhhc2hTZQogICAgIEFTU0VSVCghbV9zZXJ2ZXJSZXF1ZXN0cy5jb250YWlucyhy
ZXF1ZXN0SUQpKTsKICAgICBtX3NlcnZlclJlcXVlc3RzLmFkZChyZXF1ZXN0SUQsIHNlcnZlclJl
cXVlc3QucmVsZWFzZSgpKTsKIAotICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb246Ok9wZW5UcmFuc2FjdGlvbihyZXF1ZXN0SUQsIHRyYW5zYWN0aW9uSUQsIG1v
ZGUpKTsKKyAgICBMT0coSURCLCAiV2ViUHJvY2VzcyBvcGVuVHJhbnNhY3Rpb24gSUQgJWxsaSAo
cmVxdWVzdCBJRCAlbGx1KSIsIHRyYW5zYWN0aW9uSUQsIHJlcXVlc3RJRCk7CisKKyAgICBWZWN0
b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJRFZlY3RvcjsKKyAgICBjb3B5VG9WZWN0b3Iob2JqZWN0
U3RvcmVJRHMsIG9iamVjdFN0b3JlSURWZWN0b3IpOworICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFi
YXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246Ok9wZW5UcmFuc2FjdGlvbihyZXF1ZXN0SUQsIHRyYW5z
YWN0aW9uSUQsIG9iamVjdFN0b3JlSURWZWN0b3IsIG1vZGUpKTsKIH0KIAogdm9pZCBXZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uOjpkaWRPcGVuVHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBi
b29sIHN1Y2Nlc3MpCiB7CisgICAgTE9HKElEQiwgIldlYlByb2Nlc3MgZGlkT3BlblRyYW5zYWN0
aW9uIHJlcXVlc3QgSUQgJWxsdSIsIHJlcXVlc3RJRCk7CisKICAgICBSZWZQdHI8QXN5bmNSZXF1
ZXN0PiBzZXJ2ZXJSZXF1ZXN0ID0gbV9zZXJ2ZXJSZXF1ZXN0cy50YWtlKHJlcXVlc3RJRCk7CiAK
ICAgICBpZiAoIXNlcnZlclJlcXVlc3QpCkBAIC0xNDUsMTEgKzE1NiwxNSBAQCB2b2lkIFdlYklE
QlNlcnZlckNvbm5lY3Rpb246OmJlZ2luVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklE
LCBzdGQ6OmZ1bmN0aQogICAgIEFTU0VSVCghbV9zZXJ2ZXJSZXF1ZXN0cy5jb250YWlucyhyZXF1
ZXN0SUQpKTsKICAgICBtX3NlcnZlclJlcXVlc3RzLmFkZChyZXF1ZXN0SUQsIHNlcnZlclJlcXVl
c3QucmVsZWFzZSgpKTsKIAorICAgIExPRyhJREIsICJXZWJQcm9jZXNzIGJlZ2luVHJhbnNhY3Rp
b24gSUQgJWxsaSAocmVxdWVzdCBJRCAlbGx1KSIsIHRyYW5zYWN0aW9uSUQsIHJlcXVlc3RJRCk7
CisKICAgICBzZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpCZWdp
blRyYW5zYWN0aW9uKHJlcXVlc3RJRCwgdHJhbnNhY3Rpb25JRCkpOwogfQogCiB2b2lkIFdlYklE
QlNlcnZlckNvbm5lY3Rpb246OmRpZEJlZ2luVHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElE
LCBib29sKQogeworICAgIExPRyhJREIsICJXZWJQcm9jZXNzIGRpZEJlZ2luVHJhbnNhY3Rpb24g
cmVxdWVzdCBJRCAlbGx1IiwgcmVxdWVzdElEKTsKKwogICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+
IHNlcnZlclJlcXVlc3QgPSBtX3NlcnZlclJlcXVlc3RzLnRha2UocmVxdWVzdElEKTsKIAogICAg
IGlmICghc2VydmVyUmVxdWVzdCkKQEAgLTE3MCwxMSArMTg1LDE1IEBAIHZvaWQgV2ViSURCU2Vy
dmVyQ29ubmVjdGlvbjo6Y29tbWl0VHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBC
b29sQ2FsbGJhCiAgICAgQVNTRVJUKCFtX3NlcnZlclJlcXVlc3RzLmNvbnRhaW5zKHJlcXVlc3RJ
RCkpOwogICAgIG1fc2VydmVyUmVxdWVzdHMuYWRkKHJlcXVlc3RJRCwgc2VydmVyUmVxdWVzdC5y
ZWxlYXNlKCkpOwogCisgICAgTE9HKElEQiwgIldlYlByb2Nlc3MgY29tbWl0VHJhbnNhY3Rpb24g
SUQgJWxsaSAocmVxdWVzdCBJRCAlbGx1KSIsIHRyYW5zYWN0aW9uSUQsIHJlcXVlc3RJRCk7CisK
ICAgICBzZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpDb21taXRU
cmFuc2FjdGlvbihyZXF1ZXN0SUQsIHRyYW5zYWN0aW9uSUQpKTsKIH0KIAogdm9pZCBXZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uOjpkaWRDb21taXRUcmFuc2FjdGlvbih1aW50NjRfdCByZXF1ZXN0SUQs
IGJvb2wgc3VjY2VzcykKIHsKKyAgICBMT0coSURCLCAiV2ViUHJvY2VzcyBkaWRDb21taXRUcmFu
c2FjdGlvbiByZXF1ZXN0IElEICVsbHUiLCByZXF1ZXN0SUQpOworCiAgICAgUmVmUHRyPEFzeW5j
UmVxdWVzdD4gc2VydmVyUmVxdWVzdCA9IG1fc2VydmVyUmVxdWVzdHMudGFrZShyZXF1ZXN0SUQp
OwogCiAgICAgaWYgKCFzZXJ2ZXJSZXF1ZXN0KQpAQCAtMTkxLDExICsyMTAsMTUgQEAgdm9pZCBX
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpyZXNldFRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rp
b25JRCwgc3RkOjpmdW5jdGkKICAgICBBU1NFUlQoIW1fc2VydmVyUmVxdWVzdHMuY29udGFpbnMo
cmVxdWVzdElEKSk7CiAgICAgbV9zZXJ2ZXJSZXF1ZXN0cy5hZGQocmVxdWVzdElELCBzZXJ2ZXJS
ZXF1ZXN0LnJlbGVhc2UoKSk7CiAKKyAgICBMT0coSURCLCAiV2ViUHJvY2VzcyByZXNldFRyYW5z
YWN0aW9uIElEICVsbGkgKHJlcXVlc3QgSUQgJWxsdSkiLCB0cmFuc2FjdGlvbklELCByZXF1ZXN0
SUQpOworCiAgICAgc2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6
UmVzZXRUcmFuc2FjdGlvbihyZXF1ZXN0SUQsIHRyYW5zYWN0aW9uSUQpKTsKIH0KIAogdm9pZCBX
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZXNldFRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVl
c3RJRCwgYm9vbCkKIHsKKyAgICBMT0coSURCLCAiV2ViUHJvY2VzcyBkaWRSZXNldFRyYW5zYWN0
aW9uIHJlcXVlc3QgSUQgJWxsdSIsIHJlcXVlc3RJRCk7CisKICAgICBSZWZQdHI8QXN5bmNSZXF1
ZXN0PiBzZXJ2ZXJSZXF1ZXN0ID0gbV9zZXJ2ZXJSZXF1ZXN0cy50YWtlKHJlcXVlc3RJRCk7CiAK
ICAgICBpZiAoIXNlcnZlclJlcXVlc3QpCkBAIC0yMTIsMTEgKzIzNSwxNSBAQCB2b2lkIFdlYklE
QlNlcnZlckNvbm5lY3Rpb246OnJvbGxiYWNrVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlv
bklELCBzdGQ6OmZ1bgogICAgIEFTU0VSVCghbV9zZXJ2ZXJSZXF1ZXN0cy5jb250YWlucyhyZXF1
ZXN0SUQpKTsKICAgICBtX3NlcnZlclJlcXVlc3RzLmFkZChyZXF1ZXN0SUQsIHNlcnZlclJlcXVl
c3QucmVsZWFzZSgpKTsKIAorICAgIExPRyhJREIsICJXZWJQcm9jZXNzIHJvbGxiYWNrVHJhbnNh
Y3Rpb24gSUQgJWxsaSAocmVxdWVzdCBJRCAlbGx1KSIsIHRyYW5zYWN0aW9uSUQsIHJlcXVlc3RJ
RCk7CisKICAgICBzZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpS
b2xsYmFja1RyYW5zYWN0aW9uKHJlcXVlc3RJRCwgdHJhbnNhY3Rpb25JRCkpOwogfQogCiB2b2lk
IFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZFJvbGxiYWNrVHJhbnNhY3Rpb24odWludDY0X3Qg
cmVxdWVzdElELCBib29sKQogeworICAgIExPRyhJREIsICJXZWJQcm9jZXNzIGRpZFJvbGxiYWNr
VHJhbnNhY3Rpb24gcmVxdWVzdCBJRCAlbGx1IiwgcmVxdWVzdElEKTsKKwogICAgIFJlZlB0cjxB
c3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBtX3NlcnZlclJlcXVlc3RzLnRha2UocmVxdWVz
dElEKTsKIAogICAgIGlmICghc2VydmVyUmVxdWVzdCkK
</data>
<flag name="review"
          id="243083"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>